From 1d1519fa1df2eefbcd1f6e300e543c5a6a3539d7 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 22 Jul 2023 20:54:33 +0000 Subject: [PATCH 001/231] new custom entities api --- api_custom_entities.sma | 1755 +++++++++++++++---------------- include/api_custom_entities.inc | 152 +-- 2 files changed, 920 insertions(+), 987 deletions(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index cf8286e..2e82840 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -2,1047 +2,964 @@ #include #include - #include #include #include -#include -#include - -#include +#include -#define PLUGIN "[API] Custom Entities" -#define VERSION "1.2.3" -#define AUTHOR "Hedgehog Fog" - -#define CE_BASE_CLASSNAME "info_target" #define LOG_PREFIX "[CE]" -#define TASKID_SUM_DISAPPEAR 1000 -#define TASKID_SUM_RESPAWN 2000 -#define TASKID_SUM_REMOVE 3000 - -/*--------------------------------[ Constants ]--------------------------------*/ - -enum CEPreset -{ - CEPreset_None = 0, - CEPreset_Item, - CEPreset_NPC, - CEPreset_Prop +enum CEData { + Array:CEData_Name, + Array:CEData_ModelIndex, + Array:CEData_Mins, + Array:CEData_Maxs, + Array:CEData_LifeTime, + Array:CEData_RespawnTime, + Array:CEData_Preset, + Array:CEData_IgnoreRounds, + Array:CEData_Hooks[CEFunction] }; -enum CEFunction -{ - CEFunction_Spawn, - CEFunction_Kill, - CEFunction_Killed, - CEFunction_Remove, - CEFunction_Picked, - CEFunction_Pickup, - CEFunction_KVD +enum CEHookData { + CEHookData_PluginID, + CEHookData_FuncID }; -enum CEHookData -{ - CEHookData_PluginID, - CEHookData_FuncID +enum _:RegisterArgs { + RegisterArg_Name = 1, + RegisterArg_ModelIndex, + RegisterArg_Mins, + RegisterArg_Maxs, + RegisterArg_LifeTime, + RegisterArg_RespawnTime, + RegisterArg_IgnoreRounds, + RegisterArg_Preset }; -enum _:RegisterArgs -{ - RegisterArg_Name = 1, - RegisterArg_ModelIndex, - RegisterArg_Mins, - RegisterArg_Maxs, - RegisterArg_LifeTime, - RegisterArg_RespawnTime, - RegisterArg_IgnoreRounds, - RegisterArg_Preset -}; +new g_iszBaseClassName; -enum _:CEData -{ - CEData_Handler, - CEData_TempIndex, - CEData_WorldIndex, - CEData_StartOrigin -}; +new Trie:g_itPData = Invalid_Trie; +new Trie:g_itEntityIds = Invalid_Trie; +new g_rgCEData[CEData] = { Invalid_Array, ... }; +new g_iEntitiesNum = 0; -enum _:KVD { - KVD_Key[64], - KVD_Value[64] -} +public plugin_precache() { + InitStorages(); + g_iszBaseClassName = engfunc(EngFunc_AllocString, CE_BASE_CLASSNAME); + + register_forward(FM_Spawn, "FMHook_Spawn"); + register_forward(FM_KeyValue, "FMHook_KeyValue"); + register_forward(FM_KeyValue, "FMHook_KeyValue_Post", 1); + register_forward(FM_OnFreeEntPrivateData, "FMHook_OnFreeEntPrivateData"); -/*--------------------------------[ Variables ]--------------------------------*/ + RegisterHam(Ham_Spawn, CE_BASE_CLASSNAME, "HamHook_Base_Spawn_Post", .Post = 1); + RegisterHam(Ham_ObjectCaps, CE_BASE_CLASSNAME, "HamHook_Base_ObjectCaps", .Post = 0); + RegisterHam(Ham_CS_Restart, CE_BASE_CLASSNAME, "HamHook_Base_Restart", .Post = 0); + RegisterHam(Ham_Touch, CE_BASE_CLASSNAME, "HamHook_Base_Touch", .Post = 0); + RegisterHam(Ham_Killed, CE_BASE_CLASSNAME, "HamHook_Base_Killed", .Post = 0); + RegisterHam(Ham_Think, CE_BASE_CLASSNAME, "HamHook_Base_Think", .Post = 0); +} -new g_ptrBaseClassname; +public plugin_init() { + register_plugin("[API] Custom Entities", "2.0.0", "Hedgehog Fog"); -new Trie:g_entityHandlers = Invalid_Trie; -new Array:g_entityName = Invalid_Array; -new Array:g_entityPluginID = Invalid_Array; -new Array:g_entityModelIndex = Invalid_Array; -new Array:g_entityMins = Invalid_Array; -new Array:g_entityMaxs = Invalid_Array; -new Array:g_entityLifeTime = Invalid_Array; -new Array:g_entityRespawnTime = Invalid_Array; -new Array:g_entityPreset = Invalid_Array; -new Array:g_entityIgnoreRounds = Invalid_Array; -new Array:g_entityHooks = Invalid_Array; + register_concmd("ce_spawn", "Command_Spawn", ADMIN_CVAR); +} -new g_entityCount = 0; +public plugin_natives() { + register_library("api_custom_entities"); -new Array:g_worldEntities = Invalid_Array; -new Array:g_tmpEntities = Invalid_Array; + register_native("CE_Register", "Native_Register"); + register_native("CE_Create", "Native_Create"); + register_native("CE_Kill", "Native_Kill"); + register_native("CE_Remove", "Native_Remove"); -new g_lastCEIdx = 0; -new g_lastCEEnt = 0; + register_native("CE_GetSize", "Native_GetSize"); + register_native("CE_GetModelIndex", "Native_GetModelIndex"); -new Array:g_ceKvd = Invalid_Array; + register_native("CE_RegisterHook", "Native_RegisterHook"); -public plugin_init() -{ - register_plugin(PLUGIN, VERSION, AUTHOR); + register_native("CE_GetHandler", "Native_GetHandler"); + register_native("CE_GetHandlerByEntity", "Native_GetHandlerByEntity"); - SpawnLatestCe(); - - RegisterHam(Ham_Touch, CE_BASE_CLASSNAME, "OnTouch", .Post = 1); - RegisterHam(Ham_Killed, CE_BASE_CLASSNAME, "OnKilled", .Post = 0); - - register_event("HLTV", "OnNewRound", "a", "1=0", "2=0"); - - register_concmd("ce_spawn", "OnClCmd_CESpawn", ADMIN_CVAR); + register_native("CE_GetMember", "Native_GetMember"); + register_native("CE_SetMember", "Native_SetMember"); + register_native("CE_GetMemberVec", "Native_GetMemberVec"); + register_native("CE_SetMemberVec", "Native_SetMemberVec"); + register_native("CE_GetMemberString", "Native_GetMemberString"); + register_native("CE_SetMemberString", "Native_SetMemberString"); } -public plugin_end() -{ - for (new i = 0; i < g_entityCount; ++i) { - DestroyFunctions(i); - } - - if (g_entityCount) { - TrieDestroy(g_entityHandlers); - ArrayDestroy(g_entityName); - ArrayDestroy(g_entityPluginID); - ArrayDestroy(g_entityModelIndex); - ArrayDestroy(g_entityMins); - ArrayDestroy(g_entityMaxs); - ArrayDestroy(g_entityLifeTime); - ArrayDestroy(g_entityRespawnTime); - ArrayDestroy(g_entityIgnoreRounds); - ArrayDestroy(g_entityPreset); - ArrayDestroy(g_entityHooks); - } - - if (g_tmpEntities) { - ArrayDestroy(g_tmpEntities); - } - - if (g_worldEntities) { - ArrayDestroy(g_worldEntities); - } - - if (g_ceKvd != Invalid_Array) { - ArrayDestroy(g_ceKvd); - } +public plugin_end() { + DestroyStorages(); } -public plugin_precache() -{ - g_ptrBaseClassname = engfunc(EngFunc_AllocString, CE_BASE_CLASSNAME); - - register_forward(FM_KeyValue, "OnKeyValue", 1); - RegisterHam(Ham_Spawn, CE_BASE_CLASSNAME, "OnSpawn", .Post = 1); +/*--------------------------------[ Natives ]--------------------------------*/ + +public Native_Register(iPluginId, iArgc) { + static szClassName[CE_MAX_NAME_LENGTH]; + get_string(RegisterArg_Name, szClassName, charsmax(szClassName)); + + new iModelIndex = get_param(RegisterArg_ModelIndex); + new Float:flLifeTime = get_param_f(RegisterArg_LifeTime); + new Float:flRespawnTime = get_param_f(RegisterArg_RespawnTime); + new bool:bIgnoreRounds = bool:get_param(RegisterArg_IgnoreRounds); + new CEPreset:iPreset = CEPreset:get_param(RegisterArg_Preset); + + new Float:vecMins[3]; + get_array_f(RegisterArg_Mins, vecMins, 3); + + new Float:vecMaxs[3]; + get_array_f(RegisterArg_Maxs, vecMaxs, 3); + + return RegisterEntity(szClassName, iModelIndex, vecMins, vecMaxs, flLifeTime, flRespawnTime, bIgnoreRounds, iPreset); } -public plugin_natives() -{ - register_library("api_custom_entities"); - - register_native("CE_Register", "Native_Register"); - register_native("CE_Create", "Native_Create"); - register_native("CE_Kill", "Native_Kill"); - register_native("CE_Remove", "Native_Remove"); - - register_native("CE_GetSize", "Native_GetSize"); - register_native("CE_GetModelIndex", "Native_GetModelIndex"); - - register_native("CE_RegisterHook", "Native_RegisterHook"); - - register_native("CE_CheckAssociation_", "Native_CheckAssociation"); - - register_native("CE_GetHandler", "Native_GetHandler"); - register_native("CE_GetHandlerByEntity", "Native_GetHandlerByEntity"); +public Native_Create(iPluginId, iArgc) { + new szClassName[CE_MAX_NAME_LENGTH]; + get_string(1, szClassName, charsmax(szClassName)); + + new Float:vecOrigin[3]; + get_array_f(2, vecOrigin, 3); + + new bool:bTemp = !!get_param(3); + + return @Entity_Create(szClassName, vecOrigin, bTemp); } -/*--------------------------------[ Natives ]--------------------------------*/ +public Native_Kill(iPluginId, iArgc) { + new pEntity = get_param(1); + new pKiller = get_param(2); -public Native_Register(pluginID, argc) -{ - static szClassName[32]; - get_string(RegisterArg_Name, szClassName, charsmax(szClassName)); - - new modelIndex = get_param(RegisterArg_ModelIndex); - new Float:fLifeTime = get_param_f(RegisterArg_LifeTime); - new Float:fRespawnTime = get_param_f(RegisterArg_RespawnTime); - new bool:ignoreRounds = bool:get_param(RegisterArg_IgnoreRounds); - new CEPreset:preset = CEPreset:get_param(RegisterArg_Preset); - - new Float:vMins[3]; - get_array_f(RegisterArg_Mins, vMins, 3); - - new Float:vMaxs[3]; - get_array_f(RegisterArg_Maxs, vMaxs, 3); - - return Register(szClassName, pluginID, modelIndex, vMins, vMaxs, fLifeTime, fRespawnTime, ignoreRounds, preset); + // ExecuteHamB(Ham_Killed, pEntity, pKiller, 0); + @Entity_Kill(pEntity, pKiller, false); } -public Native_Create(pluginID, argc) -{ - new szClassName[32]; - get_string(1, szClassName, charsmax(szClassName)); - - new Float:vOrigin[3]; - get_array_f(2, vOrigin, 3); - - new bool:temp = !!get_param(3); - - return Create(szClassName, vOrigin, temp); +public bool:Native_Remove(iPluginId, iArgc) { + new pEntity = get_param(1); + set_pev(pEntity, pev_flags, pev(pEntity, pev_flags) | FL_KILLME); + dllfunc(DLLFunc_Think, pEntity); } -public Native_Kill(pluginID, argc) -{ - new ent = get_param(1); - new killer = get_param(2); +public Native_GetSize(iPluginId, iArgc) { + new szClassName[CE_MAX_NAME_LENGTH]; + get_string(1, szClassName, charsmax(szClassName)); + + new iId = GetIdByClassName(szClassName); + if (iId == -1) { + return false; + } + + new Float:vecMins[3]; + ArrayGetArray(g_rgCEData[CEData_Mins], iId, vecMins); - Kill(ent, killer); -} + new Float:vecMaxs[3]; + ArrayGetArray(g_rgCEData[CEData_Maxs], iId, vecMaxs); + + set_array_f(2, vecMins, 3); + set_array_f(3, vecMaxs, 3); -public bool:Native_Remove(pluginID, argc) -{ - new ent = get_param(1); - return Remove(ent); + return true; } -public Native_GetSize(pluginID, argc) -{ - if (!g_entityCount) { - return false; - } - - new szClassName[32]; - get_string(1, szClassName, charsmax(szClassName)); - - new ceIdx; - if (!TrieGetCell(g_entityHandlers, szClassName, ceIdx)) { - return false; - } - - new Float:vMins[3]; - ArrayGetArray(g_entityMins, ceIdx, vMins); - - new Float:vMaxs[3]; - ArrayGetArray(g_entityMaxs, ceIdx, vMaxs); - - set_array_f(2, vMins, 3); - set_array_f(3, vMaxs, 3); - - return true; +public Native_GetModelIndex(iPluginId, iArgc) { + new szClassName[CE_MAX_NAME_LENGTH]; + get_string(1, szClassName, charsmax(szClassName)); + + new iId = GetIdByClassName(szClassName); + if (iId == -1) { + return 0; + } + + return ArrayGetCell(g_rgCEData[CEData_ModelIndex], iId); } -public Native_GetModelIndex(pluginID, argc) -{ - if (!g_entityCount) { - return false; - } - - new szClassName[32]; - get_string(1, szClassName, charsmax(szClassName)); - - new ceIdx; - if (!TrieGetCell(g_entityHandlers, szClassName, ceIdx)) { - return false; - } - - return ArrayGetCell(g_entityModelIndex, ceIdx); +public Native_RegisterHook(iPluginId, iArgc) { + new CEFunction:iFunction = CEFunction:get_param(1); + + new szClassname[CE_MAX_NAME_LENGTH]; + get_string(2, szClassname, charsmax(szClassname)); + + new szCallback[CE_MAX_CALLBACK_LENGTH]; + get_string(3, szCallback, charsmax(szCallback)); + + RegisterEntityHook(iFunction, szClassname, szCallback, iPluginId); } -public Native_RegisterHook(pluginID, argc) -{ - new CEFunction:function = CEFunction:get_param(1); - - new szClassname[32]; - get_string(2, szClassname, charsmax(szClassname)); - - new szCallback[32]; - get_string(3, szCallback, charsmax(szCallback)); - - RegisterHook(function, szClassname, szCallback, pluginID); +public Native_GetHandler(iPluginId, iArgc) { + new szClassName[CE_MAX_NAME_LENGTH]; + get_string(1, szClassName, charsmax(szClassName)); + + return GetIdByClassName(szClassName); } -public Native_CheckAssociation(pluginID, argc) -{ - new ent = get_param(1); - new ceIdx = GetHandlerByEntity(ent); +public Native_GetHandlerByEntity(iPluginId, iArgc) { + new pEntity = get_param(1); - return (ceIdx > 0 && pluginID == ArrayGetCell(g_entityPluginID, ceIdx)); + if (!@Entity_IsCustom(pEntity)) { + return -1; + } + + new Trie:itPData = @Entity_GetPData(pEntity); + return GetPDataMember(itPData, CE_MEMBER_ID); } -public Native_GetHandler(pluginID, argc) -{ - new szClassname[32]; - get_string(1, szClassname, charsmax(szClassname)); - - return GetHandler(szClassname); +public any:Native_GetMember(iPluginId, iArgc) { + new pEntity = get_param(1); + + static szMember[CE_MAX_MEMBER_LENGTH]; + get_string(2, szMember, charsmax(szMember)); + + new Trie:itPData = @Entity_GetPData(pEntity); + + return GetPDataMember(itPData, szMember); } -public Native_GetHandlerByEntity(pluginID, argc) -{ - new ent = get_param(1); +public Native_SetMember(iPluginId, iArgc) { + new pEntity = get_param(1); + + static szMember[CE_MAX_MEMBER_LENGTH]; + get_string(2, szMember, charsmax(szMember)); + + new iValue = get_param(3); - return GetHandlerByEntity(ent); + new Trie:itPData = @Entity_GetPData(pEntity); + + SetPDataMember(itPData, szMember, iValue); } -/*--------------------------------[ Hooks ]--------------------------------*/ +public Native_GetMemberVec(iPluginId, iArgc) { + new pEntity = get_param(1); + + static szMember[CE_MAX_MEMBER_LENGTH]; + get_string(2, szMember, charsmax(szMember)); -public OnClCmd_CESpawn(id, level, cid) -{ - if(!cmd_access(id, level, cid, 2)) { - return PLUGIN_HANDLED; - } - - static szClassname[128]; - read_args(szClassname, charsmax(szClassname)); - remove_quotes(szClassname); - - if(szClassname[0] == '^0') { - return PLUGIN_HANDLED; - } - - static Float:vOrigin[3]; - pev(id, pev_origin, vOrigin); - - new ent = Create(szClassname, vOrigin); - if (ent) { - dllfunc(DLLFunc_Spawn, ent); - } - - return PLUGIN_HANDLED; + new Trie:itPData = @Entity_GetPData(pEntity); + + static Float:vecValue[3]; + GetPDataMemberVec(itPData, szMember, vecValue); + set_array_f(3, vecValue, sizeof(vecValue)); } -public OnKeyValue(ent, kvd) -{ - if (!g_entityCount) { - return; - } - - static szKey[32]; - get_kvd(kvd, KV_KeyName, szKey, charsmax(szKey)); - - static szValue[32]; - get_kvd(kvd, KV_Value, szValue, charsmax(szValue)); - - if (equal(szKey, "classname")) { - SpawnLatestCe(); - - if (TrieGetCell(g_entityHandlers, szValue, g_lastCEIdx)) { - g_lastCEEnt = Create (szValue, .temp = false); // clone entity - } - } - - if (g_lastCEEnt) { - AddKvd(szKey, szValue); - } +public Native_SetMemberVec(iPluginId, iArgc) { + new pEntity = get_param(1); + + static szMember[CE_MAX_MEMBER_LENGTH]; + get_string(2, szMember, charsmax(szMember)); + + static Float:vecValue[3]; + get_array_f(3, vecValue, sizeof(vecValue)); + + new Trie:itPData = @Entity_GetPData(pEntity); + SetPDataMemberVec(itPData, szMember, vecValue); } -public OnSpawn(ent) -{ - if (!Check(ent)) { - return; - } - - new Array:ceData = GetPData(ent); - new ceIdx = ArrayGetCell(ceData, CEData_Handler); - - //Save start origin - if (ArrayGetCell(ceData, CEData_StartOrigin) == Invalid_Array) { - new Float:vOrigin[3]; - pev(ent, pev_origin, vOrigin); - - new Array:startOrigin = ArrayCreate(3, 1); - ArrayPushArray(startOrigin, vOrigin); - - ArraySetCell(ceData, CEData_StartOrigin, startOrigin); - } - - new tmpIdx = ArrayGetCell(ceData, CEData_TempIndex); - InitEntity(ent, ceIdx, (tmpIdx >= 0)); - - ExecuteFunction(CEFunction_Spawn, ceIdx, ent); +public Native_GetMemberString(iPluginId, iArgc) { + new pEntity = get_param(1); + + static szMember[CE_MAX_MEMBER_LENGTH]; + get_string(2, szMember, charsmax(szMember)); + + static szValue[128]; + get_string(3, szValue, charsmax(szValue)); + + new Trie:itPData = @Entity_GetPData(pEntity); + GetPDataMemberString(itPData, szMember, szValue, charsmax(szValue)); + set_string(4, szValue, get_param(5)); } -public OnTouch(ent, id) -{ - // if (pev(ent, pev_flags) & ~FL_ONGROUND) { - // return; - // } - - if (!is_user_connected(id)) { - return; - } - - if (!is_user_alive(id)) { - return; - } - - if (!g_entityCount) { - return; - } - - static szClassname[32]; - pev(ent, pev_classname, szClassname, charsmax(szClassname)); - - new ceIdx; - if (!TrieGetCell(g_entityHandlers, szClassname, ceIdx)) { - return; - } - - new CEPreset:preset = ArrayGetCell(g_entityPreset, ceIdx); - if (preset != CEPreset_Item) { - return; - } - - if (ExecuteFunction(CEFunction_Pickup, ceIdx, ent, id) > 0) { - ExecuteFunction(CEFunction_Picked, ceIdx, ent, id); - Kill(ent, id, .picked = true); - } +public Native_SetMemberString(iPluginId, iArgc) { + new pEntity = get_param(1); + + static szMember[CE_MAX_MEMBER_LENGTH]; + get_string(2, szMember, charsmax(szMember)); + + static szValue[128]; + get_string(3, szValue, charsmax(szValue)); + + new Trie:itPData = @Entity_GetPData(pEntity); + SetPDataMemberString(itPData, szMember, szValue); } -public OnKilled(ent, killer) -{ - if (!Check(ent)) { - return HAM_IGNORED; - } - - Kill(ent, killer); - return HAM_SUPERCEDE; +/*--------------------------------[ Commands ]--------------------------------*/ + +public Command_Spawn(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 2)) { + return PLUGIN_HANDLED; + } + + static szClassName[128]; + read_args(szClassName, charsmax(szClassName)); + remove_quotes(szClassName); + + if (equal(szClassName, NULL_STRING)) { + return PLUGIN_HANDLED; + } + + static Float:vecOrigin[3]; + pev(pPlayer, pev_origin, vecOrigin); + + new pEntity = @Entity_Create(szClassName, Float:{0.0, 0.0, 0.0}, false); + if (pEntity) { + dllfunc(DLLFunc_Spawn, pEntity); + engfunc(EngFunc_SetOrigin, pEntity, vecOrigin); + } + + return PLUGIN_HANDLED; } -public OnNewRound() -{ - Cleanup(); - set_task(0.1, "TaskRespawnEntities"); +/*--------------------------------[ Hooks ]--------------------------------*/ + +public FMHook_OnFreeEntPrivateData(pEntity) { + if (!pev_valid(pEntity)) { + return; + } + + if (@Entity_IsCustom(pEntity)) { + @Entity_FreePData(pEntity); + } } -/*--------------------------------[ Methods ]--------------------------------*/ +public FMHook_KeyValue(pEntity, hKVD) { + new szKey[32]; + get_kvd(hKVD, KV_KeyName, szKey, charsmax(szKey)); + + new szValue[32]; + get_kvd(hKVD, KV_Value, szValue, charsmax(szValue)); + + if (equal(szKey, "classname")) { + new iId = GetIdByClassName(szValue); + + if (iId != -1) { + // using set_kvd leads to duplicate kvd emit, this check will fix the issue + if (g_itPData == Invalid_Trie) { + set_kvd(hKVD, KV_Value, CE_BASE_CLASSNAME); + g_itPData = AllocPData(iId, pEntity); + } + } else { + // if for some reason data was not assigned + if (g_itPData != Invalid_Trie) { + FreePData(g_itPData); + g_itPData = Invalid_Trie; + } + } + } + + if (g_itPData != Invalid_Trie) { + if (equal(szKey, "classname")) { + SetPDataMember(g_itPData, CE_MEMBER_WORLD, true); + } else if (equal(szKey, "origin")) { + new Float:vecOrigin[3]; + UTIL_ParseVector(szValue, vecOrigin); + SetPDataMemberVec(g_itPData, CE_MEMBER_ORIGIN, vecOrigin); + } else if (equal(szKey, "angles")) { + new Float:vecAngles[3]; + UTIL_ParseVector(szValue, vecAngles); + SetPDataMemberVec(g_itPData, CE_MEMBER_ANGLES, vecAngles); + } else if (equal(szKey, "master")) { + SetPDataMemberString(g_itPData, CE_MEMBER_MASTER, szValue); + } else if (equal(szKey, "model")) { + SetPDataMemberString(g_itPData, CE_MEMBER_MODEL, szValue); + } + + new iId = GetPDataMember(g_itPData, CE_MEMBER_ID); + ExecuteHookFunction(CEFunction_KVD, iId, pEntity, szKey, szValue); + } -Register( - const szClassname[], - pluginID, - modelIndex, - const Float:vMins[3], - const Float:vMaxs[3], - Float:fLifeTime, - Float:fRespawnTime, - bool:ignoreRounds, - CEPreset:preset -) -{ - if (!g_entityCount) { - g_entityHandlers = TrieCreate(); - g_entityName = ArrayCreate(32); - g_entityPluginID = ArrayCreate(); - g_entityModelIndex = ArrayCreate(); - g_entityMaxs = ArrayCreate(3); - g_entityMins = ArrayCreate(3); - g_entityLifeTime = ArrayCreate(); - g_entityRespawnTime = ArrayCreate(); - g_entityIgnoreRounds = ArrayCreate(); - g_entityPreset = ArrayCreate(); - g_entityHooks = ArrayCreate(); - } - - new index = g_entityCount; - - TrieSetCell(g_entityHandlers, szClassname, index); - - ArrayPushString(g_entityName, szClassname); - ArrayPushCell(g_entityPluginID, pluginID); - ArrayPushCell(g_entityModelIndex, modelIndex); - ArrayPushArray(g_entityMins, vMins); - ArrayPushArray(g_entityMaxs, vMaxs); - ArrayPushCell(g_entityLifeTime, fLifeTime); - ArrayPushCell(g_entityRespawnTime, fRespawnTime); - ArrayPushCell(g_entityIgnoreRounds, ignoreRounds); - ArrayPushCell(g_entityPreset, preset); - ArrayPushCell(g_entityHooks, 0); - - g_entityCount++; - - log_amx("%s Entity %s successfully registred.", LOG_PREFIX, szClassname); - - return index; + return FMRES_HANDLED; } -Create(const szClassname[], const Float:vOrigin[3] = {0.0, 0.0, 0.0}, bool:temp = true) -{ - new ceIdx; - if (!g_entityCount || !TrieGetCell(g_entityHandlers, szClassname, ceIdx)) { - log_error(0, "%s Entity %s is not registered as custom entity.", LOG_PREFIX, szClassname); - return -1; - } - - new ent = engfunc(EngFunc_CreateNamedEntity, g_ptrBaseClassname); - set_pev(ent, pev_classname, szClassname, strlen(szClassname)); - - engfunc(EngFunc_SetOrigin, ent, vOrigin); - - new tmpIdx = -1; - new worldIdx = -1; - if (temp) { - if (!g_tmpEntities) { - g_tmpEntities = ArrayCreate(); - } - - tmpIdx = ArraySize(g_tmpEntities); - ArrayPushCell(g_tmpEntities, ent); - } else { - if (!g_worldEntities) { - g_worldEntities = ArrayCreate(); - } - - worldIdx = ArraySize(g_worldEntities); - ArrayPushCell(g_worldEntities, ent); - } - - new Array:ceData = CreatePData(ent); - - ArraySetCell(ceData, CEData_Handler, ceIdx); - ArraySetCell(ceData, CEData_TempIndex, tmpIdx); - ArraySetCell(ceData, CEData_WorldIndex, worldIdx); - ArraySetCell(ceData, CEData_StartOrigin, Invalid_Array); - - set_pev(ent, pev_deadflag, DEAD_NO); - - return ent; +public FMHook_Spawn(pEntity) { + if (g_itPData != Invalid_Trie) { + new iId = GetPDataMember(g_itPData, CE_MEMBER_ID); + + static szClassName[CE_MAX_NAME_LENGTH]; + ArrayGetString(g_rgCEData[CEData_Name], iId, szClassName, charsmax(szClassName)); + set_pev(pEntity, pev_classname, szClassName); + + @Entity_SetPData(pEntity, g_itPData); + g_itPData = Invalid_Trie; + } } -Respawn(ent) -{ - remove_task(ent+TASKID_SUM_RESPAWN); - - new Array:ceData = GetPData(ent); - - new Array:startOrigin = ArrayGetCell(ceData, CEData_StartOrigin); - if (startOrigin != Invalid_Array) { - static Float:vOrigin[3]; - ArrayGetArray(startOrigin, 0, vOrigin); - engfunc(EngFunc_SetOrigin, ent, vOrigin); - } - - set_pev(ent, pev_deadflag, DEAD_NO); - set_pev(ent, pev_effects, pev(ent, pev_effects) & ~EF_NODRAW); - - set_pev(ent, pev_flags, pev(ent, pev_flags) & ~FL_ONGROUND); - dllfunc(DLLFunc_Spawn, ent); +public HamHook_Base_Spawn_Post(pEntity) { + if (@Entity_IsCustom(pEntity)) { + @Entity_Spawn(pEntity); + } } -Kill(ent, killer = 0, bool:picked = false) -{ - new Array:ceData = GetPData(ent); - - new ceIdx = ArrayGetCell(ceData, CEData_Handler); - - if (ExecuteFunction(CEFunction_Kill, ceIdx, ent, killer, picked) != PLUGIN_CONTINUE) { - return; - } - - set_pev(ent, pev_takedamage, DAMAGE_NO); - set_pev(ent, pev_effects, pev(ent, pev_effects) | EF_NODRAW); - set_pev(ent, pev_solid, SOLID_NOT); - set_pev(ent, pev_movetype, MOVETYPE_NONE); - set_pev(ent, pev_flags, pev(ent, pev_flags) & ~FL_ONGROUND); - - //Get temp index - new tmpIdx = ArrayGetCell(ceData, CEData_TempIndex); - - //Check if entity is temp - if (tmpIdx < 0) { - new Float:fRespawnTime = ArrayGetCell(g_entityRespawnTime, ceIdx); - if (fRespawnTime > 0.0) { - set_pev(ent, pev_deadflag, DEAD_RESPAWNABLE); - set_task(fRespawnTime, "TaskRespawn", ent+TASKID_SUM_RESPAWN); - } else { - set_pev(ent, pev_deadflag, DEAD_DEAD); - } - } else { - set_pev(ent, pev_deadflag, DEAD_DISCARDBODY); - } - - remove_task(ent+TASKID_SUM_DISAPPEAR); - - ExecuteFunction(CEFunction_Killed, ceIdx, ent, killer, picked); - - if (tmpIdx >= 0) { - set_task(0.0, "TaskRemove", ent+TASKID_SUM_REMOVE); - } +public HamHook_Base_ObjectCaps(pEntity) { + if (@Entity_IsCustom(pEntity)) { + new iObjectCaps = @Entity_GetObjectCaps(pEntity); + SetHamReturnInteger(iObjectCaps); + return HAM_OVERRIDE; + } + + return HAM_IGNORED; } -bool:Remove(ent) -{ - if (!Check(ent)) { - log_error(0, "%s Entity %i is not a custom entity.", LOG_PREFIX, ent); - return false; - } - - new Array:ceData = GetPData(ent); - - //Get temp index - new tmpIdx = ArrayGetCell(ceData, CEData_TempIndex); - - //Check if entity is temp - if (tmpIdx >= 0) { - //Remove entity from storage of temp entities - ArraySetCell(g_tmpEntities, tmpIdx, 0); - } else { - //Get world index - new worldIdx = ArrayGetCell(ceData, CEData_WorldIndex); - if (worldIdx >= 0) { - ArraySetCell(g_worldEntities, worldIdx, 0); - } - } - - ClearTasks(ent); - - //Get handler - new ceIdx = ArrayGetCell(ceData, CEData_Handler); - - //Execute remove function - ExecuteFunction(CEFunction_Remove, ceIdx, ent); - - DestroyPData(ent); - - //Remove entity - set_pev(ent, pev_flags, pev(ent, pev_flags) | FL_KILLME); - dllfunc(DLLFunc_Think, ent); - - return true; +public HamHook_Base_Restart(pEntity) { + if (@Entity_IsCustom(pEntity)) { + @Entity_Restart(pEntity); + return HAM_HANDLED; + } + + return HAM_IGNORED; } -Check(ent) -{ - return (pev(ent, pev_gaitsequence) == 'c'+'e'); +public HamHook_Base_Touch(pEntity, pToucher) { + if (@Entity_IsCustom(pEntity)) { + @Entity_Touch(pEntity, pToucher); + return HAM_HANDLED; + } + + return HAM_IGNORED; } -ClearTasks(ent) -{ - remove_task(ent+TASKID_SUM_DISAPPEAR); - remove_task(ent+TASKID_SUM_RESPAWN); - remove_task(ent+TASKID_SUM_REMOVE); +public HamHook_Base_Killed(pEntity, pKiller) { + if (@Entity_IsCustom(pEntity)) { + @Entity_Kill(pEntity, pKiller, false); + return HAM_SUPERCEDE; + } + + return HAM_IGNORED; } -GetHandlerByEntity(ent) -{ - if (!Check(ent)) { - return -1; - } - - new Array:ceData = GetPData(ent); - - return ArrayGetCell(ceData, CEData_Handler); +public HamHook_Base_Think(pEntity, pKiller) { + if (@Entity_IsCustom(pEntity)) { + @Entity_Think(pEntity); + return HAM_HANDLED; + } + + return HAM_IGNORED; } -GetHandler(const szClassname[]) -{ - new ceIdx; - if (!g_entityCount || !TrieGetCell(g_entityHandlers, szClassname, ceIdx)) { - return -1; - } +/*--------------------------------[ Methods ]--------------------------------*/ + +@Entity_Create(const szClassName[], const Float:vecOrigin[3], bool:bTemp) { + new iId = GetIdByClassName(szClassName); + if (iId == -1) { + return 0; + } - return ceIdx; + new this = engfunc(EngFunc_CreateNamedEntity, g_iszBaseClassName); + set_pev(this, pev_classname, szClassName); + engfunc(EngFunc_SetOrigin, this, vecOrigin); + // set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); + + new Trie:itPData = @Entity_AllocPData(this, iId); + SetPDataMemberVec(itPData, CE_MEMBER_ORIGIN, vecOrigin); + + return this; } -Cleanup() -{ - if (!g_tmpEntities) { - return; - } - - new size = ArraySize(g_tmpEntities); - - for (new i = size - 1; i >= 0; --i) - { - new ent = ArrayGetCell(g_tmpEntities, i); - - if (!ent || !pev_valid(ent)) { - continue; - } - - new ceIdx = GetHandlerByEntity(ent); - if (ceIdx == -1) { - log_error(0, "%s Entity %i is not a custom entity.", LOG_PREFIX, ent); - continue; - } - - new ignoreRounds = ArrayGetCell(g_entityIgnoreRounds, ceIdx); - if (!ignoreRounds) { - Remove(ent); - ArrayDeleteItem(g_tmpEntities, i); - } - } - - // update temp entities refs - new newSize = ArraySize(g_tmpEntities); - for (new i = 0; i < newSize; ++i) { - new ent = ArrayGetCell(g_tmpEntities, i); - - if (!ent || !pev_valid(ent)) { - continue; - } - - new Array:ceData = GetPData(ent); - ArraySetCell(ceData, CEData_TempIndex, i); - } +@Entity_Spawn(this) { + new Float:flGameTime = get_gametime(); + + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); + + new Float:flLifeTime = bIsWorld ? 0.0 : ArrayGetCell(g_rgCEData[CEData_LifeTime], iId); + if (flLifeTime > 0.0) { + SetPDataMember(itPData, CE_MEMBER_NEXTKILL, flGameTime + flLifeTime); + set_pev(this, pev_nextthink, flGameTime + flLifeTime); + } else { + SetPDataMember(itPData, CE_MEMBER_NEXTKILL, 0.0); + } + + set_pev(this, pev_deadflag, DEAD_NO); + + set_pev(this, pev_effects, pev(this, pev_effects) & ~EF_NODRAW); + set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); + + static szModel[MAX_RESOURCE_PATH_LENGTH]; + GetPDataMemberString(itPData, CE_MEMBER_MODEL, szModel, charsmax(szModel)); + if (!equal(szModel, NULL_STRING)) { + engfunc(EngFunc_SetModel, this, szModel); + } + + static Float:vecMins[3]; + ArrayGetArray(g_rgCEData[CEData_Mins], iId, vecMins); + + static Float:vecMaxs[3]; + ArrayGetArray(g_rgCEData[CEData_Maxs], iId, vecMaxs); + + engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); + + static Float:vecOrigin[3]; + GetPDataMemberVec(itPData, CE_MEMBER_ORIGIN, vecOrigin); + engfunc(EngFunc_SetOrigin, this, vecOrigin); + + static Float:vecAngles[3]; + GetPDataMemberVec(itPData, CE_MEMBER_ANGLES, vecAngles); + set_pev(this, pev_angles, vecAngles); + + new iModelIndex = ArrayGetCell(g_rgCEData[CEData_ModelIndex], iId); + if (iModelIndex > 0) { + set_pev(this, pev_modelindex, iModelIndex); + } + + new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); + @Entity_ApplyPreset(this, iPreset); + + ExecuteHookFunction(CEFunction_Spawn, iId, this); } -RespawnEntities() -{ - if (!g_worldEntities) { - return; - } - - new size = ArraySize(g_worldEntities); - for (new i = 0; i < size; ++i) { - new ent = ArrayGetCell(g_worldEntities, i); - if (ent) { - Respawn(ent); - - new szModel[64]; - pev(ent, pev_model, szModel, charsmax(szModel)); - if (szModel[0] == '*') { - engfunc(EngFunc_SetModel, ent, szModel); - } - } - } +public @Entity_Restart(this) { + new iObjectCaps = ExecuteHamB(Ham_ObjectCaps, this); + + if (~iObjectCaps & FCAP_ACROSS_TRANSITION) { + dllfunc(DLLFunc_Spawn, this); + } } -bool:InitEntity(ent, ceIdx, bool:temp) -{ - static Float:vMins[3]; - ArrayGetArray(g_entityMins, ceIdx, vMins); - - static Float:vMaxs[3]; - ArrayGetArray(g_entityMaxs, ceIdx, vMaxs); - - static Float:vOrigin[3]; - pev(ent, pev_origin, vOrigin); - - engfunc(EngFunc_SetSize, ent, vMins, vMaxs); - engfunc(EngFunc_SetOrigin, ent, vOrigin); - - { - new preset = ArrayGetCell(g_entityPreset, ceIdx); - ApplyPreset(ent, preset); - } - - new modelIndex = ArrayGetCell(g_entityModelIndex, ceIdx); - if (modelIndex > 0) { - set_pev(ent, pev_modelindex, modelIndex); - } - - if (temp) { - new Float:fLifeTime = ArrayGetCell(g_entityLifeTime, ceIdx); - if (fLifeTime > 0.0) { - set_task(fLifeTime, "TaskDisappear", ent+TASKID_SUM_DISAPPEAR); - } - } - - return true; +@Entity_Touch(this, pToucher) { + if (is_user_alive(pToucher)) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); + + switch (iPreset) { + case CEPreset_Item: @Entity_Pickup(this, pToucher); + case CEPreset_Trigger: @Entity_Trigger(this, pToucher); + } + } } -ApplyPreset(ent, preset) -{ - switch (preset) - { - case CEPreset_Item: - { - set_pev(ent, pev_solid, SOLID_TRIGGER); - set_pev(ent, pev_movetype, MOVETYPE_TOSS); - set_pev(ent, pev_takedamage, DAMAGE_NO); - } - case CEPreset_NPC: - { - set_pev(ent, pev_solid, SOLID_BBOX); - set_pev(ent, pev_movetype, MOVETYPE_PUSHSTEP); - set_pev(ent, pev_takedamage, DAMAGE_AIM); - - set_pev(ent, pev_controller_0, 125); - set_pev(ent, pev_controller_1, 125); - set_pev(ent, pev_controller_2, 125); - set_pev(ent, pev_controller_3, 125); - - set_pev(ent, pev_gamestate, 1); - set_pev(ent, pev_gravity, 1.0); - set_pev(ent, pev_flags, pev(ent, pev_flags) | FL_MONSTER); - set_pev(ent, pev_fixangle, 1); - set_pev(ent, pev_friction, 0.25); - } - case CEPreset_Prop: - { - set_pev(ent, pev_solid, SOLID_BBOX); - set_pev(ent, pev_movetype, MOVETYPE_FLY); - set_pev(ent, pev_takedamage, DAMAGE_NO); - } - } +@Entity_Pickup(this, pToucher) { + if (~pev(this, pev_flags) & FL_ONGROUND) { + return; + } + + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + + if (ExecuteHookFunction(CEFunction_Pickup, iId, this, pToucher)) { + ExecuteHookFunction(CEFunction_Picked, iId, this, pToucher); + @Entity_Kill(this, pToucher, true); + } } -AddKvd(const szKey[], const szValue[]) -{ - if (g_ceKvd == Invalid_Array) { - g_ceKvd = ArrayCreate(KVD); - } +@Entity_Trigger(this, pActivator) { + if (!@Entity_CanActivate(this, pActivator)) { + return; + } + + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + new Float:flDelay = GetPDataMember(itPData, CE_MEMBER_DELAY); - new kvd[KVD]; - copy(kvd[KVD_Key], charsmax(kvd[KVD_Key]), szKey); - copy(kvd[KVD_Value], charsmax(kvd[KVD_Value]), szValue); - ArrayPushArray(g_ceKvd, kvd); + set_pev(this, pev_nextthink, get_gametime() + flDelay); + ExecuteHookFunction(CEFunction_Activated, iId, this, pActivator); } -SpawnLatestCe() -{ - if (!g_lastCEEnt) { - return; - } - - if (g_ceKvd != Invalid_Array) { - new size = ArraySize(g_ceKvd); - for (new i = 0; i < size; ++i) { - new kvd[KVD]; - ArrayGetArray(g_ceKvd, i, kvd); - DispatchKeyValue(g_lastCEEnt, kvd[KVD_Key], kvd[KVD_Value]); // dispatch kvd to cloned entity - ExecuteFunction(CEFunction_KVD, g_lastCEIdx, g_lastCEEnt, kvd[KVD_Key], kvd[KVD_Value]); - } - } - - dllfunc(DLLFunc_Spawn, g_lastCEEnt); // spawn last handled entity - - if (g_ceKvd != Invalid_Array) { - new size = ArraySize(g_ceKvd); - for (new i = 0; i < size; ++i) { - new kvd[KVD]; - ArrayGetArray(g_ceKvd, i, kvd); - - if (equal(kvd[KVD_Key], "model") && kvd[KVD_Value][0] == '*') { - engfunc(EngFunc_SetModel, g_lastCEEnt, kvd[KVD_Value]); - } - } - } - - g_lastCEEnt = 0; - - if (g_ceKvd != Invalid_Array) { - ArrayDestroy(g_ceKvd); - g_ceKvd = Invalid_Array; - } +@Entity_Kill(this, pKiller, bool:bPicked) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + + if (ExecuteHookFunction(CEFunction_Kill, iId, this, pKiller, bPicked) != PLUGIN_CONTINUE) { + return; + } + + set_pev(this, pev_takedamage, DAMAGE_NO); + set_pev(this, pev_effects, pev(this, pev_effects) | EF_NODRAW); + set_pev(this, pev_solid, SOLID_NOT); + set_pev(this, pev_movetype, MOVETYPE_NONE); + set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); + + new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); + + if (bIsWorld) { + new Float:flRespawnTime = ArrayGetCell(g_rgCEData[CEData_RespawnTime], iId); + new Float:flGameTime = get_gametime(); + + if (flRespawnTime > 0.0) { + SetPDataMember(itPData, CE_MEMBER_NEXTRESPAWN, flGameTime + flRespawnTime); + set_pev(this, pev_deadflag, DEAD_RESPAWNABLE); + set_pev(this, pev_nextthink, flGameTime + flRespawnTime); + } else { + set_pev(this, pev_deadflag, DEAD_DEAD); + } + } else { + set_pev(this, pev_deadflag, DEAD_DISCARDBODY); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); + } + + ExecuteHookFunction(CEFunction_Killed, iId, this, pKiller, bPicked); +} + +@Entity_Think(this) { + new Float:flGameTime = get_gametime(); + + new Trie:itPData = @Entity_GetPData(this); + new iDeadFlag = pev(this, pev_deadflag); + + switch (iDeadFlag) { + case DEAD_NO: { + new Float:flNextKill = GetPDataMember(itPData, CE_MEMBER_NEXTKILL); + if (flNextKill > 0.0 && flNextKill <= flGameTime) { + ExecuteHamB(Ham_Killed, this, 0, 0); + } + } + case DEAD_RESPAWNABLE: { + new Float:flNextRespawn = GetPDataMember(itPData, CE_MEMBER_NEXTRESPAWN); + if (flNextRespawn <= flGameTime) { + set_pev(this, pev_deadflag, DEAD_NO); + set_pev(this, pev_effects, pev(this, pev_effects) & ~EF_NODRAW); + set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); + dllfunc(DLLFunc_Spawn, this); + } + } + } +} + +Trie:@Entity_GetPData(this) { + // Return the current allocated data if the entity is at the initialization stage + if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER)) { + return g_itPData; + } + + return Trie:pev(this, pev_iStepLeft); +} + +@Entity_SetPData(this, Trie:itPData) { + set_pev(this, pev_gaitsequence, CE_ENTITY_SECRET); + set_pev(this, pev_iStepLeft, itPData); +} + +Trie:@Entity_AllocPData(this, iId) { + new Trie:itPData = AllocPData(iId, this); + @Entity_SetPData(this, itPData); + return itPData; +} + +@Entity_FreePData(this) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + ExecuteHookFunction(CEFunction_Remove, iId, this); + + FreePData(itPData); + + set_pev(this, pev_gaitsequence, 0); + set_pev(this, pev_iStepLeft, 0); +} + +bool:@Entity_IsCustom(this) { + return pev(this, pev_gaitsequence) == CE_ENTITY_SECRET; +} + +@Entity_ApplyPreset(this, CEPreset:iPreset) { + new Trie:itPData = @Entity_GetPData(this); + + switch (iPreset) { + case CEPreset_Item: { + set_pev(this, pev_solid, SOLID_TRIGGER); + set_pev(this, pev_movetype, MOVETYPE_TOSS); + set_pev(this, pev_takedamage, DAMAGE_NO); + } + case CEPreset_NPC: { + set_pev(this, pev_solid, SOLID_BBOX); + set_pev(this, pev_movetype, MOVETYPE_PUSHSTEP); + set_pev(this, pev_takedamage, DAMAGE_AIM); + + set_pev(this, pev_controller_0, 125); + set_pev(this, pev_controller_1, 125); + set_pev(this, pev_controller_2, 125); + set_pev(this, pev_controller_3, 125); + + set_pev(this, pev_gamestate, 1); + set_pev(this, pev_gravity, 1.0); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_MONSTER); + set_pev(this, pev_fixangle, 1); + set_pev(this, pev_friction, 0.25); + } + case CEPreset_Prop: { + set_pev(this, pev_solid, SOLID_BBOX); + set_pev(this, pev_movetype, MOVETYPE_FLY); + set_pev(this, pev_takedamage, DAMAGE_NO); + } + case CEPreset_Trigger: { + set_pev(this, pev_solid, SOLID_TRIGGER); + set_pev(this, pev_movetype, MOVETYPE_NONE); + set_pev(this, pev_effects, EF_NODRAW); + SetPDataMember(itPData, CE_MEMBER_DELAY, 0.1); + } + case CEPreset_BSP: { + set_pev(this, pev_movetype, MOVETYPE_PUSH); + set_pev(this, pev_solid, SOLID_BSP); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_WORLDBRUSH); + } + } +} + +@Entity_CanActivate(this, pTarget) { + static Float:flNextThink; + pev(this, pev_nextthink, flNextThink); + + if (flNextThink > get_gametime()) { + return false; + } + + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + + if (!ExecuteHookFunction(CEFunction_CanActivate, iId, this, pTarget)) { + return false; + } + + static szMaster[32]; + GetPDataMemberString(@Entity_GetPData(this), CE_MEMBER_MASTER, szMaster, charsmax(szMaster)); + + return UTIL_IsMasterTriggered(szMaster, pTarget); +} + +@Entity_GetObjectCaps(this) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + new bool:bIgnoreRound = ArrayGetCell(g_rgCEData[CEData_IgnoreRounds], iId); + new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); + + new iObjectCaps = 0; + + if (bIgnoreRound) { + iObjectCaps |= FCAP_ACROSS_TRANSITION; + } else { + if (bIsWorld) { + iObjectCaps |= FCAP_MUST_RESET; + } else { + iObjectCaps |= FCAP_MUST_RELEASE; + } + } + + return iObjectCaps; +} + +/*--------------------------------[ Functions ]--------------------------------*/ + +InitStorages() { + g_itEntityIds = TrieCreate(); + g_rgCEData[CEData_Name] = ArrayCreate(CE_MAX_NAME_LENGTH); + g_rgCEData[CEData_ModelIndex] = ArrayCreate(); + g_rgCEData[CEData_Mins] = ArrayCreate(3); + g_rgCEData[CEData_Maxs] = ArrayCreate(3); + g_rgCEData[CEData_LifeTime] = ArrayCreate(); + g_rgCEData[CEData_RespawnTime] = ArrayCreate(); + g_rgCEData[CEData_Preset] = ArrayCreate(); + g_rgCEData[CEData_IgnoreRounds] = ArrayCreate(); + + for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { + g_rgCEData[CEData_Hooks][iFunction] = ArrayCreate(); + g_rgCEData[CEData_Hooks][iFunction] = ArrayCreate(); + } +} + +DestroyStorages() { + for (new iId = 0; iId < g_iEntitiesNum; ++iId) { + FreeRegisteredEntityData(iId); + } + + for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { + ArrayDestroy(g_rgCEData[CEData_Hooks][iFunction]); + } + + for (new CEData:iData = CEData:0; iData < CEData; ++iData) { + ArrayDestroy(Array:g_rgCEData[iData]); + } + + TrieDestroy(g_itEntityIds); } -RegisterHook(CEFunction:function, const szClassname[], const szCallback[], pluginID = -1) -{ - new ceIdx; - if (!g_entityCount || !TrieGetCell(g_entityHandlers, szClassname, ceIdx)) { - log_error(0, "%s Entity %s is not registered.", LOG_PREFIX, szClassname); - return -1; - } - - new funcID = get_func_id(szCallback, pluginID); - if (funcID < 0) { - new szFilename[32]; - get_plugin(pluginID, szFilename, charsmax(szFilename)); - log_error(0, "Function %s not found in plugin %s.", szCallback, szFilename); - return -1; - } - - new Array:functions = ArrayGetCell(g_entityHooks, ceIdx); - if (!functions) { - functions = InitializeFunctions(ceIdx); - } - - new Array:functionHooks = ArrayGetCell(functions, _:function); - - new Array:hookData = CreateHookData(pluginID, funcID); - return ArrayPushCell(functionHooks, hookData); +RegisterEntity( + const szClassName[], + iModelIndex, + const Float:vecMins[3], + const Float:vecMaxs[3], + Float:flLifeTime, + Float:flRespawnTime, + bool:bIgnoreRounds, + CEPreset:iPreset +) { + new iId = g_iEntitiesNum; + + TrieSetCell(g_itEntityIds, szClassName, iId); + ArrayPushString(g_rgCEData[CEData_Name], szClassName); + ArrayPushCell(g_rgCEData[CEData_ModelIndex], iModelIndex); + ArrayPushArray(g_rgCEData[CEData_Mins], vecMins); + ArrayPushArray(g_rgCEData[CEData_Maxs], vecMaxs); + ArrayPushCell(g_rgCEData[CEData_LifeTime], flLifeTime); + ArrayPushCell(g_rgCEData[CEData_RespawnTime], flRespawnTime); + ArrayPushCell(g_rgCEData[CEData_Preset], iPreset); + ArrayPushCell(g_rgCEData[CEData_IgnoreRounds], bIgnoreRounds); + + for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { + ArrayPushCell(g_rgCEData[CEData_Hooks][iFunction], ArrayCreate(2)); + } + + g_iEntitiesNum++; + + log_amx("%s Custom entity %s registered! ID: %d", LOG_PREFIX, szClassName, iId); + + return iId; } -Array:InitializeFunctions(ceIdx) -{ - new Array:functions = ArrayCreate(1, _:CEFunction); - - for (new i = 0; i < _:CEFunction; ++i) { - new Array:functionHooks = ArrayCreate(); - ArrayPushCell(functions, functionHooks); - } - - ArraySetCell(g_entityHooks, ceIdx, functions); - - return functions; +FreeRegisteredEntityData(iId) { + for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { + new Array:irgHooks = ArrayGetCell(g_rgCEData[CEData_Hooks][CEFunction:iFunction], iId); + ArrayDestroy(irgHooks); + ArraySetCell(g_rgCEData[CEData_Hooks][CEFunction:iFunction], iId, Invalid_Array); + } } -DestroyFunctions(ceIdx) -{ - new Array:functions = ArrayGetCell(g_entityHooks, ceIdx); - - if (!functions) { - return; - } - - for (new i = 0; i < _:CEFunction; ++i) { - new Array:functionHooks = ArrayGetCell(functions, i); - ArrayDestroy(functionHooks); - } - - ArrayDestroy(functions); - ArraySetCell(g_entityHooks, ceIdx, 0); +GetIdByClassName(const szClassName[]) { + new iId = -1; + TrieGetCell(g_itEntityIds, szClassName, iId); + return iId; } -Array:CreateHookData(pluginID, funcID) -{ - new Array:hookData = ArrayCreate(1, _:CEHookData); - ArrayPushCell(hookData, pluginID); - ArrayPushCell(hookData, funcID); - - return hookData; +RegisterEntityHook(CEFunction:iFunction, const szClassName[], const szCallback[], iPluginId = -1) { + new iId = GetIdByClassName(szClassName); + if (iId == -1) { + log_error(0, "%s Entity %s is not registered.", LOG_PREFIX, szClassName); + return -1; + } + + new iFunctionId = get_func_id(szCallback, iPluginId); + if (iFunctionId < 0) { + new szFilename[32]; + get_plugin(iPluginId, szFilename, charsmax(szFilename)); + log_error(0, "%s Function %s not found in plugin %s.", LOG_PREFIX, szCallback, szFilename); + return -1; + } + + new rgiHookData[CEHookData]; + rgiHookData[CEHookData_FuncID] = iFunctionId; + rgiHookData[CEHookData_PluginID] = iPluginId; + + new Array:irgHooks = ArrayGetCell(g_rgCEData[CEData_Hooks][iFunction], iId); + new iHookId = ArrayPushArray(irgHooks, rgiHookData[CEHookData:0], _:CEHookData); + + return iHookId; +} + +Trie:AllocPData(iId, pEntity) { + new Trie:itPData = TrieCreate(); + SetPDataMember(itPData, CE_MEMBER_ID, iId); + SetPDataMemberVec(itPData, CE_MEMBER_ORIGIN, Float:{0.0, 0.0, 0.0}); + SetPDataMember(itPData, CE_MEMBER_WORLD, false); + SetPDataMember(itPData, CE_MEMBER_POINTER, pEntity); + return itPData; } -ExecuteFunction(CEFunction:function, ceIdx, any:...) -{ - new result = 0; - new ent = getarg(2); - - new Array:functions = ArrayGetCell(g_entityHooks, ceIdx); - if (functions == Invalid_Array) { - return 0; - } - - new Array:functionHooks = ArrayGetCell(functions, _:function); - - new count = ArraySize(functionHooks); - for (new i = 0; i < count; ++i) - { - new Array:hookData = ArrayGetCell(functionHooks, i); - new pluginID = ArrayGetCell(hookData, _:CEHookData_PluginID); - new funcID = ArrayGetCell(hookData, _:CEHookData_FuncID); - - if (funcID < 0) { - continue; - } - - if (callfunc_begin_i(funcID, pluginID) == 1) - { - callfunc_push_int(ent); - - switch (function) - { - case CEFunction_Kill, CEFunction_Killed: { - new killer = getarg(3); - new bool:picked = bool:getarg(4); - callfunc_push_int(killer); - callfunc_push_int(picked); - } - case CEFunction_Pickup, CEFunction_Picked: { - new id = getarg(3); - callfunc_push_int(id); - } - case CEFunction_KVD: { - static szKey[32]; - for (new i = 0; i < charsmax(szKey); ++i) { - szKey[i] = getarg(3, i); - - if (szKey[i] == '^0') { - break; - } - } - - static szValue[32]; - for (new i = 0; i < charsmax(szValue); ++i) { - szValue[i] = getarg(4, i); - - if (szValue[i] == '^0') { - break; - } - } - - callfunc_push_str(szKey); - callfunc_push_str(szValue); - } - } - - result += callfunc_end(); - } - } - - return result; +FreePData(Trie:itPData) { + TrieDestroy(itPData); } -Array:CreatePData(ent) -{ - new Array:ceData = ArrayCreate(1, CEData); - for (new i = 0; i < CEData; ++i) { - ArrayPushCell(ceData, 0); - } - - set_pev(ent, pev_gaitsequence, 'c'+'e'); - set_pev(ent, pev_iStepLeft, ceData); - - return ceData; +any:GetPDataMember(Trie:itPData, const szMember[]) { + static any:value; + return TrieGetCell(itPData, szMember, value) ? value : 0; } -DestroyPData(ent) -{ - //Destroy data array - new Array:ceData = GetPData(ent); - { - new Array:startOrigin = ArrayGetCell(ceData, CEData_StartOrigin); - if (startOrigin != Invalid_Array) { - ArrayDestroy(startOrigin); - } - } ArrayDestroy(ceData); - - set_pev(ent, pev_gaitsequence, 0); - set_pev(ent, pev_iStepLeft, 0); +SetPDataMember(Trie:itPData, const szMember[], any:value) { + TrieSetCell(itPData, szMember, value); } -Array:GetPData(ent) -{ - new Array:ceData = any:pev(ent, pev_iStepLeft); - if (ceData == Invalid_Array) { - log_error(0, "%s Invalid Custom Entity data provided for %i.", LOG_PREFIX, ent); - } - - return ceData; +GetPDataMemberString(Trie:itPData, const szMember[], szOutput[], iLen) { + return !!TrieGetString(itPData, szMember, szOutput, iLen); } -/*--------------------------------[ Tasks ]--------------------------------*/ +SetPDataMemberString(Trie:itPData, const szMember[], const szValue[]) { + TrieSetString(itPData, szMember, szValue); +} + +GetPDataMemberVec(Trie:itPData, const szMember[], Float:vecOut[3]) { + return !!TrieGetArray(itPData, szMember, vecOut, 3); +} -public TaskDisappear(taskID) -{ - new ent = taskID - TASKID_SUM_DISAPPEAR; - Kill(ent, 0); +SetPDataMemberVec(Trie:itPData, const szMember[], const Float:vecValue[3]) { + TrieSetArray(itPData, szMember, vecValue, 3); } -public TaskRespawn(taskID) -{ - new ent = taskID - TASKID_SUM_RESPAWN; - Respawn(ent); +ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { + new iResult = 0; + + new Array:irgHooks = ArrayGetCell(g_rgCEData[CEData_Hooks][iFunction], iId); + + new iHooksNum = ArraySize(irgHooks); + for (new iHookId = 0; iHookId < iHooksNum; ++iHookId) { + new iFunctionId = ArrayGetCell(irgHooks, iHookId, _:CEHookData_FuncID); + new iPluginId = ArrayGetCell(irgHooks, iHookId, _:CEHookData_PluginID); + + if (callfunc_begin_i(iFunctionId, iPluginId) == 1) { + callfunc_push_int(pEntity); + + switch (iFunction) { + case CEFunction_Kill, CEFunction_Killed: { + new pKiller = getarg(3); + new bool:bPicked = bool:getarg(4); + callfunc_push_int(pKiller); + callfunc_push_int(bPicked); + } + case CEFunction_Pickup, CEFunction_Picked: { + new pPlayer = getarg(3); + callfunc_push_int(pPlayer); + } + case CEFunction_CanActivate, CEFunction_Activated: { + new pPlayer = getarg(3); + callfunc_push_int(pPlayer); + } + case CEFunction_KVD: { + static szKey[32]; + for (new i = 0; i < charsmax(szKey); ++i) { + szKey[i] = getarg(3, i); + + if (szKey[i] == '^0') { + break; + } + } + + static szValue[32]; + for (new i = 0; i < charsmax(szValue); ++i) { + szValue[i] = getarg(4, i); + + if (szValue[i] == '^0') { + break; + } + } + + callfunc_push_str(szKey); + callfunc_push_str(szValue); + } + } + + iResult += callfunc_end(); + } + } + + return iResult; } -public TaskRemove(taskID) -{ - new ent = taskID - TASKID_SUM_REMOVE; - Remove(ent); +/*--------------------------------[ Stocks ]--------------------------------*/ + +stock bool:UTIL_IsMasterTriggered(const szMaster[], pActivator) { + if (!equal(szMaster, NULL_STRING)) { + new pMaster = engfunc(FM_FindEntityByString, 0, "targetname", szMaster); + + if (pMaster && (ExecuteHam(Ham_ObjectCaps, pMaster) & FCAP_MASTER)) { + return !!ExecuteHamB(Ham_IsTriggered, pMaster, pActivator); + } + } + + return true; } -public TaskRespawnEntities() -{ - RespawnEntities(); +stock UTIL_ParseVector(const szBuffer[], Float:vecOut[3]) { + new rgszOrigin[3][8]; + parse(szBuffer, rgszOrigin[0], charsmax(rgszOrigin[]), rgszOrigin[1], charsmax(rgszOrigin[]), rgszOrigin[2], charsmax(rgszOrigin[])); + + for (new i = 0; i < 3; ++i) { + vecOut[i] = str_to_float(rgszOrigin[i]); + } } diff --git a/include/api_custom_entities.inc b/include/api_custom_entities.inc index 7e1de2a..f9ab2dc 100644 --- a/include/api_custom_entities.inc +++ b/include/api_custom_entities.inc @@ -5,118 +5,134 @@ #pragma reqlib api_custom_entities -#define CE_LOG_PREFIX "[CE]" #define CE_BASE_CLASSNAME "info_target" +#define CE_ENTITY_SECRET ('c'+'e'+'2') -enum CEPreset -{ - CEPreset_None = 0, - CEPreset_Item, // For items - CEPreset_NPC, // For NPC - CEPreset_Prop // For static props +#define CE_MAX_NAME_LENGTH 64 +#define CE_MAX_MEMBER_LENGTH 64 +#define CE_MAX_CALLBACK_LENGTH 64 + +#define CE_MEMBER_ID "_id" +#define CE_MEMBER_POINTER "_ptr" +#define CE_MEMBER_WORLD "_world" +#define CE_MEMBER_ORIGIN "_origin" +#define CE_MEMBER_ANGLES "_angles" +#define CE_MEMBER_MASTER "_master" +#define CE_MEMBER_MODEL "_model" +#define CE_MEMBER_DELAY "_delay" +#define CE_MEMBER_NEXTKILL "_nextkill" +#define CE_MEMBER_NEXTRESPAWN "_nextrespawn" + +enum CEPreset { + CEPreset_None = 0, + CEPreset_Item, + CEPreset_NPC, + CEPreset_Prop, + CEPreset_Trigger, + CEPreset_BSP }; -enum CEFunction -{ - CEFunction_Spawn, // Call when entity spawned - CEFunction_Kill, // Call when some plugin try to kill entity. return PLUGIN_HANDLED to discard kill. - CEFunction_Killed, // Call when entity killed - CEFunction_Remove, // Call when entity removed - CEFunction_Picked, // Call when player pick item - CEFunction_Pickup, // Call when player touch item. Should return PLUGIN_HANDLED if picked. - CEFunction_KVD // Call when new key value obtained +enum CEFunction { + CEFunction_Spawn, // Call when entity spawned + CEFunction_Kill, // Call when some plugin try to kill entity. return PLUGIN_HANDLED to discard kill. + CEFunction_Killed, // Call when entity killed + CEFunction_Remove, // Call when entity removed + CEFunction_Picked, // Call when player pick item + CEFunction_Pickup, // Call when player touch item. Should return PLUGIN_HANDLED if picked. + CEFunction_KVD, // Call when new key value obtained + CEFunction_CanActivate, // Call every trigger activation check + CEFunction_Activated // Call when player activates trigger }; + /* * Register entity. * - * @param szName Name of entity. - * @param modelIndex Precached model index. - * @param size Size of entity. - * @param offset Offset of entity origin. - * @param lifeTime Life time of entity. - * @param preset Preset for entity. - * @return Handler of registered entity. + * @param szName Name of entity. + * @param modelIndex Precached model index. + * @param size Size of entity. + * @param offset Offset of entity origin. + * @param lifeTime Life time of entity. + * @param preset Preset for entity. + * @return Handler of registered entity. */ -native CE_Register -( - const szName[], - modelIndex = 0, - const Float:vMins[3] = {-8.0, -8.0, -8.0}, - const Float:vMaxs[3] = {8.0, 8.0, 8.0}, - Float:fLifeTime = 0.0, - Float:fRespawnTime = 10.0, - bool:ignoreRounds = false, - CEPreset:preset = CEPreset_None +native CE_Register ( + const szName[], + modelIndex = 0, + const Float:vMins[3] = {-8.0, -8.0, -8.0}, + const Float:vMaxs[3] = {8.0, 8.0, 8.0}, + Float:fLifeTime = 0.0, + Float:fRespawnTime = 10.0, + bool:ignoreRounds = false, + CEPreset:preset = CEPreset_None ); /* * Spawn entity. * - * @param szName Name of entity. - * @param vOrigin Spawn origin. - * @return Entity index. + * @param szName Name of entity. + * @param vOrigin Spawn origin. + * @return Entity index. */ native CE_Create(const szName[], const Float:vOrigin[3], bool:temp = true); /* * Kill entity. * - * @param ent Index of entity. - * @param killer Index of killer. + * @param ent Index of entity. + * @param killer Index of killer. */ native bool:CE_Kill(ent, killer = 0); +/* + * Remove entity correctly. + * + * @param ent Index of entity. + * @return Result true/false + */ +native bool:CE_Remove(ent); /* * Gets size of entity. * - * @param szClassname Classname of entity. - * @param vSize Output vector. + * @param szName Name of entity. + * @param vSize Output vector. */ native CE_GetSize(const szName[], Float:vMins[3], Float:vMaxs[3]); /* * Gets modelindex of entity. * - * @param szClassname Classname of entity. - * @return Modelindex of entity + * @param szName Name of entity. + * @return Modelindex of entity */ native CE_GetModelIndex(const szName[]); /* - * Remove entity correctly. + * Register new hook for entity. * - * @param ent Index of entity. - * @return Result true/false + * @param function Function handler + * @param szName Name of entity + * @param szCallback Callback */ -native bool:CE_Remove(ent); +native CE_RegisterHook(CEFunction:function, const szName[], const szCallback[]); /* - * Register new hook for entity. + * Gets handler of entity by name. * - * @param function Function handler - * @param szClassname Classname of entity - * @param szCallback Callback + * @param szName Name of entity. */ -native CE_RegisterHook(CEFunction:function, const szClassname[], const szCallback[]); +native CE_GetHandler(const szName[]); /* - * Check if entity is associated with current plugin. + * Gets handler of entity by index. * - * @param ent Index of entity. - * @return Result true/false + * @param ent Index of entity. */ -native CE_CheckAssociation_(ent); - -stock bool:CE_CheckAssociation(ent) { - static bool:notified = false; - if (!notified) { - log_amx("%s function ^"CE_CheckAssociation^" is deprecated. Check ^"CE_GetHandlerByEntity^" function.", CE_LOG_PREFIX); - notified = true; - } - - return CE_CheckAssociation_(ent); -} - -native CE_GetHandler(const szClassname[]); -native CE_GetHandlerByEntity(ent); \ No newline at end of file +native CE_GetHandlerByEntity(ent); + +native any:CE_GetMember(ent, const szMember[]); +native CE_SetMember(ent, const szMember[], any:value); +native CE_GetMemberVec(ent, const szMember[], Float:vOut[3]); +native CE_SetMemberVec(ent, const szMember[], const Float:vValue[3]); +native CE_GetMemberString(ent, const szMember[], szOut[], len); +native CE_SetMemberString(ent, const szMember[], const szValue[]); From 9f168031ac60b6c641ab60766422fd7550800cc6 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 22 Jul 2023 20:58:47 +0000 Subject: [PATCH 002/231] add player dizziness api --- api_player_dizziness.sma | 237 +++++++++++++++++++++++++++++++ include/api_player_dizziness.inc | 9 ++ 2 files changed, 246 insertions(+) create mode 100644 api_player_dizziness.sma create mode 100644 include/api_player_dizziness.inc diff --git a/api_player_dizziness.sma b/api_player_dizziness.sma new file mode 100644 index 0000000..4d1daff --- /dev/null +++ b/api_player_dizziness.sma @@ -0,0 +1,237 @@ +#pragma semicolon 1 + +#include +#include +#include +#include + +#define DIZZINESS_THINK_RATE 0.01 +#define DIZZINESS_RANDOM_PUSH_RATE 1.0 +#define DIZZINESS_JUMP_SPEED 200.0 +#define DIZZINESS_ANGLE_HANDLE_SPEED 100.0 +#define DIZZINESS_ANGLE_HANDLE_SPEED_MIN 50.0 +#define DIZZINESS_ANGLE_HANDLE_SPEED_MAX 150.0 +#define DIZZINESS_PUSH_SPEED 30.0 +#define DIZZINESS_PUSH_SPEED_MIN 0.0 +#define DIZZINESS_PUSH_SPEED_MAX 40.0 +#define DIZZINESS_PUNCH_ANGLE 45.0 +#define DIZZINESS_PUNCH_ANGLE_MIN 20.0 +#define DIZZINESS_PUNCH_ANGLE_MAX 75.0 +#define DIZZINESS_BLINK_DURATION 0.1 +#define DIZZINESS_BLINK_DURATION_MIN 0.1 +#define DIZZINESS_BLINK_DURATION_MAX 1.0 +#define DIZZINESS_BLINK_TRANSITION_DURATION 0.75 +#define DIZZINESS_BLINK_TRANSITION_DURATION_MIN 0.25 +#define DIZZINESS_BLINK_TRANSITION_DURATION_MAX 1.0 +#define DIZZINESS_RANDOM_BLINK_RATE 3.0 +#define DIZZINESS_RANDOM_BLINK_RATE_MIN 1.0 +#define DIZZINESS_RANDOM_BLINK_RATE_MAX 10.0 +#define DIZZINESS_MIN_STRENGTH_TO_BLINK 0.5 + +new gmsgScreenFade; + +new Float:g_rgflPlayerDizzinessNextThink[MAX_PLAYERS + 1]; +new Float:g_rgflPlayerDizzinessStrength[MAX_PLAYERS + 1]; +new Float:g_rgflPlayerNextPush[MAX_PLAYERS + 1]; +new Float:g_rgvecPlayerPushVelocityTarget[MAX_PLAYERS + 1][3]; +new Float:g_rgvecPlayerPushVelocityAcc[MAX_PLAYERS + 1][3]; +new Float:g_rgflPlayerLastPushThink[MAX_PLAYERS + 1]; +new Float:g_rgflPlayerNextPushThink[MAX_PLAYERS + 1]; +new Float:g_rgflPlayerNextBlink[MAX_PLAYERS + 1]; + +public plugin_init() { + register_plugin("[API] Player Dizziness", "1.0.0", "Hedgehog Fog"); + + RegisterHamPlayer(Ham_Player_Jump, "HamHook_Player_Jump_Post", .Post = 1); + RegisterHamPlayer(Ham_Player_PreThink, "HamHook_Player_PreThink_Post", .Post = 1); + + gmsgScreenFade = get_user_msgid("ScreenFade"); +} + +public plugin_natives() { + register_library("api_player_dizziness"); + register_native("PlayerDizziness_Set", "Native_SetPlayerDizziness"); + register_native("PlayerDizziness_Get", "Native_GetPlayerDizziness"); +} + +public Native_SetPlayerDizziness(iPluginId, iArgc) { + new pPlayer = get_param(1); + new Float:flValue = get_param_f(2); + + g_rgflPlayerDizzinessStrength[pPlayer] = floatclamp(flValue, 0.0, 10.0); +} + +public Float:Native_GetPlayerDizziness(iPluginId, iArgc) { + new pPlayer = get_param(1); + + return g_rgflPlayerDizzinessStrength[pPlayer]; +} + +public client_connect(pPlayer) { + g_rgflPlayerDizzinessNextThink[pPlayer] = 0.0; + g_rgflPlayerDizzinessStrength[pPlayer] = 0.0; + g_rgflPlayerNextPush[pPlayer] = 0.0; + g_rgflPlayerLastPushThink[pPlayer] = 0.0; + g_rgflPlayerNextPushThink[pPlayer] = 0.0; + g_rgflPlayerNextBlink[pPlayer] = 0.0; + + xs_vec_copy(Float:{0.0, 0.0, 0.0}, g_rgvecPlayerPushVelocityTarget[pPlayer]); + xs_vec_copy(Float:{0.0, 0.0, 0.0}, g_rgvecPlayerPushVelocityAcc[pPlayer]); +} + +public HamHook_Player_PreThink_Post(pPlayer) { + new Float:flGameTime = get_gametime(); + + if (flGameTime >= g_rgflPlayerDizzinessNextThink[pPlayer]) { + @Player_Think(pPlayer); + g_rgflPlayerDizzinessNextThink[pPlayer] = flGameTime + DIZZINESS_THINK_RATE; + } +} + +public HamHook_Player_Jump_Post(pPlayer) { + if (pev(pPlayer, pev_flags) & FL_ONGROUND && ~pev(pPlayer, pev_oldbuttons) & IN_JUMP) { + @Player_Jump(pPlayer); + } +} + +@Player_Think(this) { + new Float:flDizzinessStrength = g_rgflPlayerDizzinessStrength[this]; + if (flDizzinessStrength <= 0.0) { + return; + } + + if (pev(this, pev_flags) & FL_FROZEN) { + return; + } + + new Float:flGameTime = get_gametime(); + + if (is_user_alive(this)) { + static Float:vecVelocity[3]; + pev(this, pev_velocity, vecVelocity); + + + new Float:flMaxPushForce = floatclamp(DIZZINESS_PUSH_SPEED * flDizzinessStrength, DIZZINESS_PUSH_SPEED_MIN, DIZZINESS_PUSH_SPEED_MAX); + if (g_rgflPlayerNextPush[this] <= flGameTime) { + @Player_Push(this, flMaxPushForce); + g_rgflPlayerNextPush[this] = flGameTime + DIZZINESS_RANDOM_PUSH_RATE; + } + + if (flDizzinessStrength >= DIZZINESS_MIN_STRENGTH_TO_BLINK) { + if (g_rgflPlayerNextBlink[this] <= flGameTime) { + new Float:flBlinkTransitionDuration = floatclamp(DIZZINESS_BLINK_TRANSITION_DURATION * flDizzinessStrength, DIZZINESS_BLINK_TRANSITION_DURATION_MIN, DIZZINESS_BLINK_TRANSITION_DURATION_MAX); + new Float:flBlinkDuration = floatclamp(DIZZINESS_BLINK_DURATION * flDizzinessStrength, DIZZINESS_BLINK_DURATION_MIN, DIZZINESS_BLINK_DURATION_MAX); + new Float:flBlinkRate = floatclamp(DIZZINESS_RANDOM_BLINK_RATE / flDizzinessStrength, DIZZINESS_RANDOM_BLINK_RATE_MIN, DIZZINESS_RANDOM_BLINK_RATE_MAX); + + @Player_Blink(this, flBlinkDuration, flBlinkTransitionDuration); + g_rgflPlayerNextBlink[this] = flGameTime + flBlinkRate + flBlinkDuration; + } + } + + @Player_PushThink(this); + + new Float:flMaxPunchAngle = floatclamp(DIZZINESS_PUNCH_ANGLE * flDizzinessStrength, DIZZINESS_PUNCH_ANGLE_MIN, DIZZINESS_PUNCH_ANGLE_MAX); + new Float:flAngleHandleSpeed = floatclamp(DIZZINESS_ANGLE_HANDLE_SPEED / flDizzinessStrength, DIZZINESS_ANGLE_HANDLE_SPEED_MIN, DIZZINESS_ANGLE_HANDLE_SPEED_MAX); + @Player_CameraThink(this, flMaxPunchAngle, flAngleHandleSpeed); + } +} + +@Player_PushThink(this) { + new Float:flGameTime = get_gametime(); + + if (pev(this, pev_flags) & FL_ONGROUND) { + new Float:flDelta = flGameTime - g_rgflPlayerLastPushThink[this]; + + for (new i = 0; i < 3; ++i) { + g_rgvecPlayerPushVelocityAcc[this][i] += (g_rgvecPlayerPushVelocityTarget[this][i] - g_rgvecPlayerPushVelocityAcc[this][i]) * flDelta; + } + + static Float:vecVelocity[3]; + pev(this, pev_velocity, vecVelocity); + xs_vec_add(vecVelocity, g_rgvecPlayerPushVelocityAcc[this], vecVelocity); + set_pev(this, pev_velocity, vecVelocity); + } + + g_rgflPlayerLastPushThink[this] = get_gametime(); +} + +@Player_CameraThink(this, Float:flMaxPunchAngle, Float:flAngleHandleSpeed) { + static Float:vecAngles[3]; + pev(this, pev_v_angle, vecAngles); + vecAngles[0] = 0.0; + vecAngles[2] = 0.0; + + static Float:vecForward[3]; + angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecForward); + + static Float:vecRight[3]; + angle_vector(vecAngles, ANGLEVECTOR_RIGHT, vecRight); + + static Float:vecVelocity[3]; + pev(this, pev_velocity, vecVelocity); + + static Float:flMaxSpeed; + pev(this, pev_maxspeed, flMaxSpeed); + flMaxSpeed = floatmin(flMaxSpeed, flAngleHandleSpeed); + + static Float:vecPunchAngle[3]; + pev(this, pev_punchangle, vecPunchAngle); + vecPunchAngle[0] += floatclamp(xs_vec_dot(vecVelocity, vecForward), -flMaxSpeed, flMaxSpeed) / flMaxSpeed * flMaxPunchAngle * DIZZINESS_THINK_RATE; + vecPunchAngle[2] += floatclamp(xs_vec_dot(vecVelocity, vecRight), -flMaxSpeed, flMaxSpeed) / flMaxSpeed * flMaxPunchAngle * DIZZINESS_THINK_RATE; + + if (xs_vec_len(vecPunchAngle) > 0.0) { + set_pev(this, pev_punchangle, vecPunchAngle); + } +} + +@Player_Push(this, Float:flMaxForce) { + new Float:flGameTime = get_gametime(); + + xs_vec_copy(Float:{0.0, 0.0, 0.0}, g_rgvecPlayerPushVelocityAcc[this]); + + g_rgvecPlayerPushVelocityTarget[this][0] = random_float(-flMaxForce, flMaxForce); + g_rgvecPlayerPushVelocityTarget[this][1] = random_float(-flMaxForce, flMaxForce); + g_rgvecPlayerPushVelocityTarget[this][2] = 0.0; + + g_rgflPlayerLastPushThink[this] = flGameTime; +} + +@Player_Blink(this, Float:flDuration, Float:flTransitionDuration) { + static const iFlags = 0; + static const rgiColor[3] = {0, 0, 0}; + static const iAlpha = 255; + + new iFadeTime = FixedUnsigned16(flTransitionDuration , 1<<12); + new iHoldTime = FixedUnsigned16(flDuration , 1<<12); + + emessage_begin(MSG_ONE, gmsgScreenFade, _, this); + ewrite_short(iFadeTime); + ewrite_short(iHoldTime); + ewrite_short(iFlags); + ewrite_byte(rgiColor[0]); + ewrite_byte(rgiColor[1]); + ewrite_byte(rgiColor[2]); + ewrite_byte(iAlpha); + emessage_end(); +} + +@Player_Jump(this) { + if (g_rgflPlayerDizzinessStrength[this] < 1.0) { + return; + } + + static Float:vecVelocity[3]; + vecVelocity[0] = random_float(-1.0, 1.0); + vecVelocity[1] = random_float(-1.0, 1.0); + vecVelocity[2] = 0.0; + + xs_vec_normalize(vecVelocity, vecVelocity); + xs_vec_mul_scalar(vecVelocity, random_float(80.0, 100.0), vecVelocity); + vecVelocity[2] = DIZZINESS_JUMP_SPEED; + + set_pev(this, pev_velocity, vecVelocity); +} + +stock FixedUnsigned16(Float:flValue, iScale) { + return clamp(floatround(flValue * iScale), 0, 0xFFFF); +} diff --git a/include/api_player_dizziness.inc b/include/api_player_dizziness.inc new file mode 100644 index 0000000..fab0672 --- /dev/null +++ b/include/api_player_dizziness.inc @@ -0,0 +1,9 @@ +#if defined _api_player_dizziness_included + #endinput +#endif +#define _api_player_dizziness_included + +#pragma reqlib api_player_dizziness + +native PlayerDizziness_Set(pPlayer, Float:flStrength); +native Float:PlayerDizziness_Get(pPlayer); From 83160489690cae1158e18245eb8e5a9f11c4dc48 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 23 Jul 2023 19:55:07 +0000 Subject: [PATCH 003/231] update log message --- api_custom_entities.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index 2e82840..c70f877 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -800,7 +800,7 @@ RegisterEntity( g_iEntitiesNum++; - log_amx("%s Custom entity %s registered! ID: %d", LOG_PREFIX, szClassName, iId); + log_amx("%s Entity %s successfully registred.", LOG_PREFIX, szClassName); return iId; } From 4d5ff38f055d38991ae4bf0edfb228043556247f Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 23 Jul 2023 19:55:10 +0000 Subject: [PATCH 004/231] add custome animations system --- api_player_model.sma | 229 +++++++++++++++++++++++++++++++---- include/api_player_model.inc | 4 +- 2 files changed, 207 insertions(+), 26 deletions(-) diff --git a/api_player_model.sma b/api_player_model.sma index e814cb7..53933c8 100644 --- a/api_player_model.sma +++ b/api_player_model.sma @@ -1,21 +1,43 @@ #include #include -#include #include +#include #define PLUGIN "[API] Player Model" -#define VERSION "0.9.0" +#define VERSION "1.0.0" #define AUTHOR "Hedgehog Fog" -new g_rgszPlayerModel[MAX_PLAYERS + 1][32]; +#define MAX_SEQUENCES 101 + +new g_rgszDefaultPlayerModel[MAX_PLAYERS + 1][32]; +new g_rgszCurrentPlayerModel[MAX_PLAYERS + 1][256]; new g_rgszCustomPlayerModel[MAX_PLAYERS + 1][256]; +new g_rgiPlayerAnimationIndex[MAX_PLAYERS + 1]; + +new Trie:g_itPlayerSequenceModelIndexes = Invalid_Trie; +new Trie:g_itPlayerSequences = Invalid_Trie; +new g_pPlayerModel[MAX_PLAYERS + 1]; + +new gmsgClCorpse; + +public plugin_precache() { + g_itPlayerSequenceModelIndexes = TrieCreate(); + g_itPlayerSequences = TrieCreate(); +} public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); - RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); + gmsgClCorpse = get_user_msgid("ClCorpse"); register_forward(FM_SetClientKeyValue, "FMHook_SetClientKeyValue"); + + RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); + RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", .Post = 1); + + RegisterHookChain(RG_CBasePlayer_SetAnimation, "HC_Player_SetAnimation"); + + register_message(gmsgClCorpse, "Message_ClCorpse"); } public plugin_natives() { @@ -24,11 +46,12 @@ public plugin_natives() { register_native("PlayerModel_Set", "Native_SetPlayerModel"); register_native("PlayerModel_Reset", "Native_ResetPlayerModel"); register_native("PlayerModel_Update", "Native_UpdatePlayerModel"); + register_native("PlayerModel_PrecacheAnimation", "Native_PrecacheAnimation"); + register_native("PlayerModel_SetSequence", "Native_SetPlayerSequence"); } public Native_GetPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); - set_string(2, g_rgszCustomPlayerModel[pPlayer], get_param(3)); } @@ -44,23 +67,67 @@ public Native_ResetPlayerModel(iPluginId, iArgc) { public Native_UpdatePlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); - @Player_UpdateModel(pPlayer); + @Player_UpdateCurrentModel(pPlayer); +} + +public Native_PrecacheAnimation(iPluginId, iArgc) { + static szAnimation[MAX_RESOURCE_PATH_LENGTH]; + get_string(1, szAnimation, charsmax(szAnimation)); + PrecachePlayerAnimation(szAnimation); +} + +public Native_SetPlayerSequence(iPluginId, iArgc) { + new pPlayer = get_param(1); + + static szSequence[MAX_RESOURCE_PATH_LENGTH]; + get_string(2, szSequence, charsmax(szSequence)); + + return @Player_SetSequence(pPlayer, szSequence); } public client_connect(pPlayer) { copy(g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[]), NULL_STRING); - copy(g_rgszPlayerModel[pPlayer], charsmax(g_rgszPlayerModel[]), NULL_STRING); + copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), NULL_STRING); +} + +public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { + new pTargetPlayer = get_msg_arg_int(12); + set_msg_arg_string(1, g_rgszCurrentPlayerModel[pTargetPlayer]); } public HamHook_Player_Spawn_Post(pPlayer) { - @Player_UpdateModel(pPlayer); + if (!g_pPlayerModel[pPlayer]) { + new pPlayerModel = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); + set_pev(pPlayerModel, pev_movetype, MOVETYPE_FOLLOW); + set_pev(pPlayerModel, pev_aiment, pPlayer); + g_pPlayerModel[pPlayer] = pPlayerModel; + } + + @Player_UpdateCurrentModel(pPlayer); +} + +public HamHook_Player_PostThink_Post(pPlayer) { + if (g_pPlayerModel[pPlayer]) { + set_entvar(g_pPlayerModel[pPlayer], var_skin, get_entvar(pPlayer, var_skin)); + set_entvar(g_pPlayerModel[pPlayer], var_body, get_entvar(pPlayer, var_body)); + set_entvar(g_pPlayerModel[pPlayer], var_colormap, get_entvar(pPlayer, var_colormap)); + set_entvar(g_pPlayerModel[pPlayer], var_rendermode, get_entvar(pPlayer, var_rendermode)); + set_entvar(g_pPlayerModel[pPlayer], var_renderfx, get_entvar(pPlayer, var_renderfx)); + set_entvar(g_pPlayerModel[pPlayer], var_renderamt, get_entvar(pPlayer, var_renderamt)); + + static rgflColor[3]; + get_entvar(pPlayer, var_rendercolor, rgflColor); + set_entvar(g_pPlayerModel[pPlayer], var_rendercolor, rgflColor); + } + + return HAM_HANDLED; } public FMHook_SetClientKeyValue(pPlayer, const szInfoBuffer[], const szKey[], const szValue[]) { if (equal(szKey, "model")) { - copy(g_rgszPlayerModel[pPlayer], charsmax(g_rgszPlayerModel[]), szValue); + copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), szValue); - if (!equal(g_rgszCustomPlayerModel[pPlayer], NULL_STRING)) { + if (!equal(g_rgszCurrentPlayerModel[pPlayer], NULL_STRING)) { return FMRES_SUPERCEDE; } @@ -70,28 +137,142 @@ public FMHook_SetClientKeyValue(pPlayer, const szInfoBuffer[], const szKey[], co return FMRES_IGNORED; } -public @Player_UpdateModel(this) { - if (!equal(g_rgszCustomPlayerModel[this], NULL_STRING)) { - new iModelIndex = engfunc(EngFunc_ModelIndex, g_rgszCustomPlayerModel[this]); - set_user_info(this, "model", ""); - set_pev(this, pev_modelindex, iModelIndex); - set_member(this, m_modelIndexPlayer, iModelIndex); +public HC_Player_SetAnimation(pPlayer) { + @Player_UpdateAnimationModel(pPlayer); +} + +public @Player_UpdateAnimationModel(this) { + static szAnimExt[32]; + get_member(this, m_szAnimExtention, szAnimExt, charsmax(szAnimExt)); + + new iAnimationIndex = is_user_alive(this) ? GetAnimationIndexByAnimExt(szAnimExt) : 0; + if (iAnimationIndex != g_rgiPlayerAnimationIndex[this]) { + g_rgiPlayerAnimationIndex[this] = iAnimationIndex; + @Player_UpdateModel(this); + } +} + +public @Player_UpdateCurrentModel(this) { + if (equal(g_rgszCustomPlayerModel[this], NULL_STRING)) { + if (!equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { + static szModel[MAX_RESOURCE_PATH_LENGTH]; + format(szModel, charsmax(szModel), "models/player/%s/%s.mdl", g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]); + copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), szModel); + } } else { - @Player_ResetModel(this); + copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), g_rgszCustomPlayerModel[this]); } + + @Player_UpdateModel(this); +} + +public @Player_UpdateModel(this) { + new iAnimationIndex = g_rgiPlayerAnimationIndex[this]; + new iModelIndex = engfunc(EngFunc_ModelIndex, g_rgszCurrentPlayerModel[this]); + @Player_SetModelIndex(this, iAnimationIndex ? iAnimationIndex : iModelIndex); + set_pev(g_pPlayerModel[this], pev_modelindex, iAnimationIndex ? iModelIndex : 0); } public @Player_ResetModel(this) { - if (equal(g_rgszPlayerModel[this], NULL_STRING)) { + if (equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { return; } - - static szPath[MAX_RESOURCE_PATH_LENGTH]; - format(szPath, charsmax(szPath), "models/player/%s/%s.mdl", g_rgszPlayerModel[this], g_rgszPlayerModel[this]); - new iModelIndex = engfunc(EngFunc_ModelIndex, szPath); - set_user_info(this, "model", g_rgszPlayerModel[this]); + copy(g_rgszCustomPlayerModel[this], charsmax(g_rgszCustomPlayerModel[]), NULL_STRING); + copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), NULL_STRING); + g_rgiPlayerAnimationIndex[this] = 0; + + @Player_UpdateCurrentModel(this); +} + +public @Player_SetModelIndex(this, iModelIndex) { + set_user_info(this, "model", ""); set_pev(this, pev_modelindex, iModelIndex); set_member(this, m_modelIndexPlayer, iModelIndex); - copy(g_rgszCustomPlayerModel[this], charsmax(g_rgszCustomPlayerModel[]), NULL_STRING); +} + +public @Player_SetSequence(this, const szSequence[]) { + new iAnimationIndex = GetAnimationIndexBySequence(szSequence); + if (!iAnimationIndex) { + return -1; + } + + g_rgiPlayerAnimationIndex[this] = iAnimationIndex; + @Player_UpdateModel(this); + + new iSequence = GetSequenceIndex(szSequence); + set_pev(this, pev_sequence, iSequence); + return iSequence; +} + +GetAnimationIndexByAnimExt(const szAnimExt[]) { + static szSequence[32]; + format(szSequence, charsmax(szSequence), "ref_aim_%s", szAnimExt); + return GetAnimationIndexBySequence(szSequence); +} + +GetAnimationIndexBySequence(const szSequence[]) { + static iAnimationIndex; + if (!TrieGetCell(g_itPlayerSequenceModelIndexes, szSequence, iAnimationIndex)) { + return 0; + } + + return iAnimationIndex; +} + +GetSequenceIndex(const szSequence[]) { + static iSequence; + if (!TrieGetCell(g_itPlayerSequences, szSequence, iSequence)) { + return -1; + } + + return iSequence; +} + +// Credis: HamletEagle +PrecachePlayerAnimation(const szAnim[]) { + new szFilePath[MAX_RESOURCE_PATH_LENGTH]; + format(szFilePath, charsmax(szFilePath), "animations/%s", szAnim); + + new iModelIndex = precache_model(szFilePath); + + new iFile = fopen(szFilePath, "rb") + if (!iFile) { + return 0 + } + + // Got to "numseq" position of the studiohdr_t structure + // https://github.com/dreamstalker/rehlds/blob/65c6ce593b5eabf13e92b03352e4b429d0d797b0/rehlds/public/rehlds/studio.h#L68 + fseek(iFile, 164, SEEK_SET); + + new iSeqNum; + fread(iFile, iSeqNum, BLOCK_INT); + + if (!iSeqNum) { + return 0; + } + + new iSeqIndex; + fread(iFile, iSeqIndex, BLOCK_INT); + fseek(iFile, iSeqIndex, SEEK_SET); + + new szLabel[32]; + for (new i = 0; i < iSeqNum; i++) { + if (i >= MAX_SEQUENCES) { + log_amx("Warning! Sequence limit reached for ^"%s^". Max sequences %d.", szFilePath, MAX_SEQUENCES); + break; + } + + fread_blocks(iFile, szLabel, sizeof(szLabel), BLOCK_CHAR); + TrieSetCell(g_itPlayerSequenceModelIndexes, szLabel, iModelIndex); + TrieSetCell(g_itPlayerSequences, szLabel, i); + + // jump to the end of the studiohdr_t structure + // https://github.com/dreamstalker/rehlds/blob/65c6ce593b5eabf13e92b03352e4b429d0d797b0/rehlds/public/rehlds/studio.h#L95 + fseek(iFile, 176 - sizeof(szLabel), SEEK_CUR); + } + + fclose(iFile); + + return iModelIndex; } diff --git a/include/api_player_model.inc b/include/api_player_model.inc index 2e88578..dcbf774 100644 --- a/include/api_player_model.inc +++ b/include/api_player_model.inc @@ -1,5 +1,3 @@ -// This is a beta version, some functions may be unstable. Use at your own risk. - #if defined _api_player_model_included #endinput #endif @@ -11,3 +9,5 @@ native PlayerModel_Get(pPlayer, szOut[]); native PlayerModel_Set(pPlayer, const szModel[]); native PlayerModel_Update(pPlayer); native PlayerModel_Reset(pPlayer); +native PlayerModel_PrecacheAnimation(const szAnimation[]); +native PlayerModel_SetSequence(pPlayer, const szSequence[]); From 5c2bb6b27e037e2ad066a6ca46188bfdb0af0699 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 23 Jul 2023 20:31:00 +0000 Subject: [PATCH 005/231] fix PlayerModel_Get native args --- include/api_player_model.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/api_player_model.inc b/include/api_player_model.inc index dcbf774..375a7e9 100644 --- a/include/api_player_model.inc +++ b/include/api_player_model.inc @@ -5,7 +5,7 @@ #pragma reqlib api_player_model -native PlayerModel_Get(pPlayer, szOut[]); +native PlayerModel_Get(pPlayer, szOut[], iLen); native PlayerModel_Set(pPlayer, const szModel[]); native PlayerModel_Update(pPlayer); native PlayerModel_Reset(pPlayer); From da3d8ac5b0918d26fe47669c357948d8dfc006b5 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 23 Jul 2023 23:08:21 +0000 Subject: [PATCH 006/231] move allocated classname string to global var --- api_player_model.sma | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/api_player_model.sma b/api_player_model.sma index 53933c8..f3272d8 100644 --- a/api_player_model.sma +++ b/api_player_model.sma @@ -9,6 +9,8 @@ #define MAX_SEQUENCES 101 +new g_iszModelClassname; + new g_rgszDefaultPlayerModel[MAX_PLAYERS + 1][32]; new g_rgszCurrentPlayerModel[MAX_PLAYERS + 1][256]; new g_rgszCustomPlayerModel[MAX_PLAYERS + 1][256]; @@ -21,6 +23,7 @@ new g_pPlayerModel[MAX_PLAYERS + 1]; new gmsgClCorpse; public plugin_precache() { + g_iszModelClassname = engfunc(EngFunc_AllocString, "info_target"); g_itPlayerSequenceModelIndexes = TrieCreate(); g_itPlayerSequences = TrieCreate(); } @@ -97,7 +100,7 @@ public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { public HamHook_Player_Spawn_Post(pPlayer) { if (!g_pPlayerModel[pPlayer]) { - new pPlayerModel = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); + new pPlayerModel = engfunc(EngFunc_CreateNamedEntity, g_iszModelClassname); set_pev(pPlayerModel, pev_movetype, MOVETYPE_FOLLOW); set_pev(pPlayerModel, pev_aiment, pPlayer); g_pPlayerModel[pPlayer] = pPlayerModel; From 1190e822eb863d52eff54811ea45a8ab2d7d4226 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 24 Jul 2023 00:51:54 +0000 Subject: [PATCH 007/231] update player model api --- api_player_model.sma | 21 ++++++++++++++++++--- include/api_player_model.inc | 1 + 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/api_player_model.sma b/api_player_model.sma index f3272d8..718ce9a 100644 --- a/api_player_model.sma +++ b/api_player_model.sma @@ -15,6 +15,7 @@ new g_rgszDefaultPlayerModel[MAX_PLAYERS + 1][32]; new g_rgszCurrentPlayerModel[MAX_PLAYERS + 1][256]; new g_rgszCustomPlayerModel[MAX_PLAYERS + 1][256]; new g_rgiPlayerAnimationIndex[MAX_PLAYERS + 1]; +new bool:g_rgbPlayerUseDefaultModel[MAX_PLAYERS + 1]; new Trie:g_itPlayerSequenceModelIndexes = Invalid_Trie; new Trie:g_itPlayerSequences = Invalid_Trie; @@ -46,6 +47,7 @@ public plugin_init() { public plugin_natives() { register_library("api_player_model"); register_native("PlayerModel_Get", "Native_GetPlayerModel"); + register_native("PlayerModel_GetCurrent", "Native_GetCurrentPlayerModel"); register_native("PlayerModel_Set", "Native_SetPlayerModel"); register_native("PlayerModel_Reset", "Native_ResetPlayerModel"); register_native("PlayerModel_Update", "Native_UpdatePlayerModel"); @@ -58,6 +60,11 @@ public Native_GetPlayerModel(iPluginId, iArgc) { set_string(2, g_rgszCustomPlayerModel[pPlayer], get_param(3)); } +public Native_GetCurrentPlayerModel(iPluginId, iArgc) { + new pPlayer = get_param(1); + set_string(2, g_rgszCurrentPlayerModel[pPlayer], get_param(3)); +} + public Native_SetPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); get_string(2, g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[])); @@ -156,11 +163,14 @@ public @Player_UpdateAnimationModel(this) { } public @Player_UpdateCurrentModel(this) { + g_rgbPlayerUseDefaultModel[this] = false; + if (equal(g_rgszCustomPlayerModel[this], NULL_STRING)) { if (!equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { static szModel[MAX_RESOURCE_PATH_LENGTH]; format(szModel, charsmax(szModel), "models/player/%s/%s.mdl", g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]); copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), szModel); + g_rgbPlayerUseDefaultModel[this] = true; } } else { copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), g_rgszCustomPlayerModel[this]); @@ -171,9 +181,14 @@ public @Player_UpdateCurrentModel(this) { public @Player_UpdateModel(this) { new iAnimationIndex = g_rgiPlayerAnimationIndex[this]; - new iModelIndex = engfunc(EngFunc_ModelIndex, g_rgszCurrentPlayerModel[this]); - @Player_SetModelIndex(this, iAnimationIndex ? iAnimationIndex : iModelIndex); - set_pev(g_pPlayerModel[this], pev_modelindex, iAnimationIndex ? iModelIndex : 0); + + if (!g_rgbPlayerUseDefaultModel[this] || iAnimationIndex) { + new iModelIndex = engfunc(EngFunc_ModelIndex, g_rgszCurrentPlayerModel[this]); + @Player_SetModelIndex(this, iAnimationIndex ? iAnimationIndex : iModelIndex); + set_pev(g_pPlayerModel[this], pev_modelindex, iAnimationIndex ? iModelIndex : 0); + } else { + set_pev(g_pPlayerModel[this], pev_modelindex, 0); + } } public @Player_ResetModel(this) { diff --git a/include/api_player_model.inc b/include/api_player_model.inc index 375a7e9..2e1710c 100644 --- a/include/api_player_model.inc +++ b/include/api_player_model.inc @@ -6,6 +6,7 @@ #pragma reqlib api_player_model native PlayerModel_Get(pPlayer, szOut[], iLen); +native PlayerModel_GetCurrent(pPlayer, szOut[], iLen); native PlayerModel_Set(pPlayer, const szModel[]); native PlayerModel_Update(pPlayer); native PlayerModel_Reset(pPlayer); From 0439bd6b202786130b09e156b5be24eac6812f95 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 24 Jul 2023 01:46:13 +0000 Subject: [PATCH 008/231] improve model reset --- api_player_model.sma | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/api_player_model.sma b/api_player_model.sma index 718ce9a..ab16df0 100644 --- a/api_player_model.sma +++ b/api_player_model.sma @@ -98,6 +98,9 @@ public Native_SetPlayerSequence(iPluginId, iArgc) { public client_connect(pPlayer) { copy(g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[]), NULL_STRING); copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), NULL_STRING); + copy(g_rgszCurrentPlayerModel[pPlayer], charsmax(g_rgszCurrentPlayerModel[]), NULL_STRING); + g_rgiPlayerAnimationIndex[pPlayer] = 0; + g_rgbPlayerUseDefaultModel[pPlayer] = true; } public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { @@ -158,11 +161,13 @@ public @Player_UpdateAnimationModel(this) { new iAnimationIndex = is_user_alive(this) ? GetAnimationIndexByAnimExt(szAnimExt) : 0; if (iAnimationIndex != g_rgiPlayerAnimationIndex[this]) { g_rgiPlayerAnimationIndex[this] = iAnimationIndex; - @Player_UpdateModel(this); + @Player_UpdateModel(this, false); } } public @Player_UpdateCurrentModel(this) { + new bool:bUsedDefault = g_rgbPlayerUseDefaultModel[this]; + g_rgbPlayerUseDefaultModel[this] = false; if (equal(g_rgszCustomPlayerModel[this], NULL_STRING)) { @@ -170,19 +175,20 @@ public @Player_UpdateCurrentModel(this) { static szModel[MAX_RESOURCE_PATH_LENGTH]; format(szModel, charsmax(szModel), "models/player/%s/%s.mdl", g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]); copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), szModel); - g_rgbPlayerUseDefaultModel[this] = true; } + + g_rgbPlayerUseDefaultModel[this] = true; } else { copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), g_rgszCustomPlayerModel[this]); } - @Player_UpdateModel(this); + @Player_UpdateModel(this, !bUsedDefault && g_rgbPlayerUseDefaultModel[this]); } -public @Player_UpdateModel(this) { +public @Player_UpdateModel(this, bool:bForce) { new iAnimationIndex = g_rgiPlayerAnimationIndex[this]; - if (!g_rgbPlayerUseDefaultModel[this] || iAnimationIndex) { + if (bForce || !g_rgbPlayerUseDefaultModel[this] || iAnimationIndex) { new iModelIndex = engfunc(EngFunc_ModelIndex, g_rgszCurrentPlayerModel[this]); @Player_SetModelIndex(this, iAnimationIndex ? iAnimationIndex : iModelIndex); set_pev(g_pPlayerModel[this], pev_modelindex, iAnimationIndex ? iModelIndex : 0); @@ -216,7 +222,7 @@ public @Player_SetSequence(this, const szSequence[]) { } g_rgiPlayerAnimationIndex[this] = iAnimationIndex; - @Player_UpdateModel(this); + @Player_UpdateModel(this, false); new iSequence = GetSequenceIndex(szSequence); set_pev(this, pev_sequence, iSequence); From 7558ae7b4a95283824e4052301bebf56ad2f3aec Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 24 Jul 2023 10:58:00 +0000 Subject: [PATCH 009/231] fix corpse model --- api_player_model.sma | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api_player_model.sma b/api_player_model.sma index ab16df0..4223e05 100644 --- a/api_player_model.sma +++ b/api_player_model.sma @@ -105,7 +105,9 @@ public client_connect(pPlayer) { public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { new pTargetPlayer = get_msg_arg_int(12); - set_msg_arg_string(1, g_rgszCurrentPlayerModel[pTargetPlayer]); + if (!g_rgbPlayerUseDefaultModel[pTargetPlayer] || g_rgiPlayerAnimationIndex[pTargetPlayer]) { + set_msg_arg_string(1, g_rgszCurrentPlayerModel[pTargetPlayer]); + } } public HamHook_Player_Spawn_Post(pPlayer) { @@ -172,9 +174,7 @@ public @Player_UpdateCurrentModel(this) { if (equal(g_rgszCustomPlayerModel[this], NULL_STRING)) { if (!equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { - static szModel[MAX_RESOURCE_PATH_LENGTH]; - format(szModel, charsmax(szModel), "models/player/%s/%s.mdl", g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]); - copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), szModel); + format(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), "models/player/%s/%s.mdl", g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]); } g_rgbPlayerUseDefaultModel[this] = true; From e509948cc84040ba9780f5bbb449140b608db5b6 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 24 Jul 2023 15:33:26 +0000 Subject: [PATCH 010/231] improve player model api --- api_player_model.sma | 130 ++++++++++++++++++++++++----------- include/api_player_model.inc | 4 +- 2 files changed, 93 insertions(+), 41 deletions(-) diff --git a/api_player_model.sma b/api_player_model.sma index 4223e05..07c4d03 100644 --- a/api_player_model.sma +++ b/api_player_model.sma @@ -15,11 +15,11 @@ new g_rgszDefaultPlayerModel[MAX_PLAYERS + 1][32]; new g_rgszCurrentPlayerModel[MAX_PLAYERS + 1][256]; new g_rgszCustomPlayerModel[MAX_PLAYERS + 1][256]; new g_rgiPlayerAnimationIndex[MAX_PLAYERS + 1]; -new bool:g_rgbPlayerUseDefaultModel[MAX_PLAYERS + 1]; +new bool:g_rgbPlayerUseCustomModel[MAX_PLAYERS + 1]; new Trie:g_itPlayerSequenceModelIndexes = Invalid_Trie; new Trie:g_itPlayerSequences = Invalid_Trie; -new g_pPlayerModel[MAX_PLAYERS + 1]; +new g_pPlayerSubModel[MAX_PLAYERS + 1]; new gmsgClCorpse; @@ -48,11 +48,13 @@ public plugin_natives() { register_library("api_player_model"); register_native("PlayerModel_Get", "Native_GetPlayerModel"); register_native("PlayerModel_GetCurrent", "Native_GetCurrentPlayerModel"); + register_native("PlayerModel_GetEntity", "Native_GetPlayerEntity"); + register_native("PlayerModel_HasCustom", "Native_HasCustomPlayerModel"); register_native("PlayerModel_Set", "Native_SetPlayerModel"); register_native("PlayerModel_Reset", "Native_ResetPlayerModel"); register_native("PlayerModel_Update", "Native_UpdatePlayerModel"); - register_native("PlayerModel_PrecacheAnimation", "Native_PrecacheAnimation"); register_native("PlayerModel_SetSequence", "Native_SetPlayerSequence"); + register_native("PlayerModel_PrecacheAnimation", "Native_PrecacheAnimation"); } public Native_GetPlayerModel(iPluginId, iArgc) { @@ -65,6 +67,22 @@ public Native_GetCurrentPlayerModel(iPluginId, iArgc) { set_string(2, g_rgszCurrentPlayerModel[pPlayer], get_param(3)); } +public Native_GetPlayerEntity(iPluginId, iArgc) { + new pPlayer = get_param(1); + + if (g_pPlayerSubModel[pPlayer] && @PlayerSubModel_IsActive(g_pPlayerSubModel[pPlayer])) { + return g_pPlayerSubModel[pPlayer]; + } + + return pPlayer; +} + +public bool:Native_HasCustomPlayerModel(iPluginId, iArgc) { + new pPlayer = get_param(1); + + return g_rgbPlayerUseCustomModel[pPlayer]; +} + public Native_SetPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); get_string(2, g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[])); @@ -80,12 +98,6 @@ public Native_UpdatePlayerModel(iPluginId, iArgc) { @Player_UpdateCurrentModel(pPlayer); } -public Native_PrecacheAnimation(iPluginId, iArgc) { - static szAnimation[MAX_RESOURCE_PATH_LENGTH]; - get_string(1, szAnimation, charsmax(szAnimation)); - PrecachePlayerAnimation(szAnimation); -} - public Native_SetPlayerSequence(iPluginId, iArgc) { new pPlayer = get_param(1); @@ -95,44 +107,45 @@ public Native_SetPlayerSequence(iPluginId, iArgc) { return @Player_SetSequence(pPlayer, szSequence); } +public Native_PrecacheAnimation(iPluginId, iArgc) { + static szAnimation[MAX_RESOURCE_PATH_LENGTH]; + get_string(1, szAnimation, charsmax(szAnimation)); + return PrecachePlayerAnimation(szAnimation); +} + public client_connect(pPlayer) { copy(g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[]), NULL_STRING); copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), NULL_STRING); copy(g_rgszCurrentPlayerModel[pPlayer], charsmax(g_rgszCurrentPlayerModel[]), NULL_STRING); g_rgiPlayerAnimationIndex[pPlayer] = 0; - g_rgbPlayerUseDefaultModel[pPlayer] = true; + g_rgbPlayerUseCustomModel[pPlayer] = false; +} + +public client_disconnected(pPlayer) { + if (g_pPlayerSubModel[pPlayer]) { + @PlayerSubModel_Destroy(g_pPlayerSubModel[pPlayer]); + g_pPlayerSubModel[pPlayer] = 0; + } } public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { new pTargetPlayer = get_msg_arg_int(12); - if (!g_rgbPlayerUseDefaultModel[pTargetPlayer] || g_rgiPlayerAnimationIndex[pTargetPlayer]) { + if (g_rgbPlayerUseCustomModel[pTargetPlayer] || g_rgiPlayerAnimationIndex[pTargetPlayer]) { set_msg_arg_string(1, g_rgszCurrentPlayerModel[pTargetPlayer]); } } public HamHook_Player_Spawn_Post(pPlayer) { - if (!g_pPlayerModel[pPlayer]) { - new pPlayerModel = engfunc(EngFunc_CreateNamedEntity, g_iszModelClassname); - set_pev(pPlayerModel, pev_movetype, MOVETYPE_FOLLOW); - set_pev(pPlayerModel, pev_aiment, pPlayer); - g_pPlayerModel[pPlayer] = pPlayerModel; + if (!g_pPlayerSubModel[pPlayer]) { + g_pPlayerSubModel[pPlayer] = @PlayerSubModel_Create(pPlayer); } @Player_UpdateCurrentModel(pPlayer); } public HamHook_Player_PostThink_Post(pPlayer) { - if (g_pPlayerModel[pPlayer]) { - set_entvar(g_pPlayerModel[pPlayer], var_skin, get_entvar(pPlayer, var_skin)); - set_entvar(g_pPlayerModel[pPlayer], var_body, get_entvar(pPlayer, var_body)); - set_entvar(g_pPlayerModel[pPlayer], var_colormap, get_entvar(pPlayer, var_colormap)); - set_entvar(g_pPlayerModel[pPlayer], var_rendermode, get_entvar(pPlayer, var_rendermode)); - set_entvar(g_pPlayerModel[pPlayer], var_renderfx, get_entvar(pPlayer, var_renderfx)); - set_entvar(g_pPlayerModel[pPlayer], var_renderamt, get_entvar(pPlayer, var_renderamt)); - - static rgflColor[3]; - get_entvar(pPlayer, var_rendercolor, rgflColor); - set_entvar(g_pPlayerModel[pPlayer], var_rendercolor, rgflColor); + if (g_pPlayerSubModel[pPlayer]) { + @PlayerSubModel_Think(g_pPlayerSubModel[pPlayer]); } return HAM_HANDLED; @@ -168,32 +181,29 @@ public @Player_UpdateAnimationModel(this) { } public @Player_UpdateCurrentModel(this) { - new bool:bUsedDefault = g_rgbPlayerUseDefaultModel[this]; + new bool:bUsedCustom = g_rgbPlayerUseCustomModel[this]; - g_rgbPlayerUseDefaultModel[this] = false; + g_rgbPlayerUseCustomModel[this] = !equal(g_rgszCustomPlayerModel[this], NULL_STRING); - if (equal(g_rgszCustomPlayerModel[this], NULL_STRING)) { + if (g_rgbPlayerUseCustomModel[this]) { + copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), g_rgszCustomPlayerModel[this]); + } else { if (!equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { format(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), "models/player/%s/%s.mdl", g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]); } - - g_rgbPlayerUseDefaultModel[this] = true; - } else { - copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), g_rgszCustomPlayerModel[this]); } - @Player_UpdateModel(this, !bUsedDefault && g_rgbPlayerUseDefaultModel[this]); + @Player_UpdateModel(this, bUsedCustom && !g_rgbPlayerUseCustomModel[this]); } public @Player_UpdateModel(this, bool:bForce) { - new iAnimationIndex = g_rgiPlayerAnimationIndex[this]; - - if (bForce || !g_rgbPlayerUseDefaultModel[this] || iAnimationIndex) { + if (bForce || (g_rgbPlayerUseCustomModel[this] || g_rgiPlayerAnimationIndex[this])) { + new iAnimationIndex = g_rgiPlayerAnimationIndex[this]; new iModelIndex = engfunc(EngFunc_ModelIndex, g_rgszCurrentPlayerModel[this]); @Player_SetModelIndex(this, iAnimationIndex ? iAnimationIndex : iModelIndex); - set_pev(g_pPlayerModel[this], pev_modelindex, iAnimationIndex ? iModelIndex : 0); + set_pev(g_pPlayerSubModel[this], pev_modelindex, iAnimationIndex ? iModelIndex : 0); } else { - set_pev(g_pPlayerModel[this], pev_modelindex, 0); + set_pev(g_pPlayerSubModel[this], pev_modelindex, 0); } } @@ -229,6 +239,46 @@ public @Player_SetSequence(this, const szSequence[]) { return iSequence; } +public @PlayerSubModel_Create(pPlayer) { + new this = engfunc(EngFunc_CreateNamedEntity, g_iszModelClassname); + set_pev(this, pev_movetype, MOVETYPE_FOLLOW); + set_pev(this, pev_aiment, pPlayer); + set_pev(this, pev_owner, pPlayer); + + return this; +} + +public @PlayerSubModel_Destroy(this) { + set_pev(this, pev_modelindex, 0); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); + dllfunc(DLLFunc_Think, this); +} + +public @PlayerSubModel_Think(this) { + if (!@PlayerSubModel_IsActive(this)) { + set_entvar(this, var_effects, get_entvar(this, var_effects) | EF_NODRAW); + return; + } + + new pOwner = pev(this, pev_owner); + + set_entvar(this, var_skin, get_entvar(pOwner, var_skin)); + set_entvar(this, var_body, get_entvar(pOwner, var_body)); + set_entvar(this, var_colormap, get_entvar(pOwner, var_colormap)); + set_entvar(this, var_rendermode, get_entvar(pOwner, var_rendermode)); + set_entvar(this, var_renderfx, get_entvar(pOwner, var_renderfx)); + set_entvar(this, var_renderamt, get_entvar(pOwner, var_renderamt)); + set_entvar(this, var_effects, get_entvar(this, var_effects) & ~EF_NODRAW); + + static rgflColor[3]; + get_entvar(pOwner, var_rendercolor, rgflColor); + set_entvar(this, var_rendercolor, rgflColor); +} + +public @PlayerSubModel_IsActive(this) { + return (pev(this, pev_modelindex) > 0); +} + GetAnimationIndexByAnimExt(const szAnimExt[]) { static szSequence[32]; format(szSequence, charsmax(szSequence), "ref_aim_%s", szAnimExt); diff --git a/include/api_player_model.inc b/include/api_player_model.inc index 2e1710c..687f2fb 100644 --- a/include/api_player_model.inc +++ b/include/api_player_model.inc @@ -7,8 +7,10 @@ native PlayerModel_Get(pPlayer, szOut[], iLen); native PlayerModel_GetCurrent(pPlayer, szOut[], iLen); +native PlayerModel_GetEntity(pPlayer); +native bool:PlayerModel_HasCustom(pPlayer); native PlayerModel_Set(pPlayer, const szModel[]); native PlayerModel_Update(pPlayer); native PlayerModel_Reset(pPlayer); -native PlayerModel_PrecacheAnimation(const szAnimation[]); native PlayerModel_SetSequence(pPlayer, const szSequence[]); +native PlayerModel_PrecacheAnimation(const szAnimation[]); From f277b98a686e9e999b5df494cea92189ad2f31ee Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 24 Jul 2023 23:06:12 +0000 Subject: [PATCH 011/231] update player model api --- api_player_model.sma | 162 ++++++++++++++++++++++++++++++------------- 1 file changed, 113 insertions(+), 49 deletions(-) diff --git a/api_player_model.sma b/api_player_model.sma index 07c4d03..3a8a171 100644 --- a/api_player_model.sma +++ b/api_player_model.sma @@ -1,30 +1,30 @@ #include -#include #include +#include #include #define PLUGIN "[API] Player Model" #define VERSION "1.0.0" #define AUTHOR "Hedgehog Fog" +#define ERROR_MSG_NOT_CONNECTED "User %d is not connected" + #define MAX_SEQUENCES 101 -new g_iszModelClassname; +new g_iszSubModelClassname; new g_rgszDefaultPlayerModel[MAX_PLAYERS + 1][32]; new g_rgszCurrentPlayerModel[MAX_PLAYERS + 1][256]; new g_rgszCustomPlayerModel[MAX_PLAYERS + 1][256]; new g_rgiPlayerAnimationIndex[MAX_PLAYERS + 1]; +new g_pPlayerSubModel[MAX_PLAYERS + 1]; new bool:g_rgbPlayerUseCustomModel[MAX_PLAYERS + 1]; new Trie:g_itPlayerSequenceModelIndexes = Invalid_Trie; new Trie:g_itPlayerSequences = Invalid_Trie; -new g_pPlayerSubModel[MAX_PLAYERS + 1]; - -new gmsgClCorpse; public plugin_precache() { - g_iszModelClassname = engfunc(EngFunc_AllocString, "info_target"); + g_iszSubModelClassname = engfunc(EngFunc_AllocString, "info_target"); g_itPlayerSequenceModelIndexes = TrieCreate(); g_itPlayerSequences = TrieCreate(); } @@ -32,8 +32,6 @@ public plugin_precache() { public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); - gmsgClCorpse = get_user_msgid("ClCorpse"); - register_forward(FM_SetClientKeyValue, "FMHook_SetClientKeyValue"); RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); @@ -41,7 +39,7 @@ public plugin_init() { RegisterHookChain(RG_CBasePlayer_SetAnimation, "HC_Player_SetAnimation"); - register_message(gmsgClCorpse, "Message_ClCorpse"); + register_message(get_user_msgid("ClCorpse"), "Message_ClCorpse"); } public plugin_natives() { @@ -57,19 +55,43 @@ public plugin_natives() { register_native("PlayerModel_PrecacheAnimation", "Native_PrecacheAnimation"); } +public plugin_end() { + TrieDestroy(g_itPlayerSequenceModelIndexes); + TrieDestroy(g_itPlayerSequences); +} + +// ANCHOR: Natives + public Native_GetPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); + + if (!is_user_connected(pPlayer)) { + log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); + return; + } + set_string(2, g_rgszCustomPlayerModel[pPlayer], get_param(3)); } public Native_GetCurrentPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); + + if (!is_user_connected(pPlayer)) { + log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); + return; + } + set_string(2, g_rgszCurrentPlayerModel[pPlayer], get_param(3)); } public Native_GetPlayerEntity(iPluginId, iArgc) { new pPlayer = get_param(1); + if (!is_user_connected(pPlayer)) { + log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); + return 0; + } + if (g_pPlayerSubModel[pPlayer] && @PlayerSubModel_IsActive(g_pPlayerSubModel[pPlayer])) { return g_pPlayerSubModel[pPlayer]; } @@ -80,27 +102,55 @@ public Native_GetPlayerEntity(iPluginId, iArgc) { public bool:Native_HasCustomPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); + if (!is_user_connected(pPlayer)) { + log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); + return false; + } + return g_rgbPlayerUseCustomModel[pPlayer]; } public Native_SetPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); + + if (!is_user_connected(pPlayer)) { + log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); + return; + } + get_string(2, g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[])); } public Native_ResetPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); + + if (!is_user_connected(pPlayer)) { + log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); + return; + } + @Player_ResetModel(pPlayer); } public Native_UpdatePlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); + + if (!is_user_connected(pPlayer)) { + log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); + return; + } + @Player_UpdateCurrentModel(pPlayer); } public Native_SetPlayerSequence(iPluginId, iArgc) { new pPlayer = get_param(1); + if (!is_user_connected(pPlayer)) { + log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); + return 0; + } + static szSequence[MAX_RESOURCE_PATH_LENGTH]; get_string(2, szSequence, charsmax(szSequence)); @@ -113,6 +163,8 @@ public Native_PrecacheAnimation(iPluginId, iArgc) { return PrecachePlayerAnimation(szAnimation); } +// ANCHOR: Hooks and Forwards + public client_connect(pPlayer) { copy(g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[]), NULL_STRING); copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), NULL_STRING); @@ -128,19 +180,24 @@ public client_disconnected(pPlayer) { } } -public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { - new pTargetPlayer = get_msg_arg_int(12); - if (g_rgbPlayerUseCustomModel[pTargetPlayer] || g_rgiPlayerAnimationIndex[pTargetPlayer]) { - set_msg_arg_string(1, g_rgszCurrentPlayerModel[pTargetPlayer]); +public FMHook_SetClientKeyValue(pPlayer, const szInfoBuffer[], const szKey[], const szValue[]) { + if (equal(szKey, "model")) { + copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), szValue); + + if (!equal(g_rgszCurrentPlayerModel[pPlayer], NULL_STRING)) { + return FMRES_SUPERCEDE; + } + + return FMRES_HANDLED; } + + return FMRES_IGNORED; } public HamHook_Player_Spawn_Post(pPlayer) { - if (!g_pPlayerSubModel[pPlayer]) { - g_pPlayerSubModel[pPlayer] = @PlayerSubModel_Create(pPlayer); - } - @Player_UpdateCurrentModel(pPlayer); + + return HAM_HANDLED; } public HamHook_Player_PostThink_Post(pPlayer) { @@ -151,25 +208,20 @@ public HamHook_Player_PostThink_Post(pPlayer) { return HAM_HANDLED; } -public FMHook_SetClientKeyValue(pPlayer, const szInfoBuffer[], const szKey[], const szValue[]) { - if (equal(szKey, "model")) { - copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), szValue); - - if (!equal(g_rgszCurrentPlayerModel[pPlayer], NULL_STRING)) { - return FMRES_SUPERCEDE; - } +public HC_Player_SetAnimation(pPlayer) { + @Player_UpdateAnimationModel(pPlayer); +} - return FMRES_IGNORED; +public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { + new pTargetPlayer = get_msg_arg_int(12); + if (@Player_ShouldUseCurrentModel(pTargetPlayer)) { + set_msg_arg_string(1, g_rgszCurrentPlayerModel[pTargetPlayer]); } - - return FMRES_IGNORED; } -public HC_Player_SetAnimation(pPlayer) { - @Player_UpdateAnimationModel(pPlayer); -} +// ANCHOR: Methods -public @Player_UpdateAnimationModel(this) { +@Player_UpdateAnimationModel(this) { static szAnimExt[32]; get_member(this, m_szAnimExtention, szAnimExt, charsmax(szAnimExt)); @@ -180,34 +232,44 @@ public @Player_UpdateAnimationModel(this) { } } -public @Player_UpdateCurrentModel(this) { +@Player_UpdateCurrentModel(this) { new bool:bUsedCustom = g_rgbPlayerUseCustomModel[this]; g_rgbPlayerUseCustomModel[this] = !equal(g_rgszCustomPlayerModel[this], NULL_STRING); if (g_rgbPlayerUseCustomModel[this]) { copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), g_rgszCustomPlayerModel[this]); - } else { - if (!equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { - format(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), "models/player/%s/%s.mdl", g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]); - } + } else if (!equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { + format(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), "models/player/%s/%s.mdl", g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]); } @Player_UpdateModel(this, bUsedCustom && !g_rgbPlayerUseCustomModel[this]); } -public @Player_UpdateModel(this, bool:bForce) { - if (bForce || (g_rgbPlayerUseCustomModel[this] || g_rgiPlayerAnimationIndex[this])) { +@Player_UpdateModel(this, bool:bForceUpdate) { + new iSubModelModelIndex = 0; + + if (bForceUpdate || @Player_ShouldUseCurrentModel(this)) { new iAnimationIndex = g_rgiPlayerAnimationIndex[this]; new iModelIndex = engfunc(EngFunc_ModelIndex, g_rgszCurrentPlayerModel[this]); @Player_SetModelIndex(this, iAnimationIndex ? iAnimationIndex : iModelIndex); - set_pev(g_pPlayerSubModel[this], pev_modelindex, iAnimationIndex ? iModelIndex : 0); - } else { - set_pev(g_pPlayerSubModel[this], pev_modelindex, 0); + iSubModelModelIndex = iAnimationIndex ? iModelIndex : 0; + } + + if (iSubModelModelIndex && !g_pPlayerSubModel[this]) { + g_pPlayerSubModel[this] = @PlayerSubModel_Create(this); + } + + if (g_pPlayerSubModel[this]) { + set_pev(g_pPlayerSubModel[this], pev_modelindex, iSubModelModelIndex); } } -public @Player_ResetModel(this) { +bool:@Player_ShouldUseCurrentModel(this) { + return g_rgbPlayerUseCustomModel[this] || g_rgiPlayerAnimationIndex[this]; +} + +@Player_ResetModel(this) { if (equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { return; } @@ -219,13 +281,13 @@ public @Player_ResetModel(this) { @Player_UpdateCurrentModel(this); } -public @Player_SetModelIndex(this, iModelIndex) { +@Player_SetModelIndex(this, iModelIndex) { set_user_info(this, "model", ""); set_pev(this, pev_modelindex, iModelIndex); set_member(this, m_modelIndexPlayer, iModelIndex); } -public @Player_SetSequence(this, const szSequence[]) { +@Player_SetSequence(this, const szSequence[]) { new iAnimationIndex = GetAnimationIndexBySequence(szSequence); if (!iAnimationIndex) { return -1; @@ -239,8 +301,8 @@ public @Player_SetSequence(this, const szSequence[]) { return iSequence; } -public @PlayerSubModel_Create(pPlayer) { - new this = engfunc(EngFunc_CreateNamedEntity, g_iszModelClassname); +@PlayerSubModel_Create(pPlayer) { + new this = engfunc(EngFunc_CreateNamedEntity, g_iszSubModelClassname); set_pev(this, pev_movetype, MOVETYPE_FOLLOW); set_pev(this, pev_aiment, pPlayer); set_pev(this, pev_owner, pPlayer); @@ -248,13 +310,13 @@ public @PlayerSubModel_Create(pPlayer) { return this; } -public @PlayerSubModel_Destroy(this) { +@PlayerSubModel_Destroy(this) { set_pev(this, pev_modelindex, 0); set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); dllfunc(DLLFunc_Think, this); } -public @PlayerSubModel_Think(this) { +@PlayerSubModel_Think(this) { if (!@PlayerSubModel_IsActive(this)) { set_entvar(this, var_effects, get_entvar(this, var_effects) | EF_NODRAW); return; @@ -275,10 +337,12 @@ public @PlayerSubModel_Think(this) { set_entvar(this, var_rendercolor, rgflColor); } -public @PlayerSubModel_IsActive(this) { +@PlayerSubModel_IsActive(this) { return (pev(this, pev_modelindex) > 0); } +// ANCHOR: Functions + GetAnimationIndexByAnimExt(const szAnimExt[]) { static szSequence[32]; format(szSequence, charsmax(szSequence), "ref_aim_%s", szAnimExt); From 05ddcd658491b30b023a947a3e403f463bf6f0a0 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 24 Jul 2023 23:49:05 +0000 Subject: [PATCH 012/231] update natives error --- api_player_model.sma | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/api_player_model.sma b/api_player_model.sma index 3a8a171..69a9b9e 100644 --- a/api_player_model.sma +++ b/api_player_model.sma @@ -7,7 +7,7 @@ #define VERSION "1.0.0" #define AUTHOR "Hedgehog Fog" -#define ERROR_MSG_NOT_CONNECTED "User %d is not connected" +#define NATIVE_ERROR_NOT_CONNECTED(%1) log_error(AMX_ERR_NATIVE, "User %d is not connected", %1) #define MAX_SEQUENCES 101 @@ -66,8 +66,7 @@ public Native_GetPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); if (!is_user_connected(pPlayer)) { - log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); - return; + NATIVE_ERROR_NOT_CONNECTED(pPlayer); } set_string(2, g_rgszCustomPlayerModel[pPlayer], get_param(3)); @@ -77,8 +76,7 @@ public Native_GetCurrentPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); if (!is_user_connected(pPlayer)) { - log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); - return; + NATIVE_ERROR_NOT_CONNECTED(pPlayer); } set_string(2, g_rgszCurrentPlayerModel[pPlayer], get_param(3)); @@ -88,8 +86,7 @@ public Native_GetPlayerEntity(iPluginId, iArgc) { new pPlayer = get_param(1); if (!is_user_connected(pPlayer)) { - log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); - return 0; + NATIVE_ERROR_NOT_CONNECTED(pPlayer); } if (g_pPlayerSubModel[pPlayer] && @PlayerSubModel_IsActive(g_pPlayerSubModel[pPlayer])) { @@ -103,8 +100,7 @@ public bool:Native_HasCustomPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); if (!is_user_connected(pPlayer)) { - log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); - return false; + NATIVE_ERROR_NOT_CONNECTED(pPlayer); } return g_rgbPlayerUseCustomModel[pPlayer]; @@ -114,8 +110,7 @@ public Native_SetPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); if (!is_user_connected(pPlayer)) { - log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); - return; + NATIVE_ERROR_NOT_CONNECTED(pPlayer); } get_string(2, g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[])); @@ -125,8 +120,7 @@ public Native_ResetPlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); if (!is_user_connected(pPlayer)) { - log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); - return; + NATIVE_ERROR_NOT_CONNECTED(pPlayer); } @Player_ResetModel(pPlayer); @@ -136,8 +130,7 @@ public Native_UpdatePlayerModel(iPluginId, iArgc) { new pPlayer = get_param(1); if (!is_user_connected(pPlayer)) { - log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); - return; + NATIVE_ERROR_NOT_CONNECTED(pPlayer); } @Player_UpdateCurrentModel(pPlayer); @@ -147,8 +140,7 @@ public Native_SetPlayerSequence(iPluginId, iArgc) { new pPlayer = get_param(1); if (!is_user_connected(pPlayer)) { - log_error(AMX_ERR_NATIVE, ERROR_MSG_NOT_CONNECTED, pPlayer); - return 0; + NATIVE_ERROR_NOT_CONNECTED(pPlayer); } static szSequence[MAX_RESOURCE_PATH_LENGTH]; From dba0d6a4565988605ab00f8f643bae286aa93a2b Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 25 Jul 2023 11:04:15 +0300 Subject: [PATCH 013/231] update custom entities api --- api_custom_entities.sma | 298 ++++++++++++++++++-------------- include/api_custom_entities.inc | 8 +- 2 files changed, 171 insertions(+), 135 deletions(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index c70f877..62c5156 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -5,6 +5,7 @@ #include #include #include +#include #include @@ -51,12 +52,11 @@ public plugin_precache() { register_forward(FM_Spawn, "FMHook_Spawn"); register_forward(FM_KeyValue, "FMHook_KeyValue"); - register_forward(FM_KeyValue, "FMHook_KeyValue_Post", 1); register_forward(FM_OnFreeEntPrivateData, "FMHook_OnFreeEntPrivateData"); RegisterHam(Ham_Spawn, CE_BASE_CLASSNAME, "HamHook_Base_Spawn_Post", .Post = 1); RegisterHam(Ham_ObjectCaps, CE_BASE_CLASSNAME, "HamHook_Base_ObjectCaps", .Post = 0); - RegisterHam(Ham_CS_Restart, CE_BASE_CLASSNAME, "HamHook_Base_Restart", .Post = 0); + RegisterHam(Ham_CS_Restart, CE_BASE_CLASSNAME, "HamHook_Base_Restart", .Post = 1); RegisterHam(Ham_Touch, CE_BASE_CLASSNAME, "HamHook_Base_Touch", .Post = 0); RegisterHam(Ham_Killed, CE_BASE_CLASSNAME, "HamHook_Base_Killed", .Post = 0); RegisterHam(Ham_Think, CE_BASE_CLASSNAME, "HamHook_Base_Think", .Post = 0); @@ -84,6 +84,7 @@ public plugin_natives() { register_native("CE_GetHandler", "Native_GetHandler"); register_native("CE_GetHandlerByEntity", "Native_GetHandlerByEntity"); + register_native("CE_HasMember", "Native_HasMember"); register_native("CE_GetMember", "Native_GetMember"); register_native("CE_SetMember", "Native_SetMember"); register_native("CE_GetMemberVec", "Native_GetMemberVec"); @@ -206,6 +207,17 @@ public Native_GetHandlerByEntity(iPluginId, iArgc) { return GetPDataMember(itPData, CE_MEMBER_ID); } +public bool:Native_HasMember(iPluginId, iArgc) { + new pEntity = get_param(1); + + static szMember[CE_MAX_MEMBER_LENGTH]; + get_string(2, szMember, charsmax(szMember)); + + new Trie:itPData = @Entity_GetPData(pEntity); + + return HasPDataMember(itPData, szMember); +} + public any:Native_GetMember(iPluginId, iArgc) { new pEntity = get_param(1); @@ -230,7 +242,7 @@ public Native_SetMember(iPluginId, iArgc) { SetPDataMember(itPData, szMember, iValue); } -public Native_GetMemberVec(iPluginId, iArgc) { +public bool:Native_GetMemberVec(iPluginId, iArgc) { new pEntity = get_param(1); static szMember[CE_MAX_MEMBER_LENGTH]; @@ -239,8 +251,12 @@ public Native_GetMemberVec(iPluginId, iArgc) { new Trie:itPData = @Entity_GetPData(pEntity); static Float:vecValue[3]; - GetPDataMemberVec(itPData, szMember, vecValue); + if (!GetPDataMemberVec(itPData, szMember, vecValue)) { + return false; + } + set_array_f(3, vecValue, sizeof(vecValue)); + return true; } public Native_SetMemberVec(iPluginId, iArgc) { @@ -256,7 +272,7 @@ public Native_SetMemberVec(iPluginId, iArgc) { SetPDataMemberVec(itPData, szMember, vecValue); } -public Native_GetMemberString(iPluginId, iArgc) { +public bool:Native_GetMemberString(iPluginId, iArgc) { new pEntity = get_param(1); static szMember[CE_MAX_MEMBER_LENGTH]; @@ -266,8 +282,13 @@ public Native_GetMemberString(iPluginId, iArgc) { get_string(3, szValue, charsmax(szValue)); new Trie:itPData = @Entity_GetPData(pEntity); - GetPDataMemberString(itPData, szMember, szValue, charsmax(szValue)); + if (!GetPDataMemberString(itPData, szMember, szValue, charsmax(szValue))) { + return false; + } + set_string(4, szValue, get_param(5)); + + return true; } public Native_SetMemberString(iPluginId, iArgc) { @@ -301,7 +322,7 @@ public Command_Spawn(pPlayer, iLevel, iCId) { static Float:vecOrigin[3]; pev(pPlayer, pev_origin, vecOrigin); - new pEntity = @Entity_Create(szClassName, Float:{0.0, 0.0, 0.0}, false); + new pEntity = @Entity_Create(szClassName, vecOrigin, false); if (pEntity) { dllfunc(DLLFunc_Spawn, pEntity); engfunc(EngFunc_SetOrigin, pEntity, vecOrigin); @@ -341,8 +362,8 @@ public FMHook_KeyValue(pEntity, hKVD) { } else { // if for some reason data was not assigned if (g_itPData != Invalid_Trie) { - FreePData(g_itPData); - g_itPData = Invalid_Trie; + FreePData(g_itPData); + g_itPData = Invalid_Trie; } } } @@ -360,8 +381,6 @@ public FMHook_KeyValue(pEntity, hKVD) { SetPDataMemberVec(g_itPData, CE_MEMBER_ANGLES, vecAngles); } else if (equal(szKey, "master")) { SetPDataMemberString(g_itPData, CE_MEMBER_MASTER, szValue); - } else if (equal(szKey, "model")) { - SetPDataMemberString(g_itPData, CE_MEMBER_MODEL, szValue); } new iId = GetPDataMember(g_itPData, CE_MEMBER_ID); @@ -438,6 +457,10 @@ public HamHook_Base_Think(pEntity, pKiller) { /*--------------------------------[ Methods ]--------------------------------*/ +bool:@Entity_IsCustom(this) { + return pev(this, pev_gaitsequence) == CE_ENTITY_SECRET; +} + @Entity_Create(const szClassName[], const Float:vecOrigin[3], bool:bTemp) { new iId = GetIdByClassName(szClassName); if (iId == -1) { @@ -475,12 +498,6 @@ public HamHook_Base_Think(pEntity, pKiller) { set_pev(this, pev_effects, pev(this, pev_effects) & ~EF_NODRAW); set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); - static szModel[MAX_RESOURCE_PATH_LENGTH]; - GetPDataMemberString(itPData, CE_MEMBER_MODEL, szModel, charsmax(szModel)); - if (!equal(szModel, NULL_STRING)) { - engfunc(EngFunc_SetModel, this, szModel); - } - static Float:vecMins[3]; ArrayGetArray(g_rgCEData[CEData_Mins], iId, vecMins); @@ -489,26 +506,32 @@ public HamHook_Base_Think(pEntity, pKiller) { engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); - static Float:vecOrigin[3]; - GetPDataMemberVec(itPData, CE_MEMBER_ORIGIN, vecOrigin); - engfunc(EngFunc_SetOrigin, this, vecOrigin); + if (HasPDataMember(itPData, CE_MEMBER_ORIGIN)) { + static Float:vecOrigin[3]; + GetPDataMemberVec(itPData, CE_MEMBER_ORIGIN, vecOrigin); + engfunc(EngFunc_SetOrigin, this, vecOrigin); + } - static Float:vecAngles[3]; - GetPDataMemberVec(itPData, CE_MEMBER_ANGLES, vecAngles); - set_pev(this, pev_angles, vecAngles); + if (HasPDataMember(itPData, CE_MEMBER_ANGLES)) { + static Float:vecAngles[3]; + GetPDataMemberVec(itPData, CE_MEMBER_ANGLES, vecAngles); + set_pev(this, pev_angles, vecAngles); + } + + new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); + @Entity_ApplyPreset(this, iPreset); new iModelIndex = ArrayGetCell(g_rgCEData[CEData_ModelIndex], iId); if (iModelIndex > 0) { set_pev(this, pev_modelindex, iModelIndex); } - new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); - @Entity_ApplyPreset(this, iPreset); + @Entity_UpdateModel(this); ExecuteHookFunction(CEFunction_Spawn, iId, this); } -public @Entity_Restart(this) { +@Entity_Restart(this) { new iObjectCaps = ExecuteHamB(Ham_ObjectCaps, this); if (~iObjectCaps & FCAP_ACROSS_TRANSITION) { @@ -516,46 +539,14 @@ public @Entity_Restart(this) { } } -@Entity_Touch(this, pToucher) { - if (is_user_alive(pToucher)) { - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); - - switch (iPreset) { - case CEPreset_Item: @Entity_Pickup(this, pToucher); - case CEPreset_Trigger: @Entity_Trigger(this, pToucher); - } - } -} - -@Entity_Pickup(this, pToucher) { - if (~pev(this, pev_flags) & FL_ONGROUND) { - return; - } - - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - - if (ExecuteHookFunction(CEFunction_Pickup, iId, this, pToucher)) { - ExecuteHookFunction(CEFunction_Picked, iId, this, pToucher); - @Entity_Kill(this, pToucher, true); +@Entity_UpdateModel(this) { + static szModel[MAX_RESOURCE_PATH_LENGTH]; + pev(this, pev_model, szModel, charsmax(szModel)); + if (!equal(szModel, NULL_STRING)) { + engfunc(EngFunc_SetModel, this, szModel); } } -@Entity_Trigger(this, pActivator) { - if (!@Entity_CanActivate(this, pActivator)) { - return; - } - - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - new Float:flDelay = GetPDataMember(itPData, CE_MEMBER_DELAY); - - set_pev(this, pev_nextthink, get_gametime() + flDelay); - ExecuteHookFunction(CEFunction_Activated, iId, this, pActivator); -} - @Entity_Kill(this, pKiller, bool:bPicked) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); @@ -616,39 +607,91 @@ public @Entity_Restart(this) { } } -Trie:@Entity_GetPData(this) { - // Return the current allocated data if the entity is at the initialization stage - if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER)) { - return g_itPData; - } +@Entity_Touch(this, pToucher) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); - return Trie:pev(this, pev_iStepLeft); + switch (iPreset) { + case CEPreset_Item: { + if (is_user_alive(pToucher)) { + @Entity_Pickup(this, pToucher); + } + } + case CEPreset_Trigger: { + @Entity_Trigger(this, pToucher); + } + } } -@Entity_SetPData(this, Trie:itPData) { - set_pev(this, pev_gaitsequence, CE_ENTITY_SECRET); - set_pev(this, pev_iStepLeft, itPData); +@Entity_GetObjectCaps(this) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + new bool:bIgnoreRound = ArrayGetCell(g_rgCEData[CEData_IgnoreRounds], iId); + new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); + + new iObjectCaps = 0; + + if (bIgnoreRound) { + iObjectCaps |= FCAP_ACROSS_TRANSITION; + } else { + if (bIsWorld) { + iObjectCaps |= FCAP_MUST_RESET; + } else { + iObjectCaps |= FCAP_MUST_RELEASE; + } + } + + return iObjectCaps; } -Trie:@Entity_AllocPData(this, iId) { - new Trie:itPData = AllocPData(iId, this); - @Entity_SetPData(this, itPData); - return itPData; +@Entity_Pickup(this, pToucher) { + if (~pev(this, pev_flags) & FL_ONGROUND) { + return; + } + + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + + if (ExecuteHookFunction(CEFunction_Pickup, iId, this, pToucher)) { + ExecuteHookFunction(CEFunction_Picked, iId, this, pToucher); + @Entity_Kill(this, pToucher, true); + } } -@Entity_FreePData(this) { +bool:@Entity_CanActivate(this, pTarget) { + static Float:flNextThink; + pev(this, pev_nextthink, flNextThink); + + if (flNextThink > get_gametime()) { + return false; + } + new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); - ExecuteHookFunction(CEFunction_Remove, iId, this); - FreePData(itPData); + if (!ExecuteHookFunction(CEFunction_Activate, iId, this, pTarget)) { + return false; + } - set_pev(this, pev_gaitsequence, 0); - set_pev(this, pev_iStepLeft, 0); + static szMaster[32]; + copy(szMaster, charsmax(szMaster), NULL_STRING); + GetPDataMemberString(@Entity_GetPData(this), CE_MEMBER_MASTER, szMaster, charsmax(szMaster)); + + return UTIL_IsMasterTriggered(szMaster, pTarget); } -bool:@Entity_IsCustom(this) { - return pev(this, pev_gaitsequence) == CE_ENTITY_SECRET; +@Entity_Trigger(this, pActivator) { + if (!@Entity_CanActivate(this, pActivator)) { + return; + } + + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + new Float:flDelay = GetPDataMember(itPData, CE_MEMBER_DELAY); + + set_pev(this, pev_nextthink, get_gametime() + flDelay); + ExecuteHookFunction(CEFunction_Activated, iId, this, pActivator); } @Entity_ApplyPreset(this, CEPreset:iPreset) { @@ -695,46 +738,35 @@ bool:@Entity_IsCustom(this) { } } -@Entity_CanActivate(this, pTarget) { - static Float:flNextThink; - pev(this, pev_nextthink, flNextThink); - - if (flNextThink > get_gametime()) { - return false; - } - - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - - if (!ExecuteHookFunction(CEFunction_CanActivate, iId, this, pTarget)) { - return false; +Trie:@Entity_GetPData(this) { + // Return the current allocated data if the entity is at the initialization stage + if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER)) { + return g_itPData; } - static szMaster[32]; - GetPDataMemberString(@Entity_GetPData(this), CE_MEMBER_MASTER, szMaster, charsmax(szMaster)); + return Trie:pev(this, pev_iStepLeft); +} - return UTIL_IsMasterTriggered(szMaster, pTarget); +@Entity_SetPData(this, Trie:itPData) { + set_pev(this, pev_gaitsequence, CE_ENTITY_SECRET); + set_pev(this, pev_iStepLeft, itPData); } -@Entity_GetObjectCaps(this) { - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - new bool:bIgnoreRound = ArrayGetCell(g_rgCEData[CEData_IgnoreRounds], iId); - new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); +Trie:@Entity_AllocPData(this, iId) { + new Trie:itPData = AllocPData(iId, this); + @Entity_SetPData(this, itPData); + return itPData; +} - new iObjectCaps = 0; +@Entity_FreePData(this) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + ExecuteHookFunction(CEFunction_Remove, iId, this); - if (bIgnoreRound) { - iObjectCaps |= FCAP_ACROSS_TRANSITION; - } else { - if (bIsWorld) { - iObjectCaps |= FCAP_MUST_RESET; - } else { - iObjectCaps |= FCAP_MUST_RELEASE; - } - } + FreePData(itPData); - return iObjectCaps; + set_pev(this, pev_gaitsequence, 0); + set_pev(this, pev_iStepLeft, 0); } /*--------------------------------[ Functions ]--------------------------------*/ @@ -752,7 +784,6 @@ InitStorages() { for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { g_rgCEData[CEData_Hooks][iFunction] = ArrayCreate(); - g_rgCEData[CEData_Hooks][iFunction] = ArrayCreate(); } } @@ -795,7 +826,7 @@ RegisterEntity( ArrayPushCell(g_rgCEData[CEData_IgnoreRounds], bIgnoreRounds); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - ArrayPushCell(g_rgCEData[CEData_Hooks][iFunction], ArrayCreate(2)); + ArrayPushCell(g_rgCEData[CEData_Hooks][iFunction], ArrayCreate(_:CEHookData)); } g_iEntitiesNum++; @@ -807,9 +838,9 @@ RegisterEntity( FreeRegisteredEntityData(iId) { for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - new Array:irgHooks = ArrayGetCell(g_rgCEData[CEData_Hooks][CEFunction:iFunction], iId); + new Array:irgHooks = ArrayGetCell(g_rgCEData[CEData_Hooks][iFunction], iId); ArrayDestroy(irgHooks); - ArraySetCell(g_rgCEData[CEData_Hooks][CEFunction:iFunction], iId, Invalid_Array); + ArraySetCell(g_rgCEData[CEData_Hooks][iFunction], iId, Invalid_Array); } } @@ -822,7 +853,7 @@ GetIdByClassName(const szClassName[]) { RegisterEntityHook(CEFunction:iFunction, const szClassName[], const szCallback[], iPluginId = -1) { new iId = GetIdByClassName(szClassName); if (iId == -1) { - log_error(0, "%s Entity %s is not registered.", LOG_PREFIX, szClassName); + log_error(AMX_ERR_NATIVE, "%s Entity %s is not registered.", LOG_PREFIX, szClassName); return -1; } @@ -830,16 +861,16 @@ RegisterEntityHook(CEFunction:iFunction, const szClassName[], const szCallback[] if (iFunctionId < 0) { new szFilename[32]; get_plugin(iPluginId, szFilename, charsmax(szFilename)); - log_error(0, "%s Function %s not found in plugin %s.", LOG_PREFIX, szCallback, szFilename); + log_error(AMX_ERR_NATIVE, "%s Function %s not found in plugin %s.", LOG_PREFIX, szCallback, szFilename); return -1; } - new rgiHookData[CEHookData]; - rgiHookData[CEHookData_FuncID] = iFunctionId; - rgiHookData[CEHookData_PluginID] = iPluginId; + new rgHook[CEHookData]; + rgHook[CEHookData_PluginID] = iPluginId; + rgHook[CEHookData_FuncID] = iFunctionId; new Array:irgHooks = ArrayGetCell(g_rgCEData[CEData_Hooks][iFunction], iId); - new iHookId = ArrayPushArray(irgHooks, rgiHookData[CEHookData:0], _:CEHookData); + new iHookId = ArrayPushArray(irgHooks, rgHook[CEHookData:0], _:CEHookData); return iHookId; } @@ -847,7 +878,6 @@ RegisterEntityHook(CEFunction:iFunction, const szClassName[], const szCallback[] Trie:AllocPData(iId, pEntity) { new Trie:itPData = TrieCreate(); SetPDataMember(itPData, CE_MEMBER_ID, iId); - SetPDataMemberVec(itPData, CE_MEMBER_ORIGIN, Float:{0.0, 0.0, 0.0}); SetPDataMember(itPData, CE_MEMBER_WORLD, false); SetPDataMember(itPData, CE_MEMBER_POINTER, pEntity); return itPData; @@ -857,6 +887,10 @@ FreePData(Trie:itPData) { TrieDestroy(itPData); } +bool:HasPDataMember(Trie:itPData, const szMember[]) { + return TrieKeyExists(itPData, szMember); +} + any:GetPDataMember(Trie:itPData, const szMember[]) { static any:value; return TrieGetCell(itPData, szMember, value) ? value : 0; @@ -866,7 +900,8 @@ SetPDataMember(Trie:itPData, const szMember[], any:value) { TrieSetCell(itPData, szMember, value); } -GetPDataMemberString(Trie:itPData, const szMember[], szOutput[], iLen) { +bool:GetPDataMemberString(Trie:itPData, const szMember[], szOutput[], iLen) { + copy(szOutput, iLen, NULL_STRING); return !!TrieGetString(itPData, szMember, szOutput, iLen); } @@ -874,7 +909,8 @@ SetPDataMemberString(Trie:itPData, const szMember[], const szValue[]) { TrieSetString(itPData, szMember, szValue); } -GetPDataMemberVec(Trie:itPData, const szMember[], Float:vecOut[3]) { +bool:GetPDataMemberVec(Trie:itPData, const szMember[], Float:vecOut[3]) { + xs_vec_copy(Float:{0.0, 0.0, 0.0}, vecOut); return !!TrieGetArray(itPData, szMember, vecOut, 3); } @@ -889,8 +925,8 @@ ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { new iHooksNum = ArraySize(irgHooks); for (new iHookId = 0; iHookId < iHooksNum; ++iHookId) { - new iFunctionId = ArrayGetCell(irgHooks, iHookId, _:CEHookData_FuncID); new iPluginId = ArrayGetCell(irgHooks, iHookId, _:CEHookData_PluginID); + new iFunctionId = ArrayGetCell(irgHooks, iHookId, _:CEHookData_FuncID); if (callfunc_begin_i(iFunctionId, iPluginId) == 1) { callfunc_push_int(pEntity); @@ -906,7 +942,7 @@ ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { new pPlayer = getarg(3); callfunc_push_int(pPlayer); } - case CEFunction_CanActivate, CEFunction_Activated: { + case CEFunction_Activate, CEFunction_Activated: { new pPlayer = getarg(3); callfunc_push_int(pPlayer); } @@ -945,7 +981,7 @@ ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { stock bool:UTIL_IsMasterTriggered(const szMaster[], pActivator) { if (!equal(szMaster, NULL_STRING)) { - new pMaster = engfunc(FM_FindEntityByString, 0, "targetname", szMaster); + new pMaster = engfunc(EngFunc_FindEntityByString, 0, "targetname", szMaster); if (pMaster && (ExecuteHam(Ham_ObjectCaps, pMaster) & FCAP_MASTER)) { return !!ExecuteHamB(Ham_IsTriggered, pMaster, pActivator); diff --git a/include/api_custom_entities.inc b/include/api_custom_entities.inc index f9ab2dc..87e1f28 100644 --- a/include/api_custom_entities.inc +++ b/include/api_custom_entities.inc @@ -18,7 +18,6 @@ #define CE_MEMBER_ORIGIN "_origin" #define CE_MEMBER_ANGLES "_angles" #define CE_MEMBER_MASTER "_master" -#define CE_MEMBER_MODEL "_model" #define CE_MEMBER_DELAY "_delay" #define CE_MEMBER_NEXTKILL "_nextkill" #define CE_MEMBER_NEXTRESPAWN "_nextrespawn" @@ -40,7 +39,7 @@ enum CEFunction { CEFunction_Picked, // Call when player pick item CEFunction_Pickup, // Call when player touch item. Should return PLUGIN_HANDLED if picked. CEFunction_KVD, // Call when new key value obtained - CEFunction_CanActivate, // Call every trigger activation check + CEFunction_Activate, // Call every trigger activation check CEFunction_Activated // Call when player activates trigger }; @@ -130,9 +129,10 @@ native CE_GetHandler(const szName[]); */ native CE_GetHandlerByEntity(ent); +native bool:CE_HasMember(ent, const szMember[]); native any:CE_GetMember(ent, const szMember[]); native CE_SetMember(ent, const szMember[], any:value); -native CE_GetMemberVec(ent, const szMember[], Float:vOut[3]); +native bool:CE_GetMemberVec(ent, const szMember[], Float:vOut[3]); native CE_SetMemberVec(ent, const szMember[], const Float:vValue[3]); -native CE_GetMemberString(ent, const szMember[], szOut[], len); +native bool:CE_GetMemberString(ent, const szMember[], szOut[], len); native CE_SetMemberString(ent, const szMember[], const szValue[]); From af8c12a946d6c2c19a5b691383a8a5cfc370c0a4 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 25 Jul 2023 11:04:49 +0300 Subject: [PATCH 014/231] fix memory leaks --- api_custom_weapons.sma | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/api_custom_weapons.sma b/api_custom_weapons.sma index 1e41324..2783c6f 100644 --- a/api_custom_weapons.sma +++ b/api_custom_weapons.sma @@ -10,7 +10,7 @@ #include #define PLUGIN "[API] Custom Weapons" -#define VERSION "0.7.9" +#define VERSION "0.8.0" #define AUTHOR "Hedgehog Fog" #define WALL_PUFF_SPRITE "sprites/wall_puff1.spr" @@ -76,7 +76,6 @@ new const g_rgszWeaponNames[CSW_LAST_WEAPON + 1][] = { new gmsgWeaponList; new gmsgDeathMsg; -new g_iszWeaponNames[CSW_LAST_WEAPON + 1]; new bool:g_bWeaponHooks[CSW_LAST_WEAPON + 1]; new g_weaponListDefaults[CSW_LAST_WEAPON + 1][WeaponListMessage]; @@ -87,7 +86,6 @@ new g_iWeaponCount; new Float:g_flNextPredictionUpdate[MAX_PLAYERS + 1]; new bool:g_bKnifeHolstered[MAX_PLAYERS + 1]; -new g_iszWeaponBox; new g_pNewWeaponboxEnt = -1; new g_pKillerItem = -1; new bool:g_bSupercede; @@ -97,8 +95,7 @@ new Array:g_irgDecals; public plugin_precache() { g_bPrecache = true; - - AllocateStrings(); + InitStorages(); register_forward(FM_UpdateClientData, "OnUpdateClientData_Post", 1); @@ -1595,7 +1592,7 @@ CW:GetHandlerByEntity(pEntity) { SpawnWeapon(CW:iHandler) { new iWeaponId = GetData(iHandler, CW_Data_Id); - new pEntity = engfunc(EngFunc_CreateNamedEntity, g_iszWeaponNames[iWeaponId]); + new pEntity = rg_create_entity(g_rgszWeaponNames[iWeaponId], true); if (!pEntity) { return 0; } @@ -1630,7 +1627,7 @@ SpawnWeaponBox(CW:iHandler) { set_pev(pItem, pev_model, 0); set_pev(pItem, pev_modelindex, 0); - new pWeaponBox = engfunc(EngFunc_CreateNamedEntity, g_iszWeaponBox); + new pWeaponBox = rg_create_entity("weaponbox", true); if (!pWeaponBox) { set_pev(pItem, pev_flags, pev(pItem, pev_flags) | FL_KILLME); dllfunc(DLLFunc_Think, pItem); @@ -2018,18 +2015,6 @@ GetDecalIndex(pEntity) { // ANCHOR: Storages -AllocateStrings() { - g_iszWeaponBox = engfunc(EngFunc_AllocString, "weaponbox"); - - for (new iWeaponId = 0; iWeaponId <= CSW_LAST_WEAPON; ++iWeaponId) { - if (g_rgszWeaponNames[iWeaponId][0] == '^0') { - continue; - } - - g_iszWeaponNames[iWeaponId] = engfunc(EngFunc_AllocString, g_rgszWeaponNames[iWeaponId]); - } -} - InitStorages() { g_rgWeapons[CW_Data_Name] = ArrayCreate(64, 1); g_rgWeapons[CW_Data_Icon] = ArrayCreate(16, 1); From 5b37eb20e9a5f0197c9ea165e392da3773f44659 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 25 Jul 2023 11:49:16 +0300 Subject: [PATCH 015/231] fix model update --- api_player_model.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api_player_model.sma b/api_player_model.sma index 69a9b9e..643441d 100644 --- a/api_player_model.sma +++ b/api_player_model.sma @@ -176,7 +176,7 @@ public FMHook_SetClientKeyValue(pPlayer, const szInfoBuffer[], const szKey[], co if (equal(szKey, "model")) { copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), szValue); - if (!equal(g_rgszCurrentPlayerModel[pPlayer], NULL_STRING)) { + if (@Player_ShouldUseCurrentModel(pPlayer)) { return FMRES_SUPERCEDE; } From eb2d042eef544c28de8dbbbc869b7674ee24da32 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 25 Jul 2023 21:20:19 +0300 Subject: [PATCH 016/231] fix naming --- api_player_model.sma | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/api_player_model.sma b/api_player_model.sma index 643441d..7abd0ed 100644 --- a/api_player_model.sma +++ b/api_player_model.sma @@ -17,7 +17,7 @@ new g_rgszDefaultPlayerModel[MAX_PLAYERS + 1][32]; new g_rgszCurrentPlayerModel[MAX_PLAYERS + 1][256]; new g_rgszCustomPlayerModel[MAX_PLAYERS + 1][256]; new g_rgiPlayerAnimationIndex[MAX_PLAYERS + 1]; -new g_pPlayerSubModel[MAX_PLAYERS + 1]; +new g_rgpPlayerSubModel[MAX_PLAYERS + 1]; new bool:g_rgbPlayerUseCustomModel[MAX_PLAYERS + 1]; new Trie:g_itPlayerSequenceModelIndexes = Invalid_Trie; @@ -89,8 +89,8 @@ public Native_GetPlayerEntity(iPluginId, iArgc) { NATIVE_ERROR_NOT_CONNECTED(pPlayer); } - if (g_pPlayerSubModel[pPlayer] && @PlayerSubModel_IsActive(g_pPlayerSubModel[pPlayer])) { - return g_pPlayerSubModel[pPlayer]; + if (g_rgpPlayerSubModel[pPlayer] && @PlayerSubModel_IsActive(g_rgpPlayerSubModel[pPlayer])) { + return g_rgpPlayerSubModel[pPlayer]; } return pPlayer; @@ -166,9 +166,9 @@ public client_connect(pPlayer) { } public client_disconnected(pPlayer) { - if (g_pPlayerSubModel[pPlayer]) { - @PlayerSubModel_Destroy(g_pPlayerSubModel[pPlayer]); - g_pPlayerSubModel[pPlayer] = 0; + if (g_rgpPlayerSubModel[pPlayer]) { + @PlayerSubModel_Destroy(g_rgpPlayerSubModel[pPlayer]); + g_rgpPlayerSubModel[pPlayer] = 0; } } @@ -193,8 +193,8 @@ public HamHook_Player_Spawn_Post(pPlayer) { } public HamHook_Player_PostThink_Post(pPlayer) { - if (g_pPlayerSubModel[pPlayer]) { - @PlayerSubModel_Think(g_pPlayerSubModel[pPlayer]); + if (g_rgpPlayerSubModel[pPlayer]) { + @PlayerSubModel_Think(g_rgpPlayerSubModel[pPlayer]); } return HAM_HANDLED; @@ -248,12 +248,12 @@ public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { iSubModelModelIndex = iAnimationIndex ? iModelIndex : 0; } - if (iSubModelModelIndex && !g_pPlayerSubModel[this]) { - g_pPlayerSubModel[this] = @PlayerSubModel_Create(this); + if (iSubModelModelIndex && !g_rgpPlayerSubModel[this]) { + g_rgpPlayerSubModel[this] = @PlayerSubModel_Create(this); } - if (g_pPlayerSubModel[this]) { - set_pev(g_pPlayerSubModel[this], pev_modelindex, iSubModelModelIndex); + if (g_rgpPlayerSubModel[this]) { + set_pev(g_rgpPlayerSubModel[this], pev_modelindex, iSubModelModelIndex); } } From 99c0c6bdc383b7005f0d468e92dc0a3db2ebaac5 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 26 Jul 2023 17:05:31 +0300 Subject: [PATCH 017/231] add init function --- api_custom_entities.sma | 2 ++ include/api_custom_entities.inc | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index 62c5156..0b50619 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -400,6 +400,8 @@ public FMHook_Spawn(pEntity) { @Entity_SetPData(pEntity, g_itPData); g_itPData = Invalid_Trie; + + ExecuteHookFunction(CEFunction_Init, iId, pEntity); } } diff --git a/include/api_custom_entities.inc b/include/api_custom_entities.inc index 87e1f28..c001445 100644 --- a/include/api_custom_entities.inc +++ b/include/api_custom_entities.inc @@ -32,15 +32,16 @@ enum CEPreset { }; enum CEFunction { - CEFunction_Spawn, // Call when entity spawned - CEFunction_Kill, // Call when some plugin try to kill entity. return PLUGIN_HANDLED to discard kill. - CEFunction_Killed, // Call when entity killed - CEFunction_Remove, // Call when entity removed - CEFunction_Picked, // Call when player pick item - CEFunction_Pickup, // Call when player touch item. Should return PLUGIN_HANDLED if picked. - CEFunction_KVD, // Call when new key value obtained - CEFunction_Activate, // Call every trigger activation check - CEFunction_Activated // Call when player activates trigger + CEFunction_Spawn, // Calls when entity spawned + CEFunction_Kill, // Calls when some plugin try to kill entity. return PLUGIN_HANDLED to discard kill. + CEFunction_Killed, // Calls when entity killed + CEFunction_Remove, // Calls when entity removed + CEFunction_Picked, // Calls when player pick item + CEFunction_Pickup, // Calls when player touch item. Should return PLUGIN_HANDLED if picked. + CEFunction_KVD, // Calls when new key value obtained + CEFunction_Activate, // Calls every trigger activation check + CEFunction_Activated, // Calls when player activates trigger + CEFunction_Init // Calls when entity is initialized (on first spawn) }; /* From b35e9ea6d690c9227dcee84a799f57e62b3d83c1 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 27 Jul 2023 03:46:56 +0300 Subject: [PATCH 018/231] add think function --- api_custom_entities.sma | 5 ++++- include/api_custom_entities.inc | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index 0b50619..5bd6644 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -588,8 +588,9 @@ bool:@Entity_IsCustom(this) { new Float:flGameTime = get_gametime(); new Trie:itPData = @Entity_GetPData(this); - new iDeadFlag = pev(this, pev_deadflag); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + new iDeadFlag = pev(this, pev_deadflag); switch (iDeadFlag) { case DEAD_NO: { new Float:flNextKill = GetPDataMember(itPData, CE_MEMBER_NEXTKILL); @@ -607,6 +608,8 @@ bool:@Entity_IsCustom(this) { } } } + + ExecuteHookFunction(CEFunction_Think, iId, this); } @Entity_Touch(this, pToucher) { diff --git a/include/api_custom_entities.inc b/include/api_custom_entities.inc index c001445..248bb74 100644 --- a/include/api_custom_entities.inc +++ b/include/api_custom_entities.inc @@ -41,7 +41,8 @@ enum CEFunction { CEFunction_KVD, // Calls when new key value obtained CEFunction_Activate, // Calls every trigger activation check CEFunction_Activated, // Calls when player activates trigger - CEFunction_Init // Calls when entity is initialized (on first spawn) + CEFunction_Init, // Calls when entity is initialized (on first spawn) + CEFunction_Think // Calls when entity thinking }; /* From e538944d0dbd8a10dfce9da103b2a7885161165e Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 27 Jul 2023 03:47:28 +0300 Subject: [PATCH 019/231] update CheckWinConditions forward --- api_rounds.sma | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/api_rounds.sma b/api_rounds.sma index 2ca3bfe..79332a1 100644 --- a/api_rounds.sma +++ b/api_rounds.sma @@ -24,6 +24,9 @@ new g_iFwRoundRestart; new g_iFwRoundTimerTick; new g_iFwCheckWinConditions; +// deprecated +new g_iFwCheckWinCondition; + new Array:g_irgCheckWinConditionHooks; new g_pCvarRoundEndDelay; @@ -43,7 +46,10 @@ public plugin_init() { g_iFwRoundExpired = CreateMultiForward("Round_Fw_RoundExpired", ET_IGNORE); g_iFwRoundRestart = CreateMultiForward("Round_Fw_RoundRestart", ET_IGNORE); g_iFwRoundTimerTick = CreateMultiForward("Round_Fw_RoundTimerTick", ET_IGNORE); - g_iFwCheckWinConditions = CreateMultiForward("Round_Fw_CheckWinCondition", ET_STOP); + g_iFwCheckWinConditions = CreateMultiForward("Round_Fw_CheckWinConditions", ET_STOP); + + //deprecated + g_iFwCheckWinCondition = CreateMultiForward("Round_Fw_CheckWinCondition", ET_STOP); g_irgCheckWinConditionHooks = ArrayCreate(Hook); @@ -143,6 +149,13 @@ public HC_CheckWinConditions() { } static iReturn; + + ExecuteForward(g_iFwCheckWinCondition, iReturn); + if (iReturn != PLUGIN_CONTINUE) { + log_amx("CheckWinCondition forward is deprecated!"); + return HC_SUPERCEDE; + } + ExecuteForward(g_iFwCheckWinConditions, iReturn); if (iReturn != PLUGIN_CONTINUE) { return HC_SUPERCEDE; From 93f686dc82c833309d848f49ed00aa48f89aa7b8 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 27 Jul 2023 03:54:26 +0300 Subject: [PATCH 020/231] add touch function --- api_custom_entities.sma | 9 +++++++++ include/api_custom_entities.inc | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index 5bd6644..3df3164 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -615,6 +615,11 @@ bool:@Entity_IsCustom(this) { @Entity_Touch(this, pToucher) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); + + if (ExecuteHookFunction(CEFunction_Touch, iId, this, pToucher)) { + return; + } + new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); switch (iPreset) { @@ -937,6 +942,10 @@ ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { callfunc_push_int(pEntity); switch (iFunction) { + case CEFunction_Touch: { + new pToucher = getarg(3); + callfunc_push_int(pToucher); + } case CEFunction_Kill, CEFunction_Killed: { new pKiller = getarg(3); new bool:bPicked = bool:getarg(4); diff --git a/include/api_custom_entities.inc b/include/api_custom_entities.inc index 248bb74..87a92d2 100644 --- a/include/api_custom_entities.inc +++ b/include/api_custom_entities.inc @@ -42,7 +42,8 @@ enum CEFunction { CEFunction_Activate, // Calls every trigger activation check CEFunction_Activated, // Calls when player activates trigger CEFunction_Init, // Calls when entity is initialized (on first spawn) - CEFunction_Think // Calls when entity thinking + CEFunction_Think, // Calls when entity thinking + CEFunction_Touch // Calls when entity touched }; /* From 09398ffee9429f84e8109944c86ebb5e641eab62 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 27 Jul 2023 04:31:35 +0300 Subject: [PATCH 021/231] add default value for origin --- include/api_custom_entities.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/api_custom_entities.inc b/include/api_custom_entities.inc index 87a92d2..bba0021 100644 --- a/include/api_custom_entities.inc +++ b/include/api_custom_entities.inc @@ -75,7 +75,7 @@ native CE_Register ( * @param vOrigin Spawn origin. * @return Entity index. */ -native CE_Create(const szName[], const Float:vOrigin[3], bool:temp = true); +native CE_Create(const szName[], const Float:vOrigin[3] = {0.0, 0.0, 0.0}, bool:temp = true); /* * Kill entity. From 25eda8d02ddb53d78154279432c67136a47d1804 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 27 Jul 2023 15:15:37 +0300 Subject: [PATCH 022/231] fix get pdata --- api_custom_entities.sma | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index 3df3164..bdcf60b 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -750,7 +750,7 @@ bool:@Entity_CanActivate(this, pTarget) { Trie:@Entity_GetPData(this) { // Return the current allocated data if the entity is at the initialization stage - if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER)) { + if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER) == this) { return g_itPData; } @@ -770,6 +770,7 @@ Trie:@Entity_AllocPData(this, iId) { @Entity_FreePData(this) { new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); ExecuteHookFunction(CEFunction_Remove, iId, this); From 183e8e53994e5c3b46931c85c50f7e3f2074d337 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 27 Jul 2023 16:54:46 +0300 Subject: [PATCH 023/231] fix init function --- api_custom_entities.sma | 15 +++++++++++++-- include/api_custom_entities.inc | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index bdcf60b..5cb0eb2 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -400,8 +400,6 @@ public FMHook_Spawn(pEntity) { @Entity_SetPData(pEntity, g_itPData); g_itPData = Invalid_Trie; - - ExecuteHookFunction(CEFunction_Init, iId, pEntity); } } @@ -480,10 +478,22 @@ bool:@Entity_IsCustom(this) { return this; } +@Entity_Init(this) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + ExecuteHookFunction(CEFunction_Init, iId, this); + SetPDataMember(itPData, CE_MEMBER_INITIALIZED, true); +} + @Entity_Spawn(this) { new Float:flGameTime = get_gametime(); new Trie:itPData = @Entity_GetPData(this); + + if (!GetPDataMember(itPData, CE_MEMBER_INITIALIZED)) { + @Entity_Init(this); + } + new iId = GetPDataMember(itPData, CE_MEMBER_ID); new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); @@ -891,6 +901,7 @@ Trie:AllocPData(iId, pEntity) { SetPDataMember(itPData, CE_MEMBER_ID, iId); SetPDataMember(itPData, CE_MEMBER_WORLD, false); SetPDataMember(itPData, CE_MEMBER_POINTER, pEntity); + SetPDataMember(itPData, CE_MEMBER_INITIALIZED, false); return itPData; } diff --git a/include/api_custom_entities.inc b/include/api_custom_entities.inc index bba0021..214713d 100644 --- a/include/api_custom_entities.inc +++ b/include/api_custom_entities.inc @@ -21,6 +21,7 @@ #define CE_MEMBER_DELAY "_delay" #define CE_MEMBER_NEXTKILL "_nextkill" #define CE_MEMBER_NEXTRESPAWN "_nextrespawn" +#define CE_MEMBER_INITIALIZED "_initialized" enum CEPreset { CEPreset_None = 0, From c329d9f840384a785db3f823c2c17a20a02a9148 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 27 Jul 2023 19:08:15 +0300 Subject: [PATCH 024/231] fix next kill handle --- api_custom_entities.sma | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index 5cb0eb2..905ece8 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -567,6 +567,8 @@ bool:@Entity_IsCustom(this) { return; } + SetPDataMember(itPData, CE_MEMBER_NEXTKILL, 0.0); + set_pev(this, pev_takedamage, DAMAGE_NO); set_pev(this, pev_effects, pev(this, pev_effects) | EF_NODRAW); set_pev(this, pev_solid, SOLID_NOT); From 54ef28a6f41c4ba064271fe1c1a16d4b9075c375 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 27 Jul 2023 19:17:49 +0300 Subject: [PATCH 025/231] fix temp flag --- api_custom_entities.sma | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index 905ece8..f4f5efc 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -322,7 +322,7 @@ public Command_Spawn(pPlayer, iLevel, iCId) { static Float:vecOrigin[3]; pev(pPlayer, pev_origin, vecOrigin); - new pEntity = @Entity_Create(szClassName, vecOrigin, false); + new pEntity = @Entity_Create(szClassName, vecOrigin, true); if (pEntity) { dllfunc(DLLFunc_Spawn, pEntity); engfunc(EngFunc_SetOrigin, pEntity, vecOrigin); @@ -475,6 +475,8 @@ bool:@Entity_IsCustom(this) { new Trie:itPData = @Entity_AllocPData(this, iId); SetPDataMemberVec(itPData, CE_MEMBER_ORIGIN, vecOrigin); + SetPDataMember(itPData, CE_MEMBER_WORLD, !bTemp); + return this; } From c02a9043321ae6977a577887cc7b7b1af96d8436 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 27 Jul 2023 19:27:43 +0300 Subject: [PATCH 026/231] add CE_DeleteMember native --- api_custom_entities.sma | 16 ++++++++++++++++ include/api_custom_entities.inc | 1 + 2 files changed, 17 insertions(+) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index f4f5efc..41584f0 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -86,6 +86,7 @@ public plugin_natives() { register_native("CE_HasMember", "Native_HasMember"); register_native("CE_GetMember", "Native_GetMember"); + register_native("CE_DeleteMember", "Native_DeleteMember"); register_native("CE_SetMember", "Native_SetMember"); register_native("CE_GetMemberVec", "Native_GetMemberVec"); register_native("CE_SetMemberVec", "Native_SetMemberVec"); @@ -229,6 +230,17 @@ public any:Native_GetMember(iPluginId, iArgc) { return GetPDataMember(itPData, szMember); } +public Native_DeleteMember(iPluginId, iArgc) { + new pEntity = get_param(1); + + static szMember[CE_MAX_MEMBER_LENGTH]; + get_string(2, szMember, charsmax(szMember)); + + new Trie:itPData = @Entity_GetPData(pEntity); + + DeletePDataMember(itPData, szMember); +} + public Native_SetMember(iPluginId, iArgc) { new pEntity = get_param(1); @@ -922,6 +934,10 @@ any:GetPDataMember(Trie:itPData, const szMember[]) { return TrieGetCell(itPData, szMember, value) ? value : 0; } +DeletePDataMember(Trie:itPData, const szMember[]) { + TrieDeleteKey(itPData, szMember); +} + SetPDataMember(Trie:itPData, const szMember[], any:value) { TrieSetCell(itPData, szMember, value); } diff --git a/include/api_custom_entities.inc b/include/api_custom_entities.inc index 214713d..6c984f0 100644 --- a/include/api_custom_entities.inc +++ b/include/api_custom_entities.inc @@ -135,6 +135,7 @@ native CE_GetHandlerByEntity(ent); native bool:CE_HasMember(ent, const szMember[]); native any:CE_GetMember(ent, const szMember[]); +native CE_DeleteMember(ent, const szMember[]); native CE_SetMember(ent, const szMember[], any:value); native bool:CE_GetMemberVec(ent, const szMember[], Float:vOut[3]); native CE_SetMemberVec(ent, const szMember[], const Float:vValue[3]); From f8a601e9d76b5e4701e9c49a041412ec0ccf94ca Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 29 Jul 2023 21:07:08 +0300 Subject: [PATCH 027/231] add restart function --- api_custom_entities.sma | 5 +++++ include/api_custom_entities.inc | 1 + 2 files changed, 6 insertions(+) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index 41584f0..3eea265 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -558,6 +558,11 @@ bool:@Entity_IsCustom(this) { } @Entity_Restart(this) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + + ExecuteHookFunction(CEFunction_Restart, iId, this); + new iObjectCaps = ExecuteHamB(Ham_ObjectCaps, this); if (~iObjectCaps & FCAP_ACROSS_TRANSITION) { diff --git a/include/api_custom_entities.inc b/include/api_custom_entities.inc index 6c984f0..2dca824 100644 --- a/include/api_custom_entities.inc +++ b/include/api_custom_entities.inc @@ -43,6 +43,7 @@ enum CEFunction { CEFunction_Activate, // Calls every trigger activation check CEFunction_Activated, // Calls when player activates trigger CEFunction_Init, // Calls when entity is initialized (on first spawn) + CEFunction_Restart, // Calls when entity is restarting (on first spawn) CEFunction_Think, // Calls when entity thinking CEFunction_Touch // Calls when entity touched }; From 45af9ffd2469d1edb9538360c740543111db9ce1 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 3 Aug 2023 17:26:42 +0300 Subject: [PATCH 028/231] add navsystem api (alpha) --- api_navsystem.sma | 2764 +++++++++++++++++++++++++++++++ include/api_navsystem.inc | 85 + include/api_navsystem_const.inc | 83 + include/cellstruct.inc | 76 + 4 files changed, 3008 insertions(+) create mode 100644 api_navsystem.sma create mode 100644 include/api_navsystem.inc create mode 100644 include/api_navsystem_const.inc create mode 100644 include/cellstruct.inc diff --git a/api_navsystem.sma b/api_navsystem.sma new file mode 100644 index 0000000..076362b --- /dev/null +++ b/api_navsystem.sma @@ -0,0 +1,2764 @@ +/* + Nav system implementation based on ReGameDLL implementation. + + Nav File Parser + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_file.h + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_file.cpp + + Nav Area Members and Methods + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_area.h + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_area.cpp + + Nav Path Members and Methods + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_path.h + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_path.cpp +*/ + +#pragma semicolon 1; + +#include +#include +#include + +#include + +#include + +enum Extent { Float:Extent_Lo[3], Float:Extent_Hi[3] }; +enum Ray { Float:Ray_From[3], Float:Ray_To[3]}; +enum NavConnect { NavConnect_Id, Struct:NavConnect_Area }; +enum SpotOrder { SpotOrder_Id, Float:SpotOrder_T, Struct:SpotOrder_Spot }; +enum PathSegment { Struct:PathSegment_Area, NavTraverseType:PathSegment_How, Float:PathSegment_Pos[3] }; +enum NavPath { Array:NavPath_Segments, NavPath_SegmentCount }; + +enum ApproachInfo { + ApproachInfo_Here[NavConnect], // the approach area + ApproachInfo_Prev[NavConnect], // the area just before the approach area on the path + NavTraverseType:ApproachInfo_PrevToHereHow, + ApproachInfo_Next[NavConnect], // the area just after the approach area on the path + NavTraverseType:ApproachInfo_HereToNextHow +}; + +enum SpotEncounter { + SpotEncounter_From[NavConnect], + NavDirType:SpotEncounter_FromDir, + SpotEncounter_To[NavConnect], + NavDirType:SpotEncounter_ToDir, + SpotEncounter_Path[Ray], // the path segment + Array:SpotEncounter_SpotList // Array[SpotOrder] // list of spots to look at, in order of occurrence +}; + +enum NavAreaGrid { + Float:NavAreaGrid_CellSize, + Array:NavAreaGrid_Grid, + NavAreaGrid_GridSizeX, + NavAreaGrid_GridSizeY, + Float:NavAreaGrid_MinX, + Float:NavAreaGrid_MinY, + NavAreaGrid_AreaCount, + Struct:NavAreaGrid_HashTable[HASH_TABLE_SIZE] +}; + +enum NavArea { + NavArea_Id, // unique area ID + NavArea_Extent[Extent], // extents of area in world coords (NOTE: lo[2] is not necessarily the minimum Z, but corresponds to Z at point (lo[0], lo[1]), etc + Float:NavArea_Center[3], // centroid of area + NavAttributeType:NavArea_AttributeFlags, // set of attribute bit flags (see NavAttributeType) + + // height of the implicit corners + Float:NavArea_NeZ, + Float:NavArea_SwZ, + + // encounter spots + Array:NavArea_SpotEncounterList, // Array[SpotEncounter] // list of possible ways to move thru this area, and the spots to look at as we do + + // approach areas + Array:NavArea_Approach, // Array[ApproachInfo] + + // connections to adjacent areas + Array:NavArea_Connect[NUM_DIRECTIONS], // a list of adjacent areas for each direction + + Array:NavArea_OverlapList, // list of areas that overlap this area + + // connections for grid hash table + Struct:NavArea_PrevHash, + Struct:NavArea_NextHash, + + Struct:NavArea_NextOpen, // only valid if m_openMarker == m_masterMarker + Struct:NavArea_PrevOpen, + NavArea_OpenMarker, // if this equals the current marker value, we are on the open list + + // A* pathfinding algorithm + NavArea_Marker, // used to flag the area as visited + Struct:NavArea_Parent, // the area just prior to this on in the search path + NavTraverseType:NavArea_ParentHow, // how we get from parent to us + Float:NavArea_TotalCost, // the distance so far plus an estimate of the distance left + Float:NavArea_CostSoFar, // distance travelled so far +}; + +enum BuildPathTask { + Float:BuildPathTask_StartPos[3], + Float:BuildPathTask_GoalPos[3], + Struct:BuildPathTask_StartArea, + Struct:BuildPathTask_GoalArea, + Struct:BuildPathTask_ClosestArea, + BuildPathTask_CostFuncId, + BuildPathTask_CostFuncPluginId, + BuildPathTask_CbFuncId, + BuildPathTask_CbFuncPluginId, + BuildPathTask_IgnoreEntity, + BuildPathTask_UserToken, + Struct:BuildPathTask_Path, + bool:BuildPathTask_IsSuccessed +}; + +enum BuildPathJob { + Struct:BuildPathJob_Task, + Struct:BuildPathJob_StartArea, + Struct:BuildPathJob_GoalArea, + Float:BuildPathJob_ActualGoalPos[3], + Float:BuildPathJob_GoalPos[3], + Float:BuildPathJob_ClosestAreaDist, + Struct:BuildPathJob_ClosestArea, + BuildPathJob_CostFuncId, + BuildPathJob_CostFuncPluginId, + bool:BuildPathJob_Success, + bool:BuildPathJob_Finished, + bool:BuildPathJob_Terminated, + BuildPathJob_MaxIterations, + BuildPathJob_IgnoreEntity +}; + +const Float:GenerationStepSize = 25.0; +const Float:StepHeight = 18.0; +const Float:HalfHumanWidth = 16.0; +const Float:HalfHumanHeight = 36.0; +const Float:HumanHeight = 72.0; + +new g_rgGrid[NavAreaGrid]; + +new g_iNavAreaNextId = 0; +new g_iNavAreaMasterMarker; +new Array:g_irgNavAreaList = Invalid_Array; +new Struct:g_sNavAreaOpenList = Invalid_Struct; + +new g_rgBuildPathJob[BuildPathJob]; +new Array:g_irgBuildPathTasks = Invalid_Array; + +new g_pTrace; + +new g_pCvarMaxIterationsPerFrame; +new g_pCvarDebug; + +new bool:g_bPrecached = false; +new g_iArrowModelIndex; + +public plugin_precache() { + g_pTrace = create_tr2(); + g_iArrowModelIndex = precache_model("sprites/arrow1.spr"); +} + +public plugin_init() { + register_plugin("Nav System", "0.1.0", "Hedgehog Fog"); + + g_pCvarMaxIterationsPerFrame = register_cvar("nav_max_iterations_per_frame", "100"); + g_pCvarDebug = register_cvar("nav_debug", "0"); +} + +public plugin_end() { + if (g_irgNavAreaList != Invalid_Array) { + new iNavAreaListSize = ArraySize(g_irgNavAreaList); + + for (new i = 0; i < iNavAreaListSize; ++i) { + new Struct:sNavArea = ArrayGetCell(g_irgNavAreaList, i); + @NavArea_Destroy(sNavArea); + } + + ArrayDestroy(g_irgNavAreaList); + } + + NavAreaGrid_Free(); + + if (g_irgBuildPathTasks != Invalid_Array) { + ArrayDestroy(g_irgBuildPathTasks); + } + + free_tr2(g_pTrace); +} + +public plugin_natives() { + register_library("api_navsystem"); + + register_native("Nav_Precache", "Native_Precache"); + + register_native("Nav_GetAreaCount", "Native_GetAreaCount"); + register_native("Nav_GetArea", "Native_GetArea"); + register_native("Nav_GetAreaById", "Native_GetAreaById"); + register_native("Nav_GetAreaFromGrid", "Native_GetAreaFromGrid"); + register_native("Nav_WorldToGridX", "Native_WorldToGridX"); + register_native("Nav_WorldToGridY", "Native_WorldToGridY"); + register_native("Nav_FindFirstAreaInDirection", "Native_FindFirstAreaInDirection"); + register_native("Nav_IsAreaVisible", "Native_IsAreaVisible"); + + register_native("Nav_Area_GetAttributes", "Native_Area_GetAttributes"); + register_native("Nav_Area_GetCenter", "Native_Area_GetCenter"); + register_native("Nav_Area_GetId", "Native_Area_GetId"); + register_native("Nav_Area_Contains", "Native_Area_Contains"); + register_native("Nav_Area_IsCoplanar", "Native_Area_IsCoplanar"); + register_native("Nav_Area_GetZ", "Native_Area_GetZ"); + register_native("Nav_Area_GetClosestPointOnArea", "Native_Area_GetClosestPointOnArea"); + register_native("Nav_Area_GetDistanceSquaredToPoint", "Native_Area_GetDistanceSquaredToPoint"); + register_native("Nav_Area_GetRandomAdjacentArea", "Native_Area_GetRandomAdjacentArea"); + register_native("Nav_Area_IsEdge", "Native_Area_IsEdge"); + register_native("Nav_Area_IsConnected", "Native_Area_IsConnected"); + register_native("Nav_Area_GetCorner", "Native_Area_GetCorner"); + register_native("Nav_Area_ComputeDirection", "Native_Area_ComputeDirection"); + register_native("Nav_Area_ComputePortal", "Native_Area_ComputePortal"); + register_native("Nav_Area_IsOverlapping", "Native_Area_IsOverlapping"); + register_native("Nav_Area_IsOverlappingPoint", "Native_Area_IsOverlappingPoint"); + + register_native("Nav_Path_Find", "Native_Path_Find"); + register_native("Nav_Path_FindTask_GetUserToken", "Native_Path_FindTask_GetUserToken"); + register_native("Nav_Path_FindTask_Abort", "Native_Path_FindTask_Abort"); + register_native("Nav_Path_FindTask_GetPath", "Native_Path_FindTask_GetPath"); + register_native("Nav_Path_FindTask_IsSuccessed", "Native_Path_FindTask_IsSuccessed"); + register_native("Nav_Path_GetSegments", "Native_Path_GetSegments"); + register_native("Nav_Path_Segment_GetPos", "Native_Path_Segment_GetPos"); +} + +public server_frame() { + NavAreaBuildPathFrame(); +} + +public Native_Precache(iPluginId, iArgc) { + if (g_bPrecached) { + return; + } + + LoadNavigationMap(); + + g_bPrecached = true; +} + +public Native_GetAreaCount(iPluginId, iArgc) { + return g_irgNavAreaList != Invalid_Array ? ArraySize(g_irgNavAreaList) : 0; +} + +public Struct:Native_GetArea(iPluginId, iArgc) { + if (g_irgNavAreaList == Invalid_Array) { + return Invalid_Struct; + } + + new iIndex = get_param(1); + if (iIndex >= ArraySize(g_irgNavAreaList)) { + return Invalid_Struct; + } + + return ArrayGetCell(g_irgNavAreaList, iIndex); +} + +public Struct:Native_GetAreaById(iPluginId, iArgc) { + new iId = get_param(1); + + return NavAreaGrid_GetNavAreaById(iId); +} + +public Struct:Native_GetAreaFromGrid(iPluginId, iArgc) { + static Float:vecPos[3]; + get_array_f(1, vecPos, sizeof(vecPos)); + + new Float:flBeneathLimit = get_param_f(2); + + return NavAreaGrid_GetNavArea(vecPos, flBeneathLimit); +} + +public Native_WorldToGridX(iPluginId, iArgc) { + new Float:flValue = get_param_f(1); + + return NavAreaGrid_WorldToGridX(flValue); +} + +public Native_WorldToGridY(iPluginId, iArgc) { + new Float:flValue = get_param_f(1); + + return NavAreaGrid_WorldToGridY(flValue); +} +public Struct:Native_FindFirstAreaInDirection(iPluginId, iArgc) { + static Float:vecStart[3]; + get_array_f(1, vecStart, sizeof(vecStart)); + + new NavDirType:iDir = NavDirType:get_param(2); + new Float:flRange = get_param_f(3); + new Float:flBeneathLimit = get_param_f(4); + new pIgnoreEnt = get_param(5); + + static Float:vecClosePos[3]; + new Struct:sArea = FindFirstAreaInDirection(vecStart, iDir, flRange, flBeneathLimit, pIgnoreEnt, vecClosePos); + set_array_f(6, vecClosePos, sizeof(vecClosePos)); + + return sArea; +} + +public bool:Native_IsAreaVisible(iPluginId, iArgc) { + static Float:vecPos[3]; + get_array_f(1, vecPos, sizeof(vecPos)); + + new Struct:sArea = Struct:get_param(2); + + return IsAreaVisible(vecPos, sArea); +} + +public Struct:Native_Path_Find(iPluginId, iArgc) { + static Float:vecStart[3]; + get_array_f(1, vecStart, sizeof(vecStart)); + + static Float:vecGoal[3]; + get_array_f(2, vecGoal, sizeof(vecGoal)); + + static szCbFunction[32]; + get_string(3, szCbFunction, charsmax(szCbFunction)); + + new pIgnoreEnt = get_param(4); + new iUserToken = get_param(5); + + static szCostFunction[32]; + get_string(6, szCostFunction, charsmax(szCostFunction)); + + new iCostFuncId = equal(szCostFunction, NULL_STRING) ? -1 : get_func_id(szCostFunction, iPluginId); + new iCbFuncId = equal(szCbFunction, NULL_STRING) ? -1 : get_func_id(szCbFunction, iPluginId); + + return NavAreaBuildPath(vecStart, vecGoal, iCbFuncId, iPluginId, pIgnoreEnt, iUserToken, iCostFuncId, iPluginId); +} + +public NavAttributeType:Native_Area_GetAttributes(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + + return @NavArea_GetAttributes(sArea); +} + +public Native_Area_GetCenter(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + + static Float:vecCenter[3]; + @NavArea_GetCenter(sArea, vecCenter); + set_array_f(2, vecCenter, sizeof(vecCenter)); +} + +public Native_Path_FindTask_GetUserToken(iPluginId, iArgc) { + new Struct:sTask = Struct:get_param(1); + + return StructGetCell(sTask, BuildPathTask_UserToken); +} + +public bool:Native_Path_FindTask_Abort(iPluginId, iArgc) { + new Struct:sTask = Struct:get_param(1); + + return NavAreaBuildPathAbortTask(sTask); +} + +public Struct:Native_Path_FindTask_GetPath(iPluginId, iArgc) { + new Struct:sTask = Struct:get_param(1); + + return StructGetCell(sTask, BuildPathTask_Path); +} + +public bool:Native_Path_FindTask_IsSuccessed(iPluginId, iArgc) { + new Struct:sTask = Struct:get_param(1); + + return StructGetCell(sTask, BuildPathTask_IsSuccessed); +} + +public Array:Native_Path_GetSegments(iPluginId, iArgc) { + new Struct:sNavPath = Struct:get_param(1); + + return StructGetCell(sNavPath, NavPath_Segments); +} + +public Native_Path_Segment_GetPos(iPluginId, iArgc) { + new Struct:sSegment = Struct:get_param(1); + + static Float:vecPos[3]; + StructGetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); + + set_array_f(2, vecPos, sizeof(vecPos)); +} + +public Native_Area_GetId(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + + return @NavArea_GetId(sArea); +} + +public bool:Native_Area_Contains(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + + static Float:vecPoint[3]; + get_array_f(2, vecPoint, sizeof(vecPoint)); + + return @NavArea_Contains(sArea, vecPoint); +} + +public bool:Native_Area_IsCoplanar(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + new Struct:sOtherArea = Struct:get_param(2); + + return @NavArea_IsCoplanar(sArea, sOtherArea); +} + +public Float:Native_Area_GetZ(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + + static Float:vecPos[3]; + get_array_f(2, vecPos, sizeof(vecPos)); + + return @NavArea_GetZ(sArea, vecPos); +} + +public Native_Area_GetClosestPointOnArea(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + + static Float:vecPos[3]; + get_array_f(2, vecPos, sizeof(vecPos)); + + static Float:vecClose[3]; + get_array_f(3, vecClose, sizeof(vecClose)); + + @NavArea_GetClosestPointOnArea(sArea, vecPos, vecClose); + + set_array_f(3, vecClose, sizeof(vecClose)); +} + +public Float:Native_Area_GetDistanceSquaredToPoint(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + + static Float:vecPoint[3]; + get_array_f(2, vecPoint, sizeof(vecPoint)); + + return @NavArea_GetDistanceSquaredToPoint(sArea, vecPoint); +} + +public Struct:Native_Area_GetRandomAdjacentArea(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + new NavDirType:iDir = NavDirType:get_param(2); + + return @NavArea_GetRandomAdjacentArea(sArea, iDir); +} + +public bool:Native_Area_IsEdge(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + new NavDirType:iDir = NavDirType:get_param(2); + + return @NavArea_IsEdge(sArea, iDir); +} + +public bool:Native_Area_IsConnected(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + new Struct:sOtherArea = Struct:get_param(2); + new NavDirType:iDir = NavDirType:get_param(3); + + return @NavArea_IsConnected(sArea, sOtherArea, iDir); +} + +public Native_Area_GetCorner(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + new NavCornerType:iCorner = NavCornerType:get_param(2); + + static Float:vecPos[3]; + get_array_f(3, vecPos, sizeof(vecPos)); + + @NavArea_GetCorner(sArea, iCorner, vecPos); + + set_array_f(3, vecPos, sizeof(vecPos)); +} + +public NavDirType:Native_Area_ComputeDirection(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + + static Float:vecPoint[3]; + get_array_f(2, vecPoint, sizeof(vecPoint)); + + return @NavArea_ComputeDirection(sArea, vecPoint); +} + +public Native_Area_ComputePortal(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + new Struct:sOtherArea = Struct:get_param(2); + new NavDirType:iDir = NavDirType:get_param(3); + + static Float:vecCenter[3]; + static Float:flHalfWidth; + + @NavArea_ComputePortal(sArea, sOtherArea, iDir, vecCenter, flHalfWidth); + + set_array_f(4, vecCenter, sizeof(vecCenter)); + set_float_byref(5, flHalfWidth); +} + +public bool:Native_Area_IsOverlapping(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + new Struct:sOtherArea = Struct:get_param(2); + + return @NavArea_IsOverlapping(sArea, sOtherArea); +} + +public bool:Native_Area_IsOverlappingPoint(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + + static Float:vecPoint[3]; + get_array_f(3, vecPoint, sizeof(vecPoint)); + + return @NavArea_IsOverlappingPoint(sArea, vecPoint); +} + +Struct:@NavArea_Create() { + new Struct:this = StructCreate(NavArea); + + StructSetCell(this, NavArea_SpotEncounterList, ArrayCreate(_:SpotEncounter)); + StructSetCell(this, NavArea_Approach, ArrayCreate(_:ApproachInfo)); + StructSetCell(this, NavArea_OverlapList, ArrayCreate()); + + for (new NavDirType:d = NORTH; d < NUM_DIRECTIONS; d++) { + StructSetCell(this, NavArea_Connect, ArrayCreate(_:NavConnect), d); + } + + return this; +} + +@NavArea_Destroy(&Struct:this) { + new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); + + new iSpotEncounterListSize = ArraySize(irgSpotEncounterList); + for (new i = 0; i < iSpotEncounterListSize; ++i) { + new Array:irgSpotList = ArrayGetCell(irgSpotEncounterList, i, _:SpotEncounter_SpotList); + ArrayDestroy(irgSpotList); + } + + ArrayDestroy(irgSpotEncounterList); + + new Array:irgApproachList = StructGetCell(this, NavArea_Approach); + ArrayDestroy(irgApproachList); + + new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); + ArrayDestroy(irgOverlapList); + + for (new NavDirType:d = NORTH; d < NUM_DIRECTIONS; d++) { + new Array:irgConnectList = StructGetCell(this, NavArea_Connect, d); + ArrayDestroy(irgConnectList); + } + + StructDestroy(this); +} + +@NavArea_Load(const &Struct:this, iFile, iVersion, bool:bDebug) { + new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); + new Array:irgApproachList = StructGetCell(this, NavArea_Approach); + + // load ID + new iId; + FileReadInt32(iFile, iId); + StructSetCell(this, NavArea_Id, iId); + + // update nextID to avoid collisions + if (iId >= g_iNavAreaNextId) { + g_iNavAreaNextId = iId + 1; + } + + // load attribute flags + new iAttributeFlags; + FileReadUint8(iFile, iAttributeFlags); + StructSetCell(this, NavArea_AttributeFlags, iAttributeFlags); + + // load extent of area + new Float:rgExtent[Extent]; + fread_blocks(iFile, rgExtent[Extent_Lo], 3, BLOCK_INT); + fread_blocks(iFile, rgExtent[Extent_Hi], 3, BLOCK_INT); + + StructSetArray(this, NavArea_Extent, rgExtent, Extent); + + new Float:vecCenter[3]; + for (new i = 0; i < 3; ++i) { + vecCenter[i] = (rgExtent[Extent_Lo][i] + rgExtent[Extent_Hi][i]) / 2.0; + } + + StructSetArray(this, NavArea_Center, vecCenter, sizeof(vecCenter)); + + // load heights of implicit corners + new Float:flNeZ; + FileReadInt32(iFile, flNeZ); + StructSetCell(this, NavArea_NeZ, flNeZ); + + new Float:flSwZ; + FileReadInt32(iFile, flSwZ); + StructSetCell(this, NavArea_SwZ, flSwZ); + + // load connections (IDs) to adjacent areas + // in the enum order NORTH, EAST, SOUTH, WEST + for (new d = 0; d < _:NUM_DIRECTIONS; d++) { + new Array:irgConnectList = StructGetCell(this, NavArea_Connect, d); + + // load number of connections for this direction + new iConnectionCount; + FileReadInt32(iFile, iConnectionCount); + + for (new i = 0; i < iConnectionCount; i++) { + new rgConnect[NavConnect]; + FileReadInt32(iFile, rgConnect[NavConnect_Id]); + ArrayPushArray(irgConnectList, rgConnect[any:0]); + } + } + + // load number of hiding spots + new iHidingSpotCount; + FileReadUint8(iFile, iHidingSpotCount); + + // skip hiding spots + if (iVersion == 1) { + fseek(iFile, iHidingSpotCount * (3 * BLOCK_INT), SEEK_CUR); + } else { + fseek(iFile, iHidingSpotCount * (BLOCK_INT + (3 * BLOCK_INT) + BLOCK_CHAR), SEEK_CUR); + } + + // Load number of approach areas + new iApproachCount; + FileReadUint8(iFile, iApproachCount); + + // load approach area info (IDs) + for (new a = 0; a < iApproachCount; a++) { + new rgApproach[ApproachInfo]; + FileReadInt32(iFile, rgApproach[ApproachInfo_Here][NavConnect_Id]); + FileReadInt32(iFile, rgApproach[ApproachInfo_Prev][NavConnect_Id]); + FileReadUint8(iFile, rgApproach[ApproachInfo_PrevToHereHow]); + FileReadInt32(iFile, rgApproach[ApproachInfo_Next][NavConnect_Id]); + FileReadUint8(iFile, rgApproach[ApproachInfo_HereToNextHow]); + ArrayPushArray(irgApproachList, rgApproach[any:0]); + } + + // Load encounter paths for this area + new iEncounterCount; + FileReadInt32(iFile, iEncounterCount); + + for (new e = 0; e < iEncounterCount; e++) { + new rgEncounter[SpotEncounter]; + rgEncounter[SpotEncounter_SpotList] = ArrayCreate(_:SpotOrder); + + FileReadInt32(iFile, rgEncounter[SpotEncounter_From][NavConnect_Id]); + + if (iVersion < 3) { + FileReadInt32(iFile, rgEncounter[SpotEncounter_To][NavConnect_Id]); + fread_blocks(iFile, rgEncounter[SpotEncounter_Path][Ray_From], 3, BLOCK_INT); + fread_blocks(iFile, rgEncounter[SpotEncounter_Path][Ray_To], 3, BLOCK_INT); + } else { + FileReadUint8(iFile, rgEncounter[SpotEncounter_FromDir]); + FileReadInt32(iFile, rgEncounter[SpotEncounter_To][NavConnect_Id]); + FileReadUint8(iFile, rgEncounter[SpotEncounter_ToDir]); + } + + // read list of spots along this path + new iSpotCount; + FileReadUint8(iFile, iSpotCount); + + if (iVersion < 3) { + for (new s = 0; s < iSpotCount; s++) { + static Float:vecPos[3]; + fread_blocks(iFile, vecPos, 3, BLOCK_INT); + FileReadInt32(iFile, vecPos[0]); + } + } else { + for (new s = 0; s < iSpotCount; s++) { + new rgOrder[SpotOrder]; + FileReadInt32(iFile, rgOrder[SpotOrder_Id]); + + FileReadUint8(iFile, rgOrder[SpotOrder_T]); + rgOrder[SpotOrder_T] /= 255.0; + ArrayPushCell(rgEncounter[SpotEncounter_SpotList], rgOrder[any:0]); + } + } + + // old data, discard + if (iVersion >= 3) { + ArrayPushArray(irgSpotEncounterList, rgEncounter[any:0]); + } + } + + if (iVersion < NAV_VERSION) { + return; + } + + fseek(iFile, BLOCK_SHORT, SEEK_CUR); +} + +NavErrorType:@NavArea_PostLoadArea(const &Struct:this) { + new NavErrorType:error = NAV_OK; + + // connect areas together + for (new d = 0; d < _:NUM_DIRECTIONS; d++) { + new Array:irgConnections = StructGetCell(this, NavArea_Connect, d); + new iConnectionCount = ArraySize(irgConnections); + + for (new i = 0; i < iConnectionCount; ++i) { + new iConnectId = ArrayGetCell(irgConnections, i, _:NavConnect_Id); + new Struct:sArea = NavAreaGrid_GetNavAreaById(iConnectId); + ArraySetCell(irgConnections, i, sArea, _:NavConnect_Area); + + if (iConnectId && sArea == Invalid_Struct) { + log_amx("ERROR: Corrupt navigation data. Cannot connect Navigation Areas.^n"); + error = NAV_CORRUPT_DATA; + } + } + } + + // resolve approach area IDs + new Array:irgApproachList = StructGetCell(this, NavArea_Approach); + new iApproachCount = ArraySize(irgApproachList); + for (new a = 0; a < iApproachCount; a++) { + new iApproachHereId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Here + _:NavConnect_Id); + new Struct:sApproachHereArea = NavAreaGrid_GetNavAreaById(iApproachHereId); + ArraySetCell(irgApproachList, a, sApproachHereArea, _:ApproachInfo_Here + _:NavConnect_Area); + if (iApproachHereId && sApproachHereArea == Invalid_Struct) { + log_amx("ERROR: Corrupt navigation data. Missing Approach Area (here).^n"); + error = NAV_CORRUPT_DATA; + } + + new iApproachPrevId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Prev + _:NavConnect_Id); + new Struct:sApproachPrevArea = NavAreaGrid_GetNavAreaById(iApproachPrevId); + ArraySetCell(irgApproachList, a, sApproachPrevArea, _:ApproachInfo_Prev + _:NavConnect_Area); + if (iApproachPrevId && sApproachPrevArea == Invalid_Struct) { + log_amx("ERROR: Corrupt navigation data. Missing Approach Area (prev).^n"); + error = NAV_CORRUPT_DATA; + } + + new iApproachNextId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Next + _:NavConnect_Id); + new Struct:sApproachNextArea = NavAreaGrid_GetNavAreaById(iApproachNextId); + ArraySetCell(irgApproachList, a, sApproachNextArea, _:ApproachInfo_Next + _:NavConnect_Area); + if (iApproachNextId && sApproachNextArea == Invalid_Struct) { + log_amx("ERROR: Corrupt navigation data. Missing Approach Area (next).^n"); + error = NAV_CORRUPT_DATA; + } + } + + // resolve spot encounter IDs + new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); + new iSpotEncounterCount = ArraySize(irgSpotEncounterList); + for (new e = 0; e < iSpotEncounterCount; e++) { + new rgSpot[SpotEncounter]; + ArrayGetArray(irgSpotEncounterList, e, rgSpot[any:0]); + + rgSpot[SpotEncounter_From][NavConnect_Area] = NavAreaGrid_GetNavAreaById(rgSpot[SpotEncounter_From][NavConnect_Id]); + if (rgSpot[SpotEncounter_From][NavConnect_Area] == Invalid_Struct) { + log_amx("ERROR: Corrupt navigation data. Missing ^"from^" Navigation Area for Encounter Spot.^n"); + error = NAV_CORRUPT_DATA; + } + + rgSpot[SpotEncounter_To][NavConnect_Area] = NavAreaGrid_GetNavAreaById(rgSpot[SpotEncounter_To][NavConnect_Id]); + if (rgSpot[SpotEncounter_To][NavConnect_Area] == Invalid_Struct) { + log_amx("ERROR: Corrupt navigation data. Missing ^"to^" Navigation Area for Encounter Spot.^n"); + error = NAV_CORRUPT_DATA; + } + + if (rgSpot[SpotEncounter_From][NavConnect_Area] != Invalid_Struct && rgSpot[SpotEncounter_To][NavConnect_Area] != Invalid_Struct) { + // compute path + new Float:flHalfWidth; + @NavArea_ComputePortal(this, rgSpot[SpotEncounter_To][NavConnect_Area], rgSpot[SpotEncounter_ToDir], rgSpot[SpotEncounter_Path][Ray_To], flHalfWidth); + @NavArea_ComputePortal(this, rgSpot[SpotEncounter_From][NavConnect_Area], rgSpot[SpotEncounter_FromDir], rgSpot[SpotEncounter_Path][Ray_From], flHalfWidth); + + new Float:eyeHeight = HalfHumanHeight; + rgSpot[SpotEncounter_Path][Ray_From][2] = @NavArea_GetZ(rgSpot[SpotEncounter_From][NavConnect_Area], rgSpot[SpotEncounter_Path][Ray_From]) + eyeHeight; + rgSpot[SpotEncounter_Path][Ray_To][2] = @NavArea_GetZ(rgSpot[SpotEncounter_To][NavConnect_Area], rgSpot[SpotEncounter_Path][Ray_To]) + eyeHeight; + } + + ArraySetArray(irgSpotEncounterList, e, rgSpot[any:0]); + } + + // build overlap list + new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); + + new iNavAreaListSize = ArraySize(g_irgNavAreaList); + for (new i = 0; i < iNavAreaListSize; ++i) { + new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); + if (sArea == this) { + continue; + } + + if (@NavArea_IsOverlapping(this, sArea)) { + ArrayPushCell(irgOverlapList, sArea); + } + } + + return error; +} + +@NavArea_GetId(const &Struct:this) { + return StructGetCell(this, NavArea_Id); +} + +NavAttributeType:@NavArea_GetAttributes(const &Struct:this) { + return StructGetCell(this, NavArea_AttributeFlags); +} + +bool:@NavArea_IsClosed(const &Struct:this) { + return @NavArea_IsMarked(this) && !@NavArea_IsOpen(this); +} + +bool:@NavArea_IsOpen(const &Struct:this) { + return StructGetCell(this, NavArea_OpenMarker) == g_iNavAreaMasterMarker; +} + +@NavArea_Mark(const &Struct:this) { + StructSetCell(this, NavArea_Marker, g_iNavAreaMasterMarker); +} + +bool:@NavArea_IsMarked(const &Struct:this) { + return StructGetCell(this, NavArea_Marker) == g_iNavAreaMasterMarker; +} + +@NavArea_GetCenter(const &Struct:this, Float:vecCenter[]) { + StructGetArray(this, NavArea_Center, vecCenter, 3); +} + +@NavArea_SetTotalCost(const &Struct:this, Float:flTotalCost) { + StructSetCell(this, NavArea_TotalCost, flTotalCost); +} + +Float:@NavArea_GetTotalCost(const &Struct:this) { + return StructGetCell(this, NavArea_TotalCost); +} + +@NavArea_SetCostSoFar(const &Struct:this, Float:flTotalCost) { + StructSetCell(this, NavArea_CostSoFar, flTotalCost); +} + +Float:@NavArea_GetCostSoFar(const &Struct:this) { + return StructGetCell(this, NavArea_CostSoFar); +} + +@NavArea_AddToClosedList(const &Struct:this) { + @NavArea_Mark(this); +} + +@NavArea_RemoveFromClosedList(const &Struct:this) { + // since "closed" is defined as visited (marked) and not on open list, do nothing +} + +@NavArea_SetParent(const &Struct:this, Struct:parent, NavTraverseType:how) { + StructSetCell(this, NavArea_Parent, parent); + StructSetCell(this, NavArea_ParentHow, how); +} + +Array:@NavArea_GetAdjacentList(const &Struct:this, NavDirType:iDir) { + return StructGetCell(this, NavArea_Connect, iDir); +} + +@NavArea_AddToOpenList(const &Struct:this) { + // mark as being on open list for quick check + StructSetCell(this, NavArea_OpenMarker, g_iNavAreaMasterMarker); + + // if list is empty, add and return + if (g_sNavAreaOpenList == Invalid_Struct) { + g_sNavAreaOpenList = this; + StructSetCell(this, NavArea_PrevOpen, Invalid_Struct); + StructSetCell(this, NavArea_NextOpen, Invalid_Struct); + return; + } + + // insert self in ascending cost order + static Struct:sArea; sArea = Invalid_Struct; + static Struct:last; last = Invalid_Struct; + + for (sArea = g_sNavAreaOpenList; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_NextOpen)) { + if (@NavArea_GetTotalCost(this) < @NavArea_GetTotalCost(sArea)) { + break; + } + + last = sArea; + } + + if (sArea) { + // insert before this area + static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(sArea, NavArea_PrevOpen); + StructSetCell(this, NavArea_PrevOpen, sPrevOpenArea); + if (sPrevOpenArea != Invalid_Struct) { + StructSetCell(sPrevOpenArea, NavArea_NextOpen, this); + } else { + g_sNavAreaOpenList = this; + } + + StructSetCell(this, NavArea_NextOpen, sArea); + StructSetCell(sArea, NavArea_PrevOpen, this); + } else { + // append to end of list + StructSetCell(last, NavArea_NextOpen, this); + StructSetCell(this, NavArea_PrevOpen, last); + StructSetCell(this, NavArea_NextOpen, Invalid_Struct); + } +} + +@NavArea_UpdateOnOpenList(const &Struct:this) { + // since value can only decrease, bubble this area up from current spot + static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(this, NavArea_PrevOpen); + static Float:flPrevTotalCost; flPrevTotalCost = @NavArea_GetTotalCost(sPrevOpenArea); + + while (StructGetCell(this, NavArea_PrevOpen) != Invalid_Struct && @NavArea_GetTotalCost(this) < flPrevTotalCost) { + // swap position with predecessor + static Struct:other; other = StructGetCell(this, NavArea_PrevOpen); + static Struct:before; before = StructGetCell(other, NavArea_PrevOpen); + static Struct:after; after = StructGetCell(this, NavArea_NextOpen); + + StructSetCell(this, NavArea_NextOpen, other); + StructSetCell(this, NavArea_PrevOpen, before); + + StructSetCell(other, NavArea_PrevOpen, this); + StructSetCell(other, NavArea_NextOpen, after); + + if (before != Invalid_Struct) { + StructSetCell(before, NavArea_NextOpen, this); + } else { + g_sNavAreaOpenList = this; + } + + if (after != Invalid_Struct) { + StructSetCell(after, NavArea_PrevOpen, other); + } + } +} + +@NavArea_RemoveFromOpenList(const &Struct:this) { + static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(this, NavArea_PrevOpen); + static Struct:sNextOpenArea; sNextOpenArea = StructGetCell(this, NavArea_NextOpen); + + if (sPrevOpenArea != Invalid_Struct) { + StructSetCell(sPrevOpenArea, NavArea_NextOpen, sNextOpenArea); + } else { + g_sNavAreaOpenList = sNextOpenArea; + } + + if (sNextOpenArea != Invalid_Struct) { + StructSetCell(sNextOpenArea, NavArea_PrevOpen, sPrevOpenArea); + } + + // zero is an invalid marker + StructSetCell(this, NavArea_OpenMarker, 0); +} + +bool:@NavArea_IsOverlappingPoint(const &Struct:this, const Float:vecPoint[3]) { + if ( + vecPoint[0] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && + vecPoint[0] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) && + vecPoint[1] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) && + vecPoint[1] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) + ) { + return true; + } + + return false; +} + +// Return true if 'area' overlaps our 2D extents +bool:@NavArea_IsOverlapping(const &Struct:this, Struct:sArea) { + if ( + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) < Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) && + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) > Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) < Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) && + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) > Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) + ) { + return true; + } + + return false; +} + +// Return true if given point is on or above this area, but no others +bool:@NavArea_Contains(const &Struct:this, const Float:vecPos[3]) { + // check 2D overlap + if (!@NavArea_IsOverlappingPoint(this, vecPos)) { + return false; + } + + // the point overlaps us, check that it is above us, but not above any areas that overlap us + new Float:flOurZ = @NavArea_GetZ(this, vecPos); + + // if we are above this point, fail + if (flOurZ > vecPos[2]) { + return false; + } + + new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); + new iOverlapListSize = ArraySize(irgOverlapList); + + for (new i = 0; i < iOverlapListSize; ++i) { + new Struct:sOtherArea = ArrayGetCell(irgOverlapList, i); + + // skip self + if (sOtherArea == this) { + continue; + } + + // check 2D overlap + if (!@NavArea_IsOverlappingPoint(sOtherArea, vecPos)) { + continue; + } + + new Float:flTheirZ = @NavArea_GetZ(sOtherArea, vecPos); + if (flTheirZ > vecPos[2]) { + // they are above the point + continue; + } + + if (flTheirZ > flOurZ) { + // we are below an area that is closer underneath the point + return false; + } + } + + return true; +} + +// Return true if this area and given area are approximately co-planar +bool:@NavArea_IsCoplanar(const &Struct:this, Struct:sArea) { + static Float:u[3]; + static Float:v[3]; + + // compute our unit surface normal + u[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + u[1] = 0.0; + u[2] = Float:StructGetCell(this, NavArea_NeZ) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2); + + v[0] = 0.0; + v[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + v[2] = Float:StructGetCell(this, NavArea_SwZ) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2); + + static Float:vecNormal[3]; + xs_vec_cross(u, v, vecNormal); + NormalizeInPlace(vecNormal, vecNormal); + + // compute their unit surface normal + u[0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0); + u[1] = 0.0; + u[2] = Float:StructGetCell(sArea, NavArea_NeZ) - StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 2); + + v[0] = 0.0; + v[1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1); + v[2] = Float:StructGetCell(sArea, NavArea_SwZ) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 2); + + static Float:vecOtherNormal[3]; + xs_vec_cross(u, v, vecOtherNormal); + NormalizeInPlace(vecOtherNormal, vecOtherNormal); + + // can only merge areas that are nearly planar, to ensure areas do not differ from underlying geometry much + new Float:flTolerance = 0.99; + if (xs_vec_dot(vecNormal, vecOtherNormal) > flTolerance) { + return true; + } + + return false; +} + +// Return Z of area at (x,y) of 'vecPos' +// Trilinear interpolation of Z values at quad edges. +// NOTE: vecPos[2] is not used. +Float:@NavArea_GetZ(const &Struct:this, const Float:vecPos[]) { + static Float:dx; dx = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + static Float:dy; dy = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + + static Float:flNeZ; flNeZ = StructGetCell(this, NavArea_NeZ); + static Float:flSwZ; flSwZ = StructGetCell(this, NavArea_SwZ); + + // guard against division by zero due to degenerate areas + if (dx == 0.0 || dy == 0.0) { + return flNeZ; + } + + static Float:u; u = floatclamp((vecPos[0] - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) / dx, 0.0, 1.0); + static Float:v; v = floatclamp((vecPos[1] - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) / dy, 0.0, 1.0); + + static Float:northZ; northZ = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2) + u * (flNeZ - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2)); + static Float:southZ; southZ = flSwZ + u * (Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 2) - flSwZ); + + return northZ + v * (southZ - northZ); +} + +// new Float:@NavArea_GetZ(const &Struct:this, new Float:x, new Float:y) { +// static Float:vecPos[3](x, y, 0.0); +// return GetZ(&vecPos); +// } + +// Return closest point to 'vecPos' on 'area'. +// Returned point is in 'vecClose'. +@NavArea_GetClosestPointOnArea(const &Struct:this, const Float:vecPos[3], Float:vecClose[3]) { + static rgExtent[Extent]; + StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); + + if (vecPos[0] < rgExtent[Extent_Lo][0]) { + if (vecPos[1] < rgExtent[Extent_Lo][1]) { + // position is north-west of area + xs_vec_copy(rgExtent[Extent_Lo], vecClose); + } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + // position is south-west of area + vecClose[0] = rgExtent[Extent_Lo][0]; + vecClose[1] = rgExtent[Extent_Hi][1]; + } else { + // position is west of area + vecClose[0] = rgExtent[Extent_Lo][0]; + vecClose[1] = vecPos[1]; + } + } else if (vecPos[0] > rgExtent[Extent_Hi][0]) { + if (vecPos[1] < rgExtent[Extent_Lo][1]) { + // position is north-east of area + vecClose[0] = rgExtent[Extent_Hi][0]; + vecClose[1] = rgExtent[Extent_Lo][1]; + } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + // position is south-east of area + xs_vec_copy(rgExtent[Extent_Hi], vecClose); + } else { + // position is east of area + vecClose[0] = rgExtent[Extent_Hi][0]; + vecClose[1] = vecPos[1]; + } + } else if (vecPos[1] < rgExtent[Extent_Lo][1]) { + // position is north of area + vecClose[0] = vecPos[0]; + vecClose[1] = rgExtent[Extent_Lo][1]; + } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + // position is south of area + vecClose[0] = vecPos[0]; + vecClose[1] = rgExtent[Extent_Hi][1]; + } else { + // position is inside of area - it is the 'closest point' to itself + xs_vec_copy(vecPos, vecClose); + } + + vecClose[2] = @NavArea_GetZ(this, vecClose); +} + +// Return shortest distance squared between point and this area +Float:@NavArea_GetDistanceSquaredToPoint(const &Struct:this, const Float:vecPos[3]) { + static rgExtent[Extent]; + StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); + + if (vecPos[0] < rgExtent[Extent_Lo][0]) { + if (vecPos[1] < rgExtent[Extent_Lo][1]) { + // position is north-west of area + return floatpower(xs_vec_distance(rgExtent[Extent_Lo], vecPos), 2.0); + } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + new Float:flSwZ = StructGetCell(this, NavArea_SwZ); + + // position is south-west of area + static Float:d[3]; + d[0] = rgExtent[Extent_Lo][0] - vecPos[0]; + d[1] = rgExtent[Extent_Hi][1] - vecPos[1]; + d[2] = flSwZ - vecPos[2]; + return floatpower(xs_vec_len(d), 2.0); + } else { + // position is west of area + new Float:d = rgExtent[Extent_Lo][0] - vecPos[0]; + return d * d; + } + } else if (vecPos[0] > rgExtent[Extent_Hi][0]) { + if (vecPos[1] < rgExtent[Extent_Lo][1]) { + new Float:flNeZ = StructGetCell(this, NavArea_NeZ); + + // position is north-east of area + static Float:d[3]; + d[0] = rgExtent[Extent_Hi][0] - vecPos[0]; + d[1] = rgExtent[Extent_Lo][1] - vecPos[1]; + d[2] = flNeZ - vecPos[2]; + return floatpower(xs_vec_len(d), 2.0); + } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + // position is south-east of area + return floatpower(xs_vec_distance(rgExtent[Extent_Hi], vecPos), 2.0); + } else { + // position is east of area + new Float:d = vecPos[2] - rgExtent[Extent_Hi][0]; + return d * d; + } + } else if (vecPos[1] < rgExtent[Extent_Lo][1]) { + // position is north of area + new Float:d = rgExtent[Extent_Lo][1] - vecPos[1]; + return d * d; + } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + // position is south of area + new Float:d = vecPos[1] - rgExtent[Extent_Hi][1]; + return d * d; + } else { // position is inside of 2D extent of area - find delta Z + new Float:z = @NavArea_GetZ(this, vecPos); + new Float:d = z - vecPos[2]; + return d * d; + } +} + +Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { + new Array:irgConnections = StructGetCell(this, NavArea_Connect, iDir); + + new iConnectionCount = ArraySize(irgConnections); + if (!iConnectionCount) { + return Invalid_Struct; + } + + new iWhich = random(iConnectionCount); + + return ArrayGetCell(irgConnections, iWhich, _:NavConnect_Area); +} + +// Compute "portal" between to adjacent areas. +// Return center of portal opening, and half-width defining sides of portal from center. +// NOTE: center[2] is unset. +@NavArea_ComputePortal(const &Struct:this, Struct:sArea, NavDirType:iDir, Float:vecCenter[], &Float:flHalfWidth) { + if (iDir == NORTH || iDir == SOUTH) { + if (iDir == NORTH) { + vecCenter[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } + else { + vecCenter[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + } + + new Float:flLeft = floatmax( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) + ); + + new Float:flRight = floatmin( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) + ); + + // clamp to our extent in case areas are disjoint + if (flLeft < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { + flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else if (flLeft > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } + + if (flRight < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { + flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else if (flRight > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } + + vecCenter[0] = (flLeft + flRight) / 2.0; + flHalfWidth = (flRight - flLeft) / 2.0; + } else { // EAST or WEST + if (iDir == WEST) { + vecCenter[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else { + vecCenter[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } + + new Float:flTop = floatmax( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) + ); + + new Float:flBottom = floatmin( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) + ); + + // clamp to our extent in case areas are disjoint + if (flTop < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { + flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } else if (flTop > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + } + + if (flBottom < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { + flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } else if (flBottom > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + } + + vecCenter[1] = (flTop + flBottom) / 2.0; + flHalfWidth = (flBottom - flTop) / 2.0; + } +} + +// Compute closest point within the "portal" between to adjacent areas. +@NavArea_ComputeClosestPointInPortal(const &Struct:this, Struct:sArea, NavDirType:iDir, const Float:vecFromPos[3], Float:vecClosePos[3]) { + new Float:flMargin = GenerationStepSize / 2.0; + + if (iDir == NORTH || iDir == SOUTH) { + if (iDir == NORTH) { + vecClosePos[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } else { + vecClosePos[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + } + + new Float:flLeft = floatmax( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) + ); + + new Float:flRight = floatmin( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) + ); + + // clamp to our extent in case areas are disjoint + if (flLeft < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { + flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else if (flLeft > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } + + if (flRight < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { + flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else if (flRight > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } + + // keep margin if against edge + new Float:flLeftMargin = (@NavArea_IsEdge(sArea, WEST)) ? (flLeft + flMargin) : flLeft; + new Float:flRightMargin = (@NavArea_IsEdge(sArea, EAST)) ? (flRight - flMargin) : flRight; + + // limit x to within portal + if (vecFromPos[0] < flLeftMargin) { + vecClosePos[0] = flLeftMargin; + } else if (vecFromPos[0] > flRightMargin) { + vecClosePos[0] = flRightMargin; + } else { + vecClosePos[0] = vecFromPos[0]; + } + + } else { // EAST or WEST + if (iDir == WEST) { + vecClosePos[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else { + vecClosePos[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } + + new Float:flTop = floatmax( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) + ); + + new Float:flBottom = floatmin( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) + ); + + // clamp to our extent in case areas are disjoint + if (flTop < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { + flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } else if (flTop > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + } + + if (flBottom < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { + flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } else if (flBottom > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + } + + // keep margin if against edge + new Float:flTopMargin = (@NavArea_IsEdge(sArea, NORTH)) ? (flTop + flMargin) : flTop; + new Float:flBottomMargin = (@NavArea_IsEdge(sArea, SOUTH)) ? (flBottom - flMargin) : flBottom; + + // limit y to within portal + if (vecFromPos[1] < flTopMargin) { + vecClosePos[1] = flTopMargin; + } else if (vecFromPos[1] > flBottomMargin) { + vecClosePos[1] = flBottomMargin; + } else { + vecClosePos[1] = vecFromPos[1]; + } + } +} + +// Return true if there are no bi-directional links on the given side +bool:@NavArea_IsEdge(const &Struct:this, NavDirType:iDir) { + static Array:irgConnections; irgConnections = StructGetCell(this, NavArea_Connect, iDir); + static iConnectionCount; iConnectionCount = ArraySize(irgConnections); + + for (new i = 0; i < iConnectionCount; ++i) { + static Struct:sConnectArea; sConnectArea = ArrayGetCell(irgConnections, i, _:NavConnect_Area); + if (@NavArea_IsConnected(sConnectArea, this, OppositeDirection(iDir))) { + return false; + } + } + + return true; +} + +bool:@NavArea_IsConnected(const &Struct:this, Struct:sArea, NavDirType:iDir) { + // we are connected to ourself + if (sArea == this) { + return true; + } + + if (iDir == NUM_DIRECTIONS) { + // search all directions + for (new iDir = 0; iDir < _:NUM_DIRECTIONS; iDir++) { + if (@NavArea_IsConnected(this, sArea, NavDirType:iDir)) { + return true; + } + } + } else { + // check specific direction + static Array:irgConnections; irgConnections = StructGetCell(this, NavArea_Connect, iDir); + static iConnectionCount; iConnectionCount = ArraySize(irgConnections); + + for (new i = 0; i < iConnectionCount; ++i) { + if (sArea == ArrayGetCell(irgConnections, i, _:NavConnect_Area)) { + return true; + } + } + } + + return false; +} + +// Return direction from this area to the given point +NavDirType:@NavArea_ComputeDirection(const &Struct:this, const Float:vecPoint[3]) { + if (vecPoint[0] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && vecPoint[0] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + if (vecPoint[1] < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { + return NORTH; + } else if (vecPoint[1] > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + return SOUTH; + } + } else if (vecPoint[1] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) && vecPoint[1] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + if (vecPoint[0] < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { + return WEST; + } else if (vecPoint[0] > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + return EAST; + } + } + + // find closest direction + static Float:vecTo[3]; + @NavArea_GetCenter(this, vecTo); + xs_vec_sub(vecPoint, vecTo, vecTo); + + if (floatabs(vecTo[0]) > floatabs(vecTo[1])) { + return vecTo[0] > 0.0 ? EAST : WEST; + } else { + return vecTo[1] > 0.0 ? SOUTH : NORTH; + } +} + +@NavArea_GetCorner(const &Struct:this, NavCornerType:corner, Float:vecOut[3]) { + static rgExtent[Extent]; + StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); + + switch (corner) { + case NORTH_WEST: { + xs_vec_copy(rgExtent[Extent_Lo], vecOut); + return; + } + case NORTH_EAST: { + vecOut[0] = rgExtent[Extent_Hi][0]; + vecOut[1] = rgExtent[Extent_Lo][1]; + vecOut[2] = StructGetCell(this, NavArea_NeZ); + return; + } + case SOUTH_WEST: { + vecOut[0] = rgExtent[Extent_Lo][0]; + vecOut[1] = rgExtent[Extent_Hi][1]; + vecOut[2] = StructGetCell(this, NavArea_SwZ); + return; + } + case SOUTH_EAST: { + xs_vec_copy(rgExtent[Extent_Hi], vecOut); + return; + } + } +} + +Struct:@NavPath_Create() { + new Struct:this = StructCreate(NavPath); + StructSetCell(this, NavPath_Segments, ArrayCreate()); + return this; +} + +@NavPath_Destroy(&Struct:this) { + new Array:irgSegments = StructGetCell(this, NavPath_Segments); + new iPathSize = ArraySize(irgSegments); + + for (new i = 0; i < iPathSize; ++i) { + new Struct:sSegment = ArrayGetCell(irgSegments, i); + StructDestroy(sSegment); + } + + ArrayDestroy(irgSegments); + StructDestroy(this); +} + +// Build trivial path when start and goal are in the same nav area +bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[3], const Float:vecGoal[3]) { + new Array:irgSegments = StructGetCell(this, NavPath_Segments); + ArrayClear(irgSegments); + + StructSetCell(this, NavPath_SegmentCount, 0); + + new Struct:sStartArea = NavAreaGrid_GetNearestNavArea(vecStart, false, nullptr); + if (sStartArea == Invalid_Struct) { + return false; + } + + new Struct:sGoalArea = NavAreaGrid_GetNearestNavArea(vecGoal, false, nullptr); + if (sGoalArea == Invalid_Struct) { + return false; + } + + new Struct:sStartSegment = @PathSegment_Create(); + StructSetCell(sStartSegment, PathSegment_Area, sStartArea); + StructSetArray(sStartSegment, PathSegment_Pos, vecStart, sizeof(vecStart)); + StructSetCell(sStartSegment, PathSegment_Pos, @NavArea_GetZ(sStartArea, vecStart), 2); + StructSetCell(sStartSegment, PathSegment_How, NUM_TRAVERSE_TYPES); + @NavPath_PushSegment(this, sStartSegment); + + new Struct:sGoalSegment = @PathSegment_Create(); + StructSetCell(sGoalSegment, PathSegment_Area, sGoalArea); + StructSetArray(sGoalSegment, PathSegment_Pos, vecGoal, sizeof(vecGoal)); + StructSetCell(sGoalSegment, PathSegment_Pos, @NavArea_GetZ(sGoalArea, vecGoal), 2); + StructSetCell(sGoalSegment, PathSegment_How, NUM_TRAVERSE_TYPES); + @NavPath_PushSegment(this, sGoalSegment); + + return true; +} + +@NavPath_PushSegment(const &Struct:this, Struct:sSegment) { + ArrayPushCell(StructGetCell(this, NavPath_Segments), sSegment); + StructSetCell(this, NavPath_SegmentCount, StructGetCell(this, NavPath_SegmentCount) + 1); +} + +@NavPath_ComputePathPositions(const &Struct:this) { + if (!StructGetCell(this, NavPath_SegmentCount)) { + return false; + } + + static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); + static Struct:startSegment; startSegment = ArrayGetCell(irgSegments, 0); + static Struct:sStartArea; sStartArea = StructGetCell(startSegment, PathSegment_Area); + + // start in first area's center + static Float:vecStart[3]; + @NavArea_GetCenter(sStartArea, vecStart); + + StructSetArray(startSegment, PathSegment_Pos, vecStart, sizeof(vecStart)); + StructSetCell(startSegment, PathSegment_How, NUM_TRAVERSE_TYPES); + + for (new i = 1; i < StructGetCell(this, NavPath_SegmentCount); i++) { + static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); + static Struct:sFromArea; sFromArea = StructGetCell(sFromSegment, PathSegment_Area); + static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); + static Struct:sToArea; sToArea = StructGetCell(sToSegment, PathSegment_Area); + + static Float:vecFromPos[3]; + StructGetArray(sFromSegment, PathSegment_Pos, vecFromPos, sizeof(vecFromPos)); + + static Float:vecToPos[3]; + StructGetArray(sToSegment, PathSegment_Pos, vecToPos, sizeof(vecToPos)); + + // walk along the floor to the next area + static NavTraverseType:toHow; toHow = StructGetCell(sToSegment, PathSegment_How); + if (toHow <= GO_WEST) { + // compute next point, keeping path as straight as possible + @NavArea_ComputeClosestPointInPortal(sFromArea, sToArea, NavDirType:toHow, vecFromPos, vecToPos); + + // move goal position into the goal area a bit + // how far to "step into" an area - must be less than min area size + static const Float:flStepInDist = 5.0; + AddDirectionVector(vecToPos, NavDirType:toHow, flStepInDist); + + // we need to walk out of "from" area, so keep Z where we can reach it + StructSetCell(sToSegment, PathSegment_Pos, @NavArea_GetZ(sFromArea, vecToPos), 2); + + // if this is a "jump down" connection, we must insert an additional point on the path + if (!@NavArea_IsConnected(sToArea, sFromArea, NUM_DIRECTIONS)) { + // this is a "jump down" link + // compute direction of path just prior to "jump down" + static Float:flDir[2]; + DirectionToVector2D(NavDirType:toHow, flDir); + + // shift top of "jump down" out a bit to "get over the ledge" + static const Float:flPushDist = 25.0; + StructSetCell(sToSegment, PathSegment_Pos, Float:StructGetCell(sToSegment, PathSegment_Pos, 0) + (flPushDist * flDir[0]), 0); + StructSetCell(sToSegment, PathSegment_Pos, Float:StructGetCell(sToSegment, PathSegment_Pos, 1) + (flPushDist * flDir[1]), 1); + + // insert a duplicate node to represent the bottom of the fall + if (StructGetCell(this, NavPath_SegmentCount) < MAX_PATH_SEGMENTS - 1) { + static Struct:sOldSegment; sOldSegment = ArrayGetCell(irgSegments, i); + static Struct:sSegment; sSegment = StructClone(sOldSegment); + StructSetCell(sSegment, PathSegment_Pos, vecToPos[0] + flPushDist * flDir[0], 0); + StructSetCell(sSegment, PathSegment_Pos, vecToPos[1] + flPushDist * flDir[1], 1); + + // put this one at the bottom of the fall + static Float:vecPos[3]; + StructGetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); + StructSetCell(sSegment, PathSegment_Pos, @NavArea_GetZ(sToArea, vecPos), 2); + + ArrayInsertCellAfter(irgSegments, i, sSegment); + + // path is one node longer + StructSetCell(this, NavPath_SegmentCount, StructGetCell(this, NavPath_SegmentCount) + 1); + + // move index ahead into the new node we just duplicated + i++; + } + } + } + } + + return true; +} + +bool:@NavPath_IsValid(const &Struct:this) { + return StructGetCell(this, NavPath_SegmentCount) > 0; +} + +@NavPath_GetSegmentCount(const &Struct:this) { + return StructGetCell(this, NavPath_SegmentCount); +} + +@NavPath_Invalidate(const &Struct:this) { + StructSetCell(this, NavPath_SegmentCount, 0); +} + +@NavPath_GetEndpoint(const &Struct:this, Float:vecEndpoint[]) { + static iSegmentCount; iSegmentCount = StructGetCell(this, NavPath_SegmentCount); + static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); + static Struct:sSegment; sSegment = ArrayGetCell(irgSegments, iSegmentCount - 1); + StructGetArray(sSegment, PathSegment_Pos, vecEndpoint, 3); +} + +// Return true if position is at the end of the path +bool:@NavPath_IsAtEnd(const &Struct:this, const Float:vecPos[3]) { + if (!@NavPath_IsValid(this)) { + return false; + } + + static Float:vecEndpoint[3]; + @NavPath_GetEndpoint(this, vecEndpoint); + return xs_vec_distance(vecPos, vecEndpoint) < 20.0; +} + +// Return point a given distance along the path - if distance is out of path bounds, point is clamped to start/end +// TODO: Be careful of returning "positions" along one-way drops, ladders, etc. +bool:@NavPath_GetPointAlongPath(const &Struct:this, Float:flDistAlong, Float:vecPointOnPath[3]) { + if (!@NavPath_IsValid(this) || !xs_vec_len(vecPointOnPath)) { + return false; + } + + static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); + + if (flDistAlong <= 0.0) { + static Struct:sFirstSegment; sFirstSegment = ArrayGetCell(irgSegments, 0); + StructGetArray(sFirstSegment, PathSegment_Pos, vecPointOnPath, 3); + return true; + } + + static Float:flLengthSoFar; flLengthSoFar = 0.0; + static Float:flSegmentLength; + static Float:vecDir[3]; + + for (new i = 1; i < @NavPath_GetSegmentCount(this); i++) { + static Float:vecFrom[3]; + static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); + StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); + + static Float:vecTo[3]; + static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); + StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); + + xs_vec_sub(vecTo, vecFrom, vecDir); + + flSegmentLength = xs_vec_len(vecDir); + + if (flSegmentLength + flLengthSoFar >= flDistAlong) { + // desired point is on this segment of the path + static Float:delta; delta = flDistAlong - flLengthSoFar; + static Float:t; t = delta / flSegmentLength; + + for (new j = 0; j < 3; ++j) { + vecPointOnPath[j] = vecTo[j] + t * vecDir[j]; + } + + return true; + } + + flLengthSoFar += flSegmentLength; + } + + @NavPath_GetEndpoint(this, vecPointOnPath); + + return true; +} + +// Compute closest point on path to given point +// NOTE: This does not do line-of-sight tests, so closest point may be thru the floor, etc +bool:@NavPath_FindClosestPointOnPath(const &Struct:this, const Float:vecWorldPos[3], iStartIndex, iEndIndex, Float:vecClose[3]) { + if (!@NavPath_IsValid(this) || !vecClose) { + return false; + } + + static Float:vecAlong[3]; + static Float:vecToWorldPos[3]; + static Float:vecPos[3]; + static Float:flLength; + static Float:flCloseLength; + static Float:flCloseDistSq = 9999999999.9; + static Float:flDistSq; + + new Array:irgSegments = StructGetCell(this, NavPath_Segments); + + for (new i = iStartIndex; i <= iEndIndex; i++) { + static Float:vecFrom[3]; + static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); + StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); + + static Float:vecTo[3]; + static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); + StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); + + // compute ray along this path segment + xs_vec_sub(vecTo, vecFrom, vecAlong); + + // make it a unit vector along the path + flLength = NormalizeInPlace(vecAlong, vecAlong); + + // compute vector from start of segment to our point + xs_vec_sub(vecWorldPos, vecFrom, vecToWorldPos); + + // find distance of closest point on ray + flCloseLength = xs_vec_dot(vecToWorldPos, vecAlong); + + // constrain point to be on path segment + if (flCloseLength <= 0.0) { + xs_vec_copy(vecFrom, vecPos); + } else if (flCloseLength >= flLength) { + xs_vec_copy(vecFrom, vecTo); + } else { + xs_vec_add_scaled(vecFrom, vecAlong, flCloseLength, vecPos); + } + + flDistSq = floatpower(xs_vec_distance(vecPos, vecWorldPos), 2.0); + + // keep the closest point so far + if (flDistSq < flCloseDistSq) { + flCloseDistSq = flDistSq; + xs_vec_copy(vecPos, vecClose); + } + } + + return true; +} + +Struct:@BuildPathTask_Create() { + new Struct:this = StructCreate(BuildPathTask); + StructSetCell(this, BuildPathTask_Path, @NavPath_Create()); + return this; +} + +@BuildPathTask_Destroy(&Struct:this) { + new Struct:sNavPath = StructGetCell(this, BuildPathTask_Path); + @NavPath_Destroy(sNavPath); + StructDestroy(this); +} + +Struct:@PathSegment_Create() { + new Struct:this = StructCreate(PathSegment); + return this; +} + +@PathSegment_Destroy(&Struct:this) { + StructDestroy(this); +} + +NavAreaGrid_ComputeHashKey(iId) { // returns a hash key for the given nav area ID + return iId & 0xFF; +} + + +NavAreaGrid_Init(Float:flMinX, Float:flMaxX, Float:flMinY, Float:flMaxY) { + g_rgGrid[NavAreaGrid_CellSize] = 300.0; + g_rgGrid[NavAreaGrid_MinX] = flMinX; + g_rgGrid[NavAreaGrid_MinY] = flMinY; + g_rgGrid[NavAreaGrid_GridSizeX] = floatround((flMaxX - flMinX) / g_rgGrid[NavAreaGrid_CellSize] + 1); + g_rgGrid[NavAreaGrid_GridSizeY] = floatround((flMaxY - flMinY) / g_rgGrid[NavAreaGrid_CellSize] + 1); + g_rgGrid[NavAreaGrid_AreaCount] = 0; + + new iGridSize = g_rgGrid[NavAreaGrid_GridSizeX] * g_rgGrid[NavAreaGrid_GridSizeY]; + + g_rgGrid[NavAreaGrid_Grid] = ArrayCreate(_, iGridSize); + + for (new i = 0; i < iGridSize; ++i) { + ArrayPushCell(g_rgGrid[NavAreaGrid_Grid], ArrayCreate()); + } +} + +NavAreaGrid_Free() { + if (g_rgGrid[NavAreaGrid_Grid] != Invalid_Array) { + new iGridSize = ArraySize(g_rgGrid[NavAreaGrid_Grid]); + + for (new i = 0; i < iGridSize; ++i) { + new Array:irgAreas = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], i); + ArrayDestroy(irgAreas); + } + + ArrayDestroy(g_rgGrid[NavAreaGrid_Grid]); + } +} + +Struct:NavAreaGrid_GetNavAreaById(iAreaId) { + if (iAreaId == 0) { + return Invalid_Struct; + } + + new iKey = NavAreaGrid_ComputeHashKey(iAreaId); + + for (new Struct:sArea = g_rgGrid[NavAreaGrid_HashTable][iKey]; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_NextHash)) { + if (@NavArea_GetId(sArea) == iAreaId) { + return sArea; + } + } + + return Invalid_Struct; +} + +NavAreaGrid_AddNavArea(Struct:sArea) { + // add to grid + new iLoX = NavAreaGrid_WorldToGridX(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0)); + new iLoY = NavAreaGrid_WorldToGridY(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1)); + new iHiX = NavAreaGrid_WorldToGridX(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0)); + new iHiY = NavAreaGrid_WorldToGridY(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1)); + + for (new y = iLoY; y <= iHiY; y++) { + for (new x = iLoX; x <= iHiX; x++) { + new Array:irgAreas = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], x + y * g_rgGrid[NavAreaGrid_GridSizeX]); + ArrayPushCell(irgAreas, sArea); + } + } + + new iAreaId = StructGetCell(sArea, NavArea_Id); + + // add to hash table + new iKey = NavAreaGrid_ComputeHashKey(iAreaId); + + if (g_rgGrid[NavAreaGrid_HashTable][iKey] != Invalid_Struct) { + // add to head of list in this slot + StructSetCell(sArea, NavArea_PrevHash, Invalid_Struct); + StructSetCell(sArea, NavArea_NextHash, g_rgGrid[NavAreaGrid_HashTable][iKey]); + StructSetCell(g_rgGrid[NavAreaGrid_HashTable][iKey], NavArea_PrevHash, sArea); + g_rgGrid[NavAreaGrid_HashTable][iKey] = sArea; + } else { + // first entry in this slot + g_rgGrid[NavAreaGrid_HashTable][iKey] = sArea; + StructSetCell(sArea, NavArea_NextHash, Invalid_Struct); + StructSetCell(sArea, NavArea_PrevHash, Invalid_Struct); + } + + g_rgGrid[NavAreaGrid_AreaCount]++; +} + +// Given a position, return the nav area that IsOverlapping and is *immediately* beneath it +Struct:NavAreaGrid_GetNavArea(const Float:vecPos[3], Float:flBeneathLimit) { + if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) { + return Invalid_Struct; + } + + // get list in cell that contains position + new x = NavAreaGrid_WorldToGridX(vecPos[0]); + new y = NavAreaGrid_WorldToGridY(vecPos[1]); + + new Array:irgList = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], x + y * g_rgGrid[NavAreaGrid_GridSizeX]); + + // search cell list to find correct area + new Struct:sUseArea = Invalid_Struct; + new Float:useZ = -99999999.9; + static Float:vecTestPos[3]; + xs_vec_add(vecPos, Float:{0, 0, 5}, vecTestPos); + + new iListSize = ArraySize(irgList); + for (new i = 0; i < iListSize; ++i) { + new Struct:sArea = ArrayGetCell(irgList, i); + + // check if position is within 2D boundaries of this area + if (@NavArea_IsOverlappingPoint(sArea, vecTestPos)) { + // project position onto area to get Z + new Float:z = @NavArea_GetZ(sArea, vecTestPos); + + // if area is above us, skip it + if (z > vecTestPos[2]) { + continue; + } + + // if area is too far below us, skip it + if (z < vecPos[2] - flBeneathLimit) { + continue; + } + + // if area is higher than the one we have, use this instead + if (z > useZ) { + sUseArea = sArea; + useZ = z; + } + } + } + + return sUseArea; +} + +NavAreaGrid_WorldToGridX(Float:wx) { + return clamp( + floatround((wx - g_rgGrid[NavAreaGrid_MinX]) / g_rgGrid[NavAreaGrid_CellSize], floatround_ceil), + 0, + g_rgGrid[NavAreaGrid_GridSizeX] - 1 + ); +} + +NavAreaGrid_WorldToGridY(Float:wy) { + return clamp( + floatround((wy - g_rgGrid[NavAreaGrid_MinY]) / g_rgGrid[NavAreaGrid_CellSize], floatround_ceil), + 0, + g_rgGrid[NavAreaGrid_GridSizeY] - 1 + ); +} + +// Given a position in the world, return the nav area that is closest +// and at the same height, or beneath it. +// Used to find initial area if we start off of the mesh. +Struct:NavAreaGrid_GetNearestNavArea(const Float:vecPos[3], bool:bAnyZ, pIgnoreEnt) { + if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) { + return Invalid_Struct; + } + + new Struct:sCloseArea = Invalid_Struct; + new Float:flCloseDistSq = 100000000.0; + + // quick check + sCloseArea = NavAreaGrid_GetNavArea(vecPos, 120.0); + if (sCloseArea) { + return sCloseArea; + } + + // ensure source position is well behaved + static Float:vecSource[3]; + vecSource[0] = vecPos[0]; + vecSource[1] = vecPos[1]; + + if (GetGroundHeight(vecPos, vecSource[2], pIgnoreEnt) == false) { + return Invalid_Struct; + } + + vecSource[2] += HalfHumanHeight; + + // TODO: Step incrementally using grid for speed + + // find closest nav area + new iNavAreaCount = ArraySize(g_irgNavAreaList); + for (new i = 0; i < iNavAreaCount; ++i) { + new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); + + static Float:flAreaPos[3]; + @NavArea_GetClosestPointOnArea(sArea, vecSource, flAreaPos); + + new Float:flDistSq = floatpower(xs_vec_distance(flAreaPos, vecSource), 2.0); + + // keep the closest area + if (flDistSq < flCloseDistSq) { + // check LOS to area + if (!bAnyZ) { + static Float:vecEnd[3]; + xs_vec_copy(flAreaPos, vecEnd); + vecEnd[2] += HalfHumanHeight; + + engfunc(EngFunc_TraceLine, vecSource, vecEnd, IGNORE_MONSTERS | IGNORE_GLASS, pIgnoreEnt, g_pTrace); + + static Float:flFraction; + get_tr2(g_pTrace, TR_flFraction, flFraction); + if (flFraction != 1.0) { + continue; + } + } + + flCloseDistSq = flDistSq; + sCloseArea = sArea; + } + } + + return sCloseArea; +} + +// NavAreaGrid_GetNavAreaCount() { +// return g_rgGrid[NavAreaGrid_AreaCount]; +// } + +NavErrorType:LoadNavigationMap() { + new szMapName[32]; + get_mapname(szMapName, charsmax(szMapName)); + + static szFilePath[256]; + format(szFilePath, charsmax(szFilePath), "maps/%s.nav", szMapName); + + if (!file_exists(szFilePath)) { + log_amx("File ^"%s^" not found!", szFilePath); + return NAV_CANT_ACCESS_FILE; + } + + g_irgNavAreaList = ArrayCreate(); + + new iFile = fopen(szFilePath, "rb"); + g_iNavAreaNextId = 1; + + new iMagic; + if (!FileReadInt32(iFile, iMagic)) { + return NAV_INVALID_FILE; + } + + if (iMagic != NAV_MAGIC_NUMBER) { + log_amx("Wrong magic number %d. Should be %d.", iMagic, NAV_MAGIC_NUMBER); + return NAV_INVALID_FILE; + } + + new iVersion; + if (!FileReadInt32(iFile, iVersion)) { + return NAV_BAD_FILE_VERSION; + } + + if (iVersion > NAV_VERSION) { + log_amx("Wrong version %d. Should be less then %d.", iVersion, NAV_VERSION); + return NAV_BAD_FILE_VERSION; + } + + log_amx("Nav version: %d", iVersion); + + if (iVersion >= 4) { + fseek(iFile, BLOCK_INT, SEEK_CUR); + } + + // load Place directory + if (iVersion >= NAV_VERSION) { + new iPlaceCount; + FileReadUint16(iFile, iPlaceCount); + + for (new i = 0; i < iPlaceCount; ++i) { + new iLen; + FileReadUint16(iFile, iLen); + fseek(iFile, iLen, SEEK_CUR); + } + } + + // get number of areas + static iAreaCount; + FileReadInt32(iFile, iAreaCount); + log_amx("Found %d areas", iAreaCount); + + new rgExtent[Extent]; + rgExtent[Extent_Lo][0] = 9999999999.9; + rgExtent[Extent_Lo][1] = 9999999999.9; + rgExtent[Extent_Hi][0] = -9999999999.9; + rgExtent[Extent_Hi][1] = -9999999999.9; + + log_amx("Loading areas..."); + + // load the areas and compute total extent + for (new i = 0; i < iAreaCount; i++) { + new Struct:sArea = @NavArea_Create(); + @NavArea_Load(sArea, iFile, iVersion, false); + ArrayPushCell(g_irgNavAreaList, sArea); + + if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) < rgExtent[Extent_Lo][0]) { + rgExtent[Extent_Lo][0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0); + } + + if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) < rgExtent[Extent_Lo][1]) { + rgExtent[Extent_Lo][1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1); + } + + if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) > rgExtent[Extent_Hi][0]) { + rgExtent[Extent_Hi][0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0); + } + + if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) > rgExtent[Extent_Hi][1]) { + rgExtent[Extent_Hi][1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1); + } + } + + log_amx("All areas loaded!"); + + // add the areas to the grid + NavAreaGrid_Init(rgExtent[Extent_Lo][0], rgExtent[Extent_Hi][0], rgExtent[Extent_Lo][1], rgExtent[Extent_Hi][1]); + + log_amx("Grid initialized!"); + + for (new i = 0; i < iAreaCount; i++) { + new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); + NavAreaGrid_AddNavArea(sArea); + } + + log_amx("All areas added to the grid!"); + + // allow areas to connect to each other, etc + for (new i = 0; i < iAreaCount; i++) { + new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); + @NavArea_PostLoadArea(sArea); + } + + log_amx("Loaded areas post processing complete!"); + + fclose(iFile); + + return NAV_OK; +} + +Struct:FindFirstAreaInDirection(const Float:vecStart[3], NavDirType:iDir, Float:flRange, Float:flBeneathLimit, pIgnoreEnt, Float:vecClosePos[3]) { + new Struct:sArea = Invalid_Struct; + + static Float:vecPos[3]; + xs_vec_copy(vecStart, vecPos); + + new iEnd = floatround((flRange / GenerationStepSize) + 0.5); + + for (new i = 1; i <= iEnd; i++) { + AddDirectionVector(vecPos, iDir, GenerationStepSize); + + // make sure we dont look thru the wall + engfunc(EngFunc_TraceLine, vecStart, vecPos, IGNORE_MONSTERS, pIgnoreEnt, g_pTrace); + + static Float:flFraction; + get_tr2(g_pTrace, TR_flFraction, flFraction); + if (flFraction != 1.0) { + break; + } + + sArea = NavAreaGrid_GetNavArea(vecPos, flBeneathLimit); + + if (sArea != Invalid_Struct) { + vecClosePos[0] = vecPos[0]; + vecClosePos[1] = vecPos[1]; + + static Float:pos2d[3]; + xs_vec_copy(vecPos, pos2d); + pos2d[2] = 0.0; + + vecClosePos[2] = @NavArea_GetZ(sArea, pos2d); + break; + } + } + + return sArea; +} + +Struct:NavAreaPopOpenList() { + if (g_sNavAreaOpenList != Invalid_Struct) { + static Struct:sArea; sArea = g_sNavAreaOpenList; + // disconnect from list + @NavArea_RemoveFromOpenList(sArea); + return sArea; + } + + return Invalid_Struct; +} + +NavAreaMakeNewMarker() { + if (++g_iNavAreaMasterMarker == 0) { + g_iNavAreaMasterMarker = 1; + } +} + +NavAreaClearSearchLists() { + NavAreaMakeNewMarker(); + g_sNavAreaOpenList = Invalid_Struct; +} + +Struct:NavAreaBuildPath(const Float:vecStart[3], const Float:vecGoal[3], iCbFuncId = -1, iCbFuncPluginId = -1, pIgnoreEnt, iUserToken, iCostFuncId = -1, iCostFuncPluginId = -1) { + if (!g_bPrecached) { + return Invalid_Struct; + } + + if (!xs_vec_len(vecGoal)) { + return Invalid_Struct; + } + + new Struct:sStartArea = NavAreaGrid_GetNearestNavArea(vecStart, false, pIgnoreEnt); + if (sStartArea == Invalid_Struct) { + return Invalid_Struct; + } + + new Struct:sGoalArea = NavAreaGrid_GetNearestNavArea(vecGoal, false, pIgnoreEnt); + if (sGoalArea == Invalid_Struct) { + return Invalid_Struct; + } + + new Struct:sTask = @BuildPathTask_Create(); + + StructSetArray(sTask, BuildPathTask_StartPos, vecStart, 3); + StructSetArray(sTask, BuildPathTask_GoalPos, vecGoal, 3); + StructSetCell(sTask, BuildPathTask_StartArea, sStartArea); + StructSetCell(sTask, BuildPathTask_GoalArea, sGoalArea); + StructSetCell(sTask, BuildPathTask_ClosestArea, Invalid_Struct); + StructSetCell(sTask, BuildPathTask_CbFuncId, iCbFuncId); + StructSetCell(sTask, BuildPathTask_CbFuncPluginId, iCbFuncPluginId); + StructSetCell(sTask, BuildPathTask_CostFuncId, iCostFuncId); + StructSetCell(sTask, BuildPathTask_CostFuncPluginId, iCostFuncPluginId); + StructSetCell(sTask, BuildPathTask_IgnoreEntity, pIgnoreEnt); + StructSetCell(sTask, BuildPathTask_UserToken, iUserToken); + StructSetCell(sTask, BuildPathTask_IsSuccessed, false); + + if (g_irgBuildPathTasks == Invalid_Array) { + g_irgBuildPathTasks = ArrayCreate(); + } + + ArrayPushCell(g_irgBuildPathTasks, sTask); + + return sTask; +} + +bool:NavAreaBuildPathAbortTask(Struct:sTask) { + // if task already in progress + if (g_rgBuildPathJob[BuildPathJob_Task] == sTask) { + g_rgBuildPathJob[BuildPathJob_Finished] = true; + g_rgBuildPathJob[BuildPathJob_Terminated] = true; + g_rgBuildPathJob[BuildPathJob_Success] = false; + return true; + } + + if (g_irgBuildPathTasks == Invalid_Array) { + return false; + } + + new iTask = ArrayFindValue(g_irgBuildPathTasks, sTask); + if (iTask != -1) { + @BuildPathTask_Destroy(sTask); + ArrayDeleteItem(g_irgBuildPathTasks, iTask); + return true; + } + + return false; +} + +bool:NavAreaBuildPathRunTask(Struct:sTask) { + g_rgBuildPathJob[BuildPathJob_Task] = sTask; + g_rgBuildPathJob[BuildPathJob_StartArea] = StructGetCell(sTask, BuildPathTask_StartArea); + g_rgBuildPathJob[BuildPathJob_GoalArea] = StructGetCell(sTask, BuildPathTask_GoalArea); + g_rgBuildPathJob[BuildPathJob_CostFuncId] = StructGetCell(sTask, BuildPathTask_CostFuncId); + g_rgBuildPathJob[BuildPathJob_CostFuncPluginId] = StructGetCell(sTask, BuildPathTask_CostFuncPluginId); + g_rgBuildPathJob[BuildPathJob_Finished] = false; + g_rgBuildPathJob[BuildPathJob_Terminated] = false; + g_rgBuildPathJob[BuildPathJob_Success] = false; + g_rgBuildPathJob[BuildPathJob_MaxIterations] = get_pcvar_num(g_pCvarMaxIterationsPerFrame); + g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = 999999.0; + g_rgBuildPathJob[BuildPathJob_ClosestArea] = Invalid_Struct; + g_rgBuildPathJob[BuildPathJob_IgnoreEntity] = StructGetCell(sTask, BuildPathTask_IgnoreEntity); + + StructGetArray(sTask, BuildPathTask_GoalPos, g_rgBuildPathJob[BuildPathJob_GoalPos], 3); + + @NavArea_SetParent(g_rgBuildPathJob[BuildPathJob_StartArea], Invalid_Struct, NUM_TRAVERSE_TYPES); + + // if we are already in the goal area, build trivial path + if (g_rgBuildPathJob[BuildPathJob_StartArea] == g_rgBuildPathJob[BuildPathJob_GoalArea]) { + @NavArea_SetParent(g_rgBuildPathJob[BuildPathJob_GoalArea], Invalid_Struct, NUM_TRAVERSE_TYPES); + g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_GoalArea]; + g_rgBuildPathJob[BuildPathJob_Success] = true; + g_rgBuildPathJob[BuildPathJob_Finished] = true; + return true; + } + + // determine actual goal position + if (xs_vec_len(g_rgBuildPathJob[BuildPathJob_GoalPos]) > 0.0) { + xs_vec_copy(g_rgBuildPathJob[BuildPathJob_GoalPos], g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); + } else { + @NavArea_GetCenter(g_rgBuildPathJob[BuildPathJob_GoalArea], g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); + } + + // start search + NavAreaClearSearchLists(); + + // compute estimate of path length + // TODO: Cost might work as "manhattan distance" + static Float:vecStartAreaCenter[3]; + @NavArea_GetCenter(g_rgBuildPathJob[BuildPathJob_StartArea], vecStartAreaCenter); + @NavArea_SetTotalCost(g_rgBuildPathJob[BuildPathJob_StartArea], xs_vec_distance(vecStartAreaCenter, g_rgBuildPathJob[BuildPathJob_ActualGoalPos])); + + new Float:flInitCost = 0.0; + + if (g_rgBuildPathJob[BuildPathJob_CostFuncId] != -1 && callfunc_begin_i(g_rgBuildPathJob[BuildPathJob_CostFuncId], g_rgBuildPathJob[BuildPathJob_CostFuncPluginId])) { + callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_Task]); + callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_StartArea]); + callfunc_push_int(_:Invalid_Struct); + flInitCost = Float:callfunc_end(); + } + + if (flInitCost < 0.0) { + g_rgBuildPathJob[BuildPathJob_Finished] = true; + g_rgBuildPathJob[BuildPathJob_Terminated] = true; + g_rgBuildPathJob[BuildPathJob_Success] = false; + return false; + } + + @NavArea_SetCostSoFar(g_rgBuildPathJob[BuildPathJob_StartArea], flInitCost); + @NavArea_AddToOpenList(g_rgBuildPathJob[BuildPathJob_StartArea]); + + // keep track of the area we visit that is closest to the goal + if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct) { + g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_StartArea]; + } + + g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = @NavArea_GetTotalCost(g_rgBuildPathJob[BuildPathJob_StartArea]); + + return true; +} + +NavAreaBuildPathFinish() { + new Struct:sTask = g_rgBuildPathJob[BuildPathJob_Task]; + StructSetCell(sTask, BuildPathTask_IsSuccessed, g_rgBuildPathJob[BuildPathJob_Success]); + + static Float:vecStart[3]; + StructGetArray(sTask, BuildPathTask_StartPos, vecStart, sizeof(vecStart)); + + static Float:vecGoal[3]; + StructGetArray(sTask, BuildPathTask_GoalPos, vecGoal, sizeof(vecGoal)); + + new Struct:sNavPath = StructGetCell(sTask, BuildPathTask_Path); + @NavPath_Invalidate(sNavPath); + + new Struct:sEffectiveGoalArea = ( + g_rgBuildPathJob[BuildPathJob_Success] + ? g_rgBuildPathJob[BuildPathJob_GoalArea] + : g_rgBuildPathJob[BuildPathJob_ClosestArea] + ); + + new iSegmentCount = 0; + + if (g_rgBuildPathJob[BuildPathJob_StartArea] != g_rgBuildPathJob[BuildPathJob_GoalArea]) { + // Build path by following parent links + for (new Struct:sArea = sEffectiveGoalArea; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_Parent)) { + iSegmentCount++; + } + + // save room for endpoint + iSegmentCount = min(iSegmentCount, MAX_PATH_SEGMENTS - 1); + + if (iSegmentCount == 0) { + return false; + } + + } else { + iSegmentCount = 1; + } + + new Array:irgSegments = StructGetCell(sNavPath, NavPath_Segments); + ArrayResize(irgSegments, iSegmentCount); + StructSetCell(sNavPath, NavPath_SegmentCount, iSegmentCount); + + if (iSegmentCount > 1) { + // Prepare segments + static Struct:sArea; sArea = sEffectiveGoalArea; + + for (new i = iSegmentCount - 1; i >= 0; --i) { + static Struct:sSegment; sSegment = @PathSegment_Create(); + StructSetCell(sSegment, PathSegment_Area, sArea); + StructSetCell(sSegment, PathSegment_How, StructGetCell(sArea, NavArea_ParentHow)); + + static Float:vecPos[3]; + @NavArea_GetCenter(sArea, vecPos); + StructSetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); + + ArraySetCell(irgSegments, i, sSegment); + + sArea = StructGetCell(sArea, NavArea_Parent); + } + + if (!@NavPath_ComputePathPositions(sNavPath)) { + @NavPath_Invalidate(sNavPath); + return false; + } + + // append path end position + static Struct:sEndSegment; sEndSegment = @PathSegment_Create(); + StructSetCell(sEndSegment, PathSegment_Area, sEffectiveGoalArea); + StructSetArray(sEndSegment, PathSegment_Pos, vecGoal, sizeof(vecGoal)); + StructSetCell(sEndSegment, PathSegment_Pos, @NavArea_GetZ(sEffectiveGoalArea, vecGoal), 2); + StructSetCell(sEndSegment, PathSegment_How, NUM_TRAVERSE_TYPES); + @NavPath_PushSegment(sNavPath, sEndSegment); + } else { + @NavPath_BuildTrivialPath(sNavPath, vecStart, vecGoal); + } + + if (get_pcvar_bool(g_pCvarDebug)) { + new iSegmentCount = StructGetCell(sNavPath, NavPath_SegmentCount); + for (new i = 1; i < iSegmentCount; ++i) { + new Struct:sPrevSegment = ArrayGetCell(irgSegments, i - 1); + new Struct:sNextSegment = ArrayGetCell(irgSegments, i); + + static Float:vecSrc[3]; + StructGetArray(sPrevSegment, PathSegment_Pos, vecSrc, sizeof(vecSrc)); + + static Float:vecNext[3]; + StructGetArray(sNextSegment, PathSegment_Pos, vecNext, sizeof(vecNext)); + + static irgColor[3]; + irgColor[0] = floatround(255.0 * (1.0 - (float(i) / iSegmentCount))); + irgColor[1] = floatround(255.0 * (float(i) / iSegmentCount)); + irgColor[2] = 0; + + UTIL_DrawArrow(0, vecSrc, vecNext, irgColor, 255, 30); + } + } + + new iCbFuncId = StructGetCell(sTask, BuildPathTask_CbFuncId); + new iCbFuncPluginId = StructGetCell(sTask, BuildPathTask_CbFuncPluginId); + + if (iCbFuncId != -1 && callfunc_begin_i(iCbFuncId, iCbFuncPluginId)) { + callfunc_push_int(_:sTask); + callfunc_end(); + } + + return true; +} + +NavAreaBuildPathIteration() { + if (g_sNavAreaOpenList == Invalid_Struct) { + g_rgBuildPathJob[BuildPathJob_Finished] = true; + g_rgBuildPathJob[BuildPathJob_Success] = false; + return; + } + + // get next area to check + static Struct:sArea; sArea = NavAreaPopOpenList(); + + // check if we have found the goal area + if (sArea == g_rgBuildPathJob[BuildPathJob_GoalArea]) { + if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct) { + g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_GoalArea]; + } + + g_rgBuildPathJob[BuildPathJob_Finished] = true; + g_rgBuildPathJob[BuildPathJob_Success] = true; + + return; + } + + // search adjacent areas + static Array:irgFloorList; irgFloorList = @NavArea_GetAdjacentList(sArea, NORTH); + static iFloorIter; iFloorIter = 0; + + static NavDirType:iDir; + for (iDir = NORTH; iDir < NUM_DIRECTIONS;) { + // Get next adjacent area - either on floor or via ladder + // if exhausted adjacent connections in current direction, begin checking next direction + if (iFloorIter >= ArraySize(irgFloorList)) { + iDir++; + + if (iDir < NUM_DIRECTIONS) { + // start next direction + irgFloorList = @NavArea_GetAdjacentList(sArea, iDir); + iFloorIter = 0; + } + + continue; + } + + static Struct:newArea; newArea = ArrayGetCell(irgFloorList, iFloorIter, _:NavConnect_Area); + + iFloorIter++; + + // don't backtrack + if (newArea == sArea) { + continue; + } + + static Float:newCostSoFar; + newCostSoFar = 1.0; + + if (g_rgBuildPathJob[BuildPathJob_CostFuncId] != -1 && callfunc_begin_i(g_rgBuildPathJob[BuildPathJob_CostFuncId], g_rgBuildPathJob[BuildPathJob_CostFuncPluginId])) { + callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_Task]); + callfunc_push_int(_:newArea); + callfunc_push_int(_:sArea); + newCostSoFar = Float:callfunc_end(); + } + + // check if cost functor says this area is a dead-end + if (newCostSoFar < 0.0) { + continue; + } + + if ((@NavArea_IsOpen(newArea) || @NavArea_IsClosed(newArea)) && @NavArea_GetCostSoFar(newArea) <= newCostSoFar) { + // this is a worse path - skip it + // log_amx("[%d] this is a worse path - skip it", newArea); + continue; + } + + // compute estimate of distance left to go + static Float:vecNewAreaCenter[3]; + @NavArea_GetCenter(newArea, vecNewAreaCenter); + + static Float:newCostRemaining; newCostRemaining = xs_vec_distance(vecNewAreaCenter, g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); + + // track closest area to goal in case path fails + if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct && newCostRemaining < g_rgBuildPathJob[BuildPathJob_ClosestAreaDist]) { + g_rgBuildPathJob[BuildPathJob_ClosestArea] = newArea; + g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = newCostRemaining; + } + + @NavArea_SetParent(newArea, sArea, NavTraverseType:iDir); + @NavArea_SetCostSoFar(newArea, newCostSoFar); + @NavArea_SetTotalCost(newArea, newCostSoFar + newCostRemaining); + + if (@NavArea_IsClosed(newArea)) { + @NavArea_RemoveFromClosedList(newArea); + } + + if (@NavArea_IsOpen(newArea)) { + // area already on open list, update the list order to keep costs sorted + @NavArea_UpdateOnOpenList(newArea); + } else { + @NavArea_AddToOpenList(newArea); + } + } + + // we have searched this area + @NavArea_AddToClosedList(sArea); +} + +NavAreaBuildPathFrame() { + // if no job in progress then find new task to start + if (g_rgBuildPathJob[BuildPathJob_Task] == Invalid_Struct) { + if (g_irgBuildPathTasks != Invalid_Array && ArraySize(g_irgBuildPathTasks)) { + new Struct:sTask = ArrayGetCell(g_irgBuildPathTasks, 0); + ArrayDeleteItem(g_irgBuildPathTasks, 0); + NavAreaBuildPathRunTask(sTask); + } + + return; + } + + // current job finished, process + if (g_rgBuildPathJob[BuildPathJob_Finished]) { + if (!g_rgBuildPathJob[BuildPathJob_Terminated]) { + NavAreaBuildPathFinish(); + } + + @BuildPathTask_Destroy(g_rgBuildPathJob[BuildPathJob_Task]); + g_rgBuildPathJob[BuildPathJob_Task] = Invalid_Struct; + return; + } + + // do path finding iterations + new iIterationsNum = g_rgBuildPathJob[BuildPathJob_MaxIterations]; + for (new i = 0; i < iIterationsNum && !g_rgBuildPathJob[BuildPathJob_Finished]; ++i) { + NavAreaBuildPathIteration(); + } +} + +stock NavDirType:OppositeDirection(NavDirType:iDir) { + switch (iDir) { + case NORTH: return SOUTH; + case EAST: return WEST; + case SOUTH: return NORTH; + case WEST: return EAST; + } + + return NORTH; +} + +stock NavDirType:DirectionLeft(NavDirType:iDir) { + switch (iDir) { + case NORTH: return WEST; + case SOUTH: return EAST; + case EAST: return NORTH; + case WEST: return SOUTH; + } + + return NORTH; +} + +stock NavDirType:DirectionRight(NavDirType:iDir) { + switch (iDir) { + case NORTH: return EAST; + case SOUTH: return WEST; + case EAST: return SOUTH; + case WEST: return NORTH; + } + + return NORTH; +} + +stock bool:GetGroundHeight(const Float:vecPos[3], &Float:flHeight, pIgnoreEnt, Float:vecNormal[3] = {0.0, 0.0, 0.0}) { + enum GroundLayerInfo { + Float:GroundLayerInfo_ground, + Float:GroundLayerInfo_normal[3] + }; + + static Float:vecTo[3]; + vecTo[0] = vecPos[0]; + vecTo[1] = vecPos[1]; + vecTo[2] = vecPos[2] - 9999.9; + + new Float:vecFrom[3]; + + new pIgnore = pIgnoreEnt; + // new Float:ground = 0.0; + + static const Float:flMaxOffset = 100.0; + static const Float:flInc = 10.0; + const MAX_GROUND_LAYERS = 16; + + static rgLayer[MAX_GROUND_LAYERS][GroundLayerInfo]; + new iLayerCount = 0; + + static Float:flOffset; + for (flOffset = 1.0; flOffset < flMaxOffset; flOffset += flInc) { + xs_vec_copy(vecPos, vecFrom); + vecFrom[2] += flOffset; + + engfunc(EngFunc_TraceLine, vecFrom, vecTo, IGNORE_MONSTERS, pIgnore, g_pTrace); + + static Float:flFraction; + get_tr2(g_pTrace, TR_flFraction, flFraction); + + static bool:bStartSolid; bStartSolid = bool:get_tr2(g_pTrace, TR_StartSolid); + static pHit; pHit = get_tr2(g_pTrace, TR_pHit); + + static Float:vecPlaneNormal[3]; + get_tr2(g_pTrace, TR_vecPlaneNormal, vecPlaneNormal); + + static Float:vecEndPos[3]; + get_tr2(g_pTrace, TR_vecEndPos, vecEndPos); + + if (flFraction != 1.0 && pHit > 0) { + // ignoring any entities that we can walk through + if (IsEntityWalkable(pHit, WALK_THRU_DOORS | WALK_THRU_BREAKABLES)) { + pIgnore = pHit; + continue; + } + } + + if (!bStartSolid) { + if (iLayerCount == 0 || vecEndPos[2] > rgLayer[iLayerCount - 1][GroundLayerInfo_ground]) { + rgLayer[iLayerCount][GroundLayerInfo_ground] = vecEndPos[2]; + xs_vec_copy(vecPlaneNormal, rgLayer[iLayerCount][GroundLayerInfo_normal]); + iLayerCount++; + + if (iLayerCount == MAX_GROUND_LAYERS) { + break; + } + } + } + } + + if (!iLayerCount) { + return false; + } + + static i; + for (i = 0; i < iLayerCount - 1; i++) { + if (rgLayer[i + 1][GroundLayerInfo_ground] - rgLayer[i][GroundLayerInfo_ground] >= HalfHumanHeight) { + break; + } + } + + flHeight = rgLayer[i][GroundLayerInfo_ground]; + xs_vec_copy(rgLayer[i][GroundLayerInfo_normal], vecNormal); + + return true; +} + +stock bool:IsEntityWalkable(pEntity, iFlags) { + static szClassName[32]; + pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); + + // if we hit a door, assume its walkable because it will open when we touch it + if (equal(szClassName, "func_door") || equal(szClassName, "func_door_rotating")) { + return !!(iFlags & WALK_THRU_DOORS); + } else if (equal(szClassName, "func_breakable")) { + // if we hit a breakable object, assume its walkable because we will shoot it when we touch it + static Float:flTakeDamage; + pev(pEntity, pev_takedamage, flTakeDamage); + if (flTakeDamage == DAMAGE_YES) { + return !!(iFlags & WALK_THRU_BREAKABLES); + } + } + + return false; +} + +// Can we see this area? +// For now, if we can see any corner, we can see the area +// TODO: Need to check LOS to more than the corners for large and/or long areas +stock bool:IsAreaVisible(const Float:vecPos[3], Struct:sArea) { + static Float:vecCorner[3]; + for (new i = 0; i < _:NUM_CORNERS; i++) { + @NavArea_GetCorner(sArea, NavCornerType:i, vecCorner); + vecCorner[2] += 0.75 * HumanHeight; + + engfunc(EngFunc_TraceLine, vecPos, vecCorner, IGNORE_MONSTERS, nullptr, g_pTrace); + + static Float:flFraction; + get_tr2(g_pTrace, TR_flFraction, flFraction); + + if (flFraction == 1.0) { + // we can see this area + return true; + } + } + + return false; +} + +stock AddDirectionVector(Float:vecInput[3], NavDirType:iDir, Float:flAmount) { + switch (iDir) { + case NORTH: vecInput[1] -= flAmount; + case SOUTH: vecInput[1] += flAmount; + case EAST: vecInput[0] += flAmount; + case WEST: vecInput[0] -= flAmount; + } +} + +stock DirectionToVector2D(NavDirType:iDir, Float:vecOutput[2]) { + switch (iDir) { + case NORTH: { + vecOutput[0] = 0.0; + vecOutput[1] = -1.0; + } + case SOUTH: { + vecOutput[0] = 0.0; + vecOutput[1] = 1.0; + } + case EAST: { + vecOutput[0] = 1.0; + vecOutput[1] = 0.0; + } + case WEST: { + vecOutput[0] = -1.0; + vecOutput[1] = 0.0; + } + } +} + +stock Float:NormalizeInPlace(const Float:vecSrc[3], Float:vecOut[3]) { + new Float:flLen = xs_vec_len(vecSrc); + + if (flLen > 0) { + vecOut[0] = vecSrc[0] / flLen; + vecOut[1] = vecSrc[1] / flLen; + vecOut[2] = vecSrc[2] / flLen; + } else { + vecOut[0] = 0.0; + vecOut[1] = 0.0; + vecOut[2] = 1.0; + } + + return flLen; +} + +stock UTIL_DrawArrow(pPlayer, const Float:vecSrc[3], const Float:vecTarget[3], const irgColor[3] = {255, 255, 255}, iBrightness = 255, iLifeTime = 10, iWidth = 64) { + engfunc(EngFunc_MessageBegin, pPlayer ? MSG_ONE : MSG_ALL, SVC_TEMPENTITY, vecSrc, pPlayer); + write_byte(TE_BEAMPOINTS); + engfunc(EngFunc_WriteCoord, vecTarget[0]); + engfunc(EngFunc_WriteCoord, vecTarget[1]); + engfunc(EngFunc_WriteCoord, vecTarget[2] + 16.0); + engfunc(EngFunc_WriteCoord, vecSrc[0]); + engfunc(EngFunc_WriteCoord, vecSrc[1]); + engfunc(EngFunc_WriteCoord, vecSrc[2] + 16.0); + write_short(g_iArrowModelIndex); + write_byte(0); + write_byte(0); + write_byte(iLifeTime); + write_byte(iWidth); + write_byte(0); + write_byte(irgColor[0]); + write_byte(irgColor[1]); + write_byte(irgColor[2]); + write_byte(iBrightness); + write_byte(0); + message_end(); +} diff --git a/include/api_navsystem.inc b/include/api_navsystem.inc new file mode 100644 index 0000000..299f352 --- /dev/null +++ b/include/api_navsystem.inc @@ -0,0 +1,85 @@ +#if defined _api_navsystem_included + #endinput +#endif +#define _api_navsystem_included + +#pragma reqlib api_navsystem + +#include + +enum NavArea { + Invalid_NavArea +}; + +enum NavBuildPathTask { + Invalid_NavBuildPathTask = 0 +}; + +enum NavPath { + Invalid_NavPath = 0 +}; + +native Nav_Precache(); + +native Nav_GetAreaCount(); +native Nav_GetArea(iIndex); +native Nav_GetAreaById(iId); +native Nav_GetAreaFromGrid(Float:vecPos[3], Float:flBeneathLimit); +native Nav_WorldToGridX(Float:flValue); +native Nav_WorldToGridY(Float:flValue); +native NavArea:Nav_FindFirstAreaInDirection(const Float:vecStart[3], NavDirType:iDir, Float:flRange, Float:flBeneathLimit, pIgnoreEnt, Float:vecClosePos[3]); +native bool:Nav_IsAreaVisible(const Float:vecPos[3], NavArea:pArea); + +native Nav_Area_GetId(NavArea:pArea); +native NavAttributeType:Nav_Area_GetAttributes(NavArea:pArea); +native Nav_Area_GetCenter(NavArea:pArea, Float:vecOut[3]); +native bool:Nav_Area_Contains(NavArea:pArea, const Float:vecPoint[3]); +native bool:Nav_Area_IsCoplanar(NavArea:pArea, NavArea:pOther); +native Float:Nav_Area_GetZ(NavArea:pArea); +native Nav_Area_GetClosestPointOnArea(NavArea:pArea, const Float:vecPoint[3], const Float:vecOut[3]); +native Float:Nav_Area_GetDistanceSquaredToPoint(NavArea:pArea, const Float:vecPoint[3]); +native NavArea:Nav_Area_GetRandomAdjacentArea(NavArea:pArea, NavDirType:iDir); +native bool:Nav_Area_IsEdge(NavArea:pArea, NavDirType:iDir); +native bool:Nav_Area_IsConnected(NavArea:pArea, NavArea:pOther, NavDirType:iDir); +native Nav_Area_GetCorner(NavArea:pArea, NavCornerType:iCorner, Float:vecPos[3]); +native NavDirType:Nav_Area_ComputeDirection(NavArea:pArea, const Float:vecPoint[3]); +native Nav_Area_ComputePortal(NavArea:pAreas, NavArea:pOther, NavDirType:iDir, Float:vecCenter[3], &Float:flHalfWidth); +native bool:Nav_Area_IsOverlapping(NavArea:pArea, NavArea:pOther); +native bool:Nav_Area_IsOverlappingPoint(NavArea:pArea, const Float:vecPoint[3]); + +/** + * Use the A* algorithm to find the shortest path asynchronous + * + * The callback function should be prototyped as: + * + * public Float:(NavBuildPathTask:pTask) + * NavBuildPathTask:pTask - The handler of the current task + * + * + * The cost function should be prototyped as: + * + * public Float:(NavBuildPathTask:pTask, NavArea:nextArea, NavArea:prevArea) + * NavBuildPathTask:pTask - The handler of the current task + * NavArea:nextArea - Next area to check + * NavArea:prevArea - Previous area (Invalid_NavArea on fist call) + * The cost function should return a floating value as an estimatie of the step's cost + * If the cost function returns -1.0 for an area, that area is considered a dead end. + * + * @param Float:vecStart[3] Start origin + * @param Float:vecGoal[3] Goal origin + * @param szCbFunc[] Callback function + * @param pIgnoreEntity Ignore entity for tracelines + * @param iUserToken User integer value to identify the task in the future + * @param szCostFunc[] Cost function + * + * @return Task handler +*/ +native NavBuildPathTask:Nav_Path_Find(const Float:vecStart[3], const Float:vecGoal[3], const szCbFunc[], pIgnoreEntity, any:iUserToken, const szCostFunc[] = ""); +native bool:Nav_Path_FindTask_Abort(NavBuildPathTask:pTask); +native NavPath:Nav_Path_FindTask_GetPath(NavBuildPathTask:pTask); +native bool:Nav_Path_FindTask_IsSuccessed(NavBuildPathTask:pTask); +native any:Nav_Path_FindTask_GetUserToken(NavBuildPathTask:pTask); + +native Array:Nav_Path_GetSegments(NavPath:pPath); + +native Nav_Path_Segment_GetPos(NavPathSegment:pSegment, Float:vecOut[3]); diff --git a/include/api_navsystem_const.inc b/include/api_navsystem_const.inc new file mode 100644 index 0000000..4d9a384 --- /dev/null +++ b/include/api_navsystem_const.inc @@ -0,0 +1,83 @@ +#if defined _api_navsystem_const_included + #endinput +#endif +#define _api_navsystem_const_included + +#define NAV_MAGIC_NUMBER 0xFEEDFACE +#define NAV_VERSION 5 +#define MAX_AREA_TEAMS 2 +#define MAX_APPROACH_AREAS 16 +#define nullptr -1 +#define HASH_TABLE_SIZE 256 +#define MAX_PATH_SEGMENTS 256 + +#define UNDEFINED_PLACE 0 +#define ANY_PLACE 0xFFFF + +#define WALK_THRU_DOORS 0x01 +#define WALK_THRU_BREAKABLES 0x02 +#define WALK_THRU_EVERYTHING (WALK_THRU_DOORS | WALK_THRU_BREAKABLES) + +enum NavErrorType { + NAV_OK, + NAV_CANT_ACCESS_FILE, + NAV_INVALID_FILE, + NAV_BAD_FILE_VERSION, + NAV_CORRUPT_DATA, +}; + +enum NavAttributeType { + NAV_CROUCH = 0x01, // must crouch to use this node/area + NAV_JUMP = 0x02, // must jump to traverse this area + NAV_PRECISE = 0x04, // do not adjust for obstacles, just move along area + NAV_NO_JUMP = 0x08, // inhibit discontinuity jumping +}; + +enum NavDirType { + NORTH = 0, + EAST, + SOUTH, + WEST, + + NUM_DIRECTIONS +}; + +// Defines possible ways to move from one area to another +enum NavTraverseType { + // NOTE: First 4 directions MUST match NavDirType + GO_NORTH = 0, + GO_EAST, + GO_SOUTH, + GO_WEST, + GO_LADDER_UP, + GO_LADDER_DOWN, + GO_JUMP, + + NUM_TRAVERSE_TYPES +}; + +enum NavCornerType { + NORTH_WEST = 0, + NORTH_EAST, + SOUTH_EAST, + SOUTH_WEST, + + NUM_CORNERS +}; + +enum NavRelativeDirType { + FORWARD = 0, + RIGHT, + BACKWARD, + LEFT, + UP, + DOWN, + + NUM_RELATIVE_DIRECTIONS +}; + +enum LadderDirectionType { + LADDER_UP = 0, + LADDER_DOWN, + NUM_LADDER_DIRECTIONS +}; diff --git a/include/cellstruct.inc b/include/cellstruct.inc new file mode 100644 index 0000000..5816568 --- /dev/null +++ b/include/cellstruct.inc @@ -0,0 +1,76 @@ +#if defined _cellstruct_included + #endinput +#endif + +#define _cellstruct_included + +#include + +enum Struct { + Invalid_Struct = 0 +}; + +stock Struct:StructCreate(any:interface) { + new Struct:struct = Struct:ArrayCreate(_, interface); + ArrayResize(Array:struct, interface); + return struct; +} + +stock Struct:StructCreateFromArray(any:interface, const any:data[any:0]) { + new Struct:struct = StructCreate(interface); + StructSetArray(struct, 0, data, interface); + return struct; +} + +stock Struct:StructClone(const &Struct:which) { + return Struct:ArrayClone(Array:which); +} + +stock StructDestroy(&Struct:which) { + ArrayDestroy(Array:which); + which = Invalid_Struct; +} + +stock any:StructGetCell(const &Struct:which, any:item, any:block = 0, bool:asChar = false) { + return ArrayGetCell(Array:which, item + block, _, asChar); +} + +stock StructSetCell(const &Struct:which, any:item, any:value, any:block = 0, bool:asChar = false) { + ArraySetCell(Array:which, item + block, value, _, asChar); +} + +stock StructGetArray(const &Struct:which, any:item, any:output[any:0], any:size, any:block = 0) { + for (new i = 0; i < size; ++i) { + output[i] = StructGetCell(which, item, block + i); + } +} + +stock StructSetArray(const &Struct:which, any:item, const any:input[any:0], any:size, any:block = 0) { + for (new i = 0; i < size; ++i) { + StructSetCell(which, item, input[i], block + i); + } +} + +stock StructGetString(const &Struct:which, any:item, output[], any:size, any:block = 0) { + for (new i = 0; i < size; ++i) { + output[i] = StructGetCell(which, item, block + i); + + if (output[i] == '^0') { + break; + } + } +} + +stock DoNotUse:StructGetStringHandle(const &Struct:which, any:item, any:block = 0) { + return ArrayGetStringHandle(Array:which, item + block); +} + +stock StructSetString(const &Struct:which, any:item, const input[], any:size = -1, any:block = 0) { + for (new i = 0; input[i] != '^0'; ++i) { + if (size >= 0 && i >= size) { + break; + } + + StructSetCell(which, item, input[i], block + i); + } +} From ed291e7ceb4f2d44d8aa4f02c3ec8cda2109e4b7 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 6 Aug 2023 14:08:55 +0300 Subject: [PATCH 029/231] fix callback logic --- api_navsystem.sma | 236 +++++++++++++++++++++----------------- include/api_navsystem.inc | 6 +- 2 files changed, 135 insertions(+), 107 deletions(-) diff --git a/api_navsystem.sma b/api_navsystem.sma index 076362b..ef49d1b 100644 --- a/api_navsystem.sma +++ b/api_navsystem.sma @@ -109,7 +109,8 @@ enum BuildPathTask { BuildPathTask_IgnoreEntity, BuildPathTask_UserToken, Struct:BuildPathTask_Path, - bool:BuildPathTask_IsSuccessed + bool:BuildPathTask_IsSuccessed, + bool:BuildPathTask_IsTerminated }; enum BuildPathJob { @@ -122,7 +123,7 @@ enum BuildPathJob { Struct:BuildPathJob_ClosestArea, BuildPathJob_CostFuncId, BuildPathJob_CostFuncPluginId, - bool:BuildPathJob_Success, + bool:BuildPathJob_Successed, bool:BuildPathJob_Finished, bool:BuildPathJob_Terminated, BuildPathJob_MaxIterations, @@ -217,13 +218,16 @@ public plugin_natives() { register_native("Nav_Area_IsOverlapping", "Native_Area_IsOverlapping"); register_native("Nav_Area_IsOverlappingPoint", "Native_Area_IsOverlappingPoint"); + register_native("Nav_Path_IsValid", "Native_Path_IsValid"); + register_native("Nav_Path_GetSegments", "Native_Path_GetSegments"); + register_native("Nav_Path_Segment_GetPos", "Native_Path_Segment_GetPos"); + register_native("Nav_Path_Find", "Native_Path_Find"); register_native("Nav_Path_FindTask_GetUserToken", "Native_Path_FindTask_GetUserToken"); register_native("Nav_Path_FindTask_Abort", "Native_Path_FindTask_Abort"); register_native("Nav_Path_FindTask_GetPath", "Native_Path_FindTask_GetPath"); register_native("Nav_Path_FindTask_IsSuccessed", "Native_Path_FindTask_IsSuccessed"); - register_native("Nav_Path_GetSegments", "Native_Path_GetSegments"); - register_native("Nav_Path_Segment_GetPos", "Native_Path_Segment_GetPos"); + register_native("Nav_Path_FindTask_IsTerminated", "Native_Path_FindTask_IsTerminated"); } public server_frame() { @@ -368,12 +372,24 @@ public bool:Native_Path_FindTask_IsSuccessed(iPluginId, iArgc) { return StructGetCell(sTask, BuildPathTask_IsSuccessed); } +public bool:Native_Path_FindTask_IsTerminated(iPluginId, iArgc) { + new Struct:sTask = Struct:get_param(1); + + return StructGetCell(sTask, BuildPathTask_IsTerminated); +} + public Array:Native_Path_GetSegments(iPluginId, iArgc) { new Struct:sNavPath = Struct:get_param(1); return StructGetCell(sNavPath, NavPath_Segments); } +public bool:Native_Path_IsValid(iPluginId, iArgc) { + new Struct:sNavPath = Struct:get_param(1); + + return @NavPath_IsValid(sNavPath); +} + public Native_Path_Segment_GetPos(iPluginId, iArgc) { new Struct:sSegment = Struct:get_param(1); @@ -2192,6 +2208,7 @@ Struct:NavAreaBuildPath(const Float:vecStart[3], const Float:vecGoal[3], iCbFunc StructSetCell(sTask, BuildPathTask_IgnoreEntity, pIgnoreEnt); StructSetCell(sTask, BuildPathTask_UserToken, iUserToken); StructSetCell(sTask, BuildPathTask_IsSuccessed, false); + StructSetCell(sTask, BuildPathTask_IsTerminated, false); if (g_irgBuildPathTasks == Invalid_Array) { g_irgBuildPathTasks = ArrayCreate(); @@ -2207,7 +2224,7 @@ bool:NavAreaBuildPathAbortTask(Struct:sTask) { if (g_rgBuildPathJob[BuildPathJob_Task] == sTask) { g_rgBuildPathJob[BuildPathJob_Finished] = true; g_rgBuildPathJob[BuildPathJob_Terminated] = true; - g_rgBuildPathJob[BuildPathJob_Success] = false; + g_rgBuildPathJob[BuildPathJob_Successed] = false; return true; } @@ -2233,7 +2250,7 @@ bool:NavAreaBuildPathRunTask(Struct:sTask) { g_rgBuildPathJob[BuildPathJob_CostFuncPluginId] = StructGetCell(sTask, BuildPathTask_CostFuncPluginId); g_rgBuildPathJob[BuildPathJob_Finished] = false; g_rgBuildPathJob[BuildPathJob_Terminated] = false; - g_rgBuildPathJob[BuildPathJob_Success] = false; + g_rgBuildPathJob[BuildPathJob_Successed] = false; g_rgBuildPathJob[BuildPathJob_MaxIterations] = get_pcvar_num(g_pCvarMaxIterationsPerFrame); g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = 999999.0; g_rgBuildPathJob[BuildPathJob_ClosestArea] = Invalid_Struct; @@ -2247,7 +2264,7 @@ bool:NavAreaBuildPathRunTask(Struct:sTask) { if (g_rgBuildPathJob[BuildPathJob_StartArea] == g_rgBuildPathJob[BuildPathJob_GoalArea]) { @NavArea_SetParent(g_rgBuildPathJob[BuildPathJob_GoalArea], Invalid_Struct, NUM_TRAVERSE_TYPES); g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_GoalArea]; - g_rgBuildPathJob[BuildPathJob_Success] = true; + g_rgBuildPathJob[BuildPathJob_Successed] = true; g_rgBuildPathJob[BuildPathJob_Finished] = true; return true; } @@ -2280,7 +2297,7 @@ bool:NavAreaBuildPathRunTask(Struct:sTask) { if (flInitCost < 0.0) { g_rgBuildPathJob[BuildPathJob_Finished] = true; g_rgBuildPathJob[BuildPathJob_Terminated] = true; - g_rgBuildPathJob[BuildPathJob_Success] = false; + g_rgBuildPathJob[BuildPathJob_Successed] = false; return false; } @@ -2299,99 +2316,14 @@ bool:NavAreaBuildPathRunTask(Struct:sTask) { NavAreaBuildPathFinish() { new Struct:sTask = g_rgBuildPathJob[BuildPathJob_Task]; - StructSetCell(sTask, BuildPathTask_IsSuccessed, g_rgBuildPathJob[BuildPathJob_Success]); - - static Float:vecStart[3]; - StructGetArray(sTask, BuildPathTask_StartPos, vecStart, sizeof(vecStart)); - - static Float:vecGoal[3]; - StructGetArray(sTask, BuildPathTask_GoalPos, vecGoal, sizeof(vecGoal)); + StructSetCell(sTask, BuildPathTask_IsSuccessed, g_rgBuildPathJob[BuildPathJob_Successed]); + StructSetCell(sTask, BuildPathTask_IsTerminated, g_rgBuildPathJob[BuildPathJob_Terminated]); new Struct:sNavPath = StructGetCell(sTask, BuildPathTask_Path); @NavPath_Invalidate(sNavPath); - new Struct:sEffectiveGoalArea = ( - g_rgBuildPathJob[BuildPathJob_Success] - ? g_rgBuildPathJob[BuildPathJob_GoalArea] - : g_rgBuildPathJob[BuildPathJob_ClosestArea] - ); - - new iSegmentCount = 0; - - if (g_rgBuildPathJob[BuildPathJob_StartArea] != g_rgBuildPathJob[BuildPathJob_GoalArea]) { - // Build path by following parent links - for (new Struct:sArea = sEffectiveGoalArea; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_Parent)) { - iSegmentCount++; - } - - // save room for endpoint - iSegmentCount = min(iSegmentCount, MAX_PATH_SEGMENTS - 1); - - if (iSegmentCount == 0) { - return false; - } - - } else { - iSegmentCount = 1; - } - - new Array:irgSegments = StructGetCell(sNavPath, NavPath_Segments); - ArrayResize(irgSegments, iSegmentCount); - StructSetCell(sNavPath, NavPath_SegmentCount, iSegmentCount); - - if (iSegmentCount > 1) { - // Prepare segments - static Struct:sArea; sArea = sEffectiveGoalArea; - - for (new i = iSegmentCount - 1; i >= 0; --i) { - static Struct:sSegment; sSegment = @PathSegment_Create(); - StructSetCell(sSegment, PathSegment_Area, sArea); - StructSetCell(sSegment, PathSegment_How, StructGetCell(sArea, NavArea_ParentHow)); - - static Float:vecPos[3]; - @NavArea_GetCenter(sArea, vecPos); - StructSetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); - - ArraySetCell(irgSegments, i, sSegment); - - sArea = StructGetCell(sArea, NavArea_Parent); - } - - if (!@NavPath_ComputePathPositions(sNavPath)) { - @NavPath_Invalidate(sNavPath); - return false; - } - - // append path end position - static Struct:sEndSegment; sEndSegment = @PathSegment_Create(); - StructSetCell(sEndSegment, PathSegment_Area, sEffectiveGoalArea); - StructSetArray(sEndSegment, PathSegment_Pos, vecGoal, sizeof(vecGoal)); - StructSetCell(sEndSegment, PathSegment_Pos, @NavArea_GetZ(sEffectiveGoalArea, vecGoal), 2); - StructSetCell(sEndSegment, PathSegment_How, NUM_TRAVERSE_TYPES); - @NavPath_PushSegment(sNavPath, sEndSegment); - } else { - @NavPath_BuildTrivialPath(sNavPath, vecStart, vecGoal); - } - - if (get_pcvar_bool(g_pCvarDebug)) { - new iSegmentCount = StructGetCell(sNavPath, NavPath_SegmentCount); - for (new i = 1; i < iSegmentCount; ++i) { - new Struct:sPrevSegment = ArrayGetCell(irgSegments, i - 1); - new Struct:sNextSegment = ArrayGetCell(irgSegments, i); - - static Float:vecSrc[3]; - StructGetArray(sPrevSegment, PathSegment_Pos, vecSrc, sizeof(vecSrc)); - - static Float:vecNext[3]; - StructGetArray(sNextSegment, PathSegment_Pos, vecNext, sizeof(vecNext)); - - static irgColor[3]; - irgColor[0] = floatround(255.0 * (1.0 - (float(i) / iSegmentCount))); - irgColor[1] = floatround(255.0 * (float(i) / iSegmentCount)); - irgColor[2] = 0; - - UTIL_DrawArrow(0, vecSrc, vecNext, irgColor, 255, 30); - } + if (!g_rgBuildPathJob[BuildPathJob_Terminated]) { + NavAreaBuildPathSegments(); } new iCbFuncId = StructGetCell(sTask, BuildPathTask_CbFuncId); @@ -2401,14 +2333,12 @@ NavAreaBuildPathFinish() { callfunc_push_int(_:sTask); callfunc_end(); } - - return true; } NavAreaBuildPathIteration() { if (g_sNavAreaOpenList == Invalid_Struct) { g_rgBuildPathJob[BuildPathJob_Finished] = true; - g_rgBuildPathJob[BuildPathJob_Success] = false; + g_rgBuildPathJob[BuildPathJob_Successed] = false; return; } @@ -2422,7 +2352,7 @@ NavAreaBuildPathIteration() { } g_rgBuildPathJob[BuildPathJob_Finished] = true; - g_rgBuildPathJob[BuildPathJob_Success] = true; + g_rgBuildPathJob[BuildPathJob_Successed] = true; return; } @@ -2523,10 +2453,7 @@ NavAreaBuildPathFrame() { // current job finished, process if (g_rgBuildPathJob[BuildPathJob_Finished]) { - if (!g_rgBuildPathJob[BuildPathJob_Terminated]) { - NavAreaBuildPathFinish(); - } - + NavAreaBuildPathFinish(); @BuildPathTask_Destroy(g_rgBuildPathJob[BuildPathJob_Task]); g_rgBuildPathJob[BuildPathJob_Task] = Invalid_Struct; return; @@ -2539,6 +2466,105 @@ NavAreaBuildPathFrame() { } } +NavAreaBuildPathSegments() { + new Struct:sTask = g_rgBuildPathJob[BuildPathJob_Task]; + + new Struct:sNavPath = StructGetCell(sTask, BuildPathTask_Path); + @NavPath_Invalidate(sNavPath); + + static Float:vecStart[3]; + StructGetArray(sTask, BuildPathTask_StartPos, vecStart, sizeof(vecStart)); + + static Float:vecGoal[3]; + StructGetArray(sTask, BuildPathTask_GoalPos, vecGoal, sizeof(vecGoal)); + + new iSegmentCount = 0; + + new Struct:sEffectiveGoalArea = ( + g_rgBuildPathJob[BuildPathJob_Successed] + ? g_rgBuildPathJob[BuildPathJob_GoalArea] + : g_rgBuildPathJob[BuildPathJob_ClosestArea] + ); + + if (g_rgBuildPathJob[BuildPathJob_StartArea] != g_rgBuildPathJob[BuildPathJob_GoalArea]) { + // Build path by following parent links + for (new Struct:sArea = sEffectiveGoalArea; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_Parent)) { + iSegmentCount++; + } + + // save room for endpoint + iSegmentCount = min(iSegmentCount, MAX_PATH_SEGMENTS - 1); + + if (iSegmentCount == 0) { + return false; + } + + } else { + iSegmentCount = 1; + } + + new Array:irgSegments = StructGetCell(sNavPath, NavPath_Segments); + ArrayResize(irgSegments, iSegmentCount); + StructSetCell(sNavPath, NavPath_SegmentCount, iSegmentCount); + + if (iSegmentCount > 1) { + // Prepare segments + static Struct:sArea; sArea = sEffectiveGoalArea; + + for (new i = iSegmentCount - 1; i >= 0; --i) { + static Struct:sSegment; sSegment = @PathSegment_Create(); + StructSetCell(sSegment, PathSegment_Area, sArea); + StructSetCell(sSegment, PathSegment_How, StructGetCell(sArea, NavArea_ParentHow)); + + static Float:vecPos[3]; + @NavArea_GetCenter(sArea, vecPos); + StructSetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); + + ArraySetCell(irgSegments, i, sSegment); + + sArea = StructGetCell(sArea, NavArea_Parent); + } + + if (!@NavPath_ComputePathPositions(sNavPath)) { + @NavPath_Invalidate(sNavPath); + return false; + } + + // append path end position + static Struct:sEndSegment; sEndSegment = @PathSegment_Create(); + StructSetCell(sEndSegment, PathSegment_Area, sEffectiveGoalArea); + StructSetArray(sEndSegment, PathSegment_Pos, vecGoal, sizeof(vecGoal)); + StructSetCell(sEndSegment, PathSegment_Pos, @NavArea_GetZ(sEffectiveGoalArea, vecGoal), 2); + StructSetCell(sEndSegment, PathSegment_How, NUM_TRAVERSE_TYPES); + @NavPath_PushSegment(sNavPath, sEndSegment); + } else { + @NavPath_BuildTrivialPath(sNavPath, vecStart, vecGoal); + } + + if (get_pcvar_bool(g_pCvarDebug)) { + new iSegmentCount = StructGetCell(sNavPath, NavPath_SegmentCount); + for (new i = 1; i < iSegmentCount; ++i) { + new Struct:sPrevSegment = ArrayGetCell(irgSegments, i - 1); + new Struct:sNextSegment = ArrayGetCell(irgSegments, i); + + static Float:vecSrc[3]; + StructGetArray(sPrevSegment, PathSegment_Pos, vecSrc, sizeof(vecSrc)); + + static Float:vecNext[3]; + StructGetArray(sNextSegment, PathSegment_Pos, vecNext, sizeof(vecNext)); + + static irgColor[3]; + irgColor[0] = floatround(255.0 * (1.0 - (float(i) / iSegmentCount))); + irgColor[1] = floatround(255.0 * (float(i) / iSegmentCount)); + irgColor[2] = 0; + + UTIL_DrawArrow(0, vecSrc, vecNext, irgColor, 255, 30); + } + } + + return true; +} + stock NavDirType:OppositeDirection(NavDirType:iDir) { switch (iDir) { case NORTH: return SOUTH; diff --git a/include/api_navsystem.inc b/include/api_navsystem.inc index 299f352..dd62ede 100644 --- a/include/api_navsystem.inc +++ b/include/api_navsystem.inc @@ -47,6 +47,9 @@ native Nav_Area_ComputePortal(NavArea:pAreas, NavArea:pOther, NavDirType:iDir, F native bool:Nav_Area_IsOverlapping(NavArea:pArea, NavArea:pOther); native bool:Nav_Area_IsOverlappingPoint(NavArea:pArea, const Float:vecPoint[3]); +native bool:Nav_Path_IsValid(NavPath:pPath); +native Array:Nav_Path_GetSegments(NavPath:pPath); + /** * Use the A* algorithm to find the shortest path asynchronous * @@ -78,8 +81,7 @@ native NavBuildPathTask:Nav_Path_Find(const Float:vecStart[3], const Float:vecGo native bool:Nav_Path_FindTask_Abort(NavBuildPathTask:pTask); native NavPath:Nav_Path_FindTask_GetPath(NavBuildPathTask:pTask); native bool:Nav_Path_FindTask_IsSuccessed(NavBuildPathTask:pTask); +native bool:Nav_Path_FindTask_IsTerminated(NavBuildPathTask:pTask); native any:Nav_Path_FindTask_GetUserToken(NavBuildPathTask:pTask); -native Array:Nav_Path_GetSegments(NavPath:pPath); - native Nav_Path_Segment_GetPos(NavPathSegment:pSegment, Float:vecOut[3]); From 8e8b2f5055221089e25257686949e18b75afc8f9 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 7 Aug 2023 03:59:45 +0300 Subject: [PATCH 030/231] add sync job termination --- api_navsystem.sma | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/api_navsystem.sma b/api_navsystem.sma index ef49d1b..c61cf93 100644 --- a/api_navsystem.sma +++ b/api_navsystem.sma @@ -767,7 +767,7 @@ NavErrorType:@NavArea_PostLoadArea(const &Struct:this) { rgSpot[SpotEncounter_To][NavConnect_Area] = NavAreaGrid_GetNavAreaById(rgSpot[SpotEncounter_To][NavConnect_Id]); if (rgSpot[SpotEncounter_To][NavConnect_Area] == Invalid_Struct) { - log_amx("ERROR: Corrupt navigation data. Missing ^"to^" Navigation Area for Encounter Spot.^n"); + // log_amx("ERROR: Corrupt navigation data. Missing ^"to^" Navigation Area for Encounter Spot.^n"); error = NAV_CORRUPT_DATA; } @@ -2225,6 +2225,10 @@ bool:NavAreaBuildPathAbortTask(Struct:sTask) { g_rgBuildPathJob[BuildPathJob_Finished] = true; g_rgBuildPathJob[BuildPathJob_Terminated] = true; g_rgBuildPathJob[BuildPathJob_Successed] = false; + + // terminate task in the same frame + NavAreaBuildPathFrame(); + return true; } From d0c0ee1c3b7e5c0c78a7da67d24908cba2ce7887 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 9 Aug 2023 08:16:19 +0300 Subject: [PATCH 031/231] fix SetString method --- include/cellstruct.inc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/include/cellstruct.inc b/include/cellstruct.inc index 5816568..730ab4d 100644 --- a/include/cellstruct.inc +++ b/include/cellstruct.inc @@ -26,6 +26,10 @@ stock Struct:StructClone(const &Struct:which) { return Struct:ArrayClone(Array:which); } +stock StructSize(const &Struct:which) { + return ArraySize(Array:which); +} + stock StructDestroy(&Struct:which) { ArrayDestroy(Array:which); which = Invalid_Struct; @@ -66,11 +70,11 @@ stock DoNotUse:StructGetStringHandle(const &Struct:which, any:item, any:block = } stock StructSetString(const &Struct:which, any:item, const input[], any:size = -1, any:block = 0) { - for (new i = 0; input[i] != '^0'; ++i) { - if (size >= 0 && i >= size) { + for (new i = 0; i < size || size == -1; ++i) { + StructSetCell(which, item, input[i], block + i); + + if (input[i] == '^0') { break; } - - StructSetCell(which, item, input[i], block + i); } } From 8f6bbafb63cdc1a63db4265b4b54ce7108a1ecc1 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 9 Aug 2023 14:47:45 +0300 Subject: [PATCH 032/231] add inventory api --- api_player_inventory.sma | 355 +++++++++++++++++++++++++++++++ include/api_player_inventory.inc | 21 ++ include/nvault_array.inc | 210 ++++++++++++++++++ 3 files changed, 586 insertions(+) create mode 100644 api_player_inventory.sma create mode 100644 include/api_player_inventory.inc create mode 100644 include/nvault_array.inc diff --git a/api_player_inventory.sma b/api_player_inventory.sma new file mode 100644 index 0000000..ff5cad5 --- /dev/null +++ b/api_player_inventory.sma @@ -0,0 +1,355 @@ +#pragma semicolon 1 + +#include +#include +#include + +#include +#include + +#define VAULT_NAME "api_player_inventory" +#define VAULT_VERSION 1 + +#define PLUGIN "[API] Player Inventory" +#define VERSION "1.0.0" +#define AUTHOR "Hedgehog Fog" + +enum InventorySlot { InventorySlot_Item, InventorySlot_Type[32] }; + +new g_fwNewSlot; +new g_fwTakeSlot; +new g_fwSlotLoaded; +new g_fwSlotSaved; +new g_fwDestroy; + +new g_hVault; + +new g_rgszPlayerAuthId[MAX_PLAYERS + 1][32]; +new Array:g_irgPlayerInventories[MAX_PLAYERS + 1] = { Invalid_Array, ... }; + +public plugin_precache() { + g_hVault = OpenVault(); +} + +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); + + g_fwNewSlot = CreateMultiForward("PlayerInventory_Fw_NewSlot", ET_IGNORE, FP_CELL, FP_CELL); + g_fwTakeSlot = CreateMultiForward("PlayerInventory_Fw_TakeSlot", ET_IGNORE, FP_CELL, FP_CELL); + g_fwSlotLoaded = CreateMultiForward("PlayerInventory_Fw_SlotLoaded", ET_IGNORE, FP_CELL, FP_CELL); + g_fwSlotSaved = CreateMultiForward("PlayerInventory_Fw_SlotSaved", ET_IGNORE, FP_CELL, FP_CELL); + g_fwDestroy = CreateMultiForward("PlayerInventory_Fw_Destroy", ET_IGNORE); +} + +public plugin_end() { + ExecuteForward(g_fwDestroy); + nvault_close(g_hVault); +} + +public plugin_natives() { + register_library("api_player_inventory"); + + register_native("PlayerInventory_GetItem", "Native_GetItem"); + register_native("PlayerInventory_CheckItemType", "Native_CheckItemType"); + register_native("PlayerInventory_GetItemType", "Native_GetItemType"); + register_native("PlayerInventory_GiveItem", "Native_GiveItem"); + register_native("PlayerInventory_SetItem", "Native_SetItem"); + register_native("PlayerInventory_TakeItem", "Native_TakeItem"); + register_native("PlayerInventory_Size", "Native_Size"); +} + +/*--------------------------------[ Natives ]--------------------------------*/ + +public Struct:Native_GetItem(iPluginId, iArgc) { + new pPlayer = get_param(1); + new iSlot = get_param(2); + + new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[pPlayer], iSlot); + if (sSlot == Invalid_Struct) { + return Invalid_Struct; + } + + return StructGetCell(sSlot, InventorySlot_Item); +} + +public bool:Native_CheckItemType(iPluginId, iArgc) { + new pPlayer = get_param(1); + new iSlot = get_param(2); + + static szType[32]; + get_string(3, szType, charsmax(szType)); + + new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[pPlayer], iSlot); + if (sSlot == Invalid_Struct) { + return false; + } + + static szSlotType[32]; + StructGetString(sSlot, InventorySlot_Type, szSlotType, charsmax(szSlotType)); + + return !!equal(szType, szSlotType); +} + +public bool:Native_GetItemType(iPluginId, iArgc) { + new pPlayer = get_param(1); + new iSlot = get_param(2); + + new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[pPlayer], iSlot); + if (sSlot == Invalid_Struct) { + return false; + } + + static szType[32]; + StructGetString(sSlot, InventorySlot_Type, szType, charsmax(szType)); + + set_string(3, szType, get_param(4)); + + return true; +} + +public Native_GiveItem(iPluginId, iArgc) { + new pPlayer = get_param(1); + + static szType[32]; + get_string(2, szType, charsmax(szType)); + + new Struct:sItem = Struct:get_param(3); + + return @Player_GiveItem(pPlayer, szType, sItem); +} + +public Native_SetItem(iPluginId, iArgc) { + new pPlayer = get_param(1); + new iSlot = get_param(2); + + static szType[32]; + get_string(3, szType, charsmax(szType)); + + new Struct:sItem = Struct:get_param(4); + + @Player_SetItem(pPlayer, iSlot, szType, sItem); +} + +public Native_TakeItem(iPluginId, iArgc) { + new pPlayer = get_param(1); + new iSlot = get_param(2); + + return @Player_TakeItem(pPlayer, iSlot); +} + +public Native_Size(iPluginId, iArgc) { + new pPlayer = get_param(1); + + return ArraySize(g_irgPlayerInventories[pPlayer]); +} + +/*--------------------------------[ Forwards ]--------------------------------*/ + +public client_connect(pPlayer) { + if (g_irgPlayerInventories[pPlayer] != Invalid_Array) { + ArrayDestroy(g_irgPlayerInventories[pPlayer]); + } + + g_irgPlayerInventories[pPlayer] = ArrayCreate(); +} + +public client_authorized(pPlayer) { + get_user_authid(pPlayer, g_rgszPlayerAuthId[pPlayer], charsmax(g_rgszPlayerAuthId[])); + LoadPlayerInventory(pPlayer); +} + +public client_disconnected(pPlayer) { + SavePlayerInventory(pPlayer); +} + +/*--------------------------------[ Player Methods ]--------------------------------*/ + +@Player_GiveItem(this, const szType[], Struct:sItem) { + new Struct:sSlot = @InventorySlot_Create(this, szType, sItem); + + static szSavedType[32]; + StructGetString(sSlot, InventorySlot_Type, szSavedType, charsmax(szSavedType)); + + new iSlot = ArrayPushCell(g_irgPlayerInventories[this], sSlot); + ExecuteForward(g_fwNewSlot, _, this, iSlot); + + return iSlot; +} + +@Player_SetItem(this, iSlot, const szType[], Struct:sItem) { + new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[this], iSlot); + if (sSlot == Invalid_Struct) { + sSlot = @InventorySlot_Create(this, szType, sItem); + } else { + StructSetString(sSlot, InventorySlot_Type, szType); + StructSetCell(sSlot, InventorySlot_Item, sItem); + } +} + +@Player_TakeItem(this, iSlot) { + static iResult; + ExecuteForward(g_fwTakeSlot, iResult, this, iSlot); + + if (iResult != PLUGIN_CONTINUE) { + return false; + } + + new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[this], iSlot); + if (sSlot == Invalid_Struct) { + return false; + } + + @InventorySlot_Destroy(sSlot); + ArraySetCell(g_irgPlayerInventories[this], iSlot, Invalid_Struct); + + return true; +} + +/*--------------------------------[ Inventory Methods ]--------------------------------*/ + +Struct:@InventorySlot_Create(pPlayer, const szType[], Struct:sItem) { + new Struct:this = StructCreate(InventorySlot); + StructSetString(this, InventorySlot_Type, szType); + StructSetCell(this, InventorySlot_Item, sItem); + + return this; +} + +@InventorySlot_Destroy(&Struct:this) { + StructDestroy(this); +} + +/*--------------------------------[ Vault ]--------------------------------*/ + +OpenVault() { + new szVaultDir[256]; + get_datadir(szVaultDir, charsmax(szVaultDir)); + format(szVaultDir, charsmax(szVaultDir), "%s/vault", szVaultDir); + + static szVaultFilePath[256]; + format(szVaultFilePath, charsmax(szVaultFilePath), "%s/%s.vault", szVaultDir, VAULT_NAME); + + new bool:bNew = true; + + if (file_exists(szVaultFilePath)) { + new hVault = nvault_open(VAULT_NAME); + new iVersion = nvault_get(hVault, "_version"); + nvault_close(hVault); + + if (iVersion < VAULT_VERSION) { + log_amx("Invalid vault file. The vault file will be replaced!"); + + static szBacukupVaultFilePath[256]; + format(szBacukupVaultFilePath, charsmax(szBacukupVaultFilePath), "%s/%s.vault.backup%d", szVaultDir, VAULT_NAME, get_systime()); + + rename_file(szVaultFilePath, szBacukupVaultFilePath, 1); + } else { + bNew = false; + } + } + + new hVault = nvault_open(VAULT_NAME); + + if (bNew) { + static szVersion[4]; + num_to_str(VAULT_VERSION, szVersion, charsmax(szVersion)); + nvault_pset(hVault, "_version", szVersion); + } + + return hVault; +} + +LoadPlayerInventory(pPlayer) { + if (g_rgszPlayerAuthId[pPlayer][0] == '^0') { + return; + } + + ArrayClear(g_irgPlayerInventories[pPlayer]); + + static szKey[32]; + + format(szKey, charsmax(szKey), "%s_size", g_rgszPlayerAuthId[pPlayer]); + new iSize = nvault_get(g_hVault, szKey); + + //Save items + for (new iSlot = 0; iSlot < iSize; ++iSlot) { + format(szKey, charsmax(szKey), "%s_%i_item_type", g_rgszPlayerAuthId[pPlayer], iSlot); + + static szType[32]; + nvault_get(g_hVault, szKey, szType, charsmax(szType)); + + format(szKey, charsmax(szKey), "%s_%i_item_size", g_rgszPlayerAuthId[pPlayer], iSlot); + + new iItemSize = nvault_get(g_hVault, szKey); + + format(szKey, charsmax(szKey), "%s_%i_item", g_rgszPlayerAuthId[pPlayer], iSlot); + + static rgItem[1024]; + nvault_get_array(g_hVault, szKey, rgItem, iItemSize); + + new Struct:sItem = StructCreate(iItemSize); + StructSetArray(sItem, 0, rgItem, iItemSize); + + @Player_GiveItem(pPlayer, szType, sItem); + + ExecuteForward(g_fwSlotLoaded, _, pPlayer, iSlot); + } +} + +SavePlayerInventory(pPlayer) { + if (g_rgszPlayerAuthId[pPlayer][0] == '^0') { + return; + } + + new Array:irgInventory = g_irgPlayerInventories[pPlayer]; + + new iSize = ArraySize(irgInventory); + if (!iSize) { + return; + } + + static szKey[32]; + static szValue[32]; + static rgItem[1024]; + + //Save items + new iInventorySize = 0; + for (new i = 0; i < iSize; ++i) { + new Struct:sSlot = ArrayGetCell(irgInventory, i); + + if (sSlot == Invalid_Struct) { + continue; + } + + new Struct:sItem = StructGetCell(sSlot, InventorySlot_Item); + new iItemSize = StructSize(sItem); + + // item struct size + format(szKey, charsmax(szKey), "%s_%i_item_size", g_rgszPlayerAuthId[pPlayer], iInventorySize); + format(szValue, charsmax(szValue), "%d", iItemSize); + + nvault_set(g_hVault, szKey, szValue); + + // item struct + format(szKey, charsmax(szKey), "%s_%i_item", g_rgszPlayerAuthId[pPlayer], iInventorySize); + + StructGetArray(sItem, 0, rgItem, iItemSize); + nvault_set_array(g_hVault, szKey, rgItem, iItemSize); + + // item type + format(szKey, charsmax(szKey), "%s_%i_item_type", g_rgszPlayerAuthId[pPlayer], iInventorySize); + StructGetString(sSlot, InventorySlot_Type, szValue, charsmax(szValue)); + + nvault_set(g_hVault, szKey, szValue); + + iInventorySize++; + + ExecuteForward(g_fwSlotSaved, _, pPlayer, i); + } + + // save inventory size + format(szKey, charsmax(szKey), "%s_size", g_rgszPlayerAuthId[pPlayer]); + format(szValue, charsmax(szValue), "%i", iInventorySize); + + nvault_set(g_hVault, szKey, szValue); +} diff --git a/include/api_player_inventory.inc b/include/api_player_inventory.inc new file mode 100644 index 0000000..8c415ac --- /dev/null +++ b/include/api_player_inventory.inc @@ -0,0 +1,21 @@ +#if defined _api_player_inventory_included + #endinput +#endif +#define _api_player_inventory_included + +#pragma reqlib api_player_inventory + +native Struct:PlayerInventory_GetItem(pPlayer, iSlot); +native PlayerInventory_GetItemType(pPlayer, iSlot, szType[], iLen); +native PlayerInventory_CheckItemType(pPlayer, iSlot, const szType[]); +native PlayerInventory_GiveItem(pPlayer, const szType[], Struct:sItem); +native PlayerInventory_SetItem(pPlayer, iSlot, const szType[], Struct:sItem); +native PlayerInventory_TakeItem(pPlayer, iSlot); + +native PlayerInventory_Size(pPlayer); + +forward PlayerInventory_Fw_SlotLoaded(pPlayer, iSlot); +forward PlayerInventory_Fw_SlotSaved(pPlayer, iSlot); +forward Playerinventory_Fw_NewSlot(pPlayer, iSlot); +forward Playerinventory_Fw_TakeSlot(pPlayer, iSlot); +forward PlayerInventory_Fw_Destroy(); diff --git a/include/nvault_array.inc b/include/nvault_array.inc new file mode 100644 index 0000000..fe24fd5 --- /dev/null +++ b/include/nvault_array.inc @@ -0,0 +1,210 @@ + +/* + nVault Array + v0.2 + by bugsy +*/ + +/* Change log + v0.1 + - Initial release as a stand-alone include. These functions were initially included as part of + nvault utility but I decided to break them apart since these functions aren't quite utility + functions, they are an extension of nVault base functionality to save/load data. + - Added nvault_isarray() and nvault_arraysize(). + + v0.2 + - Added checking while loading the array data in nvault_read_array() to make sure the data + is nvault_set_array() data. If the data is not array data, the plugin will fail. If the scripter + sees this error in logs, then he is attempting to read regular text data as an array which + should not be attempted. There is also the nvault_isarray() function that can be used to + check the data, but this shouldn't be necessary if the plugin was written properly. +*/ + +#if defined _nvault_array_included + #endinput +#endif +#define _nvault_array_included + +#if !defined _nvault_included + #include +#endif + +//******************************************************************************************** +// Increase this value if your plugin throws the below error: +// "Array size too large, you must increase NVAULT_ARRAY_MAXARRAYSIZE in nvault_array.inc" + +const _NVAULT_ARRAY_MAXARRAYSIZE = 500; +//******************************************************************************************** + +const _NVAULT_ARRAY_CELLSIZE = 5; +const _NVAULT_ARRAY_BUFFERSIZE = ( ( _NVAULT_ARRAY_MAXARRAYSIZE * _NVAULT_ARRAY_CELLSIZE ) + 1 ); +const _NVAULT_ARRAY_BYTEMAP = 0b11110000; +const _NVAULT_ARRAY_NULLBYTE = 0b10101010; + +/* Description: Set array data in a vault + + Param(s): + vault - Vault file handle ID that was returned by nvault_open(). Do not pass an nvault utility file ID. + key[] - Key for data to store. + array[] - Array of data to store. + size - Size of array to store (use sizeof(array)). + + Return value: 1 on success, 0 on failure. + + Comments: None. +*/ +stock nvault_set_array( vault , const key[] , const any:array[] , size ) +{ + new iArrayPos , iOutputPos , iValue[ 1 ] , szString[ _NVAULT_ARRAY_BUFFERSIZE ]; + + if ( size > _NVAULT_ARRAY_MAXARRAYSIZE ) + set_fail_state( "[nVault Array] Array size too large, you must increase NVAULT_ARRAY_MAXARRAYSIZE in nvault_array.inc." ); + + while ( ( iArrayPos < size ) && ( iOutputPos < charsmax( szString ) ) ) + { + iValue[ 0 ] = array[ iArrayPos++ ]; + + if ( !( cellmin <= iValue[ 0 ] <= cellmax ) ) + set_fail_state( "[nVault Array] Value exceeds valid long value range." ); + + szString[ iOutputPos++ ] = _nvault_array_byte_map( iValue ); + + for ( new i = 0 ; i < 4 ; i++ ) + szString[ iOutputPos++ ] = !iValue{ i } ? _NVAULT_ARRAY_NULLBYTE : iValue{ i }; + } + + szString[ iOutputPos ] = EOS; + + return nvault_set( vault , key , szString ); +} + +/* Description: Get array data in a vault + + Param(s): + vault - Vault file handle ID that was returned by nvault_open(). Do not pass an nvault utility file ID. + key[] - Key for record to retrieve + array[] - Array to store retrieved data in. + size - Size of array that data is being retrieved in. + timestamp - Timestamp of record (passed by reference) + + Return value: The number of array elements that were stored in the nvault array record. + + Comments: Do not read an nvault record as an array when it was not stored with nvault_set_array().. +*/ +stock nvault_get_array( vault , const key[] , any:array[] , size , ×tamp=0 ) +{ + new iStringPos , iArrayPos , iValue[ 1 ] , bmByteMap , szString[ _NVAULT_ARRAY_BUFFERSIZE ]; + + if ( size > _NVAULT_ARRAY_MAXARRAYSIZE ) + set_fail_state( "[nVault Array] Array size too large, you must increase _NVAULT_ARRAY_MAXARRAYSIZE in nvault_array.inc." ); + + //Read data from nvault. Switched from nvault_get() to nvault_lookup() to allow timestamp retrieval. + if ( nvault_lookup( vault , key , szString , charsmax( szString ) , timestamp ) ) + { + //Each individual nvault array value consumes 5 characters. If the length of the string mod 5 is not 0 then + //the data is not array data. + if ( strlen( szString ) % 5 ) + set_fail_state( "[nVault Array] Can only use nvault_get_array() on data that was saved using nvault_set_array()." ); + + //Loop through the string, making sure the index of the array and string is within boundaries. + while ( szString[ iStringPos ] && ( iStringPos < charsmax( szString ) ) && ( iArrayPos < size ) ) + { + //Every 5th character of the string is a byte-map which holds a boolean in bits 1-4 for whether or not + //the following 4 characters are null. Bits 5-8 are set to constant 1 so these bits can be checked at each + //iteration to make sure they exist. If they do not, then the data is not nvault array data. + //[1111 0000] : 1's are always 1, 0's are booleans for whether or not adjacent bytes are null. + if ( ( ( bmByteMap = szString[ iStringPos++ ] ) & _NVAULT_ARRAY_BYTEMAP ) != _NVAULT_ARRAY_BYTEMAP ) + set_fail_state( "[nVault Array] Can only use nvault_get_array() on data that was saved using nvault_set_array()." ); + + //Load byte value in cell. If the byte map says it is null, set it to null (0), otherwise set it so the + //value stored in the byte. + for ( new i = 0 ; i < 4 ; i++ ) + { + iValue{ i } = bmByteMap & ( 1 << i ) ? szString[ iStringPos ] : 0; + iStringPos++; + } + + //Assign value to array. + array[ iArrayPos++ ] = iValue[ 0 ]; + } + } + + return iArrayPos; +} + +/* Description: Check if an nvault entry is an array + + Param(s): + vault - Vault file handle ID that was returned by nvault_open(). Do not pass an nvault utility file ID. + key[] - Key for record to check + + Return value: true / false +*/ +stock bool:nvault_isarray( vault , const key[] ) +{ + new szData[ _NVAULT_ARRAY_BUFFERSIZE ] , iTS , iDataLen , bool:bRetVal; + + if ( nvault_lookup( vault , key , szData , charsmax( szData ) , iTS ) && ( iDataLen = strlen( szData ) ) ) + { + bRetVal = true; + + for ( new i = 0 ; i < iDataLen ; i += _NVAULT_ARRAY_CELLSIZE ) + { + if ( ( szData[ i ] & _NVAULT_ARRAY_BYTEMAP ) != _NVAULT_ARRAY_BYTEMAP ) + { + bRetVal = false; + break; + } + } + } + + return bRetVal; +} + +/* Description: Get the size of an nvault array + + Param(s): + vault - Vault file handle ID that was returned by nvault_open(). Do not pass an nvault utility file ID. + key[] - Key for record to check + + Return value: 0 = Record does not exist or is not an nvault array record + >0 = How large the array is (in cells) +*/ +stock nvault_arraysize( vault , const key[] ) +{ + new szData[ _NVAULT_ARRAY_BUFFERSIZE ] , iTS , iDataLen , bool:bIsArray , iRetVal; + + if ( nvault_lookup( vault , key , szData , charsmax( szData ) , iTS ) && ( iDataLen = strlen( szData ) ) ) + { + if ( ( iDataLen < charsmax( szData ) ) && !( iRetVal % _NVAULT_ARRAY_CELLSIZE ) ) + { + bIsArray = true; + + for ( new i = 0 ; i < iDataLen ; i += _NVAULT_ARRAY_CELLSIZE ) + { + if ( ( szData[ i ] & _NVAULT_ARRAY_BYTEMAP ) != _NVAULT_ARRAY_BYTEMAP ) + { + bIsArray = false; + break; + } + } + + if ( bIsArray == true ) + { + iRetVal = ( iDataLen / _NVAULT_ARRAY_CELLSIZE ); + } + } + } + + return iRetVal; +} + +stock _nvault_array_byte_map( iValue[ 1 ] ) +{ + new iOut[ 1 ] = { _NVAULT_ARRAY_BYTEMAP }; + + for ( new i = 0 ; i < 4 ; i++) + iOut[ 0 ] |= !iValue{ i } ? 0 : ( 1 << i ); + + return iOut[ 0 ]; +} From 12cf015ba2eeaabef07400e98cc69d7878e670c7 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 9 Aug 2023 14:47:54 +0300 Subject: [PATCH 033/231] add cosmetics api --- api_player_cosmetics.sma | 242 +++++++++++++++++++++++++++++++ include/api_player_cosmetics.inc | 9 ++ include/command_util.inc | 108 ++++++++++++++ 3 files changed, 359 insertions(+) create mode 100644 api_player_cosmetics.sma create mode 100644 include/api_player_cosmetics.inc create mode 100644 include/command_util.inc diff --git a/api_player_cosmetics.sma b/api_player_cosmetics.sma new file mode 100644 index 0000000..91e4fc6 --- /dev/null +++ b/api_player_cosmetics.sma @@ -0,0 +1,242 @@ +#pragma semicolon 1 + +#include +#include +#include +#include + +#include + +#tryinclude + +#define PLUGIN "[API] Player Cosmetics" +#define VERSION "1.0.0" +#define AUTHOR "Hedgehog Fog" + +#define COSMETIC_CLASSNAME "_cosmetic" + +new Trie:g_itPlayerCosmetics[MAX_PLAYERS + 1]; +new g_iszCosmeticClassName; + +new Float:g_rgflPlayerNextRenderingUpdate[MAX_PLAYERS + 1]; + +public plugin_precache() { + g_iszCosmeticClassName = engfunc(EngFunc_AllocString, "info_target"); +} + +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); + + RegisterHam(Ham_Think, "info_target", "HamHook_Target_Think", .Post = 0); + + register_concmd("player_cosmetic_equip", "Command_Equip", ADMIN_CVAR); + register_concmd("player_cosmetic_unequip", "Command_Unequip", ADMIN_CVAR); +} + +public plugin_natives() { + register_library("api_player_cosmetic"); + register_native("PlayerCosmetic_Equip", "Native_Equip"); + register_native("PlayerCosmetic_Unequip", "Native_Unquip"); + register_native("PlayerCosmetic_IsEquiped", "Native_IsEquiped"); + register_native("PlayerCosmetic_GetEntity", "Native_GetEntity"); +} + +public client_connect(pPlayer) { + g_itPlayerCosmetics[pPlayer] = TrieCreate(); + g_rgflPlayerNextRenderingUpdate[pPlayer] = get_gametime(); +} + +public client_disconnected(pPlayer) { + for (new TrieIter:iIterator = TrieIterCreate(g_itPlayerCosmetics[pPlayer]); !TrieIterEnded(iIterator); TrieIterNext(iIterator)) { + static pCosmetic; + TrieIterGetCell(iIterator, pCosmetic); + @PlayerCosmetic_Destroy(pCosmetic); + } + + TrieDestroy(g_itPlayerCosmetics[pPlayer]); +} + +public Native_Equip(iPluginId, iArgc) { + new pPlayer = get_param(1); + new iModelIndex = get_param(2); + + return @Player_EquipCosmetic(pPlayer, iModelIndex); +} + +public Native_Unquip(iPluginId, iArgc) { + new pPlayer = get_param(1); + new iModelIndex = get_param(2); + + return @Player_UnequipCosmetic(pPlayer, iModelIndex); +} + +public Native_IsEquiped(iPluginId, iArgc) { + new pPlayer = get_param(1); + new iModelIndex = get_param(2); + + return @Player_IsCosmeticEquiped(pPlayer, iModelIndex); +} + +public Native_GetEntity(iPluginId, iArgc) { + new pPlayer = get_param(1); + new iModelIndex = get_param(2); + + return @Player_GetCosmeticEntity(pPlayer, iModelIndex); +} + +public Command_Equip(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 2)) { + return PLUGIN_HANDLED; + } + + static szTarget[32]; + read_argv(1, szTarget, charsmax(szTarget)); + + static szModel[256]; + read_argv(2, szModel, charsmax(szModel)); + + new iTarget = CMD_RESOLVE_TARGET(pPlayer, szTarget); + new iModelIndex = engfunc(EngFunc_ModelIndex, szModel); + + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + if (CMD_SHOULD_TARGET_PLAYER(pPlayer, iTarget)) { + @Player_EquipCosmetic(pPlayer, iModelIndex); + } + } + + return PLUGIN_HANDLED; +} + +public Command_Unequip(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 2)) { + return PLUGIN_HANDLED; + } + + static szTarget[32]; + read_argv(1, szTarget, charsmax(szTarget)); + + static szModel[256]; + read_argv(2, szModel, charsmax(szModel)); + + new iTarget = CMD_RESOLVE_TARGET(pPlayer, szTarget); + new iModelIndex = engfunc(EngFunc_ModelIndex, szModel); + + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + if (CMD_SHOULD_TARGET_PLAYER(pPlayer, iTarget)) { + @Player_UnequipCosmetic(pPlayer, iModelIndex); + } + } + + return PLUGIN_HANDLED; +} + +public HamHook_Target_Think(pEntity) { + static szClassName[32]; + pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); + + if (equal(szClassName, COSMETIC_CLASSNAME)) { + @PlayerCosmetic_Think(pEntity); + } +} + +@Player_EquipCosmetic(this, iModelIndex) { + if (g_itPlayerCosmetics[this] == Invalid_Trie) { + return -1; + } + + static szModelIndex[8]; + num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); + + new pCosmetic = -1; + if (TrieKeyExists(g_itPlayerCosmetics[this], szModelIndex)) { + TrieGetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic); + } else { + pCosmetic = @PlayerCosmetic_Create(this, iModelIndex); + TrieSetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic); + } + + return pCosmetic; +} + +bool:@Player_UnequipCosmetic(this, iModelIndex) { + if (g_itPlayerCosmetics[this] == Invalid_Trie) { + return false; + } + + static szModelIndex[8]; + num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); + + static pCosmetic; + if (!TrieGetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic)) { + return false; + } + + @PlayerCosmetic_Destroy(pCosmetic); + TrieDeleteKey(g_itPlayerCosmetics[this], szModelIndex); + + return true; +} + +bool:@Player_IsCosmeticEquiped(this, iModelIndex) { + if (g_itPlayerCosmetics[this] == Invalid_Trie) { + return false; + } + + static szModelIndex[8]; + num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); + + return TrieKeyExists(g_itPlayerCosmetics[this], szModelIndex); +} + +@Player_GetCosmeticEntity(this, iModelIndex) { + if (g_itPlayerCosmetics[this] == Invalid_Trie) { + return -1; + } + + static szModelIndex[8]; + num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); + + static pCosmetic; + if (!TrieGetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic)) { + return -1; + } + + return pCosmetic; +} + +@PlayerCosmetic_Create(pPlayer, iModelIndex) { + new this = engfunc(EngFunc_CreateNamedEntity, g_iszCosmeticClassName); + + set_pev(this, pev_classname, COSMETIC_CLASSNAME); + set_pev(this, pev_movetype, MOVETYPE_FOLLOW); + set_pev(this, pev_aiment, pPlayer); + set_pev(this, pev_owner, pPlayer); + set_pev(this, pev_modelindex, iModelIndex); + + set_pev(this, pev_nextthink, get_gametime()); + + return this; +} + +@PlayerCosmetic_Think(this) { + new pOwner = pev(this, pev_owner); + + static iRenderMode; iRenderMode = pev(pOwner, pev_rendermode); + static iRenderFx; iRenderFx = pev(pOwner, pev_renderfx); + static Float:flRenderAmt; pev(pOwner, pev_renderamt, flRenderAmt); + static Float:rgflRenderColor[3]; pev(pOwner, pev_rendercolor, rgflRenderColor); + + set_pev(this, pev_rendermode, iRenderMode); + set_pev(this, pev_renderamt, flRenderAmt); + set_pev(this, pev_renderfx, iRenderFx); + set_pev(this, pev_rendercolor, rgflRenderColor); + + set_pev(this, pev_nextthink, get_gametime() + 0.1); +} + +@PlayerCosmetic_Destroy(this) { + set_pev(this, pev_movetype, MOVETYPE_NONE); + set_pev(this, pev_aiment, 0); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); + dllfunc(DLLFunc_Think, this); +} diff --git a/include/api_player_cosmetics.inc b/include/api_player_cosmetics.inc new file mode 100644 index 0000000..8350560 --- /dev/null +++ b/include/api_player_cosmetics.inc @@ -0,0 +1,9 @@ +#if defined _api_player_cosmetic_included + #endinput +#endif +#define _api_player_cosmetic_included + +native PlayerCosmetic_Equip(pPlayer, iModelIndex); +native bool:PlayerCosmetic_Unequip(pPlayer, iModelIndex); +native bool:PlayerCosmetic_IsEquiped(pPlayer, iModelIndex); +native PlayerCosmetic_GetEntity(pPlayer, iModelIndex); diff --git a/include/command_util.inc b/include/command_util.inc new file mode 100644 index 0000000..1be3574 --- /dev/null +++ b/include/command_util.inc @@ -0,0 +1,108 @@ +#if defined _command_util_included + #endinput +#endif +#define _command_util_included + +#include + +enum (+= -1) { + CMD_TARGET_TEAM_ALL = 0, + CMD_TARGET_ALIVE, + CMD_TARGET_DEAD, + CMD_TARGET_TEAM_T, + CMD_TARGET_TEAM_CT, + CMD_TARGET_TEAM_T_ALIVE, + CMD_TARGET_TEAM_CT_ALIVE, + CMD_TARGET_TEAM_T_DEAD, + CMD_TARGET_TEAM_CT_DEAD +}; + +stock CMD_RESOLVE_TARGET(pPlayer, const szTarget[]) { + if (szTarget[0] == '@') { + if (equal(szTarget[1], "me")) { + return pPlayer; + } else if (equal(szTarget[1], "all")) { + return CMD_TARGET_TEAM_ALL; + } else if (equal(szTarget[1], "alive")) { + return CMD_TARGET_ALIVE; + } else if (equal(szTarget[1], "dead")) { + return CMD_TARGET_DEAD; + } else if (equal(szTarget[1], "ct")) { + return CMD_TARGET_TEAM_CT; + } else if (equal(szTarget[1], "t")) { + return CMD_TARGET_TEAM_T; + } else if (equal(szTarget[1], "t_alive")) { + return CMD_TARGET_TEAM_T_ALIVE; + } else if (equal(szTarget[1], "ct_alive")) { + return CMD_TARGET_TEAM_CT_ALIVE; + } else if (equal(szTarget[1], "t_dead")) { + return CMD_TARGET_TEAM_T_DEAD; + } else if (equal(szTarget[1], "ct_dead")) { + return CMD_TARGET_TEAM_CT_DEAD; + } + } else if (szTarget[0] == '#') { + return find_player("k", str_to_num(szTarget[1])); + } else { + return find_player("b", szTarget); + } + + return 0; +} + +stock bool:CMD_SHOULD_TARGET_PLAYER(pPlayer, iTarget) { + if (iTarget == pPlayer) { + return true; + } + + if (!is_user_connected(pPlayer)) { + return false; + } + + new bool:bShouldBeAlive = ( + iTarget == CMD_TARGET_DEAD || + iTarget == CMD_TARGET_TEAM_T_ALIVE || + iTarget == CMD_TARGET_TEAM_CT_ALIVE + ); + + new bool:bShouldBeDead = ( + iTarget == CMD_TARGET_DEAD || + iTarget == CMD_TARGET_TEAM_T_DEAD || + iTarget == CMD_TARGET_TEAM_CT_DEAD + ); + + new bool:bShouldBeT = ( + iTarget == CMD_TARGET_TEAM_T || + iTarget == CMD_TARGET_TEAM_T_ALIVE || + iTarget == CMD_TARGET_TEAM_T_DEAD + ); + + new bool:bShouldBeCT = ( + iTarget == CMD_TARGET_TEAM_CT || + iTarget == CMD_TARGET_TEAM_CT || + iTarget == CMD_TARGET_TEAM_CT + ); + + if (cstrike_running()) { + #if AMXX_VERSION_NUM > 182 + new iTeam = get_ent_data(pPlayer, "CBasePlayer", "m_iTeam"); + + if (bShouldBeT && iTeam != 1) { + return false; + } + + if (bShouldBeCT && iTeam != 2) { + return false; + } + #endif + } + + if (bShouldBeAlive && !is_user_alive(pPlayer)) { + return false; + } + + if (bShouldBeDead && is_user_alive(pPlayer)) { + return false; + } + + return true; +} From 1bb527247da17ec889957fe4e35c21f6a1a072be Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 9 Aug 2023 15:12:49 +0300 Subject: [PATCH 034/231] fix api headers --- include/api_player_camera.inc | 2 ++ include/api_player_cosmetics.inc | 2 ++ 2 files changed, 4 insertions(+) diff --git a/include/api_player_camera.inc b/include/api_player_camera.inc index 1ea1459..2333cfd 100644 --- a/include/api_player_camera.inc +++ b/include/api_player_camera.inc @@ -3,6 +3,8 @@ #endif #define _api_player_camera_included +#pragma reqlib api_player_camera + native PlayerCamera_Activate(pPlayer); native PlayerCamera_Deactivate(pPlayer); native bool:PlayerCamera_IsActive(pPlayer); diff --git a/include/api_player_cosmetics.inc b/include/api_player_cosmetics.inc index 8350560..3cc9f4f 100644 --- a/include/api_player_cosmetics.inc +++ b/include/api_player_cosmetics.inc @@ -3,6 +3,8 @@ #endif #define _api_player_cosmetic_included +#pragma reqlib api_player_cosmetic + native PlayerCosmetic_Equip(pPlayer, iModelIndex); native bool:PlayerCosmetic_Unequip(pPlayer, iModelIndex); native bool:PlayerCosmetic_IsEquiped(pPlayer, iModelIndex); From 7bccbe1fff739325bd78734168e3ba07c620c79f Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 9 Aug 2023 18:46:45 +0300 Subject: [PATCH 035/231] fix think --- api_custom_entities.sma | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index 3eea265..f01ddee 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -508,6 +508,10 @@ bool:@Entity_IsCustom(this) { @Entity_Init(this); } + if (!pev_valid(this) || pev(this, pev_flags) & FL_KILLME) { + return; + } + new iId = GetPDataMember(itPData, CE_MEMBER_ID); new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); @@ -616,11 +620,17 @@ bool:@Entity_IsCustom(this) { } @Entity_Think(this) { + if (pev(this, pev_flags) & FL_KILLME) { + return; + } + new Float:flGameTime = get_gametime(); new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); + ExecuteHookFunction(CEFunction_Think, iId, this); + new iDeadFlag = pev(this, pev_deadflag); switch (iDeadFlag) { case DEAD_NO: { @@ -632,15 +642,10 @@ bool:@Entity_IsCustom(this) { case DEAD_RESPAWNABLE: { new Float:flNextRespawn = GetPDataMember(itPData, CE_MEMBER_NEXTRESPAWN); if (flNextRespawn <= flGameTime) { - set_pev(this, pev_deadflag, DEAD_NO); - set_pev(this, pev_effects, pev(this, pev_effects) & ~EF_NODRAW); - set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); dllfunc(DLLFunc_Spawn, this); } } } - - ExecuteHookFunction(CEFunction_Think, iId, this); } @Entity_Touch(this, pToucher) { From bb044e412722dbc2584c65602d412291e373dc71 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 9 Aug 2023 19:33:47 +0300 Subject: [PATCH 036/231] fix inventory slots saving --- api_player_inventory.sma | 71 ++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 31 deletions(-) diff --git a/api_player_inventory.sma b/api_player_inventory.sma index ff5cad5..4084449 100644 --- a/api_player_inventory.sma +++ b/api_player_inventory.sma @@ -266,29 +266,31 @@ LoadPlayerInventory(pPlayer) { ArrayClear(g_irgPlayerInventories[pPlayer]); - static szKey[32]; + new szKey[32]; + new szValue[1024]; format(szKey, charsmax(szKey), "%s_size", g_rgszPlayerAuthId[pPlayer]); - new iSize = nvault_get(g_hVault, szKey); + new iInventorySize = nvault_get(g_hVault, szKey); //Save items - for (new iSlot = 0; iSlot < iSize; ++iSlot) { - format(szKey, charsmax(szKey), "%s_%i_item_type", g_rgszPlayerAuthId[pPlayer], iSlot); + for (new iSlot = 0; iSlot < iInventorySize; ++iSlot) { + // item type + format(szKey, charsmax(szKey), "%s_item_%i_type", g_rgszPlayerAuthId[pPlayer], iSlot); - static szType[32]; + new szType[32]; nvault_get(g_hVault, szKey, szType, charsmax(szType)); - format(szKey, charsmax(szKey), "%s_%i_item_size", g_rgszPlayerAuthId[pPlayer], iSlot); + // item struct size + format(szKey, charsmax(szKey), "%s_item_%i_size", g_rgszPlayerAuthId[pPlayer], iSlot); new iItemSize = nvault_get(g_hVault, szKey); - format(szKey, charsmax(szKey), "%s_%i_item", g_rgszPlayerAuthId[pPlayer], iSlot); - - static rgItem[1024]; - nvault_get_array(g_hVault, szKey, rgItem, iItemSize); + // item struct + format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iSlot); new Struct:sItem = StructCreate(iItemSize); - StructSetArray(sItem, 0, rgItem, iItemSize); + nvault_get_array(g_hVault, szKey, szValue, iItemSize); + StructSetArray(sItem, 0, szValue, iItemSize); @Player_GiveItem(pPlayer, szType, sItem); @@ -303,19 +305,18 @@ SavePlayerInventory(pPlayer) { new Array:irgInventory = g_irgPlayerInventories[pPlayer]; - new iSize = ArraySize(irgInventory); - if (!iSize) { + new iInventorySize = ArraySize(irgInventory); + if (!iInventorySize) { return; } - static szKey[32]; - static szValue[32]; - static rgItem[1024]; + new szKey[32]; + new szValue[1024]; //Save items - new iInventorySize = 0; - for (new i = 0; i < iSize; ++i) { - new Struct:sSlot = ArrayGetCell(irgInventory, i); + new iNewInventorySize = 0; + for (new iSlot = 0; iSlot < iInventorySize; ++iSlot) { + new Struct:sSlot = ArrayGetCell(irgInventory, iSlot); if (sSlot == Invalid_Struct) { continue; @@ -324,32 +325,40 @@ SavePlayerInventory(pPlayer) { new Struct:sItem = StructGetCell(sSlot, InventorySlot_Item); new iItemSize = StructSize(sItem); + // item type + format(szKey, charsmax(szKey), "%s_item_%i_type", g_rgszPlayerAuthId[pPlayer], iNewInventorySize); + StructGetString(sSlot, InventorySlot_Type, szValue, charsmax(szValue)); + nvault_set(g_hVault, szKey, szValue); + // item struct size - format(szKey, charsmax(szKey), "%s_%i_item_size", g_rgszPlayerAuthId[pPlayer], iInventorySize); + format(szKey, charsmax(szKey), "%s_item_%i_size", g_rgszPlayerAuthId[pPlayer], iNewInventorySize); format(szValue, charsmax(szValue), "%d", iItemSize); - nvault_set(g_hVault, szKey, szValue); // item struct - format(szKey, charsmax(szKey), "%s_%i_item", g_rgszPlayerAuthId[pPlayer], iInventorySize); + format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iNewInventorySize); + StructGetArray(sItem, 0, szValue, iItemSize); + nvault_set_array(g_hVault, szKey, szValue, iItemSize); - StructGetArray(sItem, 0, rgItem, iItemSize); - nvault_set_array(g_hVault, szKey, rgItem, iItemSize); + iNewInventorySize++; - // item type - format(szKey, charsmax(szKey), "%s_%i_item_type", g_rgszPlayerAuthId[pPlayer], iInventorySize); - StructGetString(sSlot, InventorySlot_Type, szValue, charsmax(szValue)); + ExecuteForward(g_fwSlotSaved, _, pPlayer, iSlot); + } - nvault_set(g_hVault, szKey, szValue); + for (new iSlot = iNewInventorySize; iSlot < iInventorySize; ++iSlot) { + format(szKey, charsmax(szKey), "%s_item_%i_size", g_rgszPlayerAuthId[pPlayer], iSlot); + nvault_remove(g_hVault, szKey); - iInventorySize++; + format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iSlot); + nvault_remove(g_hVault, szKey); - ExecuteForward(g_fwSlotSaved, _, pPlayer, i); + format(szKey, charsmax(szKey), "%s_item_%i_type", g_rgszPlayerAuthId[pPlayer], iSlot); + nvault_remove(g_hVault, szKey); } // save inventory size format(szKey, charsmax(szKey), "%s_size", g_rgszPlayerAuthId[pPlayer]); - format(szValue, charsmax(szValue), "%i", iInventorySize); + format(szValue, charsmax(szValue), "%i", iNewInventorySize); nvault_set(g_hVault, szKey, szValue); } From ce2670ab2182f9142be9abc8dc7fef2ea7052413 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 10 Aug 2023 17:51:17 +0300 Subject: [PATCH 037/231] add blood color --- api_custom_entities.sma | 33 ++++++++++++++++++++++++++++++--- include/api_custom_entities.inc | 3 ++- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index f01ddee..ae1fd3a 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -20,6 +20,7 @@ enum CEData { Array:CEData_RespawnTime, Array:CEData_Preset, Array:CEData_IgnoreRounds, + Array:CEData_BloodColor, Array:CEData_Hooks[CEFunction] }; @@ -36,7 +37,8 @@ enum _:RegisterArgs { RegisterArg_LifeTime, RegisterArg_RespawnTime, RegisterArg_IgnoreRounds, - RegisterArg_Preset + RegisterArg_Preset, + RegisterArg_BloodColor }; new g_iszBaseClassName; @@ -60,6 +62,7 @@ public plugin_precache() { RegisterHam(Ham_Touch, CE_BASE_CLASSNAME, "HamHook_Base_Touch", .Post = 0); RegisterHam(Ham_Killed, CE_BASE_CLASSNAME, "HamHook_Base_Killed", .Post = 0); RegisterHam(Ham_Think, CE_BASE_CLASSNAME, "HamHook_Base_Think", .Post = 0); + RegisterHam(Ham_BloodColor, CE_BASE_CLASSNAME, "HamHook_Base_BloodColor", .Post = 0); } public plugin_init() { @@ -109,6 +112,7 @@ public Native_Register(iPluginId, iArgc) { new Float:flRespawnTime = get_param_f(RegisterArg_RespawnTime); new bool:bIgnoreRounds = bool:get_param(RegisterArg_IgnoreRounds); new CEPreset:iPreset = CEPreset:get_param(RegisterArg_Preset); + new iBloodColor = get_param(RegisterArg_BloodColor); new Float:vecMins[3]; get_array_f(RegisterArg_Mins, vecMins, 3); @@ -116,7 +120,7 @@ public Native_Register(iPluginId, iArgc) { new Float:vecMaxs[3]; get_array_f(RegisterArg_Maxs, vecMaxs, 3); - return RegisterEntity(szClassName, iModelIndex, vecMins, vecMaxs, flLifeTime, flRespawnTime, bIgnoreRounds, iPreset); + return RegisterEntity(szClassName, iModelIndex, vecMins, vecMaxs, flLifeTime, flRespawnTime, bIgnoreRounds, iPreset, iBloodColor); } public Native_Create(iPluginId, iArgc) { @@ -467,6 +471,20 @@ public HamHook_Base_Think(pEntity, pKiller) { return HAM_IGNORED; } +public HamHook_Base_BloodColor(pEntity) { + if (@Entity_IsCustom(pEntity)) { + new iBloodColor = @Entity_BloodColor(pEntity); + if (iBloodColor < 0) { + return HAM_HANDLED; + } + + SetHamReturnInteger(iBloodColor); + return HAM_OVERRIDE; + } + + return HAM_IGNORED; +} + /*--------------------------------[ Methods ]--------------------------------*/ bool:@Entity_IsCustom(this) { @@ -784,6 +802,12 @@ bool:@Entity_CanActivate(this, pTarget) { } } +@Entity_BloodColor(this) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + return ArrayGetCell(g_rgCEData[CEData_BloodColor], iId); +} + Trie:@Entity_GetPData(this) { // Return the current allocated data if the entity is at the initialization stage if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER) == this) { @@ -828,6 +852,7 @@ InitStorages() { g_rgCEData[CEData_RespawnTime] = ArrayCreate(); g_rgCEData[CEData_Preset] = ArrayCreate(); g_rgCEData[CEData_IgnoreRounds] = ArrayCreate(); + g_rgCEData[CEData_BloodColor] = ArrayCreate(); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { g_rgCEData[CEData_Hooks][iFunction] = ArrayCreate(); @@ -858,7 +883,8 @@ RegisterEntity( Float:flLifeTime, Float:flRespawnTime, bool:bIgnoreRounds, - CEPreset:iPreset + CEPreset:iPreset, + iBloodColor ) { new iId = g_iEntitiesNum; @@ -871,6 +897,7 @@ RegisterEntity( ArrayPushCell(g_rgCEData[CEData_RespawnTime], flRespawnTime); ArrayPushCell(g_rgCEData[CEData_Preset], iPreset); ArrayPushCell(g_rgCEData[CEData_IgnoreRounds], bIgnoreRounds); + ArrayPushCell(g_rgCEData[CEData_BloodColor], iBloodColor); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { ArrayPushCell(g_rgCEData[CEData_Hooks][iFunction], ArrayCreate(_:CEHookData)); diff --git a/include/api_custom_entities.inc b/include/api_custom_entities.inc index 2dca824..6caedf9 100644 --- a/include/api_custom_entities.inc +++ b/include/api_custom_entities.inc @@ -67,7 +67,8 @@ native CE_Register ( Float:fLifeTime = 0.0, Float:fRespawnTime = 10.0, bool:ignoreRounds = false, - CEPreset:preset = CEPreset_None + CEPreset:preset = CEPreset_None, + bloodColor = -1 ); /* From dd8f3274793e1cd8865748993cb9fc9e6864de8e Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 11 Aug 2023 13:00:30 +0300 Subject: [PATCH 038/231] add fire entity --- entities/entity_fire.sma | 451 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 451 insertions(+) create mode 100644 entities/entity_fire.sma diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma new file mode 100644 index 0000000..b6f6321 --- /dev/null +++ b/entities/entity_fire.sma @@ -0,0 +1,451 @@ +#pragma semicolon 1 + +#include +#include +#include +#include + +#include + +#define PLUGIN "[Entity] Fire" +#define VERSION "1.0.0" +#define AUTHOR "Hedgehog Fog" + +#define IS_PLAYER(%1) (%1 >= 1 && %1 <= MaxClients) + +#define ENTITY_NAME "fire" + +#define FIRE_BORDERS 8.0 +#define FIRE_PADDING (FIRE_BORDERS + 16.0) +#define FIRE_THINK_RATE 0.025 +#define FIRE_DAMAGE_RATE 0.5 +#define FIRE_WATER_CHECK_RATE 1.0 +#define FIRE_PARTICLES_EFFECT_RATE 0.025 +#define FIRE_LIGHT_EFFECT_RATE 0.05 +#define FIRE_SOUND_RATE 1.0 +#define FIRE_SIZE_UPDATE_RATE 1.0 + +#define m_flNextParticlesEffect "flNextParticlesEffect" +#define m_flNextLightEffect "flNextLightEffect" +#define m_flNextSound "flNextSound" +#define m_flNextDamage "flNextDamage" +#define m_flNextSizeUpdate "flNextSizeUpdate" +#define m_flNextWaterCheck "flNextWaterCheck" +#define m_flDamage "flDamage" +#define m_vecEffectOrigin "vecEffectOrigin" +#define m_bAllowSpread "bAllowSpread" +#define m_bDamaged "bDamaged" + +new g_rgszFlameSprites[][] = { + "sprites/bexplo.spr", + "sprites/cexplo.spr" +}; + +new const g_rgszSmokeSprites[][] = { + "sprites/black_smoke1.spr", + "sprites/black_smoke2.spr", + "sprites/black_smoke3.spr", + "sprites/black_smoke4.spr" +}; + +new const g_rgszBurningSounds[][] = { + "ambience/burning1.wav", + "ambience/burning2.wav", + "ambience/burning3.wav" +}; + +new g_rgiFlameModelIndex[sizeof(g_rgszFlameSprites)]; +new g_rgiFlameModelFramesNum[sizeof(g_rgszFlameSprites)]; +new g_rgiSmokeModelIndex[sizeof(g_rgszSmokeSprites)]; +new g_rgiSmokeModelFramesNum[sizeof(g_rgszSmokeSprites)]; + +public plugin_precache() { + for (new i = 0; i < sizeof(g_rgszFlameSprites); ++i) { + g_rgiFlameModelIndex[i] = precache_model(g_rgszFlameSprites[i]); + g_rgiFlameModelFramesNum[i] = engfunc(EngFunc_ModelFrames, g_rgiFlameModelIndex[i]); + } + + for (new i = 0; i < sizeof(g_rgszSmokeSprites); ++i) { + g_rgiSmokeModelIndex[i] = precache_model(g_rgszSmokeSprites[i]); + g_rgiSmokeModelFramesNum[i] = engfunc(EngFunc_ModelFrames, g_rgiSmokeModelIndex[i]); + } + + for (new i = 0; i < sizeof(g_rgszBurningSounds); ++i) { + precache_sound(g_rgszBurningSounds[i]); + } + + CE_Register(ENTITY_NAME, 0, Float:{-FIRE_BORDERS, -FIRE_BORDERS, -FIRE_BORDERS}, Float:{FIRE_BORDERS, FIRE_BORDERS, FIRE_BORDERS}); + CE_RegisterHook(CEFunction_Init, ENTITY_NAME, "@Entity_Init"); + CE_RegisterHook(CEFunction_Spawn, ENTITY_NAME, "@Entity_Spawn"); + CE_RegisterHook(CEFunction_Touch, ENTITY_NAME, "@Entity_Touch"); + CE_RegisterHook(CEFunction_Think, ENTITY_NAME, "@Entity_Think"); + CE_RegisterHook(CEFunction_Killed, ENTITY_NAME, "@Entity_Killed"); + CE_RegisterHook(CEFunction_Remove, ENTITY_NAME, "@Entity_Remove"); +} + +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); +} + +@Entity_Init(this) { + CE_SetMemberVec(this, m_vecEffectOrigin, NULL_VECTOR); + + /* + Currently only partially works, because the touch doesn't handle for non-moving entities, + as well as for entities with "MOVETYPE_FOLLOW" movetype, + so the fire will not spread if it's attached to something. + */ + CE_SetMember(this, m_bAllowSpread, false); +} + +@Entity_Spawn(this) { + new Float:flGameTime = get_gametime(); + + CE_SetMember(this, m_flNextParticlesEffect, flGameTime); + CE_SetMember(this, m_flNextLightEffect, flGameTime); + CE_SetMember(this, m_flNextSound, flGameTime); + CE_SetMember(this, m_flNextDamage, flGameTime); + CE_SetMember(this, m_flNextSizeUpdate, flGameTime); + CE_SetMember(this, m_flNextWaterCheck, flGameTime); + CE_SetMember(this, m_flDamage, 5.0); + CE_SetMember(this, m_bDamaged, false); + + set_pev(this, pev_takedamage, DAMAGE_NO); + set_pev(this, pev_solid, SOLID_TRIGGER); + set_pev(this, pev_movetype, MOVETYPE_TOSS); + + set_pev(this, pev_nextthink, get_gametime()); +} + +@Entity_Killed(this) { + @Entity_StopSound(this); +} + +@Entity_Remove(this) { + @Entity_StopSound(this); +} + +@Entity_Touch(this, pToucher) { + @Entity_Damage(this, pToucher); +} + +@Entity_Think(this) { + static Float:flGameTime; flGameTime = get_gametime(); + static iMoveType; iMoveType = pev(this, pev_movetype); + static pAimEnt; pAimEnt = pev(this, pev_aiment); + + if (iMoveType == MOVETYPE_FOLLOW) { + if (pev(pAimEnt, pev_deadflag) != DEAD_NO) { + CE_Kill(this); + return; + } + } + + if (CE_GetMember(this, m_flNextWaterCheck) <= flGameTime) { + if (@Entity_InWater(this)) { + CE_Kill(this); + return; + } + + CE_SetMember(this, m_flNextWaterCheck, flGameTime + FIRE_WATER_CHECK_RATE); + } + + /* + Since all non-moving entities, except players, don't handle touch, + we force a touch event the for burning entity. + */ + if (iMoveType == MOVETYPE_FOLLOW && !IS_PLAYER(pAimEnt)) { + static Float:vecVelocity[3]; pev(pAimEnt, pev_velocity, vecVelocity); + if (!vector_length(vecVelocity)) { + dllfunc(DLLFunc_Touch, this, pAimEnt); + } + } + + /* + After fire has damaged to all entities we add delay before fire can deal damage to touched entities again. + By using m_bDamaged, we avoid the problems with issue when m_flNextDamage updates before the touch. + */ + if (CE_GetMember(this, m_bDamaged)) { + static Float:flNextDamage; flNextDamage = CE_GetMember(this, m_flNextDamage); + if (flNextDamage && flNextDamage <= flGameTime) { + CE_SetMember(this, m_flNextDamage, flGameTime + FIRE_DAMAGE_RATE); + } + + CE_SetMember(this, m_bDamaged, false); + } + + if (CE_GetMember(this, m_flNextSound) <= flGameTime) { + @Entity_Sound(this); + CE_SetMember(this, m_flNextSound, flGameTime + FIRE_SOUND_RATE); + } + + if (CE_GetMember(this, m_flNextSizeUpdate) <= flGameTime) { + @Entity_UpdateSize(this); + CE_SetMember(this, m_flNextSizeUpdate, flGameTime + FIRE_SIZE_UPDATE_RATE); + } + + if (CE_GetMember(this, m_flNextParticlesEffect) <= flGameTime) { + // Particle effect has higher update rate, so we update effect vars before each particle effect + @Entity_UpdateEffectVars(this); + @Entity_ParticlesEffect(this); + CE_SetMember(this, m_flNextParticlesEffect, flGameTime + FIRE_PARTICLES_EFFECT_RATE); + } + + if (CE_GetMember(this, m_flNextLightEffect) <= flGameTime) { + @Entity_LightEffect(this); + CE_SetMember(this, m_flNextLightEffect, flGameTime + FIRE_LIGHT_EFFECT_RATE); + } + + if (iMoveType == MOVETYPE_FOLLOW) { + static Float:vecVelocity[3]; + pev(pAimEnt, pev_velocity, vecVelocity); + set_pev(this, pev_velocity, vecVelocity); + } + + set_pev(this, pev_nextthink, flGameTime + FIRE_THINK_RATE); +} + +@Entity_UpdateSize(this) { + if (pev(this, pev_movetype) != MOVETYPE_FOLLOW) { + return; + } + + new pAimEnt = pev(this, pev_aiment); + + static Float:vecMins[3]; + static Float:vecMaxs[3]; + + static szModel[256]; + pev(pAimEnt, pev_model, szModel, charsmax(szModel)); + + new iModelStrLen = strlen(szModel); + + static bool:bIsBspModel; bIsBspModel = szModel[0] == '*'; + static bool:bHasModel; bHasModel = !!pev(pAimEnt, pev_modelindex); + static bool:bIsSprite; bIsSprite = iModelStrLen > 5 && equal(szModel[iModelStrLen - 5], ".spr"); + + if (!bHasModel || bIsBspModel || bIsSprite) { + pev(pAimEnt, pev_mins, vecMins); + pev(pAimEnt, pev_maxs, vecMaxs); + } else { + GetModelBoundingBox(pAimEnt, vecMins, vecMaxs, Model_CurrentSequence); + } + + // Add fire borders (useful for fire spread) + for (new i = 0; i < 3; ++i) { + vecMins[i] -= FIRE_BORDERS; + vecMaxs[i] += FIRE_BORDERS; + } + + engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); +} + +@Entity_InWater(this) { + static Float:vecOrigin[3]; + pev(this, pev_origin, vecOrigin); + + new pTarget = 0; + while ((pTarget = engfunc(EngFunc_FindEntityInSphere, pTarget, vecOrigin, 1.0)) > 0) { + static szTargetClassName[32]; + pev(pTarget, pev_classname, szTargetClassName, charsmax(szTargetClassName)); + + if (equal(szTargetClassName, "func_water")) { + return true; + } + } + + return false; +} + +bool:@Entity_Damage(this, pTarget) { + if (!pTarget) { + return false; + } + + if (pev(pTarget, pev_takedamage) == DAMAGE_NO) { + return false; + } + + if (pev(pTarget, pev_solid) <= SOLID_TRIGGER) { + return false; + } + + static Float:flGameTime; flGameTime = get_gametime(); + static Float:flNextDamage; flNextDamage = CE_GetMember(this, m_flNextDamage); + + if (flNextDamage > flGameTime) { + return false; + } + + static Float:flDamage; flDamage = Float:CE_GetMember(this, m_flDamage) * FIRE_DAMAGE_RATE; + if (flDamage) { + static pOwner; pOwner = pev(this, pev_owner); + static pAttacker; pAttacker = pOwner && pOwner != pTarget ? pOwner : this; + static iDamageBits; iDamageBits = DMG_NEVERGIB | DMG_BURN; + + if (cstrike_running() && IS_PLAYER(pTarget)) { + new Float:flVelocityModifier = get_ent_data_float(pTarget, "CBasePlayer", "m_flVelocityModifier"); + ExecuteHamB(Ham_TakeDamage, pTarget, this, pAttacker, flDamage, iDamageBits); + set_ent_data_float(pTarget, "CBasePlayer", "m_flVelocityModifier", flVelocityModifier); + } else { + ExecuteHamB(Ham_TakeDamage, pTarget, this, pAttacker, flDamage, iDamageBits); + } + } + + if (pev(this, pev_movetype) != MOVETYPE_FOLLOW) { + if (@Entity_CanIgnite(this, pTarget)) { + // Attach fire to the entity we damaged + set_pev(this, pev_movetype, MOVETYPE_FOLLOW); + set_pev(this, pev_aiment, pTarget); + } + } else if (CE_GetMember(this, m_bAllowSpread)) { + if (@Entity_CanIgnite(this, pTarget)) { + static Float:vecOrigin[3]; + pev(this, pev_origin, vecOrigin); + + new pChild = CE_Create(ENTITY_NAME, vecOrigin); + dllfunc(DLLFunc_Spawn, pChild); + set_pev(pChild, pev_movetype, MOVETYPE_FOLLOW); + set_pev(pChild, pev_aiment, pTarget); + set_pev(pChild, pev_owner, this); + + CE_SetMember(pChild, CE_MEMBER_NEXTKILL, Float:CE_GetMember(this, CE_MEMBER_NEXTKILL)); + } + } + + CE_SetMember(this, m_bDamaged, true); + + return true; +} + +@Entity_CanIgnite(this, pTarget) { + new iCeFireHandler = CE_GetHandler(ENTITY_NAME); + + static Float:vecOrigin[3]; + pev(pTarget, pev_origin, vecOrigin); + + new pNearbyTarget = 0; + while ((pNearbyTarget = engfunc(EngFunc_FindEntityInSphere, pNearbyTarget, vecOrigin, 4.0)) > 0) { + if (CE_GetHandlerByEntity(pNearbyTarget) != iCeFireHandler) { + continue; + } + + // If target is already on fire + if (pev(pNearbyTarget, pev_aiment) == pTarget) { + return false; + } + } + + return true; +} + +@Entity_Sound(this) { + emit_sound(this, CHAN_BODY, g_rgszBurningSounds[random(sizeof(g_rgszBurningSounds))], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); +} + +@Entity_StopSound(this) { + emit_sound(this, CHAN_BODY, "common/null.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM); +} + +@Entity_UpdateEffectVars(this) { + static Float:vecAbsMin[3]; + pev(this, pev_absmin, vecAbsMin); + + static Float:vecAbsMax[3]; + pev(this, pev_absmax, vecAbsMax); + + static Float:vecVelocity[3]; + pev(this, pev_velocity, vecVelocity); + + static Float:vecOrigin[3]; + for (new i = 0; i < sizeof(vecOrigin); ++i) { + vecOrigin[i] = ( + random_float( + floatmin(vecAbsMin[i] + FIRE_PADDING, vecAbsMax[i]), + floatmax(vecAbsMax[i] - FIRE_PADDING, vecAbsMin[i]) + ) + (vecVelocity[i] * FIRE_THINK_RATE) + ); + } + + CE_SetMemberVec(this, m_vecEffectOrigin, vecOrigin); +} + +@Entity_ParticlesEffect(this) { + static Float:vecOrigin[3]; CE_GetMemberVec(this, m_vecEffectOrigin, vecOrigin); + static iScale; iScale = random_num(3, 8); + + static iSmokeIndex; iSmokeIndex = random(sizeof(g_rgiFlameModelIndex)); + static iSmokeFrameRate; iSmokeFrameRate = floatround( + g_rgiSmokeModelFramesNum[iSmokeIndex] * random_float(0.75, 1.25), + floatround_ceil + ); + + static iFlameIndex; iFlameIndex = random(sizeof(g_rgiFlameModelIndex)); + static iFlameFrameRate; iFlameFrameRate = floatround( + g_rgiFlameModelFramesNum[iFlameIndex] * random_float(2.975, 3.125), + floatround_ceil + ); + + engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecOrigin, 0); + write_byte(TE_EXPLOSION); + engfunc(EngFunc_WriteCoord, vecOrigin[0]); + engfunc(EngFunc_WriteCoord, vecOrigin[1]); + engfunc(EngFunc_WriteCoord, vecOrigin[2]); + write_short(g_rgiFlameModelIndex[iFlameIndex]); + write_byte(iScale); + write_byte(iFlameFrameRate); + write_byte(TE_EXPLFLAG_NODLIGHTS | TE_EXPLFLAG_NOSOUND | TE_EXPLFLAG_NOPARTICLES); + message_end(); + + engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecOrigin, 0); + write_byte(TE_SMOKE); + engfunc(EngFunc_WriteCoord, vecOrigin[0]); + engfunc(EngFunc_WriteCoord, vecOrigin[1]); + engfunc(EngFunc_WriteCoord, vecOrigin[2]); + write_short(g_rgiSmokeModelIndex[iSmokeIndex]); + write_byte(iScale * 2); + write_byte(iSmokeFrameRate); + message_end(); +} + +@Entity_LightEffect(this) { + static const irgColor[3] = {128, 64, 0}; + static Float:vecOrigin[3]; CE_GetMemberVec(this, m_vecEffectOrigin, vecOrigin); + static Float:vecMins[3]; pev(this, pev_absmin, vecMins); + static Float:vecMaxs[3]; pev(this, pev_absmax, vecMaxs); + static iLifeTime; iLifeTime = 1; + + static Float:flRadius; flRadius = 0.25 * floatmax( + vecMaxs[2] - vecMins[2], + floatmax(vecMaxs[0] - vecMins[0], vecMaxs[1] - vecMins[1]) + ) / 2; + + static iDecayRate; iDecayRate = floatround(flRadius); + + engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, vecOrigin, 0); + write_byte(TE_ELIGHT); + write_short(0); + engfunc(EngFunc_WriteCoord, vecOrigin[0]); + engfunc(EngFunc_WriteCoord, vecOrigin[1]); + engfunc(EngFunc_WriteCoord, vecOrigin[2]); + engfunc(EngFunc_WriteCoord, flRadius); + write_byte(irgColor[0]); + write_byte(irgColor[1]); + write_byte(irgColor[2]); + write_byte(iLifeTime); + write_coord(iDecayRate); + message_end(); + + engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, vecOrigin, 0); + write_byte(TE_DLIGHT); + engfunc(EngFunc_WriteCoord, vecOrigin[0]); + engfunc(EngFunc_WriteCoord, vecOrigin[1]); + engfunc(EngFunc_WriteCoord, vecOrigin[2]); + write_byte(floatround(flRadius)); + write_byte(irgColor[0]); + write_byte(irgColor[1]); + write_byte(irgColor[2]); + write_byte(iLifeTime); + write_byte(iDecayRate); + message_end(); +} From 16ff7d8619cbade235219137c57425c848e22498 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 11 Aug 2023 18:58:43 +0300 Subject: [PATCH 039/231] update custom entities api --- api_custom_entities.sma | 105 ++++++++++++++++++-------------- entities/entity_fire.sma | 2 +- include/api_custom_entities.inc | 17 +++--- 3 files changed, 70 insertions(+), 54 deletions(-) diff --git a/api_custom_entities.sma b/api_custom_entities.sma index ae1fd3a..623d83a 100644 --- a/api_custom_entities.sma +++ b/api_custom_entities.sma @@ -13,7 +13,7 @@ enum CEData { Array:CEData_Name, - Array:CEData_ModelIndex, + Array:CEData_Model, Array:CEData_Mins, Array:CEData_Maxs, Array:CEData_LifeTime, @@ -31,7 +31,7 @@ enum CEHookData { enum _:RegisterArgs { RegisterArg_Name = 1, - RegisterArg_ModelIndex, + RegisterArg_Model, RegisterArg_Mins, RegisterArg_Maxs, RegisterArg_LifeTime, @@ -47,6 +47,7 @@ new Trie:g_itPData = Invalid_Trie; new Trie:g_itEntityIds = Invalid_Trie; new g_rgCEData[CEData] = { Invalid_Array, ... }; new g_iEntitiesNum = 0; +new bool:g_bPrecaching = true; public plugin_precache() { InitStorages(); @@ -66,6 +67,8 @@ public plugin_precache() { } public plugin_init() { + g_bPrecaching = false; + register_plugin("[API] Custom Entities", "2.0.0", "Hedgehog Fog"); register_concmd("ce_spawn", "Command_Spawn", ADMIN_CVAR); @@ -80,7 +83,7 @@ public plugin_natives() { register_native("CE_Remove", "Native_Remove"); register_native("CE_GetSize", "Native_GetSize"); - register_native("CE_GetModelIndex", "Native_GetModelIndex"); + register_native("CE_GetModel", "Native_GetModel"); register_native("CE_RegisterHook", "Native_RegisterHook"); @@ -107,20 +110,22 @@ public Native_Register(iPluginId, iArgc) { static szClassName[CE_MAX_NAME_LENGTH]; get_string(RegisterArg_Name, szClassName, charsmax(szClassName)); - new iModelIndex = get_param(RegisterArg_ModelIndex); + static szModel[CE_MAX_NAME_LENGTH]; + get_string(RegisterArg_Model, szModel, charsmax(szModel)); + new Float:flLifeTime = get_param_f(RegisterArg_LifeTime); new Float:flRespawnTime = get_param_f(RegisterArg_RespawnTime); new bool:bIgnoreRounds = bool:get_param(RegisterArg_IgnoreRounds); new CEPreset:iPreset = CEPreset:get_param(RegisterArg_Preset); new iBloodColor = get_param(RegisterArg_BloodColor); - + new Float:vecMins[3]; get_array_f(RegisterArg_Mins, vecMins, 3); new Float:vecMaxs[3]; get_array_f(RegisterArg_Maxs, vecMaxs, 3); - return RegisterEntity(szClassName, iModelIndex, vecMins, vecMaxs, flLifeTime, flRespawnTime, bIgnoreRounds, iPreset, iBloodColor); + return RegisterEntity(szClassName, szModel, vecMins, vecMaxs, flLifeTime, flRespawnTime, bIgnoreRounds, iPreset, iBloodColor); } public Native_Create(iPluginId, iArgc) { @@ -170,16 +175,20 @@ public Native_GetSize(iPluginId, iArgc) { return true; } -public Native_GetModelIndex(iPluginId, iArgc) { +public bool:Native_GetModel(iPluginId, iArgc) { new szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); new iId = GetIdByClassName(szClassName); if (iId == -1) { - return 0; + return false; } - - return ArrayGetCell(g_rgCEData[CEData_ModelIndex], iId); + + static szModel[MAX_RESOURCE_PATH_LENGTH]; + ArrayGetString(g_rgCEData[CEData_Model], iId, szModel, charsmax(szModel)); + set_string(2, szModel, get_param(3)); + + return true; } public Native_RegisterHook(iPluginId, iArgc) { @@ -513,13 +522,24 @@ bool:@Entity_IsCustom(this) { @Entity_Init(this) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); + + static szModel[MAX_RESOURCE_PATH_LENGTH]; + ArrayGetString(g_rgCEData[CEData_Model], iId, szModel, charsmax(szModel)); + + if (equal(szModel, NULL_STRING)) { + pev(this, pev_model, szModel, charsmax(szModel)); + } + + if (!equal(szModel, NULL_STRING)) { + SetPDataMemberString(itPData, CE_MEMBER_MODEL, szModel); + } + ExecuteHookFunction(CEFunction_Init, iId, this); + SetPDataMember(itPData, CE_MEMBER_INITIALIZED, true); } @Entity_Spawn(this) { - new Float:flGameTime = get_gametime(); - new Trie:itPData = @Entity_GetPData(this); if (!GetPDataMember(itPData, CE_MEMBER_INITIALIZED)) { @@ -531,28 +551,25 @@ bool:@Entity_IsCustom(this) { } new iId = GetPDataMember(itPData, CE_MEMBER_ID); - new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); - - new Float:flLifeTime = bIsWorld ? 0.0 : ArrayGetCell(g_rgCEData[CEData_LifeTime], iId); - if (flLifeTime > 0.0) { - SetPDataMember(itPData, CE_MEMBER_NEXTKILL, flGameTime + flLifeTime); - set_pev(this, pev_nextthink, flGameTime + flLifeTime); - } else { - SetPDataMember(itPData, CE_MEMBER_NEXTKILL, 0.0); - } set_pev(this, pev_deadflag, DEAD_NO); - set_pev(this, pev_effects, pev(this, pev_effects) & ~EF_NODRAW); set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); - static Float:vecMins[3]; - ArrayGetArray(g_rgCEData[CEData_Mins], iId, vecMins); + new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); + @Entity_ApplyPreset(this, iPreset); - static Float:vecMaxs[3]; - ArrayGetArray(g_rgCEData[CEData_Maxs], iId, vecMaxs); + if (HasPDataMember(itPData, CE_MEMBER_MODEL)) { + static szModel[MAX_RESOURCE_PATH_LENGTH]; + GetPDataMemberString(itPData, CE_MEMBER_MODEL, szModel, charsmax(szModel)); + engfunc(EngFunc_SetModel, this, szModel); + } - engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); + static Float:vecMins[3]; ArrayGetArray(g_rgCEData[CEData_Mins], iId, vecMins); + static Float:vecMaxs[3]; ArrayGetArray(g_rgCEData[CEData_Maxs], iId, vecMaxs); + if (xs_vec_distance(vecMins, vecMaxs) > 0.0) { + engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); + } if (HasPDataMember(itPData, CE_MEMBER_ORIGIN)) { static Float:vecOrigin[3]; @@ -566,16 +583,16 @@ bool:@Entity_IsCustom(this) { set_pev(this, pev_angles, vecAngles); } - new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); - @Entity_ApplyPreset(this, iPreset); - - new iModelIndex = ArrayGetCell(g_rgCEData[CEData_ModelIndex], iId); - if (iModelIndex > 0) { - set_pev(this, pev_modelindex, iModelIndex); + new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); + new Float:flLifeTime = bIsWorld ? 0.0 : ArrayGetCell(g_rgCEData[CEData_LifeTime], iId); + if (flLifeTime > 0.0) { + new Float:flGameTime = get_gametime(); + SetPDataMember(itPData, CE_MEMBER_NEXTKILL, flGameTime + flLifeTime); + set_pev(this, pev_nextthink, flGameTime + flLifeTime); + } else { + SetPDataMember(itPData, CE_MEMBER_NEXTKILL, 0.0); } - @Entity_UpdateModel(this); - ExecuteHookFunction(CEFunction_Spawn, iId, this); } @@ -592,14 +609,6 @@ bool:@Entity_IsCustom(this) { } } -@Entity_UpdateModel(this) { - static szModel[MAX_RESOURCE_PATH_LENGTH]; - pev(this, pev_model, szModel, charsmax(szModel)); - if (!equal(szModel, NULL_STRING)) { - engfunc(EngFunc_SetModel, this, szModel); - } -} - @Entity_Kill(this, pKiller, bool:bPicked) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); @@ -845,7 +854,7 @@ Trie:@Entity_AllocPData(this, iId) { InitStorages() { g_itEntityIds = TrieCreate(); g_rgCEData[CEData_Name] = ArrayCreate(CE_MAX_NAME_LENGTH); - g_rgCEData[CEData_ModelIndex] = ArrayCreate(); + g_rgCEData[CEData_Model] = ArrayCreate(MAX_RESOURCE_PATH_LENGTH); g_rgCEData[CEData_Mins] = ArrayCreate(3); g_rgCEData[CEData_Maxs] = ArrayCreate(3); g_rgCEData[CEData_LifeTime] = ArrayCreate(); @@ -877,7 +886,7 @@ DestroyStorages() { RegisterEntity( const szClassName[], - iModelIndex, + const szModel[], const Float:vecMins[3], const Float:vecMaxs[3], Float:flLifeTime, @@ -890,7 +899,7 @@ RegisterEntity( TrieSetCell(g_itEntityIds, szClassName, iId); ArrayPushString(g_rgCEData[CEData_Name], szClassName); - ArrayPushCell(g_rgCEData[CEData_ModelIndex], iModelIndex); + ArrayPushString(g_rgCEData[CEData_Model], szModel); ArrayPushArray(g_rgCEData[CEData_Mins], vecMins); ArrayPushArray(g_rgCEData[CEData_Maxs], vecMaxs); ArrayPushCell(g_rgCEData[CEData_LifeTime], flLifeTime); @@ -905,6 +914,10 @@ RegisterEntity( g_iEntitiesNum++; + if (g_bPrecaching && !equal(szModel, NULL_STRING)) { + precache_model(szModel); + } + log_amx("%s Entity %s successfully registred.", LOG_PREFIX, szClassName); return iId; diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index b6f6321..b75bdfd 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -74,7 +74,7 @@ public plugin_precache() { precache_sound(g_rgszBurningSounds[i]); } - CE_Register(ENTITY_NAME, 0, Float:{-FIRE_BORDERS, -FIRE_BORDERS, -FIRE_BORDERS}, Float:{FIRE_BORDERS, FIRE_BORDERS, FIRE_BORDERS}); + CE_Register(ENTITY_NAME, NULL_STRING, Float:{-FIRE_BORDERS, -FIRE_BORDERS, -FIRE_BORDERS}, Float:{FIRE_BORDERS, FIRE_BORDERS, FIRE_BORDERS}); CE_RegisterHook(CEFunction_Init, ENTITY_NAME, "@Entity_Init"); CE_RegisterHook(CEFunction_Spawn, ENTITY_NAME, "@Entity_Spawn"); CE_RegisterHook(CEFunction_Touch, ENTITY_NAME, "@Entity_Touch"); diff --git a/include/api_custom_entities.inc b/include/api_custom_entities.inc index 6caedf9..9ed95a6 100644 --- a/include/api_custom_entities.inc +++ b/include/api_custom_entities.inc @@ -18,6 +18,7 @@ #define CE_MEMBER_ORIGIN "_origin" #define CE_MEMBER_ANGLES "_angles" #define CE_MEMBER_MASTER "_master" +#define CE_MEMBER_MODEL "_model" #define CE_MEMBER_DELAY "_delay" #define CE_MEMBER_NEXTKILL "_nextkill" #define CE_MEMBER_NEXTRESPAWN "_nextrespawn" @@ -59,11 +60,11 @@ enum CEFunction { * @param preset Preset for entity. * @return Handler of registered entity. */ -native CE_Register ( +native CE_Register( const szName[], - modelIndex = 0, - const Float:vMins[3] = {-8.0, -8.0, -8.0}, - const Float:vMaxs[3] = {8.0, 8.0, 8.0}, + const szModel[] = "", + const Float:vMins[3] = {0.0, 0.0, 0.0}, + const Float:vMaxs[3] = {0.0, 0.0, 0.0}, Float:fLifeTime = 0.0, Float:fRespawnTime = 10.0, bool:ignoreRounds = false, @@ -105,12 +106,14 @@ native bool:CE_Remove(ent); native CE_GetSize(const szName[], Float:vMins[3], Float:vMaxs[3]); /* - * Gets modelindex of entity. + * Gets model of entity. * * @param szName Name of entity. - * @return Modelindex of entity + * @param szModel Output string + * @param iLen Output string max length + * @return Result true/false */ -native CE_GetModelIndex(const szName[]); +native bool:CE_GetModel(const szName[], szModel[], iLen); /* * Register new hook for entity. From 6533348817ce45e36b2b8c96995eab07ada21dbc Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 11 Aug 2023 19:18:05 +0300 Subject: [PATCH 040/231] update repo structure --- README.md | 11 +++++++++++ .../custom-entities/api_custom_entities.sma | 0 .../custom-entities/include}/api_custom_entities.inc | 0 .../custom-weapons/api_custom_weapons.sma | 0 .../custom-weapons/include}/api_custom_weapons.inc | 0 api_navsystem.sma => api/navsystem/api_navsystem.sma | 0 {include => api/navsystem/include}/api_navsystem.inc | 0 .../navsystem/include}/api_navsystem_const.inc | 0 .../player-camera/api_player_camera.sma | 0 .../player-camera/include}/api_player_camera.inc | 0 .../player-cosmetics/api_player_cosmetics.sma | 0 .../include}/api_player_cosmetics.inc | 0 .../player-dizziness/api_player_dizziness.sma | 0 .../include}/api_player_dizziness.inc | 0 .../player-inventory/api_player_inventory.sma | 0 .../include}/api_player_inventory.inc | 0 .../player-model/api_player_model.sma | 0 .../player-model/include}/api_player_model.inc | 0 .../player-viewrange/api_player_viewrange.sma | 0 .../include}/api_player_viewrange.inc | 0 {include => api/rounds}/api_rounds.inc | 0 api_rounds.sma => api/rounds/api_rounds.sma | 0 {include => util}/cellstruct.inc | 0 {include => util}/command_util.inc | 0 {include => util}/nvault_array.inc | 0 25 files changed, 11 insertions(+) create mode 100644 README.md rename api_custom_entities.sma => api/custom-entities/api_custom_entities.sma (100%) rename {include => api/custom-entities/include}/api_custom_entities.inc (100%) rename api_custom_weapons.sma => api/custom-weapons/api_custom_weapons.sma (100%) rename {include => api/custom-weapons/include}/api_custom_weapons.inc (100%) rename api_navsystem.sma => api/navsystem/api_navsystem.sma (100%) rename {include => api/navsystem/include}/api_navsystem.inc (100%) rename {include => api/navsystem/include}/api_navsystem_const.inc (100%) rename api_player_camera.sma => api/player-camera/api_player_camera.sma (100%) rename {include => api/player-camera/include}/api_player_camera.inc (100%) rename api_player_cosmetics.sma => api/player-cosmetics/api_player_cosmetics.sma (100%) rename {include => api/player-cosmetics/include}/api_player_cosmetics.inc (100%) rename api_player_dizziness.sma => api/player-dizziness/api_player_dizziness.sma (100%) rename {include => api/player-dizziness/include}/api_player_dizziness.inc (100%) rename api_player_inventory.sma => api/player-inventory/api_player_inventory.sma (100%) rename {include => api/player-inventory/include}/api_player_inventory.inc (100%) rename api_player_model.sma => api/player-model/api_player_model.sma (100%) rename {include => api/player-model/include}/api_player_model.inc (100%) rename api_player_viewrange.sma => api/player-viewrange/api_player_viewrange.sma (100%) rename {include => api/player-viewrange/include}/api_player_viewrange.inc (100%) rename {include => api/rounds}/api_rounds.inc (100%) rename api_rounds.sma => api/rounds/api_rounds.sma (100%) rename {include => util}/cellstruct.inc (100%) rename {include => util}/command_util.inc (100%) rename {include => util}/nvault_array.inc (100%) diff --git a/README.md b/README.md new file mode 100644 index 0000000..11118fb --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +## 🛠️ CS Modding Kit 🇺🇦 + +### 📄 About +__CS Modding Kit__ is a powerful solutions for Counter-Strike modding that can be used to create complex mods for a short time with flexible solutions using a unified development approach. I continue working on this repository and plan many new solutions in the future as well as move my mods to this solution to create examples and a good code base. + +### 🔽 Download latest: +- [Releases](./releases) + +### 🔄 Requirements +- Amx Mod X 1.9+ +- RegameDLL + ReAPI (for some APIs) diff --git a/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma similarity index 100% rename from api_custom_entities.sma rename to api/custom-entities/api_custom_entities.sma diff --git a/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc similarity index 100% rename from include/api_custom_entities.inc rename to api/custom-entities/include/api_custom_entities.inc diff --git a/api_custom_weapons.sma b/api/custom-weapons/api_custom_weapons.sma similarity index 100% rename from api_custom_weapons.sma rename to api/custom-weapons/api_custom_weapons.sma diff --git a/include/api_custom_weapons.inc b/api/custom-weapons/include/api_custom_weapons.inc similarity index 100% rename from include/api_custom_weapons.inc rename to api/custom-weapons/include/api_custom_weapons.inc diff --git a/api_navsystem.sma b/api/navsystem/api_navsystem.sma similarity index 100% rename from api_navsystem.sma rename to api/navsystem/api_navsystem.sma diff --git a/include/api_navsystem.inc b/api/navsystem/include/api_navsystem.inc similarity index 100% rename from include/api_navsystem.inc rename to api/navsystem/include/api_navsystem.inc diff --git a/include/api_navsystem_const.inc b/api/navsystem/include/api_navsystem_const.inc similarity index 100% rename from include/api_navsystem_const.inc rename to api/navsystem/include/api_navsystem_const.inc diff --git a/api_player_camera.sma b/api/player-camera/api_player_camera.sma similarity index 100% rename from api_player_camera.sma rename to api/player-camera/api_player_camera.sma diff --git a/include/api_player_camera.inc b/api/player-camera/include/api_player_camera.inc similarity index 100% rename from include/api_player_camera.inc rename to api/player-camera/include/api_player_camera.inc diff --git a/api_player_cosmetics.sma b/api/player-cosmetics/api_player_cosmetics.sma similarity index 100% rename from api_player_cosmetics.sma rename to api/player-cosmetics/api_player_cosmetics.sma diff --git a/include/api_player_cosmetics.inc b/api/player-cosmetics/include/api_player_cosmetics.inc similarity index 100% rename from include/api_player_cosmetics.inc rename to api/player-cosmetics/include/api_player_cosmetics.inc diff --git a/api_player_dizziness.sma b/api/player-dizziness/api_player_dizziness.sma similarity index 100% rename from api_player_dizziness.sma rename to api/player-dizziness/api_player_dizziness.sma diff --git a/include/api_player_dizziness.inc b/api/player-dizziness/include/api_player_dizziness.inc similarity index 100% rename from include/api_player_dizziness.inc rename to api/player-dizziness/include/api_player_dizziness.inc diff --git a/api_player_inventory.sma b/api/player-inventory/api_player_inventory.sma similarity index 100% rename from api_player_inventory.sma rename to api/player-inventory/api_player_inventory.sma diff --git a/include/api_player_inventory.inc b/api/player-inventory/include/api_player_inventory.inc similarity index 100% rename from include/api_player_inventory.inc rename to api/player-inventory/include/api_player_inventory.inc diff --git a/api_player_model.sma b/api/player-model/api_player_model.sma similarity index 100% rename from api_player_model.sma rename to api/player-model/api_player_model.sma diff --git a/include/api_player_model.inc b/api/player-model/include/api_player_model.inc similarity index 100% rename from include/api_player_model.inc rename to api/player-model/include/api_player_model.inc diff --git a/api_player_viewrange.sma b/api/player-viewrange/api_player_viewrange.sma similarity index 100% rename from api_player_viewrange.sma rename to api/player-viewrange/api_player_viewrange.sma diff --git a/include/api_player_viewrange.inc b/api/player-viewrange/include/api_player_viewrange.inc similarity index 100% rename from include/api_player_viewrange.inc rename to api/player-viewrange/include/api_player_viewrange.inc diff --git a/include/api_rounds.inc b/api/rounds/api_rounds.inc similarity index 100% rename from include/api_rounds.inc rename to api/rounds/api_rounds.inc diff --git a/api_rounds.sma b/api/rounds/api_rounds.sma similarity index 100% rename from api_rounds.sma rename to api/rounds/api_rounds.sma diff --git a/include/cellstruct.inc b/util/cellstruct.inc similarity index 100% rename from include/cellstruct.inc rename to util/cellstruct.inc diff --git a/include/command_util.inc b/util/command_util.inc similarity index 100% rename from include/command_util.inc rename to util/command_util.inc diff --git a/include/nvault_array.inc b/util/nvault_array.inc similarity index 100% rename from include/nvault_array.inc rename to util/nvault_array.inc From f3988f0d831203a663266c1af2152f33708400a6 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 12 Aug 2023 16:02:31 +0300 Subject: [PATCH 041/231] update player inventory api --- api/player-inventory/api_player_inventory.sma | 94 ++++++++++++------- .../include/api_player_inventory.inc | 12 ++- util/cellstruct.inc | 39 +++++++- 3 files changed, 102 insertions(+), 43 deletions(-) diff --git a/api/player-inventory/api_player_inventory.sma b/api/player-inventory/api_player_inventory.sma index 4084449..d6d2889 100644 --- a/api/player-inventory/api_player_inventory.sma +++ b/api/player-inventory/api_player_inventory.sma @@ -5,7 +5,6 @@ #include #include -#include #define VAULT_NAME "api_player_inventory" #define VAULT_VERSION 1 @@ -16,11 +15,17 @@ enum InventorySlot { InventorySlot_Item, InventorySlot_Type[32] }; -new g_fwNewSlot; -new g_fwTakeSlot; +new g_fwInitialized; +new g_fwLoad; +new g_fwLoaded; +new g_fwSave; +new g_fwSaved; +new g_fwSlotCreated; +new g_fwSlotRemoved; +new g_fwSlotLoad; new g_fwSlotLoaded; +new g_fwSlotSave; new g_fwSlotSaved; -new g_fwDestroy; new g_hVault; @@ -34,15 +39,20 @@ public plugin_precache() { public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); - g_fwNewSlot = CreateMultiForward("PlayerInventory_Fw_NewSlot", ET_IGNORE, FP_CELL, FP_CELL); - g_fwTakeSlot = CreateMultiForward("PlayerInventory_Fw_TakeSlot", ET_IGNORE, FP_CELL, FP_CELL); + g_fwInitialized = CreateMultiForward("PlayerInventory_Fw_Initialized", ET_STOP, FP_CELL); + g_fwLoad = CreateMultiForward("PlayerInventory_Fw_Load", ET_STOP, FP_CELL); + g_fwLoaded = CreateMultiForward("PlayerInventory_Fw_Loaded", ET_IGNORE, FP_CELL); + g_fwSave = CreateMultiForward("PlayerInventory_Fw_Save", ET_STOP, FP_CELL); + g_fwSaved = CreateMultiForward("PlayerInventory_Fw_Saved", ET_IGNORE, FP_CELL); + g_fwSlotCreated = CreateMultiForward("PlayerInventory_Fw_SlotCreated", ET_IGNORE, FP_CELL, FP_CELL); + g_fwSlotRemoved = CreateMultiForward("PlayerInventory_Fw_SlotRemoved", ET_IGNORE, FP_CELL, FP_CELL); + g_fwSlotLoad = CreateMultiForward("PlayerInventory_Fw_SlotLoad", ET_STOP, FP_CELL, FP_CELL); g_fwSlotLoaded = CreateMultiForward("PlayerInventory_Fw_SlotLoaded", ET_IGNORE, FP_CELL, FP_CELL); + g_fwSlotSave = CreateMultiForward("PlayerInventory_Fw_SlotSave", ET_STOP, FP_CELL, FP_CELL); g_fwSlotSaved = CreateMultiForward("PlayerInventory_Fw_SlotSaved", ET_IGNORE, FP_CELL, FP_CELL); - g_fwDestroy = CreateMultiForward("PlayerInventory_Fw_Destroy", ET_IGNORE); } public plugin_end() { - ExecuteForward(g_fwDestroy); nvault_close(g_hVault); } @@ -151,6 +161,8 @@ public client_connect(pPlayer) { } g_irgPlayerInventories[pPlayer] = ArrayCreate(); + + ExecuteForward(g_fwInitialized, _, pPlayer); } public client_authorized(pPlayer) { @@ -171,7 +183,7 @@ public client_disconnected(pPlayer) { StructGetString(sSlot, InventorySlot_Type, szSavedType, charsmax(szSavedType)); new iSlot = ArrayPushCell(g_irgPlayerInventories[this], sSlot); - ExecuteForward(g_fwNewSlot, _, this, iSlot); + ExecuteForward(g_fwSlotCreated, _, this, iSlot); return iSlot; } @@ -187,15 +199,15 @@ public client_disconnected(pPlayer) { } @Player_TakeItem(this, iSlot) { - static iResult; - ExecuteForward(g_fwTakeSlot, iResult, this, iSlot); - - if (iResult != PLUGIN_CONTINUE) { + new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[this], iSlot); + if (sSlot == Invalid_Struct) { return false; } - new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[this], iSlot); - if (sSlot == Invalid_Struct) { + static iResult; + ExecuteForward(g_fwSlotRemoved, iResult, this, iSlot); + + if (iResult != PLUGIN_CONTINUE) { return false; } @@ -264,6 +276,12 @@ LoadPlayerInventory(pPlayer) { return; } + static iLoadResult; + ExecuteForward(g_fwLoad, iLoadResult, pPlayer); + if (iLoadResult != PLUGIN_CONTINUE) { + return; + } + ArrayClear(g_irgPlayerInventories[pPlayer]); new szKey[32]; @@ -274,28 +292,29 @@ LoadPlayerInventory(pPlayer) { //Save items for (new iSlot = 0; iSlot < iInventorySize; ++iSlot) { + static iSlotLoadResult; + ExecuteForward(g_fwSlotLoad, iSlotLoadResult, pPlayer, iSlot); + if (iSlotLoadResult != PLUGIN_CONTINUE) { + continue; + } + // item type format(szKey, charsmax(szKey), "%s_item_%i_type", g_rgszPlayerAuthId[pPlayer], iSlot); new szType[32]; nvault_get(g_hVault, szKey, szType, charsmax(szType)); - // item struct size - format(szKey, charsmax(szKey), "%s_item_%i_size", g_rgszPlayerAuthId[pPlayer], iSlot); - - new iItemSize = nvault_get(g_hVault, szKey); - // item struct format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iSlot); - - new Struct:sItem = StructCreate(iItemSize); - nvault_get_array(g_hVault, szKey, szValue, iItemSize); - StructSetArray(sItem, 0, szValue, iItemSize); + nvault_get(g_hVault, szKey, szValue, charsmax(szValue)); + new Struct:sItem = StructFromString(sItem, szValue); @Player_GiveItem(pPlayer, szType, sItem); ExecuteForward(g_fwSlotLoaded, _, pPlayer, iSlot); } + + ExecuteForward(g_fwLoaded, _, pPlayer); } SavePlayerInventory(pPlayer) { @@ -310,6 +329,12 @@ SavePlayerInventory(pPlayer) { return; } + new iSaveResult = 0; + ExecuteForward(g_fwSave, iSaveResult, pPlayer); + if (iSaveResult != PLUGIN_CONTINUE) { + return; + } + new szKey[32]; new szValue[1024]; @@ -322,23 +347,23 @@ SavePlayerInventory(pPlayer) { continue; } + static iSlotSaveResult; + ExecuteForward(g_fwSlotSave, iSlotSaveResult, pPlayer, iSlot); + if (iSlotSaveResult != PLUGIN_CONTINUE) { + continue; + } + new Struct:sItem = StructGetCell(sSlot, InventorySlot_Item); - new iItemSize = StructSize(sItem); // item type format(szKey, charsmax(szKey), "%s_item_%i_type", g_rgszPlayerAuthId[pPlayer], iNewInventorySize); StructGetString(sSlot, InventorySlot_Type, szValue, charsmax(szValue)); nvault_set(g_hVault, szKey, szValue); - // item struct size - format(szKey, charsmax(szKey), "%s_item_%i_size", g_rgszPlayerAuthId[pPlayer], iNewInventorySize); - format(szValue, charsmax(szValue), "%d", iItemSize); - nvault_set(g_hVault, szKey, szValue); - // item struct format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iNewInventorySize); - StructGetArray(sItem, 0, szValue, iItemSize); - nvault_set_array(g_hVault, szKey, szValue, iItemSize); + StructStringify(sItem, szValue, charsmax(szValue)); + nvault_set(g_hVault, szKey, szValue); iNewInventorySize++; @@ -346,9 +371,6 @@ SavePlayerInventory(pPlayer) { } for (new iSlot = iNewInventorySize; iSlot < iInventorySize; ++iSlot) { - format(szKey, charsmax(szKey), "%s_item_%i_size", g_rgszPlayerAuthId[pPlayer], iSlot); - nvault_remove(g_hVault, szKey); - format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iSlot); nvault_remove(g_hVault, szKey); @@ -361,4 +383,6 @@ SavePlayerInventory(pPlayer) { format(szValue, charsmax(szValue), "%i", iNewInventorySize); nvault_set(g_hVault, szKey, szValue); + + ExecuteForward(g_fwSaved, _, pPlayer); } diff --git a/api/player-inventory/include/api_player_inventory.inc b/api/player-inventory/include/api_player_inventory.inc index 8c415ac..0fb6060 100644 --- a/api/player-inventory/include/api_player_inventory.inc +++ b/api/player-inventory/include/api_player_inventory.inc @@ -14,8 +14,14 @@ native PlayerInventory_TakeItem(pPlayer, iSlot); native PlayerInventory_Size(pPlayer); +forward PlayerInventory_Fw_Initialized(pPlayer); +forward PlayerInventory_Fw_Load(pPlayer); +forward PlayerInventory_Fw_Loaded(pPlayer); +forward PlayerInventory_Fw_Save(pPlayer); +forward PlayerInventory_Fw_Saved(pPlayer); +forward PlayerInventory_Fw_SlotCreated(pPlayer, iSlot); +forward PlayerInventory_Fw_SlotRemoved(pPlayer, iSlot); +forward PlayerInventory_Fw_SlotLoad(pPlayer, iSlot); forward PlayerInventory_Fw_SlotLoaded(pPlayer, iSlot); +forward PlayerInventory_Fw_SlotSave(pPlayer, iSlot); forward PlayerInventory_Fw_SlotSaved(pPlayer, iSlot); -forward Playerinventory_Fw_NewSlot(pPlayer, iSlot); -forward Playerinventory_Fw_TakeSlot(pPlayer, iSlot); -forward PlayerInventory_Fw_Destroy(); diff --git a/util/cellstruct.inc b/util/cellstruct.inc index 730ab4d..b1b7656 100644 --- a/util/cellstruct.inc +++ b/util/cellstruct.inc @@ -4,6 +4,7 @@ #define _cellstruct_included +#include #include enum Struct { @@ -16,7 +17,7 @@ stock Struct:StructCreate(any:interface) { return struct; } -stock Struct:StructCreateFromArray(any:interface, const any:data[any:0]) { +stock Struct:StructFromArray(any:interface, const any:data[any:0]) { new Struct:struct = StructCreate(interface); StructSetArray(struct, 0, data, interface); return struct; @@ -55,8 +56,8 @@ stock StructSetArray(const &Struct:which, any:item, const any:input[any:0], any: } } -stock StructGetString(const &Struct:which, any:item, output[], any:size, any:block = 0) { - for (new i = 0; i < size; ++i) { +stock StructGetString(const &Struct:which, any:item, output[], any:len, any:block = 0) { + for (new i = 0; i < len; ++i) { output[i] = StructGetCell(which, item, block + i); if (output[i] == '^0') { @@ -69,8 +70,8 @@ stock DoNotUse:StructGetStringHandle(const &Struct:which, any:item, any:block = return ArrayGetStringHandle(Array:which, item + block); } -stock StructSetString(const &Struct:which, any:item, const input[], any:size = -1, any:block = 0) { - for (new i = 0; i < size || size == -1; ++i) { +stock StructSetString(const &Struct:which, any:item, const input[], any:len = -1, any:block = 0) { + for (new i = 0; i < len || len == -1; ++i) { StructSetCell(which, item, input[i], block + i); if (input[i] == '^0') { @@ -78,3 +79,31 @@ stock StructSetString(const &Struct:which, any:item, const input[], any:size = - } } } + +stock StructStringify(const &Struct:which, output[], len) { + new size = StructSize(which); + new JSON:jsonData = json_init_array(); + + for (new i = 0; i < size; ++i) { + json_array_append_number(jsonData, StructGetCell(which, i)); + } + + json_serial_to_string(jsonData, output, len); + + json_free(jsonData); +} + +stock Struct:StructFromString(const &Struct:which, const input[]) { + new JSON:jsonData = json_parse(input); + new size = json_array_get_count(jsonData); + + new Struct:sStruct = StructCreate(size); + + for (new i = 0; i < size; ++i) { + StructSetCell(sStruct, i, json_array_get_number(jsonData, i)); + } + + json_free(jsonData); + + return sStruct; +} From 41d78580067d7ad4f90da03dd44d830fa2a79171 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 12 Aug 2023 20:58:32 +0300 Subject: [PATCH 042/231] fire scale now depends on the burning object size --- entities/entity_fire.sma | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index b75bdfd..9ef3aa3 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -15,7 +15,7 @@ #define ENTITY_NAME "fire" -#define FIRE_BORDERS 8.0 +#define FIRE_BORDERS 2.0 #define FIRE_PADDING (FIRE_BORDERS + 16.0) #define FIRE_THINK_RATE 0.025 #define FIRE_DAMAGE_RATE 0.5 @@ -372,7 +372,17 @@ bool:@Entity_Damage(this, pTarget) { @Entity_ParticlesEffect(this) { static Float:vecOrigin[3]; CE_GetMemberVec(this, m_vecEffectOrigin, vecOrigin); - static iScale; iScale = random_num(3, 8); + + static Float:vecMins[3]; pev(this, pev_absmin, vecMins); + static Float:vecMaxs[3]; pev(this, pev_absmax, vecMaxs); + + static Float:flAvgSize; flAvgSize = ( + ((vecMaxs[0] - FIRE_PADDING) - (vecMins[0] + FIRE_PADDING)) + + ((vecMaxs[1] - FIRE_PADDING) - (vecMins[1] + FIRE_PADDING)) + + ((vecMaxs[2] - FIRE_PADDING) - (vecMins[2] + FIRE_PADDING)) + ) / 3; + + static iScale; iScale = clamp(floatround(flAvgSize * random_float(0.0975, 0.275)), 2, 80); static iSmokeIndex; iSmokeIndex = random(sizeof(g_rgiFlameModelIndex)); static iSmokeFrameRate; iSmokeFrameRate = floatround( From a2e930f7428c7596f2cad72fa80041ef25b7fb6d Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 17 Sep 2023 00:27:21 +0300 Subject: [PATCH 043/231] fix rounds api dir structure --- api/rounds/{ => include}/api_rounds.inc | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename api/rounds/{ => include}/api_rounds.inc (100%) diff --git a/api/rounds/api_rounds.inc b/api/rounds/include/api_rounds.inc similarity index 100% rename from api/rounds/api_rounds.inc rename to api/rounds/include/api_rounds.inc From 76e502aa2d365f0bcb054416797c7758409a9a5c Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 25 Sep 2023 04:59:19 +0300 Subject: [PATCH 044/231] fix followed fire kill logic --- entities/entity_fire.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index 9ef3aa3..4c3ddde 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -135,7 +135,7 @@ public plugin_init() { static pAimEnt; pAimEnt = pev(this, pev_aiment); if (iMoveType == MOVETYPE_FOLLOW) { - if (pev(pAimEnt, pev_deadflag) != DEAD_NO) { + if (!pev_valid(pAimEnt) || pev(pAimEnt, pev_flags) & FL_KILLME || pev(pAimEnt, pev_deadflag) != DEAD_NO) { CE_Kill(this); return; } From 814152e5c987f49825975f4742e0f32a9af487cc Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 31 Oct 2023 00:49:05 +0200 Subject: [PATCH 045/231] update custom entities api --- api/custom-entities/api_custom_entities.sma | 149 +++++++++++------- .../include/api_custom_entities.inc | 5 +- 2 files changed, 96 insertions(+), 58 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 623d83a..e8476a7 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -556,19 +556,19 @@ bool:@Entity_IsCustom(this) { set_pev(this, pev_effects, pev(this, pev_effects) & ~EF_NODRAW); set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); - new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); - @Entity_ApplyPreset(this, iPreset); + @Entity_InitPhysics(this); + @Entity_InitModel(this); + @Entity_InitSize(this); - if (HasPDataMember(itPData, CE_MEMBER_MODEL)) { - static szModel[MAX_RESOURCE_PATH_LENGTH]; - GetPDataMemberString(itPData, CE_MEMBER_MODEL, szModel, charsmax(szModel)); - engfunc(EngFunc_SetModel, this, szModel); - } + new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); - static Float:vecMins[3]; ArrayGetArray(g_rgCEData[CEData_Mins], iId, vecMins); - static Float:vecMaxs[3]; ArrayGetArray(g_rgCEData[CEData_Maxs], iId, vecMaxs); - if (xs_vec_distance(vecMins, vecMaxs) > 0.0) { - engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); + switch (iPreset) { + case CEPreset_Trigger: { + SetPDataMember(itPData, CE_MEMBER_DELAY, 0.1); + } + case CEPreset_NPC: { + set_pev(this, pev_flags, pev(this, pev_flags) | FL_MONSTER); + } } if (HasPDataMember(itPData, CE_MEMBER_ORIGIN)) { @@ -609,6 +609,85 @@ bool:@Entity_IsCustom(this) { } } +@Entity_InitPhysics(this) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); + + if (ExecuteHookFunction(CEFunction_InitPhysics, iId, this) != PLUGIN_CONTINUE) { + return; + } + + switch (iPreset) { + case CEPreset_Item: { + set_pev(this, pev_solid, SOLID_TRIGGER); + set_pev(this, pev_movetype, MOVETYPE_TOSS); + set_pev(this, pev_takedamage, DAMAGE_NO); + } + case CEPreset_NPC: { + set_pev(this, pev_solid, SOLID_BBOX); + set_pev(this, pev_movetype, MOVETYPE_PUSHSTEP); + set_pev(this, pev_takedamage, DAMAGE_AIM); + + set_pev(this, pev_controller_0, 125); + set_pev(this, pev_controller_1, 125); + set_pev(this, pev_controller_2, 125); + set_pev(this, pev_controller_3, 125); + + set_pev(this, pev_gamestate, 1); + set_pev(this, pev_gravity, 1.0); + set_pev(this, pev_fixangle, 1); + set_pev(this, pev_friction, 0.25); + } + case CEPreset_Prop: { + set_pev(this, pev_solid, SOLID_BBOX); + set_pev(this, pev_movetype, MOVETYPE_FLY); + set_pev(this, pev_takedamage, DAMAGE_NO); + } + case CEPreset_Trigger: { + set_pev(this, pev_solid, SOLID_TRIGGER); + set_pev(this, pev_movetype, MOVETYPE_NONE); + set_pev(this, pev_effects, EF_NODRAW); + } + case CEPreset_BSP: { + set_pev(this, pev_movetype, MOVETYPE_PUSH); + set_pev(this, pev_solid, SOLID_BSP); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_WORLDBRUSH); + } + } +} + +@Entity_InitModel(this) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + + if (ExecuteHookFunction(CEFunction_InitModel, iId, this) != PLUGIN_CONTINUE) { + return; + } + + if (HasPDataMember(itPData, CE_MEMBER_MODEL)) { + static szModel[MAX_RESOURCE_PATH_LENGTH]; + GetPDataMemberString(itPData, CE_MEMBER_MODEL, szModel, charsmax(szModel)); + engfunc(EngFunc_SetModel, this, szModel); + } + +} + +@Entity_InitSize(this) { + new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + + if (ExecuteHookFunction(CEFunction_InitSize, iId, this) != PLUGIN_CONTINUE) { + return; + } + + static Float:vecMins[3]; ArrayGetArray(g_rgCEData[CEData_Mins], iId, vecMins); + static Float:vecMaxs[3]; ArrayGetArray(g_rgCEData[CEData_Maxs], iId, vecMaxs); + if (xs_vec_distance(vecMins, vecMaxs) > 0.0) { + engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); + } +} + @Entity_Kill(this, pKiller, bool:bPicked) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); @@ -767,50 +846,6 @@ bool:@Entity_CanActivate(this, pTarget) { ExecuteHookFunction(CEFunction_Activated, iId, this, pActivator); } -@Entity_ApplyPreset(this, CEPreset:iPreset) { - new Trie:itPData = @Entity_GetPData(this); - - switch (iPreset) { - case CEPreset_Item: { - set_pev(this, pev_solid, SOLID_TRIGGER); - set_pev(this, pev_movetype, MOVETYPE_TOSS); - set_pev(this, pev_takedamage, DAMAGE_NO); - } - case CEPreset_NPC: { - set_pev(this, pev_solid, SOLID_BBOX); - set_pev(this, pev_movetype, MOVETYPE_PUSHSTEP); - set_pev(this, pev_takedamage, DAMAGE_AIM); - - set_pev(this, pev_controller_0, 125); - set_pev(this, pev_controller_1, 125); - set_pev(this, pev_controller_2, 125); - set_pev(this, pev_controller_3, 125); - - set_pev(this, pev_gamestate, 1); - set_pev(this, pev_gravity, 1.0); - set_pev(this, pev_flags, pev(this, pev_flags) | FL_MONSTER); - set_pev(this, pev_fixangle, 1); - set_pev(this, pev_friction, 0.25); - } - case CEPreset_Prop: { - set_pev(this, pev_solid, SOLID_BBOX); - set_pev(this, pev_movetype, MOVETYPE_FLY); - set_pev(this, pev_takedamage, DAMAGE_NO); - } - case CEPreset_Trigger: { - set_pev(this, pev_solid, SOLID_TRIGGER); - set_pev(this, pev_movetype, MOVETYPE_NONE); - set_pev(this, pev_effects, EF_NODRAW); - SetPDataMember(itPData, CE_MEMBER_DELAY, 0.1); - } - case CEPreset_BSP: { - set_pev(this, pev_movetype, MOVETYPE_PUSH); - set_pev(this, pev_solid, SOLID_BSP); - set_pev(this, pev_flags, pev(this, pev_flags) | FL_WORLDBRUSH); - } - } -} - @Entity_BloodColor(this) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); @@ -1054,7 +1089,7 @@ ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { static szValue[32]; for (new i = 0; i < charsmax(szValue); ++i) { - szValue[i] = getarg(4, i); + szValue[i] = getarg(4, i); if (szValue[i] == '^0') { break; @@ -1066,7 +1101,7 @@ ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { } } - iResult += callfunc_end(); + iResult += callfunc_end(); } } diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index 9ed95a6..4848f46 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -46,7 +46,10 @@ enum CEFunction { CEFunction_Init, // Calls when entity is initialized (on first spawn) CEFunction_Restart, // Calls when entity is restarting (on first spawn) CEFunction_Think, // Calls when entity thinking - CEFunction_Touch // Calls when entity touched + CEFunction_Touch, // Calls when entity touched + CEFunction_InitModel, // Calls when on entity model initialization + CEFunction_InitSize, // Calls when on entity model initialization + CEFunction_InitPhysics, // Calls when on entity model initialization }; /* From be11622ac937d2395d5b81a612b65d0f68b3db01 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 31 Oct 2023 00:49:54 +0200 Subject: [PATCH 046/231] improve fire entity logic --- entities/entity_fire.sma | 265 +++++++++++++++++++++++++++++++++------ 1 file changed, 224 insertions(+), 41 deletions(-) diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index 4c3ddde..9300cd7 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -20,6 +20,7 @@ #define FIRE_THINK_RATE 0.025 #define FIRE_DAMAGE_RATE 0.5 #define FIRE_WATER_CHECK_RATE 1.0 +#define FIRE_SPREAD_THINK_RATE 1.0 #define FIRE_PARTICLES_EFFECT_RATE 0.025 #define FIRE_LIGHT_EFFECT_RATE 0.05 #define FIRE_SOUND_RATE 1.0 @@ -31,10 +32,13 @@ #define m_flNextDamage "flNextDamage" #define m_flNextSizeUpdate "flNextSizeUpdate" #define m_flNextWaterCheck "flNextWaterCheck" +#define m_flNextSpreadThink "flNextSpreadThink" #define m_flDamage "flDamage" #define m_vecEffectOrigin "vecEffectOrigin" #define m_bAllowSpread "bAllowSpread" #define m_bDamaged "bDamaged" +#define m_flSpreadRange "flSpreadRange" +#define m_flChildrenLifeTime "flChildrenLifeTime" new g_rgszFlameSprites[][] = { "sprites/bexplo.spr", @@ -58,8 +62,18 @@ new g_rgiFlameModelIndex[sizeof(g_rgszFlameSprites)]; new g_rgiFlameModelFramesNum[sizeof(g_rgszFlameSprites)]; new g_rgiSmokeModelIndex[sizeof(g_rgszSmokeSprites)]; new g_rgiSmokeModelFramesNum[sizeof(g_rgszSmokeSprites)]; +new Array:g_irgFireEntities; + +new g_pCvarDamage; +new g_pCvarSpread; +new g_pCvarSpreadRange; +new g_pCvarLifeTime; + +new g_iCeHandler; public plugin_precache() { + g_irgFireEntities = ArrayCreate(); + for (new i = 0; i < sizeof(g_rgszFlameSprites); ++i) { g_rgiFlameModelIndex[i] = precache_model(g_rgszFlameSprites[i]); g_rgiFlameModelFramesNum[i] = engfunc(EngFunc_ModelFrames, g_rgiFlameModelIndex[i]); @@ -74,28 +88,63 @@ public plugin_precache() { precache_sound(g_rgszBurningSounds[i]); } - CE_Register(ENTITY_NAME, NULL_STRING, Float:{-FIRE_BORDERS, -FIRE_BORDERS, -FIRE_BORDERS}, Float:{FIRE_BORDERS, FIRE_BORDERS, FIRE_BORDERS}); + g_iCeHandler = CE_Register(ENTITY_NAME, NULL_STRING, Float:{-16.0, -16.0, -16.0}, Float:{16.0, 16.0, 16.0}); CE_RegisterHook(CEFunction_Init, ENTITY_NAME, "@Entity_Init"); + CE_RegisterHook(CEFunction_KVD, ENTITY_NAME, "@Entity_KeyValue"); CE_RegisterHook(CEFunction_Spawn, ENTITY_NAME, "@Entity_Spawn"); CE_RegisterHook(CEFunction_Touch, ENTITY_NAME, "@Entity_Touch"); CE_RegisterHook(CEFunction_Think, ENTITY_NAME, "@Entity_Think"); CE_RegisterHook(CEFunction_Killed, ENTITY_NAME, "@Entity_Killed"); CE_RegisterHook(CEFunction_Remove, ENTITY_NAME, "@Entity_Remove"); + + register_forward(FM_OnFreeEntPrivateData, "FMHook_OnFreeEntPrivateData"); } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); + + g_pCvarDamage = register_cvar("fire_damage", "5.0"); + g_pCvarSpread = register_cvar("fire_spread", "1"); + g_pCvarSpreadRange = register_cvar("fire_spread_range", "16.0"); + g_pCvarLifeTime = register_cvar("fire_life_time", "10.0"); +} + +public plugin_end() { + ArrayDestroy(g_irgFireEntities); +} + +@Entity_KeyValue(this, const szKey[], const szValue[]) { + if (equal(szKey, "damage")) { + CE_SetMember(this, m_flDamage, str_to_float(szValue)); + } else if (equal(szKey, "lifetime")) { + CE_SetMember(this, m_flChildrenLifeTime, str_to_float(szValue)); + } else if (equal(szKey, "range")) { + CE_SetMember(this, m_flSpreadRange, str_to_float(szValue)); + } else if (equal(szKey, "spread")) { + CE_SetMember(this, m_bAllowSpread, str_to_num(szValue)); + } } @Entity_Init(this) { CE_SetMemberVec(this, m_vecEffectOrigin, NULL_VECTOR); - /* - Currently only partially works, because the touch doesn't handle for non-moving entities, - as well as for entities with "MOVETYPE_FOLLOW" movetype, - so the fire will not spread if it's attached to something. - */ - CE_SetMember(this, m_bAllowSpread, false); + if (!CE_HasMember(this, m_flDamage)) { + CE_SetMember(this, m_flDamage, get_pcvar_float(g_pCvarDamage)); + } + + if (!CE_HasMember(this, m_flChildrenLifeTime)) { + CE_SetMember(this, m_flChildrenLifeTime, get_pcvar_float(g_pCvarLifeTime)); + } + + if (!CE_HasMember(this, m_flSpreadRange)) { + CE_SetMember(this, m_flSpreadRange, get_pcvar_float(g_pCvarSpreadRange)); + } + + if (!CE_HasMember(this, m_bAllowSpread)) { + CE_SetMember(this, m_bAllowSpread, get_pcvar_bool(g_pCvarSpread)); + } + + ArrayPushCell(g_irgFireEntities, this); } @Entity_Spawn(this) { @@ -107,14 +156,20 @@ public plugin_init() { CE_SetMember(this, m_flNextDamage, flGameTime); CE_SetMember(this, m_flNextSizeUpdate, flGameTime); CE_SetMember(this, m_flNextWaterCheck, flGameTime); - CE_SetMember(this, m_flDamage, 5.0); + CE_SetMember(this, m_flNextSpreadThink, flGameTime); + CE_SetMember(this, m_flDamage, Float:CE_GetMember(this, m_flDamage)); CE_SetMember(this, m_bDamaged, false); set_pev(this, pev_takedamage, DAMAGE_NO); set_pev(this, pev_solid, SOLID_TRIGGER); set_pev(this, pev_movetype, MOVETYPE_TOSS); - set_pev(this, pev_nextthink, get_gametime()); + set_pev(this, pev_nextthink, flGameTime); + + // Limited lifetime for the real-time spawned entity + if (!CE_GetMember(this, CE_MEMBER_WORLD)) { + CE_SetMember(this, CE_MEMBER_NEXTKILL, flGameTime + get_pcvar_float(g_pCvarLifeTime)); + } } @Entity_Killed(this) { @@ -123,6 +178,11 @@ public plugin_init() { @Entity_Remove(this) { @Entity_StopSound(this); + + new iIndex = ArrayFindValue(g_irgFireEntities, this); + if (iIndex != -1) { + ArrayDeleteItem(g_irgFireEntities, iIndex); + } } @Entity_Touch(this, pToucher) { @@ -150,6 +210,11 @@ public plugin_init() { CE_SetMember(this, m_flNextWaterCheck, flGameTime + FIRE_WATER_CHECK_RATE); } + if (CE_GetMember(this, m_flNextSpreadThink) <= flGameTime) { + @Entity_SpreadThink(this); + CE_SetMember(this, m_flNextSpreadThink, flGameTime + FIRE_SPREAD_THINK_RATE); + } + /* Since all non-moving entities, except players, don't handle touch, we force a touch event the for burning entity. @@ -205,6 +270,45 @@ public plugin_init() { set_pev(this, pev_nextthink, flGameTime + FIRE_THINK_RATE); } +@Entity_SpreadThink(this) { + if (!@Entity_CanSpread(this)) { + return; + } + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + new Float:flRange = CE_GetMember(this, m_flSpreadRange); + + if (pev(this, pev_movetype) == MOVETYPE_FOLLOW) { + new pAimEnt = pev(this, pev_aiment); + static Float:vecMins[3]; pev(pAimEnt, pev_mins, vecMins); + static Float:vecMaxs[3]; pev(pAimEnt, pev_maxs, vecMaxs); + + flRange = floatmax( + vecMaxs[2] - vecMins[2], + floatmax(vecMaxs[0] - vecMins[0], vecMaxs[1] - vecMins[1]) + ) / 2; + } + + new Array:irgNearbyEntities = ArrayCreate(); + + new pTarget = 0; + while ((pTarget = engfunc(EngFunc_FindEntityInSphere, pTarget, vecOrigin, flRange)) > 0) { + if (pev(pTarget, pev_takedamage) == DAMAGE_NO) { + continue; + } + + ArrayPushCell(irgNearbyEntities, pTarget); + } + + new iNearbyEntitiesNum = ArraySize(irgNearbyEntities); + for (new i = 0; i < iNearbyEntitiesNum; ++i) { + new pTarget = ArrayGetCell(irgNearbyEntities, i); + @Entity_Spread(this, pTarget); + } + + ArrayDestroy(irgNearbyEntities); +} + @Entity_UpdateSize(this) { if (pev(this, pev_movetype) != MOVETYPE_FOLLOW) { return; @@ -240,6 +344,18 @@ public plugin_init() { engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); } +bool:@Entity_CanSpread(this) { + if (!get_pcvar_bool(g_pCvarSpread)) { + return false; + } + + if (!CE_GetMember(this, m_bAllowSpread)) { + return false; + } + + return true; +} + @Entity_InWater(this) { static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); @@ -292,25 +408,16 @@ bool:@Entity_Damage(this, pTarget) { } } - if (pev(this, pev_movetype) != MOVETYPE_FOLLOW) { - if (@Entity_CanIgnite(this, pTarget)) { - // Attach fire to the entity we damaged - set_pev(this, pev_movetype, MOVETYPE_FOLLOW); - set_pev(this, pev_aiment, pTarget); - } - } else if (CE_GetMember(this, m_bAllowSpread)) { - if (@Entity_CanIgnite(this, pTarget)) { - static Float:vecOrigin[3]; - pev(this, pev_origin, vecOrigin); - - new pChild = CE_Create(ENTITY_NAME, vecOrigin); - dllfunc(DLLFunc_Spawn, pChild); - set_pev(pChild, pev_movetype, MOVETYPE_FOLLOW); - set_pev(pChild, pev_aiment, pTarget); - set_pev(pChild, pev_owner, this); - - CE_SetMember(pChild, CE_MEMBER_NEXTKILL, Float:CE_GetMember(this, CE_MEMBER_NEXTKILL)); - } + // if (pev(this, pev_movetype) != MOVETYPE_FOLLOW) { + // if (@Entity_CanIgnite(this, pTarget)) { + // // Attach fire to the entity we damaged + // set_pev(this, pev_movetype, MOVETYPE_FOLLOW); + // set_pev(this, pev_aiment, pTarget); + // } + // } + + if (@Entity_CanSpread(this)) { + @Entity_Spread(this, pTarget); } CE_SetMember(this, m_bDamaged, true); @@ -318,22 +425,68 @@ bool:@Entity_Damage(this, pTarget) { return true; } +@Entity_Spread(this, pTarget) { + if (!@Entity_CanIgnite(this, pTarget)) { + return 0; + } + + new pChild = @Entity_CreateChild(this); + if (!pChild) { + return 0; + } + + set_pev(pChild, pev_aiment, pTarget); + set_pev(pChild, pev_movetype, MOVETYPE_FOLLOW); + + return pChild; +} + +@Entity_CreateChild(this) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + new pChild = CE_Create(ENTITY_NAME, vecOrigin); + if (!pChild) { + return 0; + } + + dllfunc(DLLFunc_Spawn, pChild); + + new Float:flLifeTime = CE_GetMember(this, m_flChildrenLifeTime); + + CE_SetMember(pChild, m_flDamage, Float:CE_GetMember(this, m_flDamage)); + CE_SetMember(pChild, m_bAllowSpread, CE_GetMember(this, m_bAllowSpread)); + CE_SetMember(pChild, m_flSpreadRange, Float:CE_GetMember(this, m_flSpreadRange)); + CE_SetMember(pChild, m_flChildrenLifeTime, flLifeTime); + CE_SetMember(pChild, CE_MEMBER_NEXTKILL, get_gametime() + flLifeTime); + + new pOwner = pev(this, pev_owner); + set_pev(pChild, pev_owner, pOwner); + + return pChild; +} + @Entity_CanIgnite(this, pTarget) { - new iCeFireHandler = CE_GetHandler(ENTITY_NAME); + if (pev(pTarget, pev_takedamage) == DAMAGE_NO) { + return false; + } - static Float:vecOrigin[3]; - pev(pTarget, pev_origin, vecOrigin); + if (pev(pTarget, pev_deadflag) != DEAD_NO) { + return false; + } - new pNearbyTarget = 0; - while ((pNearbyTarget = engfunc(EngFunc_FindEntityInSphere, pNearbyTarget, vecOrigin, 4.0)) > 0) { - if (CE_GetHandlerByEntity(pNearbyTarget) != iCeFireHandler) { - continue; - } + // Fire entity cannot be ignited + if (CE_GetHandlerByEntity(pTarget) == g_iCeHandler) { + return false; + } - // If target is already on fire - if (pev(pNearbyTarget, pev_aiment) == pTarget) { - return false; - } + static iMoveType; iMoveType = pev(this, pev_movetype); + static pAimEnt; pAimEnt = pev(this, pev_aiment); + if (iMoveType == MOVETYPE_FOLLOW && pAimEnt == pTarget) { + return false; + } + + if (@Base_IsOnFire(pTarget)) { + return false; } return true; @@ -382,7 +535,7 @@ bool:@Entity_Damage(this, pTarget) { ((vecMaxs[2] - FIRE_PADDING) - (vecMins[2] + FIRE_PADDING)) ) / 3; - static iScale; iScale = clamp(floatround(flAvgSize * random_float(0.0975, 0.275)), 2, 80); + static iScale; iScale = clamp(floatround(flAvgSize * random_float(0.0975, 0.275)), 4, 80); static iSmokeIndex; iSmokeIndex = random(sizeof(g_rgiFlameModelIndex)); static iSmokeFrameRate; iSmokeFrameRate = floatround( @@ -459,3 +612,33 @@ bool:@Entity_Damage(this, pTarget) { write_byte(iDecayRate); message_end(); } + +bool:@Base_IsOnFire(this) { + new iSize = ArraySize(g_irgFireEntities); + + for (new i = 0; i < iSize; ++i) { + new pFire = ArrayGetCell(g_irgFireEntities, i); + + if (pev(pFire, pev_movetype) == MOVETYPE_FOLLOW && pev(pFire, pev_aiment) == this) { + return true; + } + } + + return false; +} + +@Base_Extinguish(this) { + new iSize = ArraySize(g_irgFireEntities); + + for (new i = 0; i < iSize; ++i) { + new pFire = ArrayGetCell(g_irgFireEntities, i); + + if (pev(pFire, pev_movetype) == MOVETYPE_FOLLOW && pev(pFire, pev_aiment) == this) { + CE_Kill(pFire); + } + } +} + +public FMHook_OnFreeEntPrivateData(pEntity) { + @Base_Extinguish(pEntity); +} From 69d2263722c808901ff68fec4115e2f07cc6914d Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 31 Oct 2023 01:02:36 +0200 Subject: [PATCH 047/231] disabled spread by default --- entities/entity_fire.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index 9300cd7..b95d012 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -141,7 +141,7 @@ public plugin_end() { } if (!CE_HasMember(this, m_bAllowSpread)) { - CE_SetMember(this, m_bAllowSpread, get_pcvar_bool(g_pCvarSpread)); + CE_SetMember(this, m_bAllowSpread, false); } ArrayPushCell(g_irgFireEntities, this); From b89de4ad03a51508099f618a251dceedb5b97d6f Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 31 Oct 2023 05:38:03 +0200 Subject: [PATCH 048/231] remove unused util --- util/nvault_array.inc | 210 ------------------------------------------ 1 file changed, 210 deletions(-) delete mode 100644 util/nvault_array.inc diff --git a/util/nvault_array.inc b/util/nvault_array.inc deleted file mode 100644 index fe24fd5..0000000 --- a/util/nvault_array.inc +++ /dev/null @@ -1,210 +0,0 @@ - -/* - nVault Array - v0.2 - by bugsy -*/ - -/* Change log - v0.1 - - Initial release as a stand-alone include. These functions were initially included as part of - nvault utility but I decided to break them apart since these functions aren't quite utility - functions, they are an extension of nVault base functionality to save/load data. - - Added nvault_isarray() and nvault_arraysize(). - - v0.2 - - Added checking while loading the array data in nvault_read_array() to make sure the data - is nvault_set_array() data. If the data is not array data, the plugin will fail. If the scripter - sees this error in logs, then he is attempting to read regular text data as an array which - should not be attempted. There is also the nvault_isarray() function that can be used to - check the data, but this shouldn't be necessary if the plugin was written properly. -*/ - -#if defined _nvault_array_included - #endinput -#endif -#define _nvault_array_included - -#if !defined _nvault_included - #include -#endif - -//******************************************************************************************** -// Increase this value if your plugin throws the below error: -// "Array size too large, you must increase NVAULT_ARRAY_MAXARRAYSIZE in nvault_array.inc" - -const _NVAULT_ARRAY_MAXARRAYSIZE = 500; -//******************************************************************************************** - -const _NVAULT_ARRAY_CELLSIZE = 5; -const _NVAULT_ARRAY_BUFFERSIZE = ( ( _NVAULT_ARRAY_MAXARRAYSIZE * _NVAULT_ARRAY_CELLSIZE ) + 1 ); -const _NVAULT_ARRAY_BYTEMAP = 0b11110000; -const _NVAULT_ARRAY_NULLBYTE = 0b10101010; - -/* Description: Set array data in a vault - - Param(s): - vault - Vault file handle ID that was returned by nvault_open(). Do not pass an nvault utility file ID. - key[] - Key for data to store. - array[] - Array of data to store. - size - Size of array to store (use sizeof(array)). - - Return value: 1 on success, 0 on failure. - - Comments: None. -*/ -stock nvault_set_array( vault , const key[] , const any:array[] , size ) -{ - new iArrayPos , iOutputPos , iValue[ 1 ] , szString[ _NVAULT_ARRAY_BUFFERSIZE ]; - - if ( size > _NVAULT_ARRAY_MAXARRAYSIZE ) - set_fail_state( "[nVault Array] Array size too large, you must increase NVAULT_ARRAY_MAXARRAYSIZE in nvault_array.inc." ); - - while ( ( iArrayPos < size ) && ( iOutputPos < charsmax( szString ) ) ) - { - iValue[ 0 ] = array[ iArrayPos++ ]; - - if ( !( cellmin <= iValue[ 0 ] <= cellmax ) ) - set_fail_state( "[nVault Array] Value exceeds valid long value range." ); - - szString[ iOutputPos++ ] = _nvault_array_byte_map( iValue ); - - for ( new i = 0 ; i < 4 ; i++ ) - szString[ iOutputPos++ ] = !iValue{ i } ? _NVAULT_ARRAY_NULLBYTE : iValue{ i }; - } - - szString[ iOutputPos ] = EOS; - - return nvault_set( vault , key , szString ); -} - -/* Description: Get array data in a vault - - Param(s): - vault - Vault file handle ID that was returned by nvault_open(). Do not pass an nvault utility file ID. - key[] - Key for record to retrieve - array[] - Array to store retrieved data in. - size - Size of array that data is being retrieved in. - timestamp - Timestamp of record (passed by reference) - - Return value: The number of array elements that were stored in the nvault array record. - - Comments: Do not read an nvault record as an array when it was not stored with nvault_set_array().. -*/ -stock nvault_get_array( vault , const key[] , any:array[] , size , ×tamp=0 ) -{ - new iStringPos , iArrayPos , iValue[ 1 ] , bmByteMap , szString[ _NVAULT_ARRAY_BUFFERSIZE ]; - - if ( size > _NVAULT_ARRAY_MAXARRAYSIZE ) - set_fail_state( "[nVault Array] Array size too large, you must increase _NVAULT_ARRAY_MAXARRAYSIZE in nvault_array.inc." ); - - //Read data from nvault. Switched from nvault_get() to nvault_lookup() to allow timestamp retrieval. - if ( nvault_lookup( vault , key , szString , charsmax( szString ) , timestamp ) ) - { - //Each individual nvault array value consumes 5 characters. If the length of the string mod 5 is not 0 then - //the data is not array data. - if ( strlen( szString ) % 5 ) - set_fail_state( "[nVault Array] Can only use nvault_get_array() on data that was saved using nvault_set_array()." ); - - //Loop through the string, making sure the index of the array and string is within boundaries. - while ( szString[ iStringPos ] && ( iStringPos < charsmax( szString ) ) && ( iArrayPos < size ) ) - { - //Every 5th character of the string is a byte-map which holds a boolean in bits 1-4 for whether or not - //the following 4 characters are null. Bits 5-8 are set to constant 1 so these bits can be checked at each - //iteration to make sure they exist. If they do not, then the data is not nvault array data. - //[1111 0000] : 1's are always 1, 0's are booleans for whether or not adjacent bytes are null. - if ( ( ( bmByteMap = szString[ iStringPos++ ] ) & _NVAULT_ARRAY_BYTEMAP ) != _NVAULT_ARRAY_BYTEMAP ) - set_fail_state( "[nVault Array] Can only use nvault_get_array() on data that was saved using nvault_set_array()." ); - - //Load byte value in cell. If the byte map says it is null, set it to null (0), otherwise set it so the - //value stored in the byte. - for ( new i = 0 ; i < 4 ; i++ ) - { - iValue{ i } = bmByteMap & ( 1 << i ) ? szString[ iStringPos ] : 0; - iStringPos++; - } - - //Assign value to array. - array[ iArrayPos++ ] = iValue[ 0 ]; - } - } - - return iArrayPos; -} - -/* Description: Check if an nvault entry is an array - - Param(s): - vault - Vault file handle ID that was returned by nvault_open(). Do not pass an nvault utility file ID. - key[] - Key for record to check - - Return value: true / false -*/ -stock bool:nvault_isarray( vault , const key[] ) -{ - new szData[ _NVAULT_ARRAY_BUFFERSIZE ] , iTS , iDataLen , bool:bRetVal; - - if ( nvault_lookup( vault , key , szData , charsmax( szData ) , iTS ) && ( iDataLen = strlen( szData ) ) ) - { - bRetVal = true; - - for ( new i = 0 ; i < iDataLen ; i += _NVAULT_ARRAY_CELLSIZE ) - { - if ( ( szData[ i ] & _NVAULT_ARRAY_BYTEMAP ) != _NVAULT_ARRAY_BYTEMAP ) - { - bRetVal = false; - break; - } - } - } - - return bRetVal; -} - -/* Description: Get the size of an nvault array - - Param(s): - vault - Vault file handle ID that was returned by nvault_open(). Do not pass an nvault utility file ID. - key[] - Key for record to check - - Return value: 0 = Record does not exist or is not an nvault array record - >0 = How large the array is (in cells) -*/ -stock nvault_arraysize( vault , const key[] ) -{ - new szData[ _NVAULT_ARRAY_BUFFERSIZE ] , iTS , iDataLen , bool:bIsArray , iRetVal; - - if ( nvault_lookup( vault , key , szData , charsmax( szData ) , iTS ) && ( iDataLen = strlen( szData ) ) ) - { - if ( ( iDataLen < charsmax( szData ) ) && !( iRetVal % _NVAULT_ARRAY_CELLSIZE ) ) - { - bIsArray = true; - - for ( new i = 0 ; i < iDataLen ; i += _NVAULT_ARRAY_CELLSIZE ) - { - if ( ( szData[ i ] & _NVAULT_ARRAY_BYTEMAP ) != _NVAULT_ARRAY_BYTEMAP ) - { - bIsArray = false; - break; - } - } - - if ( bIsArray == true ) - { - iRetVal = ( iDataLen / _NVAULT_ARRAY_CELLSIZE ); - } - } - } - - return iRetVal; -} - -stock _nvault_array_byte_map( iValue[ 1 ] ) -{ - new iOut[ 1 ] = { _NVAULT_ARRAY_BYTEMAP }; - - for ( new i = 0 ; i < 4 ; i++) - iOut[ 0 ] |= !iValue{ i } ? 0 : ( 1 << i ); - - return iOut[ 0 ]; -} From 6c7ac81f462c742f5a95ec5011b3eb82886136d4 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 31 Oct 2023 07:10:59 +0200 Subject: [PATCH 049/231] fix fire think rate --- entities/entity_fire.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index b95d012..a0f9976 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -17,7 +17,7 @@ #define FIRE_BORDERS 2.0 #define FIRE_PADDING (FIRE_BORDERS + 16.0) -#define FIRE_THINK_RATE 0.025 +#define FIRE_THINK_RATE 0.01 #define FIRE_DAMAGE_RATE 0.5 #define FIRE_WATER_CHECK_RATE 1.0 #define FIRE_SPREAD_THINK_RATE 1.0 From a2b37c6d488155b8c1b4a84904569d7b76937e03 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 31 Oct 2023 10:06:17 +0200 Subject: [PATCH 050/231] update custom entities api --- api/custom-entities/api_custom_entities.sma | 33 ++- .../include/api_custom_entities.inc | 206 ++++++++++++------ 2 files changed, 164 insertions(+), 75 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index e8476a7..147ff5c 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -61,6 +61,7 @@ public plugin_precache() { RegisterHam(Ham_ObjectCaps, CE_BASE_CLASSNAME, "HamHook_Base_ObjectCaps", .Post = 0); RegisterHam(Ham_CS_Restart, CE_BASE_CLASSNAME, "HamHook_Base_Restart", .Post = 1); RegisterHam(Ham_Touch, CE_BASE_CLASSNAME, "HamHook_Base_Touch", .Post = 0); + RegisterHam(Ham_Touch, CE_BASE_CLASSNAME, "HamHook_Base_Touch_Post", .Post = 1); RegisterHam(Ham_Killed, CE_BASE_CLASSNAME, "HamHook_Base_Killed", .Post = 0); RegisterHam(Ham_Think, CE_BASE_CLASSNAME, "HamHook_Base_Think", .Post = 0); RegisterHam(Ham_BloodColor, CE_BASE_CLASSNAME, "HamHook_Base_BloodColor", .Post = 0); @@ -462,6 +463,15 @@ public HamHook_Base_Touch(pEntity, pToucher) { return HAM_IGNORED; } +public HamHook_Base_Touch_Post(pEntity, pToucher) { + if (@Entity_IsCustom(pEntity)) { + @Entity_Touched(pEntity, pToucher); + return HAM_HANDLED; + } + + return HAM_IGNORED; +} + public HamHook_Base_Killed(pEntity, pKiller) { if (@Entity_IsCustom(pEntity)) { @Entity_Kill(pEntity, pKiller, false); @@ -542,6 +552,12 @@ bool:@Entity_IsCustom(this) { @Entity_Spawn(this) { new Trie:itPData = @Entity_GetPData(this); + new iId = GetPDataMember(itPData, CE_MEMBER_ID); + + if (ExecuteHookFunction(CEFunction_Spawn, iId, this) != PLUGIN_CONTINUE) { + return; + } + if (!GetPDataMember(itPData, CE_MEMBER_INITIALIZED)) { @Entity_Init(this); } @@ -550,8 +566,6 @@ bool:@Entity_IsCustom(this) { return; } - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - set_pev(this, pev_deadflag, DEAD_NO); set_pev(this, pev_effects, pev(this, pev_effects) & ~EF_NODRAW); set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); @@ -593,7 +607,7 @@ bool:@Entity_IsCustom(this) { SetPDataMember(itPData, CE_MEMBER_NEXTKILL, 0.0); } - ExecuteHookFunction(CEFunction_Spawn, iId, this); + ExecuteHookFunction(CEFunction_Spawned, iId, this); } @Entity_Restart(this) { @@ -755,14 +769,14 @@ bool:@Entity_IsCustom(this) { } @Entity_Touch(this, pToucher) { - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); + static Trie:itPData; itPData = @Entity_GetPData(this); + static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); if (ExecuteHookFunction(CEFunction_Touch, iId, this, pToucher)) { return; } - new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); + static CEPreset:iPreset; iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); switch (iPreset) { case CEPreset_Item: { @@ -776,6 +790,13 @@ bool:@Entity_IsCustom(this) { } } +@Entity_Touched(this, pToucher) { + static Trie:itPData; itPData = @Entity_GetPData(this); + static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); + + ExecuteHookFunction(CEFunction_Touched, iId, this, pToucher); +} + @Entity_GetObjectCaps(this) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index 4848f46..d768b07 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -34,92 +34,99 @@ enum CEPreset { }; enum CEFunction { - CEFunction_Spawn, // Calls when entity spawned - CEFunction_Kill, // Calls when some plugin try to kill entity. return PLUGIN_HANDLED to discard kill. - CEFunction_Killed, // Calls when entity killed - CEFunction_Remove, // Calls when entity removed - CEFunction_Picked, // Calls when player pick item - CEFunction_Pickup, // Calls when player touch item. Should return PLUGIN_HANDLED if picked. CEFunction_KVD, // Calls when new key value obtained - CEFunction_Activate, // Calls every trigger activation check - CEFunction_Activated, // Calls when player activates trigger + CEFunction_Spawn, // Calls during entity spawn CEFunction_Init, // Calls when entity is initialized (on first spawn) - CEFunction_Restart, // Calls when entity is restarting (on first spawn) + CEFunction_InitPhysics, // Calls during on entity physics initialization + CEFunction_InitModel, // Calls during on entity model initialization + CEFunction_InitSize, // Calls during on entity size initialization + CEFunction_Spawned, // Calls when entity spawned + CEFunction_Touch, // Calls during entity touch + CEFunction_Touched, // Calls when entity touched CEFunction_Think, // Calls when entity thinking - CEFunction_Touch, // Calls when entity touched - CEFunction_InitModel, // Calls when on entity model initialization - CEFunction_InitSize, // Calls when on entity model initialization - CEFunction_InitPhysics, // Calls when on entity model initialization + CEFunction_Pickup, // Calls when player touch item. Should return PLUGIN_HANDLED if picked + CEFunction_Picked, // Calls when player pick item + CEFunction_Activate, // Calls every trigger activation check + CEFunction_Activated, // Calls when player activates trigger + CEFunction_Restart, // Calls when entity is restarting + CEFunction_Kill, // Calls when something killing entity. return PLUGIN_HANDLED to block the kill. + CEFunction_Killed, // Calls when entity killed + CEFunction_Remove, // Calls before entity remove }; -/* - * Register entity. +/** + * Register entity * - * @param szName Name of entity. - * @param modelIndex Precached model index. - * @param size Size of entity. - * @param offset Offset of entity origin. - * @param lifeTime Life time of entity. - * @param preset Preset for entity. - * @return Handler of registered entity. + * @param szName Name of an entity + * @param szModel Precached model + * @param vecMins Bounding box mins vector + * @param vecMaxs Bounding box maxs vector + * @param flLifeTime Life time of an entity + * @param flRespawnTime Respawn time of an entity + * @param bIgnoreRounds Entity will ignore rounds if true + * @param iPreset Preset for an entity + * @param iBloodColor Blood color of an entity + * @return Handler of the registered entity */ native CE_Register( const szName[], const szModel[] = "", - const Float:vMins[3] = {0.0, 0.0, 0.0}, - const Float:vMaxs[3] = {0.0, 0.0, 0.0}, - Float:fLifeTime = 0.0, - Float:fRespawnTime = 10.0, - bool:ignoreRounds = false, - CEPreset:preset = CEPreset_None, - bloodColor = -1 + const Float:vecMins[3] = {0.0, 0.0, 0.0}, + const Float:vecMaxs[3] = {0.0, 0.0, 0.0}, + Float:flLifeTime = 0.0, + Float:flRespawnTime = 10.0, + bool:bIgnoreRounds = false, + CEPreset:iPreset = CEPreset_None, + iBloodColor = -1 ); -/* - * Spawn entity. +/** + * Spawn entity * - * @param szName Name of entity. - * @param vOrigin Spawn origin. - * @return Entity index. + * @param szName Name of entity + * @param vecOrigin Spawn origin + * @param bTemp Mark entity as an temporary entity + * @return Entity index */ -native CE_Create(const szName[], const Float:vOrigin[3] = {0.0, 0.0, 0.0}, bool:temp = true); +native CE_Create(const szName[], const Float:vecOrigin[3] = {0.0, 0.0, 0.0}, bool:bTemp = true); -/* - * Kill entity. +/** + * Kill entity * - * @param ent Index of entity. - * @param killer Index of killer. + * @param pEntity Entity index + * @param pKiller Index of killer */ -native bool:CE_Kill(ent, killer = 0); +native bool:CE_Kill(pEntity, pKiller = 0); -/* - * Remove entity correctly. +/** + * Remove entity correctly * - * @param ent Index of entity. + * @param pEntity Entity index * @return Result true/false */ -native bool:CE_Remove(ent); +native bool:CE_Remove(pEntity); -/* - * Gets size of entity. +/** + * Gets size of entity * - * @param szName Name of entity. - * @param vSize Output vector. + * @param szName Name of entity + * @param vecMins Output for bounding box mins vector + * @param vecMaxs Output for bounding box maxs vector */ -native CE_GetSize(const szName[], Float:vMins[3], Float:vMaxs[3]); +native CE_GetSize(const szName[], Float:vecMins[3], Float:vecMaxs[3]); -/* - * Gets model of entity. +/** + * Gets model of entity * - * @param szName Name of entity. + * @param szName Name of entity * @param szModel Output string * @param iLen Output string max length * @return Result true/false */ native bool:CE_GetModel(const szName[], szModel[], iLen); -/* - * Register new hook for entity. +/** + * Register new hook for entity * * @param function Function handler * @param szName Name of entity @@ -127,25 +134,86 @@ native bool:CE_GetModel(const szName[], szModel[], iLen); */ native CE_RegisterHook(CEFunction:function, const szName[], const szCallback[]); -/* - * Gets handler of entity by name. +/** + * Gets handler of entity by name * - * @param szName Name of entity. + * @param szName Name of entity */ native CE_GetHandler(const szName[]); -/* - * Gets handler of entity by index. +/** + * Gets handler of entity by index + * + * @param pEntity Entity index + */ +native CE_GetHandlerByEntity(pEntity); + +/** + * Checks if entity has member + * + * @param pEntity Entity index + * @param szMember Member name + */ +native bool:CE_HasMember(pEntity, const szMember[]); + +/** + * Deletes member of an entity * - * @param ent Index of entity. + * @param pEntity Entity index + * @param szMember Member name */ -native CE_GetHandlerByEntity(ent); +native CE_DeleteMember(pEntity, const szMember[]); -native bool:CE_HasMember(ent, const szMember[]); -native any:CE_GetMember(ent, const szMember[]); -native CE_DeleteMember(ent, const szMember[]); -native CE_SetMember(ent, const szMember[], any:value); -native bool:CE_GetMemberVec(ent, const szMember[], Float:vOut[3]); -native CE_SetMemberVec(ent, const szMember[], const Float:vValue[3]); -native bool:CE_GetMemberString(ent, const szMember[], szOut[], len); -native CE_SetMemberString(ent, const szMember[], const szValue[]); +/** + * Gets member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + */ +native any:CE_GetMember(pEntity, const szMember[]); + +/** + * Sets member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + * @param value Value to set + */ +native CE_SetMember(pEntity, const szMember[], any:value); + +/** + * Gets vector member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + * @param vecOut Output vector + */ +native bool:CE_GetMemberVec(pEntity, const szMember[], Float:vecOut[3]); + +/** + * Sets vector member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + * @param vecValue Vector to set + */ +native CE_SetMemberVec(pEntity, const szMember[], const Float:vecValue[3]); + +/** + * Gets string member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + * @param szOut Buffer to copy the value + * @param iLen Maximum size of buffer + */ +native bool:CE_GetMemberString(pEntity, const szMember[], szOut[], iLen); + +/** + * Sets string member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + * @param szValue String value to set + */ +native CE_SetMemberString(pEntity, const szMember[], const szValue[]); From 3ee63767e6dd2f343f9be3cd65f7d27253ba08de Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 31 Oct 2023 10:06:23 +0200 Subject: [PATCH 051/231] remove unused include --- api/player-cosmetics/api_player_cosmetics.sma | 2 -- 1 file changed, 2 deletions(-) diff --git a/api/player-cosmetics/api_player_cosmetics.sma b/api/player-cosmetics/api_player_cosmetics.sma index 91e4fc6..c49699a 100644 --- a/api/player-cosmetics/api_player_cosmetics.sma +++ b/api/player-cosmetics/api_player_cosmetics.sma @@ -7,8 +7,6 @@ #include -#tryinclude - #define PLUGIN "[API] Player Cosmetics" #define VERSION "1.0.0" #define AUTHOR "Hedgehog Fog" From 7da44ea36df405bf8ad3100aaf757280f1f48e10 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 31 Oct 2023 10:32:36 +0200 Subject: [PATCH 052/231] update fire entity code --- entities/entity_fire.sma | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index a0f9976..a2a1026 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -88,10 +88,10 @@ public plugin_precache() { precache_sound(g_rgszBurningSounds[i]); } - g_iCeHandler = CE_Register(ENTITY_NAME, NULL_STRING, Float:{-16.0, -16.0, -16.0}, Float:{16.0, 16.0, 16.0}); + g_iCeHandler = CE_Register(ENTITY_NAME, _, Float:{-16.0, -16.0, -16.0}, Float:{16.0, 16.0, 16.0}); CE_RegisterHook(CEFunction_Init, ENTITY_NAME, "@Entity_Init"); CE_RegisterHook(CEFunction_KVD, ENTITY_NAME, "@Entity_KeyValue"); - CE_RegisterHook(CEFunction_Spawn, ENTITY_NAME, "@Entity_Spawn"); + CE_RegisterHook(CEFunction_Spawned, ENTITY_NAME, "@Entity_Spawned"); CE_RegisterHook(CEFunction_Touch, ENTITY_NAME, "@Entity_Touch"); CE_RegisterHook(CEFunction_Think, ENTITY_NAME, "@Entity_Think"); CE_RegisterHook(CEFunction_Killed, ENTITY_NAME, "@Entity_Killed"); @@ -147,7 +147,7 @@ public plugin_end() { ArrayPushCell(g_irgFireEntities, this); } -@Entity_Spawn(this) { +@Entity_Spawned(this) { new Float:flGameTime = get_gametime(); CE_SetMember(this, m_flNextParticlesEffect, flGameTime); From af15932e11f59e9f534fb8772e2352cf4ba99299 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 1 Nov 2023 08:14:50 +0200 Subject: [PATCH 053/231] disable solid check for damage --- entities/entity_fire.sma | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index a2a1026..24803ce 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -382,9 +382,9 @@ bool:@Entity_Damage(this, pTarget) { return false; } - if (pev(pTarget, pev_solid) <= SOLID_TRIGGER) { - return false; - } + // if (pev(pTarget, pev_solid) <= SOLID_TRIGGER) { + // return false; + // } static Float:flGameTime; flGameTime = get_gametime(); static Float:flNextDamage; flNextDamage = CE_GetMember(this, m_flNextDamage); From f531f8333e71e64640a384b84fb168bdc8e0b1fa Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 1 Nov 2023 11:24:46 +0200 Subject: [PATCH 054/231] fix get string member native --- api/custom-entities/api_custom_entities.sma | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 147ff5c..ac909da 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -304,15 +304,14 @@ public bool:Native_GetMemberString(iPluginId, iArgc) { static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); - static szValue[128]; - get_string(3, szValue, charsmax(szValue)); - new Trie:itPData = @Entity_GetPData(pEntity); + + static szValue[128]; if (!GetPDataMemberString(itPData, szMember, szValue, charsmax(szValue))) { return false; } - set_string(4, szValue, get_param(5)); + set_string(3, szValue, get_param(4)); return true; } From e191aee45b784948daa5136fa6285ed951ba9958 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 1 Nov 2023 11:24:54 +0200 Subject: [PATCH 055/231] fix plugin name --- api/player-camera/api_player_camera.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/player-camera/api_player_camera.sma b/api/player-camera/api_player_camera.sma index 11fe8fe..012c85b 100644 --- a/api/player-camera/api_player_camera.sma +++ b/api/player-camera/api_player_camera.sma @@ -23,7 +23,7 @@ public plugin_precache() { } public plugin_init() { - register_plugin("[API] Player Camerea", "1.0.0", "Hedgehog Fog"); + register_plugin("[API] Player Camera", "1.0.0", "Hedgehog Fog"); RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); RegisterHamPlayer(Ham_Player_PreThink, "HamHook_Player_PreThink_Post", .Post = 1); From 6ac667491e310f2ccba762099f2ce64b440cc0f5 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 1 Nov 2023 11:29:25 +0200 Subject: [PATCH 056/231] fix return for get vector and string member natives --- api/custom-entities/api_custom_entities.sma | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index ac909da..08f811b 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -277,12 +277,10 @@ public bool:Native_GetMemberVec(iPluginId, iArgc) { new Trie:itPData = @Entity_GetPData(pEntity); static Float:vecValue[3]; - if (!GetPDataMemberVec(itPData, szMember, vecValue)) { - return false; - } - + static bool:bResult; bResult = GetPDataMemberVec(itPData, szMember, vecValue); set_array_f(3, vecValue, sizeof(vecValue)); - return true; + + return bResult; } public Native_SetMemberVec(iPluginId, iArgc) { @@ -307,13 +305,10 @@ public bool:Native_GetMemberString(iPluginId, iArgc) { new Trie:itPData = @Entity_GetPData(pEntity); static szValue[128]; - if (!GetPDataMemberString(itPData, szMember, szValue, charsmax(szValue))) { - return false; - } - + static bool:bResult; bResult = GetPDataMemberString(itPData, szMember, szValue, charsmax(szValue)); set_string(3, szValue, get_param(4)); - return true; + return bResult; } public Native_SetMemberString(iPluginId, iArgc) { From 07308c405df62f09b0870753c67f5b352970ae81 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 1 Nov 2023 11:32:23 +0200 Subject: [PATCH 057/231] add pushing system api --- .../api_advanced_pushing_system.sma | 236 ++++++++++++++++++ .../include/api_advanced_pushing_system.inc | 27 ++ 2 files changed, 263 insertions(+) create mode 100644 api/advanced-pushing-system/api_advanced_pushing_system.sma create mode 100644 api/advanced-pushing-system/include/api_advanced_pushing_system.inc diff --git a/api/advanced-pushing-system/api_advanced_pushing_system.sma b/api/advanced-pushing-system/api_advanced_pushing_system.sma new file mode 100644 index 0000000..5f035ab --- /dev/null +++ b/api/advanced-pushing-system/api_advanced_pushing_system.sma @@ -0,0 +1,236 @@ +#pragma semicolon 1 + +#include +#include +#include +#include + +#include + +#define PLAYER_PREVENT_CLIMB (1<<5) + +#define IS_PLAYER(%1) (%1 >= 1 && %1 <= MaxClients) + +new Float:g_flPlayerReleaseClimbBlock[MAX_PLAYERS + 1]; + +public plugin_init() { + register_plugin("[API] Advanced Pushing System", "1.0.0", "Hedgehog Fog"); + + RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); + RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", .Post = 1); +} + +public plugin_natives() { + register_library("api_advanced_pushing_system"); + register_native("APS_Push", "Native_Push"); + register_native("APS_PushFromOrigin", "Native_PushFromOrigin"); + register_native("APS_PushFromBBox", "Native_PushFromBBox"); +} + +public Native_Push(iPluginId, iArgc) { + new pEntity = get_param(1); + new Float:vecForce[3]; get_array_f(2, vecForce, sizeof(vecForce)); + new APS_Flags:iFlags = APS_Flags:get_param(3); + @Base_Push(pEntity, vecForce, iFlags); +} + +public Native_PushFromOrigin(iPluginId, iArgc) { + new pEntity = get_param(1); + new Float:vecPushOrigin[3]; get_array_f(2, vecPushOrigin, sizeof(vecPushOrigin)); + new Float:flForce = get_param_f(3); + new APS_Flags:iFlags = APS_Flags:get_param(4); + + @Base_PushFromOrigin(pEntity, flForce, vecPushOrigin, iFlags); +} + +public Native_PushFromBBox(iPluginId, iArgc) { + new pEntity = get_param(1); + new Float:flForce = get_param_f(2); + new Float:vecAbsMin[3]; get_array_f(3, vecAbsMin, sizeof(vecAbsMin)); + new Float:vecAbsMax[3]; get_array_f(4, vecAbsMax, sizeof(vecAbsMax)); + new Float:flMinDepthRatio = get_param_f(5); + new Float:flMaxDepthRatio = get_param_f(6); + new Float:flDepthInfluenceMin = get_param_f(7); + new Float:flDepthInfluenceMax = get_param_f(8); + new APS_Flags:iFlags = APS_Flags:get_param(9); + + @Base_PushFromBBox(pEntity, flForce, vecAbsMin, vecAbsMax, flMinDepthRatio, flMaxDepthRatio, flDepthInfluenceMin, flDepthInfluenceMax, iFlags); +} + +public HamHook_Player_Spawn_Post(pPlayer) { + @Player_ReleaseClimbPrevention(pPlayer); +} + +public HamHook_Player_PostThink_Post(pPlayer) { + if (g_flPlayerReleaseClimbBlock[pPlayer] && g_flPlayerReleaseClimbBlock[pPlayer] <= get_gametime()) { + @Player_ReleaseClimbPrevention(pPlayer); + } +} + +@Player_SetClimbPrevention(pPlayer, bool:bValue) { + new iPlayerFlags = pev(pPlayer, pev_iuser3); + + if (bValue) { + iPlayerFlags |= PLAYER_PREVENT_CLIMB; + } else { + iPlayerFlags &= ~PLAYER_PREVENT_CLIMB; + } + + set_pev(pPlayer, pev_iuser3, iPlayerFlags); +} + +@Player_ReleaseClimbPrevention(this) { + if (g_flPlayerReleaseClimbBlock[this]) { + @Player_SetClimbPrevention(this, false); + g_flPlayerReleaseClimbBlock[this] = 0.0; + } +} + +@Base_Push(this, const Float:vecForce[3], APS_Flags:iFlags) { + static Float:vecVelocity[3]; + pev(this, pev_velocity, vecVelocity); + + if (iFlags & APS_Flag_AddForce) { + xs_vec_add(vecVelocity, vecForce, vecVelocity); + } else { + for (new i = 0; i < 3; ++i) { + if (iFlags & APS_Flag_OverlapMode) { + vecVelocity[i] = vecForce[i] ? vecForce[i] : vecVelocity[i]; + } else { + vecVelocity[i] = vecForce[i]; + } + } + } + + set_pev(this, pev_velocity, vecVelocity); + + if (IS_PLAYER(this) && ~pev(this, pev_iuser3) & PLAYER_PREVENT_CLIMB) { + @Player_SetClimbPrevention(this, true); + g_flPlayerReleaseClimbBlock[this] = get_gametime() + 0.1; + } +} + +@Base_PushFromOrigin(this, Float:flForce, Float:vecPushOrigin[3], APS_Flags:iFlags) { + static Float:vecOrigin[3]; + pev(this, pev_origin, vecOrigin); + + static Float:vecForce[3]; + xs_vec_sub(vecOrigin, vecPushOrigin, vecForce); + xs_vec_normalize(vecForce, vecForce); + xs_vec_mul_scalar(vecForce, flForce, vecForce); + + @Base_Push(this, vecForce, iFlags); +} + +@Base_PushFromBBox( + this, + Float:flForce, + const Float:vecAbsMin[3], + const Float:vecAbsMax[3], + Float:flMinDepthRatio, + Float:flMaxDepthRatio, + Float:flDepthInfluenceMin, + Float:flDepthInfluenceMax, + APS_Flags:iFlags +) { + static Float:vecOrigin[3]; + pev(this, pev_origin, vecOrigin); + + static Float:vecToucherAbsMin[3]; + pev(this, pev_absmin, vecToucherAbsMin); + + static Float:vecToucherAbsMax[3]; + pev(this, pev_absmax, vecToucherAbsMax); + + // Find and check intersection point + for (new iAxis = 0; iAxis < 3; ++iAxis) { + if (vecOrigin[iAxis] < vecAbsMin[iAxis]) { + vecOrigin[iAxis] = vecToucherAbsMax[iAxis]; + } else if (vecOrigin[iAxis] > vecAbsMax[iAxis]) { + vecOrigin[iAxis] = vecToucherAbsMin[iAxis]; + } + + if (vecAbsMin[iAxis] >= vecOrigin[iAxis]) return; + if (vecAbsMax[iAxis] <= vecOrigin[iAxis]) return; + } + + new iClosestAxis = -1; + new pTrace = create_tr2(); + static Float:vecOffset[3]; xs_vec_copy(Float:{0.0, 0.0, 0.0}, vecOffset); + + for (new iAxis = 0; iAxis < 3; ++iAxis) { + // Calculates the toucher's offset relative to the current axis + static Float:flSideOffsets[2]; + flSideOffsets[0] = vecAbsMin[iAxis] - vecOrigin[iAxis]; + flSideOffsets[1] = vecAbsMax[iAxis] - vecOrigin[iAxis]; + + if (iAxis == 2 && iClosestAxis != -1) { + break; + } + + for (new side = 0; side < 2; ++side) { + // Check exit from current side + static Float:vecTarget[3]; + xs_vec_copy(vecOrigin, vecTarget); + vecTarget[iAxis] += flSideOffsets[side]; + engfunc(EngFunc_TraceMonsterHull, this, vecOrigin, vecTarget, IGNORE_MONSTERS | IGNORE_GLASS, this, pTrace); + + static Float:flFraction; + get_tr2(pTrace, TR_flFraction, flFraction); + + // No exit, cannot push this way + if (flFraction != 1.0) { + flSideOffsets[side] = 0.0; + } + + if (iAxis != 2) { + // Save minimum offset, but ignore zero offsets + if (!vecOffset[iAxis] || (flSideOffsets[side] && floatabs(flSideOffsets[side]) < floatabs(vecOffset[iAxis]))) { + vecOffset[iAxis] = flSideOffsets[side]; + } + } else { + // Priority on bottom side + if (flSideOffsets[0]) { + vecOffset[iAxis] = flSideOffsets[0]; + } + } + + // Find closest axis to push + if (vecOffset[iAxis]) { + if (iClosestAxis == -1 || floatabs(vecOffset[iAxis]) < floatabs(vecOffset[iClosestAxis])) { + iClosestAxis = iAxis; + } + } + } + } + + free_tr2(pTrace); + + // Push by closest axis + if (iClosestAxis == -1) return; + + static iPushDir; iPushDir = vecOffset[iClosestAxis] > 0.0 ? 1 : -1; + static Float:vecSize[3]; xs_vec_sub(vecAbsMax, vecAbsMin, vecSize); + static Float:flDepthRatio; flDepthRatio = floatabs(vecOffset[iClosestAxis]) / (vecSize[iClosestAxis] / 2); + + flDepthRatio = floatclamp(flDepthRatio, flMinDepthRatio, flMaxDepthRatio); + + static Float:vecForce[3]; xs_vec_copy(Float:{0.0, 0.0, 0.0}, vecForce); + + static bool:bInInfluence; bInInfluence = ( + flDepthRatio >= flDepthInfluenceMin && + flDepthRatio <= flDepthInfluenceMax + ); + + if (bInInfluence) { + vecForce[iClosestAxis] = flForce * flDepthRatio * iPushDir; + } else { + vecForce[iClosestAxis] = flForce * iPushDir; + + if (iFlags & APS_Flag_AddForceInfluenceMode) { + iFlags &= ~APS_Flag_AddForce; + } + } + + @Base_Push(this, vecForce, iFlags); +} diff --git a/api/advanced-pushing-system/include/api_advanced_pushing_system.inc b/api/advanced-pushing-system/include/api_advanced_pushing_system.inc new file mode 100644 index 0000000..44cb698 --- /dev/null +++ b/api/advanced-pushing-system/include/api_advanced_pushing_system.inc @@ -0,0 +1,27 @@ +#if defined _api_advanced_pushing_system_included + #endinput +#endif +#define _api_advanced_pushing_system_included + +#pragma reqlib api_advanced_pushing_system + +enum APS_Flags (<<=1) { + APS_Flag_None, + APS_Flag_AddForce = 1, + APS_Flag_AddForceInfluenceMode, + APS_Flag_OverlapMode +}; + +native APS_Push(pEntity, const Float:vecForce[3], APS_Flags:iFlags = APS_Flag_None); +native APS_PushFromOrigin(pEntity, Float:flForce, Float:vecOrigin[3], APS_Flags:iFlags = APS_Flag_None); +native APS_PushFromBBox( + pEntity, + Float:flForce, + const Float:vecAbsMin[3], + const Float:vecToucherAbsMax[3], + Float:flMinDepthRatio = 0.0, + Float:flMaxDepthRatio = 1.0, + Float:flDepthInfluenceMin = 0.0, + Float:flDepthInfluenceMax = 1.0, + APS_Flags:iFlags = APS_Flag_None +); From d1d2879842830f23467b4b2f9f15332dddfa1f0a Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 1 Nov 2023 11:39:56 +0200 Subject: [PATCH 058/231] fix include --- api/advanced-pushing-system/api_advanced_pushing_system.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/advanced-pushing-system/api_advanced_pushing_system.sma b/api/advanced-pushing-system/api_advanced_pushing_system.sma index 5f035ab..f7bd705 100644 --- a/api/advanced-pushing-system/api_advanced_pushing_system.sma +++ b/api/advanced-pushing-system/api_advanced_pushing_system.sma @@ -5,7 +5,7 @@ #include #include -#include +#include #define PLAYER_PREVENT_CLIMB (1<<5) From a2469956f338464a3aad358f81b46e8b102c0f08 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 1 Nov 2023 11:43:41 +0200 Subject: [PATCH 059/231] fix native params order --- api/advanced-pushing-system/api_advanced_pushing_system.sma | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/advanced-pushing-system/api_advanced_pushing_system.sma b/api/advanced-pushing-system/api_advanced_pushing_system.sma index f7bd705..666b780 100644 --- a/api/advanced-pushing-system/api_advanced_pushing_system.sma +++ b/api/advanced-pushing-system/api_advanced_pushing_system.sma @@ -36,8 +36,8 @@ public Native_Push(iPluginId, iArgc) { public Native_PushFromOrigin(iPluginId, iArgc) { new pEntity = get_param(1); - new Float:vecPushOrigin[3]; get_array_f(2, vecPushOrigin, sizeof(vecPushOrigin)); - new Float:flForce = get_param_f(3); + new Float:flForce = get_param_f(2); + new Float:vecPushOrigin[3]; get_array_f(3, vecPushOrigin, sizeof(vecPushOrigin)); new APS_Flags:iFlags = APS_Flags:get_param(4); @Base_PushFromOrigin(pEntity, flForce, vecPushOrigin, iFlags); From 1f9843f625fec9931a349999be3f954c443c1902 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 2 Nov 2023 16:30:59 +0200 Subject: [PATCH 060/231] update rounds api --- api/rounds/api_rounds.sma | 45 ------------------------------- api/rounds/include/api_rounds.inc | 9 ++----- 2 files changed, 2 insertions(+), 52 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index 79332a1..ad892d7 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -24,11 +24,6 @@ new g_iFwRoundRestart; new g_iFwRoundTimerTick; new g_iFwCheckWinConditions; -// deprecated -new g_iFwCheckWinCondition; - -new Array:g_irgCheckWinConditionHooks; - new g_pCvarRoundEndDelay; public plugin_init() { @@ -48,11 +43,6 @@ public plugin_init() { g_iFwRoundTimerTick = CreateMultiForward("Round_Fw_RoundTimerTick", ET_IGNORE); g_iFwCheckWinConditions = CreateMultiForward("Round_Fw_CheckWinConditions", ET_STOP); - //deprecated - g_iFwCheckWinCondition = CreateMultiForward("Round_Fw_CheckWinCondition", ET_STOP); - - g_irgCheckWinConditionHooks = ArrayCreate(Hook); - g_pCvarRoundEndDelay = get_cvar_pointer("mp_round_restart_delay"); } @@ -64,11 +54,6 @@ public plugin_natives() { register_native("Round_GetTimeLeft", "Native_GetTimeLeft"); register_native("Round_IsRoundStarted", "Native_IsRoundStarted"); register_native("Round_IsRoundEnd", "Native_IsRoundEnd"); - register_native("Round_HookCheckWinConditions", "Native_HookCheckWinConditions"); -} - -public plugin_destroy() { - ArrayDestroy(g_irgCheckWinConditionHooks); } public server_frame() { @@ -135,27 +120,8 @@ public HC_RoundEnd(WinStatus:iStatus, ScenarioEventEndRound:iEvent, Float:flDela } public HC_CheckWinConditions() { - new iSize = ArraySize(g_irgCheckWinConditionHooks); - - for (new i = 0; i < iSize; ++i) { - static hook[_:Hook]; - ArrayGetArray(g_irgCheckWinConditionHooks, i, hook); - - if (callfunc_begin_i(hook[Hook_FunctionId], hook[Hook_PluginId]) == 1) { - if (callfunc_end() > PLUGIN_CONTINUE) { - return HC_SUPERCEDE; - } - } - } - static iReturn; - ExecuteForward(g_iFwCheckWinCondition, iReturn); - if (iReturn != PLUGIN_CONTINUE) { - log_amx("CheckWinCondition forward is deprecated!"); - return HC_SUPERCEDE; - } - ExecuteForward(g_iFwCheckWinConditions, iReturn); if (iReturn != PLUGIN_CONTINUE) { return HC_SUPERCEDE; @@ -191,17 +157,6 @@ public bool:Native_IsRoundEnd(iPluginId, iArgc) { return g_iGameState == GameState_RoundEnd; } -public Native_HookCheckWinConditions(iPluginId, iArgc) { - new szFunctionName[32]; - get_string(1, szFunctionName, charsmax(szFunctionName)); - - new hook[Hook]; - hook[Hook_PluginId] = iPluginId; - hook[Hook_FunctionId] = get_func_id(szFunctionName, iPluginId); - - ArrayPushArray(g_irgCheckWinConditionHooks, hook); -} - DispatchWin(iTeam, Float:flDelay = -1.0) { if (g_iGameState == GameState_RoundEnd) { return; diff --git a/api/rounds/include/api_rounds.inc b/api/rounds/include/api_rounds.inc index 36a5c07..5e25f1b 100644 --- a/api/rounds/include/api_rounds.inc +++ b/api/rounds/include/api_rounds.inc @@ -5,7 +5,7 @@ #pragma reqlib api_rounds -native Round_DispatchWin(iTeam, Float:fDelay); +native Round_DispatchWin(iTeam, Float:fDelay = -1.0); native Round_SetTime(iTime); native Round_GetTime(); native Round_GetTimeLeft(); @@ -18,9 +18,4 @@ forward Round_Fw_RoundEnd(iWinnerTeam); forward Round_Fw_RoundExpired(); forward Round_Fw_RoundRestart(); forward Round_Fw_RoundTimerTick(); -forward Round_Fw_CheckWinCondition(); - -/** - * @deprecated This function is deprecated, use Round_Fw_CheckWinCondition forward instead. - */ -native Round_HookCheckWinConditions(const szFunction[]); +forward Round_Fw_CheckWinConditions(); From 66df476091cee32b34a53dfaa1fdc5eee4df9398 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 3 Nov 2023 03:07:53 +0200 Subject: [PATCH 061/231] add forwards --- api/player-camera/api_player_camera.sma | 22 ++++++++++++++++++- .../include/api_player_camera.inc | 5 +++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/api/player-camera/api_player_camera.sma b/api/player-camera/api_player_camera.sma index 012c85b..0c7ddf3 100644 --- a/api/player-camera/api_player_camera.sma +++ b/api/player-camera/api_player_camera.sma @@ -12,6 +12,11 @@ new Float:g_rgflPlayerCamerOffset[MAX_PLAYERS][3]; new Float:g_rgflPlayerCameraThinkDelay[MAX_PLAYERS]; new Float:g_rgflPlayerCameraNextThink[MAX_PLAYERS]; +new g_fwActivate; +new g_fwDeactivate; +new g_fwActivated; +new g_fwDeactivated; + new g_iszTriggerCameraClassname; new g_iCameraModelIndex; @@ -23,10 +28,15 @@ public plugin_precache() { } public plugin_init() { - register_plugin("[API] Player Camera", "1.0.0", "Hedgehog Fog"); + register_plugin("[API] Player Camerea", "1.0.0", "Hedgehog Fog"); RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); RegisterHamPlayer(Ham_Player_PreThink, "HamHook_Player_PreThink_Post", .Post = 1); + + g_fwActivate = CreateMultiForward("PlayerCamera_Fw_Activate", ET_STOP, FP_CELL); + g_fwDeactivate = CreateMultiForward("PlayerCamera_Fw_Deactivate", ET_STOP, FP_CELL); + g_fwActivated = CreateMultiForward("PlayerCamera_Fw_Activated", ET_IGNORE, FP_CELL); + g_fwDeactivated = CreateMultiForward("PlayerCamera_Fw_Deactivated", ET_IGNORE, FP_CELL); } public plugin_natives() { @@ -115,10 +125,15 @@ ActivatePlayerCamera(pPlayer) { return; } + new iResult = 0; ExecuteForward(g_fwActivate, iResult, pPlayer); + if (iResult != PLUGIN_CONTINUE) return; + g_rgpPlayerCamera[pPlayer] = CreatePlayerCamera(pPlayer); g_rgflPlayerCameraNextThink[pPlayer] = 0.0; engfunc(EngFunc_SetView, pPlayer, g_rgpPlayerCamera[pPlayer]); + + ExecuteForward(g_fwActivated, _, pPlayer); } DeactivatePlayerCamera(pPlayer) { @@ -126,12 +141,17 @@ DeactivatePlayerCamera(pPlayer) { return; } + new iResult = 0; ExecuteForward(g_fwDeactivate, iResult, pPlayer); + if (iResult != PLUGIN_CONTINUE) return; + engfunc(EngFunc_RemoveEntity, g_rgpPlayerCamera[pPlayer]); g_rgpPlayerCamera[pPlayer] = -1; if (is_user_connected(pPlayer)) { engfunc(EngFunc_SetView, pPlayer, pPlayer); } + + ExecuteForward(g_fwDeactivated, _, pPlayer); } SetCameraOffset(pPlayer, const Float:vecOffset[3]) { diff --git a/api/player-camera/include/api_player_camera.inc b/api/player-camera/include/api_player_camera.inc index 2333cfd..c97466f 100644 --- a/api/player-camera/include/api_player_camera.inc +++ b/api/player-camera/include/api_player_camera.inc @@ -12,3 +12,8 @@ native PlayerCamera_SetOffset(pPlayer, const Float:vecOffset[3]); native PlayerCamera_SetAngles(pPlayer, const Float:vecAngles[3]); native PlayerCamera_SetDistance(pPlayer, Float:flDistance); native PlayerCamera_SetThinkDelay(pPlayer, Float:flThinkDelay); + +forward PlayerCamera_Fw_Activate(pPlayer); +forward PlayerCamera_Fw_Deactivate(pPlayer); +forward PlayerCamera_Fw_Activated(pPlayer); +forward PlayerCamera_Fw_Deactivated(pPlayer); From 04e179aa550e4188003c5741c6e5f9f86a75cb46 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 5 Nov 2023 14:03:56 +0200 Subject: [PATCH 062/231] add waypoint marker api --- api/waypoint-markers/api_waypoint_markers.sma | 359 ++++++++++++++++++ .../include/api_waypoint_markers.inc | 17 + 2 files changed, 376 insertions(+) create mode 100644 api/waypoint-markers/api_waypoint_markers.sma create mode 100644 api/waypoint-markers/include/api_waypoint_markers.inc diff --git a/api/waypoint-markers/api_waypoint_markers.sma b/api/waypoint-markers/api_waypoint_markers.sma new file mode 100644 index 0000000..4abf4b5 --- /dev/null +++ b/api/waypoint-markers/api_waypoint_markers.sma @@ -0,0 +1,359 @@ +#pragma semicolon 1 + +#include +#include +#include +#include +#include + +#include + +#define IS_PLAYER(%1) (%1 >= 1 && %1 <= MaxClients) + +#define MARKER_CLASSNAME "_wpmarker" +#define MARKER_UPDATE_RATE 0.01 +#define TRACE_IGNORE_FLAGS (IGNORE_GLASS | IGNORE_MONSTERS) +#define SCREEN_SIZE_FACTOR 1024.0 +#define SPRITE_MIN_SCALE 0.004 + +enum _:Frame { + Frame_TopLeft, + Frame_TopRight, + Frame_Center, + Frame_BottomLeft, + Frame_BottomRight +}; + +enum MarkerPlayerData { + Float:MarkerPlayerData_Origin[3], + Float:MarkerPlayerData_Angles[3], + Float:MarkerPlayerData_Scale, + Float:MarkerPlayerData_LastUpdate, + Float:MarkerPlayerData_IsVisible, + Float:MarkerPlayerData_ShouldHide, + Float:MarkerPlayerData_NextUpdate +}; + +new g_pCvarCompensation; + +new g_fwCreated; +new g_fwDestroy; + +new g_pTrace; +new g_iszInfoTargetClassname; +new Array:g_irgpMarkers; +new bool:g_bCompensation; + +new Float:g_rgflPlayerDelay[MAX_PLAYERS + 1]; +new Float:g_rgflPlayerNextDelayUpdate[MAX_PLAYERS + 1]; + +public plugin_precache() { + g_pTrace = create_tr2(); + g_irgpMarkers = ArrayCreate(); + g_iszInfoTargetClassname = engfunc(EngFunc_AllocString, "info_target"); + + g_fwCreated = CreateMultiForward("WaypointMarker_Fw_Created", ET_IGNORE, FP_CELL); + g_fwDestroy = CreateMultiForward("WaypointMarker_Fw_Destroy", ET_IGNORE, FP_CELL); +} + +public plugin_init() { + register_plugin("[API] Waypoint Markers", "1.0.0", "Hedgehog Fog"); + + RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", 1); + + register_forward(FM_AddToFullPack, "FMHook_AddToFullPack_Post", 1); + register_forward(FM_CheckVisibility, "FMHook_CheckVisibility", 0); + register_forward(FM_OnFreeEntPrivateData, "FMHook_OnFreeEntPrivateData", 0); + + g_pCvarCompensation = create_cvar("waypoint_marker_compensation", "1"); + + bind_pcvar_num(g_pCvarCompensation, g_bCompensation); +} + +public plugin_end() { + free_tr2(g_pTrace); + ArrayDestroy(g_irgpMarkers); +} + +public plugin_natives() { + register_library("api_waypoint_markers"); + register_native("WaypointMarker_Create", "Native_CreateMarker"); + register_native("WaypointMarker_SetVisible", "Native_SetVisible"); +} + +public Native_CreateMarker(iPluginId, iArgc) { + new szModel[MAX_RESOURCE_PATH_LENGTH]; get_string(1, szModel, charsmax(szModel)); + new Float:vecOrigin[3]; get_array_f(2, vecOrigin, sizeof(vecOrigin)); + new Float:flScale = get_param_f(3); + new Float:vecSize[3]; get_array_f(4, vecSize, 2); + + vecSize[2] = floatmax(vecSize[0], vecSize[1]); + + new pMarker = @Marker_Create(); + dllfunc(DLLFunc_Spawn, pMarker); + engfunc(EngFunc_SetModel, pMarker, szModel); + engfunc(EngFunc_SetOrigin, pMarker, vecOrigin); + set_pev(pMarker, pev_scale, flScale); + set_pev(pMarker, pev_size, vecSize); + + return pMarker; +} + +public Native_SetVisible(iPluginId, iArgc) { + new pMarker = get_param(1); + new pPlayer = get_param(2); + new bool:bValue = bool:get_param(3); + + @Marker_SetVisible(pMarker, pPlayer, bValue); +} + +public HamHook_Player_PostThink_Post(pPlayer) { + static Float:flGameTime; flGameTime = get_gametime(); + + if (g_rgflPlayerNextDelayUpdate[pPlayer] <= flGameTime) { + if (g_bCompensation) { + static iPing, iLoss; get_user_ping(pPlayer, iPing, iLoss); + g_rgflPlayerDelay[pPlayer] = float(iPing) / 1000.0; + } else { + g_rgflPlayerDelay[pPlayer] = 0.0; + } + + g_rgflPlayerNextDelayUpdate[pPlayer] = flGameTime + 0.1; + } + + static iMarkersNum; iMarkersNum = ArraySize(g_irgpMarkers); + for (new iMarker = 0; iMarker < iMarkersNum; ++iMarker) { + static pMarker; pMarker = ArrayGetCell(g_irgpMarkers, iMarker); + @Marker_Calculate(pMarker, pPlayer, g_rgflPlayerDelay[pPlayer]); + } +} + +public FMHook_AddToFullPack_Post(es, e, pEntity, pHost, pHostFlags, iPlayer, pSet) { + if (!IS_PLAYER(pHost)) return FMRES_IGNORED; + if (!is_user_alive(pHost)) return FMRES_IGNORED; + if (is_user_bot(pHost)) return FMRES_IGNORED; + if (!pev_valid(pEntity)) return FMRES_IGNORED; + + if (@Base_IsMarker(pEntity)) { + static Array:irgsPlayersData; irgsPlayersData = Array:pev(pEntity, pev_iuser1); + static Struct:sPlayerData; sPlayerData = ArrayGetCell(irgsPlayersData, pHost); + + if (!StructGetCell(sPlayerData, MarkerPlayerData_IsVisible)) return FMRES_SUPERCEDE; + if (StructGetCell(sPlayerData, MarkerPlayerData_ShouldHide)) return FMRES_SUPERCEDE; + + static Float:vecOrigin[3]; StructGetArray(sPlayerData, MarkerPlayerData_Origin, vecOrigin, sizeof(vecOrigin)); + static Float:vecAngles[3]; StructGetArray(sPlayerData, MarkerPlayerData_Angles, vecAngles, sizeof(vecAngles)); + static Float:flScale; flScale = StructGetCell(sPlayerData, MarkerPlayerData_Scale); + + set_es(es, ES_Origin, vecOrigin); + set_es(es, ES_Angles, vecAngles); + set_es(es, ES_Scale, flScale); + } + + return FMRES_HANDLED; +} + +public FMHook_CheckVisibility(pEntity) { + if (!pev_valid(pEntity)) return FMRES_IGNORED; + + if (@Base_IsMarker(pEntity)) { + forward_return(FMV_CELL, 1); + return FMRES_SUPERCEDE; + } + + return FMRES_IGNORED; +} + +public FMHook_OnFreeEntPrivateData(pEntity) { + if (@Base_IsMarker(pEntity)) { + @Marker_Free(pEntity); + } +} + +@Base_IsMarker(this) { + static szClassName[32]; + pev(this, pev_classname, szClassName, charsmax(szClassName)); + + return equal(szClassName, MARKER_CLASSNAME); +} + +@Marker_Create() { + new this = engfunc(EngFunc_CreateNamedEntity, g_iszInfoTargetClassname); + + set_pev(this, pev_classname, MARKER_CLASSNAME); + set_pev(this, pev_scale, 1.0); + set_pev(this, pev_rendermode, kRenderTransAdd); + set_pev(this, pev_renderamt, 255.0); + set_pev(this, pev_movetype, MOVETYPE_NONE); + set_pev(this, pev_solid, SOLID_NOT); + set_pev(this, pev_spawnflags, SF_SPRITE_STARTON); + + new Array:irgsPlayersData = ArrayCreate(1, MaxClients + 1); + for (new pPlayer = 0; pPlayer <= MaxClients; ++pPlayer) { + ArrayPushCell(irgsPlayersData, Invalid_Struct); + } + + set_pev(this, pev_iuser1, irgsPlayersData); + + ArrayPushCell(g_irgpMarkers, this); + + ExecuteForward(g_fwCreated, _, this); + + return this; +} + +@Marker_Free(this) { + ExecuteForward(g_fwDestroy, _, this); + + static Array:irgsPlayersData; irgsPlayersData = Array:pev(this, pev_iuser1); + + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + static Struct:sPlayerData; sPlayerData = ArrayGetCell(irgsPlayersData, pPlayer); + if (sPlayerData == Invalid_Struct) continue; + StructDestroy(sPlayerData); + } + + ArrayDestroy(irgsPlayersData); +} + +@Marker_SetVisible(this, pPlayer, bool:bValue) { + if (!pPlayer) { + for (new pPlayer = 0; pPlayer <= MaxClients; ++pPlayer) { + @Marker_SetVisible(this, pPlayer, bValue); + } + + return; + } + + if (!IS_PLAYER(pPlayer)) return; + + static Struct:sPlayerData; sPlayerData = @Marker_GetPlayerData(this, pPlayer); + StructSetCell(sPlayerData, MarkerPlayerData_IsVisible, bValue); +} + +@Marker_Calculate(this, pPlayer, Float:flDelay) { + static Float:flGameTime; flGameTime = get_gametime(); + static Struct:sPlayerData; sPlayerData = @Marker_GetPlayerData(this, pPlayer); + + if (!StructGetCell(sPlayerData, MarkerPlayerData_IsVisible)) return; + if (StructGetCell(sPlayerData, MarkerPlayerData_NextUpdate) > flGameTime) return; + + static Float:flLastUpdate; flLastUpdate = StructGetCell(sPlayerData, MarkerPlayerData_LastUpdate); + static Float:flDelta; flDelta = flGameTime - flLastUpdate; + + static Float:vecViewOrigin[3]; + ExecuteHam(Ham_Player_GetGunPosition, pPlayer, vecViewOrigin); + + if (g_bCompensation) { + static Float:vecVelocity[3]; + pev(pPlayer, pev_velocity, vecVelocity); + xs_vec_add_scaled(vecViewOrigin, vecVelocity, flDelay * flDelta, vecViewOrigin); + } + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + if (!ExecuteHamB(Ham_FVecInViewCone, pPlayer, vecOrigin)) { + StructSetCell(sPlayerData, MarkerPlayerData_ShouldHide, true); + return; + } + + static Float:vecAngles[3]; + xs_vec_sub(vecOrigin, vecViewOrigin, vecAngles); + xs_vec_normalize(vecAngles, vecAngles); + vector_to_angle(vecAngles, vecAngles); + vecAngles[0] = -vecAngles[0]; + + static iFov; iFov = get_ent_data(pPlayer, "CBasePlayer", "m_iFOV"); + static Float:flDistance; flDistance = xs_vec_distance(vecViewOrigin, vecOrigin); + static Float:vecSize[3]; pev(this, pev_size, vecSize); + static Float:vecForward[3]; angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecForward); + static Float:vecUp[3]; angle_vector(vecAngles, ANGLEVECTOR_UP, vecUp); + static Float:vecRight[3]; angle_vector(vecAngles, ANGLEVECTOR_RIGHT, vecRight); + static Float:flFrameScale; flFrameScale = CalculateDistanceScaleFactor(flDistance, iFov); + + static Float:rgFrame[Frame][3]; + CreateFrame(vecOrigin, vecSize[0] * flFrameScale, vecSize[1] * flFrameScale, vecUp, vecRight, rgFrame); + TraceFrame(vecViewOrigin, rgFrame, pPlayer, rgFrame); + + static Float:flProjectionDistance; flProjectionDistance = xs_vec_distance(rgFrame[Frame_Center], vecViewOrigin); + + static Float:flScale; pev(this, pev_scale, flScale); + flScale *= CalculateDistanceScaleFactor(flProjectionDistance, iFov); + flScale = floatmax(flScale, SPRITE_MIN_SCALE); + + static Float:flDepth; flDepth = floatmin((vecSize[2] / 2) * flScale, flProjectionDistance); + MoveFrame(rgFrame, vecForward, -flDepth, rgFrame); + + StructSetCell(sPlayerData, MarkerPlayerData_ShouldHide, false); + StructSetCell(sPlayerData, MarkerPlayerData_Scale, flScale); + StructSetArray(sPlayerData, MarkerPlayerData_Origin, rgFrame[Frame_Center], sizeof(rgFrame[])); + StructSetArray(sPlayerData, MarkerPlayerData_Angles, vecAngles, sizeof(vecAngles)); + StructSetCell(sPlayerData, MarkerPlayerData_LastUpdate, flGameTime); + StructSetCell(sPlayerData, MarkerPlayerData_NextUpdate, flGameTime + MARKER_UPDATE_RATE); +} + +Struct:@Marker_GetPlayerData(this, pPlayer) { + static Array:irgsPlayersData; irgsPlayersData = Array:pev(this, pev_iuser1); + static Struct:sPlayerData; sPlayerData = ArrayGetCell(irgsPlayersData, pPlayer); + + if (sPlayerData == Invalid_Struct) { + sPlayerData = StructCreate(MarkerPlayerData); + StructSetCell(sPlayerData, MarkerPlayerData_IsVisible, true); + StructSetCell(sPlayerData, MarkerPlayerData_ShouldHide, false); + StructSetCell(sPlayerData, MarkerPlayerData_LastUpdate, get_gametime()); + StructSetCell(sPlayerData, MarkerPlayerData_NextUpdate, get_gametime()); + ArraySetCell(irgsPlayersData, pPlayer, sPlayerData); + } + + return sPlayerData; +} + +CreateFrame(const Float:vecOrigin[3], Float:flWidth, Float:flHeight, const Float:vecUp[3], const Float:vecRight[3], Float:rgFrameOut[Frame][3]) { + static Float:flHalfWidth; flHalfWidth = flWidth / 2; + static Float:flHalfHeight; flHalfHeight = flHeight / 2; + + for (new iAxis = 0; iAxis < 3; ++iAxis) { + rgFrameOut[Frame_TopLeft][iAxis] = vecOrigin[iAxis] + (-vecRight[iAxis] * flHalfWidth) + (vecUp[iAxis] * flHalfHeight); + rgFrameOut[Frame_TopRight][iAxis] = vecOrigin[iAxis] + (vecRight[iAxis] * flHalfWidth) + (vecUp[iAxis] * flHalfHeight); + rgFrameOut[Frame_BottomLeft][iAxis] = vecOrigin[iAxis] + (-vecRight[iAxis] * flHalfWidth) + (-vecUp[iAxis] * flHalfHeight); + rgFrameOut[Frame_BottomRight][iAxis] = vecOrigin[iAxis] + (vecRight[iAxis] * flHalfWidth) + (-vecUp[iAxis] * flHalfHeight); + rgFrameOut[Frame_Center][iAxis] = vecOrigin[iAxis]; + } +} + +Float:TraceFrame(const Float:vecViewOrigin[3], const Float:rgFrame[Frame][3], pIgnore, Float:rgFrameOut[Frame][3]) { + static Float:flMinFraction; flMinFraction = 1.0; + + for (new iFramePoint = 0; iFramePoint < Frame; ++iFramePoint) { + engfunc(EngFunc_TraceLine, vecViewOrigin, rgFrame[iFramePoint], TRACE_IGNORE_FLAGS, pIgnore, g_pTrace); + + static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + if (flFraction < flMinFraction) { + flMinFraction = flFraction; + } + } + + if (flMinFraction < 1.0) { + for (new iFramePoint = 0; iFramePoint < Frame; ++iFramePoint) { + for (new iAxis = 0; iAxis < 3; ++iAxis) { + rgFrameOut[iFramePoint][iAxis] = vecViewOrigin[iAxis] + ((rgFrame[iFramePoint][iAxis] - vecViewOrigin[iAxis]) * flMinFraction); + } + } + } + + return flMinFraction; +} + +MoveFrame(const Float:rgFrame[Frame][3], const Float:vecDirection[3], Float:flDistance, Float:rgFrameOut[Frame][3]) { + for (new iFramePoint = 0; iFramePoint < Frame; ++iFramePoint) { + for (new iAxis = 0; iAxis < 3; ++iAxis) { + rgFrameOut[iFramePoint][iAxis] = rgFrame[iFramePoint][iAxis] + (vecDirection[iAxis] * flDistance); + } + } +} + +Float:CalculateDistanceScaleFactor(Float:flDistance, iFov = 90) { + static Float:flAngle; flAngle = floattan(xs_deg2rad(float(iFov) / 2)); + static Float:flScaleFactor; flScaleFactor = ((2 * flAngle) / SCREEN_SIZE_FACTOR) * flDistance; + + return flScaleFactor; +} diff --git a/api/waypoint-markers/include/api_waypoint_markers.inc b/api/waypoint-markers/include/api_waypoint_markers.inc new file mode 100644 index 0000000..655e316 --- /dev/null +++ b/api/waypoint-markers/include/api_waypoint_markers.inc @@ -0,0 +1,17 @@ +/* + Credits: + joaquimandrade +*/ + +#if defined _api_waypoint_markers_included + #endinput +#endif +#define _api_waypoint_markers_included + +#pragma reqlib api_waypoint_markers + +native WaypointMarker_Create(const szModel[], const Float:vecOrigin[3] = {0.0, 0.0, 0.0}, Float:flScale = 1.0, const Float:rgflSize[2] = {64.0, 64.0}); +native WaypointMarker_SetVisible(pMarker, pPlayer, bool:bValue); + +forward WaypointMarker_Fw_Created(pMarker); +forward WaypointMarker_Fw_Destroy(pMarker); From aebe4decd189252de7eabcb593aca9d57e9d28f2 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 5 Nov 2023 14:11:05 +0200 Subject: [PATCH 063/231] fix hidden markers --- api/waypoint-markers/api_waypoint_markers.sma | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/api/waypoint-markers/api_waypoint_markers.sma b/api/waypoint-markers/api_waypoint_markers.sma index 4abf4b5..4de066c 100644 --- a/api/waypoint-markers/api_waypoint_markers.sma +++ b/api/waypoint-markers/api_waypoint_markers.sma @@ -61,6 +61,7 @@ public plugin_init() { RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", 1); + register_forward(FM_AddToFullPack, "FMHook_AddToFullPack", 0); register_forward(FM_AddToFullPack, "FMHook_AddToFullPack_Post", 1); register_forward(FM_CheckVisibility, "FMHook_CheckVisibility", 0); register_forward(FM_OnFreeEntPrivateData, "FMHook_OnFreeEntPrivateData", 0); @@ -128,6 +129,22 @@ public HamHook_Player_PostThink_Post(pPlayer) { } } +public FMHook_AddToFullPack(es, e, pEntity, pHost, pHostFlags, iPlayer, pSet) { + if (!IS_PLAYER(pHost)) return FMRES_IGNORED; + if (!is_user_alive(pHost)) return FMRES_IGNORED; + if (is_user_bot(pHost)) return FMRES_IGNORED; + if (!pev_valid(pEntity)) return FMRES_IGNORED; + + if (@Base_IsMarker(pEntity)) { + static Struct:sPlayerData; sPlayerData = @Marker_GetPlayerData(pEntity, pHost); + + if (!StructGetCell(sPlayerData, MarkerPlayerData_IsVisible)) return FMRES_SUPERCEDE; + if (StructGetCell(sPlayerData, MarkerPlayerData_ShouldHide)) return FMRES_SUPERCEDE; + } + + return FMRES_IGNORED; +} + public FMHook_AddToFullPack_Post(es, e, pEntity, pHost, pHostFlags, iPlayer, pSet) { if (!IS_PLAYER(pHost)) return FMRES_IGNORED; if (!is_user_alive(pHost)) return FMRES_IGNORED; @@ -135,8 +152,7 @@ public FMHook_AddToFullPack_Post(es, e, pEntity, pHost, pHostFlags, iPlayer, pSe if (!pev_valid(pEntity)) return FMRES_IGNORED; if (@Base_IsMarker(pEntity)) { - static Array:irgsPlayersData; irgsPlayersData = Array:pev(pEntity, pev_iuser1); - static Struct:sPlayerData; sPlayerData = ArrayGetCell(irgsPlayersData, pHost); + static Struct:sPlayerData; sPlayerData = @Marker_GetPlayerData(pEntity, pHost); if (!StructGetCell(sPlayerData, MarkerPlayerData_IsVisible)) return FMRES_SUPERCEDE; if (StructGetCell(sPlayerData, MarkerPlayerData_ShouldHide)) return FMRES_SUPERCEDE; From a4469f7eec53395dc9ddcc486cadb64dd8b57dde Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 5 Nov 2023 14:15:42 +0200 Subject: [PATCH 064/231] rename advanced pushing library --- .../api_advanced_pushing.sma} | 10 +++++----- .../include/api_advanced_pushing.inc} | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) rename api/{advanced-pushing-system/api_advanced_pushing_system.sma => advanced-pushing/api_advanced_pushing.sma} (96%) rename api/{advanced-pushing-system/include/api_advanced_pushing_system.inc => advanced-pushing/include/api_advanced_pushing.inc} (81%) diff --git a/api/advanced-pushing-system/api_advanced_pushing_system.sma b/api/advanced-pushing/api_advanced_pushing.sma similarity index 96% rename from api/advanced-pushing-system/api_advanced_pushing_system.sma rename to api/advanced-pushing/api_advanced_pushing.sma index 666b780..fdff297 100644 --- a/api/advanced-pushing-system/api_advanced_pushing_system.sma +++ b/api/advanced-pushing/api_advanced_pushing.sma @@ -5,7 +5,7 @@ #include #include -#include +#include #define PLAYER_PREVENT_CLIMB (1<<5) @@ -14,14 +14,14 @@ new Float:g_flPlayerReleaseClimbBlock[MAX_PLAYERS + 1]; public plugin_init() { - register_plugin("[API] Advanced Pushing System", "1.0.0", "Hedgehog Fog"); + register_plugin("[API] Advanced Pushing", "1.0.0", "Hedgehog Fog"); RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", .Post = 1); } public plugin_natives() { - register_library("api_advanced_pushing_system"); + register_library("api_advanced_pushing"); register_native("APS_Push", "Native_Push"); register_native("APS_PushFromOrigin", "Native_PushFromOrigin"); register_native("APS_PushFromBBox", "Native_PushFromBBox"); @@ -36,8 +36,8 @@ public Native_Push(iPluginId, iArgc) { public Native_PushFromOrigin(iPluginId, iArgc) { new pEntity = get_param(1); - new Float:flForce = get_param_f(2); - new Float:vecPushOrigin[3]; get_array_f(3, vecPushOrigin, sizeof(vecPushOrigin)); + new Float:vecPushOrigin[3]; get_array_f(2, vecPushOrigin, sizeof(vecPushOrigin)); + new Float:flForce = get_param_f(3); new APS_Flags:iFlags = APS_Flags:get_param(4); @Base_PushFromOrigin(pEntity, flForce, vecPushOrigin, iFlags); diff --git a/api/advanced-pushing-system/include/api_advanced_pushing_system.inc b/api/advanced-pushing/include/api_advanced_pushing.inc similarity index 81% rename from api/advanced-pushing-system/include/api_advanced_pushing_system.inc rename to api/advanced-pushing/include/api_advanced_pushing.inc index 44cb698..c809187 100644 --- a/api/advanced-pushing-system/include/api_advanced_pushing_system.inc +++ b/api/advanced-pushing/include/api_advanced_pushing.inc @@ -1,9 +1,9 @@ -#if defined _api_advanced_pushing_system_included +#if defined _api_advanced_pushing_included #endinput #endif -#define _api_advanced_pushing_system_included +#define _api_advanced_pushing_included -#pragma reqlib api_advanced_pushing_system +#pragma reqlib api_advanced_pushing enum APS_Flags (<<=1) { APS_Flag_None, From cd9d072186c647689c4e3f3b8ad7d51efcdb6d94 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 5 Nov 2023 14:53:17 +0200 Subject: [PATCH 065/231] fix params order --- api/advanced-pushing/api_advanced_pushing.sma | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/advanced-pushing/api_advanced_pushing.sma b/api/advanced-pushing/api_advanced_pushing.sma index fdff297..5bdfb7d 100644 --- a/api/advanced-pushing/api_advanced_pushing.sma +++ b/api/advanced-pushing/api_advanced_pushing.sma @@ -36,8 +36,8 @@ public Native_Push(iPluginId, iArgc) { public Native_PushFromOrigin(iPluginId, iArgc) { new pEntity = get_param(1); - new Float:vecPushOrigin[3]; get_array_f(2, vecPushOrigin, sizeof(vecPushOrigin)); - new Float:flForce = get_param_f(3); + new Float:flForce = get_param_f(2); + new Float:vecPushOrigin[3]; get_array_f(3, vecPushOrigin, sizeof(vecPushOrigin)); new APS_Flags:iFlags = APS_Flags:get_param(4); @Base_PushFromOrigin(pEntity, flForce, vecPushOrigin, iFlags); From 22d7711a56bc8b47a45fdaeeaae0cdb77654bb4a Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 5 Nov 2023 18:02:45 +0200 Subject: [PATCH 066/231] fix command util --- util/command_util.inc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/util/command_util.inc b/util/command_util.inc index 1be3574..1d7c643 100644 --- a/util/command_util.inc +++ b/util/command_util.inc @@ -59,7 +59,7 @@ stock bool:CMD_SHOULD_TARGET_PLAYER(pPlayer, iTarget) { } new bool:bShouldBeAlive = ( - iTarget == CMD_TARGET_DEAD || + iTarget == CMD_TARGET_ALIVE || iTarget == CMD_TARGET_TEAM_T_ALIVE || iTarget == CMD_TARGET_TEAM_CT_ALIVE ); @@ -78,8 +78,8 @@ stock bool:CMD_SHOULD_TARGET_PLAYER(pPlayer, iTarget) { new bool:bShouldBeCT = ( iTarget == CMD_TARGET_TEAM_CT || - iTarget == CMD_TARGET_TEAM_CT || - iTarget == CMD_TARGET_TEAM_CT + iTarget == CMD_TARGET_TEAM_CT_ALIVE || + iTarget == CMD_TARGET_TEAM_CT_DEAD ); if (cstrike_running()) { From a7a62ec125da92b8b47afa5f91bcb6437f51dffe Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 6 Nov 2023 15:40:14 +0200 Subject: [PATCH 067/231] rework initialization for custom entities --- api/custom-entities/api_custom_entities.sma | 155 ++++-------------- .../include/api_custom_entities.inc | 62 ++----- entities/entity_fire.sma | 5 +- 3 files changed, 50 insertions(+), 172 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 08f811b..4a0c56a 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -13,14 +13,7 @@ enum CEData { Array:CEData_Name, - Array:CEData_Model, - Array:CEData_Mins, - Array:CEData_Maxs, - Array:CEData_LifeTime, - Array:CEData_RespawnTime, Array:CEData_Preset, - Array:CEData_IgnoreRounds, - Array:CEData_BloodColor, Array:CEData_Hooks[CEFunction] }; @@ -29,18 +22,6 @@ enum CEHookData { CEHookData_FuncID }; -enum _:RegisterArgs { - RegisterArg_Name = 1, - RegisterArg_Model, - RegisterArg_Mins, - RegisterArg_Maxs, - RegisterArg_LifeTime, - RegisterArg_RespawnTime, - RegisterArg_IgnoreRounds, - RegisterArg_Preset, - RegisterArg_BloodColor -}; - new g_iszBaseClassName; new Trie:g_itPData = Invalid_Trie; @@ -83,9 +64,6 @@ public plugin_natives() { register_native("CE_Kill", "Native_Kill"); register_native("CE_Remove", "Native_Remove"); - register_native("CE_GetSize", "Native_GetSize"); - register_native("CE_GetModel", "Native_GetModel"); - register_native("CE_RegisterHook", "Native_RegisterHook"); register_native("CE_GetHandler", "Native_GetHandler"); @@ -108,25 +86,10 @@ public plugin_end() { /*--------------------------------[ Natives ]--------------------------------*/ public Native_Register(iPluginId, iArgc) { - static szClassName[CE_MAX_NAME_LENGTH]; - get_string(RegisterArg_Name, szClassName, charsmax(szClassName)); - - static szModel[CE_MAX_NAME_LENGTH]; - get_string(RegisterArg_Model, szModel, charsmax(szModel)); - - new Float:flLifeTime = get_param_f(RegisterArg_LifeTime); - new Float:flRespawnTime = get_param_f(RegisterArg_RespawnTime); - new bool:bIgnoreRounds = bool:get_param(RegisterArg_IgnoreRounds); - new CEPreset:iPreset = CEPreset:get_param(RegisterArg_Preset); - new iBloodColor = get_param(RegisterArg_BloodColor); - - new Float:vecMins[3]; - get_array_f(RegisterArg_Mins, vecMins, 3); - - new Float:vecMaxs[3]; - get_array_f(RegisterArg_Maxs, vecMaxs, 3); + static szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + new CEPreset:iPreset = CEPreset:get_param(2); - return RegisterEntity(szClassName, szModel, vecMins, vecMaxs, flLifeTime, flRespawnTime, bIgnoreRounds, iPreset, iBloodColor); + return RegisterEntity(szClassName, iPreset); } public Native_Create(iPluginId, iArgc) { @@ -155,43 +118,6 @@ public bool:Native_Remove(iPluginId, iArgc) { dllfunc(DLLFunc_Think, pEntity); } -public Native_GetSize(iPluginId, iArgc) { - new szClassName[CE_MAX_NAME_LENGTH]; - get_string(1, szClassName, charsmax(szClassName)); - - new iId = GetIdByClassName(szClassName); - if (iId == -1) { - return false; - } - - new Float:vecMins[3]; - ArrayGetArray(g_rgCEData[CEData_Mins], iId, vecMins); - - new Float:vecMaxs[3]; - ArrayGetArray(g_rgCEData[CEData_Maxs], iId, vecMaxs); - - set_array_f(2, vecMins, 3); - set_array_f(3, vecMaxs, 3); - - return true; -} - -public bool:Native_GetModel(iPluginId, iArgc) { - new szClassName[CE_MAX_NAME_LENGTH]; - get_string(1, szClassName, charsmax(szClassName)); - - new iId = GetIdByClassName(szClassName); - if (iId == -1) { - return false; - } - - static szModel[MAX_RESOURCE_PATH_LENGTH]; - ArrayGetString(g_rgCEData[CEData_Model], iId, szModel, charsmax(szModel)); - set_string(2, szModel, get_param(3)); - - return true; -} - public Native_RegisterHook(iPluginId, iArgc) { new CEFunction:iFunction = CEFunction:get_param(1); @@ -527,18 +453,19 @@ bool:@Entity_IsCustom(this) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); - static szModel[MAX_RESOURCE_PATH_LENGTH]; - ArrayGetString(g_rgCEData[CEData_Model], iId, szModel, charsmax(szModel)); + static szModel[MAX_RESOURCE_PATH_LENGTH]; pev(this, pev_model, szModel, charsmax(szModel)); - if (equal(szModel, NULL_STRING)) { - pev(this, pev_model, szModel, charsmax(szModel)); - } + CE_SetMember(this, CE_MEMBER_IGNOREROUNDS, false); - if (!equal(szModel, NULL_STRING)) { + ExecuteHookFunction(CEFunction_Init, iId, this); + + if (!HasPDataMember(itPData, CE_MEMBER_MODEL) && !equal(szModel, NULL_STRING)) { SetPDataMemberString(itPData, CE_MEMBER_MODEL, szModel); - } - ExecuteHookFunction(CEFunction_Init, iId, this); + if (g_bPrecaching && szModel[0] != '&') { + precache_model(szModel); + } + } SetPDataMember(itPData, CE_MEMBER_INITIALIZED, true); } @@ -592,7 +519,12 @@ bool:@Entity_IsCustom(this) { } new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); - new Float:flLifeTime = bIsWorld ? 0.0 : ArrayGetCell(g_rgCEData[CEData_LifeTime], iId); + + new Float:flLifeTime = 0.0; + if (!bIsWorld && HasPDataMember(itPData, CE_MEMBER_LIFETIME)) { + flLifeTime = GetPDataMember(itPData, CE_MEMBER_LIFETIME); + } + if (flLifeTime > 0.0) { new Float:flGameTime = get_gametime(); SetPDataMember(itPData, CE_MEMBER_NEXTKILL, flGameTime + flLifeTime); @@ -689,9 +621,9 @@ bool:@Entity_IsCustom(this) { return; } - static Float:vecMins[3]; ArrayGetArray(g_rgCEData[CEData_Mins], iId, vecMins); - static Float:vecMaxs[3]; ArrayGetArray(g_rgCEData[CEData_Maxs], iId, vecMaxs); - if (xs_vec_distance(vecMins, vecMaxs) > 0.0) { + if (HasPDataMember(itPData, CE_MEMBER_MINS) && HasPDataMember(itPData, CE_MEMBER_MAXS)) { + static Float:vecMins[3]; GetPDataMemberVec(itPData, CE_MEMBER_MINS, vecMins); + static Float:vecMaxs[3]; GetPDataMemberVec(itPData, CE_MEMBER_MAXS, vecMaxs); engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); } } @@ -715,10 +647,10 @@ bool:@Entity_IsCustom(this) { new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); if (bIsWorld) { - new Float:flRespawnTime = ArrayGetCell(g_rgCEData[CEData_RespawnTime], iId); - new Float:flGameTime = get_gametime(); + if (HasPDataMember(itPData, CE_MEMBER_RESPAWNTIME)) { + new Float:flRespawnTime = GetPDataMember(itPData, CE_MEMBER_RESPAWNTIME); + new Float:flGameTime = get_gametime(); - if (flRespawnTime > 0.0) { SetPDataMember(itPData, CE_MEMBER_NEXTRESPAWN, flGameTime + flRespawnTime); set_pev(this, pev_deadflag, DEAD_RESPAWNABLE); set_pev(this, pev_nextthink, flGameTime + flRespawnTime); @@ -793,8 +725,7 @@ bool:@Entity_IsCustom(this) { @Entity_GetObjectCaps(this) { new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - new bool:bIgnoreRound = ArrayGetCell(g_rgCEData[CEData_IgnoreRounds], iId); + new bool:bIgnoreRound = GetPDataMember(itPData, CE_MEMBER_IGNOREROUNDS); new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); new iObjectCaps = 0; @@ -863,8 +794,10 @@ bool:@Entity_CanActivate(this, pTarget) { @Entity_BloodColor(this) { new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - return ArrayGetCell(g_rgCEData[CEData_BloodColor], iId); + + if (!HasPDataMember(itPData, CE_MEMBER_BLOODCOLOR)) return -1; + + return GetPDataMember(itPData, CE_MEMBER_BLOODCOLOR); } Trie:@Entity_GetPData(this) { @@ -904,14 +837,7 @@ Trie:@Entity_AllocPData(this, iId) { InitStorages() { g_itEntityIds = TrieCreate(); g_rgCEData[CEData_Name] = ArrayCreate(CE_MAX_NAME_LENGTH); - g_rgCEData[CEData_Model] = ArrayCreate(MAX_RESOURCE_PATH_LENGTH); - g_rgCEData[CEData_Mins] = ArrayCreate(3); - g_rgCEData[CEData_Maxs] = ArrayCreate(3); - g_rgCEData[CEData_LifeTime] = ArrayCreate(); - g_rgCEData[CEData_RespawnTime] = ArrayCreate(); g_rgCEData[CEData_Preset] = ArrayCreate(); - g_rgCEData[CEData_IgnoreRounds] = ArrayCreate(); - g_rgCEData[CEData_BloodColor] = ArrayCreate(); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { g_rgCEData[CEData_Hooks][iFunction] = ArrayCreate(); @@ -934,29 +860,12 @@ DestroyStorages() { TrieDestroy(g_itEntityIds); } -RegisterEntity( - const szClassName[], - const szModel[], - const Float:vecMins[3], - const Float:vecMaxs[3], - Float:flLifeTime, - Float:flRespawnTime, - bool:bIgnoreRounds, - CEPreset:iPreset, - iBloodColor -) { +RegisterEntity(const szClassName[], CEPreset:iPreset) { new iId = g_iEntitiesNum; TrieSetCell(g_itEntityIds, szClassName, iId); ArrayPushString(g_rgCEData[CEData_Name], szClassName); - ArrayPushString(g_rgCEData[CEData_Model], szModel); - ArrayPushArray(g_rgCEData[CEData_Mins], vecMins); - ArrayPushArray(g_rgCEData[CEData_Maxs], vecMaxs); - ArrayPushCell(g_rgCEData[CEData_LifeTime], flLifeTime); - ArrayPushCell(g_rgCEData[CEData_RespawnTime], flRespawnTime); ArrayPushCell(g_rgCEData[CEData_Preset], iPreset); - ArrayPushCell(g_rgCEData[CEData_IgnoreRounds], bIgnoreRounds); - ArrayPushCell(g_rgCEData[CEData_BloodColor], iBloodColor); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { ArrayPushCell(g_rgCEData[CEData_Hooks][iFunction], ArrayCreate(_:CEHookData)); @@ -964,10 +873,6 @@ RegisterEntity( g_iEntitiesNum++; - if (g_bPrecaching && !equal(szModel, NULL_STRING)) { - precache_model(szModel); - } - log_amx("%s Entity %s successfully registred.", LOG_PREFIX, szClassName); return iId; diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index d768b07..37ee9ec 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -14,15 +14,21 @@ #define CE_MEMBER_ID "_id" #define CE_MEMBER_POINTER "_ptr" -#define CE_MEMBER_WORLD "_world" -#define CE_MEMBER_ORIGIN "_origin" -#define CE_MEMBER_ANGLES "_angles" -#define CE_MEMBER_MASTER "_master" -#define CE_MEMBER_MODEL "_model" -#define CE_MEMBER_DELAY "_delay" -#define CE_MEMBER_NEXTKILL "_nextkill" -#define CE_MEMBER_NEXTRESPAWN "_nextrespawn" -#define CE_MEMBER_INITIALIZED "_initialized" +#define CE_MEMBER_WORLD "_bWorld" +#define CE_MEMBER_ORIGIN "_vecOrigin" +#define CE_MEMBER_ANGLES "_vecAngles" +#define CE_MEMBER_MASTER "_szMaster" +#define CE_MEMBER_MODEL "_szModel" +#define CE_MEMBER_DELAY "_flDelay" +#define CE_MEMBER_NEXTKILL "_flNextKill" +#define CE_MEMBER_NEXTRESPAWN "_flNextRespawn" +#define CE_MEMBER_INITIALIZED "_bInitialized" +#define CE_MEMBER_BLOODCOLOR "_iBloodColor" +#define CE_MEMBER_LIFETIME "_flLifeTime" +#define CE_MEMBER_IGNOREROUNDS "_bIgnoreRounds" +#define CE_MEMBER_RESPAWNTIME "_flRespawnTime" +#define CE_MEMBER_MINS "_vecMins" +#define CE_MEMBER_MAXS "_vecMaxs" enum CEPreset { CEPreset_None = 0, @@ -58,27 +64,10 @@ enum CEFunction { * Register entity * * @param szName Name of an entity - * @param szModel Precached model - * @param vecMins Bounding box mins vector - * @param vecMaxs Bounding box maxs vector - * @param flLifeTime Life time of an entity - * @param flRespawnTime Respawn time of an entity - * @param bIgnoreRounds Entity will ignore rounds if true * @param iPreset Preset for an entity - * @param iBloodColor Blood color of an entity * @return Handler of the registered entity */ -native CE_Register( - const szName[], - const szModel[] = "", - const Float:vecMins[3] = {0.0, 0.0, 0.0}, - const Float:vecMaxs[3] = {0.0, 0.0, 0.0}, - Float:flLifeTime = 0.0, - Float:flRespawnTime = 10.0, - bool:bIgnoreRounds = false, - CEPreset:iPreset = CEPreset_None, - iBloodColor = -1 -); +native CE_Register(const szName[], CEPreset:iPreset = CEPreset_None); /** * Spawn entity @@ -106,25 +95,6 @@ native bool:CE_Kill(pEntity, pKiller = 0); */ native bool:CE_Remove(pEntity); -/** - * Gets size of entity - * - * @param szName Name of entity - * @param vecMins Output for bounding box mins vector - * @param vecMaxs Output for bounding box maxs vector - */ -native CE_GetSize(const szName[], Float:vecMins[3], Float:vecMaxs[3]); - -/** - * Gets model of entity - * - * @param szName Name of entity - * @param szModel Output string - * @param iLen Output string max length - * @return Result true/false - */ -native bool:CE_GetModel(const szName[], szModel[], iLen); - /** * Register new hook for entity * diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index 24803ce..845691a 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -88,7 +88,7 @@ public plugin_precache() { precache_sound(g_rgszBurningSounds[i]); } - g_iCeHandler = CE_Register(ENTITY_NAME, _, Float:{-16.0, -16.0, -16.0}, Float:{16.0, 16.0, 16.0}); + g_iCeHandler = CE_Register(ENTITY_NAME); CE_RegisterHook(CEFunction_Init, ENTITY_NAME, "@Entity_Init"); CE_RegisterHook(CEFunction_KVD, ENTITY_NAME, "@Entity_KeyValue"); CE_RegisterHook(CEFunction_Spawned, ENTITY_NAME, "@Entity_Spawned"); @@ -126,6 +126,9 @@ public plugin_end() { } @Entity_Init(this) { + CE_SetMemberVec(this, CE_MEMBER_MINS, Float:{-16.0, -16.0, -16.0}); + CE_SetMemberVec(this, CE_MEMBER_MAXS, Float:{16.0, 16.0, 16.0}); + CE_SetMemberVec(this, m_vecEffectOrigin, NULL_VECTOR); if (!CE_HasMember(this, m_flDamage)) { From 5847d86d8d4b4aa30b637e9c51de71be24e03403 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 6 Nov 2023 16:12:37 +0200 Subject: [PATCH 068/231] add tag for custom entites handler --- .../include/api_custom_entities.inc | 19 ++++++++++++++++--- entities/entity_fire.sma | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index 37ee9ec..d0a3610 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -30,6 +30,10 @@ #define CE_MEMBER_MINS "_vecMins" #define CE_MEMBER_MAXS "_vecMaxs" +enum CE { + CE_InvalidHandler = -1 +}; + enum CEPreset { CEPreset_None = 0, CEPreset_Item, @@ -65,9 +69,10 @@ enum CEFunction { * * @param szName Name of an entity * @param iPreset Preset for an entity + * * @return Handler of the registered entity */ -native CE_Register(const szName[], CEPreset:iPreset = CEPreset_None); +native CE:CE_Register(const szName[], CEPreset:iPreset = CEPreset_None); /** * Spawn entity @@ -75,6 +80,7 @@ native CE_Register(const szName[], CEPreset:iPreset = CEPreset_None); * @param szName Name of entity * @param vecOrigin Spawn origin * @param bTemp Mark entity as an temporary entity + * * @return Entity index */ native CE_Create(const szName[], const Float:vecOrigin[3] = {0.0, 0.0, 0.0}, bool:bTemp = true); @@ -91,6 +97,7 @@ native bool:CE_Kill(pEntity, pKiller = 0); * Remove entity correctly * * @param pEntity Entity index + * * @return Result true/false */ native bool:CE_Remove(pEntity); @@ -108,15 +115,19 @@ native CE_RegisterHook(CEFunction:function, const szName[], const szCallback[]); * Gets handler of entity by name * * @param szName Name of entity + * + * @return Handler of the registered entity or -1 otherwise */ -native CE_GetHandler(const szName[]); +native CE:CE_GetHandler(const szName[]); /** * Gets handler of entity by index * * @param pEntity Entity index + * + * @return Handler of the entity or -1 otherwise */ -native CE_GetHandlerByEntity(pEntity); +native CE:CE_GetHandlerByEntity(pEntity); /** * Checks if entity has member @@ -139,6 +150,8 @@ native CE_DeleteMember(pEntity, const szMember[]); * * @param pEntity Entity index * @param szMember Member name + * + * @return Member value */ native any:CE_GetMember(pEntity, const szMember[]); diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index 845691a..8a1250c 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -69,7 +69,7 @@ new g_pCvarSpread; new g_pCvarSpreadRange; new g_pCvarLifeTime; -new g_iCeHandler; +new CE:g_iCeHandler; public plugin_precache() { g_irgFireEntities = ArrayCreate(); From e57d51b7db48f317adb71d13ee96b3f23dbf1759 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 6 Nov 2023 16:15:00 +0200 Subject: [PATCH 069/231] small fixes --- api/custom-weapons/api_custom_weapons.sma | 4 ++-- api/custom-weapons/include/api_custom_weapons.inc | 6 +++--- api/navsystem/include/api_navsystem.inc | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/api/custom-weapons/api_custom_weapons.sma b/api/custom-weapons/api_custom_weapons.sma index 2783c6f..1d1db3d 100644 --- a/api/custom-weapons/api_custom_weapons.sma +++ b/api/custom-weapons/api_custom_weapons.sma @@ -32,12 +32,12 @@ enum _:WeaponListMessage { WL_NumberInSlot, WL_WeaponId, WL_Flags -} +}; enum _:Function { Function_PluginId, Function_FunctionId -} +}; new const g_rgszWeaponNames[CSW_LAST_WEAPON + 1][] = { "", diff --git a/api/custom-weapons/include/api_custom_weapons.inc b/api/custom-weapons/include/api_custom_weapons.inc index 9287073..9871d72 100644 --- a/api/custom-weapons/include/api_custom_weapons.inc +++ b/api/custom-weapons/include/api_custom_weapons.inc @@ -42,7 +42,7 @@ enum CW_Data { CW_Data_WeaponFlags, CW_Data_Bindings, CW_Data_Flags -} +}; enum CW_Binding { CWB_Idle, @@ -58,7 +58,7 @@ enum CW_Binding { CWB_WeaponBoxModelUpdate, CWB_Pump, CWB_GrenadeThrow -} +}; enum CW_Flags (<<=1) { CWF_None, @@ -66,7 +66,7 @@ enum CW_Flags (<<=1) { CWF_NoBulletDecal, CWF_CustomReload, CWF_NotRefillable -} +}; native CW:CW_Register(const szName[], iWeaponId, iClipSize = WEAPON_NOCLIP, iPrimaryAmmoType = -1, iPrimaryAmmoMaxAmount = -1, iSecondaryAmmoType = -1, iSecondaryAmmoMaxAmount = -1, iSlotId = 0, iPosition = 0, iWeaponFlags = 0, const szIcon[] = "", CW_Flags:iFlags = CWF_None); native CW_Bind(CW:iHandler, CW_Binding:iBinding, const szFunctionName[]); diff --git a/api/navsystem/include/api_navsystem.inc b/api/navsystem/include/api_navsystem.inc index dd62ede..385d6f8 100644 --- a/api/navsystem/include/api_navsystem.inc +++ b/api/navsystem/include/api_navsystem.inc @@ -8,7 +8,7 @@ #include enum NavArea { - Invalid_NavArea + Invalid_NavArea = 0 }; enum NavBuildPathTask { From 3594c9d733686a5d997930e573043e2205dce46c Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 6 Nov 2023 21:47:01 +0200 Subject: [PATCH 070/231] update command util --- util/command_util.inc | 158 +++++++++++++++++++++++------------------- 1 file changed, 85 insertions(+), 73 deletions(-) diff --git a/util/command_util.inc b/util/command_util.inc index 1d7c643..7dd2b21 100644 --- a/util/command_util.inc +++ b/util/command_util.inc @@ -4,104 +4,116 @@ #define _command_util_included #include +#include -enum (+= -1) { - CMD_TARGET_TEAM_ALL = 0, +enum (<<=1) { + CMD_TARGET_ALL, + CMD_TARGET_NO_ONE = 1, + CMD_TARGET_HAS_CALLER, + CMD_TARGET_IGNORE_CALLER, CMD_TARGET_ALIVE, CMD_TARGET_DEAD, + CMD_TARGET_HUMAN, + CMD_TARGET_BOT, + CMD_TARGET_ADMIN, + CMD_TARGET_VIEWCONE, + CMD_TARGET_VISIBLE, CMD_TARGET_TEAM_T, CMD_TARGET_TEAM_CT, - CMD_TARGET_TEAM_T_ALIVE, - CMD_TARGET_TEAM_CT_ALIVE, - CMD_TARGET_TEAM_T_DEAD, - CMD_TARGET_TEAM_CT_DEAD + CMD_TARGET_TEAM_SPEC }; stock CMD_RESOLVE_TARGET(pPlayer, const szTarget[]) { if (szTarget[0] == '@') { - if (equal(szTarget[1], "me")) { - return pPlayer; - } else if (equal(szTarget[1], "all")) { - return CMD_TARGET_TEAM_ALL; - } else if (equal(szTarget[1], "alive")) { - return CMD_TARGET_ALIVE; - } else if (equal(szTarget[1], "dead")) { - return CMD_TARGET_DEAD; - } else if (equal(szTarget[1], "ct")) { - return CMD_TARGET_TEAM_CT; - } else if (equal(szTarget[1], "t")) { - return CMD_TARGET_TEAM_T; - } else if (equal(szTarget[1], "t_alive")) { - return CMD_TARGET_TEAM_T_ALIVE; - } else if (equal(szTarget[1], "ct_alive")) { - return CMD_TARGET_TEAM_CT_ALIVE; - } else if (equal(szTarget[1], "t_dead")) { - return CMD_TARGET_TEAM_T_DEAD; - } else if (equal(szTarget[1], "ct_dead")) { - return CMD_TARGET_TEAM_CT_DEAD; - } + return -CMD_RESOLVE_ALIASES_BITS(pPlayer, szTarget[1]); } else if (szTarget[0] == '#') { - return find_player("k", str_to_num(szTarget[1])); + static pTarget; pTarget = find_player("k", str_to_num(szTarget[1])); + if (pTarget) return pTarget; } else { - return find_player("b", szTarget); + static pTarget; pTarget = find_player("b", szTarget); + if (pTarget) return pTarget; } - return 0; + return CMD_TARGET_NO_ONE; } -stock bool:CMD_SHOULD_TARGET_PLAYER(pPlayer, iTarget) { - if (iTarget == pPlayer) { - return true; - } +stock CMD_RESOLVE_ALIASES_BITS(pPlayer, const szAliases[]) { + static iBits; iBits = 0; + static iAliasStartPos; iAliasStartPos = 0; + static iCursor; iCursor = 0; - if (!is_user_connected(pPlayer)) { - return false; - } + do { + if (iCursor && (szAliases[iCursor] == '_' || szAliases[iCursor] == '^0')) { + if (iCursor > iAliasStartPos && szAliases[iAliasStartPos] != '_') { + iBits |= CMD_RESOLVE_ALIAS_BITS(pPlayer, szAliases[iAliasStartPos], iCursor - iAliasStartPos); + static szSubAlias[32]; copy(szSubAlias, iCursor - iAliasStartPos, szAliases[iAliasStartPos]); + } + + iAliasStartPos = iCursor + 1; + } + + iCursor++; + } while (szAliases[iCursor - 1] != '^0'); + + return iBits; +} + +stock CMD_RESOLVE_ALIAS_BITS(pPlayer, const szAlias[], iMaxLen = 0) { + if (equal(szAlias, "me", iMaxLen)) return pPlayer; + else if (equal(szAlias, "all", iMaxLen)) return CMD_TARGET_ALL; + else if (equal(szAlias, "alive", iMaxLen)) return CMD_TARGET_ALIVE; + else if (equal(szAlias, "dead", iMaxLen)) return CMD_TARGET_DEAD; + else if (equal(szAlias, "human", iMaxLen)) return CMD_TARGET_HUMAN; + else if (equal(szAlias, "bot", iMaxLen)) return CMD_TARGET_BOT; + else if (equal(szAlias, "admin", iMaxLen)) return CMD_TARGET_ADMIN; + else if (equal(szAlias, "t", iMaxLen)) return CMD_TARGET_TEAM_T; + else if (equal(szAlias, "ct", iMaxLen)) return CMD_TARGET_TEAM_CT; + else if (equal(szAlias, "spec", iMaxLen)) return CMD_TARGET_TEAM_SPEC; + else if (equal(szAlias, "notme", iMaxLen)) return CMD_TARGET_HAS_CALLER | CMD_TARGET_IGNORE_CALLER; + else if (equal(szAlias, "view", iMaxLen)) return CMD_TARGET_HAS_CALLER | CMD_TARGET_VIEWCONE | CMD_TARGET_VISIBLE | CMD_TARGET_ALIVE; + + return CMD_TARGET_NO_ONE; +} + +stock bool:CMD_SHOULD_TARGET_PLAYER(pPlayer, iTarget, pCaller = 0) { + if (!is_user_connected(pPlayer)) return false; + if (iTarget == pPlayer) return true; + if (iTarget > 0) return false; + + static iTargetBits; iTargetBits = -iTarget; + + if (!iTargetBits) return true; + if (iTargetBits & CMD_TARGET_ALL) return true; + if (iTargetBits & CMD_TARGET_NO_ONE) return false; + if (iTargetBits & CMD_TARGET_HAS_CALLER && !pCaller) return false; + if (iTargetBits & CMD_TARGET_IGNORE_CALLER && pPlayer == pCaller) return false; + + static bool:bAlive; bAlive = !!is_user_alive(pPlayer); + if (iTargetBits & CMD_TARGET_ALIVE && !bAlive) return false; + if (iTargetBits & CMD_TARGET_DEAD && bAlive) return false; - new bool:bShouldBeAlive = ( - iTarget == CMD_TARGET_ALIVE || - iTarget == CMD_TARGET_TEAM_T_ALIVE || - iTarget == CMD_TARGET_TEAM_CT_ALIVE - ); - - new bool:bShouldBeDead = ( - iTarget == CMD_TARGET_DEAD || - iTarget == CMD_TARGET_TEAM_T_DEAD || - iTarget == CMD_TARGET_TEAM_CT_DEAD - ); - - new bool:bShouldBeT = ( - iTarget == CMD_TARGET_TEAM_T || - iTarget == CMD_TARGET_TEAM_T_ALIVE || - iTarget == CMD_TARGET_TEAM_T_DEAD - ); - - new bool:bShouldBeCT = ( - iTarget == CMD_TARGET_TEAM_CT || - iTarget == CMD_TARGET_TEAM_CT_ALIVE || - iTarget == CMD_TARGET_TEAM_CT_DEAD - ); + static bool:bBot; bBot = !!is_user_bot(pPlayer); + if (iTargetBits & CMD_TARGET_HUMAN && bBot) return false; + if (iTargetBits & CMD_TARGET_BOT && !bBot) return false; + + static iFlags; iFlags = get_user_flags(pPlayer); + if (iTargetBits & CMD_TARGET_ADMIN && ~iFlags & ADMIN_ADMIN) return false; if (cstrike_running()) { #if AMXX_VERSION_NUM > 182 - new iTeam = get_ent_data(pPlayer, "CBasePlayer", "m_iTeam"); - - if (bShouldBeT && iTeam != 1) { - return false; - } + static iTeam; iTeam = get_ent_data(pPlayer, "CBasePlayer", "m_iTeam"); - if (bShouldBeCT && iTeam != 2) { - return false; - } + if (iTargetBits & CMD_TARGET_TEAM_T && iTeam != 1) return false; + if (iTargetBits & CMD_TARGET_TEAM_CT && iTeam != 2) return false; + if (iTargetBits & CMD_TARGET_TEAM_SPEC && iTeam != 0 && iTeam != 3) return false; #endif } - if (bShouldBeAlive && !is_user_alive(pPlayer)) { - return false; - } + if (iTargetBits & CMD_TARGET_VISIBLE && !is_visible(pCaller, pPlayer)) return false; - if (bShouldBeDead && is_user_alive(pPlayer)) { - return false; + if (iTargetBits & CMD_TARGET_VIEWCONE) { + static Float:vecOrigin[3]; pev(pPlayer, pev_origin, vecOrigin); + if (!is_in_viewcone(pCaller, vecOrigin)) return false; } return true; From 148a7434402c96cfc40fb09126d63c784ecb7796 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 6 Nov 2023 23:07:23 +0200 Subject: [PATCH 071/231] update command util --- util/command_util.inc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/util/command_util.inc b/util/command_util.inc index 7dd2b21..5a028b8 100644 --- a/util/command_util.inc +++ b/util/command_util.inc @@ -10,6 +10,7 @@ enum (<<=1) { CMD_TARGET_ALL, CMD_TARGET_NO_ONE = 1, CMD_TARGET_HAS_CALLER, + CMD_TARGET_CALLER, CMD_TARGET_IGNORE_CALLER, CMD_TARGET_ALIVE, CMD_TARGET_DEAD, @@ -23,9 +24,9 @@ enum (<<=1) { CMD_TARGET_TEAM_SPEC }; -stock CMD_RESOLVE_TARGET(pPlayer, const szTarget[]) { +stock CMD_RESOLVE_TARGET(const szTarget[]) { if (szTarget[0] == '@') { - return -CMD_RESOLVE_ALIASES_BITS(pPlayer, szTarget[1]); + return -CMD_RESOLVE_ALIASES_BITS(szTarget[1]); } else if (szTarget[0] == '#') { static pTarget; pTarget = find_player("k", str_to_num(szTarget[1])); if (pTarget) return pTarget; @@ -37,7 +38,7 @@ stock CMD_RESOLVE_TARGET(pPlayer, const szTarget[]) { return CMD_TARGET_NO_ONE; } -stock CMD_RESOLVE_ALIASES_BITS(pPlayer, const szAliases[]) { +stock CMD_RESOLVE_ALIASES_BITS(const szAliases[]) { static iBits; iBits = 0; static iAliasStartPos; iAliasStartPos = 0; static iCursor; iCursor = 0; @@ -45,7 +46,7 @@ stock CMD_RESOLVE_ALIASES_BITS(pPlayer, const szAliases[]) { do { if (iCursor && (szAliases[iCursor] == '_' || szAliases[iCursor] == '^0')) { if (iCursor > iAliasStartPos && szAliases[iAliasStartPos] != '_') { - iBits |= CMD_RESOLVE_ALIAS_BITS(pPlayer, szAliases[iAliasStartPos], iCursor - iAliasStartPos); + iBits |= CMD_RESOLVE_ALIAS_BITS(szAliases[iAliasStartPos], iCursor - iAliasStartPos); static szSubAlias[32]; copy(szSubAlias, iCursor - iAliasStartPos, szAliases[iAliasStartPos]); } @@ -58,9 +59,8 @@ stock CMD_RESOLVE_ALIASES_BITS(pPlayer, const szAliases[]) { return iBits; } -stock CMD_RESOLVE_ALIAS_BITS(pPlayer, const szAlias[], iMaxLen = 0) { - if (equal(szAlias, "me", iMaxLen)) return pPlayer; - else if (equal(szAlias, "all", iMaxLen)) return CMD_TARGET_ALL; +stock CMD_RESOLVE_ALIAS_BITS(const szAlias[], iMaxLen = 0) { + if (equal(szAlias, "all", iMaxLen)) return CMD_TARGET_ALL; else if (equal(szAlias, "alive", iMaxLen)) return CMD_TARGET_ALIVE; else if (equal(szAlias, "dead", iMaxLen)) return CMD_TARGET_DEAD; else if (equal(szAlias, "human", iMaxLen)) return CMD_TARGET_HUMAN; @@ -69,6 +69,7 @@ stock CMD_RESOLVE_ALIAS_BITS(pPlayer, const szAlias[], iMaxLen = 0) { else if (equal(szAlias, "t", iMaxLen)) return CMD_TARGET_TEAM_T; else if (equal(szAlias, "ct", iMaxLen)) return CMD_TARGET_TEAM_CT; else if (equal(szAlias, "spec", iMaxLen)) return CMD_TARGET_TEAM_SPEC; + else if (equal(szAlias, "me", iMaxLen)) return CMD_TARGET_HAS_CALLER | CMD_TARGET_CALLER; else if (equal(szAlias, "notme", iMaxLen)) return CMD_TARGET_HAS_CALLER | CMD_TARGET_IGNORE_CALLER; else if (equal(szAlias, "view", iMaxLen)) return CMD_TARGET_HAS_CALLER | CMD_TARGET_VIEWCONE | CMD_TARGET_VISIBLE | CMD_TARGET_ALIVE; @@ -86,6 +87,7 @@ stock bool:CMD_SHOULD_TARGET_PLAYER(pPlayer, iTarget, pCaller = 0) { if (iTargetBits & CMD_TARGET_ALL) return true; if (iTargetBits & CMD_TARGET_NO_ONE) return false; if (iTargetBits & CMD_TARGET_HAS_CALLER && !pCaller) return false; + if (iTargetBits & CMD_TARGET_CALLER && pPlayer != pCaller) return false; if (iTargetBits & CMD_TARGET_IGNORE_CALLER && pPlayer == pCaller) return false; static bool:bAlive; bAlive = !!is_user_alive(pPlayer); From 869c73304c176dff594edeba6afb91f89c335030 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 7 Nov 2023 11:02:50 +0200 Subject: [PATCH 072/231] update commands --- api/player-cosmetics/api_player_cosmetics.sma | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/api/player-cosmetics/api_player_cosmetics.sma b/api/player-cosmetics/api_player_cosmetics.sma index c49699a..eea4be2 100644 --- a/api/player-cosmetics/api_player_cosmetics.sma +++ b/api/player-cosmetics/api_player_cosmetics.sma @@ -93,12 +93,12 @@ public Command_Equip(pPlayer, iLevel, iCId) { static szModel[256]; read_argv(2, szModel, charsmax(szModel)); - new iTarget = CMD_RESOLVE_TARGET(pPlayer, szTarget); + new iTarget = CMD_RESOLVE_TARGET(szTarget); new iModelIndex = engfunc(EngFunc_ModelIndex, szModel); - for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { - if (CMD_SHOULD_TARGET_PLAYER(pPlayer, iTarget)) { - @Player_EquipCosmetic(pPlayer, iModelIndex); + for (new pTarget = 1; pTarget <= MaxClients; ++pTarget) { + if (CMD_SHOULD_TARGET_PLAYER(pTarget, iTarget, pPlayer)) { + @Player_EquipCosmetic(pTarget, iModelIndex); } } @@ -110,18 +110,15 @@ public Command_Unequip(pPlayer, iLevel, iCId) { return PLUGIN_HANDLED; } - static szTarget[32]; - read_argv(1, szTarget, charsmax(szTarget)); - - static szModel[256]; - read_argv(2, szModel, charsmax(szModel)); + static szTarget[32]; read_argv(1, szTarget, charsmax(szTarget)); + static szModel[256]; read_argv(2, szModel, charsmax(szModel)); - new iTarget = CMD_RESOLVE_TARGET(pPlayer, szTarget); + new iTarget = CMD_RESOLVE_TARGET(szTarget); new iModelIndex = engfunc(EngFunc_ModelIndex, szModel); - for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { - if (CMD_SHOULD_TARGET_PLAYER(pPlayer, iTarget)) { - @Player_UnequipCosmetic(pPlayer, iModelIndex); + for (new pTarget = 1; pTarget <= MaxClients; ++pTarget) { + if (CMD_SHOULD_TARGET_PLAYER(pTarget, iTarget, pPlayer)) { + @Player_UnequipCosmetic(pTarget, iModelIndex); } } From 54f2e088f504fbfbb13fec3fec0c94e38781c404 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 7 Nov 2023 16:39:22 +0200 Subject: [PATCH 073/231] fix auto precaching --- api/custom-entities/api_custom_entities.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 4a0c56a..55c71be 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -462,7 +462,7 @@ bool:@Entity_IsCustom(this) { if (!HasPDataMember(itPData, CE_MEMBER_MODEL) && !equal(szModel, NULL_STRING)) { SetPDataMemberString(itPData, CE_MEMBER_MODEL, szModel); - if (g_bPrecaching && szModel[0] != '&') { + if (g_bPrecaching && szModel[0] != '*') { precache_model(szModel); } } From 68eb20670af8f8714f94f2575dd0caa164ffeb18 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 8 Nov 2023 13:46:51 +0200 Subject: [PATCH 074/231] add datapack stocks --- util/datapack_stocks.inc | 76 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 util/datapack_stocks.inc diff --git a/util/datapack_stocks.inc b/util/datapack_stocks.inc new file mode 100644 index 0000000..bcf5b27 --- /dev/null +++ b/util/datapack_stocks.inc @@ -0,0 +1,76 @@ +#if defined _datapack_stocks_included + #endinput +#endif +#define _datapack_stocks_included + +#if !defined _datapack_included + #include +#endif + +stock ReadPackArray(DataPack:pack, buffer[], maxlen = -1) { + new len = ReadPackCell(pack); + + if (maxlen == -1) maxlen = len; + + for (new i = 0; i < len; ++i) { + static value; value = ReadPackCell(pack); + if (i >= maxlen) continue; + buffer[i] = value; + } + + return len; +} + +stock ReadPackFloatArray(DataPack:pack, Float:buffer[], maxlen = -1) { + new len = ReadPackCell(pack); + + if (maxlen == -1) maxlen = len; + + for (new i = 0; i < len; ++i) { + static Float:value; value = ReadPackFloat(pack); + if (i >= maxlen) continue; + buffer[i] = value; + } + + return len; +} + +stock WritePackArray(DataPack:pack, const array[], maxlen) { + WritePackCell(pack, maxlen); + + for (new i = 0; i < maxlen; ++i) { + WritePackCell(pack, array[i]); + } +} + +stock WritePackFloatArray(DataPack:pack, const Float:array[], maxlen) { + WritePackCell(pack, maxlen); + + for (new i = 0; i < maxlen; ++i) { + WritePackFloat(pack, array[i]); + } +} + +stock GetDataPackOffsets(&cellOffset = 0, &floatOffset = 0, &stringOffset = 0, &charOffset = 0, &arrayOffset = 0) { + new DataPack:pack = CreateDataPack(); + + SetPackPosition(pack, DataPackPos:0); + WritePackCell(pack, DataPackPos:0); + cellOffset = _:GetPackPosition(pack); + + SetPackPosition(pack, DataPackPos:0); + WritePackCell(pack, DataPackPos:0); + floatOffset = _:GetPackPosition(pack); + + SetPackPosition(pack, DataPackPos:0); + WritePackString(pack, ""); + stringOffset = _:GetPackPosition(pack); + + SetPackPosition(pack, DataPackPos:0); + WritePackString(pack, "_"); + charOffset = _:GetPackPosition(pack) - stringOffset; + + arrayOffset = cellOffset; + + DestroyDataPack(pack); +} From c7e9c5145d62cb41d77343583f99a3a742adc1a6 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 8 Nov 2023 14:15:01 +0200 Subject: [PATCH 075/231] add custom events api --- api/custom-events/api_custom_events.sma | 452 ++++++++++++++++++ .../include/api_custom_events.inc | 30 ++ 2 files changed, 482 insertions(+) create mode 100644 api/custom-events/api_custom_events.sma create mode 100644 api/custom-events/include/api_custom_events.inc diff --git a/api/custom-events/api_custom_events.sma b/api/custom-events/api_custom_events.sma new file mode 100644 index 0000000..95a80e3 --- /dev/null +++ b/api/custom-events/api_custom_events.sma @@ -0,0 +1,452 @@ +#include +#include + +#include + +#include + +#define LOG_PREFIX "[Custom Events] " + +#define PLUGIN "[API] Custom Events" +#define VERSION "1.0.0" +#define AUTHOR "Hedgehog Fog" + +enum EventParam { + EventParam_Type = 0, + EventParam_Size +}; + +enum EventSubscriber { + EventSubscriber_PluginId = 0, + EventSubscriber_FunctionId +}; + +new g_szBuffer[MAX_STRING_LENGTH] +new g_rgiBuffer[MAX_STRING_LENGTH]; +new Float:g_rgflBuffer[MAX_STRING_LENGTH]; + +new Trie:g_itEvents; +new Array:g_rgszEventId; +new Array:g_rgirgEventParamTypes; +new Array:g_rgirgEventSubscribers; +new g_iEventsNum = 0; + +new g_fwEmit; + +new g_pCurrentEmitter = 0; +new DataPack:g_dpCurrentParamData = Invalid_DataPack; +new Array:g_irgCurrentParamOffsets = Invalid_Array; + +public plugin_precache() { + g_itEvents = TrieCreate(); + g_rgszEventId = ArrayCreate(32); + g_rgirgEventParamTypes = ArrayCreate(_:EventParam); + g_rgirgEventSubscribers = ArrayCreate(_:EventSubscriber); +} + +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); + + g_fwEmit = CreateMultiForward("CustomEvent_Fw_Emit", ET_STOP, FP_STRING, FP_CELL); +} + +public plugin_end() { + for (new iEvent = 0; iEvent < g_iEventsNum; ++iEvent) { + new Array:irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); + ArrayDestroy(irgParamTypes); + + new Array:irgSubscribers = ArrayGetCell(g_rgirgEventSubscribers, iEvent); + ArrayDestroy(irgSubscribers); + } + + TrieDestroy(g_itEvents); + ArrayDestroy(g_rgszEventId); + ArrayDestroy(g_rgirgEventParamTypes); + ArrayDestroy(g_rgirgEventSubscribers); +} + +public plugin_natives() { + register_library("api_custom_events"); + register_native("CustomEvent_Register", "Native_RegisterEvent"); + register_native("CustomEvent_Subscribe", "Native_SubscribeEvent"); + register_native("CustomEvent_Emit", "Native_EmitEvent"); + register_native("CustomEvent_EmitFromEntity", "Native_EmitEventFromEntity"); + register_native("CustomEvent_GetGetEmitter", "Native_GetEmitter"); + register_native("CustomEvent_GetParamsNum", "Native_GetParamsNum"); + register_native("CustomEvent_GetParamType", "Native_GetParamType"); + register_native("CustomEvent_GetParam", "Native_GetParam"); + register_native("CustomEvent_GetParamFloat", "Native_GetParamFloat"); + register_native("CustomEvent_GetParamString", "Native_GetParamString"); + register_native("CustomEvent_GetParamArray", "Native_GetParamArray"); + register_native("CustomEvent_GetParamFloatArray", "Native_GetParamFloatArray"); +} + +public Native_RegisterEvent(iPluginId, iArgc) { + static szEvent[32]; get_string(1, szEvent, charsmax(szEvent)); + + static Array:irgParamTypes; irgParamTypes = ArrayCreate(_:EventParam, iArgc - 1); + + for (new iParam = 2; iParam <= iArgc; ++iParam) { + static rgParam[EventParam]; + rgParam[EventParam_Type] = get_param_byref(iParam); + rgParam[EventParam_Size] = 1; + + switch (rgParam[EventParam_Type]) { + case EP_Array, EP_FloatArray: { + rgParam[EventParam_Size] = get_param_byref(iParam + 1); + iParam++; + } + } + + ArrayPushArray(irgParamTypes, rgParam[any:0], _:EventParam); + } + + RegisterEvent(szEvent, irgParamTypes); +} + +public Native_SubscribeEvent(iPluginId, iArgc) { + static szEvent[32]; get_string(1, szEvent, charsmax(szEvent)); + static szCallback[32]; get_string(2, szCallback, charsmax(szCallback)); + + static iEvent; iEvent = GetEventId(szEvent); + if (iEvent == -1) { + log_amx("%sCannot subscribe event ^"%s^". Event ^"%s^" is not registered.", LOG_PREFIX, szEvent, szEvent); + } + + static Array:irgSubscribers; irgSubscribers = ArrayGetCell(g_rgirgEventSubscribers, iEvent); + + static rgSubscriber[EventSubscriber]; + rgSubscriber[EventSubscriber_PluginId] = iPluginId; + rgSubscriber[EventSubscriber_FunctionId] = get_func_id(szCallback, iPluginId); + + ArrayPushArray(irgSubscribers, rgSubscriber[any:0], _:EventSubscriber); +} + + +public Native_EmitEvent(iPluginId, iArgc) { + static szEvent[32]; get_string(1, szEvent, charsmax(szEvent)); + + static iEvent; iEvent = GetEventId(szEvent); + if (iEvent == -1) { + log_amx("%sCannot emit event ^"%s^". Event ^"%s^" is not registered.", LOG_PREFIX, szEvent, szEvent); + return; + } + + static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); + static DataPack:dpParams; dpParams = CreateDataPack(); + + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + for (new iEventParam = 0; iEventParam < iParamsNum; ++iEventParam) { + static iParam; iParam = 2 + iEventParam; + static iType; iType = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Type); + static iSize; iSize = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Size); + + switch (iType) { + case EP_Cell: { + WritePackCell(dpParams, get_param_byref(iParam)); + } + case EP_Float: { + WritePackFloat(dpParams, Float:get_param_byref(iParam)); + } + case EP_String: { + get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); + WritePackString(dpParams, g_szBuffer); + } + case EP_Array: { + get_array(iParam, g_rgiBuffer, iSize); + WritePackArray(dpParams, g_rgiBuffer, iSize); + } + case EP_FloatArray: { + get_array_f(iParam, g_rgflBuffer, iSize); + WritePackFloatArray(dpParams, g_rgflBuffer, iSize); + } + } + } + + ResetPack(dpParams); + EmitEvent(szEvent, dpParams, 0); + + DestroyDataPack(dpParams); +} + +public Native_EmitEventFromEntity(iPluginId, iArgc) { + static pEmitter; pEmitter = get_param(1); + static szEvent[32]; get_string(2, szEvent, charsmax(szEvent)); + + static iEvent; iEvent = GetEventId(szEvent); + if (iEvent == -1) { + log_amx("%sCannot emit event ^"%s^". Event ^"%s^" is not registered.", LOG_PREFIX, szEvent, szEvent); + return; + } + + static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); + static DataPack:dpParams; dpParams = CreateDataPack(); + + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + for (new iEventParam = 0; iEventParam < iParamsNum; ++iEventParam) { + static iParam; iParam = 3 + iEventParam; + static iType; iType = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Type); + static iSize; iSize = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Size); + + switch (iType) { + case EP_Cell: { + WritePackCell(dpParams, get_param_byref(iParam)); + } + case EP_Float: { + WritePackFloat(dpParams, Float:get_param_byref(iParam)); + } + case EP_String: { + get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); + WritePackString(dpParams, g_szBuffer); + } + case EP_Array: { + get_array(iParam, g_rgiBuffer, iSize); + WritePackArray(dpParams, g_rgiBuffer, iSize); + } + case EP_FloatArray: { + get_array_f(iParam, g_rgflBuffer, iSize); + WritePackFloatArray(dpParams, g_rgflBuffer, iSize); + } + } + } + + ResetPack(dpParams); + EmitEvent(szEvent, dpParams, pEmitter); + + DestroyDataPack(dpParams); +} + +public Native_GetEmitter(iPluginId, iArgc) { + return g_pCurrentEmitter; +} + +public Native_GetParamsNum(iPluginId, iArgc) { + static szEvent[32]; get_string(1, szEvent, charsmax(szEvent)); + + static iEvent; iEvent = GetEventId(szEvent); + if (iEvent == -1) { + log_amx("%sEvent ^"%s^" is not registered.", LOG_PREFIX, szEvent); + return EP_Invalid; + } + + return GetEventParamsNum(iEvent); +} + +public Native_GetParamType(iPluginId, iArgc) { + static szEvent[32]; get_string(1, szEvent, charsmax(szEvent)); + static iParam; iParam = get_param(2); + + static iEvent; iEvent = GetEventId(szEvent); + if (iEvent == -1) { + log_amx("%sEvent ^"%s^" is not registered.", LOG_PREFIX, szEvent); + return EP_Invalid; + } + + return GetEventParamType(iEvent, iParam); +} + +public any:Native_GetParam(iPluginId, iArgc) { + if (g_dpCurrentParamData == Invalid_DataPack) return 0; + + static iParam; iParam = get_param(1); + return GetCurrentEventParam(iParam - 1); +} + +public Float:Native_GetParamFloat(iPluginId, iArgc) { + if (g_dpCurrentParamData == Invalid_DataPack) return 0.0; + + static iParam; iParam = get_param(1); + return GetCurrentEventParamFloat(iParam - 1); +} + +public Float:Native_GetParamString(iPluginId, iArgc) { + if (g_dpCurrentParamData == Invalid_DataPack) return; + + static iParam; iParam = get_param(1); + static iLen; iLen = get_param(3); + GetCurrentEventParamString(iParam - 1, g_szBuffer, iLen); + set_string(2, g_szBuffer, iLen); +} + +public Native_GetParamArray(iPluginId, iArgc) { + if (g_dpCurrentParamData == Invalid_DataPack) return; + + static iParam; iParam = get_param(1); + static iLen; iLen = get_param(3); + GetCurrentEventParamArray(iParam - 1, g_rgiBuffer, iLen); + set_array(2, g_rgiBuffer, iLen); +} + +public Native_GetParamFloatArray(iPluginId, iArgc) { + if (g_dpCurrentParamData == Invalid_DataPack) return; + + static iParam; iParam = get_param(1); + static iLen; iLen = get_param(3); + GetCurrentEventParamFloatArray(iParam - 1, g_rgflBuffer, iLen); + set_array_f(2, g_rgflBuffer, iLen); +} + +RegisterEvent(const szEvent[], Array:irgParamTypes) { + new iEvent = g_iEventsNum; + + ArrayPushString(g_rgszEventId, szEvent); + ArrayPushCell(g_rgirgEventParamTypes, irgParamTypes); + ArrayPushCell(g_rgirgEventSubscribers, ArrayCreate(_:EventSubscriber)); + TrieSetCell(g_itEvents, szEvent, iEvent); + + g_iEventsNum++; + + return iEvent; +} + +GetEventId(const szEvent[]) { + static iEvent; + if (!TrieGetCell(g_itEvents, szEvent, iEvent)) return -1; + + return iEvent; +} + +GetEventParamType(iEvent, iParam) { + static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); + + if (iParam <= ArraySize(irgParamTypes)) return EP_Invalid; + + return ArrayGetCell(irgParamTypes, iParam, _:EventParam_Type); +} + +GetEventParamsNum(iEvent) { + static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + + return iParamsNum; +} + +any:GetCurrentEventParam(iParam) { + SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); + + return ReadPackCell(g_dpCurrentParamData); +} + +Float:GetCurrentEventParamFloat(iParam) { + SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); + + return ReadPackFloat(g_dpCurrentParamData); +} + +GetCurrentEventParamString(iParam, szOut[], iLen) { + SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); + + ReadPackString(g_dpCurrentParamData, szOut, iLen); +} + +GetCurrentEventParamArray(iParam, rgiOut[], iLen) { + SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); + + ReadPackArray(g_dpCurrentParamData, rgiOut, iLen) +} + +GetCurrentEventParamFloatArray(iParam, Float:rgflOut[], iLen) { + SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); + + ReadPackFloatArray(g_dpCurrentParamData, rgflOut, iLen) +} + +DataPackPos:GetCurrentOffset(iParam) { + return ArrayGetCell(g_irgCurrentParamOffsets, iParam); +} + +EmitEvent(const szEvent[], DataPack:dpParams, pEmitter) { + static iEvent; iEvent = GetEventId(szEvent); + + if (pEmitter && !pev_valid(pEmitter)) { + log_error(AMX_ERR_NATIVE, "Cannot emit event ^"%s^" from entity! Invalid entity %d.", szEvent, pEmitter); + return; + } + + g_pCurrentEmitter = pEmitter; + g_irgCurrentParamOffsets = GetEventParamOffsets(iEvent, dpParams); + g_dpCurrentParamData = dpParams; + + static iForwardReturn; ExecuteForward(g_fwEmit, iForwardReturn, szEvent, pEmitter); + + if (iForwardReturn == PLUGIN_CONTINUE) { + static Array:irgSubscribers; irgSubscribers = ArrayGetCell(g_rgirgEventSubscribers, iEvent); + static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); + + static iSubscribersNum; iSubscribersNum = ArraySize(irgSubscribers); + for (new iSubscriber = 0; iSubscriber < iSubscribersNum; ++iSubscriber) { + ResetPack(dpParams); + + static iPluginId; iPluginId = ArrayGetCell(irgSubscribers, iSubscriber, _:EventSubscriber_PluginId); + static iFunctionId; iFunctionId = ArrayGetCell(irgSubscribers, iSubscriber, _:EventSubscriber_FunctionId); + CallEventCallback(iPluginId, iFunctionId, dpParams, irgParamTypes); + } + } + + ArrayDestroy(g_irgCurrentParamOffsets); + + g_pCurrentEmitter = 0; + g_irgCurrentParamOffsets = Invalid_Array; + g_dpCurrentParamData = Invalid_DataPack; +} + +Array:GetEventParamOffsets(iEvent, DataPack:dpParams) { + static Array:irgOffsets; irgOffsets = ArrayCreate(); + + static DataPackPos:iPos; iPos = GetPackPosition(dpParams); + static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + + for (new iParam = 0; iParam < iParamsNum; ++iParam) { + ArrayPushCell(irgOffsets, GetPackPosition(dpParams)); + + static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:EventParam_Type); + + switch (iType) { + case EP_Cell: ReadPackCell(dpParams); + case EP_Float: ReadPackFloat(dpParams); + case EP_String: ReadPackString(dpParams, g_szBuffer, charsmax(g_szBuffer)); + case EP_Array: ReadPackArray(dpParams, g_rgiBuffer, 0); + case EP_FloatArray: ReadPackFloatArray(dpParams, g_rgflBuffer, 0); + } + } + + SetPackPosition(dpParams, iPos); + + return irgOffsets; +} + +CallEventCallback(iPluginId, iFunctionId, DataPack:dpParams, Array:irgParamTypes) { + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + + callfunc_begin_i(iFunctionId, iPluginId); + + for (new iParam = 0; iParam < iParamsNum; ++iParam) { + static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:EventParam_Type); + + switch (iType) { + case EP_Cell: { + static iValue; iValue = ReadPackCell(dpParams); + callfunc_push_int(iValue); + } + case EP_Float: { + static Float:flValue; flValue = ReadPackFloat(dpParams); + callfunc_push_float(flValue); + } + case EP_String: { + ReadPackString(dpParams, g_szBuffer, charsmax(g_szBuffer)); + callfunc_push_str(g_szBuffer); + } + case EP_Array: { + static iLen; iLen = ReadPackArray(dpParams, g_rgiBuffer); + callfunc_push_array(g_rgiBuffer, iLen, false); + } + case EP_FloatArray: { + static iLen; iLen = ReadPackFloatArray(dpParams, g_rgflBuffer); + callfunc_push_array(_:g_rgflBuffer, iLen, false); + } + } + } + + callfunc_end(); +} diff --git a/api/custom-events/include/api_custom_events.inc b/api/custom-events/include/api_custom_events.inc new file mode 100644 index 0000000..5a1b6f8 --- /dev/null +++ b/api/custom-events/include/api_custom_events.inc @@ -0,0 +1,30 @@ +#if defined _api_custom_events_included + #endinput +#endif +#define _api_custom_events_included + +#pragma reqlib api_custom_events + +enum { + EP_Invalid = -1, + EP_Cell, + EP_Float, + EP_String, + EP_Array, + EP_FloatArray +}; + +native CustomEvent_Register(const szId[], any:...); +native CustomEvent_Subscribe(const szId[], const szCallback[]); +native CustomEvent_Emit(const szId[], any:...); +native CustomEvent_EmitFromEntity(pEmitter, const szId[], any:...); +native CustomEvent_GetGetEmitter(); +native CustomEvent_GetParamsNum(const szId[]); +native CustomEvent_GetParamType(const szId[], iParam); +native any:CustomEvent_GetParam(iParam); +native Float:CustomEvent_GetParamFloat(iParam); +native CustomEvent_GetParamString(iParam, szOut[], iLen); +native CustomEvent_GetParamArray(iParam, rgiOut[], iLen); +native CustomEvent_GetParamFloatArray(iParam, Float:rgflOut[], iLen); + +forward CustomEvent_Fw_Emited(const szId[]); From 81e18603e01497df5a795ab6cff040afbeef6e6c Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 8 Nov 2023 14:24:46 +0200 Subject: [PATCH 076/231] better error handler --- api/custom-events/api_custom_events.sma | 34 +++++++++++++++++++------ 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/api/custom-events/api_custom_events.sma b/api/custom-events/api_custom_events.sma index 95a80e3..b49e05f 100644 --- a/api/custom-events/api_custom_events.sma +++ b/api/custom-events/api_custom_events.sma @@ -21,6 +21,8 @@ enum EventSubscriber { EventSubscriber_FunctionId }; +new g_fwEmit; + new g_szBuffer[MAX_STRING_LENGTH] new g_rgiBuffer[MAX_STRING_LENGTH]; new Float:g_rgflBuffer[MAX_STRING_LENGTH]; @@ -31,9 +33,8 @@ new Array:g_rgirgEventParamTypes; new Array:g_rgirgEventSubscribers; new g_iEventsNum = 0; -new g_fwEmit; - new g_pCurrentEmitter = 0; +new g_iCurrentEvent = -1; new DataPack:g_dpCurrentParamData = Invalid_DataPack; new Array:g_irgCurrentParamOffsets = Invalid_Array; @@ -246,21 +247,30 @@ public Native_GetParamType(iPluginId, iArgc) { } public any:Native_GetParam(iPluginId, iArgc) { - if (g_dpCurrentParamData == Invalid_DataPack) return 0; + if (g_iCurrentEvent == -1) { + log_error(AMX_ERR_NATIVE, "%sNot currently in a event callback.", LOG_PREFIX); + return 0; + } static iParam; iParam = get_param(1); return GetCurrentEventParam(iParam - 1); } public Float:Native_GetParamFloat(iPluginId, iArgc) { - if (g_dpCurrentParamData == Invalid_DataPack) return 0.0; + if (g_iCurrentEvent == -1) { + log_error(AMX_ERR_NATIVE, "%sNot currently in a event callback.", LOG_PREFIX); + return 0.0; + } static iParam; iParam = get_param(1); return GetCurrentEventParamFloat(iParam - 1); } public Float:Native_GetParamString(iPluginId, iArgc) { - if (g_dpCurrentParamData == Invalid_DataPack) return; + if (g_iCurrentEvent == -1) { + log_error(AMX_ERR_NATIVE, "%sNot currently in a event callback.", LOG_PREFIX); + return; + } static iParam; iParam = get_param(1); static iLen; iLen = get_param(3); @@ -269,7 +279,10 @@ public Float:Native_GetParamString(iPluginId, iArgc) { } public Native_GetParamArray(iPluginId, iArgc) { - if (g_dpCurrentParamData == Invalid_DataPack) return; + if (g_iCurrentEvent == -1) { + log_error(AMX_ERR_NATIVE, "%sNot currently in a event callback.", LOG_PREFIX); + return; + } static iParam; iParam = get_param(1); static iLen; iLen = get_param(3); @@ -278,7 +291,10 @@ public Native_GetParamArray(iPluginId, iArgc) { } public Native_GetParamFloatArray(iPluginId, iArgc) { - if (g_dpCurrentParamData == Invalid_DataPack) return; + if (g_iCurrentEvent == -1) { + log_error(AMX_ERR_NATIVE, "%sNot currently in a event callback.", LOG_PREFIX); + return; + } static iParam; iParam = get_param(1); static iLen; iLen = get_param(3); @@ -359,10 +375,11 @@ EmitEvent(const szEvent[], DataPack:dpParams, pEmitter) { static iEvent; iEvent = GetEventId(szEvent); if (pEmitter && !pev_valid(pEmitter)) { - log_error(AMX_ERR_NATIVE, "Cannot emit event ^"%s^" from entity! Invalid entity %d.", szEvent, pEmitter); + log_error(AMX_ERR_NATIVE, "%sCannot emit event ^"%s^" from entity! Invalid entity %d.", LOG_PREFIX, szEvent, pEmitter); return; } + g_iCurrentEvent = iEvent; g_pCurrentEmitter = pEmitter; g_irgCurrentParamOffsets = GetEventParamOffsets(iEvent, dpParams); g_dpCurrentParamData = dpParams; @@ -385,6 +402,7 @@ EmitEvent(const szEvent[], DataPack:dpParams, pEmitter) { ArrayDestroy(g_irgCurrentParamOffsets); + g_iCurrentEvent = -1; g_pCurrentEmitter = 0; g_irgCurrentParamOffsets = Invalid_Array; g_dpCurrentParamData = Invalid_DataPack; From 767a59f67e98fd48aa93cf735759a12d3859052d Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 8 Nov 2023 16:33:56 +0200 Subject: [PATCH 077/231] rework custom events --- api/custom-events/api_custom_events.sma | 383 ++++++++---------- .../include/api_custom_events.inc | 4 +- 2 files changed, 161 insertions(+), 226 deletions(-) diff --git a/api/custom-events/api_custom_events.sma b/api/custom-events/api_custom_events.sma index b49e05f..87dd835 100644 --- a/api/custom-events/api_custom_events.sma +++ b/api/custom-events/api_custom_events.sma @@ -5,12 +5,18 @@ #include -#define LOG_PREFIX "[Custom Events] " - #define PLUGIN "[API] Custom Events" #define VERSION "1.0.0" #define AUTHOR "Hedgehog Fog" +#define LOG_PREFIX "[Custom Events] " + +#define MAX_EVENT_KEY_LENGTH 64 + +#define DEFAULT_CELL_VALUE 0 +#define DEFAULT_FLOAT_VALUE 0.0 +#define DEFAULT_STRING_VALUE NULL_STRING + enum EventParam { EventParam_Type = 0, EventParam_Size @@ -27,22 +33,16 @@ new g_szBuffer[MAX_STRING_LENGTH] new g_rgiBuffer[MAX_STRING_LENGTH]; new Float:g_rgflBuffer[MAX_STRING_LENGTH]; -new Trie:g_itEvents; -new Array:g_rgszEventId; -new Array:g_rgirgEventParamTypes; -new Array:g_rgirgEventSubscribers; -new g_iEventsNum = 0; +new Trie:g_itEventParamTypes; +new Trie:g_itEventSubscribers; -new g_pCurrentEmitter = 0; -new g_iCurrentEvent = -1; +new g_pCurrentActivator = 0; new DataPack:g_dpCurrentParamData = Invalid_DataPack; new Array:g_irgCurrentParamOffsets = Invalid_Array; public plugin_precache() { - g_itEvents = TrieCreate(); - g_rgszEventId = ArrayCreate(32); - g_rgirgEventParamTypes = ArrayCreate(_:EventParam); - g_rgirgEventSubscribers = ArrayCreate(_:EventSubscriber); + g_itEventParamTypes = TrieCreate(); + g_itEventSubscribers = TrieCreate(); } public plugin_init() { @@ -52,18 +52,8 @@ public plugin_init() { } public plugin_end() { - for (new iEvent = 0; iEvent < g_iEventsNum; ++iEvent) { - new Array:irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); - ArrayDestroy(irgParamTypes); - - new Array:irgSubscribers = ArrayGetCell(g_rgirgEventSubscribers, iEvent); - ArrayDestroy(irgSubscribers); - } - - TrieDestroy(g_itEvents); - ArrayDestroy(g_rgszEventId); - ArrayDestroy(g_rgirgEventParamTypes); - ArrayDestroy(g_rgirgEventSubscribers); + TrieDestroy(g_itEventParamTypes); + TrieDestroy(g_itEventSubscribers); } public plugin_natives() { @@ -71,8 +61,6 @@ public plugin_natives() { register_native("CustomEvent_Register", "Native_RegisterEvent"); register_native("CustomEvent_Subscribe", "Native_SubscribeEvent"); register_native("CustomEvent_Emit", "Native_EmitEvent"); - register_native("CustomEvent_EmitFromEntity", "Native_EmitEventFromEntity"); - register_native("CustomEvent_GetGetEmitter", "Native_GetEmitter"); register_native("CustomEvent_GetParamsNum", "Native_GetParamsNum"); register_native("CustomEvent_GetParamType", "Native_GetParamType"); register_native("CustomEvent_GetParam", "Native_GetParam"); @@ -80,10 +68,17 @@ public plugin_natives() { register_native("CustomEvent_GetParamString", "Native_GetParamString"); register_native("CustomEvent_GetParamArray", "Native_GetParamArray"); register_native("CustomEvent_GetParamFloatArray", "Native_GetParamFloatArray"); + register_native("CustomEvent_GetActivator", "Native_GetActivator"); + register_native("CustomEvent_SetActivator", "Native_SetActivator"); } public Native_RegisterEvent(iPluginId, iArgc) { - static szEvent[32]; get_string(1, szEvent, charsmax(szEvent)); + static szEvent[MAX_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); + + if (TrieKeyExists(g_itEventParamTypes, szEvent)) { + log_error(AMX_ERR_NATIVE, "%sEvent ^"%s^" is already registered.", LOG_PREFIX); + return; + } static Array:irgParamTypes; irgParamTypes = ArrayCreate(_:EventParam, iArgc - 1); @@ -102,176 +97,123 @@ public Native_RegisterEvent(iPluginId, iArgc) { ArrayPushArray(irgParamTypes, rgParam[any:0], _:EventParam); } - RegisterEvent(szEvent, irgParamTypes); + TrieSetCell(g_itEventParamTypes, szEvent, irgParamTypes); } public Native_SubscribeEvent(iPluginId, iArgc) { - static szEvent[32]; get_string(1, szEvent, charsmax(szEvent)); - static szCallback[32]; get_string(2, szCallback, charsmax(szCallback)); + static szEvent[MAX_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); + static szCallback[64]; get_string(2, szCallback, charsmax(szCallback)); - static iEvent; iEvent = GetEventId(szEvent); - if (iEvent == -1) { - log_amx("%sCannot subscribe event ^"%s^". Event ^"%s^" is not registered.", LOG_PREFIX, szEvent, szEvent); + if (!TrieKeyExists(g_itEventSubscribers, szEvent)) { + TrieSetCell(g_itEventSubscribers, szEvent, ArrayCreate(_:EventSubscriber)); } - static Array:irgSubscribers; irgSubscribers = ArrayGetCell(g_rgirgEventSubscribers, iEvent); + static Array:irgSubscribers; TrieGetCell(g_itEventSubscribers, szEvent, irgSubscribers); static rgSubscriber[EventSubscriber]; rgSubscriber[EventSubscriber_PluginId] = iPluginId; rgSubscriber[EventSubscriber_FunctionId] = get_func_id(szCallback, iPluginId); - ArrayPushArray(irgSubscribers, rgSubscriber[any:0], _:EventSubscriber); } - public Native_EmitEvent(iPluginId, iArgc) { - static szEvent[32]; get_string(1, szEvent, charsmax(szEvent)); - - static iEvent; iEvent = GetEventId(szEvent); - if (iEvent == -1) { - log_amx("%sCannot emit event ^"%s^". Event ^"%s^" is not registered.", LOG_PREFIX, szEvent, szEvent); - return; - } + static szEvent[MAX_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); - static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); static DataPack:dpParams; dpParams = CreateDataPack(); - static iParamsNum; iParamsNum = ArraySize(irgParamTypes); - for (new iEventParam = 0; iEventParam < iParamsNum; ++iEventParam) { - static iParam; iParam = 2 + iEventParam; - static iType; iType = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Type); - static iSize; iSize = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Size); - - switch (iType) { - case EP_Cell: { - WritePackCell(dpParams, get_param_byref(iParam)); - } - case EP_Float: { - WritePackFloat(dpParams, Float:get_param_byref(iParam)); - } - case EP_String: { - get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); - WritePackString(dpParams, g_szBuffer); - } - case EP_Array: { - get_array(iParam, g_rgiBuffer, iSize); - WritePackArray(dpParams, g_rgiBuffer, iSize); - } - case EP_FloatArray: { - get_array_f(iParam, g_rgflBuffer, iSize); - WritePackFloatArray(dpParams, g_rgflBuffer, iSize); + if (TrieKeyExists(g_itEventParamTypes, szEvent)) { + static Array:irgParamTypes; TrieGetCell(g_itEventParamTypes, szEvent, irgParamTypes); + + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + for (new iEventParam = 0; iEventParam < iParamsNum; ++iEventParam) { + static iParam; iParam = 3 + iEventParam; + static iType; iType = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Type); + static iSize; iSize = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Size); + static bool:bUseDefault; bUseDefault = iParam >= iArgc; + + switch (iType) { + case EP_Cell: { + WritePackCell(dpParams, bUseDefault ? DEFAULT_CELL_VALUE : get_param_byref(iParam)); + } + case EP_Float: { + WritePackFloat(dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:get_param_byref(iParam)); + } + case EP_String: { + if (bUseDefault) { + copy(g_szBuffer, sizeof(g_szBuffer), DEFAULT_STRING_VALUE); + } else { + get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); + } + + WritePackString(dpParams, g_szBuffer); + } + case EP_Array: { + if (bUseDefault) { + arrayset(g_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + get_array(iParam, g_rgiBuffer, iSize); + } + + WritePackArray(dpParams, g_rgiBuffer, iSize); + } + case EP_FloatArray: { + if (bUseDefault) { + arrayset(g_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + get_array_f(iParam, g_rgflBuffer, iSize); + } + + WritePackFloatArray(dpParams, g_rgflBuffer, iSize); + } } } } ResetPack(dpParams); - EmitEvent(szEvent, dpParams, 0); + EmitEvent(szEvent, dpParams); DestroyDataPack(dpParams); } -public Native_EmitEventFromEntity(iPluginId, iArgc) { - static pEmitter; pEmitter = get_param(1); - static szEvent[32]; get_string(2, szEvent, charsmax(szEvent)); +public Native_SetActivator(iPluginId, iArgc) { + static pActivator; pActivator = get_param(1); - static iEvent; iEvent = GetEventId(szEvent); - if (iEvent == -1) { - log_amx("%sCannot emit event ^"%s^". Event ^"%s^" is not registered.", LOG_PREFIX, szEvent, szEvent); + if (pActivator && !pev_valid(pActivator)) { + log_error(AMX_ERR_NATIVE, "%sCannot set emitter. %d is not valid entity.", LOG_PREFIX, pActivator); return; } - static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); - static DataPack:dpParams; dpParams = CreateDataPack(); - - static iParamsNum; iParamsNum = ArraySize(irgParamTypes); - for (new iEventParam = 0; iEventParam < iParamsNum; ++iEventParam) { - static iParam; iParam = 3 + iEventParam; - static iType; iType = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Type); - static iSize; iSize = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Size); - - switch (iType) { - case EP_Cell: { - WritePackCell(dpParams, get_param_byref(iParam)); - } - case EP_Float: { - WritePackFloat(dpParams, Float:get_param_byref(iParam)); - } - case EP_String: { - get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); - WritePackString(dpParams, g_szBuffer); - } - case EP_Array: { - get_array(iParam, g_rgiBuffer, iSize); - WritePackArray(dpParams, g_rgiBuffer, iSize); - } - case EP_FloatArray: { - get_array_f(iParam, g_rgflBuffer, iSize); - WritePackFloatArray(dpParams, g_rgflBuffer, iSize); - } - } - } - - ResetPack(dpParams); - EmitEvent(szEvent, dpParams, pEmitter); - - DestroyDataPack(dpParams); + g_pCurrentActivator = pActivator; } -public Native_GetEmitter(iPluginId, iArgc) { - return g_pCurrentEmitter; +public Native_GetActivator(iPluginId, iArgc) { + return g_pCurrentActivator; } public Native_GetParamsNum(iPluginId, iArgc) { - static szEvent[32]; get_string(1, szEvent, charsmax(szEvent)); - - static iEvent; iEvent = GetEventId(szEvent); - if (iEvent == -1) { - log_amx("%sEvent ^"%s^" is not registered.", LOG_PREFIX, szEvent); - return EP_Invalid; - } + static szEvent[MAX_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); - return GetEventParamsNum(iEvent); + return GetEventParamsNum(szEvent); } public Native_GetParamType(iPluginId, iArgc) { - static szEvent[32]; get_string(1, szEvent, charsmax(szEvent)); + static szEvent[MAX_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); static iParam; iParam = get_param(2); - static iEvent; iEvent = GetEventId(szEvent); - if (iEvent == -1) { - log_amx("%sEvent ^"%s^" is not registered.", LOG_PREFIX, szEvent); - return EP_Invalid; - } - - return GetEventParamType(iEvent, iParam); + return GetEventParamType(szEvent, iParam); } public any:Native_GetParam(iPluginId, iArgc) { - if (g_iCurrentEvent == -1) { - log_error(AMX_ERR_NATIVE, "%sNot currently in a event callback.", LOG_PREFIX); - return 0; - } - static iParam; iParam = get_param(1); return GetCurrentEventParam(iParam - 1); } public Float:Native_GetParamFloat(iPluginId, iArgc) { - if (g_iCurrentEvent == -1) { - log_error(AMX_ERR_NATIVE, "%sNot currently in a event callback.", LOG_PREFIX); - return 0.0; - } - static iParam; iParam = get_param(1); return GetCurrentEventParamFloat(iParam - 1); } public Float:Native_GetParamString(iPluginId, iArgc) { - if (g_iCurrentEvent == -1) { - log_error(AMX_ERR_NATIVE, "%sNot currently in a event callback.", LOG_PREFIX); - return; - } - static iParam; iParam = get_param(1); static iLen; iLen = get_param(3); GetCurrentEventParamString(iParam - 1, g_szBuffer, iLen); @@ -279,11 +221,6 @@ public Float:Native_GetParamString(iPluginId, iArgc) { } public Native_GetParamArray(iPluginId, iArgc) { - if (g_iCurrentEvent == -1) { - log_error(AMX_ERR_NATIVE, "%sNot currently in a event callback.", LOG_PREFIX); - return; - } - static iParam; iParam = get_param(1); static iLen; iLen = get_param(3); GetCurrentEventParamArray(iParam - 1, g_rgiBuffer, iLen); @@ -291,77 +228,71 @@ public Native_GetParamArray(iPluginId, iArgc) { } public Native_GetParamFloatArray(iPluginId, iArgc) { - if (g_iCurrentEvent == -1) { - log_error(AMX_ERR_NATIVE, "%sNot currently in a event callback.", LOG_PREFIX); - return; - } - static iParam; iParam = get_param(1); static iLen; iLen = get_param(3); GetCurrentEventParamFloatArray(iParam - 1, g_rgflBuffer, iLen); set_array_f(2, g_rgflBuffer, iLen); } -RegisterEvent(const szEvent[], Array:irgParamTypes) { - new iEvent = g_iEventsNum; - - ArrayPushString(g_rgszEventId, szEvent); - ArrayPushCell(g_rgirgEventParamTypes, irgParamTypes); - ArrayPushCell(g_rgirgEventSubscribers, ArrayCreate(_:EventSubscriber)); - TrieSetCell(g_itEvents, szEvent, iEvent); - - g_iEventsNum++; - - return iEvent; -} - -GetEventId(const szEvent[]) { - static iEvent; - if (!TrieGetCell(g_itEvents, szEvent, iEvent)) return -1; +GetEventParamsNum(const szEvent[]) { + static Array:irgParamTypes; + if (!TrieGetCell(g_itEventParamTypes, szEvent, irgParamTypes)) return 0; - return iEvent; + return ArraySize(irgParamTypes); } -GetEventParamType(iEvent, iParam) { - static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); - +GetEventParamType(const szEvent[], iParam) { + static Array:irgParamTypes; + if (!TrieGetCell(g_itEventParamTypes, szEvent, irgParamTypes)) return EP_Invalid; if (iParam <= ArraySize(irgParamTypes)) return EP_Invalid; return ArrayGetCell(irgParamTypes, iParam, _:EventParam_Type); } -GetEventParamsNum(iEvent) { - static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); - static iParamsNum; iParamsNum = ArraySize(irgParamTypes); - - return iParamsNum; -} - any:GetCurrentEventParam(iParam) { + if (g_irgCurrentParamOffsets == Invalid_Array) return DEFAULT_CELL_VALUE; + SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); return ReadPackCell(g_dpCurrentParamData); } Float:GetCurrentEventParamFloat(iParam) { + if (g_irgCurrentParamOffsets == Invalid_Array) return DEFAULT_FLOAT_VALUE; + SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); return ReadPackFloat(g_dpCurrentParamData); } GetCurrentEventParamString(iParam, szOut[], iLen) { + if (g_irgCurrentParamOffsets == Invalid_Array) { + copy(szOut, iLen, DEFAULT_STRING_VALUE); + return; + } + SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); ReadPackString(g_dpCurrentParamData, szOut, iLen); } GetCurrentEventParamArray(iParam, rgiOut[], iLen) { + if (g_irgCurrentParamOffsets == Invalid_Array) { + arrayset(rgiOut, DEFAULT_CELL_VALUE, iLen); + return; + } + SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); ReadPackArray(g_dpCurrentParamData, rgiOut, iLen) } GetCurrentEventParamFloatArray(iParam, Float:rgflOut[], iLen) { + if (g_irgCurrentParamOffsets == Invalid_Array) { + arrayset(rgflOut, DEFAULT_FLOAT_VALUE, iLen); + return; + } + SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); ReadPackFloatArray(g_dpCurrentParamData, rgflOut, iLen) @@ -371,24 +302,26 @@ DataPackPos:GetCurrentOffset(iParam) { return ArrayGetCell(g_irgCurrentParamOffsets, iParam); } -EmitEvent(const szEvent[], DataPack:dpParams, pEmitter) { - static iEvent; iEvent = GetEventId(szEvent); - - if (pEmitter && !pev_valid(pEmitter)) { - log_error(AMX_ERR_NATIVE, "%sCannot emit event ^"%s^" from entity! Invalid entity %d.", LOG_PREFIX, szEvent, pEmitter); +EmitEvent(const szEvent[], DataPack:dpParams) { + if (g_pCurrentActivator && !pev_valid(g_pCurrentActivator)) { + log_error(AMX_ERR_NATIVE, "%sCannot emit event ^"%s^" from entity! Invalid entity %d.", LOG_PREFIX, szEvent, g_pCurrentActivator); return; } - g_iCurrentEvent = iEvent; - g_pCurrentEmitter = pEmitter; - g_irgCurrentParamOffsets = GetEventParamOffsets(iEvent, dpParams); g_dpCurrentParamData = dpParams; + g_irgCurrentParamOffsets = Invalid_Array; + + static Array:irgParamTypes; irgParamTypes = Invalid_Array; - static iForwardReturn; ExecuteForward(g_fwEmit, iForwardReturn, szEvent, pEmitter); + if (TrieKeyExists(g_itEventParamTypes, szEvent)) { + TrieGetCell(g_itEventParamTypes, szEvent, irgParamTypes); + g_irgCurrentParamOffsets = GetEventParamOffsets(dpParams, irgParamTypes) + } + + static iForwardReturn; ExecuteForward(g_fwEmit, iForwardReturn, szEvent, g_pCurrentActivator); - if (iForwardReturn == PLUGIN_CONTINUE) { - static Array:irgSubscribers; irgSubscribers = ArrayGetCell(g_rgirgEventSubscribers, iEvent); - static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); + if (iForwardReturn == PLUGIN_CONTINUE && TrieKeyExists(g_itEventSubscribers, szEvent)) { + static Array:irgSubscribers; TrieGetCell(g_itEventSubscribers, szEvent, irgSubscribers); static iSubscribersNum; iSubscribersNum = ArraySize(irgSubscribers); for (new iSubscriber = 0; iSubscriber < iSubscribersNum; ++iSubscriber) { @@ -400,19 +333,19 @@ EmitEvent(const szEvent[], DataPack:dpParams, pEmitter) { } } - ArrayDestroy(g_irgCurrentParamOffsets); + if (g_irgCurrentParamOffsets != Invalid_Array) { + ArrayDestroy(g_irgCurrentParamOffsets); + } - g_iCurrentEvent = -1; - g_pCurrentEmitter = 0; + g_pCurrentActivator = 0; g_irgCurrentParamOffsets = Invalid_Array; g_dpCurrentParamData = Invalid_DataPack; } -Array:GetEventParamOffsets(iEvent, DataPack:dpParams) { +Array:GetEventParamOffsets(DataPack:dpParams, Array:irgParamTypes) { static Array:irgOffsets; irgOffsets = ArrayCreate(); static DataPackPos:iPos; iPos = GetPackPosition(dpParams); - static Array:irgParamTypes; irgParamTypes = ArrayGetCell(g_rgirgEventParamTypes, iEvent); static iParamsNum; iParamsNum = ArraySize(irgParamTypes); for (new iParam = 0; iParam < iParamsNum; ++iParam) { @@ -428,40 +361,42 @@ Array:GetEventParamOffsets(iEvent, DataPack:dpParams) { case EP_FloatArray: ReadPackFloatArray(dpParams, g_rgflBuffer, 0); } } - + SetPackPosition(dpParams, iPos); return irgOffsets; } CallEventCallback(iPluginId, iFunctionId, DataPack:dpParams, Array:irgParamTypes) { - static iParamsNum; iParamsNum = ArraySize(irgParamTypes); - callfunc_begin_i(iFunctionId, iPluginId); - for (new iParam = 0; iParam < iParamsNum; ++iParam) { - static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:EventParam_Type); - - switch (iType) { - case EP_Cell: { - static iValue; iValue = ReadPackCell(dpParams); - callfunc_push_int(iValue); - } - case EP_Float: { - static Float:flValue; flValue = ReadPackFloat(dpParams); - callfunc_push_float(flValue); - } - case EP_String: { - ReadPackString(dpParams, g_szBuffer, charsmax(g_szBuffer)); - callfunc_push_str(g_szBuffer); - } - case EP_Array: { - static iLen; iLen = ReadPackArray(dpParams, g_rgiBuffer); - callfunc_push_array(g_rgiBuffer, iLen, false); - } - case EP_FloatArray: { - static iLen; iLen = ReadPackFloatArray(dpParams, g_rgflBuffer); - callfunc_push_array(_:g_rgflBuffer, iLen, false); + if (irgParamTypes != Invalid_Array) { + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + + for (new iParam = 0; iParam < iParamsNum; ++iParam) { + static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:EventParam_Type); + + switch (iType) { + case EP_Cell: { + static iValue; iValue = ReadPackCell(dpParams); + callfunc_push_int(iValue); + } + case EP_Float: { + static Float:flValue; flValue = ReadPackFloat(dpParams); + callfunc_push_float(flValue); + } + case EP_String: { + ReadPackString(dpParams, g_szBuffer, charsmax(g_szBuffer)); + callfunc_push_str(g_szBuffer); + } + case EP_Array: { + static iLen; iLen = ReadPackArray(dpParams, g_rgiBuffer); + callfunc_push_array(g_rgiBuffer, iLen, false); + } + case EP_FloatArray: { + static iLen; iLen = ReadPackFloatArray(dpParams, g_rgflBuffer); + callfunc_push_array(_:g_rgflBuffer, iLen, false); + } } } } diff --git a/api/custom-events/include/api_custom_events.inc b/api/custom-events/include/api_custom_events.inc index 5a1b6f8..49a6a58 100644 --- a/api/custom-events/include/api_custom_events.inc +++ b/api/custom-events/include/api_custom_events.inc @@ -17,8 +17,6 @@ enum { native CustomEvent_Register(const szId[], any:...); native CustomEvent_Subscribe(const szId[], const szCallback[]); native CustomEvent_Emit(const szId[], any:...); -native CustomEvent_EmitFromEntity(pEmitter, const szId[], any:...); -native CustomEvent_GetGetEmitter(); native CustomEvent_GetParamsNum(const szId[]); native CustomEvent_GetParamType(const szId[], iParam); native any:CustomEvent_GetParam(iParam); @@ -26,5 +24,7 @@ native Float:CustomEvent_GetParamFloat(iParam); native CustomEvent_GetParamString(iParam, szOut[], iLen); native CustomEvent_GetParamArray(iParam, rgiOut[], iLen); native CustomEvent_GetParamFloatArray(iParam, Float:rgflOut[], iLen); +native CustomEvent_SetActivator(pEntity); +native CustomEvent_GetActivator(); forward CustomEvent_Fw_Emited(const szId[]); From d6c2697976cbb80a616d65b7df536699f6b4bad3 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 8 Nov 2023 16:52:34 +0200 Subject: [PATCH 078/231] fix forward name --- api/custom-events/include/api_custom_events.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/custom-events/include/api_custom_events.inc b/api/custom-events/include/api_custom_events.inc index 49a6a58..cc0f30b 100644 --- a/api/custom-events/include/api_custom_events.inc +++ b/api/custom-events/include/api_custom_events.inc @@ -27,4 +27,4 @@ native CustomEvent_GetParamFloatArray(iParam, Float:rgflOut[], iLen); native CustomEvent_SetActivator(pEntity); native CustomEvent_GetActivator(); -forward CustomEvent_Fw_Emited(const szId[]); +forward CustomEvent_Fw_Emit(const szId[]); From 9fa850bf1dc5481fc88d8d533a0aad863921e1cd Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 8 Nov 2023 17:15:04 +0200 Subject: [PATCH 079/231] add custom_events_handler entity --- entities/entity_custom_events_handler.sma | 81 +++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 entities/entity_custom_events_handler.sma diff --git a/entities/entity_custom_events_handler.sma b/entities/entity_custom_events_handler.sma new file mode 100644 index 0000000..e62bef8 --- /dev/null +++ b/entities/entity_custom_events_handler.sma @@ -0,0 +1,81 @@ +#pragma semicolon 1 + +#include +#include +#include +#include + +#include +#include + +#define PLUGIN "[Entity] Custom Events Handler" +#define VERSION "1.0.0" +#define AUTHOR "Hedgehog Fog" + +#define m_pActivator "pActivator" +#define m_szEvent "szEvent" +#define m_szTarget "szTarget" + +#define ENTITY_NAME "custom_events_handler" + +new Array:g_irgpEntities; + +public plugin_precache() { + g_irgpEntities = ArrayCreate(); + + CE_Register(ENTITY_NAME); + CE_RegisterHook(CEFunction_Init, ENTITY_NAME, "@Entity_Init"); + CE_RegisterHook(CEFunction_KVD, ENTITY_NAME, "@Entity_KeyValue"); + CE_RegisterHook(CEFunction_Think, ENTITY_NAME, "@Entity_Think"); + CE_RegisterHook(CEFunction_Remove, ENTITY_NAME, "@Entity_Remove"); +} + +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); +} + +public plugin_end() { + ArrayDestroy(g_irgpEntities); +} + +public CustomEvent_Fw_Emit(const szEvent[], pActivator) { + new iSize = ArraySize(g_irgpEntities); + for (new iGlobalId = 0; iGlobalId < iSize; ++iGlobalId) { + static pEntity; pEntity = ArrayGetCell(g_irgpEntities, iGlobalId); + + static szEntityEvent[64]; CE_GetMemberString(pEntity, m_szEvent, szEntityEvent, charsmax(szEntityEvent)); + if (!equal(szEntityEvent, szEvent)) continue; + + CE_SetMember(pEntity, m_pActivator, pActivator); + dllfunc(DLLFunc_Think, pEntity); + } +} + +@Entity_KeyValue(this, const szKey[], const szValue[]) { + if (equal(szKey, "event")) { + CE_SetMemberString(this, m_szEvent, szValue); + } else if (equal(szKey, "target")) { + CE_SetMemberString(this, m_szTarget, szValue); + } +} + +@Entity_Init(this) { + ArrayPushCell(g_irgpEntities, this); +} + +@Entity_Remove(this) { + new iGlobalIndex = ArrayFindValue(g_irgpEntities, this); + if (iGlobalIndex != -1) { + ArrayDeleteItem(g_irgpEntities, iGlobalIndex); + } +} + +@Entity_Think(this) { + static pActivator; pActivator = CE_GetMember(this, m_pActivator); + static szTarget[64]; CE_GetMemberString(this, m_szTarget, szTarget, charsmax(szTarget)); + + new pTarget = 0; + while ((pTarget = engfunc(EngFunc_FindEntityByString, pTarget, "targetname", szTarget)) != 0) { + ExecuteHamB(Ham_Use, pTarget, pActivator, this, 2, 1.0); + } +} From 289cc2e7a724e38f42c9ee0addd6f70a3705c6bc Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 8 Nov 2023 17:19:16 +0200 Subject: [PATCH 080/231] fix forward params --- api/custom-events/include/api_custom_events.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/custom-events/include/api_custom_events.inc b/api/custom-events/include/api_custom_events.inc index cc0f30b..b6c396c 100644 --- a/api/custom-events/include/api_custom_events.inc +++ b/api/custom-events/include/api_custom_events.inc @@ -27,4 +27,4 @@ native CustomEvent_GetParamFloatArray(iParam, Float:rgflOut[], iLen); native CustomEvent_SetActivator(pEntity); native CustomEvent_GetActivator(); -forward CustomEvent_Fw_Emit(const szId[]); +forward CustomEvent_Fw_Emit(const szId[], pActivator); From c7080076bb7f734c42cb0e9fb55adb9d7c13d417 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 8 Nov 2023 18:53:08 +0200 Subject: [PATCH 081/231] fix marker visibility --- api/waypoint-markers/api_waypoint_markers.sma | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/api/waypoint-markers/api_waypoint_markers.sma b/api/waypoint-markers/api_waypoint_markers.sma index 4de066c..c679c54 100644 --- a/api/waypoint-markers/api_waypoint_markers.sma +++ b/api/waypoint-markers/api_waypoint_markers.sma @@ -131,11 +131,12 @@ public HamHook_Player_PostThink_Post(pPlayer) { public FMHook_AddToFullPack(es, e, pEntity, pHost, pHostFlags, iPlayer, pSet) { if (!IS_PLAYER(pHost)) return FMRES_IGNORED; - if (!is_user_alive(pHost)) return FMRES_IGNORED; - if (is_user_bot(pHost)) return FMRES_IGNORED; if (!pev_valid(pEntity)) return FMRES_IGNORED; if (@Base_IsMarker(pEntity)) { + if (!is_user_alive(pHost)) return FMRES_SUPERCEDE; + if (is_user_bot(pHost)) return FMRES_SUPERCEDE; + static Struct:sPlayerData; sPlayerData = @Marker_GetPlayerData(pEntity, pHost); if (!StructGetCell(sPlayerData, MarkerPlayerData_IsVisible)) return FMRES_SUPERCEDE; @@ -147,11 +148,12 @@ public FMHook_AddToFullPack(es, e, pEntity, pHost, pHostFlags, iPlayer, pSet) { public FMHook_AddToFullPack_Post(es, e, pEntity, pHost, pHostFlags, iPlayer, pSet) { if (!IS_PLAYER(pHost)) return FMRES_IGNORED; - if (!is_user_alive(pHost)) return FMRES_IGNORED; - if (is_user_bot(pHost)) return FMRES_IGNORED; if (!pev_valid(pEntity)) return FMRES_IGNORED; if (@Base_IsMarker(pEntity)) { + if (!is_user_alive(pHost)) return FMRES_SUPERCEDE; + if (is_user_bot(pHost)) return FMRES_SUPERCEDE; + static Struct:sPlayerData; sPlayerData = @Marker_GetPlayerData(pEntity, pHost); if (!StructGetCell(sPlayerData, MarkerPlayerData_IsVisible)) return FMRES_SUPERCEDE; From aa5834a4d88b3b5bfd98982b1429144d894e04b0 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 8 Nov 2023 21:24:48 +0200 Subject: [PATCH 082/231] fix memory leaks --- api/custom-events/api_custom_events.sma | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/api/custom-events/api_custom_events.sma b/api/custom-events/api_custom_events.sma index 87dd835..c7d9400 100644 --- a/api/custom-events/api_custom_events.sma +++ b/api/custom-events/api_custom_events.sma @@ -52,6 +52,18 @@ public plugin_init() { } public plugin_end() { + for (new TrieIter:iIterator = TrieIterCreate(g_itEventParamTypes); !TrieIterEnded(iIterator); TrieIterNext(iIterator)) { + new Array:irgParamTypes = Invalid_Array; + if (!TrieIterGetCell(iIterator, irgParamTypes)) continue; + if (irgParamTypes != Invalid_Array) ArrayDestroy(irgParamTypes); + } + + for (new TrieIter:iIterator = TrieIterCreate(g_itEventSubscribers); !TrieIterEnded(iIterator); TrieIterNext(iIterator)) { + new Array:irgSubscribers = Invalid_Array; + if (!TrieIterGetCell(iIterator, irgSubscribers)) continue; + if (irgSubscribers != Invalid_Array) ArrayDestroy(irgSubscribers); + } + TrieDestroy(g_itEventParamTypes); TrieDestroy(g_itEventSubscribers); } From 5531a1ac053203752c4d2538c9a9a5a684eb53e2 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 8 Nov 2023 21:28:52 +0200 Subject: [PATCH 083/231] fix semicolons --- api/custom-events/api_custom_events.sma | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/api/custom-events/api_custom_events.sma b/api/custom-events/api_custom_events.sma index c7d9400..8da1e0e 100644 --- a/api/custom-events/api_custom_events.sma +++ b/api/custom-events/api_custom_events.sma @@ -1,3 +1,5 @@ +#pragma semicolon 1 + #include #include @@ -29,7 +31,7 @@ enum EventSubscriber { new g_fwEmit; -new g_szBuffer[MAX_STRING_LENGTH] +new g_szBuffer[MAX_STRING_LENGTH]; new g_rgiBuffer[MAX_STRING_LENGTH]; new Float:g_rgflBuffer[MAX_STRING_LENGTH]; @@ -296,7 +298,7 @@ GetCurrentEventParamArray(iParam, rgiOut[], iLen) { SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); - ReadPackArray(g_dpCurrentParamData, rgiOut, iLen) + ReadPackArray(g_dpCurrentParamData, rgiOut, iLen); } GetCurrentEventParamFloatArray(iParam, Float:rgflOut[], iLen) { @@ -307,7 +309,7 @@ GetCurrentEventParamFloatArray(iParam, Float:rgflOut[], iLen) { SetPackPosition(g_dpCurrentParamData, GetCurrentOffset(iParam)); - ReadPackFloatArray(g_dpCurrentParamData, rgflOut, iLen) + ReadPackFloatArray(g_dpCurrentParamData, rgflOut, iLen); } DataPackPos:GetCurrentOffset(iParam) { @@ -327,7 +329,7 @@ EmitEvent(const szEvent[], DataPack:dpParams) { if (TrieKeyExists(g_itEventParamTypes, szEvent)) { TrieGetCell(g_itEventParamTypes, szEvent, irgParamTypes); - g_irgCurrentParamOffsets = GetEventParamOffsets(dpParams, irgParamTypes) + g_irgCurrentParamOffsets = GetEventParamOffsets(dpParams, irgParamTypes); } static iForwardReturn; ExecuteForward(g_fwEmit, iForwardReturn, szEvent, g_pCurrentActivator); From 878d304e8ff9c2a4d01d3e1f59afbdfccabb8a7a Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 8 Nov 2023 21:32:34 +0200 Subject: [PATCH 084/231] fix semicolons --- api/navsystem/api_navsystem.sma | 2 +- api/player-model/api_player_model.sma | 6 ++++-- api/player-viewrange/api_player_viewrange.sma | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/api/navsystem/api_navsystem.sma b/api/navsystem/api_navsystem.sma index c61cf93..ea49450 100644 --- a/api/navsystem/api_navsystem.sma +++ b/api/navsystem/api_navsystem.sma @@ -14,7 +14,7 @@ https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_path.cpp */ -#pragma semicolon 1; +#pragma semicolon 1 #include #include diff --git a/api/player-model/api_player_model.sma b/api/player-model/api_player_model.sma index 7abd0ed..6f0d753 100644 --- a/api/player-model/api_player_model.sma +++ b/api/player-model/api_player_model.sma @@ -1,3 +1,5 @@ +#pragma semicolon 1 + #include #include #include @@ -366,9 +368,9 @@ PrecachePlayerAnimation(const szAnim[]) { new iModelIndex = precache_model(szFilePath); - new iFile = fopen(szFilePath, "rb") + new iFile = fopen(szFilePath, "rb"); if (!iFile) { - return 0 + return 0; } // Got to "numseq" position of the studiohdr_t structure diff --git a/api/player-viewrange/api_player_viewrange.sma b/api/player-viewrange/api_player_viewrange.sma index 975b197..ef95434 100644 --- a/api/player-viewrange/api_player_viewrange.sma +++ b/api/player-viewrange/api_player_viewrange.sma @@ -1,3 +1,5 @@ +#pragma semicolon 1 + #include #define PLUGIN "[API] Player View Range" From 70c1f96d28bbf461acaa52aafff6920b99dfd808 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 9 Nov 2023 11:10:49 +0200 Subject: [PATCH 085/231] add custom events api documentation --- api/custom-events/README.md | 132 ++++++++++++++++++ .../include/api_custom_events.inc | 122 +++++++++++++++- 2 files changed, 248 insertions(+), 6 deletions(-) create mode 100644 api/custom-events/README.md diff --git a/api/custom-events/README.md b/api/custom-events/README.md new file mode 100644 index 0000000..a1222af --- /dev/null +++ b/api/custom-events/README.md @@ -0,0 +1,132 @@ +# Custom Events API +The Custom Events API provides a flexible event pattern implementation that allows you to emit and subscribe to events using string keys. With this API, there is no need to explicitly register events. You can simply emit and subscribe to events on the fly. + +## Emitting an Event +To emit an event, call the CustomEvent_Emit function and pass the event key as a parameter. + +```cpp +CustomEvent_Emit("my-event"); +``` + +## Subscribing to an Event +To subscribe to a specific event, use the CustomEvent_Subscribe function. Provide the event key and the callback function as parameters. + +Subscribe to an event: + +```cpp +CustomEvent_Subscribe("my-event", "EventSubscriber_MyEvent"); +``` + +Event subscriber function: + +```cpp +public EventSubscriber_MyEvent() { + log_amx("Subscriber 1"); +} +``` + +## Registering an Event with Parameters +You can register an event with parameters using the `CustomEvent_Register` function. Provide the event key, parameter types, and the number of parameters. + +```cpp +CustomEvent_Register("my-event", EP_Cell, EP_Float, EP_Array, 3, EP_FloatArray, 3, EP_String, EP_Cell); +``` + +There are two ways to obtain event parameters. + +Using arguments in the subscriber function: +```cpp +public EventSubscriber_MyEvent(iCell, Float:flFloat, const rgiArray[3], const Float:rgflArray[3], const szString[]) { + log_amx("Subscriber 1"); + + log_amx("iCell: %d", iCell); + log_amx("flFloat: %f", flFloat); + log_amx("rgiArray: {%d, %d, %d}", rgiArray[0], rgiArray[1], rgiArray[2]); + log_amx("rgflArray: {%f, %f, %f}", rgflArray[0], rgflArray[1], rgflArray[2]); + log_amx("szString: %s", szString); +} +``` + +Using getter functions in the subscriber function: + +```cpp +public EventSubscriber_MyEvent() { + log_amx("Event Forward %s", szEvent); + + new iCell = CustomEvent_GetParam(1); + new Float:flFloat = CustomEvent_GetParamFloat(2); + new rgiArray[3]; CustomEvent_GetParamArray(3, rgiArray, sizeof(rgiArray)); + new Float:rgflArray[3]; CustomEvent_GetParamFloatArray(4, rgflArray, sizeof(rgflArray)); + new szString[128]; CustomEvent_GetParamString(5, szString, charsmax(szString)); + + log_amx("iCell: %d", iCell); + log_amx("flFloat: %f", flFloat); + log_amx("rgiArray: {%d, %d, %d}", rgiArray[0], rgiArray[1], rgiArray[2]); + log_amx("rgflArray: {%f, %f, %f}", rgflArray[0], rgflArray[1], rgflArray[2]); + log_amx("szString: %s", szString); +} +``` + +## Using a Global Forward to Handle Events +You can use a forward declaration to handle all emitted events. Define a public CustomEvent_Fw_Emit function in your plugin. + +```cpp +public CustomEvent_Fw_Emit(const szEvent[]) { + log_amx("Event Forward %s", szEvent); + + if (equal(szEvent, "my-event")) { + new iCell = CustomEvent_GetParam(1); + new Float:flFloat = CustomEvent_GetParamFloat(2); + new rgiArray[3]; CustomEvent_GetParamArray(3, rgiArray, sizeof(rgiArray)); + new Float:rgflArray[3]; CustomEvent_GetParamFloatArray(4, rgflArray, sizeof(rgflArray)); + new szString[128]; CustomEvent_GetParamString(5, szString, charsmax(szString)); + + log_amx("iCell: %d", iCell); + log_amx("flFloat: %f", flFloat); + log_amx("rgiArray: {%d, %d, %d}", rgiArray[0], rgiArray[1], rgiArray[2]); + log_amx("rgflArray: {%f, %f, %f}", rgflArray[0], rgflArray[1], rgflArray[2]); + log_amx("szString: %s", szString); + } +} + +To block the event emit, return `PLUGIN_HANDLED` from the forward function. It will stop subscribers from being called. + +```cpp +public CustomEvent_Fw_Emit(const szEvent[]) { + if (equal(szEvent, "authorize")) { + new szUsername[128]; CustomEvent_GetParamString(1, szUsername, charsmax(szUsername)); + new szPassword[128]; CustomEvent_GetParamString(2, szPassword, charsmax(szPassword)); + + if (!equal(szUsername, "admin") || !equal(szPassword, "admin")) { + return PLUGIN_HANDLED; + } + + return PLUGIN_CONTINUE; + } + + return PLUGIN_CONTINUE; +} +``` + +# Using activator entity +Custom events support the activator entity. It is useful if you need to emit the event from a specific entity and want to handle the activator in the forward or subscriber function. + +```cpp +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); + + register_clcmd("boo", "Command_Boo"); +} + +public Command_Boo(pPlayer) { + CustomEvent_SetActivator(pPlayer); + CustomEvent_Emit("my-event"); +} + +public CustomEvent_Fw_Emit(const szEvent[]) { + if (equal(szEvent, "my-event")) { + new pActivator = CustomEvent_GetActivator(); + client_print(pActivator, print_center, "Boo!"); + } +} +``` diff --git a/api/custom-events/include/api_custom_events.inc b/api/custom-events/include/api_custom_events.inc index b6c396c..a5a1b7a 100644 --- a/api/custom-events/include/api_custom_events.inc +++ b/api/custom-events/include/api_custom_events.inc @@ -14,17 +14,127 @@ enum { EP_FloatArray }; -native CustomEvent_Register(const szId[], any:...); -native CustomEvent_Subscribe(const szId[], const szCallback[]); -native CustomEvent_Emit(const szId[], any:...); -native CustomEvent_GetParamsNum(const szId[]); -native CustomEvent_GetParamType(const szId[], iParam); +/** + * Registers a custom event with the specified ID and parameter types. + * + * @param szEvent The ID of the custom event. + * @param any The parameter types for the custom event. + * + * @noreturn +*/ +native CustomEvent_Register(const szEvent[], any:...); + +/** + * Subscribes to the specified custom event with the given callback function. + * + * @param szEvent The ID of the custom event. + * @param szCallback The name of the callback function. + * + * @noreturn + */ +native CustomEvent_Subscribe(const szEvent[], const szCallback[]); + +/** + * Emits the specified custom event with the given parameters. + * + * @param szEvent The ID of the custom event. + * @param any The parameters to be emitted. + * + * @noreturn + */ +native CustomEvent_Emit(const szEvent[], any:...); + +/** + * Gets the number of parameters for the specified custom event. + * @param szEvent The ID of the custom event. + * + * @return The number of parameters for the custom event. + */ +native CustomEvent_GetParamsNum(const szEvent[]); + +/** + * Gets the type of the specified parameter for the custom event. + * + * @param szEvent The ID of the custom event. + * @param iParam The index of the parameter, starting from 1. + * + * @return The type of the parameter. + */ +native CustomEvent_GetParamType(const szEvent[], iParam); + +/** + * Gets the value of the specified parameter for the custom event. + * + * @param iParam The index of the parameter, starting from 1. + * + * @return The value of the parameter. + */ native any:CustomEvent_GetParam(iParam); + +/** + * Gets the floating-point value of the specified parameter for the custom event. + * + * @param iParam The index of the parameter, starting from 1. + * + * @return The floating-point value of the parameter. + */ native Float:CustomEvent_GetParamFloat(iParam); + +/** + * Gets the string value of the specified parameter for the custom event. + * + * @param iParam The index of the parameter, starting from 1. + * @param szOut Buffer to store the string value. + * @param iLen The maximum length of the output buffer. + * + * @noreturn + */ native CustomEvent_GetParamString(iParam, szOut[], iLen); + +/** + * Gets the integer array value of the specified parameter for the custom event. + * + * @param iParam The index of the parameter, starting from 1. + * @param rgiOut Buffer to store the integer array value. + * @param iLen The maximum length of the output buffer. + * + * @noreturn + */ native CustomEvent_GetParamArray(iParam, rgiOut[], iLen); + +/** + * Gets the floating-point array value of the specified parameter for the custom event. + * + * @param iParam The index of the parameter, starting from 1. + * @param rgflOut Buffer to store the floating-point array value. + * @param iLen The maximum length of the output buffer. + * + * @noreturn + */ native CustomEvent_GetParamFloatArray(iParam, Float:rgflOut[], iLen); + +/** + * Sets the activator for the custom event. + * + * @param pEntity The entity to set as the activator. + * + * @noreturn + */ native CustomEvent_SetActivator(pEntity); + +/** + * Retrieves the activator of the custom event. + * + * @return The activator entity of the custom event. + */ native CustomEvent_GetActivator(); -forward CustomEvent_Fw_Emit(const szId[], pActivator); +/** + * Forwards the specified custom event with the given parameters and activator. + * + * @param szEvent The ID of the custom event. + * @param pActivator The activator of the event. Pass 0 if no activator is needed. + * + * @noreturn + */ +forward CustomEvent_Fw_Emit(const szEvent[], pActivator); From 759d795b75d24b04b80500aa4101ffff72b59cc0 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 9 Nov 2023 11:13:50 +0200 Subject: [PATCH 086/231] move MAX_CUSTOM_EVENT_KEY_LENGTH constant to header file --- api/custom-events/api_custom_events.sma | 12 +++++------- api/custom-events/include/api_custom_events.inc | 2 ++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/api/custom-events/api_custom_events.sma b/api/custom-events/api_custom_events.sma index 8da1e0e..4b01895 100644 --- a/api/custom-events/api_custom_events.sma +++ b/api/custom-events/api_custom_events.sma @@ -13,8 +13,6 @@ #define LOG_PREFIX "[Custom Events] " -#define MAX_EVENT_KEY_LENGTH 64 - #define DEFAULT_CELL_VALUE 0 #define DEFAULT_FLOAT_VALUE 0.0 #define DEFAULT_STRING_VALUE NULL_STRING @@ -87,7 +85,7 @@ public plugin_natives() { } public Native_RegisterEvent(iPluginId, iArgc) { - static szEvent[MAX_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); + static szEvent[MAX_CUSTOM_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); if (TrieKeyExists(g_itEventParamTypes, szEvent)) { log_error(AMX_ERR_NATIVE, "%sEvent ^"%s^" is already registered.", LOG_PREFIX); @@ -115,7 +113,7 @@ public Native_RegisterEvent(iPluginId, iArgc) { } public Native_SubscribeEvent(iPluginId, iArgc) { - static szEvent[MAX_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); + static szEvent[MAX_CUSTOM_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); static szCallback[64]; get_string(2, szCallback, charsmax(szCallback)); if (!TrieKeyExists(g_itEventSubscribers, szEvent)) { @@ -131,7 +129,7 @@ public Native_SubscribeEvent(iPluginId, iArgc) { } public Native_EmitEvent(iPluginId, iArgc) { - static szEvent[MAX_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); + static szEvent[MAX_CUSTOM_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); static DataPack:dpParams; dpParams = CreateDataPack(); @@ -205,13 +203,13 @@ public Native_GetActivator(iPluginId, iArgc) { } public Native_GetParamsNum(iPluginId, iArgc) { - static szEvent[MAX_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); + static szEvent[MAX_CUSTOM_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); return GetEventParamsNum(szEvent); } public Native_GetParamType(iPluginId, iArgc) { - static szEvent[MAX_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); + static szEvent[MAX_CUSTOM_EVENT_KEY_LENGTH]; get_string(1, szEvent, charsmax(szEvent)); static iParam; iParam = get_param(2); return GetEventParamType(szEvent, iParam); diff --git a/api/custom-events/include/api_custom_events.inc b/api/custom-events/include/api_custom_events.inc index a5a1b7a..745cb5b 100644 --- a/api/custom-events/include/api_custom_events.inc +++ b/api/custom-events/include/api_custom_events.inc @@ -5,6 +5,8 @@ #pragma reqlib api_custom_events +#define MAX_CUSTOM_EVENT_KEY_LENGTH 64 + enum { EP_Invalid = -1, EP_Cell, From 6a13cbecf906fc956ccf350a12bac7f1b9fba883 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 9 Nov 2023 11:46:39 +0200 Subject: [PATCH 087/231] add documentation --- .../include/api_advanced_pushing.inc | 38 +++++++- .../include/api_player_camera.inc | 90 +++++++++++++++++++ .../include/api_player_cosmetics.inc | 35 ++++++++ .../include/api_player_dizziness.inc | 16 ++++ .../include/api_player_inventory.inc | 66 ++++++++++++++ 5 files changed, 244 insertions(+), 1 deletion(-) diff --git a/api/advanced-pushing/include/api_advanced_pushing.inc b/api/advanced-pushing/include/api_advanced_pushing.inc index c809187..22bc55e 100644 --- a/api/advanced-pushing/include/api_advanced_pushing.inc +++ b/api/advanced-pushing/include/api_advanced_pushing.inc @@ -12,13 +12,49 @@ enum APS_Flags (<<=1) { APS_Flag_OverlapMode }; +/** + * Pushes the entity using the given force vector. + * + * @param pEntity The entity to push. + * @param vecForce The force vector to apply. + * @param iFlags The flags for the push operation. + * + * @noreturn + */ native APS_Push(pEntity, const Float:vecForce[3], APS_Flags:iFlags = APS_Flag_None); + +/** + * Pushes the entity from a specified origin with a force magnitude. + * + * @param pEntity The entity to push. + * @param flForce The force magnitude to apply. + * @param vecOrigin The origin point of the push. + * @param iFlags The flags for the push operation. + * + * @noreturn + */ native APS_PushFromOrigin(pEntity, Float:flForce, Float:vecOrigin[3], APS_Flags:iFlags = APS_Flag_None); + +/** + * Pushes the entity using a bounding box as the toucher. + * + * @param pEntity The entity to push. + * @param flForce The force magnitude to apply. + * @param vecAbsMin The absolute minimum point of the bounding box. + * @param vecAbsMax The absolute maximum point of the bounding box. + * @param flMinDepthRatio The minimum depth ratio for depth influence. + * @param flMaxDepthRatio The maximum depth ratio for depth influence. + * @param flDepthInfluenceMin The minimum depth influence. + * @param flDepthInfluenceMax The maximum depth influence. + * @param iFlags The flags for the push operation. + * + * @noreturn + */ native APS_PushFromBBox( pEntity, Float:flForce, const Float:vecAbsMin[3], - const Float:vecToucherAbsMax[3], + const Float:vecAbsMax[3], Float:flMinDepthRatio = 0.0, Float:flMaxDepthRatio = 1.0, Float:flDepthInfluenceMin = 0.0, diff --git a/api/player-camera/include/api_player_camera.inc b/api/player-camera/include/api_player_camera.inc index c97466f..a683c1a 100644 --- a/api/player-camera/include/api_player_camera.inc +++ b/api/player-camera/include/api_player_camera.inc @@ -5,15 +5,105 @@ #pragma reqlib api_player_camera +/** + * Activates the player's camera. + * + * @param pPlayer The player entity. + * + * @noreturn + */ native PlayerCamera_Activate(pPlayer); + +/** + * Deactivates the player's camera. + * + * @param pPlayer The player entity. + * + * @noreturn + */ native PlayerCamera_Deactivate(pPlayer); + +/** + * Checks if the player's camera is active. + * + * @param pPlayer The player entity. + * + * @return True if the camera is active, false otherwise. + */ native bool:PlayerCamera_IsActive(pPlayer); + +/** + * Sets the offset of the player's camera. + * + * @param pPlayer The player entity. + * @param vecOffset The offset vector. + * + * @noreturn + */ native PlayerCamera_SetOffset(pPlayer, const Float:vecOffset[3]); + +/** + * Sets the angles of the player's camera. + * + * @param pPlayer The player entity. + * @param vecAngles The angles vector. + * + * @noreturn + */ native PlayerCamera_SetAngles(pPlayer, const Float:vecAngles[3]); + +/** + * Sets the distance of the player's camera. + * + * @param pPlayer The player entity. + * @param flDistance The distance value. + * + * @noreturn + */ native PlayerCamera_SetDistance(pPlayer, Float:flDistance); + +/** + * Sets the thinking delay of the player's camera. + * + * @param pPlayer The player entity. + * @param flThinkDelay The thinking delay value. + * + * @noreturn + */ native PlayerCamera_SetThinkDelay(pPlayer, Float:flThinkDelay); +/** + * Function called when the player's camera is activated. + * + * @param pPlayer The player entity. + * + * @noreturn + */ forward PlayerCamera_Fw_Activate(pPlayer); + +/** + * Function called when the player's camera is deactivated. + * + * @param pPlayer The player entity. + * + * @noreturn + */ forward PlayerCamera_Fw_Deactivate(pPlayer); + +/** + * Function called when the player's camera is activated. + * + * @param pPlayer The player entity. + * + * @noreturn + */ forward PlayerCamera_Fw_Activated(pPlayer); + +/** + * Function called when the player's camera is deactivated. + * + * @param pPlayer The player entity. + * + * @noreturn + */ forward PlayerCamera_Fw_Deactivated(pPlayer); diff --git a/api/player-cosmetics/include/api_player_cosmetics.inc b/api/player-cosmetics/include/api_player_cosmetics.inc index 3cc9f4f..05e1e31 100644 --- a/api/player-cosmetics/include/api_player_cosmetics.inc +++ b/api/player-cosmetics/include/api_player_cosmetics.inc @@ -5,7 +5,42 @@ #pragma reqlib api_player_cosmetic +/** + * Equip a player with a cosmetic item. + * + * @param pPlayer The player to equip the item to. + * @param iModelIndex The index of the cosmetic item model. + * + * @noreturn + */ native PlayerCosmetic_Equip(pPlayer, iModelIndex); + +/** + * Unequip a cosmetic item from a player. + * + * @param pPlayer The player to unequip the item from. + * @param iModelIndex The index of the cosmetic item model. + * + * @return True if the item was successfully unequipped, false otherwise. + */ native bool:PlayerCosmetic_Unequip(pPlayer, iModelIndex); + +/** + * Check if a player has equipped a specific cosmetic item. + * + * @param pPlayer The player to check. + * @param iModelIndex The index of the cosmetic item model. + * + * @return True if the player has the item equipped, false otherwise. + */ native bool:PlayerCosmetic_IsEquiped(pPlayer, iModelIndex); + +/** + * Get the entity of the equipped cosmetic item for a player. + * + * @param pPlayer The player whose equipped item entity to get. + * @param iModelIndex The index of the cosmetic item model. + * + * @return The entity of the equipped cosmetic item, or 0 if not equipped. + */ native PlayerCosmetic_GetEntity(pPlayer, iModelIndex); diff --git a/api/player-dizziness/include/api_player_dizziness.inc b/api/player-dizziness/include/api_player_dizziness.inc index fab0672..c36ddde 100644 --- a/api/player-dizziness/include/api_player_dizziness.inc +++ b/api/player-dizziness/include/api_player_dizziness.inc @@ -5,5 +5,21 @@ #pragma reqlib api_player_dizziness +/** + * Sets the dizziness strength for a player. + * + * @param pPlayer The player ID. + * @param flStrength The strength of the dizziness. + * + * @noreturn + */ native PlayerDizziness_Set(pPlayer, Float:flStrength); + +/** + * Gets the current dizziness strength for a player. + * + * @param pPlayer The player ID. + * + * @return The current dizziness strength as a float. + */ native Float:PlayerDizziness_Get(pPlayer); diff --git a/api/player-inventory/include/api_player_inventory.inc b/api/player-inventory/include/api_player_inventory.inc index 0fb6060..d953905 100644 --- a/api/player-inventory/include/api_player_inventory.inc +++ b/api/player-inventory/include/api_player_inventory.inc @@ -5,13 +5,79 @@ #pragma reqlib api_player_inventory +/** + * Retrieves an item from a player's inventory. + * + * @param pPlayer The player for which to get the item. + * @param iSlot The slot index of the item to retrieve. + * + * @return Returns a structure containing the structure of the item. + */ native Struct:PlayerInventory_GetItem(pPlayer, iSlot); + +/** + * Retrieves the type of an item in a player's inventory. + * + * @param pPlayer The player for which to check the item type. + * @param iSlot The slot index of the item. + * @param szType The type of the item is copied into this string. + * @param iLen The maximum length of the string. + * + * @noreturn + */ native PlayerInventory_GetItemType(pPlayer, iSlot, szType[], iLen); + +/** + * Checks if an item in a player's inventory matches the specified type. + * + * @param pPlayer The player for which to check the item type. + * @param iSlot The slot index of the item. + * @param szType The type of the item to check. + * + * @return Returns 1 if the item matches the type, 0 otherwise. + */ native PlayerInventory_CheckItemType(pPlayer, iSlot, const szType[]); + +/** + * Gives an item to a player's inventory. + * + * @param pPlayer The player to give the item to. + * @param szType The type of the item to give. + * @param sItem The structure of the item to give. + * + * @noreturn + */ native PlayerInventory_GiveItem(pPlayer, const szType[], Struct:sItem); + +/** + * Sets the details of an item in a player's inventory. + * + * @param pPlayer The player for which to set the item. + * @param iSlot The slot index of the item to set. + * @param szType The type of the item to set. + * @param sItem The structure of the item to set. + * + * @noreturn + */ native PlayerInventory_SetItem(pPlayer, iSlot, const szType[], Struct:sItem); + +/** + * Takes an item from a player's inventory. + * + * @param pPlayer The player from which to take the item. + * @param iSlot The slot index of the item to take. + * + * @noreturn + */ native PlayerInventory_TakeItem(pPlayer, iSlot); +/** + * Retrieves the number of slots in a player's inventory. + * + * @param pPlayer The player for which to get the inventory size. + * + * @return The number of slots in the player's inventory. + */ native PlayerInventory_Size(pPlayer); forward PlayerInventory_Fw_Initialized(pPlayer); From 1cec196d0f788c6904187e681708f6e60ddca3a3 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 9 Nov 2023 11:54:35 +0200 Subject: [PATCH 088/231] fix indentation --- api/custom-weapons/api_custom_weapons.sma | 3488 +++++++-------- api/navsystem/api_navsystem.sma | 3872 ++++++++--------- api/navsystem/include/api_navsystem.inc | 6 +- api/navsystem/include/api_navsystem_const.inc | 76 +- api/player-camera/api_player_camera.sma | 106 +- api/player-cosmetics/api_player_cosmetics.sma | 198 +- api/player-inventory/api_player_inventory.sma | 434 +- api/player-model/api_player_model.sma | 448 +- api/player-viewrange/api_player_viewrange.sma | 106 +- api/rounds/api_rounds.sma | 234 +- 10 files changed, 4484 insertions(+), 4484 deletions(-) diff --git a/api/custom-weapons/api_custom_weapons.sma b/api/custom-weapons/api_custom_weapons.sma index 1d1db3d..6c22825 100644 --- a/api/custom-weapons/api_custom_weapons.sma +++ b/api/custom-weapons/api_custom_weapons.sma @@ -23,54 +23,54 @@ #define TOKEN 743647146 enum _:WeaponListMessage { - WL_WeaponName[32], - WL_PrimaryAmmoType, - WL_PrimaryAmmoMaxAmount, - WL_SecondaryAmmoType, - WL_SecondaryAmmoMaxAmount, - WL_SlotId, - WL_NumberInSlot, - WL_WeaponId, - WL_Flags + WL_WeaponName[32], + WL_PrimaryAmmoType, + WL_PrimaryAmmoMaxAmount, + WL_SecondaryAmmoType, + WL_SecondaryAmmoMaxAmount, + WL_SlotId, + WL_NumberInSlot, + WL_WeaponId, + WL_Flags }; enum _:Function { - Function_PluginId, - Function_FunctionId + Function_PluginId, + Function_FunctionId }; new const g_rgszWeaponNames[CSW_LAST_WEAPON + 1][] = { - "", - "weapon_p228", - "weapon_shield", - "weapon_scout", - "weapon_hegrenade", - "weapon_xm1014", - "weapon_c4", - "weapon_mac10", - "weapon_aug", - "weapon_smokegrenade", - "weapon_elite", - "weapon_fiveseven", - "weapon_ump45", - "weapon_sg550", - "weapon_galil", - "weapon_famas", - "weapon_usp", - "weapon_glock18", - "weapon_awp", - "weapon_mp5navy", - "weapon_m249", - "weapon_m3", - "weapon_m4a1", - "weapon_tmp", - "weapon_g3sg1", - "weapon_flashbang", - "weapon_deagle", - "weapon_sg552", - "weapon_ak47", - "weapon_knife", - "weapon_p90" + "", + "weapon_p228", + "weapon_shield", + "weapon_scout", + "weapon_hegrenade", + "weapon_xm1014", + "weapon_c4", + "weapon_mac10", + "weapon_aug", + "weapon_smokegrenade", + "weapon_elite", + "weapon_fiveseven", + "weapon_ump45", + "weapon_sg550", + "weapon_galil", + "weapon_famas", + "weapon_usp", + "weapon_glock18", + "weapon_awp", + "weapon_mp5navy", + "weapon_m249", + "weapon_m3", + "weapon_m4a1", + "weapon_tmp", + "weapon_g3sg1", + "weapon_flashbang", + "weapon_deagle", + "weapon_sg552", + "weapon_ak47", + "weapon_knife", + "weapon_p90" }; new gmsgWeaponList; @@ -94,2515 +94,2515 @@ new bool:g_bPrecache; new Array:g_irgDecals; public plugin_precache() { - g_bPrecache = true; + g_bPrecache = true; - InitStorages(); + InitStorages(); - register_forward(FM_UpdateClientData, "OnUpdateClientData_Post", 1); - register_forward(FM_PrecacheEvent, "OnPrecacheEvent_Post", 1); - register_forward(FM_SetModel, "OnSetModel_Post", 1); - register_forward(FM_DecalIndex, "OnDecalIndex_Post", 1); + register_forward(FM_UpdateClientData, "OnUpdateClientData_Post", 1); + register_forward(FM_PrecacheEvent, "OnPrecacheEvent_Post", 1); + register_forward(FM_SetModel, "OnSetModel_Post", 1); + register_forward(FM_DecalIndex, "OnDecalIndex_Post", 1); - RegisterHam(Ham_Spawn, "weaponbox", "OnWeaponboxSpawn", .Post = 0); - RegisterHamPlayer(Ham_Player_PreThink, "OnPlayerPreThink_Post", .Post = 1); - RegisterHamPlayer(Ham_TakeDamage, "OnPlayerTakeDamage", .Post = 0); - RegisterHamPlayer(Ham_TakeDamage, "OnPlayerTakeDamage_Post", .Post = 1); + RegisterHam(Ham_Spawn, "weaponbox", "OnWeaponboxSpawn", .Post = 0); + RegisterHamPlayer(Ham_Player_PreThink, "OnPlayerPreThink_Post", .Post = 1); + RegisterHamPlayer(Ham_TakeDamage, "OnPlayerTakeDamage", .Post = 0); + RegisterHamPlayer(Ham_TakeDamage, "OnPlayerTakeDamage_Post", .Post = 1); - precache_model(WALL_PUFF_SPRITE); + precache_model(WALL_PUFF_SPRITE); } public plugin_init() { - g_bPrecache = false; + g_bPrecache = false; - register_plugin(PLUGIN, VERSION, AUTHOR); + register_plugin(PLUGIN, VERSION, AUTHOR); - gmsgWeaponList = get_user_msgid("WeaponList"); - gmsgDeathMsg = get_user_msgid("DeathMsg"); + gmsgWeaponList = get_user_msgid("WeaponList"); + gmsgDeathMsg = get_user_msgid("DeathMsg"); - register_message(gmsgWeaponList, "OnMessage_WeaponList"); - register_message(gmsgDeathMsg, "OnMessage_DeathMsg"); + register_message(gmsgWeaponList, "OnMessage_WeaponList"); + register_message(gmsgDeathMsg, "OnMessage_DeathMsg"); } public plugin_cfg() { - InitWeaponHooks(); + InitWeaponHooks(); } public plugin_natives() { - register_library("api_custom_weapons"); - - register_native("CW_Register", "Native_Register"); - register_native("CW_GetHandlerByEntity", "Native_GetHandlerByEntity"); - register_native("CW_GetHandler", "Native_GetHandler"); - register_native("CW_GetWeaponData", "Native_GetWeaponData"); - register_native("CW_GetWeaponStringData", "Native_GetWeaponStringData"); - register_native("CW_GiveWeapon", "Native_GiveWeapon"); - register_native("CW_HasWeapon", "Native_HasWeapon"); - register_native("CW_SpawnWeapon", "Native_SpawnWeapon"); - register_native("CW_SpawnWeaponBox", "Native_SpawnWeaponBox"); - - register_native("CW_Deploy", "Native_Deploy"); - register_native("CW_Holster", "Native_Holster"); - register_native("CW_ItemPostFrame", "Native_ItemPostFrame"); - register_native("CW_Idle", "Native_Idle"); - register_native("CW_Reload", "Native_Reload"); - register_native("CW_PrimaryAttack", "Native_PrimaryAttack"); - register_native("CW_SecondaryAttack", "Native_SecondaryAttack"); - - register_native("CW_FireBulletsPlayer", "Native_FireBulletsPlayer"); - register_native("CW_EjectWeaponBrass", "Native_EjectWeaponBrass"); - register_native("CW_PlayAnimation", "Native_PlayAnimation"); - register_native("CW_GetPlayer", "Native_GetPlayer"); - - register_native("CW_DefaultDeploy", "Native_DefaultDeploy"); - register_native("CW_DefaultShot", "Native_DefaultShot"); - register_native("CW_DefaultShotgunShot", "Native_DefaultShotgunShot"); - register_native("CW_DefaultSwing", "Native_DefaultSwing"); - register_native("CW_DefaultReload", "Native_DefaultReload"); - register_native("CW_DefaultShotgunReload", "Native_DefaultShotgunReload"); - register_native("CW_DefaultShotgunIdle", "Native_DefaultShotgunIdle"); - - register_native("CW_GrenadeDetonate", "Native_GrenadeDetonate"); - register_native("CW_GrenadeSmoke", "Native_GrenadeSmoke"); - register_native("CW_RemovePlayerItem", "Native_RemovePlayerItem"); - - register_native("CW_Bind", "Native_Bind"); + register_library("api_custom_weapons"); + + register_native("CW_Register", "Native_Register"); + register_native("CW_GetHandlerByEntity", "Native_GetHandlerByEntity"); + register_native("CW_GetHandler", "Native_GetHandler"); + register_native("CW_GetWeaponData", "Native_GetWeaponData"); + register_native("CW_GetWeaponStringData", "Native_GetWeaponStringData"); + register_native("CW_GiveWeapon", "Native_GiveWeapon"); + register_native("CW_HasWeapon", "Native_HasWeapon"); + register_native("CW_SpawnWeapon", "Native_SpawnWeapon"); + register_native("CW_SpawnWeaponBox", "Native_SpawnWeaponBox"); + + register_native("CW_Deploy", "Native_Deploy"); + register_native("CW_Holster", "Native_Holster"); + register_native("CW_ItemPostFrame", "Native_ItemPostFrame"); + register_native("CW_Idle", "Native_Idle"); + register_native("CW_Reload", "Native_Reload"); + register_native("CW_PrimaryAttack", "Native_PrimaryAttack"); + register_native("CW_SecondaryAttack", "Native_SecondaryAttack"); + + register_native("CW_FireBulletsPlayer", "Native_FireBulletsPlayer"); + register_native("CW_EjectWeaponBrass", "Native_EjectWeaponBrass"); + register_native("CW_PlayAnimation", "Native_PlayAnimation"); + register_native("CW_GetPlayer", "Native_GetPlayer"); + + register_native("CW_DefaultDeploy", "Native_DefaultDeploy"); + register_native("CW_DefaultShot", "Native_DefaultShot"); + register_native("CW_DefaultShotgunShot", "Native_DefaultShotgunShot"); + register_native("CW_DefaultSwing", "Native_DefaultSwing"); + register_native("CW_DefaultReload", "Native_DefaultReload"); + register_native("CW_DefaultShotgunReload", "Native_DefaultShotgunReload"); + register_native("CW_DefaultShotgunIdle", "Native_DefaultShotgunIdle"); + + register_native("CW_GrenadeDetonate", "Native_GrenadeDetonate"); + register_native("CW_GrenadeSmoke", "Native_GrenadeSmoke"); + register_native("CW_RemovePlayerItem", "Native_RemovePlayerItem"); + + register_native("CW_Bind", "Native_Bind"); } public plugin_end() { - DestroyStorages(); + DestroyStorages(); } // ANCHOR: Natives public Native_Bind(iPluginId, iArgc) { - new CW:iHandler = CW:get_param(1); - new iBinding = get_param(2); + new CW:iHandler = CW:get_param(1); + new iBinding = get_param(2); - new szFunctionName[32]; - get_string(3, szFunctionName, charsmax(szFunctionName)); + new szFunctionName[32]; + get_string(3, szFunctionName, charsmax(szFunctionName)); - Bind(iHandler, iBinding, iPluginId, get_func_id(szFunctionName, iPluginId)); + Bind(iHandler, iBinding, iPluginId, get_func_id(szFunctionName, iPluginId)); } public CW:Native_GetHandlerByEntity(iPluginId, iArgc) { - new pEntity = get_param(1); - return GetHandlerByEntity(pEntity); + new pEntity = get_param(1); + return GetHandlerByEntity(pEntity); } public CW:Native_GetHandler(iPluginId, iArgc) { - static szName[64]; - get_string(1, szName, charsmax(szName)); + static szName[64]; + get_string(1, szName, charsmax(szName)); - return GetHandler(szName); + return GetHandler(szName); } public any:Native_GetWeaponData(iPluginId, iArgc) { - new CW:iHandler = CW:get_param(1); - new CW_Data:iParam = CW_Data:get_param(2); + new CW:iHandler = CW:get_param(1); + new CW_Data:iParam = CW_Data:get_param(2); - return GetData(iHandler, iParam); + return GetData(iHandler, iParam); } public Native_GetWeaponStringData(iPluginId, iArgc) { - new CW:iHandler = CW:get_param(1); - new CW_Data:iParam = CW_Data:get_param(2); + new CW:iHandler = CW:get_param(1); + new CW_Data:iParam = CW_Data:get_param(2); - static szValue[128]; - GetStringData(iHandler, iParam, szValue, charsmax(szValue)); + static szValue[128]; + GetStringData(iHandler, iParam, szValue, charsmax(szValue)); - new iLen = get_param(4); - set_string(3, szValue, iLen); + new iLen = get_param(4); + set_string(3, szValue, iLen); } public CW:Native_Register(iPluginId, iArgc) { - new szName[64]; - get_string(1, szName, charsmax(szName)); + new szName[64]; + get_string(1, szName, charsmax(szName)); - new iWeaponId = get_param(2); - new iClipSize = get_param(3); - new iPrimaryAmmoType = get_param(4); - new iPrimaryAmmoMaxAmount = get_param(5); - new iSecondaryAmmoType = get_param(6); - new iSecondaryAmmoMaxAmount = get_param(7); - new iSlotId = get_param(8); - new iPosition = get_param(9); - new iWeaponFlags = get_param(10); + new iWeaponId = get_param(2); + new iClipSize = get_param(3); + new iPrimaryAmmoType = get_param(4); + new iPrimaryAmmoMaxAmount = get_param(5); + new iSecondaryAmmoType = get_param(6); + new iSecondaryAmmoMaxAmount = get_param(7); + new iSlotId = get_param(8); + new iPosition = get_param(9); + new iWeaponFlags = get_param(10); - new szIcon[16]; - get_string(11, szIcon, charsmax(szIcon)); + new szIcon[16]; + get_string(11, szIcon, charsmax(szIcon)); - new CW_Flags:iFlags = CW_Flags:get_param(12); + new CW_Flags:iFlags = CW_Flags:get_param(12); - return RegisterWeapon(iPluginId, szName, iWeaponId, iClipSize, iPrimaryAmmoType, iPrimaryAmmoMaxAmount, iSecondaryAmmoType, iSecondaryAmmoMaxAmount, iSlotId, iPosition, iWeaponFlags, szIcon, iFlags); + return RegisterWeapon(iPluginId, szName, iWeaponId, iClipSize, iPrimaryAmmoType, iPrimaryAmmoMaxAmount, iSecondaryAmmoType, iSecondaryAmmoMaxAmount, iSlotId, iPosition, iWeaponFlags, szIcon, iFlags); } public Native_GiveWeapon(iPluginId, iArgc) { - new pPlayer = get_param(1); - - static szWeapon[64]; - get_string(2, szWeapon, charsmax(szWeapon)); + new pPlayer = get_param(1); + + static szWeapon[64]; + get_string(2, szWeapon, charsmax(szWeapon)); - new CW:iHandler; - if (TrieGetCell(g_rgWeaponsMap, szWeapon, iHandler)) { - GiveWeapon(pPlayer, iHandler); - } + new CW:iHandler; + if (TrieGetCell(g_rgWeaponsMap, szWeapon, iHandler)) { + GiveWeapon(pPlayer, iHandler); + } } public bool:Native_HasWeapon(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - static szWeapon[64]; - get_string(2, szWeapon, charsmax(szWeapon)); + static szWeapon[64]; + get_string(2, szWeapon, charsmax(szWeapon)); - new CW:iHandler; - if (TrieGetCell(g_rgWeaponsMap, szWeapon, iHandler)) { - return HasWeapon(pPlayer, iHandler); - } + new CW:iHandler; + if (TrieGetCell(g_rgWeaponsMap, szWeapon, iHandler)) { + return HasWeapon(pPlayer, iHandler); + } - return false; + return false; } public Native_SpawnWeapon(iPluginId, iArgc) { - new CW:iHandler = CW:get_param(1); - return SpawnWeapon(iHandler); + new CW:iHandler = CW:get_param(1); + return SpawnWeapon(iHandler); } public Native_SpawnWeaponBox(iPluginId, iArgc) { - new CW:iHandler = CW:get_param(1); - return SpawnWeaponBox(iHandler); + new CW:iHandler = CW:get_param(1); + return SpawnWeaponBox(iHandler); } public bool:Native_DefaultDeploy(iPluginId, iArgc) { - new pWeapon = get_param(1); + new pWeapon = get_param(1); - static szViewModel[64]; - get_string(2, szViewModel, charsmax(szViewModel)); + static szViewModel[64]; + get_string(2, szViewModel, charsmax(szViewModel)); - static szWeaponModel[64]; - get_string(3, szWeaponModel, charsmax(szWeaponModel)); + static szWeaponModel[64]; + get_string(3, szWeaponModel, charsmax(szWeaponModel)); - new iAnim = get_param(4); + new iAnim = get_param(4); - static szAnimExt[16]; - get_string(5, szAnimExt, charsmax(szAnimExt)); + static szAnimExt[16]; + get_string(5, szAnimExt, charsmax(szAnimExt)); - return DefaultDeploy(pWeapon, szViewModel, szWeaponModel, iAnim, szAnimExt); + return DefaultDeploy(pWeapon, szViewModel, szWeaponModel, iAnim, szAnimExt); } public Native_FireBulletsPlayer(iPluginId, iArgc) { - new pWeapon = get_param(1); - new iShots = get_param(2); + new pWeapon = get_param(1); + new iShots = get_param(2); - static Float:vecSrc[3]; - get_array_f(3, vecSrc, sizeof(vecSrc)); - - static Float:vecDirShooting[3]; - get_array_f(4, vecDirShooting, sizeof(vecDirShooting)); + static Float:vecSrc[3]; + get_array_f(3, vecSrc, sizeof(vecSrc)); + + static Float:vecDirShooting[3]; + get_array_f(4, vecDirShooting, sizeof(vecDirShooting)); - static Float:vecSpread[3]; - get_array_f(5, vecSpread, sizeof(vecSpread)); + static Float:vecSpread[3]; + get_array_f(5, vecSpread, sizeof(vecSpread)); - new Float:flDistance = get_param_f(6); - new Float:flDamage = get_param_f(7); - new Float:flRangeModifier = get_param_f(8); - new pevAttacker = get_param(9); + new Float:flDistance = get_param_f(6); + new Float:flDamage = get_param_f(7); + new Float:flRangeModifier = get_param_f(8); + new pevAttacker = get_param(9); - static Float:vecOut[3]; + static Float:vecOut[3]; - FireBulletsPlayer(pWeapon, iShots, vecSrc, vecDirShooting, vecSpread, flDistance, flDamage, flRangeModifier, pevAttacker, vecOut); + FireBulletsPlayer(pWeapon, iShots, vecSrc, vecDirShooting, vecSpread, flDistance, flDamage, flRangeModifier, pevAttacker, vecOut); - set_array_f(10, vecOut, sizeof(vecOut)); + set_array_f(10, vecOut, sizeof(vecOut)); } public bool:Native_EjectWeaponBrass(iPluginId, iArgc) { - new pItem = get_param(1); - new iModelIndex = get_param(2); - new iSoundType = get_param(3); + new pItem = get_param(1); + new iModelIndex = get_param(2); + new iSoundType = get_param(3); - return EjectWeaponBrass(pItem, iModelIndex, iSoundType); + return EjectWeaponBrass(pItem, iModelIndex, iSoundType); } public bool:Native_DefaultShot(iPluginId, iArgc) { - new pItem = get_param(1); - new Float:flDamage = get_param_f(2); - new Float:flRangeModifier = get_param_f(3); - new Float:flRate = get_param_f(4); + new pItem = get_param(1); + new Float:flDamage = get_param_f(2); + new Float:flRangeModifier = get_param_f(3); + new Float:flRate = get_param_f(4); - static Float:vecSpread[3]; - get_array_f(5, vecSpread, sizeof(vecSpread)); + static Float:vecSpread[3]; + get_array_f(5, vecSpread, sizeof(vecSpread)); - new iShots = get_param(6); - new Float:flDistance = get_param_f(7); + new iShots = get_param(6); + new Float:flDistance = get_param_f(7); - return DefaultShot(pItem, flDamage, flRangeModifier, flRate, vecSpread, iShots, flDistance); + return DefaultShot(pItem, flDamage, flRangeModifier, flRate, vecSpread, iShots, flDistance); } public bool:Native_DefaultShotgunShot(iPluginId, iArgc) { - new pItem = get_param(1); - new Float:flDamage = get_param_f(2); - new Float:flRangeModifier = get_param_f(3); - new Float:flRate = get_param_f(4); - new Float:flPumpDelay = get_param_f(5); + new pItem = get_param(1); + new Float:flDamage = get_param_f(2); + new Float:flRangeModifier = get_param_f(3); + new Float:flRate = get_param_f(4); + new Float:flPumpDelay = get_param_f(5); - static Float:vecSpread[3]; - get_array_f(6, vecSpread, sizeof(vecSpread)); + static Float:vecSpread[3]; + get_array_f(6, vecSpread, sizeof(vecSpread)); - new iShots = get_param(7); - new Float:flDistance = get_param_f(8); + new iShots = get_param(7); + new Float:flDistance = get_param_f(8); - return DefaultShotgunShot(pItem, flDamage, flRangeModifier, flRate, flPumpDelay, vecSpread, iShots, flDistance); + return DefaultShotgunShot(pItem, flDamage, flRangeModifier, flRate, flPumpDelay, vecSpread, iShots, flDistance); } public Native_DefaultSwing(iPluginId, iArgc) { - new pItem = get_param(1); - new Float:flDamage = get_param_f(2); - new Float:flRate = get_param_f(3); - new Float:flDistance = get_param_f(4); + new pItem = get_param(1); + new Float:flDamage = get_param_f(2); + new Float:flRate = get_param_f(3); + new Float:flDistance = get_param_f(4); - return DefaultSwing(pItem, flDamage, flRate, flDistance); + return DefaultSwing(pItem, flDamage, flRate, flDistance); } public Native_PlayAnimation(iPluginID, argc) { - new pItem = get_param(1); - new iSequence = get_param(2); - new Float:flDuration = get_param_f(3); + new pItem = get_param(1); + new iSequence = get_param(2); + new Float:flDuration = get_param_f(3); - PlayWeaponAnim(pItem, iSequence, flDuration); + PlayWeaponAnim(pItem, iSequence, flDuration); } public Native_GetPlayer(iPluginID, argc) { - new pItem = get_param(1); - return GetPlayer(pItem); + new pItem = get_param(1); + return GetPlayer(pItem); } public bool:Native_DefaultReload(iPluginId, iArgc) { - new pItem = get_param(1); - new iAnim = get_param(2); - new Float:flDelay = get_param_f(3); + new pItem = get_param(1); + new iAnim = get_param(2); + new Float:flDelay = get_param_f(3); - return DefaultReload(pItem, iAnim, flDelay); + return DefaultReload(pItem, iAnim, flDelay); } public bool:Native_DefaultShotgunReload(iPluginId, iArgc) { - new pItem = get_param(1); - new iStartAnim = get_param(2); - new iEndAnim = get_param(3); - new Float:flDelay = get_param_f(4); - new Float:flDuration = get_param_f(5); + new pItem = get_param(1); + new iStartAnim = get_param(2); + new iEndAnim = get_param(3); + new Float:flDelay = get_param_f(4); + new Float:flDuration = get_param_f(5); - return DefaultShotgunReload(pItem, iStartAnim, iEndAnim, flDelay, flDuration); + return DefaultShotgunReload(pItem, iStartAnim, iEndAnim, flDelay, flDuration); } public bool:Native_DefaultShotgunIdle(iPluginId, iArgc) { - new pItem = get_param(1); - new iAnim = get_param(2); - new iReloadEndAnim = get_param(3); - new Float:flDuration = get_param_f(4); - new Float:flReloadEndDuration = get_param_f(5); - - static szPumpSound[64]; - get_string(6, szPumpSound, charsmax(szPumpSound)); + new pItem = get_param(1); + new iAnim = get_param(2); + new iReloadEndAnim = get_param(3); + new Float:flDuration = get_param_f(4); + new Float:flReloadEndDuration = get_param_f(5); + + static szPumpSound[64]; + get_string(6, szPumpSound, charsmax(szPumpSound)); - return DefaultShotgunIdle(pItem, iAnim, iReloadEndAnim, flDuration, flReloadEndDuration, szPumpSound); + return DefaultShotgunIdle(pItem, iAnim, iReloadEndAnim, flDuration, flReloadEndDuration, szPumpSound); } public Native_Deploy(iPluginId, iArgc) { - new pItem = get_param(1); - WeaponDeploy(pItem); + new pItem = get_param(1); + WeaponDeploy(pItem); } public Native_Holster(iPluginId, iArgc) { - new pItem = get_param(1); - WeaponHolster(pItem); + new pItem = get_param(1); + WeaponHolster(pItem); } public Native_ItemPostFrame(iPluginId, iArgc) { - new pItem = get_param(1); - ItemPostFrame(pItem); + new pItem = get_param(1); + ItemPostFrame(pItem); } public Native_Idle(iPluginId, iArgc) { - new pItem = get_param(1); - WeaponIdle(pItem); + new pItem = get_param(1); + WeaponIdle(pItem); } public Native_Reload(iPluginId, iArgc) { - new pItem = get_param(1); - Reload(pItem); + new pItem = get_param(1); + Reload(pItem); } public Native_PrimaryAttack(iPluginId, iArgc) { - new pItem = get_param(1); - PrimaryAttack(pItem); + new pItem = get_param(1); + PrimaryAttack(pItem); } public Native_SecondaryAttack(iPluginId, iArgc) { - new pItem = get_param(1); - SecondaryAttack(pItem); + new pItem = get_param(1); + SecondaryAttack(pItem); } public Native_GrenadeDetonate(iPluginId, iArgc) { - new pGrenade = get_param(1); - new Float:flRadius = get_param_f(2); - new Float:flMagnitude = get_param_f(3); - GrenadeDetonate(pGrenade, flRadius, flMagnitude); + new pGrenade = get_param(1); + new Float:flRadius = get_param_f(2); + new Float:flMagnitude = get_param_f(3); + GrenadeDetonate(pGrenade, flRadius, flMagnitude); } public Native_GrenadeSmoke(iPluginId, iArgc) { - new pGrenade = get_param(1); - GrenadeSmoke(pGrenade); + new pGrenade = get_param(1); + GrenadeSmoke(pGrenade); } public Native_RemovePlayerItem(iPluginId, iArgc) { - new pItem = get_param(1); - RemovePlayerItem(pItem); + new pItem = get_param(1); + RemovePlayerItem(pItem); } // ANCHOR: Forwards public client_connect(pPlayer) { - g_bKnifeHolstered[pPlayer] = true; + g_bKnifeHolstered[pPlayer] = true; } public client_disconnected(pPlayer) { - SetWeaponPrediction(pPlayer, true); + SetWeaponPrediction(pPlayer, true); } // ANCHOR: Hook Callbacks public OnItemDeploy(this) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return HAM_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return HAM_IGNORED; + } - WeaponDeploy(this); + WeaponDeploy(this); - return HAM_SUPERCEDE; + return HAM_SUPERCEDE; } public OnItemHolster(this) { - new pPlayer = GetPlayer(this); - g_bKnifeHolstered[pPlayer] = IsWeaponKnife(this); + new pPlayer = GetPlayer(this); + g_bKnifeHolstered[pPlayer] = IsWeaponKnife(this); - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return HAM_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return HAM_IGNORED; + } - WeaponHolster(this); + WeaponHolster(this); - return HAM_SUPERCEDE; + return HAM_SUPERCEDE; } public OnItemPostFrame(this) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return HAM_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return HAM_IGNORED; + } - ItemPostFrame(this); + ItemPostFrame(this); - return HAM_SUPERCEDE; + return HAM_SUPERCEDE; } public OnWeaponPrimaryAttack(this) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return HAM_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return HAM_IGNORED; + } - g_bSupercede = GetHamReturnStatus() >= HAM_SUPERCEDE; + g_bSupercede = GetHamReturnStatus() >= HAM_SUPERCEDE; - return HAM_SUPERCEDE; + return HAM_SUPERCEDE; } public OnWeaponSecondaryAttack(this) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return HAM_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return HAM_IGNORED; + } - g_bSupercede = GetHamReturnStatus() >= HAM_SUPERCEDE; + g_bSupercede = GetHamReturnStatus() >= HAM_SUPERCEDE; - return HAM_SUPERCEDE; + return HAM_SUPERCEDE; } public OnWeaponReload(this) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return HAM_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return HAM_IGNORED; + } - g_bSupercede = GetHamReturnStatus() >= HAM_SUPERCEDE; + g_bSupercede = GetHamReturnStatus() >= HAM_SUPERCEDE; - return HAM_SUPERCEDE; + return HAM_SUPERCEDE; } public OnWeaponIdle(this) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return HAM_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return HAM_IGNORED; + } - g_bSupercede = GetHamReturnStatus() >= HAM_SUPERCEDE; + g_bSupercede = GetHamReturnStatus() >= HAM_SUPERCEDE; - return HAM_SUPERCEDE; + return HAM_SUPERCEDE; } public OnUpdateClientData_Post(pPlayer, iSendWeapons, pCdHandle) { - if (!is_user_alive(pPlayer)) { - return FMRES_IGNORED; - } + if (!is_user_alive(pPlayer)) { + return FMRES_IGNORED; + } - new pItem = get_member(pPlayer, m_pActiveItem); - if (pItem == -1) { - return FMRES_IGNORED; - } + new pItem = get_member(pPlayer, m_pActiveItem); + if (pItem == -1) { + return FMRES_IGNORED; + } - new CW:iHandler = GetHandlerByEntity(pItem); - if (iHandler == CW_INVALID_HANDLER) { - return FMRES_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(pItem); + if (iHandler == CW_INVALID_HANDLER) { + return FMRES_IGNORED; + } - set_cd(pCdHandle, CD_flNextAttack, get_gametime() + 0.001); // block default animation + set_cd(pCdHandle, CD_flNextAttack, get_gametime() + 0.001); // block default animation - return FMRES_HANDLED; + return FMRES_HANDLED; } public OnItemSlot(this) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return HAM_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return HAM_IGNORED; + } - new iSlot = GetData(iHandler, CW_Data_SlotId); - SetHamReturnInteger(iSlot + 1); + new iSlot = GetData(iHandler, CW_Data_SlotId); + SetHamReturnInteger(iSlot + 1); - return HAM_SUPERCEDE; + return HAM_SUPERCEDE; } -public OnCSItemGetMaxSpeed(this) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return HAM_IGNORED; - } +public OnCSItemGetMaxSpeed(this) { + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return HAM_IGNORED; + } - new Float:flMaxSpeed = ExecuteBindedFunction(CWB_GetMaxSpeed, this); - if (_:flMaxSpeed != PLUGIN_CONTINUE) { - SetHamReturnFloat(flMaxSpeed); - return HAM_OVERRIDE; - } + new Float:flMaxSpeed = ExecuteBindedFunction(CWB_GetMaxSpeed, this); + if (_:flMaxSpeed != PLUGIN_CONTINUE) { + SetHamReturnFloat(flMaxSpeed); + return HAM_OVERRIDE; + } - return HAM_IGNORED; + return HAM_IGNORED; } public OnItemAddToPlayer_Post(this, pPlayer) { - new pPlayer = GetPlayer(this); - if (!ExecuteHam(Ham_IsPlayer, pPlayer)) { - return HAM_IGNORED; - } + new pPlayer = GetPlayer(this); + if (!ExecuteHam(Ham_IsPlayer, pPlayer)) { + return HAM_IGNORED; + } - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - new iWeaponId = get_member(this, m_iId); - ResetWeaponList(pPlayer, iWeaponId); - } else { - set_member(this, m_Weapon_iPrimaryAmmoType, GetData(iHandler, CW_Data_PrimaryAmmoType)); - UpdateWeaponList(pPlayer, iHandler); - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + new iWeaponId = get_member(this, m_iId); + ResetWeaponList(pPlayer, iWeaponId); + } else { + set_member(this, m_Weapon_iPrimaryAmmoType, GetData(iHandler, CW_Data_PrimaryAmmoType)); + UpdateWeaponList(pPlayer, iHandler); + } - return HAM_HANDLED; + return HAM_HANDLED; } public OnSpawn_Post(this) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return HAM_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return HAM_IGNORED; + } - ExecuteBindedFunction(CWB_Spawn, this); + ExecuteBindedFunction(CWB_Spawn, this); - return HAM_IGNORED; + return HAM_IGNORED; } public OnWeaponboxSpawn(this) { - g_pNewWeaponboxEnt = this; + g_pNewWeaponboxEnt = this; } public OnPlayerPreThink_Post(pPlayer) { - if (get_gametime() < g_flNextPredictionUpdate[pPlayer]) { - return HAM_IGNORED; - } + if (get_gametime() < g_flNextPredictionUpdate[pPlayer]) { + return HAM_IGNORED; + } - new iObsMode = pev(pPlayer, pev_iuser1); - new pObsTarget = pev(pPlayer, pev_iuser2); + new iObsMode = pev(pPlayer, pev_iuser1); + new pObsTarget = pev(pPlayer, pev_iuser2); - new pActiveItem = iObsMode == OBS_IN_EYE - ? IS_PLAYER(pObsTarget) ? get_member(pObsTarget, m_pActiveItem) : -1 - : get_member(pPlayer, m_pActiveItem); + new pActiveItem = iObsMode == OBS_IN_EYE + ? IS_PLAYER(pObsTarget) ? get_member(pObsTarget, m_pActiveItem) : -1 + : get_member(pPlayer, m_pActiveItem); - if (pActiveItem == -1) { - SetWeaponPrediction(pPlayer, false); - return HAM_IGNORED; - } + if (pActiveItem == -1) { + SetWeaponPrediction(pPlayer, false); + return HAM_IGNORED; + } - new CW:iHandler = GetHandlerByEntity(pActiveItem); - SetWeaponPrediction(pPlayer, iHandler == CW_INVALID_HANDLER); + new CW:iHandler = GetHandlerByEntity(pActiveItem); + SetWeaponPrediction(pPlayer, iHandler == CW_INVALID_HANDLER); - return HAM_HANDLED; + return HAM_HANDLED; } public OnPlayerTakeDamage(pPlayer, pInflictor, pAttacker) { - if (pAttacker && ExecuteHam(Ham_IsPlayer, pAttacker) && pInflictor == pAttacker) { - g_pKillerItem = get_member(pAttacker, m_pActiveItem); - } else { - g_pKillerItem = pInflictor; - } + if (pAttacker && ExecuteHam(Ham_IsPlayer, pAttacker) && pInflictor == pAttacker) { + g_pKillerItem = get_member(pAttacker, m_pActiveItem); + } else { + g_pKillerItem = pInflictor; + } } public OnPlayerTakeDamage_Post() { - g_pKillerItem = -1; + g_pKillerItem = -1; } public OnMessage_DeathMsg(iMsgId, iDest, pPlayer) { - if (g_pKillerItem == -1) { - return PLUGIN_CONTINUE; - } + if (g_pKillerItem == -1) { + return PLUGIN_CONTINUE; + } - new pKiller = get_msg_arg_int(1); - if (!pKiller) { - return PLUGIN_CONTINUE; - } + new pKiller = get_msg_arg_int(1); + if (!pKiller) { + return PLUGIN_CONTINUE; + } - if (!ExecuteHam(Ham_IsPlayer, pKiller)) { - return PLUGIN_CONTINUE; - } + if (!ExecuteHam(Ham_IsPlayer, pKiller)) { + return PLUGIN_CONTINUE; + } - if (!is_user_alive(pKiller)) { - return PLUGIN_CONTINUE; - } + if (!is_user_alive(pKiller)) { + return PLUGIN_CONTINUE; + } - new CW:iHandler = GetHandlerByEntity(g_pKillerItem); - if (iHandler == CW_INVALID_HANDLER) { - return PLUGIN_CONTINUE; - } + new CW:iHandler = GetHandlerByEntity(g_pKillerItem); + if (iHandler == CW_INVALID_HANDLER) { + return PLUGIN_CONTINUE; + } - static szIcon[64]; - GetStringData(iHandler, CW_Data_Icon, szIcon, charsmax(szIcon)); + static szIcon[64]; + GetStringData(iHandler, CW_Data_Icon, szIcon, charsmax(szIcon)); - if (szIcon[0] == '^0') { - GetStringData(iHandler, CW_Data_Name, szIcon, charsmax(szIcon)); - } + if (szIcon[0] == '^0') { + GetStringData(iHandler, CW_Data_Name, szIcon, charsmax(szIcon)); + } - set_msg_arg_string(4, szIcon); + set_msg_arg_string(4, szIcon); - return PLUGIN_CONTINUE; + return PLUGIN_CONTINUE; } public OnSetModel_Post(this, const szModel[]) { - if (!pev_valid(this)) { - return FMRES_IGNORED; - } + if (!pev_valid(this)) { + return FMRES_IGNORED; + } - if (g_pNewWeaponboxEnt == -1) { - return FMRES_IGNORED; - } + if (g_pNewWeaponboxEnt == -1) { + return FMRES_IGNORED; + } - if (this != g_pNewWeaponboxEnt) { - return FMRES_IGNORED; - } + if (this != g_pNewWeaponboxEnt) { + return FMRES_IGNORED; + } - static szClassname[32]; - pev(this, pev_classname, szClassname, charsmax(szClassname)); + static szClassname[32]; + pev(this, pev_classname, szClassname, charsmax(szClassname)); - if (!equal(szClassname, "weaponbox")) { - g_pNewWeaponboxEnt = -1; - return FMRES_IGNORED; - } + if (!equal(szClassname, "weaponbox")) { + g_pNewWeaponboxEnt = -1; + return FMRES_IGNORED; + } - new pItem = FindWeaponBoxSingleItem(this); - if (pItem == -1) { - return FMRES_IGNORED; - } + new pItem = FindWeaponBoxSingleItem(this); + if (pItem == -1) { + return FMRES_IGNORED; + } - new CW:iHandler = GetHandlerByEntity(pItem); - if (iHandler == CW_INVALID_HANDLER) { - return FMRES_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(pItem); + if (iHandler == CW_INVALID_HANDLER) { + return FMRES_IGNORED; + } - ExecuteBindedFunction(CWB_WeaponBoxModelUpdate, pItem, this); - g_pNewWeaponboxEnt = -1; + ExecuteBindedFunction(CWB_WeaponBoxModelUpdate, pItem, this); + g_pNewWeaponboxEnt = -1; - if (!g_bPrecache) { - if (!ExecuteHamB(Ham_CS_Item_CanDrop, pItem)) { - set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); - dllfunc(DLLFunc_Think, this); - } + if (!g_bPrecache) { + if (!ExecuteHamB(Ham_CS_Item_CanDrop, pItem)) { + set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); + dllfunc(DLLFunc_Think, this); } + } - return FMRES_HANDLED; + return FMRES_HANDLED; } public OnDecalIndex_Post() { - if (!g_bPrecache) { - return; - } + if (!g_bPrecache) { + return; + } - ArrayPushCell(g_irgDecals, get_orig_retval()); + ArrayPushCell(g_irgDecals, get_orig_retval()); } public OnWeaponClCmd(pPlayer) { - static szName[64]; - read_argv(0, szName, charsmax(szName)); + static szName[64]; + read_argv(0, szName, charsmax(szName)); - new CW:iHandler; - TrieGetCell(g_rgWeaponsMap, szName, iHandler); + new CW:iHandler; + TrieGetCell(g_rgWeaponsMap, szName, iHandler); - new iWeaponId = GetData(iHandler, CW_Data_Id); + new iWeaponId = GetData(iHandler, CW_Data_Id); - static szBaseName[32]; - get_weaponname(iWeaponId, szBaseName, charsmax(szBaseName)); - client_cmd(pPlayer, szBaseName); + static szBaseName[32]; + get_weaponname(iWeaponId, szBaseName, charsmax(szBaseName)); + client_cmd(pPlayer, szBaseName); - return PLUGIN_HANDLED; + return PLUGIN_HANDLED; } public OnCanDrop(this) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return HAM_IGNORED; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return HAM_IGNORED; + } - if (GetHamReturnStatus() >= HAM_OVERRIDE) { - return GetHamReturnStatus(); - } + if (GetHamReturnStatus() >= HAM_OVERRIDE) { + return GetHamReturnStatus(); + } - SetHamReturnInteger( - ExecuteBindedFunction(CWB_CanDrop, this) == PLUGIN_CONTINUE ? 1 : 0 - ); + SetHamReturnInteger( + ExecuteBindedFunction(CWB_CanDrop, this) == PLUGIN_CONTINUE ? 1 : 0 + ); - return HAM_OVERRIDE; + return HAM_OVERRIDE; } public OnMessage_WeaponList(iMsgId, iMsgDest, pPlayer) { - new iWeaponId = get_msg_arg_int(8); + new iWeaponId = get_msg_arg_int(8); - if (g_weaponListDefaults[iWeaponId][WL_WeaponId] == iWeaponId) { - return PLUGIN_CONTINUE; // already initialized - } + if (g_weaponListDefaults[iWeaponId][WL_WeaponId] == iWeaponId) { + return PLUGIN_CONTINUE; // already initialized + } - get_msg_arg_string(1, g_weaponListDefaults[iWeaponId][WL_WeaponName], 31); - g_weaponListDefaults[iWeaponId][WL_PrimaryAmmoType] = get_msg_arg_int(2); - g_weaponListDefaults[iWeaponId][WL_PrimaryAmmoMaxAmount] = get_msg_arg_int(3); - g_weaponListDefaults[iWeaponId][WL_SecondaryAmmoType] = get_msg_arg_int(4); - g_weaponListDefaults[iWeaponId][WL_SecondaryAmmoMaxAmount] = get_msg_arg_int(5); - g_weaponListDefaults[iWeaponId][WL_SlotId] = get_msg_arg_int(6); - g_weaponListDefaults[iWeaponId][WL_NumberInSlot] = get_msg_arg_int(7); - g_weaponListDefaults[iWeaponId][WL_WeaponId] = iWeaponId; - g_weaponListDefaults[iWeaponId][WL_Flags] = get_msg_arg_int(9); + get_msg_arg_string(1, g_weaponListDefaults[iWeaponId][WL_WeaponName], 31); + g_weaponListDefaults[iWeaponId][WL_PrimaryAmmoType] = get_msg_arg_int(2); + g_weaponListDefaults[iWeaponId][WL_PrimaryAmmoMaxAmount] = get_msg_arg_int(3); + g_weaponListDefaults[iWeaponId][WL_SecondaryAmmoType] = get_msg_arg_int(4); + g_weaponListDefaults[iWeaponId][WL_SecondaryAmmoMaxAmount] = get_msg_arg_int(5); + g_weaponListDefaults[iWeaponId][WL_SlotId] = get_msg_arg_int(6); + g_weaponListDefaults[iWeaponId][WL_NumberInSlot] = get_msg_arg_int(7); + g_weaponListDefaults[iWeaponId][WL_WeaponId] = iWeaponId; + g_weaponListDefaults[iWeaponId][WL_Flags] = get_msg_arg_int(9); - return PLUGIN_CONTINUE; + return PLUGIN_CONTINUE; } // ANCHOR: Weapon Entity Methods CompleteReload(this) { - new CW:iHandler = GetHandlerByEntity(this); - new CW_Flags:iFlags = GetData(iHandler, CW_Data_Flags); - - if (~iFlags & CWF_CustomReload) { - new pPlayer = GetPlayer(this); - new iMaxClip = GetData(iHandler, CW_Data_ClipSize); - new iClip = get_member(this, m_Weapon_iClip); - new iPrimaryAmmoIndex = get_member(this, m_Weapon_iPrimaryAmmoType); - new iBpAmmo = get_member(pPlayer, m_rgAmmo, iPrimaryAmmoIndex); - new iSize = min(iMaxClip - iClip, iBpAmmo); - - set_member(this, m_Weapon_iClip, iClip + iSize); - set_member(pPlayer, m_rgAmmo, iBpAmmo - iSize, iPrimaryAmmoIndex); - } + new CW:iHandler = GetHandlerByEntity(this); + new CW_Flags:iFlags = GetData(iHandler, CW_Data_Flags); - set_member(this, m_Weapon_fInReload, 0); + if (~iFlags & CWF_CustomReload) { + new pPlayer = GetPlayer(this); + new iMaxClip = GetData(iHandler, CW_Data_ClipSize); + new iClip = get_member(this, m_Weapon_iClip); + new iPrimaryAmmoIndex = get_member(this, m_Weapon_iPrimaryAmmoType); + new iBpAmmo = get_member(pPlayer, m_rgAmmo, iPrimaryAmmoIndex); + new iSize = min(iMaxClip - iClip, iBpAmmo); + + set_member(this, m_Weapon_iClip, iClip + iSize); + set_member(pPlayer, m_rgAmmo, iBpAmmo - iSize, iPrimaryAmmoIndex); + } - ExecuteBindedFunction(CWB_DefaultReloadEnd, this); + set_member(this, m_Weapon_fInReload, 0); + + ExecuteBindedFunction(CWB_DefaultReloadEnd, this); } ItemPostFrame(this) { - new CW:iHandler = GetHandlerByEntity(this); - new pPlayer = GetPlayer(this); - new flInReload = get_member(this, m_Weapon_fInReload); - new iMaxClip = GetData(iHandler, CW_Data_ClipSize); - new iWeaponFlags = GetData(iHandler, CW_Data_WeaponFlags); - new Float:flNextAttack = get_member(pPlayer, m_flNextAttack); - new button = pev(pPlayer, pev_button); - new iPrimaryAmmoIndex = get_member(this, m_Weapon_iPrimaryAmmoType); - new iSecondaryAmmoIndex = 0; - new Float:flNextPrimaryAttack = get_member(this, m_Weapon_flNextPrimaryAttack); - new Float:flNextSecondaryAttack = get_member(this, m_Weapon_flNextSecondaryAttack); - new iPrimaryAmmoAmount = get_member(pPlayer, m_rgAmmo, iPrimaryAmmoIndex); - new iSecondaryAmmoAmount = get_member(pPlayer, m_rgAmmo, iSecondaryAmmoIndex); - - new Float:flReloadEndTime = get_member(this, m_Weapon_flNextReload); - if (flReloadEndTime && flReloadEndTime < get_gametime()) { - set_member(this, m_Weapon_flNextReload, 0.0); - ExecuteBindedFunction(CWB_Pump, this); - } + new CW:iHandler = GetHandlerByEntity(this); + new pPlayer = GetPlayer(this); + new flInReload = get_member(this, m_Weapon_fInReload); + new iMaxClip = GetData(iHandler, CW_Data_ClipSize); + new iWeaponFlags = GetData(iHandler, CW_Data_WeaponFlags); + new Float:flNextAttack = get_member(pPlayer, m_flNextAttack); + new button = pev(pPlayer, pev_button); + new iPrimaryAmmoIndex = get_member(this, m_Weapon_iPrimaryAmmoType); + new iSecondaryAmmoIndex = 0; + new Float:flNextPrimaryAttack = get_member(this, m_Weapon_flNextPrimaryAttack); + new Float:flNextSecondaryAttack = get_member(this, m_Weapon_flNextSecondaryAttack); + new iPrimaryAmmoAmount = get_member(pPlayer, m_rgAmmo, iPrimaryAmmoIndex); + new iSecondaryAmmoAmount = get_member(pPlayer, m_rgAmmo, iSecondaryAmmoIndex); + + new Float:flReloadEndTime = get_member(this, m_Weapon_flNextReload); + if (flReloadEndTime && flReloadEndTime < get_gametime()) { + set_member(this, m_Weapon_flNextReload, 0.0); + ExecuteBindedFunction(CWB_Pump, this); + } - if (flInReload && flNextAttack <= 0.0) { - CompleteReload(this); + if (flInReload && flNextAttack <= 0.0) { + CompleteReload(this); + } + + if ((button & IN_ATTACK2) && flNextSecondaryAttack <= 0) { + if (iSecondaryAmmoIndex > 0 && !iSecondaryAmmoAmount) { + set_member(this, m_Weapon_fFireOnEmpty, 1); } - if ((button & IN_ATTACK2) && flNextSecondaryAttack <= 0) { - if (iSecondaryAmmoIndex > 0 && !iSecondaryAmmoAmount) { - set_member(this, m_Weapon_fFireOnEmpty, 1); - } + SecondaryAttack(this); + } else if ((button & IN_ATTACK) && flNextPrimaryAttack <= 0) { + if ((!get_member(this, m_Weapon_iClip) && iPrimaryAmmoIndex > 0) || (iMaxClip == -1 && !iPrimaryAmmoAmount)) { + set_member(this, m_Weapon_fFireOnEmpty, 1); + } - SecondaryAttack(this); - } else if ((button & IN_ATTACK) && flNextPrimaryAttack <= 0) { - if ((!get_member(this, m_Weapon_iClip) && iPrimaryAmmoIndex > 0) || (iMaxClip == -1 && !iPrimaryAmmoAmount)) { - set_member(this, m_Weapon_fFireOnEmpty, 1); - } + PrimaryAttack(this); + } else if ((button & IN_RELOAD) && iMaxClip != WEAPON_NOCLIP && !flInReload) { + Reload(this); + } else if (!(button & (IN_ATTACK|IN_ATTACK2))) { + set_member(this, m_Weapon_fFireOnEmpty, 0); - PrimaryAttack(this); - } else if ((button & IN_RELOAD) && iMaxClip != WEAPON_NOCLIP && !flInReload) { + if (!IsUseable(this) && flNextPrimaryAttack < 0.0) { + // if (!(iWeaponFlags & ITEM_FLAG_NOAUTOSWITCHEMPTY) && g_pGameRules->GetNextBestWeapon(m_pPlayer, this)) { + // set_member(this, m_Weapon_flNextPrimaryAttack, 0.3); + // return; + // } + } else { + if (!get_member(this, m_Weapon_iClip) && !(iWeaponFlags & ITEM_FLAG_NOAUTORELOAD) && flNextPrimaryAttack < 0.0) { Reload(this); - } else if (!(button & (IN_ATTACK|IN_ATTACK2))) { - set_member(this, m_Weapon_fFireOnEmpty, 0); - - if (!IsUseable(this) && flNextPrimaryAttack < 0.0) { - // if (!(iWeaponFlags & ITEM_FLAG_NOAUTOSWITCHEMPTY) && g_pGameRules->GetNextBestWeapon(m_pPlayer, this)) { - // set_member(this, m_Weapon_flNextPrimaryAttack, 0.3); - // return; - // } - } else { - if (!get_member(this, m_Weapon_iClip) && !(iWeaponFlags & ITEM_FLAG_NOAUTORELOAD) && flNextPrimaryAttack < 0.0) { - Reload(this); - return; - } - } - - set_member(this, m_Weapon_iShotsFired, 0); - WeaponIdle(this); return; + } } - if (ShouldWeaponIdle(this)) { - WeaponIdle(this); - } + set_member(this, m_Weapon_iShotsFired, 0); + WeaponIdle(this); + return; + } + + if (ShouldWeaponIdle(this)) { + WeaponIdle(this); + } } SecondaryAttack(this) { - if (get_member_game(m_bFreezePeriod)) { - return; - } + if (get_member_game(m_bFreezePeriod)) { + return; + } - ExecuteHamB(Ham_Weapon_SecondaryAttack, this); + ExecuteHamB(Ham_Weapon_SecondaryAttack, this); - if (g_bSupercede) { - return; - } + if (g_bSupercede) { + return; + } - if (ExecuteBindedFunction(CWB_SecondaryAttack, this) > PLUGIN_CONTINUE) { - return; - } + if (ExecuteBindedFunction(CWB_SecondaryAttack, this) > PLUGIN_CONTINUE) { + return; + } } PrimaryAttack(this) { - if (get_member_game(m_bFreezePeriod)) { - return; - } + if (get_member_game(m_bFreezePeriod)) { + return; + } - ExecuteHamB(Ham_Weapon_PrimaryAttack, this); + ExecuteHamB(Ham_Weapon_PrimaryAttack, this); - if (g_bSupercede) { - return; - } + if (g_bSupercede) { + return; + } - if (ExecuteBindedFunction(CWB_PrimaryAttack, this) > PLUGIN_CONTINUE) { - return; - } + if (ExecuteBindedFunction(CWB_PrimaryAttack, this) > PLUGIN_CONTINUE) { + return; + } } Reload(this) { - ExecuteHamB(Ham_Weapon_Reload, this); + ExecuteHamB(Ham_Weapon_Reload, this); - if (g_bSupercede) { - return; - } - - if (ExecuteBindedFunction(CWB_Reload, this) > PLUGIN_CONTINUE) { - return; - } + if (g_bSupercede) { + return; + } + + if (ExecuteBindedFunction(CWB_Reload, this) > PLUGIN_CONTINUE) { + return; + } } WeaponIdle(this) { - if (get_member(this, m_Weapon_flTimeWeaponIdle) > 0.0) { - return; - } + if (get_member(this, m_Weapon_flTimeWeaponIdle) > 0.0) { + return; + } - ExecuteHamB(Ham_Weapon_WeaponIdle, this); + ExecuteHamB(Ham_Weapon_WeaponIdle, this); - if (g_bSupercede) { - return; - } + if (g_bSupercede) { + return; + } - if (ExecuteBindedFunction(CWB_Idle, this) > PLUGIN_CONTINUE) { - return; - } + if (ExecuteBindedFunction(CWB_Idle, this) > PLUGIN_CONTINUE) { + return; + } } WeaponHolster(this) { - new pPlayer = GetPlayer(this); + new pPlayer = GetPlayer(this); - SetWeaponPrediction(pPlayer, true); - set_member(this, m_Weapon_fInReload, 0); - set_member(this, m_Weapon_fInSpecialReload, 0); - set_member(this, m_Weapon_flNextReload, 0.0); + SetWeaponPrediction(pPlayer, true); + set_member(this, m_Weapon_fInReload, 0); + set_member(this, m_Weapon_fInSpecialReload, 0); + set_member(this, m_Weapon_flNextReload, 0.0); - if (ExecuteBindedFunction(CWB_Holster, this) > PLUGIN_CONTINUE) { - return; - } + if (ExecuteBindedFunction(CWB_Holster, this) > PLUGIN_CONTINUE) { + return; + } } WeaponDeploy(this) { - if (ExecuteBindedFunction(CWB_Deploy, this) > PLUGIN_CONTINUE) { - return; - } + if (ExecuteBindedFunction(CWB_Deploy, this) > PLUGIN_CONTINUE) { + return; + } - new pPlayer = GetPlayer(this); + new pPlayer = GetPlayer(this); - if (g_bKnifeHolstered[pPlayer]) { - g_flNextPredictionUpdate[pPlayer] = get_gametime() + 1.0; - } else if (get_member(this, m_iId) == CSW_KNIFE) { - SetWeaponPrediction(pPlayer, false); - } + if (g_bKnifeHolstered[pPlayer]) { + g_flNextPredictionUpdate[pPlayer] = get_gametime() + 1.0; + } else if (get_member(this, m_iId) == CSW_KNIFE) { + SetWeaponPrediction(pPlayer, false); + } - // SetThink(this, "DisablePrediction"); - // set_pev(this, pev_nextthink, get_gametime() + 0.1); + // SetThink(this, "DisablePrediction"); + // set_pev(this, pev_nextthink, get_gametime() + 0.1); } bool:ShouldWeaponIdle(this) { - #pragma unused this - return false; + #pragma unused this + return false; } bool:IsUseable(this) { - new CW:iHandler = GetHandlerByEntity(this); - new pPlayer = GetPlayer(this); - new iPrimaryAmmoIndex = get_member(this, m_Weapon_iPrimaryAmmoType); - new iMaxAmmo1 = GetData(iHandler, CW_Data_PrimaryAmmoMaxAmount); - new iClip = get_member(this, m_Weapon_iClip); - new iBpAmmo = get_member(pPlayer, m_rgAmmo, iPrimaryAmmoIndex); + new CW:iHandler = GetHandlerByEntity(this); + new pPlayer = GetPlayer(this); + new iPrimaryAmmoIndex = get_member(this, m_Weapon_iPrimaryAmmoType); + new iMaxAmmo1 = GetData(iHandler, CW_Data_PrimaryAmmoMaxAmount); + new iClip = get_member(this, m_Weapon_iClip); + new iBpAmmo = get_member(pPlayer, m_rgAmmo, iPrimaryAmmoIndex); - if (iClip <= 0) { - if (iBpAmmo <= 0 && iMaxAmmo1 != -1) { - return false; - } + if (iClip <= 0) { + if (iBpAmmo <= 0 && iMaxAmmo1 != -1) { + return false; } + } - return true; + return true; } PlayWeaponAnim(this, iSequence, Float:flDuration) { - SendWeaponAnim(this, iSequence); - set_member(this, m_Weapon_flTimeWeaponIdle, flDuration); + SendWeaponAnim(this, iSequence); + set_member(this, m_Weapon_flTimeWeaponIdle, flDuration); } SendWeaponAnim(this, iAnim) { - new pPlayer = GetPlayer(this); - - SendPlayerWeaponAnim(pPlayer, this, iAnim); + new pPlayer = GetPlayer(this); - for (new pSpectator = 1; pSpectator <= MaxClients; pSpectator++) { - if (pSpectator == pPlayer) { - continue; - } - - if (!is_user_connected(pSpectator)) { - continue; - } + SendPlayerWeaponAnim(pPlayer, this, iAnim); - if (pev(pSpectator, pev_iuser1) != OBS_IN_EYE) { - continue; - } + for (new pSpectator = 1; pSpectator <= MaxClients; pSpectator++) { + if (pSpectator == pPlayer) { + continue; + } + + if (!is_user_connected(pSpectator)) { + continue; + } - if (pev(pSpectator, pev_iuser2) != pPlayer) { - continue; - } + if (pev(pSpectator, pev_iuser1) != OBS_IN_EYE) { + continue; + } - SendPlayerWeaponAnim(pSpectator, this, iAnim); + if (pev(pSpectator, pev_iuser2) != pPlayer) { + continue; } + + SendPlayerWeaponAnim(pSpectator, this, iAnim); + } } SendPlayerWeaponAnim(pPlayer, pWeapon, iAnim) { - new iBody = pev(pWeapon, pev_body); + new iBody = pev(pWeapon, pev_body); - set_pev(pPlayer, pev_weaponanim, iAnim); + set_pev(pPlayer, pev_weaponanim, iAnim); - if (!is_user_bot(pPlayer)) { - emessage_begin(MSG_ONE, SVC_WEAPONANIM, _, pPlayer); - ewrite_byte(iAnim); - ewrite_byte(iBody); - emessage_end(); - } + if (!is_user_bot(pPlayer)) { + emessage_begin(MSG_ONE, SVC_WEAPONANIM, _, pPlayer); + ewrite_byte(iAnim); + ewrite_byte(iBody); + emessage_end(); + } } GetPlayer(this) { - return get_member(this, m_pPlayer); + return get_member(this, m_pPlayer); } FireBulletsPlayer(this, cShots, Float:vecSrc[3], Float:vecDirShooting[3], Float:vecSpread[3], Float:flDistance, Float:flDamage, Float:flRangeModifier, pAttacker, Float:vecOut[3]) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return; + } - new pPlayer = GetPlayer(this); - new shared_rand = pPlayer > 0 ? get_member(pPlayer, random_seed) : 0; - new CW_Flags:iFlags = GetData(iHandler, CW_Data_Flags); + new pPlayer = GetPlayer(this); + new shared_rand = pPlayer > 0 ? get_member(pPlayer, random_seed) : 0; + new CW_Flags:iFlags = GetData(iHandler, CW_Data_Flags); - new pTr = create_tr2(); + new pTr = create_tr2(); - static Float:vecRight[3]; - get_global_vector(GL_v_right, vecRight); + static Float:vecRight[3]; + get_global_vector(GL_v_right, vecRight); - static Float:vecUp[3]; - get_global_vector(GL_v_up, vecUp); + static Float:vecUp[3]; + get_global_vector(GL_v_up, vecUp); - static Float:vecMultiplier[3]; + static Float:vecMultiplier[3]; - if (!pAttacker) { - pAttacker = this; // the default attacker is ourselves - } + if (!pAttacker) { + pAttacker = this; // the default attacker is ourselves + } - // ClearMultiDamage(); - // gMultiDamage.type = DMG_BULLET | DMG_NEVERGIB; + // ClearMultiDamage(); + // gMultiDamage.type = DMG_BULLET | DMG_NEVERGIB; - for (new iShot = 1; iShot <= cShots; iShot++) { - //Use player's random seed. - // get circular gaussian spread - vecMultiplier[0] = SharedRandomFloat( shared_rand + iShot, -0.5, 0.5 ) + SharedRandomFloat( shared_rand + ( 1 + iShot ) , -0.5, 0.5 ); - vecMultiplier[1] = SharedRandomFloat( shared_rand + ( 2 + iShot ), -0.5, 0.5 ) + SharedRandomFloat( shared_rand + ( 3 + iShot ), -0.5, 0.5 ); - vecMultiplier[2] = vecMultiplier[0] * vecMultiplier[0] + vecMultiplier[1] * vecMultiplier[1]; + for (new iShot = 1; iShot <= cShots; iShot++) { + //Use player's random seed. + // get circular gaussian spread + vecMultiplier[0] = SharedRandomFloat( shared_rand + iShot, -0.5, 0.5 ) + SharedRandomFloat( shared_rand + ( 1 + iShot ) , -0.5, 0.5 ); + vecMultiplier[1] = SharedRandomFloat( shared_rand + ( 2 + iShot ), -0.5, 0.5 ) + SharedRandomFloat( shared_rand + ( 3 + iShot ), -0.5, 0.5 ); + vecMultiplier[2] = vecMultiplier[0] * vecMultiplier[0] + vecMultiplier[1] * vecMultiplier[1]; - static Float:vecDir[3]; - for (new i = 0; i < 3; ++i) { - vecDir[i] = vecDirShooting[i] + (vecMultiplier[0] * vecSpread[0] * vecRight[i]) + (vecMultiplier[1] * vecSpread[1] * vecUp[i]); - } + static Float:vecDir[3]; + for (new i = 0; i < 3; ++i) { + vecDir[i] = vecDirShooting[i] + (vecMultiplier[0] * vecSpread[0] * vecRight[i]) + (vecMultiplier[1] * vecSpread[1] * vecUp[i]); + } - static Float:vecEnd[3]; - for (new i = 0; i < 3; ++i) { - vecEnd[i] = vecSrc[i] + (vecDir[i] * flDistance); - } + static Float:vecEnd[3]; + for (new i = 0; i < 3; ++i) { + vecEnd[i] = vecSrc[i] + (vecDir[i] * flDistance); + } - engfunc(EngFunc_TraceLine, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, pTr); + engfunc(EngFunc_TraceLine, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, pTr); - new Float:flFraction; - get_tr2(pTr, TR_flFraction, flFraction); - - // do damage, paint decals - if (flFraction != 1.0) { - new pHit = get_tr2(pTr, TR_pHit); + new Float:flFraction; + get_tr2(pTr, TR_flFraction, flFraction); + + // do damage, paint decals + if (flFraction != 1.0) { + new pHit = get_tr2(pTr, TR_pHit); - if (pHit < 0) { - pHit = 0; - } + if (pHit < 0) { + pHit = 0; + } + + new Float:flCurrentDistance = flDistance * flFraction; + new Float:flCurrentDamage = flDamage * floatpower(flRangeModifier, flCurrentDistance / 500.0); + + rg_multidmg_clear(); + ExecuteHamB(Ham_TraceAttack, pHit, pAttacker, flCurrentDamage, vecDir, pTr, DMG_BULLET | DMG_NEVERGIB); + rg_multidmg_apply(this, pAttacker); + + // TEXTURETYPE_PlaySound(&tr, vecSrc, vecEnd, iBulletType); + // DecalGunshot( &tr, iBulletType ); - new Float:flCurrentDistance = flDistance * flFraction; - new Float:flCurrentDamage = flDamage * floatpower(flRangeModifier, flCurrentDistance / 500.0); + // new iDecalIndex = ExecuteHam(Ham_DamageDecal, pHit, DMG_BULLET); + // DecalTrace2(pTr, iDecalIndex); - rg_multidmg_clear(); - ExecuteHamB(Ham_TraceAttack, pHit, pAttacker, flCurrentDamage, vecDir, pTr, DMG_BULLET | DMG_NEVERGIB); - rg_multidmg_apply(this, pAttacker); + if (!ExecuteHam(Ham_IsPlayer, pHit)) { + if (~iFlags & CWF_NoBulletSmoke) { + BulletSmoke(pTr); + } - // TEXTURETYPE_PlaySound(&tr, vecSrc, vecEnd, iBulletType); - // DecalGunshot( &tr, iBulletType ); - - // new iDecalIndex = ExecuteHam(Ham_DamageDecal, pHit, DMG_BULLET); - // DecalTrace2(pTr, iDecalIndex); - - if (!ExecuteHam(Ham_IsPlayer, pHit)) { - if (~iFlags & CWF_NoBulletSmoke) { - BulletSmoke(pTr); - } - - if (~iFlags & CWF_NoBulletDecal) { - new iDecalIndex = GetDecalIndex(pHit); - if (iDecalIndex >= 0) { - MakeDecal(pTr, pHit, iDecalIndex); - } - } - } + if (~iFlags & CWF_NoBulletDecal) { + new iDecalIndex = GetDecalIndex(pHit); + if (iDecalIndex >= 0) { + MakeDecal(pTr, pHit, iDecalIndex); + } } + } + } - // make bullet trails - static Float:vecEndPos[3]; - get_tr2(pTr, TR_vecEndPos, vecEndPos); + // make bullet trails + static Float:vecEndPos[3]; + get_tr2(pTr, TR_vecEndPos, vecEndPos); - BubbleTrail(vecSrc, vecEndPos, floatround((flDistance * flFraction) / 64.0)); - } + BubbleTrail(vecSrc, vecEndPos, floatround((flDistance * flFraction) / 64.0)); + } - vecOut[0] = vecMultiplier[0] * vecSpread[0]; - vecOut[1] = vecMultiplier[1] * vecSpread[1]; - vecOut[2] = 0.0; + vecOut[0] = vecMultiplier[0] * vecSpread[0]; + vecOut[1] = vecMultiplier[1] * vecSpread[1]; + vecOut[2] = 0.0; - free_tr2(pTr); + free_tr2(pTr); } GrenadeDetonate(this, Float:flRadius, Float:flMagnitude) { - static Float:vecStart[3]; - pev(this, pev_origin, vecStart); - vecStart[2] += 8.0; + static Float:vecStart[3]; + pev(this, pev_origin, vecStart); + vecStart[2] += 8.0; - static Float:vecEnd[3]; - xs_vec_copy(vecStart, vecEnd); - vecEnd[2] -= 40.0; + static Float:vecEnd[3]; + xs_vec_copy(vecStart, vecEnd); + vecEnd[2] -= 40.0; - new pTr = create_tr2(); - engfunc(EngFunc_TraceLine, vecStart, vecEnd, IGNORE_MONSTERS, this, pTr); - GrenadeExplode(this, pTr, DMG_GRENADE | DMG_ALWAYSGIB, flRadius, flMagnitude); - free_tr2(pTr); + new pTr = create_tr2(); + engfunc(EngFunc_TraceLine, vecStart, vecEnd, IGNORE_MONSTERS, this, pTr); + GrenadeExplode(this, pTr, DMG_GRENADE | DMG_ALWAYSGIB, flRadius, flMagnitude); + free_tr2(pTr); } GrenadeExplode(this, pTr, iDamageBits, Float:flRadius, Float:flMagnitude) { - new Float:flDamage; - pev(this, pev_dmg, flDamage); + new Float:flDamage; + pev(this, pev_dmg, flDamage); - set_pev(this, pev_model, NULL_STRING); - set_pev(this, pev_solid, SOLID_NOT); - set_pev(this, pev_takedamage, DAMAGE_NO); + set_pev(this, pev_model, NULL_STRING); + set_pev(this, pev_solid, SOLID_NOT); + set_pev(this, pev_takedamage, DAMAGE_NO); - new Float:flFraction; - get_tr2(pTr, TR_Fraction, flFraction); - - static Float:vecPlaneNormal[3]; - get_tr2(pTr, TR_vecPlaneNormal, vecPlaneNormal); + new Float:flFraction; + get_tr2(pTr, TR_Fraction, flFraction); - static Float:vecOrigin[3]; - pev(this, pev_origin, vecOrigin); + static Float:vecPlaneNormal[3]; + get_tr2(pTr, TR_vecPlaneNormal, vecPlaneNormal); - if (flFraction != 1.0) { - get_tr2(pTr, TR_vecEndPos, vecOrigin); + static Float:vecOrigin[3]; + pev(this, pev_origin, vecOrigin); - for (new i = 0; i < 3; ++i) { - vecOrigin[i] += (vecPlaneNormal[i] * (flMagnitude ? flMagnitude : flDamage - 24.0) * 0.6); - } + if (flFraction != 1.0) { + get_tr2(pTr, TR_vecEndPos, vecOrigin); - set_pev(this, pev_origin, vecOrigin); + for (new i = 0; i < 3; ++i) { + vecOrigin[i] += (vecPlaneNormal[i] * (flMagnitude ? flMagnitude : flDamage - 24.0) * 0.6); } - - GrenadeExplosion(vecOrigin, flDamage); - // CSoundEnt::InsertSound ( bits_SOUND_COMBAT, pev->origin, NORMAL_EXPLOSION_VOLUME, 3.0 ); - new iOwner = pev(this, pev_owner); - set_pev(this, pev_owner, 0); + set_pev(this, pev_origin, vecOrigin); + } + + GrenadeExplosion(vecOrigin, flDamage); - _RadiusDamage(vecOrigin, this, iOwner, flDamage, flRadius ? flRadius : flDamage * 3.5, CLASS_NONE, iDamageBits); + // CSoundEnt::InsertSound ( bits_SOUND_COMBAT, pev->origin, NORMAL_EXPLOSION_VOLUME, 3.0 ); + new iOwner = pev(this, pev_owner); + set_pev(this, pev_owner, 0); - ExplosionDecalTrace(pTr); - DebrisSound(this); + _RadiusDamage(vecOrigin, this, iOwner, flDamage, flRadius ? flRadius : flDamage * 3.5, CLASS_NONE, iDamageBits); - set_pev(this, pev_effects, pev(this, pev_effects) | EF_NODRAW); + ExplosionDecalTrace(pTr); + DebrisSound(this); - // SetThink( &CGrenade::Smoke ); - // GrenadeSmoke(vecOrigin, flDamage); + set_pev(this, pev_effects, pev(this, pev_effects) | EF_NODRAW); - set_pev(this, pev_velocity, NULL_VECTOR); - set_pev(this, pev_nextthink, get_gametime() + 0.1); + // SetThink( &CGrenade::Smoke ); + // GrenadeSmoke(vecOrigin, flDamage); - if (PointContents(vecOrigin) != CONTENTS_WATER) { - new iSparkCount = random(4); - for (new i = 0; i < iSparkCount; ++i) { - SparkShower(vecOrigin, vecPlaneNormal, 0); - } - } + set_pev(this, pev_velocity, NULL_VECTOR); + set_pev(this, pev_nextthink, get_gametime() + 0.1); + + if (PointContents(vecOrigin) != CONTENTS_WATER) { + new iSparkCount = random(4); + for (new i = 0; i < iSparkCount; ++i) { + SparkShower(vecOrigin, vecPlaneNormal, 0); + } + } } bool:IsWeaponKnife(pWeapon) { - if (GetHandlerByEntity(pWeapon) != CW_INVALID_HANDLER) { - return false; - } + if (GetHandlerByEntity(pWeapon) != CW_INVALID_HANDLER) { + return false; + } - if (get_member(pWeapon, m_iId) != CSW_KNIFE) { - return false; - } + if (get_member(pWeapon, m_iId) != CSW_KNIFE) { + return false; + } - return true; + return true; } // ANCHOR: Weapon Callbacks public Smack(this) { - new CW:iHandler = GetHandlerByEntity(this); - new CW_Flags:iFlags = GetData(iHandler, CW_Data_Flags); + new CW:iHandler = GetHandlerByEntity(this); + new CW_Flags:iFlags = GetData(iHandler, CW_Data_Flags); - new pTr = pev(this, pev_iuser1); - new pHit = get_tr2(pTr, TR_pHit); - if (pHit < 0) { - pHit = 0; - } + new pTr = pev(this, pev_iuser1); + new pHit = get_tr2(pTr, TR_pHit); + if (pHit < 0) { + pHit = 0; + } - if (~iFlags & CWF_NoBulletDecal) { - new iDecalIndex = GetDecalIndex(pHit); - if (iDecalIndex >= 0) { - MakeDecal(pTr, pHit, iDecalIndex, false); - } + if (~iFlags & CWF_NoBulletDecal) { + new iDecalIndex = GetDecalIndex(pHit); + if (iDecalIndex >= 0) { + MakeDecal(pTr, pHit, iDecalIndex, false); } + } - free_tr2(pTr); + free_tr2(pTr); - SetThink(this, NULL_STRING); + SetThink(this, NULL_STRING); } // public DisablePrediction(this) { -// new pPlayer = GetPlayer(this); -// SetWeaponPrediction(pPlayer, false); -// SetThink(this, NULL_STRING); +// new pPlayer = GetPlayer(this); +// SetWeaponPrediction(pPlayer, false); +// SetThink(this, NULL_STRING); // } // ANCHOR: Weapon Entity Default Methods bool:DefaultReload(this, iAnim, Float:flDelay) { - new CW:iHandler = GetHandlerByEntity(this); - new pPlayer = GetPlayer(this); - new iPrimaryAmmoIndex = get_member(this, m_Weapon_iPrimaryAmmoType); - new iPrimaryAmmoAmount = get_member(pPlayer, m_rgAmmo, iPrimaryAmmoIndex); + new CW:iHandler = GetHandlerByEntity(this); + new pPlayer = GetPlayer(this); + new iPrimaryAmmoIndex = get_member(this, m_Weapon_iPrimaryAmmoType); + new iPrimaryAmmoAmount = get_member(pPlayer, m_rgAmmo, iPrimaryAmmoIndex); - if (iPrimaryAmmoAmount <= 0) { - return false; - } + if (iPrimaryAmmoAmount <= 0) { + return false; + } - new iClip = get_member(this, m_Weapon_iClip); - new iClipSize = GetData(iHandler, CW_Data_ClipSize); + new iClip = get_member(this, m_Weapon_iClip); + new iClipSize = GetData(iHandler, CW_Data_ClipSize); - new size = min(iClipSize - iClip, iPrimaryAmmoAmount); - if (size == 0) { - return false; - } + new size = min(iClipSize - iClip, iPrimaryAmmoAmount); + if (size == 0) { + return false; + } - if (get_member(this, m_Weapon_fInReload)) { - return false; - } + if (get_member(this, m_Weapon_fInReload)) { + return false; + } - set_member(pPlayer, m_flNextAttack, flDelay); - set_member(this, m_Weapon_fInReload, 1); + set_member(pPlayer, m_flNextAttack, flDelay); + set_member(this, m_Weapon_fInReload, 1); - PlayWeaponAnim(this, iAnim, 3.0); - rg_set_animation(pPlayer, PLAYER_RELOAD); + PlayWeaponAnim(this, iAnim, 3.0); + rg_set_animation(pPlayer, PLAYER_RELOAD); - return true; + return true; } bool:DefaultShotgunReload(this, iStartAnim, iEndAnim, Float:flDelay, Float:flDuration) { - new pPlayer = GetPlayer(this); - new iClip = get_member(this, m_Weapon_iClip); - new iPrimaryAmmoType = get_member(this, m_Weapon_iPrimaryAmmoType); - new CW:iHandler = GetHandlerByEntity(this); - new iClipSize = GetData(iHandler, CW_Data_ClipSize); + new pPlayer = GetPlayer(this); + new iClip = get_member(this, m_Weapon_iClip); + new iPrimaryAmmoType = get_member(this, m_Weapon_iPrimaryAmmoType); + new CW:iHandler = GetHandlerByEntity(this); + new iClipSize = GetData(iHandler, CW_Data_ClipSize); - if (get_member(pPlayer, m_rgAmmo, iPrimaryAmmoType) <= 0 || iClip == iClipSize) { - return false; - } + if (get_member(pPlayer, m_rgAmmo, iPrimaryAmmoType) <= 0 || iClip == iClipSize) { + return false; + } - // don't reload until recoil is done - new Float:flNextPrimaryAttack = get_member(this, m_Weapon_flNextPrimaryAttack); - new flInSpecialReload = get_member(this, m_Weapon_fInSpecialReload); - if (flNextPrimaryAttack > 0.0) { - return false; - } + // don't reload until recoil is done + new Float:flNextPrimaryAttack = get_member(this, m_Weapon_flNextPrimaryAttack); + new flInSpecialReload = get_member(this, m_Weapon_fInSpecialReload); + if (flNextPrimaryAttack > 0.0) { + return false; + } - new Float:flTimeWeaponIdle = get_member(this, m_Weapon_flTimeWeaponIdle); - // check to see if we're ready to reload - if (flInSpecialReload == 0) { - rg_set_animation(pPlayer, PLAYER_RELOAD); - PlayWeaponAnim(this, iStartAnim, flDelay); - - set_member(this, m_Weapon_fInSpecialReload, 1); - set_member(pPlayer, m_flNextAttack, flDelay); - set_member(this, m_Weapon_flNextPrimaryAttack, 1.0); - set_member(this, m_Weapon_flNextSecondaryAttack, 1.0); - } else if (flInSpecialReload == 1) { - if (flTimeWeaponIdle > 0.0) { - return false; - } + new Float:flTimeWeaponIdle = get_member(this, m_Weapon_flTimeWeaponIdle); + // check to see if we're ready to reload + if (flInSpecialReload == 0) { + rg_set_animation(pPlayer, PLAYER_RELOAD); + PlayWeaponAnim(this, iStartAnim, flDelay); + + set_member(this, m_Weapon_fInSpecialReload, 1); + set_member(pPlayer, m_flNextAttack, flDelay); + set_member(this, m_Weapon_flNextPrimaryAttack, 1.0); + set_member(this, m_Weapon_flNextSecondaryAttack, 1.0); + } else if (flInSpecialReload == 1) { + if (flTimeWeaponIdle > 0.0) { + return false; + } - set_member(this, m_Weapon_fInSpecialReload, 2); + set_member(this, m_Weapon_fInSpecialReload, 2); - // if (RANDOM_LONG(0,1)) - // EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/reload1.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f)); - // else - // EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/reload3.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f)); + // if (RANDOM_LONG(0,1)) + // EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/reload1.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f)); + // else + // EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/reload3.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f)); - PlayWeaponAnim(this, iEndAnim, flDuration); - } else { - // Add them to the clip - set_member(this, m_Weapon_iClip, ++iClip); - set_member(this, m_Weapon_fInSpecialReload, 1); - set_member(pPlayer, m_rgAmmo, get_member(pPlayer, m_rgAmmo, iPrimaryAmmoType) - 1, iPrimaryAmmoType); - } + PlayWeaponAnim(this, iEndAnim, flDuration); + } else { + // Add them to the clip + set_member(this, m_Weapon_iClip, ++iClip); + set_member(this, m_Weapon_fInSpecialReload, 1); + set_member(pPlayer, m_rgAmmo, get_member(pPlayer, m_rgAmmo, iPrimaryAmmoType) - 1, iPrimaryAmmoType); + } - return true; + return true; } bool:DefaultShotgunIdle(this, iAnim, iReloadEndAnim, Float:flDuration, Float:flReloadEndDuration, const szPumpSound[]) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return false; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return false; + } - new Float:flTimeWeaponIdle = get_member(this, m_Weapon_flTimeWeaponIdle); - if (flTimeWeaponIdle < 0.0) { - new pPlayer = get_member(this, m_pPlayer); - new iPrimaryAmmoType = get_member(this, m_Weapon_iPrimaryAmmoType); - new iPrimaryAmmoAmount = get_member(pPlayer, m_rgAmmo, iPrimaryAmmoType); - new flInSpecialReload = get_member(this, m_Weapon_fInSpecialReload); - new iClip = get_member(this, m_Weapon_iClip); - - if (!iClip && flInSpecialReload == 0 && iPrimaryAmmoAmount) { - Reload(this); - } else if (flInSpecialReload != 0) { - new iClipSize = GetData(iHandler, CW_Data_ClipSize); - if (iClip < iClipSize && iPrimaryAmmoAmount) { - Reload(this); - } else { - set_member(this, m_Weapon_fInSpecialReload, 0); - emit_sound(pPlayer, CHAN_ITEM, szPumpSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); - PlayWeaponAnim(this, iReloadEndAnim, flReloadEndDuration); - } - } else { - PlayWeaponAnim(this, iAnim, flDuration); - } + new Float:flTimeWeaponIdle = get_member(this, m_Weapon_flTimeWeaponIdle); + if (flTimeWeaponIdle < 0.0) { + new pPlayer = get_member(this, m_pPlayer); + new iPrimaryAmmoType = get_member(this, m_Weapon_iPrimaryAmmoType); + new iPrimaryAmmoAmount = get_member(pPlayer, m_rgAmmo, iPrimaryAmmoType); + new flInSpecialReload = get_member(this, m_Weapon_fInSpecialReload); + new iClip = get_member(this, m_Weapon_iClip); + + if (!iClip && flInSpecialReload == 0 && iPrimaryAmmoAmount) { + Reload(this); + } else if (flInSpecialReload != 0) { + new iClipSize = GetData(iHandler, CW_Data_ClipSize); + if (iClip < iClipSize && iPrimaryAmmoAmount) { + Reload(this); + } else { + set_member(this, m_Weapon_fInSpecialReload, 0); + emit_sound(pPlayer, CHAN_ITEM, szPumpSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); + PlayWeaponAnim(this, iReloadEndAnim, flReloadEndDuration); + } + } else { + PlayWeaponAnim(this, iAnim, flDuration); } + } - return true; + return true; } bool:DefaultDeploy(this, const szViewModel[], const szWeaponModel[], iAnim, const szAnimExt[]) { - // if (!CanDeploy(this)) { - // return false; - // } + // if (!CanDeploy(this)) { + // return false; + // } - // new CW:iHandler = GetHandlerByEntity(this); - new pPlayer = GetPlayer(this); - set_pev(pPlayer, pev_viewmodel2, szViewModel); - set_pev(pPlayer, pev_weaponmodel2, szWeaponModel); + // new CW:iHandler = GetHandlerByEntity(this); + new pPlayer = GetPlayer(this); + set_pev(pPlayer, pev_viewmodel2, szViewModel); + set_pev(pPlayer, pev_weaponmodel2, szWeaponModel); - // strcpy( m_pPlayer->m_szAnimExtention, szAnimExt ); - SendWeaponAnim(this, iAnim); + // strcpy( m_pPlayer->m_szAnimExtention, szAnimExt ); + SendWeaponAnim(this, iAnim); - if (szAnimExt[0] != '^0') { - set_member(pPlayer, m_szAnimExtention, szAnimExt); - } + if (szAnimExt[0] != '^0') { + set_member(pPlayer, m_szAnimExtention, szAnimExt); + } - set_member(this, m_Weapon_iShotsFired, 0); - set_member(this, m_Weapon_flTimeWeaponIdle, 1.0); - set_member(this, m_Weapon_flLastFireTime, 0.0); - set_member(this, m_Weapon_flDecreaseShotsFired, get_gametime()); + set_member(this, m_Weapon_iShotsFired, 0); + set_member(this, m_Weapon_flTimeWeaponIdle, 1.0); + set_member(this, m_Weapon_flLastFireTime, 0.0); + set_member(this, m_Weapon_flDecreaseShotsFired, get_gametime()); - set_member(pPlayer, m_flNextAttack, 0.5); - set_member(pPlayer, m_iFOV, DEFAULT_FOV); - set_member(pPlayer, m_iLastZoom, DEFAULT_FOV); - set_member(pPlayer, m_bResumeZoom, 0); - set_pev(pPlayer, pev_fov, float(DEFAULT_FOV)); + set_member(pPlayer, m_flNextAttack, 0.5); + set_member(pPlayer, m_iFOV, DEFAULT_FOV); + set_member(pPlayer, m_iLastZoom, DEFAULT_FOV); + set_member(pPlayer, m_bResumeZoom, 0); + set_pev(pPlayer, pev_fov, float(DEFAULT_FOV)); - return true; + return true; } bool:DefaultShot(this, Float:flDamage, Float:flRangeModifier, Float:flRate, Float:flSpread[3], iShots, Float:flDistance) { - new iClip = get_member(this, m_Weapon_iClip); - if (iClip <= 0) { - return false; - } + new iClip = get_member(this, m_Weapon_iClip); + if (iClip <= 0) { + return false; + } - new pPlayer = GetPlayer(this); + new pPlayer = GetPlayer(this); - static Float:vecDirShooting[3]; - MakeAimDir(pPlayer, 1.0, vecDirShooting); + static Float:vecDirShooting[3]; + MakeAimDir(pPlayer, 1.0, vecDirShooting); - static Float:vecSrc[3]; - ExecuteHam(Ham_Player_GetGunPosition, pPlayer, vecSrc); + static Float:vecSrc[3]; + ExecuteHam(Ham_Player_GetGunPosition, pPlayer, vecSrc); - static Float:vecOut[3]; - FireBulletsPlayer(this, iShots, vecSrc, vecDirShooting, flSpread, flDistance, flDamage, flRangeModifier, pPlayer, vecOut); + static Float:vecOut[3]; + FireBulletsPlayer(this, iShots, vecSrc, vecDirShooting, flSpread, flDistance, flDamage, flRangeModifier, pPlayer, vecOut); - set_member(this, m_Weapon_iClip, --iClip); + set_member(this, m_Weapon_iClip, --iClip); - set_member(this, m_Weapon_flNextPrimaryAttack, flRate); - set_member(this, m_Weapon_flNextSecondaryAttack, flRate); + set_member(this, m_Weapon_flNextPrimaryAttack, flRate); + set_member(this, m_Weapon_flNextSecondaryAttack, flRate); - new iShotsFired = get_member(this, m_Weapon_iShotsFired); - set_member(this, m_Weapon_iShotsFired, ++iShotsFired); + new iShotsFired = get_member(this, m_Weapon_iShotsFired); + set_member(this, m_Weapon_iShotsFired, ++iShotsFired); - rg_set_animation(pPlayer, PLAYER_ATTACK1); + rg_set_animation(pPlayer, PLAYER_ATTACK1); - return true; + return true; } bool:DefaultShotgunShot(this, Float:flDamage, Float:flRangeModifier, Float:flRate, Float:flPumpDelay, Float:flSpread[3], iShots, Float:flDistance) { - new iClip = get_member(this, m_Weapon_iClip); - if (iClip <= 0) { - Reload(this); - if (iClip == 0) { - // PlayEmptySound(); - } - - return false; + new iClip = get_member(this, m_Weapon_iClip); + if (iClip <= 0) { + Reload(this); + if (iClip == 0) { + // PlayEmptySound(); } - // m_pPlayer->m_iWeaponVolume = LOUD_GUN_VOLUME; - // m_pPlayer->m_iWeaponFlash = NORMAL_GUN_FLASH; + return false; + } - // m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH; + // m_pPlayer->m_iWeaponVolume = LOUD_GUN_VOLUME; + // m_pPlayer->m_iWeaponFlash = NORMAL_GUN_FLASH; - if (!DefaultShot(this, flDamage, flRangeModifier, flRate, flSpread, iShots, flDistance)) { - return false; - } + // m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH; + + if (!DefaultShot(this, flDamage, flRangeModifier, flRate, flSpread, iShots, flDistance)) { + return false; + } - set_member(this, m_Weapon_fInSpecialReload, 0); + set_member(this, m_Weapon_fInSpecialReload, 0); - if (iClip != 0) { - set_member(this, m_Weapon_flNextReload, get_gametime() + flPumpDelay); - } + if (iClip != 0) { + set_member(this, m_Weapon_flNextReload, get_gametime() + flPumpDelay); + } - return true; + return true; } DefaultSwing(this, Float:flDamage, Float:flRate, Float:flDistance) { - new CW:iHandler = GetHandlerByEntity(this); - if (iHandler == CW_INVALID_HANDLER) { - return -1; - } + new CW:iHandler = GetHandlerByEntity(this); + if (iHandler == CW_INVALID_HANDLER) { + return -1; + } - new pPlayer = GetPlayer(this); + new pPlayer = GetPlayer(this); - static Float:vecSrc[3]; - ExecuteHam(Ham_Player_GetGunPosition, pPlayer, vecSrc); + static Float:vecSrc[3]; + ExecuteHam(Ham_Player_GetGunPosition, pPlayer, vecSrc); - static Float:vecEnd[3]; - MakeAimDir(pPlayer, flDistance, vecEnd); - xs_vec_add(vecSrc, vecEnd, vecEnd); + static Float:vecEnd[3]; + MakeAimDir(pPlayer, flDistance, vecEnd); + xs_vec_add(vecSrc, vecEnd, vecEnd); - new pTr = create_tr2(); - engfunc(EngFunc_TraceLine, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, pTr); + new pTr = create_tr2(); + engfunc(EngFunc_TraceLine, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, pTr); - new Float:flFraction; + new Float:flFraction; + get_tr2(pTr, TR_flFraction, flFraction); + + if (flFraction >= 1.0) { + engfunc(EngFunc_TraceHull, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, HULL_HEAD, this, pTr); get_tr2(pTr, TR_flFraction, flFraction); - if (flFraction >= 1.0) { - engfunc(EngFunc_TraceHull, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, HULL_HEAD, this, pTr); - get_tr2(pTr, TR_flFraction, flFraction); + if (flFraction < 1.0) { + // Calculate the point of interANCHOR of the line (or hull) and the object we hit + // This is and approximation of the "best" interANCHOR + new pHit = get_tr2(pTr, TR_pHit); + if (pHit == -1 || ExecuteHamB(Ham_IsBSPModel, pHit)) { + FindHullIntersection(vecSrc, pTr, VEC_DUCK_HULL_MIN, VEC_DUCK_HULL_MAX, this); + } - if (flFraction < 1.0) { - // Calculate the point of interANCHOR of the line (or hull) and the object we hit - // This is and approximation of the "best" interANCHOR - new pHit = get_tr2(pTr, TR_pHit); - if (pHit == -1 || ExecuteHamB(Ham_IsBSPModel, pHit)) { - FindHullIntersection(vecSrc, pTr, VEC_DUCK_HULL_MIN, VEC_DUCK_HULL_MAX, this); - } - - get_tr2(pTr, TR_vecEndPos, vecEnd); // This is the point on the actual surface (the hull could have hit space) - get_tr2(pTr, TR_flFraction, flFraction); - } + get_tr2(pTr, TR_vecEndPos, vecEnd); // This is the point on the actual surface (the hull could have hit space) + get_tr2(pTr, TR_flFraction, flFraction); } + } - new iShotsFired = get_member(this, m_Weapon_iShotsFired); - set_member(this, m_Weapon_iShotsFired, iShotsFired + 1); + new iShotsFired = get_member(this, m_Weapon_iShotsFired); + set_member(this, m_Weapon_iShotsFired, iShotsFired + 1); - set_member(this, m_Weapon_flNextPrimaryAttack, flRate); + set_member(this, m_Weapon_flNextPrimaryAttack, flRate); - rg_set_animation(pPlayer, PLAYER_ATTACK1); + rg_set_animation(pPlayer, PLAYER_ATTACK1); - if (flFraction >= 1.0) { - free_tr2(pTr); - return -1; - } + if (flFraction >= 1.0) { + free_tr2(pTr); + return -1; + } - new pHit = get_tr2(pTr, TR_pHit); - if (pHit < 0) { - set_tr2(pTr, TR_pHit, 0); - pHit = 0; - } + new pHit = get_tr2(pTr, TR_pHit); + if (pHit < 0) { + set_tr2(pTr, TR_pHit, 0); + pHit = 0; + } - // if (get_member(this, m_Weapon_flNextPrimaryAttack) + 1.0 < 0.0) { - // first swing does full damage - static Float:vecDir[3]; - xs_vec_sub(vecSrc, vecEnd, vecDir); - xs_vec_normalize(vecDir, vecDir); + // if (get_member(this, m_Weapon_flNextPrimaryAttack) + 1.0 < 0.0) { + // first swing does full damage + static Float:vecDir[3]; + xs_vec_sub(vecSrc, vecEnd, vecDir); + xs_vec_normalize(vecDir, vecDir); - rg_multidmg_clear(); - ExecuteHamB(Ham_TraceAttack, pHit, pPlayer, flDamage, vecDir, pTr, DMG_CLUB); - rg_multidmg_apply(pPlayer, pPlayer); - // } + rg_multidmg_clear(); + ExecuteHamB(Ham_TraceAttack, pHit, pPlayer, flDamage, vecDir, pTr, DMG_CLUB); + rg_multidmg_apply(pPlayer, pPlayer); + // } - set_pev(this, pev_iuser1, pTr); - SetThink(this, "Smack"); - set_pev(this, pev_nextthink, get_gametime() + (flRate * 0.5)); + set_pev(this, pev_iuser1, pTr); + SetThink(this, "Smack"); + set_pev(this, pev_nextthink, get_gametime() + (flRate * 0.5)); - return pHit; + return pHit; } // ANCHOR: Weapon Methods CW:RegisterWeapon(iPluginId, const szName[], iWeaponId, iClipSize, iPrimaryAmmoType, iPrimaryAmmoMaxAmount, iSecondaryAmmoType, iSecondaryAmmoMaxAmount, iSlotId, iPosition, iWeaponFlags, const szIcon[], CW_Flags:iFlags) { - new CW:iHandler = CreateWeaponData(szName); - SetData(iHandler, CW_Data_PluginId, iPluginId); - SetStringData(iHandler, CW_Data_Name, szName); - SetData(iHandler, CW_Data_Id, iWeaponId); - SetData(iHandler, CW_Data_ClipSize, iClipSize); - SetData(iHandler, CW_Data_PrimaryAmmoType, iPrimaryAmmoType); - SetData(iHandler, CW_Data_PrimaryAmmoMaxAmount, iPrimaryAmmoMaxAmount); - SetData(iHandler, CW_Data_SecondaryAmmoType, iSecondaryAmmoType); - SetData(iHandler, CW_Data_SecondaryAmmoMaxAmount, iSecondaryAmmoMaxAmount); - SetData(iHandler, CW_Data_SlotId, iSlotId); - SetData(iHandler, CW_Data_Position, iPosition); - SetData(iHandler, CW_Data_WeaponFlags, iWeaponFlags); - SetStringData(iHandler, CW_Data_Icon, szIcon); - SetData(iHandler, CW_Data_Flags, iFlags); - - if (!g_bPrecache && !g_bWeaponHooks[iWeaponId]) { // we are not able to get weapon name in precache state - RegisterWeaponHooks(iWeaponId); - } - - register_clcmd(szName, "OnWeaponClCmd"); - - return iHandler; + new CW:iHandler = CreateWeaponData(szName); + SetData(iHandler, CW_Data_PluginId, iPluginId); + SetStringData(iHandler, CW_Data_Name, szName); + SetData(iHandler, CW_Data_Id, iWeaponId); + SetData(iHandler, CW_Data_ClipSize, iClipSize); + SetData(iHandler, CW_Data_PrimaryAmmoType, iPrimaryAmmoType); + SetData(iHandler, CW_Data_PrimaryAmmoMaxAmount, iPrimaryAmmoMaxAmount); + SetData(iHandler, CW_Data_SecondaryAmmoType, iSecondaryAmmoType); + SetData(iHandler, CW_Data_SecondaryAmmoMaxAmount, iSecondaryAmmoMaxAmount); + SetData(iHandler, CW_Data_SlotId, iSlotId); + SetData(iHandler, CW_Data_Position, iPosition); + SetData(iHandler, CW_Data_WeaponFlags, iWeaponFlags); + SetStringData(iHandler, CW_Data_Icon, szIcon); + SetData(iHandler, CW_Data_Flags, iFlags); + + if (!g_bPrecache && !g_bWeaponHooks[iWeaponId]) { // we are not able to get weapon name in precache state + RegisterWeaponHooks(iWeaponId); + } + + register_clcmd(szName, "OnWeaponClCmd"); + + return iHandler; } CW:GetHandler(const szName[]) { - new CW:iHandler; - if (!TrieGetCell(g_rgWeaponsMap, szName, iHandler)) { - return CW_INVALID_HANDLER; - } + new CW:iHandler; + if (!TrieGetCell(g_rgWeaponsMap, szName, iHandler)) { + return CW_INVALID_HANDLER; + } - return iHandler; + return iHandler; } CW:GetHandlerByEntity(pEntity) { - new iToken = pev(pEntity, pev_impulse); + new iToken = pev(pEntity, pev_impulse); - if (iToken >= TOKEN && iToken < TOKEN + g_iWeaponCount) { - return CW:(iToken - TOKEN); - } + if (iToken >= TOKEN && iToken < TOKEN + g_iWeaponCount) { + return CW:(iToken - TOKEN); + } - return CW_INVALID_HANDLER; + return CW_INVALID_HANDLER; } SpawnWeapon(CW:iHandler) { - new iWeaponId = GetData(iHandler, CW_Data_Id); + new iWeaponId = GetData(iHandler, CW_Data_Id); - new pEntity = rg_create_entity(g_rgszWeaponNames[iWeaponId], true); - if (!pEntity) { - return 0; - } + new pEntity = rg_create_entity(g_rgszWeaponNames[iWeaponId], true); + if (!pEntity) { + return 0; + } - set_pev(pEntity, pev_impulse, TOKEN + _:iHandler); - dllfunc(DLLFunc_Spawn, pEntity); + set_pev(pEntity, pev_impulse, TOKEN + _:iHandler); + dllfunc(DLLFunc_Spawn, pEntity); - new iPrimaryAmmoType = GetData(iHandler, CW_Data_PrimaryAmmoType); + new iPrimaryAmmoType = GetData(iHandler, CW_Data_PrimaryAmmoType); - set_member(pEntity, m_Weapon_iClip, GetData(iHandler, CW_Data_ClipSize)); - set_member(pEntity, m_Weapon_iPrimaryAmmoType, iPrimaryAmmoType); - set_member(pEntity, m_Weapon_iDefaultAmmo, 0); - // set_member(pEntity, m_Weapon_iShell, 0); - // set_member(pEntity, m_Weapon_bDelayFire, true); - // set_member(pEntity, m_Weapon_fFireOnEmpty, true); + set_member(pEntity, m_Weapon_iClip, GetData(iHandler, CW_Data_ClipSize)); + set_member(pEntity, m_Weapon_iPrimaryAmmoType, iPrimaryAmmoType); + set_member(pEntity, m_Weapon_iDefaultAmmo, 0); + // set_member(pEntity, m_Weapon_iShell, 0); + // set_member(pEntity, m_Weapon_bDelayFire, true); + // set_member(pEntity, m_Weapon_fFireOnEmpty, true); - ExecuteBindedFunction(CWB_Spawn, pEntity); + ExecuteBindedFunction(CWB_Spawn, pEntity); - return pEntity; + return pEntity; } SpawnWeaponBox(CW:iHandler) { - new pItem = SpawnWeapon(iHandler); - if (!pItem) { - return 0; - } + new pItem = SpawnWeapon(iHandler); + if (!pItem) { + return 0; + } - set_pev(pItem, pev_spawnflags, pev(pItem, pev_spawnflags) | SF_NORESPAWN); - set_pev(pItem, pev_effects, EF_NODRAW); - set_pev(pItem, pev_movetype, MOVETYPE_NONE); - set_pev(pItem, pev_solid, SOLID_NOT); - set_pev(pItem, pev_model, 0); - set_pev(pItem, pev_modelindex, 0); - - new pWeaponBox = rg_create_entity("weaponbox", true); - if (!pWeaponBox) { - set_pev(pItem, pev_flags, pev(pItem, pev_flags) | FL_KILLME); - dllfunc(DLLFunc_Think, pItem); - return 0; - } + set_pev(pItem, pev_spawnflags, pev(pItem, pev_spawnflags) | SF_NORESPAWN); + set_pev(pItem, pev_effects, EF_NODRAW); + set_pev(pItem, pev_movetype, MOVETYPE_NONE); + set_pev(pItem, pev_solid, SOLID_NOT); + set_pev(pItem, pev_model, 0); + set_pev(pItem, pev_modelindex, 0); - dllfunc(DLLFunc_Spawn, pWeaponBox); - set_pev(pItem, pev_owner, pWeaponBox); + new pWeaponBox = rg_create_entity("weaponbox", true); + if (!pWeaponBox) { + set_pev(pItem, pev_flags, pev(pItem, pev_flags) | FL_KILLME); + dllfunc(DLLFunc_Think, pItem); + return 0; + } - new iSlot = GetData(iHandler, CW_Data_SlotId); - set_member(pWeaponBox, m_WeaponBox_rgpPlayerItems, pItem, iSlot + 1); + dllfunc(DLLFunc_Spawn, pWeaponBox); + set_pev(pItem, pev_owner, pWeaponBox); - dllfunc(DLLFunc_Spawn, pWeaponBox); + new iSlot = GetData(iHandler, CW_Data_SlotId); + set_member(pWeaponBox, m_WeaponBox_rgpPlayerItems, pItem, iSlot + 1); - // engfunc(EngFunc_SetSize, pWeaponBox, {-8.0, -8.0, 0.0}, {8.0, 8.0, 4.0}); + dllfunc(DLLFunc_Spawn, pWeaponBox); - return pWeaponBox; + // engfunc(EngFunc_SetSize, pWeaponBox, {-8.0, -8.0, 0.0}, {8.0, 8.0, 4.0}); + + return pWeaponBox; } // ANCHOR: Player Methods GiveWeapon(pPlayer, CW:iHandler) { - new pWeapon = SpawnWeapon(iHandler); - if (!pWeapon) { - return; - } + new pWeapon = SpawnWeapon(iHandler); + if (!pWeapon) { + return; + } - if (ExecuteHamB(Ham_AddPlayerItem, pPlayer, pWeapon)) { - ExecuteHamB(Ham_Item_AttachToPlayer, pWeapon, pPlayer); - emit_sound(pPlayer, CHAN_ITEM, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM); - } + if (ExecuteHamB(Ham_AddPlayerItem, pPlayer, pWeapon)) { + ExecuteHamB(Ham_Item_AttachToPlayer, pWeapon, pPlayer); + emit_sound(pPlayer, CHAN_ITEM, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM); + } - new CW_Flags:iFlags = GetData(iHandler, CW_Data_Flags); + new CW_Flags:iFlags = GetData(iHandler, CW_Data_Flags); - if (~iFlags & CWF_NotRefillable) { - new iClipSize = GetData(iHandler, CW_Data_ClipSize); - new iPrimaryAmmoIndex = GetData(iHandler, CW_Data_PrimaryAmmoType); - if (iClipSize == WEAPON_NOCLIP && iPrimaryAmmoIndex != -1) { - set_member(pPlayer, m_rgAmmo, get_member(pPlayer, m_rgAmmo, iPrimaryAmmoIndex) + 1, iPrimaryAmmoIndex); - } + if (~iFlags & CWF_NotRefillable) { + new iClipSize = GetData(iHandler, CW_Data_ClipSize); + new iPrimaryAmmoIndex = GetData(iHandler, CW_Data_PrimaryAmmoType); + if (iClipSize == WEAPON_NOCLIP && iPrimaryAmmoIndex != -1) { + set_member(pPlayer, m_rgAmmo, get_member(pPlayer, m_rgAmmo, iPrimaryAmmoIndex) + 1, iPrimaryAmmoIndex); } + } } bool:HasWeapon(pPlayer, CW:iHandler) { - new iSlot = GetData(iHandler, CW_Data_SlotId); - - new pItem = get_member(pPlayer, m_rgpPlayerItems, iSlot); - while (pItem != -1) { - new pNextItem = get_member(pItem, m_pNext); - - if (CW_GetHandlerByEntity(pItem) == iHandler) { - return true; - } + new iSlot = GetData(iHandler, CW_Data_SlotId); + + new pItem = get_member(pPlayer, m_rgpPlayerItems, iSlot); + while (pItem != -1) { + new pNextItem = get_member(pItem, m_pNext); - pItem = pNextItem; + if (CW_GetHandlerByEntity(pItem) == iHandler) { + return true; } - return false; + pItem = pNextItem; + } + + return false; } UpdateWeaponList(pPlayer, CW:iHandler) { - if (is_user_bot(pPlayer)) { - return; - } - - new iWeaponId = GetData(iHandler, CW_Data_Id); - - static szName[64]; - GetStringData(iHandler, CW_Data_Name, szName, charsmax(szName)); - - new iPrimaryAmmoType = GetData(iHandler, CW_Data_PrimaryAmmoType); - new iPrimaryAmmoMaxCount = GetData(iHandler, CW_Data_PrimaryAmmoMaxAmount); - new iSecondaryAmmoType = GetData(iHandler, CW_Data_SecondaryAmmoType); - new iSecondaryAmmoMaxCount = GetData(iHandler, CW_Data_SecondaryAmmoMaxAmount); - new iSlotId = GetData(iHandler, CW_Data_SlotId); - new iPosition = GetData(iHandler, CW_Data_Position); - new iWeaponFlags = GetData(iHandler, CW_Data_WeaponFlags); - - emessage_begin(MSG_ONE, gmsgWeaponList, _, pPlayer); - ewrite_string(szName); - ewrite_byte(iPrimaryAmmoType); - ewrite_byte(iPrimaryAmmoMaxCount); - ewrite_byte(iSecondaryAmmoType); - ewrite_byte(iSecondaryAmmoMaxCount); - ewrite_byte(iSlotId); - ewrite_byte(iPosition); - ewrite_byte(iWeaponId); - ewrite_byte(iWeaponFlags); - emessage_end(); + if (is_user_bot(pPlayer)) { + return; + } + + new iWeaponId = GetData(iHandler, CW_Data_Id); + + static szName[64]; + GetStringData(iHandler, CW_Data_Name, szName, charsmax(szName)); + + new iPrimaryAmmoType = GetData(iHandler, CW_Data_PrimaryAmmoType); + new iPrimaryAmmoMaxCount = GetData(iHandler, CW_Data_PrimaryAmmoMaxAmount); + new iSecondaryAmmoType = GetData(iHandler, CW_Data_SecondaryAmmoType); + new iSecondaryAmmoMaxCount = GetData(iHandler, CW_Data_SecondaryAmmoMaxAmount); + new iSlotId = GetData(iHandler, CW_Data_SlotId); + new iPosition = GetData(iHandler, CW_Data_Position); + new iWeaponFlags = GetData(iHandler, CW_Data_WeaponFlags); + + emessage_begin(MSG_ONE, gmsgWeaponList, _, pPlayer); + ewrite_string(szName); + ewrite_byte(iPrimaryAmmoType); + ewrite_byte(iPrimaryAmmoMaxCount); + ewrite_byte(iSecondaryAmmoType); + ewrite_byte(iSecondaryAmmoMaxCount); + ewrite_byte(iSlotId); + ewrite_byte(iPosition); + ewrite_byte(iWeaponId); + ewrite_byte(iWeaponFlags); + emessage_end(); } ResetWeaponList(pPlayer, iWeaponId) { - if (is_user_bot(pPlayer)) { - return; - } - - message_begin(MSG_ONE, gmsgWeaponList, _, pPlayer); - write_string(g_weaponListDefaults[iWeaponId][WL_WeaponName]); - write_byte(g_weaponListDefaults[iWeaponId][WL_PrimaryAmmoType]); - write_byte(g_weaponListDefaults[iWeaponId][WL_PrimaryAmmoMaxAmount]); - write_byte(g_weaponListDefaults[iWeaponId][WL_SecondaryAmmoType]); - write_byte(g_weaponListDefaults[iWeaponId][WL_SecondaryAmmoMaxAmount]); - write_byte(g_weaponListDefaults[iWeaponId][WL_SlotId]); - write_byte(g_weaponListDefaults[iWeaponId][WL_NumberInSlot]); - write_byte(g_weaponListDefaults[iWeaponId][WL_WeaponId]); - write_byte(g_weaponListDefaults[iWeaponId][WL_Flags]); - message_end(); + if (is_user_bot(pPlayer)) { + return; + } + + message_begin(MSG_ONE, gmsgWeaponList, _, pPlayer); + write_string(g_weaponListDefaults[iWeaponId][WL_WeaponName]); + write_byte(g_weaponListDefaults[iWeaponId][WL_PrimaryAmmoType]); + write_byte(g_weaponListDefaults[iWeaponId][WL_PrimaryAmmoMaxAmount]); + write_byte(g_weaponListDefaults[iWeaponId][WL_SecondaryAmmoType]); + write_byte(g_weaponListDefaults[iWeaponId][WL_SecondaryAmmoMaxAmount]); + write_byte(g_weaponListDefaults[iWeaponId][WL_SlotId]); + write_byte(g_weaponListDefaults[iWeaponId][WL_NumberInSlot]); + write_byte(g_weaponListDefaults[iWeaponId][WL_WeaponId]); + write_byte(g_weaponListDefaults[iWeaponId][WL_Flags]); + message_end(); } SetWeaponPrediction(pPlayer, bool:bValue) { - if (is_user_bot(pPlayer)) { - return; - } + if (is_user_bot(pPlayer)) { + return; + } - new pszInfoBuffer = engfunc(EngFunc_GetInfoKeyBuffer, pPlayer); - engfunc(EngFunc_SetClientKeyValue, pPlayer, pszInfoBuffer, "cl_lw", bValue ? "1" : "0"); + new pszInfoBuffer = engfunc(EngFunc_GetInfoKeyBuffer, pPlayer); + engfunc(EngFunc_SetClientKeyValue, pPlayer, pszInfoBuffer, "cl_lw", bValue ? "1" : "0"); - for (new pSpectator = 1; pSpectator <= MaxClients; pSpectator++) { - if (pSpectator == pPlayer) { - continue; - } - - if (!is_user_connected(pSpectator)) { - continue; - } + for (new pSpectator = 1; pSpectator <= MaxClients; pSpectator++) { + if (pSpectator == pPlayer) { + continue; + } - if (pev(pSpectator, pev_iuser1) != OBS_IN_EYE) { - continue; - } + if (!is_user_connected(pSpectator)) { + continue; + } - if (pev(pSpectator, pev_iuser2) != pPlayer) { - continue; - } + if (pev(pSpectator, pev_iuser1) != OBS_IN_EYE) { + continue; + } - SetWeaponPrediction(pSpectator, false); + if (pev(pSpectator, pev_iuser2) != pPlayer) { + continue; } + + SetWeaponPrediction(pSpectator, false); + } } RemovePlayerItem(pItem) { - new pPlayer = GetPlayer(pItem); + new pPlayer = GetPlayer(pItem); - new iWeaponId = get_member(pItem, m_iId); + new iWeaponId = get_member(pItem, m_iId); - if (pItem == get_member(pPlayer, m_pActiveItem)) { - ExecuteHamB(Ham_Weapon_RetireWeapon, pItem); - } + if (pItem == get_member(pPlayer, m_pActiveItem)) { + ExecuteHamB(Ham_Weapon_RetireWeapon, pItem); + } - ExecuteHamB(Ham_RemovePlayerItem, pPlayer, pItem); - ExecuteHamB(Ham_Item_Kill, pItem); - set_pev(pPlayer, pev_weapons, pev(pPlayer, pev_weapons) & ~(1< 1.0) { - vecMidUp[2] = flMinZ + (flDiff / 2.0); + vecMidUp[2] = flMaxZ; + if (PointContents(vecMidUp) == CONTENTS_WATER) { + return flMaxZ; + } - if (PointContents(vecMidUp) == CONTENTS_WATER) { - flMinZ = vecMidUp[2]; - } else { - flMaxZ = vecMidUp[2]; - } + new Float:flDiff = flMaxZ - flMinZ; + while (flDiff > 1.0) { + vecMidUp[2] = flMinZ + (flDiff / 2.0); - flDiff = flMaxZ - flMinZ; + if (PointContents(vecMidUp) == CONTENTS_WATER) { + flMinZ = vecMidUp[2]; + } else { + flMaxZ = vecMidUp[2]; } - return vecMidUp[2]; + flDiff = flMaxZ - flMinZ; + } + + return vecMidUp[2]; } FindHullIntersection(const Float:vecSrc[3], &pTr, const Float:vecMins[3], const Float:vecMaxs[3], pEntity) { - new Float:flDistance = 8192.0; + new Float:flDistance = 8192.0; - static Float:rgvecMinsMaxs[2][3]; - for (new i = 0; i < 3; ++i) { - rgvecMinsMaxs[0][i] = vecMins[i]; - rgvecMinsMaxs[1][i] = vecMaxs[i]; - } + static Float:rgvecMinsMaxs[2][3]; + for (new i = 0; i < 3; ++i) { + rgvecMinsMaxs[0][i] = vecMins[i]; + rgvecMinsMaxs[1][i] = vecMaxs[i]; + } - static Float:vecHullEnd[3]; - get_tr2(pTr, TR_vecEndPos, vecHullEnd); + static Float:vecHullEnd[3]; + get_tr2(pTr, TR_vecEndPos, vecHullEnd); - for (new i = 0; i < 3; ++i) { - vecHullEnd[i] = vecSrc[i] + ((vecHullEnd[i] - vecSrc[i]) * 2.0); - } + for (new i = 0; i < 3; ++i) { + vecHullEnd[i] = vecSrc[i] + ((vecHullEnd[i] - vecSrc[i]) * 2.0); + } - new tmpTrace = create_tr2(); - engfunc(EngFunc_TraceLine, vecSrc, vecHullEnd, DONT_IGNORE_MONSTERS, pEntity, tmpTrace); + new tmpTrace = create_tr2(); + engfunc(EngFunc_TraceLine, vecSrc, vecHullEnd, DONT_IGNORE_MONSTERS, pEntity, tmpTrace); - new Float:flFraction; - get_tr2(tmpTrace, TR_flFraction, flFraction); + new Float:flFraction; + get_tr2(tmpTrace, TR_flFraction, flFraction); - if (flFraction < 1.0) { - free_tr2(pTr); - pTr = tmpTrace; - return; - } + if (flFraction < 1.0) { + free_tr2(pTr); + pTr = tmpTrace; + return; + } - static Float:vecEnd[3]; - for (new i = 0; i < 2; i++) { - for (new j = 0; j < 2; j++) { - for (new k = 0; k < 2; k++) { - vecEnd[0] = vecHullEnd[0] + rgvecMinsMaxs[i][0]; - vecEnd[1] = vecHullEnd[1] + rgvecMinsMaxs[j][1]; - vecEnd[2] = vecHullEnd[2] + rgvecMinsMaxs[k][2]; - - engfunc(EngFunc_TraceLine, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, pEntity, tmpTrace); - get_tr2(tmpTrace, TR_flFraction, flFraction); - - new Float:vecEndPos[3]; - get_tr2(tmpTrace, TR_vecEndPos, vecEndPos); - - if (flFraction < 1.0) { - new Float:flThisDistance = get_distance_f(vecEndPos, vecSrc); - if (flThisDistance < flDistance) { - free_tr2(pTr); - pTr = tmpTrace; - flDistance = flThisDistance; - } - } - } + static Float:vecEnd[3]; + for (new i = 0; i < 2; i++) { + for (new j = 0; j < 2; j++) { + for (new k = 0; k < 2; k++) { + vecEnd[0] = vecHullEnd[0] + rgvecMinsMaxs[i][0]; + vecEnd[1] = vecHullEnd[1] + rgvecMinsMaxs[j][1]; + vecEnd[2] = vecHullEnd[2] + rgvecMinsMaxs[k][2]; + + engfunc(EngFunc_TraceLine, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, pEntity, tmpTrace); + get_tr2(tmpTrace, TR_flFraction, flFraction); + + new Float:vecEndPos[3]; + get_tr2(tmpTrace, TR_vecEndPos, vecEndPos); + + if (flFraction < 1.0) { + new Float:flThisDistance = get_distance_f(vecEndPos, vecSrc); + if (flThisDistance < flDistance) { + free_tr2(pTr); + pTr = tmpTrace; + flDistance = flThisDistance; + } } + } } + } } _RadiusDamage(const Float:vecOrigin[3], iInflictor, pAttacker, Float:flDamage, Float:flRadius, iClassIgnore, iDamageBits) { - #pragma unused iClassIgnore + #pragma unused iClassIgnore - static Float:vecSrc[3]; - xs_vec_copy(vecOrigin, vecSrc); + static Float:vecSrc[3]; + xs_vec_copy(vecOrigin, vecSrc); - new Float:flFalloff = flRadius ? (flDamage / flRadius) : 1.0; - new bool:bInWater = (PointContents(vecSrc) == CONTENTS_WATER); + new Float:flFalloff = flRadius ? (flDamage / flRadius) : 1.0; + new bool:bInWater = (PointContents(vecSrc) == CONTENTS_WATER); - vecSrc[2] += 1.0; // in case grenade is lying on the ground + vecSrc[2] += 1.0; // in case grenade is lying on the ground - if (!pAttacker) { - pAttacker = iInflictor; - } + if (!pAttacker) { + pAttacker = iInflictor; + } - new pTr = create_tr2(); + new pTr = create_tr2(); - new pEntity; - new pPrevEntity; - while ((pEntity = engfunc(EngFunc_FindEntityInSphere, pEntity, vecSrc, flRadius)) != 0) { - if (pPrevEntity >= pEntity) { - break; - } + new pEntity; + new pPrevEntity; + while ((pEntity = engfunc(EngFunc_FindEntityInSphere, pEntity, vecSrc, flRadius)) != 0) { + if (pPrevEntity >= pEntity) { + break; + } - pPrevEntity = pEntity; + pPrevEntity = pEntity; - if (!pev_valid(pEntity)) { - continue; - } + if (!pev_valid(pEntity)) { + continue; + } - if (ExecuteHam(Ham_IsPlayer, pEntity) && !rg_is_player_can_takedamage(pEntity, pAttacker)) { - continue; - } + if (ExecuteHam(Ham_IsPlayer, pEntity) && !rg_is_player_can_takedamage(pEntity, pAttacker)) { + continue; + } - if (pev(pEntity, pev_takedamage) == DAMAGE_NO) { - continue; - } + if (pev(pEntity, pev_takedamage) == DAMAGE_NO) { + continue; + } - static szClassname[32]; - pev(pEntity, pev_classname, szClassname, charsmax(szClassname)); + static szClassname[32]; + pev(pEntity, pev_classname, szClassname, charsmax(szClassname)); - // UNDONE: this should check a damage mask, not an ignore - // if ( iClassIgnore != CLASS_NONE && pEntity->Classify() == iClassIgnore ) {// houndeyes don't hurt other houndeyes with their attack - // continue; - // } + // UNDONE: this should check a damage mask, not an ignore + // if ( iClassIgnore != CLASS_NONE && pEntity->Classify() == iClassIgnore ) {// houndeyes don't hurt other houndeyes with their attack + // continue; + // } - new iWaterLevel = pev(pEntity, pev_waterlevel); + new iWaterLevel = pev(pEntity, pev_waterlevel); - if (bInWater && iWaterLevel == 0) { - continue; - } + if (bInWater && iWaterLevel == 0) { + continue; + } - if (!bInWater && iWaterLevel == 3) { - continue; - } + if (!bInWater && iWaterLevel == 3) { + continue; + } - static Float:vecSpot[3]; - ExecuteHamB(Ham_BodyTarget, pEntity, vecSrc, vecSpot); - engfunc(EngFunc_TraceLine, vecSrc, vecSpot, IGNORE_MONSTERS, iInflictor, pTr); + static Float:vecSpot[3]; + ExecuteHamB(Ham_BodyTarget, pEntity, vecSrc, vecSpot); + engfunc(EngFunc_TraceLine, vecSrc, vecSpot, IGNORE_MONSTERS, iInflictor, pTr); - static Float:flFraction; - get_tr2(pTr, TR_flFraction, flFraction); + static Float:flFraction; + get_tr2(pTr, TR_flFraction, flFraction); - if (flFraction != 1.0 && get_tr2(pTr, TR_pHit) != pEntity) { - continue; - } + if (flFraction != 1.0 && get_tr2(pTr, TR_pHit) != pEntity) { + continue; + } - if (get_tr2(pTr, TR_StartSolid)) { - set_tr2(pTr, TR_vecEndPos, vecSrc); - set_tr2(pTr, TR_flFraction, 0.0); - flFraction = 0.0; - } + if (get_tr2(pTr, TR_StartSolid)) { + set_tr2(pTr, TR_vecEndPos, vecSrc); + set_tr2(pTr, TR_flFraction, 0.0); + flFraction = 0.0; + } - static Float:vecEnd[3]; - get_tr2(pTr, TR_vecEndPos, vecEnd); + static Float:vecEnd[3]; + get_tr2(pTr, TR_vecEndPos, vecEnd); - new Float:flAdjustedDamage = flDamage - (get_distance_f(vecSrc, vecEnd) * flFalloff); + new Float:flAdjustedDamage = flDamage - (get_distance_f(vecSrc, vecEnd) * flFalloff); - if (flAdjustedDamage < 0.0) { - flAdjustedDamage = 0.0; - } + if (flAdjustedDamage < 0.0) { + flAdjustedDamage = 0.0; + } - if (flFraction != 1.0) { - static Float:vecDir[3]; - xs_vec_sub(vecEnd, vecSrc, vecDir); - xs_vec_normalize(vecDir, vecDir); + if (flFraction != 1.0) { + static Float:vecDir[3]; + xs_vec_sub(vecEnd, vecSrc, vecDir); + xs_vec_normalize(vecDir, vecDir); - rg_multidmg_clear(); - ExecuteHamB(Ham_TraceAttack, pEntity, iInflictor, flAdjustedDamage, vecDir, pTr, iDamageBits); - rg_multidmg_apply(iInflictor, pAttacker); - } else { - ExecuteHamB(Ham_TakeDamage, pEntity, iInflictor, pAttacker, flAdjustedDamage, iDamageBits); - } + rg_multidmg_clear(); + ExecuteHamB(Ham_TraceAttack, pEntity, iInflictor, flAdjustedDamage, vecDir, pTr, iDamageBits); + rg_multidmg_apply(iInflictor, pAttacker); + } else { + ExecuteHamB(Ham_TakeDamage, pEntity, iInflictor, pAttacker, flAdjustedDamage, iDamageBits); } + } - free_tr2(pTr); + free_tr2(pTr); } MakeAimDir(pPlayer, Float:flDistance, Float:vecOut[3]) { - static Float:vecAngles[3]; - pev(pPlayer, pev_v_angle, vecAngles); - engfunc(EngFunc_MakeVectors, vecAngles); + static Float:vecAngles[3]; + pev(pPlayer, pev_v_angle, vecAngles); + engfunc(EngFunc_MakeVectors, vecAngles); - get_global_vector(GL_v_forward, vecOut); - xs_vec_mul_scalar(vecOut, flDistance, vecOut); + get_global_vector(GL_v_forward, vecOut); + xs_vec_mul_scalar(vecOut, flDistance, vecOut); } GetDecalIndex(pEntity) { - new iDecalIndex = ExecuteHamB(Ham_DamageDecal, pEntity, 0); - if (iDecalIndex < 0) { - return -1; - } + new iDecalIndex = ExecuteHamB(Ham_DamageDecal, pEntity, 0); + if (iDecalIndex < 0) { + return -1; + } - iDecalIndex = ArrayGetCell(g_irgDecals, iDecalIndex); + iDecalIndex = ArrayGetCell(g_irgDecals, iDecalIndex); - if (iDecalIndex == engfunc(EngFunc_DecalIndex, "{break1") - || iDecalIndex == engfunc(EngFunc_DecalIndex, "{break2") - || iDecalIndex == engfunc(EngFunc_DecalIndex, "{break3")) { - return engfunc(EngFunc_DecalIndex, "{bproof1"); - } + if (iDecalIndex == engfunc(EngFunc_DecalIndex, "{break1") + || iDecalIndex == engfunc(EngFunc_DecalIndex, "{break2") + || iDecalIndex == engfunc(EngFunc_DecalIndex, "{break3")) { + return engfunc(EngFunc_DecalIndex, "{bproof1"); + } - return iDecalIndex; + return iDecalIndex; } // ANCHOR: Storages InitStorages() { - g_rgWeapons[CW_Data_Name] = ArrayCreate(64, 1); - g_rgWeapons[CW_Data_Icon] = ArrayCreate(16, 1); + g_rgWeapons[CW_Data_Name] = ArrayCreate(64, 1); + g_rgWeapons[CW_Data_Icon] = ArrayCreate(16, 1); - for (new i = 0; i < _:CW_Data; ++i) { - if (!g_rgWeapons[CW_Data:i]) { - g_rgWeapons[CW_Data:i] = ArrayCreate(1, 1); - } + for (new i = 0; i < _:CW_Data; ++i) { + if (!g_rgWeapons[CW_Data:i]) { + g_rgWeapons[CW_Data:i] = ArrayCreate(1, 1); } + } - g_rgWeaponsMap = TrieCreate(); + g_rgWeaponsMap = TrieCreate(); - g_irgDecals = ArrayCreate(); + g_irgDecals = ArrayCreate(); } DestroyStorages() { - for (new CW:iHandler = CW:0; _:iHandler < g_iWeaponCount; ++iHandler) { - DestroyWeaponData(iHandler); - } + for (new CW:iHandler = CW:0; _:iHandler < g_iWeaponCount; ++iHandler) { + DestroyWeaponData(iHandler); + } - for (new i = 0; i < _:CW_Data; ++i) { - ArrayDestroy(Array:g_rgWeapons[CW_Data:i]); - } + for (new i = 0; i < _:CW_Data; ++i) { + ArrayDestroy(Array:g_rgWeapons[CW_Data:i]); + } - TrieDestroy(g_rgWeaponsMap); + TrieDestroy(g_rgWeaponsMap); - ArrayDestroy(g_irgDecals); + ArrayDestroy(g_irgDecals); } // ANCHOR: Weapon Data CW:CreateWeaponData(const szName[]) { - new CW:iHandler = CW:g_iWeaponCount; + new CW:iHandler = CW:g_iWeaponCount; - for (new iParam = 0; iParam < _:CW_Data; ++iParam) { - ArrayPushCell(Array:g_rgWeapons[CW_Data:iParam], 0); - } + for (new iParam = 0; iParam < _:CW_Data; ++iParam) { + ArrayPushCell(Array:g_rgWeapons[CW_Data:iParam], 0); + } - TrieSetCell(g_rgWeaponsMap, szName, iHandler); + TrieSetCell(g_rgWeaponsMap, szName, iHandler); - InitBindings(iHandler); + InitBindings(iHandler); - g_iWeaponCount++; + g_iWeaponCount++; - return iHandler; + return iHandler; } DestroyWeaponData(CW:iHandler) { - DestroyBindings(iHandler); + DestroyBindings(iHandler); } any:GetData(CW:iHandler, CW_Data:iParam) { - return ArrayGetCell(Array:g_rgWeapons[iParam], _:iHandler); + return ArrayGetCell(Array:g_rgWeapons[iParam], _:iHandler); } GetStringData(CW:iHandler, CW_Data:iParam, szOut[], iLen) { - ArrayGetString(Array:g_rgWeapons[iParam], _:iHandler, szOut, iLen); + ArrayGetString(Array:g_rgWeapons[iParam], _:iHandler, szOut, iLen); } SetData(CW:iHandler, CW_Data:iParam, any:value) { - ArraySetCell(Array:g_rgWeapons[iParam], _:iHandler, value); + ArraySetCell(Array:g_rgWeapons[iParam], _:iHandler, value); } SetStringData(CW:iHandler, CW_Data:iParam, const szValue[]) { - ArraySetString(Array:g_rgWeapons[iParam], _:iHandler, szValue); + ArraySetString(Array:g_rgWeapons[iParam], _:iHandler, szValue); } // ANCHOR: Weapon Bindings Array:InitBindings(CW:iHandler) { - new Array:irgBindings = ArrayCreate(Function, _:CW_Binding); - for (new i = 0; i < _:CW_Binding; ++i) { - new rgBinding[Function]= {-1, -1}; - ArrayPushArray(irgBindings, rgBinding); - } + new Array:irgBindings = ArrayCreate(Function, _:CW_Binding); + for (new i = 0; i < _:CW_Binding; ++i) { + new rgBinding[Function]= {-1, -1}; + ArrayPushArray(irgBindings, rgBinding); + } - SetData(iHandler, CW_Data_Bindings, irgBindings); + SetData(iHandler, CW_Data_Bindings, irgBindings); } DestroyBindings(CW:iHandler) { - new Array:irgBindings = GetData(iHandler, CW_Data_Bindings); - ArrayDestroy(irgBindings); + new Array:irgBindings = GetData(iHandler, CW_Data_Bindings); + ArrayDestroy(irgBindings); } Bind(CW:iHandler, iBinding, iPluginId, iFunctionid) { - new rgBinding[Function]; - rgBinding[Function_PluginId] = iPluginId; - rgBinding[Function_FunctionId] = iFunctionid; + new rgBinding[Function]; + rgBinding[Function_PluginId] = iPluginId; + rgBinding[Function_FunctionId] = iFunctionid; - new Array:irgBindings = GetData(iHandler, CW_Data_Bindings); - ArraySetArray(irgBindings, iBinding, rgBinding); + new Array:irgBindings = GetData(iHandler, CW_Data_Bindings); + ArraySetArray(irgBindings, iBinding, rgBinding); } GetBinding(CW:iHandler, CW_Binding:iBinding, &iPluginId, &iFunctionId) { - new Array:iszBindings = GetData(iHandler, CW_Data_Bindings); + new Array:iszBindings = GetData(iHandler, CW_Data_Bindings); - static rgBinding[Function]; - ArrayGetArray(iszBindings, _:iBinding, rgBinding, sizeof(rgBinding)); + static rgBinding[Function]; + ArrayGetArray(iszBindings, _:iBinding, rgBinding, sizeof(rgBinding)); - if (rgBinding[Function_PluginId] == -1) { - return false; - } + if (rgBinding[Function_PluginId] == -1) { + return false; + } - if (rgBinding[Function_FunctionId] == -1) { - return false; - } + if (rgBinding[Function_FunctionId] == -1) { + return false; + } - iPluginId = rgBinding[Function_PluginId]; - iFunctionId = rgBinding[Function_FunctionId]; + iPluginId = rgBinding[Function_PluginId]; + iFunctionId = rgBinding[Function_FunctionId]; - return true; + return true; } any:ExecuteBindedFunction(CW_Binding:iBinding, this, any:...) { - new CW:iHandler = GetHandlerByEntity(this); - - new iPluginId, iFunctionId; - if (!GetBinding(iHandler, iBinding, iPluginId, iFunctionId)) { - return PLUGIN_CONTINUE; - } + new CW:iHandler = GetHandlerByEntity(this); - if (callfunc_begin_i(iFunctionId, iPluginId) == 1) { - callfunc_push_int(this); - - if (iBinding == CWB_WeaponBoxModelUpdate) { - new pWeaponBox = getarg(2); - callfunc_push_int(pWeaponBox); - } + new iPluginId, iFunctionId; + if (!GetBinding(iHandler, iBinding, iPluginId, iFunctionId)) { + return PLUGIN_CONTINUE; + } - return callfunc_end(); + if (callfunc_begin_i(iFunctionId, iPluginId) == 1) { + callfunc_push_int(this); + + if (iBinding == CWB_WeaponBoxModelUpdate) { + new pWeaponBox = getarg(2); + callfunc_push_int(pWeaponBox); } - - return PLUGIN_CONTINUE; + + return callfunc_end(); + } + + return PLUGIN_CONTINUE; } // ANCHOR: Weapon Hooks InitWeaponHooks() { - for (new CW:iHandler = CW:0; _:iHandler < g_iWeaponCount; ++iHandler) { - new iWeaponId = GetData(iHandler, CW_Data_Id); - if (!g_bWeaponHooks[iWeaponId]) { - RegisterWeaponHooks(iWeaponId); - } + for (new CW:iHandler = CW:0; _:iHandler < g_iWeaponCount; ++iHandler) { + new iWeaponId = GetData(iHandler, CW_Data_Id); + if (!g_bWeaponHooks[iWeaponId]) { + RegisterWeaponHooks(iWeaponId); } + } } RegisterWeaponHooks(iWeaponId) { - new szClassname[32]; - get_weaponname(iWeaponId, szClassname, charsmax(szClassname)); - - RegisterHam(Ham_Item_PostFrame, szClassname, "OnItemPostFrame", .Post = 0); - RegisterHam(Ham_Item_ItemSlot, szClassname, "OnItemSlot", .Post = 0); - RegisterHam(Ham_Item_Holster, szClassname, "OnItemHolster", .Post = 0); - RegisterHam(Ham_Item_Deploy, szClassname, "OnItemDeploy", .Post = 0); - RegisterHam(Ham_CS_Item_GetMaxSpeed, szClassname, "OnCSItemGetMaxSpeed", .Post = 0); - // RegisterHam(Ham_Weapon_PlayEmptySound, szClassname, "OnWeaponPlayEmptySound", .Post = 0); - RegisterHam(Ham_Item_AddToPlayer, szClassname, "OnItemAddToPlayer_Post", .Post = 1); - RegisterHam(Ham_Spawn, szClassname, "OnSpawn_Post", .Post = 1); - RegisterHam(Ham_CS_Item_CanDrop, szClassname, "OnCanDrop"); - // RegisterHam(Ham_Item_GetItemInfo, szClassname, "OnItemGetItemInfo", .Post = 1); - RegisterHam(Ham_Weapon_PrimaryAttack, szClassname, "OnWeaponPrimaryAttack"); - RegisterHam(Ham_Weapon_SecondaryAttack, szClassname, "OnWeaponSecondaryAttack"); - RegisterHam(Ham_Weapon_Reload, szClassname, "OnWeaponReload"); - RegisterHam(Ham_Weapon_WeaponIdle, szClassname, "OnWeaponIdle"); - - g_bWeaponHooks[iWeaponId] = true; + new szClassname[32]; + get_weaponname(iWeaponId, szClassname, charsmax(szClassname)); + + RegisterHam(Ham_Item_PostFrame, szClassname, "OnItemPostFrame", .Post = 0); + RegisterHam(Ham_Item_ItemSlot, szClassname, "OnItemSlot", .Post = 0); + RegisterHam(Ham_Item_Holster, szClassname, "OnItemHolster", .Post = 0); + RegisterHam(Ham_Item_Deploy, szClassname, "OnItemDeploy", .Post = 0); + RegisterHam(Ham_CS_Item_GetMaxSpeed, szClassname, "OnCSItemGetMaxSpeed", .Post = 0); + // RegisterHam(Ham_Weapon_PlayEmptySound, szClassname, "OnWeaponPlayEmptySound", .Post = 0); + RegisterHam(Ham_Item_AddToPlayer, szClassname, "OnItemAddToPlayer_Post", .Post = 1); + RegisterHam(Ham_Spawn, szClassname, "OnSpawn_Post", .Post = 1); + RegisterHam(Ham_CS_Item_CanDrop, szClassname, "OnCanDrop"); + // RegisterHam(Ham_Item_GetItemInfo, szClassname, "OnItemGetItemInfo", .Post = 1); + RegisterHam(Ham_Weapon_PrimaryAttack, szClassname, "OnWeaponPrimaryAttack"); + RegisterHam(Ham_Weapon_SecondaryAttack, szClassname, "OnWeaponSecondaryAttack"); + RegisterHam(Ham_Weapon_Reload, szClassname, "OnWeaponReload"); + RegisterHam(Ham_Weapon_WeaponIdle, szClassname, "OnWeaponIdle"); + + g_bWeaponHooks[iWeaponId] = true; } // ANCHOR: Effects SparkShower(const Float:vecOrigin[3], const Float:vecAngles[3], iOwner) { - new pSparkShower = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "spark_shower")); - if (!pSparkShower) { - return; - } + new pSparkShower = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "spark_shower")); + if (!pSparkShower) { + return; + } - engfunc(EngFunc_SetOrigin, pSparkShower, vecOrigin); - set_pev(pSparkShower, pev_angles, vecAngles); - set_pev(pSparkShower, pev_owner, iOwner); - dllfunc(DLLFunc_Spawn, pSparkShower); + engfunc(EngFunc_SetOrigin, pSparkShower, vecOrigin); + set_pev(pSparkShower, pev_angles, vecAngles); + set_pev(pSparkShower, pev_owner, iOwner); + dllfunc(DLLFunc_Spawn, pSparkShower); } GrenadeExplosion(const Float:vecOrigin[3], Float:flDamage) { - new iModelIndex = PointContents(vecOrigin) != CONTENTS_WATER - ? engfunc(EngFunc_ModelIndex, "sprites/zerogxplode.spr") - : engfunc(EngFunc_ModelIndex, "sprites/WXplo1.spr"); + new iModelIndex = PointContents(vecOrigin) != CONTENTS_WATER + ? engfunc(EngFunc_ModelIndex, "sprites/zerogxplode.spr") + : engfunc(EngFunc_ModelIndex, "sprites/WXplo1.spr"); - new iScale = floatround((flDamage - 50.0) * 0.60); + new iScale = floatround((flDamage - 50.0) * 0.60); - if (iScale < 8) { - iScale = 8; - } + if (iScale < 8) { + iScale = 8; + } - if (iScale > 255) { - iScale = 255; - } + if (iScale > 255) { + iScale = 255; + } - engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecOrigin, 0); - write_byte(TE_EXPLOSION); - engfunc(EngFunc_WriteCoord, vecOrigin[0]); - engfunc(EngFunc_WriteCoord, vecOrigin[1]); - engfunc(EngFunc_WriteCoord, vecOrigin[2]); - write_short(iModelIndex); - write_byte(iScale); - write_byte(15); - write_byte(TE_EXPLFLAG_NONE); - message_end(); + engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecOrigin, 0); + write_byte(TE_EXPLOSION); + engfunc(EngFunc_WriteCoord, vecOrigin[0]); + engfunc(EngFunc_WriteCoord, vecOrigin[1]); + engfunc(EngFunc_WriteCoord, vecOrigin[2]); + write_short(iModelIndex); + write_byte(iScale); + write_byte(15); + write_byte(TE_EXPLFLAG_NONE); + message_end(); } GrenadeSmoke(pGrenade) { - static Float:vecOrigin[3]; - pev(pGrenade, pev_origin, vecOrigin); + static Float:vecOrigin[3]; + pev(pGrenade, pev_origin, vecOrigin); - static Float:flDamage; - pev(pGrenade, pev_dmg, flDamage); + static Float:flDamage; + pev(pGrenade, pev_dmg, flDamage); - if (PointContents(vecOrigin) == CONTENTS_WATER) { - static Float:vecSize[3] = {64.0, 64.0, 64.0}; + if (PointContents(vecOrigin) == CONTENTS_WATER) { + static Float:vecSize[3] = {64.0, 64.0, 64.0}; - static Float:vecMins[3]; - xs_vec_sub(vecOrigin, vecSize, vecMins); + static Float:vecMins[3]; + xs_vec_sub(vecOrigin, vecSize, vecMins); - static Float:vecMaxs[3]; - xs_vec_add(vecOrigin, vecSize, vecMaxs); + static Float:vecMaxs[3]; + xs_vec_add(vecOrigin, vecSize, vecMaxs); - Bubbles(vecMins, vecMaxs, 100); - } else { - new iModelIndex = engfunc(EngFunc_ModelIndex, "sprites/steam1.spr"); + Bubbles(vecMins, vecMaxs, 100); + } else { + new iModelIndex = engfunc(EngFunc_ModelIndex, "sprites/steam1.spr"); - new Float:flRadius = (flDamage - 50.0) * 0.80; - if (flRadius < 8.0) { - flRadius = 9.0; - } - - engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecOrigin, 0); - write_byte(TE_SMOKE); - engfunc(EngFunc_WriteCoord, vecOrigin[0]); - engfunc(EngFunc_WriteCoord, vecOrigin[1]); - engfunc(EngFunc_WriteCoord, vecOrigin[2]); - write_short(iModelIndex); - write_byte(floatround(flRadius)); // scale * 10 - write_byte(12); // framerate - message_end(); + new Float:flRadius = (flDamage - 50.0) * 0.80; + if (flRadius < 8.0) { + flRadius = 9.0; } + + engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecOrigin, 0); + write_byte(TE_SMOKE); + engfunc(EngFunc_WriteCoord, vecOrigin[0]); + engfunc(EngFunc_WriteCoord, vecOrigin[1]); + engfunc(EngFunc_WriteCoord, vecOrigin[2]); + write_short(iModelIndex); + write_byte(floatround(flRadius)); // scale * 10 + write_byte(12); // framerate + message_end(); + } } Bubbles(const Float:vecMins[3], const Float:vecMaxs[3], iCount) { - static Float:vecMid[3]; - for (new i = 0; i < 3; ++i) { - vecMid[i] = (vecMins[i] + vecMaxs[i]) * 0.5; - } - - new Float:flHeight = WaterLevel(vecMid, vecMid[2], vecMid[2] + 1024.0) - vecMins[2]; - new iModelIndex = engfunc(EngFunc_ModelIndex, "sprites/bubble.spr"); - - engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecMid, 0); - write_byte(TE_BUBBLES); - engfunc(EngFunc_WriteCoord, vecMins[0]); - engfunc(EngFunc_WriteCoord, vecMins[1]); - engfunc(EngFunc_WriteCoord, vecMins[2]); - engfunc(EngFunc_WriteCoord, vecMaxs[0]); - engfunc(EngFunc_WriteCoord, vecMaxs[1]); - engfunc(EngFunc_WriteCoord, vecMaxs[2]); - engfunc(EngFunc_WriteCoord, flHeight); // height - write_short(iModelIndex); - write_byte(iCount); // count - write_coord(8); // speed - message_end(); + static Float:vecMid[3]; + for (new i = 0; i < 3; ++i) { + vecMid[i] = (vecMins[i] + vecMaxs[i]) * 0.5; + } + + new Float:flHeight = WaterLevel(vecMid, vecMid[2], vecMid[2] + 1024.0) - vecMins[2]; + new iModelIndex = engfunc(EngFunc_ModelIndex, "sprites/bubble.spr"); + + engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecMid, 0); + write_byte(TE_BUBBLES); + engfunc(EngFunc_WriteCoord, vecMins[0]); + engfunc(EngFunc_WriteCoord, vecMins[1]); + engfunc(EngFunc_WriteCoord, vecMins[2]); + engfunc(EngFunc_WriteCoord, vecMaxs[0]); + engfunc(EngFunc_WriteCoord, vecMaxs[1]); + engfunc(EngFunc_WriteCoord, vecMaxs[2]); + engfunc(EngFunc_WriteCoord, flHeight); // height + write_short(iModelIndex); + write_byte(iCount); // count + write_coord(8); // speed + message_end(); } DecalTrace(pTr, iDecal) { - if (iDecal < 0) { - return; - } - - new Float:flFraction; - get_tr2(pTr, TR_flFraction, flFraction); - - if (flFraction == 1.0) { - return; - } - - // Only decal BSP models - new pHit = get_tr2(pTr, TR_pHit); - if (pHit != -1) { - if (pHit && !ExecuteHam(Ham_IsBSPModel, pHit)) { - return; - } - } else { - pHit = 0; - } - - new iMessage = TE_DECAL; - if (pHit != 0) { - if (iDecal > 255) { - iMessage = TE_DECALHIGH; - iDecal -= 256; - } - } else { - iMessage = TE_WORLDDECAL; - if (iDecal > 255) { - iMessage = TE_WORLDDECALHIGH; - iDecal -= 256; - } - } - - static Float:vecEndPos[3]; - get_tr2(pTr, TR_vecEndPos, vecEndPos); - - engfunc(EngFunc_MessageBegin, MSG_BROADCAST, SVC_TEMPENTITY, vecEndPos, 0); - write_byte(iMessage); - engfunc(EngFunc_WriteCoord, vecEndPos[0]); - engfunc(EngFunc_WriteCoord, vecEndPos[1]); - engfunc(EngFunc_WriteCoord, vecEndPos[2]); - write_byte(iDecal); - if (pHit) { - write_short(pHit); - } - message_end(); + if (iDecal < 0) { + return; + } + + new Float:flFraction; + get_tr2(pTr, TR_flFraction, flFraction); + + if (flFraction == 1.0) { + return; + } + + // Only decal BSP models + new pHit = get_tr2(pTr, TR_pHit); + if (pHit != -1) { + if (pHit && !ExecuteHam(Ham_IsBSPModel, pHit)) { + return; + } + } else { + pHit = 0; + } + + new iMessage = TE_DECAL; + if (pHit != 0) { + if (iDecal > 255) { + iMessage = TE_DECALHIGH; + iDecal -= 256; + } + } else { + iMessage = TE_WORLDDECAL; + if (iDecal > 255) { + iMessage = TE_WORLDDECALHIGH; + iDecal -= 256; + } + } + + static Float:vecEndPos[3]; + get_tr2(pTr, TR_vecEndPos, vecEndPos); + + engfunc(EngFunc_MessageBegin, MSG_BROADCAST, SVC_TEMPENTITY, vecEndPos, 0); + write_byte(iMessage); + engfunc(EngFunc_WriteCoord, vecEndPos[0]); + engfunc(EngFunc_WriteCoord, vecEndPos[1]); + engfunc(EngFunc_WriteCoord, vecEndPos[2]); + write_byte(iDecal); + if (pHit) { + write_short(pHit); + } + message_end(); } BulletSmoke(pTr) { - static Float:vecSrc[3]; - get_tr2(pTr, TR_vecEndPos, vecSrc); - - static Float:vecEnd[3]; - get_tr2(pTr, TR_vecPlaneNormal, vecEnd); - xs_vec_mul_scalar(vecEnd, 2.5, vecEnd); - xs_vec_add(vecSrc, vecEnd, vecEnd); - - static iModelIndex; - if (!iModelIndex) { - iModelIndex = engfunc(EngFunc_ModelIndex, WALL_PUFF_SPRITE); - } - - engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0); - write_byte(TE_EXPLOSION); - engfunc(EngFunc_WriteCoord, vecEnd[0]); - engfunc(EngFunc_WriteCoord, vecEnd[1]); - engfunc(EngFunc_WriteCoord, vecEnd[2] - 10.0); - write_short(iModelIndex); - write_byte(5); - write_byte(50); - write_byte(TE_EXPLFLAG_NODLIGHTS | TE_EXPLFLAG_NOSOUND | TE_EXPLFLAG_NOPARTICLES); - message_end(); + static Float:vecSrc[3]; + get_tr2(pTr, TR_vecEndPos, vecSrc); + + static Float:vecEnd[3]; + get_tr2(pTr, TR_vecPlaneNormal, vecEnd); + xs_vec_mul_scalar(vecEnd, 2.5, vecEnd); + xs_vec_add(vecSrc, vecEnd, vecEnd); + + static iModelIndex; + if (!iModelIndex) { + iModelIndex = engfunc(EngFunc_ModelIndex, WALL_PUFF_SPRITE); + } + + engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0); + write_byte(TE_EXPLOSION); + engfunc(EngFunc_WriteCoord, vecEnd[0]); + engfunc(EngFunc_WriteCoord, vecEnd[1]); + engfunc(EngFunc_WriteCoord, vecEnd[2] - 10.0); + write_short(iModelIndex); + write_byte(5); + write_byte(50); + write_byte(TE_EXPLFLAG_NODLIGHTS | TE_EXPLFLAG_NOSOUND | TE_EXPLFLAG_NOPARTICLES); + message_end(); } MakeDecal(pTr, pEntity, iDecalIndex, bool:bGunshotDecal = true) { - static vecOrigin[3]; - get_tr2(pTr, TR_vecEndPos, vecOrigin); + static vecOrigin[3]; + get_tr2(pTr, TR_vecEndPos, vecOrigin); - new pHit; - get_tr2(pTr, TR_pHit, pHit); - - if(pHit) { - emessage_begin(MSG_BROADCAST, SVC_TEMPENTITY); - ewrite_byte(TE_DECAL); - engfunc(EngFunc_WriteCoord, vecOrigin[0]); - engfunc(EngFunc_WriteCoord, vecOrigin[1]); - engfunc(EngFunc_WriteCoord, vecOrigin[2]); - ewrite_byte(iDecalIndex); - ewrite_short(pHit); - emessage_end(); - } else { - emessage_begin(MSG_BROADCAST, SVC_TEMPENTITY); - ewrite_byte(TE_WORLDDECAL); - engfunc(EngFunc_WriteCoord, vecOrigin[0]); - engfunc(EngFunc_WriteCoord, vecOrigin[1]); - engfunc(EngFunc_WriteCoord, vecOrigin[2]); - ewrite_byte(iDecalIndex); - emessage_end(); - } + new pHit; + get_tr2(pTr, TR_pHit, pHit); + + if(pHit) { + emessage_begin(MSG_BROADCAST, SVC_TEMPENTITY); + ewrite_byte(TE_DECAL); + engfunc(EngFunc_WriteCoord, vecOrigin[0]); + engfunc(EngFunc_WriteCoord, vecOrigin[1]); + engfunc(EngFunc_WriteCoord, vecOrigin[2]); + ewrite_byte(iDecalIndex); + ewrite_short(pHit); + emessage_end(); + } else { + emessage_begin(MSG_BROADCAST, SVC_TEMPENTITY); + ewrite_byte(TE_WORLDDECAL); + engfunc(EngFunc_WriteCoord, vecOrigin[0]); + engfunc(EngFunc_WriteCoord, vecOrigin[1]); + engfunc(EngFunc_WriteCoord, vecOrigin[2]); + ewrite_byte(iDecalIndex); + emessage_end(); + } - if (bGunshotDecal) { - message_begin(MSG_BROADCAST, SVC_TEMPENTITY); - write_byte(TE_GUNSHOTDECAL); - engfunc(EngFunc_WriteCoord, vecOrigin[0]); - engfunc(EngFunc_WriteCoord, vecOrigin[1]); - engfunc(EngFunc_WriteCoord, vecOrigin[2]); - write_short(pEntity); - write_byte(iDecalIndex); - message_end(); - } + if (bGunshotDecal) { + message_begin(MSG_BROADCAST, SVC_TEMPENTITY); + write_byte(TE_GUNSHOTDECAL); + engfunc(EngFunc_WriteCoord, vecOrigin[0]); + engfunc(EngFunc_WriteCoord, vecOrigin[1]); + engfunc(EngFunc_WriteCoord, vecOrigin[2]); + write_short(pEntity); + write_byte(iDecalIndex); + message_end(); + } } BubbleTrail(const Float:from[3], const Float:to[3], count) { - new Float:flHeight = WaterLevel(from, from[2], from[2] + 256); - flHeight = flHeight - from[2]; + new Float:flHeight = WaterLevel(from, from[2], from[2] + 256); + flHeight = flHeight - from[2]; + if (flHeight < 8) { + flHeight = WaterLevel(to, to[2], to[2] + 256.0); + flHeight = flHeight - to[2]; if (flHeight < 8) { - flHeight = WaterLevel(to, to[2], to[2] + 256.0); - flHeight = flHeight - to[2]; - if (flHeight < 8) { - return; - } - - // UNDONE: do a ploink sound - flHeight = flHeight + to[2] - from[2]; + return; } - if (count > 255) { - count = 255; - } + // UNDONE: do a ploink sound + flHeight = flHeight + to[2] - from[2]; + } - static g_sModelIndexBubbles; - if (!g_sModelIndexBubbles) { - g_sModelIndexBubbles = engfunc(EngFunc_ModelIndex, "sprites/bubble.spr"); - } + if (count > 255) { + count = 255; + } - engfunc(EngFunc_MessageBegin, MSG_BROADCAST, SVC_TEMPENTITY, from, 0); - write_byte(TE_BUBBLETRAIL); - engfunc(EngFunc_WriteCoord, from[0]); - engfunc(EngFunc_WriteCoord, from[1]); - engfunc(EngFunc_WriteCoord, from[2]); - engfunc(EngFunc_WriteCoord, to[0]); - engfunc(EngFunc_WriteCoord, to[1]); - engfunc(EngFunc_WriteCoord, to[2]); - engfunc(EngFunc_WriteCoord, flHeight); - write_short(g_sModelIndexBubbles); - write_byte(count); - write_coord(8); - message_end(); + static g_sModelIndexBubbles; + if (!g_sModelIndexBubbles) { + g_sModelIndexBubbles = engfunc(EngFunc_ModelIndex, "sprites/bubble.spr"); + } + + engfunc(EngFunc_MessageBegin, MSG_BROADCAST, SVC_TEMPENTITY, from, 0); + write_byte(TE_BUBBLETRAIL); + engfunc(EngFunc_WriteCoord, from[0]); + engfunc(EngFunc_WriteCoord, from[1]); + engfunc(EngFunc_WriteCoord, from[2]); + engfunc(EngFunc_WriteCoord, to[0]); + engfunc(EngFunc_WriteCoord, to[1]); + engfunc(EngFunc_WriteCoord, to[2]); + engfunc(EngFunc_WriteCoord, flHeight); + write_short(g_sModelIndexBubbles); + write_byte(count); + write_coord(8); + message_end(); } ExplosionDecalTrace(pTr) { - switch (random(3)) { - case 0: { - DecalTrace(pTr, engfunc(EngFunc_DecalIndex, "{scorch1")); - } - case 1: { - DecalTrace(pTr, engfunc(EngFunc_DecalIndex, "{scorch2")); - } - case 2: { - DecalTrace(pTr, engfunc(EngFunc_DecalIndex, "{scorch3")); - } + switch (random(3)) { + case 0: { + DecalTrace(pTr, engfunc(EngFunc_DecalIndex, "{scorch1")); } + case 1: { + DecalTrace(pTr, engfunc(EngFunc_DecalIndex, "{scorch2")); + } + case 2: { + DecalTrace(pTr, engfunc(EngFunc_DecalIndex, "{scorch3")); + } + } } DebrisSound(pEntity) { - switch (random(3)) { - case 0: { - emit_sound(pEntity, CHAN_VOICE, "weapons/debris1.wav", 0.55, ATTN_NORM, 0, PITCH_NORM); - } - case 1: { - emit_sound(pEntity, CHAN_VOICE, "weapons/debris2.wav", 0.55, ATTN_NORM, 0, PITCH_NORM); - } - case 2: { - emit_sound(pEntity, CHAN_VOICE, "weapons/debris3.wav", 0.55, ATTN_NORM, 0, PITCH_NORM); - } + switch (random(3)) { + case 0: { + emit_sound(pEntity, CHAN_VOICE, "weapons/debris1.wav", 0.55, ATTN_NORM, 0, PITCH_NORM); } -} - -bool:EjectWeaponBrass(this, iModelIndex, iSoundType) { - new pPlayer = GetPlayer(this); - - if (!iModelIndex) { - return false; + case 1: { + emit_sound(pEntity, CHAN_VOICE, "weapons/debris2.wav", 0.55, ATTN_NORM, 0, PITCH_NORM); } - - static Float:vecViewOfs[3]; - pev(pPlayer, pev_view_ofs, vecViewOfs); - - static Float:vecAngles[3]; - pev(pPlayer, pev_angles, vecAngles); - - static Float:vecUp[3]; - angle_vector(vecAngles, ANGLEVECTOR_UP, vecUp); - - static Float:vecForward[3]; - angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecForward); - - static Float:vecRight[3]; - angle_vector(vecAngles, ANGLEVECTOR_RIGHT, vecRight); - - static Float:vecOrigin[3]; - pev(pPlayer, pev_origin, vecOrigin); - - for (new i = 0; i < 3; ++i) { - vecOrigin[i] = vecOrigin[i] + vecViewOfs[i] + (vecUp[i] * -9.0) + (vecForward[i] * 16.0); - } - - static Float:vecVelocity[3]; - pev(pPlayer, pev_velocity, vecVelocity); - - for (new i = 0; i < 3; ++i) { - vecVelocity[i] = vecVelocity[i] + (vecRight[i] * random_float(50.0, 70.0)) + (vecUp[i] * random_float(100.0, 150.0)) + (vecForward[i] * 25.0); + case 2: { + emit_sound(pEntity, CHAN_VOICE, "weapons/debris3.wav", 0.55, ATTN_NORM, 0, PITCH_NORM); } + } +} - engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, vecOrigin, 0); - write_byte(TE_MODEL); - engfunc(EngFunc_WriteCoord, vecOrigin[0]); - engfunc(EngFunc_WriteCoord, vecOrigin[1]); - engfunc(EngFunc_WriteCoord, vecOrigin[2]); - engfunc(EngFunc_WriteCoord, vecVelocity[0]); - engfunc(EngFunc_WriteCoord, vecVelocity[1]); - engfunc(EngFunc_WriteCoord, vecVelocity[2]); - write_angle(floatround(vecAngles[1])); - write_short(iModelIndex); - write_byte(iSoundType); - write_byte(25); - message_end(); +bool:EjectWeaponBrass(this, iModelIndex, iSoundType) { + new pPlayer = GetPlayer(this); - return true; + if (!iModelIndex) { + return false; + } + + static Float:vecViewOfs[3]; + pev(pPlayer, pev_view_ofs, vecViewOfs); + + static Float:vecAngles[3]; + pev(pPlayer, pev_angles, vecAngles); + + static Float:vecUp[3]; + angle_vector(vecAngles, ANGLEVECTOR_UP, vecUp); + + static Float:vecForward[3]; + angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecForward); + + static Float:vecRight[3]; + angle_vector(vecAngles, ANGLEVECTOR_RIGHT, vecRight); + + static Float:vecOrigin[3]; + pev(pPlayer, pev_origin, vecOrigin); + + for (new i = 0; i < 3; ++i) { + vecOrigin[i] = vecOrigin[i] + vecViewOfs[i] + (vecUp[i] * -9.0) + (vecForward[i] * 16.0); + } + + static Float:vecVelocity[3]; + pev(pPlayer, pev_velocity, vecVelocity); + + for (new i = 0; i < 3; ++i) { + vecVelocity[i] = vecVelocity[i] + (vecRight[i] * random_float(50.0, 70.0)) + (vecUp[i] * random_float(100.0, 150.0)) + (vecForward[i] * 25.0); + } + + engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, vecOrigin, 0); + write_byte(TE_MODEL); + engfunc(EngFunc_WriteCoord, vecOrigin[0]); + engfunc(EngFunc_WriteCoord, vecOrigin[1]); + engfunc(EngFunc_WriteCoord, vecOrigin[2]); + engfunc(EngFunc_WriteCoord, vecVelocity[0]); + engfunc(EngFunc_WriteCoord, vecVelocity[1]); + engfunc(EngFunc_WriteCoord, vecVelocity[2]); + write_angle(floatround(vecAngles[1])); + write_short(iModelIndex); + write_byte(iSoundType); + write_byte(25); + message_end(); + + return true; } // ANCHOR: Random new const seed_table[256] = { - 28985, 27138, 26457, 9451, 17764, 10909, 28790, 8716, 6361, 4853, 17798, 21977, 19643, 20662, 10834, 20103, - 27067, 28634, 18623, 25849, 8576, 26234, 23887, 18228, 32587, 4836, 3306, 1811, 3035, 24559, 18399, 315, - 26766, 907, 24102, 12370, 9674, 2972, 10472, 16492, 22683, 11529, 27968, 30406, 13213, 2319, 23620, 16823, - 10013, 23772, 21567, 1251, 19579, 20313, 18241, 30130, 8402, 20807, 27354, 7169, 21211, 17293, 5410, 19223, - 10255, 22480, 27388, 9946, 15628, 24389, 17308, 2370, 9530, 31683, 25927, 23567, 11694, 26397, 32602, 15031, - 18255, 17582, 1422, 28835, 23607, 12597, 20602, 10138, 5212, 1252, 10074, 23166, 19823, 31667, 5902, 24630, - 18948, 14330, 14950, 8939, 23540, 21311, 22428, 22391, 3583, 29004, 30498, 18714, 4278, 2437, 22430, 3439, - 28313, 23161, 25396, 13471, 19324, 15287, 2563, 18901, 13103, 16867, 9714, 14322, 15197, 26889, 19372, 26241, - 31925, 14640, 11497, 8941, 10056, 6451, 28656, 10737, 13874, 17356, 8281, 25937, 1661, 4850, 7448, 12744, - 21826, 5477, 10167, 16705, 26897, 8839, 30947, 27978, 27283, 24685, 32298, 3525, 12398, 28726, 9475, 10208, - 617, 13467, 22287, 2376, 6097, 26312, 2974, 9114, 21787, 28010, 4725, 15387, 3274, 10762, 31695, 17320, - 18324, 12441, 16801, 27376, 22464, 7500, 5666, 18144, 15314, 31914, 31627, 6495, 5226, 31203, 2331, 4668, - 12650, 18275, 351, 7268, 31319, 30119, 7600, 2905, 13826, 11343, 13053, 15583, 30055, 31093, 5067, 761, - 9685, 11070, 21369, 27155, 3663, 26542, 20169, 12161, 15411, 30401, 7580, 31784, 8985, 29367, 20989, 14203, - 29694, 21167, 10337, 1706, 28578, 887, 3373, 19477, 14382, 675, 7033, 15111, 26138, 12252, 30996, 21409, - 25678, 18555, 13256, 23316, 22407, 16727, 991, 9236, 5373, 29402, 6117, 15241, 27715, 19291, 19888, 19847 + 28985, 27138, 26457, 9451, 17764, 10909, 28790, 8716, 6361, 4853, 17798, 21977, 19643, 20662, 10834, 20103, + 27067, 28634, 18623, 25849, 8576, 26234, 23887, 18228, 32587, 4836, 3306, 1811, 3035, 24559, 18399, 315, + 26766, 907, 24102, 12370, 9674, 2972, 10472, 16492, 22683, 11529, 27968, 30406, 13213, 2319, 23620, 16823, + 10013, 23772, 21567, 1251, 19579, 20313, 18241, 30130, 8402, 20807, 27354, 7169, 21211, 17293, 5410, 19223, + 10255, 22480, 27388, 9946, 15628, 24389, 17308, 2370, 9530, 31683, 25927, 23567, 11694, 26397, 32602, 15031, + 18255, 17582, 1422, 28835, 23607, 12597, 20602, 10138, 5212, 1252, 10074, 23166, 19823, 31667, 5902, 24630, + 18948, 14330, 14950, 8939, 23540, 21311, 22428, 22391, 3583, 29004, 30498, 18714, 4278, 2437, 22430, 3439, + 28313, 23161, 25396, 13471, 19324, 15287, 2563, 18901, 13103, 16867, 9714, 14322, 15197, 26889, 19372, 26241, + 31925, 14640, 11497, 8941, 10056, 6451, 28656, 10737, 13874, 17356, 8281, 25937, 1661, 4850, 7448, 12744, + 21826, 5477, 10167, 16705, 26897, 8839, 30947, 27978, 27283, 24685, 32298, 3525, 12398, 28726, 9475, 10208, + 617, 13467, 22287, 2376, 6097, 26312, 2974, 9114, 21787, 28010, 4725, 15387, 3274, 10762, 31695, 17320, + 18324, 12441, 16801, 27376, 22464, 7500, 5666, 18144, 15314, 31914, 31627, 6495, 5226, 31203, 2331, 4668, + 12650, 18275, 351, 7268, 31319, 30119, 7600, 2905, 13826, 11343, 13053, 15583, 30055, 31093, 5067, 761, + 9685, 11070, 21369, 27155, 3663, 26542, 20169, 12161, 15411, 30401, 7580, 31784, 8985, 29367, 20989, 14203, + 29694, 21167, 10337, 1706, 28578, 887, 3373, 19477, 14382, 675, 7033, 15111, 26138, 12252, 30996, 21409, + 25678, 18555, 13256, 23316, 22407, 16727, 991, 9236, 5373, 29402, 6117, 15241, 27715, 19291, 19888, 19847 }; Float:SharedRandomFloat(seed, Float:low, Float:high) { - new Float:range = high - low; - if (!range) { - return low; - } + new Float:range = high - low; + if (!range) { + return low; + } - new glSeed = U_Srand(seed + floatround(low) + floatround(high)); - U_Random(glSeed); - U_Random(glSeed); + new glSeed = U_Srand(seed + floatround(low) + floatround(high)); + U_Random(glSeed); + U_Random(glSeed); - new tensixrand = U_Random(glSeed) & 65535; - new Float:offset = float(tensixrand) / 65536.0; + new tensixrand = U_Random(glSeed) & 65535; + new Float:offset = float(tensixrand) / 65536.0; - return (low + offset * range ); + return (low + offset * range ); } -U_Random(&glSeed) { - glSeed *= 69069; - glSeed += seed_table[glSeed & 0xff]; +U_Random(&glSeed) { + glSeed *= 69069; + glSeed += seed_table[glSeed & 0xff]; - return (++glSeed & 0x0fffffff); + return (++glSeed & 0x0fffffff); } U_Srand(seed) { - return seed_table[seed & 0xff]; + return seed_table[seed & 0xff]; } // FireEvent(pTr, const szSnd[], const szShellModel[]) { -// static Float:flFraction; -// get_tr2(pTr, TR_flFraction, flFraction); +// static Float:flFraction; +// get_tr2(pTr, TR_flFraction, flFraction); -// new pHit = get_tr2(pTr, TR_pHit); +// new pHit = get_tr2(pTr, TR_pHit); -// if (flFraction != 1.0) { -// // Native_PlaySoundAtPosition( $origin = $trace_endpos, $sound = weapons/bullet_hit1.wav ); -// // Native_ImpactParticles( $origin = $trace_endpos ); -// // Native_PlaceDecal( $origin = $trace_endpos, $decal = "{shot2", $trace_entity ); +// if (flFraction != 1.0) { +// // Native_PlaySoundAtPosition( $origin = $trace_endpos, $sound = weapons/bullet_hit1.wav ); +// // Native_ImpactParticles( $origin = $trace_endpos ); +// // Native_PlaceDecal( $origin = $trace_endpos, $decal = "{shot2", $trace_entity ); -// new iDecalIndex = random_num(get_decal_index("{shot1"), get_decal_index("{shot5") + 1); -// MakeDecal(pTr, pHit, iDecalIndex); -// } +// new iDecalIndex = random_num(get_decal_index("{shot1"), get_decal_index("{shot5") + 1); +// MakeDecal(pTr, pHit, iDecalIndex); +// } // } // BeamPoints(const Float:vecStart[3], const Float:vecEnd[3], const color[3]) { -// message_begin(MSG_BROADCAST ,SVC_TEMPENTITY); -// write_byte(TE_BEAMPOINTS); -// write_coord(floatround(vecStart[0])); // start position -// write_coord(floatround(vecStart[1])); -// write_coord(floatround(vecStart[2])); -// write_coord(floatround(vecEnd[0])); // end position -// write_coord(floatround(vecEnd[1])); -// write_coord(floatround(vecEnd[2])); -// write_short(engfunc(EngFunc_ModelIndex, "sprites/laserbeam.spr")); // sprite index -// write_byte(0); // starting frame -// write_byte(10); // frame rate in 0.1's -// write_byte(30); // life in 0.1's -// write_byte(2); // line width in 0.1's -// write_byte(1); // noise amplitude in 0.01's -// write_byte(color[0]); // Red -// write_byte(color[1]); // Green -// write_byte(color[2]); // Blue -// write_byte(127); // brightness -// write_byte(10); // scroll speed in 0.1's -// message_end(); +// message_begin(MSG_BROADCAST ,SVC_TEMPENTITY); +// write_byte(TE_BEAMPOINTS); +// write_coord(floatround(vecStart[0])); // start position +// write_coord(floatround(vecStart[1])); +// write_coord(floatround(vecStart[2])); +// write_coord(floatround(vecEnd[0])); // end position +// write_coord(floatround(vecEnd[1])); +// write_coord(floatround(vecEnd[2])); +// write_short(engfunc(EngFunc_ModelIndex, "sprites/laserbeam.spr")); // sprite index +// write_byte(0); // starting frame +// write_byte(10); // frame rate in 0.1's +// write_byte(30); // life in 0.1's +// write_byte(2); // line width in 0.1's +// write_byte(1); // noise amplitude in 0.01's +// write_byte(color[0]); // Red +// write_byte(color[1]); // Green +// write_byte(color[2]); // Blue +// write_byte(127); // brightness +// write_byte(10); // scroll speed in 0.1's +// message_end(); // } diff --git a/api/navsystem/api_navsystem.sma b/api/navsystem/api_navsystem.sma index ea49450..95fd5ed 100644 --- a/api/navsystem/api_navsystem.sma +++ b/api/navsystem/api_navsystem.sma @@ -1,17 +1,17 @@ /* - Nav system implementation based on ReGameDLL implementation. + Nav system implementation based on ReGameDLL implementation. - Nav File Parser - https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_file.h - https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_file.cpp + Nav File Parser + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_file.h + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_file.cpp - Nav Area Members and Methods - https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_area.h - https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_area.cpp + Nav Area Members and Methods + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_area.h + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_area.cpp - Nav Path Members and Methods - https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_path.h - https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_path.cpp + Nav Path Members and Methods + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_path.h + https://github.com/s1lentq/ReGameDLL_CS/blob/master/regamedll/game_shared/bot/nav_path.cpp */ #pragma semicolon 1 @@ -32,102 +32,102 @@ enum PathSegment { Struct:PathSegment_Area, NavTraverseType:PathSegment_How, Flo enum NavPath { Array:NavPath_Segments, NavPath_SegmentCount }; enum ApproachInfo { - ApproachInfo_Here[NavConnect], // the approach area - ApproachInfo_Prev[NavConnect], // the area just before the approach area on the path - NavTraverseType:ApproachInfo_PrevToHereHow, - ApproachInfo_Next[NavConnect], // the area just after the approach area on the path - NavTraverseType:ApproachInfo_HereToNextHow + ApproachInfo_Here[NavConnect], // the approach area + ApproachInfo_Prev[NavConnect], // the area just before the approach area on the path + NavTraverseType:ApproachInfo_PrevToHereHow, + ApproachInfo_Next[NavConnect], // the area just after the approach area on the path + NavTraverseType:ApproachInfo_HereToNextHow }; enum SpotEncounter { - SpotEncounter_From[NavConnect], - NavDirType:SpotEncounter_FromDir, - SpotEncounter_To[NavConnect], - NavDirType:SpotEncounter_ToDir, - SpotEncounter_Path[Ray], // the path segment - Array:SpotEncounter_SpotList // Array[SpotOrder] // list of spots to look at, in order of occurrence + SpotEncounter_From[NavConnect], + NavDirType:SpotEncounter_FromDir, + SpotEncounter_To[NavConnect], + NavDirType:SpotEncounter_ToDir, + SpotEncounter_Path[Ray], // the path segment + Array:SpotEncounter_SpotList // Array[SpotOrder] // list of spots to look at, in order of occurrence }; enum NavAreaGrid { - Float:NavAreaGrid_CellSize, - Array:NavAreaGrid_Grid, - NavAreaGrid_GridSizeX, - NavAreaGrid_GridSizeY, - Float:NavAreaGrid_MinX, - Float:NavAreaGrid_MinY, - NavAreaGrid_AreaCount, - Struct:NavAreaGrid_HashTable[HASH_TABLE_SIZE] + Float:NavAreaGrid_CellSize, + Array:NavAreaGrid_Grid, + NavAreaGrid_GridSizeX, + NavAreaGrid_GridSizeY, + Float:NavAreaGrid_MinX, + Float:NavAreaGrid_MinY, + NavAreaGrid_AreaCount, + Struct:NavAreaGrid_HashTable[HASH_TABLE_SIZE] }; enum NavArea { - NavArea_Id, // unique area ID - NavArea_Extent[Extent], // extents of area in world coords (NOTE: lo[2] is not necessarily the minimum Z, but corresponds to Z at point (lo[0], lo[1]), etc - Float:NavArea_Center[3], // centroid of area - NavAttributeType:NavArea_AttributeFlags, // set of attribute bit flags (see NavAttributeType) + NavArea_Id, // unique area ID + NavArea_Extent[Extent], // extents of area in world coords (NOTE: lo[2] is not necessarily the minimum Z, but corresponds to Z at point (lo[0], lo[1]), etc + Float:NavArea_Center[3], // centroid of area + NavAttributeType:NavArea_AttributeFlags, // set of attribute bit flags (see NavAttributeType) - // height of the implicit corners - Float:NavArea_NeZ, - Float:NavArea_SwZ, + // height of the implicit corners + Float:NavArea_NeZ, + Float:NavArea_SwZ, - // encounter spots - Array:NavArea_SpotEncounterList, // Array[SpotEncounter] // list of possible ways to move thru this area, and the spots to look at as we do + // encounter spots + Array:NavArea_SpotEncounterList, // Array[SpotEncounter] // list of possible ways to move thru this area, and the spots to look at as we do - // approach areas - Array:NavArea_Approach, // Array[ApproachInfo] + // approach areas + Array:NavArea_Approach, // Array[ApproachInfo] - // connections to adjacent areas - Array:NavArea_Connect[NUM_DIRECTIONS], // a list of adjacent areas for each direction + // connections to adjacent areas + Array:NavArea_Connect[NUM_DIRECTIONS], // a list of adjacent areas for each direction - Array:NavArea_OverlapList, // list of areas that overlap this area + Array:NavArea_OverlapList, // list of areas that overlap this area - // connections for grid hash table - Struct:NavArea_PrevHash, - Struct:NavArea_NextHash, + // connections for grid hash table + Struct:NavArea_PrevHash, + Struct:NavArea_NextHash, - Struct:NavArea_NextOpen, // only valid if m_openMarker == m_masterMarker - Struct:NavArea_PrevOpen, - NavArea_OpenMarker, // if this equals the current marker value, we are on the open list + Struct:NavArea_NextOpen, // only valid if m_openMarker == m_masterMarker + Struct:NavArea_PrevOpen, + NavArea_OpenMarker, // if this equals the current marker value, we are on the open list - // A* pathfinding algorithm - NavArea_Marker, // used to flag the area as visited - Struct:NavArea_Parent, // the area just prior to this on in the search path - NavTraverseType:NavArea_ParentHow, // how we get from parent to us - Float:NavArea_TotalCost, // the distance so far plus an estimate of the distance left - Float:NavArea_CostSoFar, // distance travelled so far + // A* pathfinding algorithm + NavArea_Marker, // used to flag the area as visited + Struct:NavArea_Parent, // the area just prior to this on in the search path + NavTraverseType:NavArea_ParentHow, // how we get from parent to us + Float:NavArea_TotalCost, // the distance so far plus an estimate of the distance left + Float:NavArea_CostSoFar, // distance travelled so far }; enum BuildPathTask { - Float:BuildPathTask_StartPos[3], - Float:BuildPathTask_GoalPos[3], - Struct:BuildPathTask_StartArea, - Struct:BuildPathTask_GoalArea, - Struct:BuildPathTask_ClosestArea, - BuildPathTask_CostFuncId, - BuildPathTask_CostFuncPluginId, - BuildPathTask_CbFuncId, - BuildPathTask_CbFuncPluginId, - BuildPathTask_IgnoreEntity, - BuildPathTask_UserToken, - Struct:BuildPathTask_Path, - bool:BuildPathTask_IsSuccessed, - bool:BuildPathTask_IsTerminated + Float:BuildPathTask_StartPos[3], + Float:BuildPathTask_GoalPos[3], + Struct:BuildPathTask_StartArea, + Struct:BuildPathTask_GoalArea, + Struct:BuildPathTask_ClosestArea, + BuildPathTask_CostFuncId, + BuildPathTask_CostFuncPluginId, + BuildPathTask_CbFuncId, + BuildPathTask_CbFuncPluginId, + BuildPathTask_IgnoreEntity, + BuildPathTask_UserToken, + Struct:BuildPathTask_Path, + bool:BuildPathTask_IsSuccessed, + bool:BuildPathTask_IsTerminated }; enum BuildPathJob { - Struct:BuildPathJob_Task, - Struct:BuildPathJob_StartArea, - Struct:BuildPathJob_GoalArea, - Float:BuildPathJob_ActualGoalPos[3], - Float:BuildPathJob_GoalPos[3], - Float:BuildPathJob_ClosestAreaDist, - Struct:BuildPathJob_ClosestArea, - BuildPathJob_CostFuncId, - BuildPathJob_CostFuncPluginId, - bool:BuildPathJob_Successed, - bool:BuildPathJob_Finished, - bool:BuildPathJob_Terminated, - BuildPathJob_MaxIterations, - BuildPathJob_IgnoreEntity + Struct:BuildPathJob_Task, + Struct:BuildPathJob_StartArea, + Struct:BuildPathJob_GoalArea, + Float:BuildPathJob_ActualGoalPos[3], + Float:BuildPathJob_GoalPos[3], + Float:BuildPathJob_ClosestAreaDist, + Struct:BuildPathJob_ClosestArea, + BuildPathJob_CostFuncId, + BuildPathJob_CostFuncPluginId, + bool:BuildPathJob_Successed, + bool:BuildPathJob_Finished, + bool:BuildPathJob_Terminated, + BuildPathJob_MaxIterations, + BuildPathJob_IgnoreEntity }; const Float:GenerationStepSize = 25.0; @@ -155,2640 +155,2640 @@ new bool:g_bPrecached = false; new g_iArrowModelIndex; public plugin_precache() { - g_pTrace = create_tr2(); - g_iArrowModelIndex = precache_model("sprites/arrow1.spr"); + g_pTrace = create_tr2(); + g_iArrowModelIndex = precache_model("sprites/arrow1.spr"); } public plugin_init() { - register_plugin("Nav System", "0.1.0", "Hedgehog Fog"); + register_plugin("Nav System", "0.1.0", "Hedgehog Fog"); - g_pCvarMaxIterationsPerFrame = register_cvar("nav_max_iterations_per_frame", "100"); - g_pCvarDebug = register_cvar("nav_debug", "0"); + g_pCvarMaxIterationsPerFrame = register_cvar("nav_max_iterations_per_frame", "100"); + g_pCvarDebug = register_cvar("nav_debug", "0"); } public plugin_end() { - if (g_irgNavAreaList != Invalid_Array) { - new iNavAreaListSize = ArraySize(g_irgNavAreaList); - - for (new i = 0; i < iNavAreaListSize; ++i) { - new Struct:sNavArea = ArrayGetCell(g_irgNavAreaList, i); - @NavArea_Destroy(sNavArea); - } + if (g_irgNavAreaList != Invalid_Array) { + new iNavAreaListSize = ArraySize(g_irgNavAreaList); - ArrayDestroy(g_irgNavAreaList); + for (new i = 0; i < iNavAreaListSize; ++i) { + new Struct:sNavArea = ArrayGetCell(g_irgNavAreaList, i); + @NavArea_Destroy(sNavArea); } - NavAreaGrid_Free(); + ArrayDestroy(g_irgNavAreaList); + } - if (g_irgBuildPathTasks != Invalid_Array) { - ArrayDestroy(g_irgBuildPathTasks); - } + NavAreaGrid_Free(); + + if (g_irgBuildPathTasks != Invalid_Array) { + ArrayDestroy(g_irgBuildPathTasks); + } - free_tr2(g_pTrace); + free_tr2(g_pTrace); } public plugin_natives() { - register_library("api_navsystem"); - - register_native("Nav_Precache", "Native_Precache"); - - register_native("Nav_GetAreaCount", "Native_GetAreaCount"); - register_native("Nav_GetArea", "Native_GetArea"); - register_native("Nav_GetAreaById", "Native_GetAreaById"); - register_native("Nav_GetAreaFromGrid", "Native_GetAreaFromGrid"); - register_native("Nav_WorldToGridX", "Native_WorldToGridX"); - register_native("Nav_WorldToGridY", "Native_WorldToGridY"); - register_native("Nav_FindFirstAreaInDirection", "Native_FindFirstAreaInDirection"); - register_native("Nav_IsAreaVisible", "Native_IsAreaVisible"); - - register_native("Nav_Area_GetAttributes", "Native_Area_GetAttributes"); - register_native("Nav_Area_GetCenter", "Native_Area_GetCenter"); - register_native("Nav_Area_GetId", "Native_Area_GetId"); - register_native("Nav_Area_Contains", "Native_Area_Contains"); - register_native("Nav_Area_IsCoplanar", "Native_Area_IsCoplanar"); - register_native("Nav_Area_GetZ", "Native_Area_GetZ"); - register_native("Nav_Area_GetClosestPointOnArea", "Native_Area_GetClosestPointOnArea"); - register_native("Nav_Area_GetDistanceSquaredToPoint", "Native_Area_GetDistanceSquaredToPoint"); - register_native("Nav_Area_GetRandomAdjacentArea", "Native_Area_GetRandomAdjacentArea"); - register_native("Nav_Area_IsEdge", "Native_Area_IsEdge"); - register_native("Nav_Area_IsConnected", "Native_Area_IsConnected"); - register_native("Nav_Area_GetCorner", "Native_Area_GetCorner"); - register_native("Nav_Area_ComputeDirection", "Native_Area_ComputeDirection"); - register_native("Nav_Area_ComputePortal", "Native_Area_ComputePortal"); - register_native("Nav_Area_IsOverlapping", "Native_Area_IsOverlapping"); - register_native("Nav_Area_IsOverlappingPoint", "Native_Area_IsOverlappingPoint"); - - register_native("Nav_Path_IsValid", "Native_Path_IsValid"); - register_native("Nav_Path_GetSegments", "Native_Path_GetSegments"); - register_native("Nav_Path_Segment_GetPos", "Native_Path_Segment_GetPos"); - - register_native("Nav_Path_Find", "Native_Path_Find"); - register_native("Nav_Path_FindTask_GetUserToken", "Native_Path_FindTask_GetUserToken"); - register_native("Nav_Path_FindTask_Abort", "Native_Path_FindTask_Abort"); - register_native("Nav_Path_FindTask_GetPath", "Native_Path_FindTask_GetPath"); - register_native("Nav_Path_FindTask_IsSuccessed", "Native_Path_FindTask_IsSuccessed"); - register_native("Nav_Path_FindTask_IsTerminated", "Native_Path_FindTask_IsTerminated"); + register_library("api_navsystem"); + + register_native("Nav_Precache", "Native_Precache"); + + register_native("Nav_GetAreaCount", "Native_GetAreaCount"); + register_native("Nav_GetArea", "Native_GetArea"); + register_native("Nav_GetAreaById", "Native_GetAreaById"); + register_native("Nav_GetAreaFromGrid", "Native_GetAreaFromGrid"); + register_native("Nav_WorldToGridX", "Native_WorldToGridX"); + register_native("Nav_WorldToGridY", "Native_WorldToGridY"); + register_native("Nav_FindFirstAreaInDirection", "Native_FindFirstAreaInDirection"); + register_native("Nav_IsAreaVisible", "Native_IsAreaVisible"); + + register_native("Nav_Area_GetAttributes", "Native_Area_GetAttributes"); + register_native("Nav_Area_GetCenter", "Native_Area_GetCenter"); + register_native("Nav_Area_GetId", "Native_Area_GetId"); + register_native("Nav_Area_Contains", "Native_Area_Contains"); + register_native("Nav_Area_IsCoplanar", "Native_Area_IsCoplanar"); + register_native("Nav_Area_GetZ", "Native_Area_GetZ"); + register_native("Nav_Area_GetClosestPointOnArea", "Native_Area_GetClosestPointOnArea"); + register_native("Nav_Area_GetDistanceSquaredToPoint", "Native_Area_GetDistanceSquaredToPoint"); + register_native("Nav_Area_GetRandomAdjacentArea", "Native_Area_GetRandomAdjacentArea"); + register_native("Nav_Area_IsEdge", "Native_Area_IsEdge"); + register_native("Nav_Area_IsConnected", "Native_Area_IsConnected"); + register_native("Nav_Area_GetCorner", "Native_Area_GetCorner"); + register_native("Nav_Area_ComputeDirection", "Native_Area_ComputeDirection"); + register_native("Nav_Area_ComputePortal", "Native_Area_ComputePortal"); + register_native("Nav_Area_IsOverlapping", "Native_Area_IsOverlapping"); + register_native("Nav_Area_IsOverlappingPoint", "Native_Area_IsOverlappingPoint"); + + register_native("Nav_Path_IsValid", "Native_Path_IsValid"); + register_native("Nav_Path_GetSegments", "Native_Path_GetSegments"); + register_native("Nav_Path_Segment_GetPos", "Native_Path_Segment_GetPos"); + + register_native("Nav_Path_Find", "Native_Path_Find"); + register_native("Nav_Path_FindTask_GetUserToken", "Native_Path_FindTask_GetUserToken"); + register_native("Nav_Path_FindTask_Abort", "Native_Path_FindTask_Abort"); + register_native("Nav_Path_FindTask_GetPath", "Native_Path_FindTask_GetPath"); + register_native("Nav_Path_FindTask_IsSuccessed", "Native_Path_FindTask_IsSuccessed"); + register_native("Nav_Path_FindTask_IsTerminated", "Native_Path_FindTask_IsTerminated"); } public server_frame() { - NavAreaBuildPathFrame(); + NavAreaBuildPathFrame(); } public Native_Precache(iPluginId, iArgc) { - if (g_bPrecached) { - return; - } + if (g_bPrecached) { + return; + } - LoadNavigationMap(); + LoadNavigationMap(); - g_bPrecached = true; + g_bPrecached = true; } public Native_GetAreaCount(iPluginId, iArgc) { - return g_irgNavAreaList != Invalid_Array ? ArraySize(g_irgNavAreaList) : 0; + return g_irgNavAreaList != Invalid_Array ? ArraySize(g_irgNavAreaList) : 0; } public Struct:Native_GetArea(iPluginId, iArgc) { - if (g_irgNavAreaList == Invalid_Array) { - return Invalid_Struct; - } + if (g_irgNavAreaList == Invalid_Array) { + return Invalid_Struct; + } - new iIndex = get_param(1); - if (iIndex >= ArraySize(g_irgNavAreaList)) { - return Invalid_Struct; - } + new iIndex = get_param(1); + if (iIndex >= ArraySize(g_irgNavAreaList)) { + return Invalid_Struct; + } - return ArrayGetCell(g_irgNavAreaList, iIndex); + return ArrayGetCell(g_irgNavAreaList, iIndex); } public Struct:Native_GetAreaById(iPluginId, iArgc) { - new iId = get_param(1); + new iId = get_param(1); - return NavAreaGrid_GetNavAreaById(iId); + return NavAreaGrid_GetNavAreaById(iId); } public Struct:Native_GetAreaFromGrid(iPluginId, iArgc) { - static Float:vecPos[3]; - get_array_f(1, vecPos, sizeof(vecPos)); + static Float:vecPos[3]; + get_array_f(1, vecPos, sizeof(vecPos)); - new Float:flBeneathLimit = get_param_f(2); + new Float:flBeneathLimit = get_param_f(2); - return NavAreaGrid_GetNavArea(vecPos, flBeneathLimit); + return NavAreaGrid_GetNavArea(vecPos, flBeneathLimit); } public Native_WorldToGridX(iPluginId, iArgc) { - new Float:flValue = get_param_f(1); + new Float:flValue = get_param_f(1); - return NavAreaGrid_WorldToGridX(flValue); + return NavAreaGrid_WorldToGridX(flValue); } public Native_WorldToGridY(iPluginId, iArgc) { - new Float:flValue = get_param_f(1); + new Float:flValue = get_param_f(1); - return NavAreaGrid_WorldToGridY(flValue); + return NavAreaGrid_WorldToGridY(flValue); } public Struct:Native_FindFirstAreaInDirection(iPluginId, iArgc) { - static Float:vecStart[3]; - get_array_f(1, vecStart, sizeof(vecStart)); + static Float:vecStart[3]; + get_array_f(1, vecStart, sizeof(vecStart)); - new NavDirType:iDir = NavDirType:get_param(2); - new Float:flRange = get_param_f(3); - new Float:flBeneathLimit = get_param_f(4); - new pIgnoreEnt = get_param(5); + new NavDirType:iDir = NavDirType:get_param(2); + new Float:flRange = get_param_f(3); + new Float:flBeneathLimit = get_param_f(4); + new pIgnoreEnt = get_param(5); - static Float:vecClosePos[3]; - new Struct:sArea = FindFirstAreaInDirection(vecStart, iDir, flRange, flBeneathLimit, pIgnoreEnt, vecClosePos); - set_array_f(6, vecClosePos, sizeof(vecClosePos)); + static Float:vecClosePos[3]; + new Struct:sArea = FindFirstAreaInDirection(vecStart, iDir, flRange, flBeneathLimit, pIgnoreEnt, vecClosePos); + set_array_f(6, vecClosePos, sizeof(vecClosePos)); - return sArea; + return sArea; } public bool:Native_IsAreaVisible(iPluginId, iArgc) { - static Float:vecPos[3]; - get_array_f(1, vecPos, sizeof(vecPos)); + static Float:vecPos[3]; + get_array_f(1, vecPos, sizeof(vecPos)); - new Struct:sArea = Struct:get_param(2); + new Struct:sArea = Struct:get_param(2); - return IsAreaVisible(vecPos, sArea); + return IsAreaVisible(vecPos, sArea); } public Struct:Native_Path_Find(iPluginId, iArgc) { - static Float:vecStart[3]; - get_array_f(1, vecStart, sizeof(vecStart)); + static Float:vecStart[3]; + get_array_f(1, vecStart, sizeof(vecStart)); - static Float:vecGoal[3]; - get_array_f(2, vecGoal, sizeof(vecGoal)); + static Float:vecGoal[3]; + get_array_f(2, vecGoal, sizeof(vecGoal)); - static szCbFunction[32]; - get_string(3, szCbFunction, charsmax(szCbFunction)); + static szCbFunction[32]; + get_string(3, szCbFunction, charsmax(szCbFunction)); - new pIgnoreEnt = get_param(4); - new iUserToken = get_param(5); + new pIgnoreEnt = get_param(4); + new iUserToken = get_param(5); - static szCostFunction[32]; - get_string(6, szCostFunction, charsmax(szCostFunction)); + static szCostFunction[32]; + get_string(6, szCostFunction, charsmax(szCostFunction)); - new iCostFuncId = equal(szCostFunction, NULL_STRING) ? -1 : get_func_id(szCostFunction, iPluginId); - new iCbFuncId = equal(szCbFunction, NULL_STRING) ? -1 : get_func_id(szCbFunction, iPluginId); + new iCostFuncId = equal(szCostFunction, NULL_STRING) ? -1 : get_func_id(szCostFunction, iPluginId); + new iCbFuncId = equal(szCbFunction, NULL_STRING) ? -1 : get_func_id(szCbFunction, iPluginId); - return NavAreaBuildPath(vecStart, vecGoal, iCbFuncId, iPluginId, pIgnoreEnt, iUserToken, iCostFuncId, iPluginId); + return NavAreaBuildPath(vecStart, vecGoal, iCbFuncId, iPluginId, pIgnoreEnt, iUserToken, iCostFuncId, iPluginId); } public NavAttributeType:Native_Area_GetAttributes(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new Struct:sArea = Struct:get_param(1); - return @NavArea_GetAttributes(sArea); + return @NavArea_GetAttributes(sArea); } public Native_Area_GetCenter(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new Struct:sArea = Struct:get_param(1); - static Float:vecCenter[3]; - @NavArea_GetCenter(sArea, vecCenter); - set_array_f(2, vecCenter, sizeof(vecCenter)); + static Float:vecCenter[3]; + @NavArea_GetCenter(sArea, vecCenter); + set_array_f(2, vecCenter, sizeof(vecCenter)); } public Native_Path_FindTask_GetUserToken(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + new Struct:sTask = Struct:get_param(1); - return StructGetCell(sTask, BuildPathTask_UserToken); + return StructGetCell(sTask, BuildPathTask_UserToken); } public bool:Native_Path_FindTask_Abort(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + new Struct:sTask = Struct:get_param(1); - return NavAreaBuildPathAbortTask(sTask); + return NavAreaBuildPathAbortTask(sTask); } public Struct:Native_Path_FindTask_GetPath(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + new Struct:sTask = Struct:get_param(1); - return StructGetCell(sTask, BuildPathTask_Path); + return StructGetCell(sTask, BuildPathTask_Path); } public bool:Native_Path_FindTask_IsSuccessed(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + new Struct:sTask = Struct:get_param(1); - return StructGetCell(sTask, BuildPathTask_IsSuccessed); + return StructGetCell(sTask, BuildPathTask_IsSuccessed); } public bool:Native_Path_FindTask_IsTerminated(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + new Struct:sTask = Struct:get_param(1); - return StructGetCell(sTask, BuildPathTask_IsTerminated); + return StructGetCell(sTask, BuildPathTask_IsTerminated); } public Array:Native_Path_GetSegments(iPluginId, iArgc) { - new Struct:sNavPath = Struct:get_param(1); + new Struct:sNavPath = Struct:get_param(1); - return StructGetCell(sNavPath, NavPath_Segments); + return StructGetCell(sNavPath, NavPath_Segments); } public bool:Native_Path_IsValid(iPluginId, iArgc) { - new Struct:sNavPath = Struct:get_param(1); + new Struct:sNavPath = Struct:get_param(1); - return @NavPath_IsValid(sNavPath); + return @NavPath_IsValid(sNavPath); } public Native_Path_Segment_GetPos(iPluginId, iArgc) { - new Struct:sSegment = Struct:get_param(1); + new Struct:sSegment = Struct:get_param(1); - static Float:vecPos[3]; - StructGetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); + static Float:vecPos[3]; + StructGetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); - set_array_f(2, vecPos, sizeof(vecPos)); + set_array_f(2, vecPos, sizeof(vecPos)); } public Native_Area_GetId(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new Struct:sArea = Struct:get_param(1); - return @NavArea_GetId(sArea); + return @NavArea_GetId(sArea); } public bool:Native_Area_Contains(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new Struct:sArea = Struct:get_param(1); - static Float:vecPoint[3]; - get_array_f(2, vecPoint, sizeof(vecPoint)); + static Float:vecPoint[3]; + get_array_f(2, vecPoint, sizeof(vecPoint)); - return @NavArea_Contains(sArea, vecPoint); + return @NavArea_Contains(sArea, vecPoint); } public bool:Native_Area_IsCoplanar(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - new Struct:sOtherArea = Struct:get_param(2); + new Struct:sArea = Struct:get_param(1); + new Struct:sOtherArea = Struct:get_param(2); - return @NavArea_IsCoplanar(sArea, sOtherArea); + return @NavArea_IsCoplanar(sArea, sOtherArea); } public Float:Native_Area_GetZ(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new Struct:sArea = Struct:get_param(1); - static Float:vecPos[3]; - get_array_f(2, vecPos, sizeof(vecPos)); + static Float:vecPos[3]; + get_array_f(2, vecPos, sizeof(vecPos)); - return @NavArea_GetZ(sArea, vecPos); + return @NavArea_GetZ(sArea, vecPos); } public Native_Area_GetClosestPointOnArea(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new Struct:sArea = Struct:get_param(1); - static Float:vecPos[3]; - get_array_f(2, vecPos, sizeof(vecPos)); + static Float:vecPos[3]; + get_array_f(2, vecPos, sizeof(vecPos)); - static Float:vecClose[3]; - get_array_f(3, vecClose, sizeof(vecClose)); + static Float:vecClose[3]; + get_array_f(3, vecClose, sizeof(vecClose)); - @NavArea_GetClosestPointOnArea(sArea, vecPos, vecClose); + @NavArea_GetClosestPointOnArea(sArea, vecPos, vecClose); - set_array_f(3, vecClose, sizeof(vecClose)); + set_array_f(3, vecClose, sizeof(vecClose)); } public Float:Native_Area_GetDistanceSquaredToPoint(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new Struct:sArea = Struct:get_param(1); - static Float:vecPoint[3]; - get_array_f(2, vecPoint, sizeof(vecPoint)); + static Float:vecPoint[3]; + get_array_f(2, vecPoint, sizeof(vecPoint)); - return @NavArea_GetDistanceSquaredToPoint(sArea, vecPoint); + return @NavArea_GetDistanceSquaredToPoint(sArea, vecPoint); } public Struct:Native_Area_GetRandomAdjacentArea(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - new NavDirType:iDir = NavDirType:get_param(2); + new Struct:sArea = Struct:get_param(1); + new NavDirType:iDir = NavDirType:get_param(2); - return @NavArea_GetRandomAdjacentArea(sArea, iDir); + return @NavArea_GetRandomAdjacentArea(sArea, iDir); } public bool:Native_Area_IsEdge(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - new NavDirType:iDir = NavDirType:get_param(2); + new Struct:sArea = Struct:get_param(1); + new NavDirType:iDir = NavDirType:get_param(2); - return @NavArea_IsEdge(sArea, iDir); + return @NavArea_IsEdge(sArea, iDir); } public bool:Native_Area_IsConnected(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - new Struct:sOtherArea = Struct:get_param(2); - new NavDirType:iDir = NavDirType:get_param(3); + new Struct:sArea = Struct:get_param(1); + new Struct:sOtherArea = Struct:get_param(2); + new NavDirType:iDir = NavDirType:get_param(3); - return @NavArea_IsConnected(sArea, sOtherArea, iDir); + return @NavArea_IsConnected(sArea, sOtherArea, iDir); } public Native_Area_GetCorner(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - new NavCornerType:iCorner = NavCornerType:get_param(2); + new Struct:sArea = Struct:get_param(1); + new NavCornerType:iCorner = NavCornerType:get_param(2); - static Float:vecPos[3]; - get_array_f(3, vecPos, sizeof(vecPos)); + static Float:vecPos[3]; + get_array_f(3, vecPos, sizeof(vecPos)); - @NavArea_GetCorner(sArea, iCorner, vecPos); + @NavArea_GetCorner(sArea, iCorner, vecPos); - set_array_f(3, vecPos, sizeof(vecPos)); + set_array_f(3, vecPos, sizeof(vecPos)); } public NavDirType:Native_Area_ComputeDirection(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new Struct:sArea = Struct:get_param(1); - static Float:vecPoint[3]; - get_array_f(2, vecPoint, sizeof(vecPoint)); + static Float:vecPoint[3]; + get_array_f(2, vecPoint, sizeof(vecPoint)); - return @NavArea_ComputeDirection(sArea, vecPoint); + return @NavArea_ComputeDirection(sArea, vecPoint); } public Native_Area_ComputePortal(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - new Struct:sOtherArea = Struct:get_param(2); - new NavDirType:iDir = NavDirType:get_param(3); + new Struct:sArea = Struct:get_param(1); + new Struct:sOtherArea = Struct:get_param(2); + new NavDirType:iDir = NavDirType:get_param(3); - static Float:vecCenter[3]; - static Float:flHalfWidth; + static Float:vecCenter[3]; + static Float:flHalfWidth; - @NavArea_ComputePortal(sArea, sOtherArea, iDir, vecCenter, flHalfWidth); + @NavArea_ComputePortal(sArea, sOtherArea, iDir, vecCenter, flHalfWidth); - set_array_f(4, vecCenter, sizeof(vecCenter)); - set_float_byref(5, flHalfWidth); + set_array_f(4, vecCenter, sizeof(vecCenter)); + set_float_byref(5, flHalfWidth); } public bool:Native_Area_IsOverlapping(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - new Struct:sOtherArea = Struct:get_param(2); + new Struct:sArea = Struct:get_param(1); + new Struct:sOtherArea = Struct:get_param(2); - return @NavArea_IsOverlapping(sArea, sOtherArea); + return @NavArea_IsOverlapping(sArea, sOtherArea); } public bool:Native_Area_IsOverlappingPoint(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new Struct:sArea = Struct:get_param(1); - static Float:vecPoint[3]; - get_array_f(3, vecPoint, sizeof(vecPoint)); + static Float:vecPoint[3]; + get_array_f(3, vecPoint, sizeof(vecPoint)); - return @NavArea_IsOverlappingPoint(sArea, vecPoint); + return @NavArea_IsOverlappingPoint(sArea, vecPoint); } Struct:@NavArea_Create() { - new Struct:this = StructCreate(NavArea); + new Struct:this = StructCreate(NavArea); - StructSetCell(this, NavArea_SpotEncounterList, ArrayCreate(_:SpotEncounter)); - StructSetCell(this, NavArea_Approach, ArrayCreate(_:ApproachInfo)); - StructSetCell(this, NavArea_OverlapList, ArrayCreate()); + StructSetCell(this, NavArea_SpotEncounterList, ArrayCreate(_:SpotEncounter)); + StructSetCell(this, NavArea_Approach, ArrayCreate(_:ApproachInfo)); + StructSetCell(this, NavArea_OverlapList, ArrayCreate()); - for (new NavDirType:d = NORTH; d < NUM_DIRECTIONS; d++) { - StructSetCell(this, NavArea_Connect, ArrayCreate(_:NavConnect), d); - } + for (new NavDirType:d = NORTH; d < NUM_DIRECTIONS; d++) { + StructSetCell(this, NavArea_Connect, ArrayCreate(_:NavConnect), d); + } - return this; + return this; } @NavArea_Destroy(&Struct:this) { - new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); + new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); - new iSpotEncounterListSize = ArraySize(irgSpotEncounterList); - for (new i = 0; i < iSpotEncounterListSize; ++i) { - new Array:irgSpotList = ArrayGetCell(irgSpotEncounterList, i, _:SpotEncounter_SpotList); - ArrayDestroy(irgSpotList); - } + new iSpotEncounterListSize = ArraySize(irgSpotEncounterList); + for (new i = 0; i < iSpotEncounterListSize; ++i) { + new Array:irgSpotList = ArrayGetCell(irgSpotEncounterList, i, _:SpotEncounter_SpotList); + ArrayDestroy(irgSpotList); + } - ArrayDestroy(irgSpotEncounterList); + ArrayDestroy(irgSpotEncounterList); - new Array:irgApproachList = StructGetCell(this, NavArea_Approach); - ArrayDestroy(irgApproachList); + new Array:irgApproachList = StructGetCell(this, NavArea_Approach); + ArrayDestroy(irgApproachList); - new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); - ArrayDestroy(irgOverlapList); + new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); + ArrayDestroy(irgOverlapList); - for (new NavDirType:d = NORTH; d < NUM_DIRECTIONS; d++) { - new Array:irgConnectList = StructGetCell(this, NavArea_Connect, d); - ArrayDestroy(irgConnectList); - } + for (new NavDirType:d = NORTH; d < NUM_DIRECTIONS; d++) { + new Array:irgConnectList = StructGetCell(this, NavArea_Connect, d); + ArrayDestroy(irgConnectList); + } - StructDestroy(this); + StructDestroy(this); } @NavArea_Load(const &Struct:this, iFile, iVersion, bool:bDebug) { - new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); - new Array:irgApproachList = StructGetCell(this, NavArea_Approach); - - // load ID - new iId; - FileReadInt32(iFile, iId); - StructSetCell(this, NavArea_Id, iId); - - // update nextID to avoid collisions - if (iId >= g_iNavAreaNextId) { - g_iNavAreaNextId = iId + 1; + new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); + new Array:irgApproachList = StructGetCell(this, NavArea_Approach); + + // load ID + new iId; + FileReadInt32(iFile, iId); + StructSetCell(this, NavArea_Id, iId); + + // update nextID to avoid collisions + if (iId >= g_iNavAreaNextId) { + g_iNavAreaNextId = iId + 1; + } + + // load attribute flags + new iAttributeFlags; + FileReadUint8(iFile, iAttributeFlags); + StructSetCell(this, NavArea_AttributeFlags, iAttributeFlags); + + // load extent of area + new Float:rgExtent[Extent]; + fread_blocks(iFile, rgExtent[Extent_Lo], 3, BLOCK_INT); + fread_blocks(iFile, rgExtent[Extent_Hi], 3, BLOCK_INT); + + StructSetArray(this, NavArea_Extent, rgExtent, Extent); + + new Float:vecCenter[3]; + for (new i = 0; i < 3; ++i) { + vecCenter[i] = (rgExtent[Extent_Lo][i] + rgExtent[Extent_Hi][i]) / 2.0; + } + + StructSetArray(this, NavArea_Center, vecCenter, sizeof(vecCenter)); + + // load heights of implicit corners + new Float:flNeZ; + FileReadInt32(iFile, flNeZ); + StructSetCell(this, NavArea_NeZ, flNeZ); + + new Float:flSwZ; + FileReadInt32(iFile, flSwZ); + StructSetCell(this, NavArea_SwZ, flSwZ); + + // load connections (IDs) to adjacent areas + // in the enum order NORTH, EAST, SOUTH, WEST + for (new d = 0; d < _:NUM_DIRECTIONS; d++) { + new Array:irgConnectList = StructGetCell(this, NavArea_Connect, d); + + // load number of connections for this direction + new iConnectionCount; + FileReadInt32(iFile, iConnectionCount); + + for (new i = 0; i < iConnectionCount; i++) { + new rgConnect[NavConnect]; + FileReadInt32(iFile, rgConnect[NavConnect_Id]); + ArrayPushArray(irgConnectList, rgConnect[any:0]); + } + } + + // load number of hiding spots + new iHidingSpotCount; + FileReadUint8(iFile, iHidingSpotCount); + + // skip hiding spots + if (iVersion == 1) { + fseek(iFile, iHidingSpotCount * (3 * BLOCK_INT), SEEK_CUR); + } else { + fseek(iFile, iHidingSpotCount * (BLOCK_INT + (3 * BLOCK_INT) + BLOCK_CHAR), SEEK_CUR); + } + + // Load number of approach areas + new iApproachCount; + FileReadUint8(iFile, iApproachCount); + + // load approach area info (IDs) + for (new a = 0; a < iApproachCount; a++) { + new rgApproach[ApproachInfo]; + FileReadInt32(iFile, rgApproach[ApproachInfo_Here][NavConnect_Id]); + FileReadInt32(iFile, rgApproach[ApproachInfo_Prev][NavConnect_Id]); + FileReadUint8(iFile, rgApproach[ApproachInfo_PrevToHereHow]); + FileReadInt32(iFile, rgApproach[ApproachInfo_Next][NavConnect_Id]); + FileReadUint8(iFile, rgApproach[ApproachInfo_HereToNextHow]); + ArrayPushArray(irgApproachList, rgApproach[any:0]); + } + + // Load encounter paths for this area + new iEncounterCount; + FileReadInt32(iFile, iEncounterCount); + + for (new e = 0; e < iEncounterCount; e++) { + new rgEncounter[SpotEncounter]; + rgEncounter[SpotEncounter_SpotList] = ArrayCreate(_:SpotOrder); + + FileReadInt32(iFile, rgEncounter[SpotEncounter_From][NavConnect_Id]); + + if (iVersion < 3) { + FileReadInt32(iFile, rgEncounter[SpotEncounter_To][NavConnect_Id]); + fread_blocks(iFile, rgEncounter[SpotEncounter_Path][Ray_From], 3, BLOCK_INT); + fread_blocks(iFile, rgEncounter[SpotEncounter_Path][Ray_To], 3, BLOCK_INT); + } else { + FileReadUint8(iFile, rgEncounter[SpotEncounter_FromDir]); + FileReadInt32(iFile, rgEncounter[SpotEncounter_To][NavConnect_Id]); + FileReadUint8(iFile, rgEncounter[SpotEncounter_ToDir]); } - // load attribute flags - new iAttributeFlags; - FileReadUint8(iFile, iAttributeFlags); - StructSetCell(this, NavArea_AttributeFlags, iAttributeFlags); + // read list of spots along this path + new iSpotCount; + FileReadUint8(iFile, iSpotCount); - // load extent of area - new Float:rgExtent[Extent]; - fread_blocks(iFile, rgExtent[Extent_Lo], 3, BLOCK_INT); - fread_blocks(iFile, rgExtent[Extent_Hi], 3, BLOCK_INT); + if (iVersion < 3) { + for (new s = 0; s < iSpotCount; s++) { + static Float:vecPos[3]; + fread_blocks(iFile, vecPos, 3, BLOCK_INT); + FileReadInt32(iFile, vecPos[0]); + } + } else { + for (new s = 0; s < iSpotCount; s++) { + new rgOrder[SpotOrder]; + FileReadInt32(iFile, rgOrder[SpotOrder_Id]); - StructSetArray(this, NavArea_Extent, rgExtent, Extent); + FileReadUint8(iFile, rgOrder[SpotOrder_T]); + rgOrder[SpotOrder_T] /= 255.0; + ArrayPushCell(rgEncounter[SpotEncounter_SpotList], rgOrder[any:0]); + } + } - new Float:vecCenter[3]; - for (new i = 0; i < 3; ++i) { - vecCenter[i] = (rgExtent[Extent_Lo][i] + rgExtent[Extent_Hi][i]) / 2.0; + // old data, discard + if (iVersion >= 3) { + ArrayPushArray(irgSpotEncounterList, rgEncounter[any:0]); } + } - StructSetArray(this, NavArea_Center, vecCenter, sizeof(vecCenter)); + if (iVersion < NAV_VERSION) { + return; + } - // load heights of implicit corners - new Float:flNeZ; - FileReadInt32(iFile, flNeZ); - StructSetCell(this, NavArea_NeZ, flNeZ); + fseek(iFile, BLOCK_SHORT, SEEK_CUR); +} - new Float:flSwZ; - FileReadInt32(iFile, flSwZ); - StructSetCell(this, NavArea_SwZ, flSwZ); +NavErrorType:@NavArea_PostLoadArea(const &Struct:this) { + new NavErrorType:error = NAV_OK; - // load connections (IDs) to adjacent areas - // in the enum order NORTH, EAST, SOUTH, WEST - for (new d = 0; d < _:NUM_DIRECTIONS; d++) { - new Array:irgConnectList = StructGetCell(this, NavArea_Connect, d); + // connect areas together + for (new d = 0; d < _:NUM_DIRECTIONS; d++) { + new Array:irgConnections = StructGetCell(this, NavArea_Connect, d); + new iConnectionCount = ArraySize(irgConnections); - // load number of connections for this direction - new iConnectionCount; - FileReadInt32(iFile, iConnectionCount); + for (new i = 0; i < iConnectionCount; ++i) { + new iConnectId = ArrayGetCell(irgConnections, i, _:NavConnect_Id); + new Struct:sArea = NavAreaGrid_GetNavAreaById(iConnectId); + ArraySetCell(irgConnections, i, sArea, _:NavConnect_Area); - for (new i = 0; i < iConnectionCount; i++) { - new rgConnect[NavConnect]; - FileReadInt32(iFile, rgConnect[NavConnect_Id]); - ArrayPushArray(irgConnectList, rgConnect[any:0]); - } + if (iConnectId && sArea == Invalid_Struct) { + log_amx("ERROR: Corrupt navigation data. Cannot connect Navigation Areas.^n"); + error = NAV_CORRUPT_DATA; + } } + } - // load number of hiding spots - new iHidingSpotCount; - FileReadUint8(iFile, iHidingSpotCount); - - // skip hiding spots - if (iVersion == 1) { - fseek(iFile, iHidingSpotCount * (3 * BLOCK_INT), SEEK_CUR); - } else { - fseek(iFile, iHidingSpotCount * (BLOCK_INT + (3 * BLOCK_INT) + BLOCK_CHAR), SEEK_CUR); - } - - // Load number of approach areas - new iApproachCount; - FileReadUint8(iFile, iApproachCount); - - // load approach area info (IDs) - for (new a = 0; a < iApproachCount; a++) { - new rgApproach[ApproachInfo]; - FileReadInt32(iFile, rgApproach[ApproachInfo_Here][NavConnect_Id]); - FileReadInt32(iFile, rgApproach[ApproachInfo_Prev][NavConnect_Id]); - FileReadUint8(iFile, rgApproach[ApproachInfo_PrevToHereHow]); - FileReadInt32(iFile, rgApproach[ApproachInfo_Next][NavConnect_Id]); - FileReadUint8(iFile, rgApproach[ApproachInfo_HereToNextHow]); - ArrayPushArray(irgApproachList, rgApproach[any:0]); - } - - // Load encounter paths for this area - new iEncounterCount; - FileReadInt32(iFile, iEncounterCount); - - for (new e = 0; e < iEncounterCount; e++) { - new rgEncounter[SpotEncounter]; - rgEncounter[SpotEncounter_SpotList] = ArrayCreate(_:SpotOrder); - - FileReadInt32(iFile, rgEncounter[SpotEncounter_From][NavConnect_Id]); - - if (iVersion < 3) { - FileReadInt32(iFile, rgEncounter[SpotEncounter_To][NavConnect_Id]); - fread_blocks(iFile, rgEncounter[SpotEncounter_Path][Ray_From], 3, BLOCK_INT); - fread_blocks(iFile, rgEncounter[SpotEncounter_Path][Ray_To], 3, BLOCK_INT); - } else { - FileReadUint8(iFile, rgEncounter[SpotEncounter_FromDir]); - FileReadInt32(iFile, rgEncounter[SpotEncounter_To][NavConnect_Id]); - FileReadUint8(iFile, rgEncounter[SpotEncounter_ToDir]); - } - - // read list of spots along this path - new iSpotCount; - FileReadUint8(iFile, iSpotCount); - - if (iVersion < 3) { - for (new s = 0; s < iSpotCount; s++) { - static Float:vecPos[3]; - fread_blocks(iFile, vecPos, 3, BLOCK_INT); - FileReadInt32(iFile, vecPos[0]); - } - } else { - for (new s = 0; s < iSpotCount; s++) { - new rgOrder[SpotOrder]; - FileReadInt32(iFile, rgOrder[SpotOrder_Id]); - - FileReadUint8(iFile, rgOrder[SpotOrder_T]); - rgOrder[SpotOrder_T] /= 255.0; - ArrayPushCell(rgEncounter[SpotEncounter_SpotList], rgOrder[any:0]); - } - } - - // old data, discard - if (iVersion >= 3) { - ArrayPushArray(irgSpotEncounterList, rgEncounter[any:0]); - } + // resolve approach area IDs + new Array:irgApproachList = StructGetCell(this, NavArea_Approach); + new iApproachCount = ArraySize(irgApproachList); + for (new a = 0; a < iApproachCount; a++) { + new iApproachHereId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Here + _:NavConnect_Id); + new Struct:sApproachHereArea = NavAreaGrid_GetNavAreaById(iApproachHereId); + ArraySetCell(irgApproachList, a, sApproachHereArea, _:ApproachInfo_Here + _:NavConnect_Area); + if (iApproachHereId && sApproachHereArea == Invalid_Struct) { + log_amx("ERROR: Corrupt navigation data. Missing Approach Area (here).^n"); + error = NAV_CORRUPT_DATA; } - if (iVersion < NAV_VERSION) { - return; + new iApproachPrevId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Prev + _:NavConnect_Id); + new Struct:sApproachPrevArea = NavAreaGrid_GetNavAreaById(iApproachPrevId); + ArraySetCell(irgApproachList, a, sApproachPrevArea, _:ApproachInfo_Prev + _:NavConnect_Area); + if (iApproachPrevId && sApproachPrevArea == Invalid_Struct) { + log_amx("ERROR: Corrupt navigation data. Missing Approach Area (prev).^n"); + error = NAV_CORRUPT_DATA; } - fseek(iFile, BLOCK_SHORT, SEEK_CUR); -} - -NavErrorType:@NavArea_PostLoadArea(const &Struct:this) { - new NavErrorType:error = NAV_OK; - - // connect areas together - for (new d = 0; d < _:NUM_DIRECTIONS; d++) { - new Array:irgConnections = StructGetCell(this, NavArea_Connect, d); - new iConnectionCount = ArraySize(irgConnections); - - for (new i = 0; i < iConnectionCount; ++i) { - new iConnectId = ArrayGetCell(irgConnections, i, _:NavConnect_Id); - new Struct:sArea = NavAreaGrid_GetNavAreaById(iConnectId); - ArraySetCell(irgConnections, i, sArea, _:NavConnect_Area); - - if (iConnectId && sArea == Invalid_Struct) { - log_amx("ERROR: Corrupt navigation data. Cannot connect Navigation Areas.^n"); - error = NAV_CORRUPT_DATA; - } - } + new iApproachNextId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Next + _:NavConnect_Id); + new Struct:sApproachNextArea = NavAreaGrid_GetNavAreaById(iApproachNextId); + ArraySetCell(irgApproachList, a, sApproachNextArea, _:ApproachInfo_Next + _:NavConnect_Area); + if (iApproachNextId && sApproachNextArea == Invalid_Struct) { + log_amx("ERROR: Corrupt navigation data. Missing Approach Area (next).^n"); + error = NAV_CORRUPT_DATA; } + } - // resolve approach area IDs - new Array:irgApproachList = StructGetCell(this, NavArea_Approach); - new iApproachCount = ArraySize(irgApproachList); - for (new a = 0; a < iApproachCount; a++) { - new iApproachHereId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Here + _:NavConnect_Id); - new Struct:sApproachHereArea = NavAreaGrid_GetNavAreaById(iApproachHereId); - ArraySetCell(irgApproachList, a, sApproachHereArea, _:ApproachInfo_Here + _:NavConnect_Area); - if (iApproachHereId && sApproachHereArea == Invalid_Struct) { - log_amx("ERROR: Corrupt navigation data. Missing Approach Area (here).^n"); - error = NAV_CORRUPT_DATA; - } - - new iApproachPrevId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Prev + _:NavConnect_Id); - new Struct:sApproachPrevArea = NavAreaGrid_GetNavAreaById(iApproachPrevId); - ArraySetCell(irgApproachList, a, sApproachPrevArea, _:ApproachInfo_Prev + _:NavConnect_Area); - if (iApproachPrevId && sApproachPrevArea == Invalid_Struct) { - log_amx("ERROR: Corrupt navigation data. Missing Approach Area (prev).^n"); - error = NAV_CORRUPT_DATA; - } + // resolve spot encounter IDs + new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); + new iSpotEncounterCount = ArraySize(irgSpotEncounterList); + for (new e = 0; e < iSpotEncounterCount; e++) { + new rgSpot[SpotEncounter]; + ArrayGetArray(irgSpotEncounterList, e, rgSpot[any:0]); - new iApproachNextId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Next + _:NavConnect_Id); - new Struct:sApproachNextArea = NavAreaGrid_GetNavAreaById(iApproachNextId); - ArraySetCell(irgApproachList, a, sApproachNextArea, _:ApproachInfo_Next + _:NavConnect_Area); - if (iApproachNextId && sApproachNextArea == Invalid_Struct) { - log_amx("ERROR: Corrupt navigation data. Missing Approach Area (next).^n"); - error = NAV_CORRUPT_DATA; - } + rgSpot[SpotEncounter_From][NavConnect_Area] = NavAreaGrid_GetNavAreaById(rgSpot[SpotEncounter_From][NavConnect_Id]); + if (rgSpot[SpotEncounter_From][NavConnect_Area] == Invalid_Struct) { + log_amx("ERROR: Corrupt navigation data. Missing ^"from^" Navigation Area for Encounter Spot.^n"); + error = NAV_CORRUPT_DATA; } - // resolve spot encounter IDs - new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); - new iSpotEncounterCount = ArraySize(irgSpotEncounterList); - for (new e = 0; e < iSpotEncounterCount; e++) { - new rgSpot[SpotEncounter]; - ArrayGetArray(irgSpotEncounterList, e, rgSpot[any:0]); + rgSpot[SpotEncounter_To][NavConnect_Area] = NavAreaGrid_GetNavAreaById(rgSpot[SpotEncounter_To][NavConnect_Id]); + if (rgSpot[SpotEncounter_To][NavConnect_Area] == Invalid_Struct) { + // log_amx("ERROR: Corrupt navigation data. Missing ^"to^" Navigation Area for Encounter Spot.^n"); + error = NAV_CORRUPT_DATA; + } - rgSpot[SpotEncounter_From][NavConnect_Area] = NavAreaGrid_GetNavAreaById(rgSpot[SpotEncounter_From][NavConnect_Id]); - if (rgSpot[SpotEncounter_From][NavConnect_Area] == Invalid_Struct) { - log_amx("ERROR: Corrupt navigation data. Missing ^"from^" Navigation Area for Encounter Spot.^n"); - error = NAV_CORRUPT_DATA; - } + if (rgSpot[SpotEncounter_From][NavConnect_Area] != Invalid_Struct && rgSpot[SpotEncounter_To][NavConnect_Area] != Invalid_Struct) { + // compute path + new Float:flHalfWidth; + @NavArea_ComputePortal(this, rgSpot[SpotEncounter_To][NavConnect_Area], rgSpot[SpotEncounter_ToDir], rgSpot[SpotEncounter_Path][Ray_To], flHalfWidth); + @NavArea_ComputePortal(this, rgSpot[SpotEncounter_From][NavConnect_Area], rgSpot[SpotEncounter_FromDir], rgSpot[SpotEncounter_Path][Ray_From], flHalfWidth); - rgSpot[SpotEncounter_To][NavConnect_Area] = NavAreaGrid_GetNavAreaById(rgSpot[SpotEncounter_To][NavConnect_Id]); - if (rgSpot[SpotEncounter_To][NavConnect_Area] == Invalid_Struct) { - // log_amx("ERROR: Corrupt navigation data. Missing ^"to^" Navigation Area for Encounter Spot.^n"); - error = NAV_CORRUPT_DATA; - } + new Float:eyeHeight = HalfHumanHeight; + rgSpot[SpotEncounter_Path][Ray_From][2] = @NavArea_GetZ(rgSpot[SpotEncounter_From][NavConnect_Area], rgSpot[SpotEncounter_Path][Ray_From]) + eyeHeight; + rgSpot[SpotEncounter_Path][Ray_To][2] = @NavArea_GetZ(rgSpot[SpotEncounter_To][NavConnect_Area], rgSpot[SpotEncounter_Path][Ray_To]) + eyeHeight; + } - if (rgSpot[SpotEncounter_From][NavConnect_Area] != Invalid_Struct && rgSpot[SpotEncounter_To][NavConnect_Area] != Invalid_Struct) { - // compute path - new Float:flHalfWidth; - @NavArea_ComputePortal(this, rgSpot[SpotEncounter_To][NavConnect_Area], rgSpot[SpotEncounter_ToDir], rgSpot[SpotEncounter_Path][Ray_To], flHalfWidth); - @NavArea_ComputePortal(this, rgSpot[SpotEncounter_From][NavConnect_Area], rgSpot[SpotEncounter_FromDir], rgSpot[SpotEncounter_Path][Ray_From], flHalfWidth); + ArraySetArray(irgSpotEncounterList, e, rgSpot[any:0]); + } - new Float:eyeHeight = HalfHumanHeight; - rgSpot[SpotEncounter_Path][Ray_From][2] = @NavArea_GetZ(rgSpot[SpotEncounter_From][NavConnect_Area], rgSpot[SpotEncounter_Path][Ray_From]) + eyeHeight; - rgSpot[SpotEncounter_Path][Ray_To][2] = @NavArea_GetZ(rgSpot[SpotEncounter_To][NavConnect_Area], rgSpot[SpotEncounter_Path][Ray_To]) + eyeHeight; - } + // build overlap list + new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); - ArraySetArray(irgSpotEncounterList, e, rgSpot[any:0]); + new iNavAreaListSize = ArraySize(g_irgNavAreaList); + for (new i = 0; i < iNavAreaListSize; ++i) { + new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); + if (sArea == this) { + continue; } - // build overlap list - new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); - - new iNavAreaListSize = ArraySize(g_irgNavAreaList); - for (new i = 0; i < iNavAreaListSize; ++i) { - new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); - if (sArea == this) { - continue; - } - - if (@NavArea_IsOverlapping(this, sArea)) { - ArrayPushCell(irgOverlapList, sArea); - } + if (@NavArea_IsOverlapping(this, sArea)) { + ArrayPushCell(irgOverlapList, sArea); } + } - return error; + return error; } @NavArea_GetId(const &Struct:this) { - return StructGetCell(this, NavArea_Id); + return StructGetCell(this, NavArea_Id); } NavAttributeType:@NavArea_GetAttributes(const &Struct:this) { - return StructGetCell(this, NavArea_AttributeFlags); + return StructGetCell(this, NavArea_AttributeFlags); } bool:@NavArea_IsClosed(const &Struct:this) { - return @NavArea_IsMarked(this) && !@NavArea_IsOpen(this); + return @NavArea_IsMarked(this) && !@NavArea_IsOpen(this); } bool:@NavArea_IsOpen(const &Struct:this) { - return StructGetCell(this, NavArea_OpenMarker) == g_iNavAreaMasterMarker; + return StructGetCell(this, NavArea_OpenMarker) == g_iNavAreaMasterMarker; } @NavArea_Mark(const &Struct:this) { - StructSetCell(this, NavArea_Marker, g_iNavAreaMasterMarker); + StructSetCell(this, NavArea_Marker, g_iNavAreaMasterMarker); } bool:@NavArea_IsMarked(const &Struct:this) { - return StructGetCell(this, NavArea_Marker) == g_iNavAreaMasterMarker; + return StructGetCell(this, NavArea_Marker) == g_iNavAreaMasterMarker; } @NavArea_GetCenter(const &Struct:this, Float:vecCenter[]) { - StructGetArray(this, NavArea_Center, vecCenter, 3); + StructGetArray(this, NavArea_Center, vecCenter, 3); } @NavArea_SetTotalCost(const &Struct:this, Float:flTotalCost) { - StructSetCell(this, NavArea_TotalCost, flTotalCost); + StructSetCell(this, NavArea_TotalCost, flTotalCost); } Float:@NavArea_GetTotalCost(const &Struct:this) { - return StructGetCell(this, NavArea_TotalCost); + return StructGetCell(this, NavArea_TotalCost); } @NavArea_SetCostSoFar(const &Struct:this, Float:flTotalCost) { - StructSetCell(this, NavArea_CostSoFar, flTotalCost); + StructSetCell(this, NavArea_CostSoFar, flTotalCost); } Float:@NavArea_GetCostSoFar(const &Struct:this) { - return StructGetCell(this, NavArea_CostSoFar); + return StructGetCell(this, NavArea_CostSoFar); } @NavArea_AddToClosedList(const &Struct:this) { - @NavArea_Mark(this); + @NavArea_Mark(this); } @NavArea_RemoveFromClosedList(const &Struct:this) { - // since "closed" is defined as visited (marked) and not on open list, do nothing + // since "closed" is defined as visited (marked) and not on open list, do nothing } @NavArea_SetParent(const &Struct:this, Struct:parent, NavTraverseType:how) { - StructSetCell(this, NavArea_Parent, parent); - StructSetCell(this, NavArea_ParentHow, how); + StructSetCell(this, NavArea_Parent, parent); + StructSetCell(this, NavArea_ParentHow, how); } Array:@NavArea_GetAdjacentList(const &Struct:this, NavDirType:iDir) { - return StructGetCell(this, NavArea_Connect, iDir); + return StructGetCell(this, NavArea_Connect, iDir); } @NavArea_AddToOpenList(const &Struct:this) { - // mark as being on open list for quick check - StructSetCell(this, NavArea_OpenMarker, g_iNavAreaMasterMarker); - - // if list is empty, add and return - if (g_sNavAreaOpenList == Invalid_Struct) { - g_sNavAreaOpenList = this; - StructSetCell(this, NavArea_PrevOpen, Invalid_Struct); - StructSetCell(this, NavArea_NextOpen, Invalid_Struct); - return; - } + // mark as being on open list for quick check + StructSetCell(this, NavArea_OpenMarker, g_iNavAreaMasterMarker); - // insert self in ascending cost order - static Struct:sArea; sArea = Invalid_Struct; - static Struct:last; last = Invalid_Struct; + // if list is empty, add and return + if (g_sNavAreaOpenList == Invalid_Struct) { + g_sNavAreaOpenList = this; + StructSetCell(this, NavArea_PrevOpen, Invalid_Struct); + StructSetCell(this, NavArea_NextOpen, Invalid_Struct); + return; + } - for (sArea = g_sNavAreaOpenList; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_NextOpen)) { - if (@NavArea_GetTotalCost(this) < @NavArea_GetTotalCost(sArea)) { - break; - } + // insert self in ascending cost order + static Struct:sArea; sArea = Invalid_Struct; + static Struct:last; last = Invalid_Struct; - last = sArea; + for (sArea = g_sNavAreaOpenList; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_NextOpen)) { + if (@NavArea_GetTotalCost(this) < @NavArea_GetTotalCost(sArea)) { + break; } - if (sArea) { - // insert before this area - static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(sArea, NavArea_PrevOpen); - StructSetCell(this, NavArea_PrevOpen, sPrevOpenArea); - if (sPrevOpenArea != Invalid_Struct) { - StructSetCell(sPrevOpenArea, NavArea_NextOpen, this); - } else { - g_sNavAreaOpenList = this; - } + last = sArea; + } - StructSetCell(this, NavArea_NextOpen, sArea); - StructSetCell(sArea, NavArea_PrevOpen, this); + if (sArea) { + // insert before this area + static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(sArea, NavArea_PrevOpen); + StructSetCell(this, NavArea_PrevOpen, sPrevOpenArea); + if (sPrevOpenArea != Invalid_Struct) { + StructSetCell(sPrevOpenArea, NavArea_NextOpen, this); } else { - // append to end of list - StructSetCell(last, NavArea_NextOpen, this); - StructSetCell(this, NavArea_PrevOpen, last); - StructSetCell(this, NavArea_NextOpen, Invalid_Struct); + g_sNavAreaOpenList = this; } + + StructSetCell(this, NavArea_NextOpen, sArea); + StructSetCell(sArea, NavArea_PrevOpen, this); + } else { + // append to end of list + StructSetCell(last, NavArea_NextOpen, this); + StructSetCell(this, NavArea_PrevOpen, last); + StructSetCell(this, NavArea_NextOpen, Invalid_Struct); + } } @NavArea_UpdateOnOpenList(const &Struct:this) { - // since value can only decrease, bubble this area up from current spot - static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(this, NavArea_PrevOpen); - static Float:flPrevTotalCost; flPrevTotalCost = @NavArea_GetTotalCost(sPrevOpenArea); - - while (StructGetCell(this, NavArea_PrevOpen) != Invalid_Struct && @NavArea_GetTotalCost(this) < flPrevTotalCost) { - // swap position with predecessor - static Struct:other; other = StructGetCell(this, NavArea_PrevOpen); - static Struct:before; before = StructGetCell(other, NavArea_PrevOpen); - static Struct:after; after = StructGetCell(this, NavArea_NextOpen); - - StructSetCell(this, NavArea_NextOpen, other); - StructSetCell(this, NavArea_PrevOpen, before); - - StructSetCell(other, NavArea_PrevOpen, this); - StructSetCell(other, NavArea_NextOpen, after); - - if (before != Invalid_Struct) { - StructSetCell(before, NavArea_NextOpen, this); - } else { - g_sNavAreaOpenList = this; - } + // since value can only decrease, bubble this area up from current spot + static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(this, NavArea_PrevOpen); + static Float:flPrevTotalCost; flPrevTotalCost = @NavArea_GetTotalCost(sPrevOpenArea); - if (after != Invalid_Struct) { - StructSetCell(after, NavArea_PrevOpen, other); - } - } -} + while (StructGetCell(this, NavArea_PrevOpen) != Invalid_Struct && @NavArea_GetTotalCost(this) < flPrevTotalCost) { + // swap position with predecessor + static Struct:other; other = StructGetCell(this, NavArea_PrevOpen); + static Struct:before; before = StructGetCell(other, NavArea_PrevOpen); + static Struct:after; after = StructGetCell(this, NavArea_NextOpen); -@NavArea_RemoveFromOpenList(const &Struct:this) { - static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(this, NavArea_PrevOpen); - static Struct:sNextOpenArea; sNextOpenArea = StructGetCell(this, NavArea_NextOpen); + StructSetCell(this, NavArea_NextOpen, other); + StructSetCell(this, NavArea_PrevOpen, before); - if (sPrevOpenArea != Invalid_Struct) { - StructSetCell(sPrevOpenArea, NavArea_NextOpen, sNextOpenArea); + StructSetCell(other, NavArea_PrevOpen, this); + StructSetCell(other, NavArea_NextOpen, after); + + if (before != Invalid_Struct) { + StructSetCell(before, NavArea_NextOpen, this); } else { - g_sNavAreaOpenList = sNextOpenArea; + g_sNavAreaOpenList = this; } - if (sNextOpenArea != Invalid_Struct) { - StructSetCell(sNextOpenArea, NavArea_PrevOpen, sPrevOpenArea); + if (after != Invalid_Struct) { + StructSetCell(after, NavArea_PrevOpen, other); } + } +} + +@NavArea_RemoveFromOpenList(const &Struct:this) { + static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(this, NavArea_PrevOpen); + static Struct:sNextOpenArea; sNextOpenArea = StructGetCell(this, NavArea_NextOpen); - // zero is an invalid marker - StructSetCell(this, NavArea_OpenMarker, 0); + if (sPrevOpenArea != Invalid_Struct) { + StructSetCell(sPrevOpenArea, NavArea_NextOpen, sNextOpenArea); + } else { + g_sNavAreaOpenList = sNextOpenArea; + } + + if (sNextOpenArea != Invalid_Struct) { + StructSetCell(sNextOpenArea, NavArea_PrevOpen, sPrevOpenArea); + } + + // zero is an invalid marker + StructSetCell(this, NavArea_OpenMarker, 0); } bool:@NavArea_IsOverlappingPoint(const &Struct:this, const Float:vecPoint[3]) { - if ( - vecPoint[0] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && - vecPoint[0] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) && - vecPoint[1] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) && - vecPoint[1] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) - ) { - return true; - } + if ( + vecPoint[0] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && + vecPoint[0] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) && + vecPoint[1] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) && + vecPoint[1] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) + ) { + return true; + } - return false; + return false; } // Return true if 'area' overlaps our 2D extents bool:@NavArea_IsOverlapping(const &Struct:this, Struct:sArea) { - if ( - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) < Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) && - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) > Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) < Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) && - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) > Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) - ) { - return true; - } + if ( + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) < Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) && + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) > Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) < Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) && + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) > Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) + ) { + return true; + } - return false; + return false; } // Return true if given point is on or above this area, but no others bool:@NavArea_Contains(const &Struct:this, const Float:vecPos[3]) { - // check 2D overlap - if (!@NavArea_IsOverlappingPoint(this, vecPos)) { - return false; - } + // check 2D overlap + if (!@NavArea_IsOverlappingPoint(this, vecPos)) { + return false; + } - // the point overlaps us, check that it is above us, but not above any areas that overlap us - new Float:flOurZ = @NavArea_GetZ(this, vecPos); + // the point overlaps us, check that it is above us, but not above any areas that overlap us + new Float:flOurZ = @NavArea_GetZ(this, vecPos); - // if we are above this point, fail - if (flOurZ > vecPos[2]) { - return false; - } + // if we are above this point, fail + if (flOurZ > vecPos[2]) { + return false; + } - new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); - new iOverlapListSize = ArraySize(irgOverlapList); + new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); + new iOverlapListSize = ArraySize(irgOverlapList); - for (new i = 0; i < iOverlapListSize; ++i) { - new Struct:sOtherArea = ArrayGetCell(irgOverlapList, i); + for (new i = 0; i < iOverlapListSize; ++i) { + new Struct:sOtherArea = ArrayGetCell(irgOverlapList, i); - // skip self - if (sOtherArea == this) { - continue; - } + // skip self + if (sOtherArea == this) { + continue; + } - // check 2D overlap - if (!@NavArea_IsOverlappingPoint(sOtherArea, vecPos)) { - continue; - } + // check 2D overlap + if (!@NavArea_IsOverlappingPoint(sOtherArea, vecPos)) { + continue; + } - new Float:flTheirZ = @NavArea_GetZ(sOtherArea, vecPos); - if (flTheirZ > vecPos[2]) { - // they are above the point - continue; - } + new Float:flTheirZ = @NavArea_GetZ(sOtherArea, vecPos); + if (flTheirZ > vecPos[2]) { + // they are above the point + continue; + } - if (flTheirZ > flOurZ) { - // we are below an area that is closer underneath the point - return false; - } + if (flTheirZ > flOurZ) { + // we are below an area that is closer underneath the point + return false; } + } - return true; + return true; } // Return true if this area and given area are approximately co-planar bool:@NavArea_IsCoplanar(const &Struct:this, Struct:sArea) { - static Float:u[3]; - static Float:v[3]; - - // compute our unit surface normal - u[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - u[1] = 0.0; - u[2] = Float:StructGetCell(this, NavArea_NeZ) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2); - - v[0] = 0.0; - v[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - v[2] = Float:StructGetCell(this, NavArea_SwZ) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2); - - static Float:vecNormal[3]; - xs_vec_cross(u, v, vecNormal); - NormalizeInPlace(vecNormal, vecNormal); - - // compute their unit surface normal - u[0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0); - u[1] = 0.0; - u[2] = Float:StructGetCell(sArea, NavArea_NeZ) - StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 2); - - v[0] = 0.0; - v[1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1); - v[2] = Float:StructGetCell(sArea, NavArea_SwZ) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 2); - - static Float:vecOtherNormal[3]; - xs_vec_cross(u, v, vecOtherNormal); - NormalizeInPlace(vecOtherNormal, vecOtherNormal); - - // can only merge areas that are nearly planar, to ensure areas do not differ from underlying geometry much - new Float:flTolerance = 0.99; - if (xs_vec_dot(vecNormal, vecOtherNormal) > flTolerance) { - return true; - } + static Float:u[3]; + static Float:v[3]; + + // compute our unit surface normal + u[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + u[1] = 0.0; + u[2] = Float:StructGetCell(this, NavArea_NeZ) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2); + + v[0] = 0.0; + v[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + v[2] = Float:StructGetCell(this, NavArea_SwZ) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2); + + static Float:vecNormal[3]; + xs_vec_cross(u, v, vecNormal); + NormalizeInPlace(vecNormal, vecNormal); + + // compute their unit surface normal + u[0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0); + u[1] = 0.0; + u[2] = Float:StructGetCell(sArea, NavArea_NeZ) - StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 2); + + v[0] = 0.0; + v[1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1); + v[2] = Float:StructGetCell(sArea, NavArea_SwZ) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 2); + + static Float:vecOtherNormal[3]; + xs_vec_cross(u, v, vecOtherNormal); + NormalizeInPlace(vecOtherNormal, vecOtherNormal); + + // can only merge areas that are nearly planar, to ensure areas do not differ from underlying geometry much + new Float:flTolerance = 0.99; + if (xs_vec_dot(vecNormal, vecOtherNormal) > flTolerance) { + return true; + } - return false; + return false; } // Return Z of area at (x,y) of 'vecPos' // Trilinear interpolation of Z values at quad edges. // NOTE: vecPos[2] is not used. Float:@NavArea_GetZ(const &Struct:this, const Float:vecPos[]) { - static Float:dx; dx = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - static Float:dy; dy = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + static Float:dx; dx = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + static Float:dy; dy = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - static Float:flNeZ; flNeZ = StructGetCell(this, NavArea_NeZ); - static Float:flSwZ; flSwZ = StructGetCell(this, NavArea_SwZ); + static Float:flNeZ; flNeZ = StructGetCell(this, NavArea_NeZ); + static Float:flSwZ; flSwZ = StructGetCell(this, NavArea_SwZ); - // guard against division by zero due to degenerate areas - if (dx == 0.0 || dy == 0.0) { - return flNeZ; - } + // guard against division by zero due to degenerate areas + if (dx == 0.0 || dy == 0.0) { + return flNeZ; + } - static Float:u; u = floatclamp((vecPos[0] - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) / dx, 0.0, 1.0); - static Float:v; v = floatclamp((vecPos[1] - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) / dy, 0.0, 1.0); + static Float:u; u = floatclamp((vecPos[0] - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) / dx, 0.0, 1.0); + static Float:v; v = floatclamp((vecPos[1] - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) / dy, 0.0, 1.0); - static Float:northZ; northZ = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2) + u * (flNeZ - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2)); - static Float:southZ; southZ = flSwZ + u * (Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 2) - flSwZ); + static Float:northZ; northZ = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2) + u * (flNeZ - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2)); + static Float:southZ; southZ = flSwZ + u * (Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 2) - flSwZ); - return northZ + v * (southZ - northZ); + return northZ + v * (southZ - northZ); } // new Float:@NavArea_GetZ(const &Struct:this, new Float:x, new Float:y) { -// static Float:vecPos[3](x, y, 0.0); -// return GetZ(&vecPos); +// static Float:vecPos[3](x, y, 0.0); +// return GetZ(&vecPos); // } // Return closest point to 'vecPos' on 'area'. // Returned point is in 'vecClose'. @NavArea_GetClosestPointOnArea(const &Struct:this, const Float:vecPos[3], Float:vecClose[3]) { - static rgExtent[Extent]; - StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); - - if (vecPos[0] < rgExtent[Extent_Lo][0]) { - if (vecPos[1] < rgExtent[Extent_Lo][1]) { - // position is north-west of area - xs_vec_copy(rgExtent[Extent_Lo], vecClose); - } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { - // position is south-west of area - vecClose[0] = rgExtent[Extent_Lo][0]; - vecClose[1] = rgExtent[Extent_Hi][1]; - } else { - // position is west of area - vecClose[0] = rgExtent[Extent_Lo][0]; - vecClose[1] = vecPos[1]; - } - } else if (vecPos[0] > rgExtent[Extent_Hi][0]) { - if (vecPos[1] < rgExtent[Extent_Lo][1]) { - // position is north-east of area - vecClose[0] = rgExtent[Extent_Hi][0]; - vecClose[1] = rgExtent[Extent_Lo][1]; - } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { - // position is south-east of area - xs_vec_copy(rgExtent[Extent_Hi], vecClose); - } else { - // position is east of area - vecClose[0] = rgExtent[Extent_Hi][0]; - vecClose[1] = vecPos[1]; - } - } else if (vecPos[1] < rgExtent[Extent_Lo][1]) { - // position is north of area - vecClose[0] = vecPos[0]; - vecClose[1] = rgExtent[Extent_Lo][1]; + static rgExtent[Extent]; + StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); + + if (vecPos[0] < rgExtent[Extent_Lo][0]) { + if (vecPos[1] < rgExtent[Extent_Lo][1]) { + // position is north-west of area + xs_vec_copy(rgExtent[Extent_Lo], vecClose); } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { - // position is south of area - vecClose[0] = vecPos[0]; - vecClose[1] = rgExtent[Extent_Hi][1]; + // position is south-west of area + vecClose[0] = rgExtent[Extent_Lo][0]; + vecClose[1] = rgExtent[Extent_Hi][1]; } else { - // position is inside of area - it is the 'closest point' to itself - xs_vec_copy(vecPos, vecClose); - } - - vecClose[2] = @NavArea_GetZ(this, vecClose); + // position is west of area + vecClose[0] = rgExtent[Extent_Lo][0]; + vecClose[1] = vecPos[1]; + } + } else if (vecPos[0] > rgExtent[Extent_Hi][0]) { + if (vecPos[1] < rgExtent[Extent_Lo][1]) { + // position is north-east of area + vecClose[0] = rgExtent[Extent_Hi][0]; + vecClose[1] = rgExtent[Extent_Lo][1]; + } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + // position is south-east of area + xs_vec_copy(rgExtent[Extent_Hi], vecClose); + } else { + // position is east of area + vecClose[0] = rgExtent[Extent_Hi][0]; + vecClose[1] = vecPos[1]; + } + } else if (vecPos[1] < rgExtent[Extent_Lo][1]) { + // position is north of area + vecClose[0] = vecPos[0]; + vecClose[1] = rgExtent[Extent_Lo][1]; + } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + // position is south of area + vecClose[0] = vecPos[0]; + vecClose[1] = rgExtent[Extent_Hi][1]; + } else { + // position is inside of area - it is the 'closest point' to itself + xs_vec_copy(vecPos, vecClose); + } + + vecClose[2] = @NavArea_GetZ(this, vecClose); } // Return shortest distance squared between point and this area Float:@NavArea_GetDistanceSquaredToPoint(const &Struct:this, const Float:vecPos[3]) { - static rgExtent[Extent]; - StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); - - if (vecPos[0] < rgExtent[Extent_Lo][0]) { - if (vecPos[1] < rgExtent[Extent_Lo][1]) { - // position is north-west of area - return floatpower(xs_vec_distance(rgExtent[Extent_Lo], vecPos), 2.0); - } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { - new Float:flSwZ = StructGetCell(this, NavArea_SwZ); - - // position is south-west of area - static Float:d[3]; - d[0] = rgExtent[Extent_Lo][0] - vecPos[0]; - d[1] = rgExtent[Extent_Hi][1] - vecPos[1]; - d[2] = flSwZ - vecPos[2]; - return floatpower(xs_vec_len(d), 2.0); - } else { - // position is west of area - new Float:d = rgExtent[Extent_Lo][0] - vecPos[0]; - return d * d; - } - } else if (vecPos[0] > rgExtent[Extent_Hi][0]) { - if (vecPos[1] < rgExtent[Extent_Lo][1]) { - new Float:flNeZ = StructGetCell(this, NavArea_NeZ); - - // position is north-east of area - static Float:d[3]; - d[0] = rgExtent[Extent_Hi][0] - vecPos[0]; - d[1] = rgExtent[Extent_Lo][1] - vecPos[1]; - d[2] = flNeZ - vecPos[2]; - return floatpower(xs_vec_len(d), 2.0); - } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { - // position is south-east of area - return floatpower(xs_vec_distance(rgExtent[Extent_Hi], vecPos), 2.0); - } else { - // position is east of area - new Float:d = vecPos[2] - rgExtent[Extent_Hi][0]; - return d * d; - } - } else if (vecPos[1] < rgExtent[Extent_Lo][1]) { - // position is north of area - new Float:d = rgExtent[Extent_Lo][1] - vecPos[1]; - return d * d; + static rgExtent[Extent]; + StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); + + if (vecPos[0] < rgExtent[Extent_Lo][0]) { + if (vecPos[1] < rgExtent[Extent_Lo][1]) { + // position is north-west of area + return floatpower(xs_vec_distance(rgExtent[Extent_Lo], vecPos), 2.0); } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { - // position is south of area - new Float:d = vecPos[1] - rgExtent[Extent_Hi][1]; - return d * d; - } else { // position is inside of 2D extent of area - find delta Z - new Float:z = @NavArea_GetZ(this, vecPos); - new Float:d = z - vecPos[2]; - return d * d; - } + new Float:flSwZ = StructGetCell(this, NavArea_SwZ); + + // position is south-west of area + static Float:d[3]; + d[0] = rgExtent[Extent_Lo][0] - vecPos[0]; + d[1] = rgExtent[Extent_Hi][1] - vecPos[1]; + d[2] = flSwZ - vecPos[2]; + return floatpower(xs_vec_len(d), 2.0); + } else { + // position is west of area + new Float:d = rgExtent[Extent_Lo][0] - vecPos[0]; + return d * d; + } + } else if (vecPos[0] > rgExtent[Extent_Hi][0]) { + if (vecPos[1] < rgExtent[Extent_Lo][1]) { + new Float:flNeZ = StructGetCell(this, NavArea_NeZ); + + // position is north-east of area + static Float:d[3]; + d[0] = rgExtent[Extent_Hi][0] - vecPos[0]; + d[1] = rgExtent[Extent_Lo][1] - vecPos[1]; + d[2] = flNeZ - vecPos[2]; + return floatpower(xs_vec_len(d), 2.0); + } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + // position is south-east of area + return floatpower(xs_vec_distance(rgExtent[Extent_Hi], vecPos), 2.0); + } else { + // position is east of area + new Float:d = vecPos[2] - rgExtent[Extent_Hi][0]; + return d * d; + } + } else if (vecPos[1] < rgExtent[Extent_Lo][1]) { + // position is north of area + new Float:d = rgExtent[Extent_Lo][1] - vecPos[1]; + return d * d; + } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + // position is south of area + new Float:d = vecPos[1] - rgExtent[Extent_Hi][1]; + return d * d; + } else { // position is inside of 2D extent of area - find delta Z + new Float:z = @NavArea_GetZ(this, vecPos); + new Float:d = z - vecPos[2]; + return d * d; + } } Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { - new Array:irgConnections = StructGetCell(this, NavArea_Connect, iDir); + new Array:irgConnections = StructGetCell(this, NavArea_Connect, iDir); - new iConnectionCount = ArraySize(irgConnections); - if (!iConnectionCount) { - return Invalid_Struct; - } + new iConnectionCount = ArraySize(irgConnections); + if (!iConnectionCount) { + return Invalid_Struct; + } - new iWhich = random(iConnectionCount); + new iWhich = random(iConnectionCount); - return ArrayGetCell(irgConnections, iWhich, _:NavConnect_Area); + return ArrayGetCell(irgConnections, iWhich, _:NavConnect_Area); } // Compute "portal" between to adjacent areas. // Return center of portal opening, and half-width defining sides of portal from center. // NOTE: center[2] is unset. @NavArea_ComputePortal(const &Struct:this, Struct:sArea, NavDirType:iDir, Float:vecCenter[], &Float:flHalfWidth) { - if (iDir == NORTH || iDir == SOUTH) { - if (iDir == NORTH) { - vecCenter[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - } - else { - vecCenter[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); - } + if (iDir == NORTH || iDir == SOUTH) { + if (iDir == NORTH) { + vecCenter[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } + else { + vecCenter[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + } - new Float:flLeft = floatmax( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) - ); - - new Float:flRight = floatmin( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) - ); - - // clamp to our extent in case areas are disjoint - if (flLeft < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { - flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - } else if (flLeft > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { - flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); - } + new Float:flLeft = floatmax( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) + ); - if (flRight < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { - flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - } else if (flRight > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { - flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); - } + new Float:flRight = floatmin( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) + ); - vecCenter[0] = (flLeft + flRight) / 2.0; - flHalfWidth = (flRight - flLeft) / 2.0; - } else { // EAST or WEST - if (iDir == WEST) { - vecCenter[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - } else { - vecCenter[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); - } + // clamp to our extent in case areas are disjoint + if (flLeft < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { + flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else if (flLeft > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } - new Float:flTop = floatmax( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) - ); - - new Float:flBottom = floatmin( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) - ); - - // clamp to our extent in case areas are disjoint - if (flTop < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { - flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - } else if (flTop > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { - flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); - } + if (flRight < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { + flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else if (flRight > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } - if (flBottom < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { - flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - } else if (flBottom > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { - flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); - } + vecCenter[0] = (flLeft + flRight) / 2.0; + flHalfWidth = (flRight - flLeft) / 2.0; + } else { // EAST or WEST + if (iDir == WEST) { + vecCenter[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else { + vecCenter[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } - vecCenter[1] = (flTop + flBottom) / 2.0; - flHalfWidth = (flBottom - flTop) / 2.0; + new Float:flTop = floatmax( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) + ); + + new Float:flBottom = floatmin( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) + ); + + // clamp to our extent in case areas are disjoint + if (flTop < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { + flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } else if (flTop > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); } + + if (flBottom < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { + flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } else if (flBottom > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + } + + vecCenter[1] = (flTop + flBottom) / 2.0; + flHalfWidth = (flBottom - flTop) / 2.0; + } } // Compute closest point within the "portal" between to adjacent areas. @NavArea_ComputeClosestPointInPortal(const &Struct:this, Struct:sArea, NavDirType:iDir, const Float:vecFromPos[3], Float:vecClosePos[3]) { - new Float:flMargin = GenerationStepSize / 2.0; + new Float:flMargin = GenerationStepSize / 2.0; - if (iDir == NORTH || iDir == SOUTH) { - if (iDir == NORTH) { - vecClosePos[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - } else { - vecClosePos[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); - } + if (iDir == NORTH || iDir == SOUTH) { + if (iDir == NORTH) { + vecClosePos[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } else { + vecClosePos[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + } - new Float:flLeft = floatmax( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) - ); - - new Float:flRight = floatmin( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) - ); - - // clamp to our extent in case areas are disjoint - if (flLeft < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { - flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - } else if (flLeft > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { - flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); - } + new Float:flLeft = floatmax( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) + ); - if (flRight < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { - flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - } else if (flRight > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { - flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); - } + new Float:flRight = floatmin( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) + ); - // keep margin if against edge - new Float:flLeftMargin = (@NavArea_IsEdge(sArea, WEST)) ? (flLeft + flMargin) : flLeft; - new Float:flRightMargin = (@NavArea_IsEdge(sArea, EAST)) ? (flRight - flMargin) : flRight; - - // limit x to within portal - if (vecFromPos[0] < flLeftMargin) { - vecClosePos[0] = flLeftMargin; - } else if (vecFromPos[0] > flRightMargin) { - vecClosePos[0] = flRightMargin; - } else { - vecClosePos[0] = vecFromPos[0]; - } + // clamp to our extent in case areas are disjoint + if (flLeft < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { + flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else if (flLeft > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } - } else { // EAST or WEST - if (iDir == WEST) { - vecClosePos[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - } else { - vecClosePos[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); - } + if (flRight < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { + flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else if (flRight > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } - new Float:flTop = floatmax( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) - ); - - new Float:flBottom = floatmin( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) - ); - - // clamp to our extent in case areas are disjoint - if (flTop < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { - flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - } else if (flTop > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { - flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); - } + // keep margin if against edge + new Float:flLeftMargin = (@NavArea_IsEdge(sArea, WEST)) ? (flLeft + flMargin) : flLeft; + new Float:flRightMargin = (@NavArea_IsEdge(sArea, EAST)) ? (flRight - flMargin) : flRight; - if (flBottom < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { - flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - } else if (flBottom > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { - flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); - } + // limit x to within portal + if (vecFromPos[0] < flLeftMargin) { + vecClosePos[0] = flLeftMargin; + } else if (vecFromPos[0] > flRightMargin) { + vecClosePos[0] = flRightMargin; + } else { + vecClosePos[0] = vecFromPos[0]; + } - // keep margin if against edge - new Float:flTopMargin = (@NavArea_IsEdge(sArea, NORTH)) ? (flTop + flMargin) : flTop; - new Float:flBottomMargin = (@NavArea_IsEdge(sArea, SOUTH)) ? (flBottom - flMargin) : flBottom; - - // limit y to within portal - if (vecFromPos[1] < flTopMargin) { - vecClosePos[1] = flTopMargin; - } else if (vecFromPos[1] > flBottomMargin) { - vecClosePos[1] = flBottomMargin; - } else { - vecClosePos[1] = vecFromPos[1]; - } + } else { // EAST or WEST + if (iDir == WEST) { + vecClosePos[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + } else { + vecClosePos[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + } + + new Float:flTop = floatmax( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) + ); + + new Float:flBottom = floatmin( + Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1), + Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) + ); + + // clamp to our extent in case areas are disjoint + if (flTop < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { + flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } else if (flTop > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); } + + if (flBottom < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { + flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + } else if (flBottom > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + } + + // keep margin if against edge + new Float:flTopMargin = (@NavArea_IsEdge(sArea, NORTH)) ? (flTop + flMargin) : flTop; + new Float:flBottomMargin = (@NavArea_IsEdge(sArea, SOUTH)) ? (flBottom - flMargin) : flBottom; + + // limit y to within portal + if (vecFromPos[1] < flTopMargin) { + vecClosePos[1] = flTopMargin; + } else if (vecFromPos[1] > flBottomMargin) { + vecClosePos[1] = flBottomMargin; + } else { + vecClosePos[1] = vecFromPos[1]; + } + } } // Return true if there are no bi-directional links on the given side bool:@NavArea_IsEdge(const &Struct:this, NavDirType:iDir) { - static Array:irgConnections; irgConnections = StructGetCell(this, NavArea_Connect, iDir); - static iConnectionCount; iConnectionCount = ArraySize(irgConnections); + static Array:irgConnections; irgConnections = StructGetCell(this, NavArea_Connect, iDir); + static iConnectionCount; iConnectionCount = ArraySize(irgConnections); - for (new i = 0; i < iConnectionCount; ++i) { - static Struct:sConnectArea; sConnectArea = ArrayGetCell(irgConnections, i, _:NavConnect_Area); - if (@NavArea_IsConnected(sConnectArea, this, OppositeDirection(iDir))) { - return false; - } + for (new i = 0; i < iConnectionCount; ++i) { + static Struct:sConnectArea; sConnectArea = ArrayGetCell(irgConnections, i, _:NavConnect_Area); + if (@NavArea_IsConnected(sConnectArea, this, OppositeDirection(iDir))) { + return false; } + } - return true; + return true; } bool:@NavArea_IsConnected(const &Struct:this, Struct:sArea, NavDirType:iDir) { - // we are connected to ourself - if (sArea == this) { + // we are connected to ourself + if (sArea == this) { + return true; + } + + if (iDir == NUM_DIRECTIONS) { + // search all directions + for (new iDir = 0; iDir < _:NUM_DIRECTIONS; iDir++) { + if (@NavArea_IsConnected(this, sArea, NavDirType:iDir)) { return true; + } } + } else { + // check specific direction + static Array:irgConnections; irgConnections = StructGetCell(this, NavArea_Connect, iDir); + static iConnectionCount; iConnectionCount = ArraySize(irgConnections); - if (iDir == NUM_DIRECTIONS) { - // search all directions - for (new iDir = 0; iDir < _:NUM_DIRECTIONS; iDir++) { - if (@NavArea_IsConnected(this, sArea, NavDirType:iDir)) { - return true; - } - } - } else { - // check specific direction - static Array:irgConnections; irgConnections = StructGetCell(this, NavArea_Connect, iDir); - static iConnectionCount; iConnectionCount = ArraySize(irgConnections); - - for (new i = 0; i < iConnectionCount; ++i) { - if (sArea == ArrayGetCell(irgConnections, i, _:NavConnect_Area)) { - return true; - } - } + for (new i = 0; i < iConnectionCount; ++i) { + if (sArea == ArrayGetCell(irgConnections, i, _:NavConnect_Area)) { + return true; + } } + } - return false; + return false; } // Return direction from this area to the given point NavDirType:@NavArea_ComputeDirection(const &Struct:this, const Float:vecPoint[3]) { - if (vecPoint[0] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && vecPoint[0] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { - if (vecPoint[1] < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { - return NORTH; - } else if (vecPoint[1] > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { - return SOUTH; - } - } else if (vecPoint[1] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) && vecPoint[1] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { - if (vecPoint[0] < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { - return WEST; - } else if (vecPoint[0] > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { - return EAST; - } + if (vecPoint[0] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && vecPoint[0] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + if (vecPoint[1] < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { + return NORTH; + } else if (vecPoint[1] > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + return SOUTH; + } + } else if (vecPoint[1] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) && vecPoint[1] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + if (vecPoint[0] < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { + return WEST; + } else if (vecPoint[0] > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + return EAST; } + } - // find closest direction - static Float:vecTo[3]; - @NavArea_GetCenter(this, vecTo); - xs_vec_sub(vecPoint, vecTo, vecTo); + // find closest direction + static Float:vecTo[3]; + @NavArea_GetCenter(this, vecTo); + xs_vec_sub(vecPoint, vecTo, vecTo); - if (floatabs(vecTo[0]) > floatabs(vecTo[1])) { - return vecTo[0] > 0.0 ? EAST : WEST; - } else { - return vecTo[1] > 0.0 ? SOUTH : NORTH; - } + if (floatabs(vecTo[0]) > floatabs(vecTo[1])) { + return vecTo[0] > 0.0 ? EAST : WEST; + } else { + return vecTo[1] > 0.0 ? SOUTH : NORTH; + } } @NavArea_GetCorner(const &Struct:this, NavCornerType:corner, Float:vecOut[3]) { - static rgExtent[Extent]; - StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); + static rgExtent[Extent]; + StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); - switch (corner) { - case NORTH_WEST: { - xs_vec_copy(rgExtent[Extent_Lo], vecOut); - return; - } - case NORTH_EAST: { - vecOut[0] = rgExtent[Extent_Hi][0]; - vecOut[1] = rgExtent[Extent_Lo][1]; - vecOut[2] = StructGetCell(this, NavArea_NeZ); - return; - } - case SOUTH_WEST: { - vecOut[0] = rgExtent[Extent_Lo][0]; - vecOut[1] = rgExtent[Extent_Hi][1]; - vecOut[2] = StructGetCell(this, NavArea_SwZ); - return; - } - case SOUTH_EAST: { - xs_vec_copy(rgExtent[Extent_Hi], vecOut); - return; - } + switch (corner) { + case NORTH_WEST: { + xs_vec_copy(rgExtent[Extent_Lo], vecOut); + return; + } + case NORTH_EAST: { + vecOut[0] = rgExtent[Extent_Hi][0]; + vecOut[1] = rgExtent[Extent_Lo][1]; + vecOut[2] = StructGetCell(this, NavArea_NeZ); + return; } + case SOUTH_WEST: { + vecOut[0] = rgExtent[Extent_Lo][0]; + vecOut[1] = rgExtent[Extent_Hi][1]; + vecOut[2] = StructGetCell(this, NavArea_SwZ); + return; + } + case SOUTH_EAST: { + xs_vec_copy(rgExtent[Extent_Hi], vecOut); + return; + } + } } Struct:@NavPath_Create() { - new Struct:this = StructCreate(NavPath); - StructSetCell(this, NavPath_Segments, ArrayCreate()); - return this; + new Struct:this = StructCreate(NavPath); + StructSetCell(this, NavPath_Segments, ArrayCreate()); + return this; } @NavPath_Destroy(&Struct:this) { - new Array:irgSegments = StructGetCell(this, NavPath_Segments); - new iPathSize = ArraySize(irgSegments); + new Array:irgSegments = StructGetCell(this, NavPath_Segments); + new iPathSize = ArraySize(irgSegments); - for (new i = 0; i < iPathSize; ++i) { - new Struct:sSegment = ArrayGetCell(irgSegments, i); - StructDestroy(sSegment); - } + for (new i = 0; i < iPathSize; ++i) { + new Struct:sSegment = ArrayGetCell(irgSegments, i); + StructDestroy(sSegment); + } - ArrayDestroy(irgSegments); - StructDestroy(this); + ArrayDestroy(irgSegments); + StructDestroy(this); } // Build trivial path when start and goal are in the same nav area bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[3], const Float:vecGoal[3]) { - new Array:irgSegments = StructGetCell(this, NavPath_Segments); - ArrayClear(irgSegments); + new Array:irgSegments = StructGetCell(this, NavPath_Segments); + ArrayClear(irgSegments); - StructSetCell(this, NavPath_SegmentCount, 0); + StructSetCell(this, NavPath_SegmentCount, 0); - new Struct:sStartArea = NavAreaGrid_GetNearestNavArea(vecStart, false, nullptr); - if (sStartArea == Invalid_Struct) { - return false; - } + new Struct:sStartArea = NavAreaGrid_GetNearestNavArea(vecStart, false, nullptr); + if (sStartArea == Invalid_Struct) { + return false; + } - new Struct:sGoalArea = NavAreaGrid_GetNearestNavArea(vecGoal, false, nullptr); - if (sGoalArea == Invalid_Struct) { - return false; - } + new Struct:sGoalArea = NavAreaGrid_GetNearestNavArea(vecGoal, false, nullptr); + if (sGoalArea == Invalid_Struct) { + return false; + } - new Struct:sStartSegment = @PathSegment_Create(); - StructSetCell(sStartSegment, PathSegment_Area, sStartArea); - StructSetArray(sStartSegment, PathSegment_Pos, vecStart, sizeof(vecStart)); - StructSetCell(sStartSegment, PathSegment_Pos, @NavArea_GetZ(sStartArea, vecStart), 2); - StructSetCell(sStartSegment, PathSegment_How, NUM_TRAVERSE_TYPES); - @NavPath_PushSegment(this, sStartSegment); + new Struct:sStartSegment = @PathSegment_Create(); + StructSetCell(sStartSegment, PathSegment_Area, sStartArea); + StructSetArray(sStartSegment, PathSegment_Pos, vecStart, sizeof(vecStart)); + StructSetCell(sStartSegment, PathSegment_Pos, @NavArea_GetZ(sStartArea, vecStart), 2); + StructSetCell(sStartSegment, PathSegment_How, NUM_TRAVERSE_TYPES); + @NavPath_PushSegment(this, sStartSegment); - new Struct:sGoalSegment = @PathSegment_Create(); - StructSetCell(sGoalSegment, PathSegment_Area, sGoalArea); - StructSetArray(sGoalSegment, PathSegment_Pos, vecGoal, sizeof(vecGoal)); - StructSetCell(sGoalSegment, PathSegment_Pos, @NavArea_GetZ(sGoalArea, vecGoal), 2); - StructSetCell(sGoalSegment, PathSegment_How, NUM_TRAVERSE_TYPES); - @NavPath_PushSegment(this, sGoalSegment); + new Struct:sGoalSegment = @PathSegment_Create(); + StructSetCell(sGoalSegment, PathSegment_Area, sGoalArea); + StructSetArray(sGoalSegment, PathSegment_Pos, vecGoal, sizeof(vecGoal)); + StructSetCell(sGoalSegment, PathSegment_Pos, @NavArea_GetZ(sGoalArea, vecGoal), 2); + StructSetCell(sGoalSegment, PathSegment_How, NUM_TRAVERSE_TYPES); + @NavPath_PushSegment(this, sGoalSegment); - return true; + return true; } @NavPath_PushSegment(const &Struct:this, Struct:sSegment) { - ArrayPushCell(StructGetCell(this, NavPath_Segments), sSegment); - StructSetCell(this, NavPath_SegmentCount, StructGetCell(this, NavPath_SegmentCount) + 1); + ArrayPushCell(StructGetCell(this, NavPath_Segments), sSegment); + StructSetCell(this, NavPath_SegmentCount, StructGetCell(this, NavPath_SegmentCount) + 1); } @NavPath_ComputePathPositions(const &Struct:this) { - if (!StructGetCell(this, NavPath_SegmentCount)) { - return false; - } - - static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); - static Struct:startSegment; startSegment = ArrayGetCell(irgSegments, 0); - static Struct:sStartArea; sStartArea = StructGetCell(startSegment, PathSegment_Area); - - // start in first area's center - static Float:vecStart[3]; - @NavArea_GetCenter(sStartArea, vecStart); - - StructSetArray(startSegment, PathSegment_Pos, vecStart, sizeof(vecStart)); - StructSetCell(startSegment, PathSegment_How, NUM_TRAVERSE_TYPES); - - for (new i = 1; i < StructGetCell(this, NavPath_SegmentCount); i++) { - static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); - static Struct:sFromArea; sFromArea = StructGetCell(sFromSegment, PathSegment_Area); - static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); - static Struct:sToArea; sToArea = StructGetCell(sToSegment, PathSegment_Area); - - static Float:vecFromPos[3]; - StructGetArray(sFromSegment, PathSegment_Pos, vecFromPos, sizeof(vecFromPos)); - - static Float:vecToPos[3]; - StructGetArray(sToSegment, PathSegment_Pos, vecToPos, sizeof(vecToPos)); - - // walk along the floor to the next area - static NavTraverseType:toHow; toHow = StructGetCell(sToSegment, PathSegment_How); - if (toHow <= GO_WEST) { - // compute next point, keeping path as straight as possible - @NavArea_ComputeClosestPointInPortal(sFromArea, sToArea, NavDirType:toHow, vecFromPos, vecToPos); - - // move goal position into the goal area a bit - // how far to "step into" an area - must be less than min area size - static const Float:flStepInDist = 5.0; - AddDirectionVector(vecToPos, NavDirType:toHow, flStepInDist); - - // we need to walk out of "from" area, so keep Z where we can reach it - StructSetCell(sToSegment, PathSegment_Pos, @NavArea_GetZ(sFromArea, vecToPos), 2); - - // if this is a "jump down" connection, we must insert an additional point on the path - if (!@NavArea_IsConnected(sToArea, sFromArea, NUM_DIRECTIONS)) { - // this is a "jump down" link - // compute direction of path just prior to "jump down" - static Float:flDir[2]; - DirectionToVector2D(NavDirType:toHow, flDir); - - // shift top of "jump down" out a bit to "get over the ledge" - static const Float:flPushDist = 25.0; - StructSetCell(sToSegment, PathSegment_Pos, Float:StructGetCell(sToSegment, PathSegment_Pos, 0) + (flPushDist * flDir[0]), 0); - StructSetCell(sToSegment, PathSegment_Pos, Float:StructGetCell(sToSegment, PathSegment_Pos, 1) + (flPushDist * flDir[1]), 1); - - // insert a duplicate node to represent the bottom of the fall - if (StructGetCell(this, NavPath_SegmentCount) < MAX_PATH_SEGMENTS - 1) { - static Struct:sOldSegment; sOldSegment = ArrayGetCell(irgSegments, i); - static Struct:sSegment; sSegment = StructClone(sOldSegment); - StructSetCell(sSegment, PathSegment_Pos, vecToPos[0] + flPushDist * flDir[0], 0); - StructSetCell(sSegment, PathSegment_Pos, vecToPos[1] + flPushDist * flDir[1], 1); - - // put this one at the bottom of the fall - static Float:vecPos[3]; - StructGetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); - StructSetCell(sSegment, PathSegment_Pos, @NavArea_GetZ(sToArea, vecPos), 2); - - ArrayInsertCellAfter(irgSegments, i, sSegment); - - // path is one node longer - StructSetCell(this, NavPath_SegmentCount, StructGetCell(this, NavPath_SegmentCount) + 1); - - // move index ahead into the new node we just duplicated - i++; - } - } + if (!StructGetCell(this, NavPath_SegmentCount)) { + return false; + } + + static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); + static Struct:startSegment; startSegment = ArrayGetCell(irgSegments, 0); + static Struct:sStartArea; sStartArea = StructGetCell(startSegment, PathSegment_Area); + + // start in first area's center + static Float:vecStart[3]; + @NavArea_GetCenter(sStartArea, vecStart); + + StructSetArray(startSegment, PathSegment_Pos, vecStart, sizeof(vecStart)); + StructSetCell(startSegment, PathSegment_How, NUM_TRAVERSE_TYPES); + + for (new i = 1; i < StructGetCell(this, NavPath_SegmentCount); i++) { + static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); + static Struct:sFromArea; sFromArea = StructGetCell(sFromSegment, PathSegment_Area); + static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); + static Struct:sToArea; sToArea = StructGetCell(sToSegment, PathSegment_Area); + + static Float:vecFromPos[3]; + StructGetArray(sFromSegment, PathSegment_Pos, vecFromPos, sizeof(vecFromPos)); + + static Float:vecToPos[3]; + StructGetArray(sToSegment, PathSegment_Pos, vecToPos, sizeof(vecToPos)); + + // walk along the floor to the next area + static NavTraverseType:toHow; toHow = StructGetCell(sToSegment, PathSegment_How); + if (toHow <= GO_WEST) { + // compute next point, keeping path as straight as possible + @NavArea_ComputeClosestPointInPortal(sFromArea, sToArea, NavDirType:toHow, vecFromPos, vecToPos); + + // move goal position into the goal area a bit + // how far to "step into" an area - must be less than min area size + static const Float:flStepInDist = 5.0; + AddDirectionVector(vecToPos, NavDirType:toHow, flStepInDist); + + // we need to walk out of "from" area, so keep Z where we can reach it + StructSetCell(sToSegment, PathSegment_Pos, @NavArea_GetZ(sFromArea, vecToPos), 2); + + // if this is a "jump down" connection, we must insert an additional point on the path + if (!@NavArea_IsConnected(sToArea, sFromArea, NUM_DIRECTIONS)) { + // this is a "jump down" link + // compute direction of path just prior to "jump down" + static Float:flDir[2]; + DirectionToVector2D(NavDirType:toHow, flDir); + + // shift top of "jump down" out a bit to "get over the ledge" + static const Float:flPushDist = 25.0; + StructSetCell(sToSegment, PathSegment_Pos, Float:StructGetCell(sToSegment, PathSegment_Pos, 0) + (flPushDist * flDir[0]), 0); + StructSetCell(sToSegment, PathSegment_Pos, Float:StructGetCell(sToSegment, PathSegment_Pos, 1) + (flPushDist * flDir[1]), 1); + + // insert a duplicate node to represent the bottom of the fall + if (StructGetCell(this, NavPath_SegmentCount) < MAX_PATH_SEGMENTS - 1) { + static Struct:sOldSegment; sOldSegment = ArrayGetCell(irgSegments, i); + static Struct:sSegment; sSegment = StructClone(sOldSegment); + StructSetCell(sSegment, PathSegment_Pos, vecToPos[0] + flPushDist * flDir[0], 0); + StructSetCell(sSegment, PathSegment_Pos, vecToPos[1] + flPushDist * flDir[1], 1); + + // put this one at the bottom of the fall + static Float:vecPos[3]; + StructGetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); + StructSetCell(sSegment, PathSegment_Pos, @NavArea_GetZ(sToArea, vecPos), 2); + + ArrayInsertCellAfter(irgSegments, i, sSegment); + + // path is one node longer + StructSetCell(this, NavPath_SegmentCount, StructGetCell(this, NavPath_SegmentCount) + 1); + + // move index ahead into the new node we just duplicated + i++; } + } } + } - return true; + return true; } bool:@NavPath_IsValid(const &Struct:this) { - return StructGetCell(this, NavPath_SegmentCount) > 0; + return StructGetCell(this, NavPath_SegmentCount) > 0; } @NavPath_GetSegmentCount(const &Struct:this) { - return StructGetCell(this, NavPath_SegmentCount); + return StructGetCell(this, NavPath_SegmentCount); } @NavPath_Invalidate(const &Struct:this) { - StructSetCell(this, NavPath_SegmentCount, 0); + StructSetCell(this, NavPath_SegmentCount, 0); } @NavPath_GetEndpoint(const &Struct:this, Float:vecEndpoint[]) { - static iSegmentCount; iSegmentCount = StructGetCell(this, NavPath_SegmentCount); - static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); - static Struct:sSegment; sSegment = ArrayGetCell(irgSegments, iSegmentCount - 1); - StructGetArray(sSegment, PathSegment_Pos, vecEndpoint, 3); + static iSegmentCount; iSegmentCount = StructGetCell(this, NavPath_SegmentCount); + static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); + static Struct:sSegment; sSegment = ArrayGetCell(irgSegments, iSegmentCount - 1); + StructGetArray(sSegment, PathSegment_Pos, vecEndpoint, 3); } // Return true if position is at the end of the path bool:@NavPath_IsAtEnd(const &Struct:this, const Float:vecPos[3]) { - if (!@NavPath_IsValid(this)) { - return false; - } + if (!@NavPath_IsValid(this)) { + return false; + } - static Float:vecEndpoint[3]; - @NavPath_GetEndpoint(this, vecEndpoint); - return xs_vec_distance(vecPos, vecEndpoint) < 20.0; + static Float:vecEndpoint[3]; + @NavPath_GetEndpoint(this, vecEndpoint); + return xs_vec_distance(vecPos, vecEndpoint) < 20.0; } // Return point a given distance along the path - if distance is out of path bounds, point is clamped to start/end // TODO: Be careful of returning "positions" along one-way drops, ladders, etc. bool:@NavPath_GetPointAlongPath(const &Struct:this, Float:flDistAlong, Float:vecPointOnPath[3]) { - if (!@NavPath_IsValid(this) || !xs_vec_len(vecPointOnPath)) { - return false; - } - - static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); + if (!@NavPath_IsValid(this) || !xs_vec_len(vecPointOnPath)) { + return false; + } - if (flDistAlong <= 0.0) { - static Struct:sFirstSegment; sFirstSegment = ArrayGetCell(irgSegments, 0); - StructGetArray(sFirstSegment, PathSegment_Pos, vecPointOnPath, 3); - return true; - } + static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); - static Float:flLengthSoFar; flLengthSoFar = 0.0; - static Float:flSegmentLength; - static Float:vecDir[3]; + if (flDistAlong <= 0.0) { + static Struct:sFirstSegment; sFirstSegment = ArrayGetCell(irgSegments, 0); + StructGetArray(sFirstSegment, PathSegment_Pos, vecPointOnPath, 3); + return true; + } - for (new i = 1; i < @NavPath_GetSegmentCount(this); i++) { - static Float:vecFrom[3]; - static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); - StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); + static Float:flLengthSoFar; flLengthSoFar = 0.0; + static Float:flSegmentLength; + static Float:vecDir[3]; - static Float:vecTo[3]; - static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); - StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); + for (new i = 1; i < @NavPath_GetSegmentCount(this); i++) { + static Float:vecFrom[3]; + static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); + StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); - xs_vec_sub(vecTo, vecFrom, vecDir); + static Float:vecTo[3]; + static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); + StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); - flSegmentLength = xs_vec_len(vecDir); + xs_vec_sub(vecTo, vecFrom, vecDir); - if (flSegmentLength + flLengthSoFar >= flDistAlong) { - // desired point is on this segment of the path - static Float:delta; delta = flDistAlong - flLengthSoFar; - static Float:t; t = delta / flSegmentLength; + flSegmentLength = xs_vec_len(vecDir); - for (new j = 0; j < 3; ++j) { - vecPointOnPath[j] = vecTo[j] + t * vecDir[j]; - } + if (flSegmentLength + flLengthSoFar >= flDistAlong) { + // desired point is on this segment of the path + static Float:delta; delta = flDistAlong - flLengthSoFar; + static Float:t; t = delta / flSegmentLength; - return true; - } + for (new j = 0; j < 3; ++j) { + vecPointOnPath[j] = vecTo[j] + t * vecDir[j]; + } - flLengthSoFar += flSegmentLength; + return true; } - @NavPath_GetEndpoint(this, vecPointOnPath); + flLengthSoFar += flSegmentLength; + } - return true; + @NavPath_GetEndpoint(this, vecPointOnPath); + + return true; } // Compute closest point on path to given point // NOTE: This does not do line-of-sight tests, so closest point may be thru the floor, etc bool:@NavPath_FindClosestPointOnPath(const &Struct:this, const Float:vecWorldPos[3], iStartIndex, iEndIndex, Float:vecClose[3]) { - if (!@NavPath_IsValid(this) || !vecClose) { - return false; - } + if (!@NavPath_IsValid(this) || !vecClose) { + return false; + } - static Float:vecAlong[3]; - static Float:vecToWorldPos[3]; - static Float:vecPos[3]; - static Float:flLength; - static Float:flCloseLength; - static Float:flCloseDistSq = 9999999999.9; - static Float:flDistSq; + static Float:vecAlong[3]; + static Float:vecToWorldPos[3]; + static Float:vecPos[3]; + static Float:flLength; + static Float:flCloseLength; + static Float:flCloseDistSq = 9999999999.9; + static Float:flDistSq; - new Array:irgSegments = StructGetCell(this, NavPath_Segments); + new Array:irgSegments = StructGetCell(this, NavPath_Segments); - for (new i = iStartIndex; i <= iEndIndex; i++) { - static Float:vecFrom[3]; - static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); - StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); + for (new i = iStartIndex; i <= iEndIndex; i++) { + static Float:vecFrom[3]; + static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); + StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); - static Float:vecTo[3]; - static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); - StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); + static Float:vecTo[3]; + static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); + StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); - // compute ray along this path segment - xs_vec_sub(vecTo, vecFrom, vecAlong); + // compute ray along this path segment + xs_vec_sub(vecTo, vecFrom, vecAlong); - // make it a unit vector along the path - flLength = NormalizeInPlace(vecAlong, vecAlong); + // make it a unit vector along the path + flLength = NormalizeInPlace(vecAlong, vecAlong); - // compute vector from start of segment to our point - xs_vec_sub(vecWorldPos, vecFrom, vecToWorldPos); + // compute vector from start of segment to our point + xs_vec_sub(vecWorldPos, vecFrom, vecToWorldPos); - // find distance of closest point on ray - flCloseLength = xs_vec_dot(vecToWorldPos, vecAlong); + // find distance of closest point on ray + flCloseLength = xs_vec_dot(vecToWorldPos, vecAlong); - // constrain point to be on path segment - if (flCloseLength <= 0.0) { - xs_vec_copy(vecFrom, vecPos); - } else if (flCloseLength >= flLength) { - xs_vec_copy(vecFrom, vecTo); - } else { - xs_vec_add_scaled(vecFrom, vecAlong, flCloseLength, vecPos); - } + // constrain point to be on path segment + if (flCloseLength <= 0.0) { + xs_vec_copy(vecFrom, vecPos); + } else if (flCloseLength >= flLength) { + xs_vec_copy(vecFrom, vecTo); + } else { + xs_vec_add_scaled(vecFrom, vecAlong, flCloseLength, vecPos); + } - flDistSq = floatpower(xs_vec_distance(vecPos, vecWorldPos), 2.0); + flDistSq = floatpower(xs_vec_distance(vecPos, vecWorldPos), 2.0); - // keep the closest point so far - if (flDistSq < flCloseDistSq) { - flCloseDistSq = flDistSq; - xs_vec_copy(vecPos, vecClose); - } + // keep the closest point so far + if (flDistSq < flCloseDistSq) { + flCloseDistSq = flDistSq; + xs_vec_copy(vecPos, vecClose); } + } - return true; + return true; } Struct:@BuildPathTask_Create() { - new Struct:this = StructCreate(BuildPathTask); - StructSetCell(this, BuildPathTask_Path, @NavPath_Create()); - return this; + new Struct:this = StructCreate(BuildPathTask); + StructSetCell(this, BuildPathTask_Path, @NavPath_Create()); + return this; } @BuildPathTask_Destroy(&Struct:this) { - new Struct:sNavPath = StructGetCell(this, BuildPathTask_Path); - @NavPath_Destroy(sNavPath); - StructDestroy(this); + new Struct:sNavPath = StructGetCell(this, BuildPathTask_Path); + @NavPath_Destroy(sNavPath); + StructDestroy(this); } Struct:@PathSegment_Create() { - new Struct:this = StructCreate(PathSegment); - return this; + new Struct:this = StructCreate(PathSegment); + return this; } @PathSegment_Destroy(&Struct:this) { - StructDestroy(this); + StructDestroy(this); } NavAreaGrid_ComputeHashKey(iId) { // returns a hash key for the given nav area ID - return iId & 0xFF; + return iId & 0xFF; } NavAreaGrid_Init(Float:flMinX, Float:flMaxX, Float:flMinY, Float:flMaxY) { - g_rgGrid[NavAreaGrid_CellSize] = 300.0; - g_rgGrid[NavAreaGrid_MinX] = flMinX; - g_rgGrid[NavAreaGrid_MinY] = flMinY; - g_rgGrid[NavAreaGrid_GridSizeX] = floatround((flMaxX - flMinX) / g_rgGrid[NavAreaGrid_CellSize] + 1); - g_rgGrid[NavAreaGrid_GridSizeY] = floatround((flMaxY - flMinY) / g_rgGrid[NavAreaGrid_CellSize] + 1); - g_rgGrid[NavAreaGrid_AreaCount] = 0; + g_rgGrid[NavAreaGrid_CellSize] = 300.0; + g_rgGrid[NavAreaGrid_MinX] = flMinX; + g_rgGrid[NavAreaGrid_MinY] = flMinY; + g_rgGrid[NavAreaGrid_GridSizeX] = floatround((flMaxX - flMinX) / g_rgGrid[NavAreaGrid_CellSize] + 1); + g_rgGrid[NavAreaGrid_GridSizeY] = floatround((flMaxY - flMinY) / g_rgGrid[NavAreaGrid_CellSize] + 1); + g_rgGrid[NavAreaGrid_AreaCount] = 0; - new iGridSize = g_rgGrid[NavAreaGrid_GridSizeX] * g_rgGrid[NavAreaGrid_GridSizeY]; + new iGridSize = g_rgGrid[NavAreaGrid_GridSizeX] * g_rgGrid[NavAreaGrid_GridSizeY]; - g_rgGrid[NavAreaGrid_Grid] = ArrayCreate(_, iGridSize); + g_rgGrid[NavAreaGrid_Grid] = ArrayCreate(_, iGridSize); - for (new i = 0; i < iGridSize; ++i) { - ArrayPushCell(g_rgGrid[NavAreaGrid_Grid], ArrayCreate()); - } + for (new i = 0; i < iGridSize; ++i) { + ArrayPushCell(g_rgGrid[NavAreaGrid_Grid], ArrayCreate()); + } } NavAreaGrid_Free() { - if (g_rgGrid[NavAreaGrid_Grid] != Invalid_Array) { - new iGridSize = ArraySize(g_rgGrid[NavAreaGrid_Grid]); + if (g_rgGrid[NavAreaGrid_Grid] != Invalid_Array) { + new iGridSize = ArraySize(g_rgGrid[NavAreaGrid_Grid]); - for (new i = 0; i < iGridSize; ++i) { - new Array:irgAreas = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], i); - ArrayDestroy(irgAreas); - } - - ArrayDestroy(g_rgGrid[NavAreaGrid_Grid]); + for (new i = 0; i < iGridSize; ++i) { + new Array:irgAreas = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], i); + ArrayDestroy(irgAreas); } + + ArrayDestroy(g_rgGrid[NavAreaGrid_Grid]); + } } Struct:NavAreaGrid_GetNavAreaById(iAreaId) { - if (iAreaId == 0) { - return Invalid_Struct; - } + if (iAreaId == 0) { + return Invalid_Struct; + } - new iKey = NavAreaGrid_ComputeHashKey(iAreaId); + new iKey = NavAreaGrid_ComputeHashKey(iAreaId); - for (new Struct:sArea = g_rgGrid[NavAreaGrid_HashTable][iKey]; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_NextHash)) { - if (@NavArea_GetId(sArea) == iAreaId) { - return sArea; - } + for (new Struct:sArea = g_rgGrid[NavAreaGrid_HashTable][iKey]; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_NextHash)) { + if (@NavArea_GetId(sArea) == iAreaId) { + return sArea; } + } - return Invalid_Struct; + return Invalid_Struct; } NavAreaGrid_AddNavArea(Struct:sArea) { - // add to grid - new iLoX = NavAreaGrid_WorldToGridX(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0)); - new iLoY = NavAreaGrid_WorldToGridY(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1)); - new iHiX = NavAreaGrid_WorldToGridX(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0)); - new iHiY = NavAreaGrid_WorldToGridY(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1)); - - for (new y = iLoY; y <= iHiY; y++) { - for (new x = iLoX; x <= iHiX; x++) { - new Array:irgAreas = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], x + y * g_rgGrid[NavAreaGrid_GridSizeX]); - ArrayPushCell(irgAreas, sArea); - } + // add to grid + new iLoX = NavAreaGrid_WorldToGridX(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0)); + new iLoY = NavAreaGrid_WorldToGridY(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1)); + new iHiX = NavAreaGrid_WorldToGridX(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0)); + new iHiY = NavAreaGrid_WorldToGridY(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1)); + + for (new y = iLoY; y <= iHiY; y++) { + for (new x = iLoX; x <= iHiX; x++) { + new Array:irgAreas = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], x + y * g_rgGrid[NavAreaGrid_GridSizeX]); + ArrayPushCell(irgAreas, sArea); } + } - new iAreaId = StructGetCell(sArea, NavArea_Id); + new iAreaId = StructGetCell(sArea, NavArea_Id); - // add to hash table - new iKey = NavAreaGrid_ComputeHashKey(iAreaId); + // add to hash table + new iKey = NavAreaGrid_ComputeHashKey(iAreaId); - if (g_rgGrid[NavAreaGrid_HashTable][iKey] != Invalid_Struct) { - // add to head of list in this slot - StructSetCell(sArea, NavArea_PrevHash, Invalid_Struct); - StructSetCell(sArea, NavArea_NextHash, g_rgGrid[NavAreaGrid_HashTable][iKey]); - StructSetCell(g_rgGrid[NavAreaGrid_HashTable][iKey], NavArea_PrevHash, sArea); - g_rgGrid[NavAreaGrid_HashTable][iKey] = sArea; - } else { - // first entry in this slot - g_rgGrid[NavAreaGrid_HashTable][iKey] = sArea; - StructSetCell(sArea, NavArea_NextHash, Invalid_Struct); - StructSetCell(sArea, NavArea_PrevHash, Invalid_Struct); - } + if (g_rgGrid[NavAreaGrid_HashTable][iKey] != Invalid_Struct) { + // add to head of list in this slot + StructSetCell(sArea, NavArea_PrevHash, Invalid_Struct); + StructSetCell(sArea, NavArea_NextHash, g_rgGrid[NavAreaGrid_HashTable][iKey]); + StructSetCell(g_rgGrid[NavAreaGrid_HashTable][iKey], NavArea_PrevHash, sArea); + g_rgGrid[NavAreaGrid_HashTable][iKey] = sArea; + } else { + // first entry in this slot + g_rgGrid[NavAreaGrid_HashTable][iKey] = sArea; + StructSetCell(sArea, NavArea_NextHash, Invalid_Struct); + StructSetCell(sArea, NavArea_PrevHash, Invalid_Struct); + } - g_rgGrid[NavAreaGrid_AreaCount]++; + g_rgGrid[NavAreaGrid_AreaCount]++; } // Given a position, return the nav area that IsOverlapping and is *immediately* beneath it Struct:NavAreaGrid_GetNavArea(const Float:vecPos[3], Float:flBeneathLimit) { - if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) { - return Invalid_Struct; - } - - // get list in cell that contains position - new x = NavAreaGrid_WorldToGridX(vecPos[0]); - new y = NavAreaGrid_WorldToGridY(vecPos[1]); - - new Array:irgList = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], x + y * g_rgGrid[NavAreaGrid_GridSizeX]); - - // search cell list to find correct area - new Struct:sUseArea = Invalid_Struct; - new Float:useZ = -99999999.9; - static Float:vecTestPos[3]; - xs_vec_add(vecPos, Float:{0, 0, 5}, vecTestPos); - - new iListSize = ArraySize(irgList); - for (new i = 0; i < iListSize; ++i) { - new Struct:sArea = ArrayGetCell(irgList, i); - - // check if position is within 2D boundaries of this area - if (@NavArea_IsOverlappingPoint(sArea, vecTestPos)) { - // project position onto area to get Z - new Float:z = @NavArea_GetZ(sArea, vecTestPos); - - // if area is above us, skip it - if (z > vecTestPos[2]) { - continue; - } - - // if area is too far below us, skip it - if (z < vecPos[2] - flBeneathLimit) { - continue; - } - - // if area is higher than the one we have, use this instead - if (z > useZ) { - sUseArea = sArea; - useZ = z; - } - } + if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) { + return Invalid_Struct; + } + + // get list in cell that contains position + new x = NavAreaGrid_WorldToGridX(vecPos[0]); + new y = NavAreaGrid_WorldToGridY(vecPos[1]); + + new Array:irgList = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], x + y * g_rgGrid[NavAreaGrid_GridSizeX]); + + // search cell list to find correct area + new Struct:sUseArea = Invalid_Struct; + new Float:useZ = -99999999.9; + static Float:vecTestPos[3]; + xs_vec_add(vecPos, Float:{0, 0, 5}, vecTestPos); + + new iListSize = ArraySize(irgList); + for (new i = 0; i < iListSize; ++i) { + new Struct:sArea = ArrayGetCell(irgList, i); + + // check if position is within 2D boundaries of this area + if (@NavArea_IsOverlappingPoint(sArea, vecTestPos)) { + // project position onto area to get Z + new Float:z = @NavArea_GetZ(sArea, vecTestPos); + + // if area is above us, skip it + if (z > vecTestPos[2]) { + continue; + } + + // if area is too far below us, skip it + if (z < vecPos[2] - flBeneathLimit) { + continue; + } + + // if area is higher than the one we have, use this instead + if (z > useZ) { + sUseArea = sArea; + useZ = z; + } } + } - return sUseArea; + return sUseArea; } NavAreaGrid_WorldToGridX(Float:wx) { - return clamp( - floatround((wx - g_rgGrid[NavAreaGrid_MinX]) / g_rgGrid[NavAreaGrid_CellSize], floatround_ceil), - 0, - g_rgGrid[NavAreaGrid_GridSizeX] - 1 - ); + return clamp( + floatround((wx - g_rgGrid[NavAreaGrid_MinX]) / g_rgGrid[NavAreaGrid_CellSize], floatround_ceil), + 0, + g_rgGrid[NavAreaGrid_GridSizeX] - 1 + ); } NavAreaGrid_WorldToGridY(Float:wy) { - return clamp( - floatround((wy - g_rgGrid[NavAreaGrid_MinY]) / g_rgGrid[NavAreaGrid_CellSize], floatround_ceil), - 0, - g_rgGrid[NavAreaGrid_GridSizeY] - 1 - ); + return clamp( + floatround((wy - g_rgGrid[NavAreaGrid_MinY]) / g_rgGrid[NavAreaGrid_CellSize], floatround_ceil), + 0, + g_rgGrid[NavAreaGrid_GridSizeY] - 1 + ); } // Given a position in the world, return the nav area that is closest // and at the same height, or beneath it. // Used to find initial area if we start off of the mesh. Struct:NavAreaGrid_GetNearestNavArea(const Float:vecPos[3], bool:bAnyZ, pIgnoreEnt) { - if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) { - return Invalid_Struct; - } + if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) { + return Invalid_Struct; + } - new Struct:sCloseArea = Invalid_Struct; - new Float:flCloseDistSq = 100000000.0; + new Struct:sCloseArea = Invalid_Struct; + new Float:flCloseDistSq = 100000000.0; - // quick check - sCloseArea = NavAreaGrid_GetNavArea(vecPos, 120.0); - if (sCloseArea) { - return sCloseArea; - } - - // ensure source position is well behaved - static Float:vecSource[3]; - vecSource[0] = vecPos[0]; - vecSource[1] = vecPos[1]; + // quick check + sCloseArea = NavAreaGrid_GetNavArea(vecPos, 120.0); + if (sCloseArea) { + return sCloseArea; + } - if (GetGroundHeight(vecPos, vecSource[2], pIgnoreEnt) == false) { - return Invalid_Struct; - } + // ensure source position is well behaved + static Float:vecSource[3]; + vecSource[0] = vecPos[0]; + vecSource[1] = vecPos[1]; - vecSource[2] += HalfHumanHeight; + if (GetGroundHeight(vecPos, vecSource[2], pIgnoreEnt) == false) { + return Invalid_Struct; + } - // TODO: Step incrementally using grid for speed + vecSource[2] += HalfHumanHeight; - // find closest nav area - new iNavAreaCount = ArraySize(g_irgNavAreaList); - for (new i = 0; i < iNavAreaCount; ++i) { - new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); + // TODO: Step incrementally using grid for speed - static Float:flAreaPos[3]; - @NavArea_GetClosestPointOnArea(sArea, vecSource, flAreaPos); + // find closest nav area + new iNavAreaCount = ArraySize(g_irgNavAreaList); + for (new i = 0; i < iNavAreaCount; ++i) { + new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); - new Float:flDistSq = floatpower(xs_vec_distance(flAreaPos, vecSource), 2.0); + static Float:flAreaPos[3]; + @NavArea_GetClosestPointOnArea(sArea, vecSource, flAreaPos); - // keep the closest area - if (flDistSq < flCloseDistSq) { - // check LOS to area - if (!bAnyZ) { - static Float:vecEnd[3]; - xs_vec_copy(flAreaPos, vecEnd); - vecEnd[2] += HalfHumanHeight; + new Float:flDistSq = floatpower(xs_vec_distance(flAreaPos, vecSource), 2.0); - engfunc(EngFunc_TraceLine, vecSource, vecEnd, IGNORE_MONSTERS | IGNORE_GLASS, pIgnoreEnt, g_pTrace); + // keep the closest area + if (flDistSq < flCloseDistSq) { + // check LOS to area + if (!bAnyZ) { + static Float:vecEnd[3]; + xs_vec_copy(flAreaPos, vecEnd); + vecEnd[2] += HalfHumanHeight; - static Float:flFraction; - get_tr2(g_pTrace, TR_flFraction, flFraction); - if (flFraction != 1.0) { - continue; - } - } + engfunc(EngFunc_TraceLine, vecSource, vecEnd, IGNORE_MONSTERS | IGNORE_GLASS, pIgnoreEnt, g_pTrace); - flCloseDistSq = flDistSq; - sCloseArea = sArea; + static Float:flFraction; + get_tr2(g_pTrace, TR_flFraction, flFraction); + if (flFraction != 1.0) { + continue; } + } + + flCloseDistSq = flDistSq; + sCloseArea = sArea; } + } - return sCloseArea; + return sCloseArea; } // NavAreaGrid_GetNavAreaCount() { -// return g_rgGrid[NavAreaGrid_AreaCount]; +// return g_rgGrid[NavAreaGrid_AreaCount]; // } NavErrorType:LoadNavigationMap() { - new szMapName[32]; - get_mapname(szMapName, charsmax(szMapName)); + new szMapName[32]; + get_mapname(szMapName, charsmax(szMapName)); - static szFilePath[256]; - format(szFilePath, charsmax(szFilePath), "maps/%s.nav", szMapName); + static szFilePath[256]; + format(szFilePath, charsmax(szFilePath), "maps/%s.nav", szMapName); - if (!file_exists(szFilePath)) { - log_amx("File ^"%s^" not found!", szFilePath); - return NAV_CANT_ACCESS_FILE; - } + if (!file_exists(szFilePath)) { + log_amx("File ^"%s^" not found!", szFilePath); + return NAV_CANT_ACCESS_FILE; + } - g_irgNavAreaList = ArrayCreate(); + g_irgNavAreaList = ArrayCreate(); - new iFile = fopen(szFilePath, "rb"); - g_iNavAreaNextId = 1; + new iFile = fopen(szFilePath, "rb"); + g_iNavAreaNextId = 1; - new iMagic; - if (!FileReadInt32(iFile, iMagic)) { - return NAV_INVALID_FILE; - } + new iMagic; + if (!FileReadInt32(iFile, iMagic)) { + return NAV_INVALID_FILE; + } - if (iMagic != NAV_MAGIC_NUMBER) { - log_amx("Wrong magic number %d. Should be %d.", iMagic, NAV_MAGIC_NUMBER); - return NAV_INVALID_FILE; - } + if (iMagic != NAV_MAGIC_NUMBER) { + log_amx("Wrong magic number %d. Should be %d.", iMagic, NAV_MAGIC_NUMBER); + return NAV_INVALID_FILE; + } - new iVersion; - if (!FileReadInt32(iFile, iVersion)) { - return NAV_BAD_FILE_VERSION; - } + new iVersion; + if (!FileReadInt32(iFile, iVersion)) { + return NAV_BAD_FILE_VERSION; + } - if (iVersion > NAV_VERSION) { - log_amx("Wrong version %d. Should be less then %d.", iVersion, NAV_VERSION); - return NAV_BAD_FILE_VERSION; - } + if (iVersion > NAV_VERSION) { + log_amx("Wrong version %d. Should be less then %d.", iVersion, NAV_VERSION); + return NAV_BAD_FILE_VERSION; + } - log_amx("Nav version: %d", iVersion); + log_amx("Nav version: %d", iVersion); - if (iVersion >= 4) { - fseek(iFile, BLOCK_INT, SEEK_CUR); - } + if (iVersion >= 4) { + fseek(iFile, BLOCK_INT, SEEK_CUR); + } - // load Place directory - if (iVersion >= NAV_VERSION) { - new iPlaceCount; - FileReadUint16(iFile, iPlaceCount); + // load Place directory + if (iVersion >= NAV_VERSION) { + new iPlaceCount; + FileReadUint16(iFile, iPlaceCount); - for (new i = 0; i < iPlaceCount; ++i) { - new iLen; - FileReadUint16(iFile, iLen); - fseek(iFile, iLen, SEEK_CUR); - } + for (new i = 0; i < iPlaceCount; ++i) { + new iLen; + FileReadUint16(iFile, iLen); + fseek(iFile, iLen, SEEK_CUR); } + } - // get number of areas - static iAreaCount; - FileReadInt32(iFile, iAreaCount); - log_amx("Found %d areas", iAreaCount); + // get number of areas + static iAreaCount; + FileReadInt32(iFile, iAreaCount); + log_amx("Found %d areas", iAreaCount); - new rgExtent[Extent]; - rgExtent[Extent_Lo][0] = 9999999999.9; - rgExtent[Extent_Lo][1] = 9999999999.9; - rgExtent[Extent_Hi][0] = -9999999999.9; - rgExtent[Extent_Hi][1] = -9999999999.9; + new rgExtent[Extent]; + rgExtent[Extent_Lo][0] = 9999999999.9; + rgExtent[Extent_Lo][1] = 9999999999.9; + rgExtent[Extent_Hi][0] = -9999999999.9; + rgExtent[Extent_Hi][1] = -9999999999.9; - log_amx("Loading areas..."); + log_amx("Loading areas..."); - // load the areas and compute total extent - for (new i = 0; i < iAreaCount; i++) { - new Struct:sArea = @NavArea_Create(); - @NavArea_Load(sArea, iFile, iVersion, false); - ArrayPushCell(g_irgNavAreaList, sArea); + // load the areas and compute total extent + for (new i = 0; i < iAreaCount; i++) { + new Struct:sArea = @NavArea_Create(); + @NavArea_Load(sArea, iFile, iVersion, false); + ArrayPushCell(g_irgNavAreaList, sArea); - if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) < rgExtent[Extent_Lo][0]) { - rgExtent[Extent_Lo][0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0); - } + if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) < rgExtent[Extent_Lo][0]) { + rgExtent[Extent_Lo][0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0); + } - if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) < rgExtent[Extent_Lo][1]) { - rgExtent[Extent_Lo][1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1); - } + if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) < rgExtent[Extent_Lo][1]) { + rgExtent[Extent_Lo][1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1); + } - if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) > rgExtent[Extent_Hi][0]) { - rgExtent[Extent_Hi][0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0); - } + if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) > rgExtent[Extent_Hi][0]) { + rgExtent[Extent_Hi][0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0); + } - if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) > rgExtent[Extent_Hi][1]) { - rgExtent[Extent_Hi][1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1); - } + if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) > rgExtent[Extent_Hi][1]) { + rgExtent[Extent_Hi][1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1); } + } - log_amx("All areas loaded!"); + log_amx("All areas loaded!"); - // add the areas to the grid - NavAreaGrid_Init(rgExtent[Extent_Lo][0], rgExtent[Extent_Hi][0], rgExtent[Extent_Lo][1], rgExtent[Extent_Hi][1]); + // add the areas to the grid + NavAreaGrid_Init(rgExtent[Extent_Lo][0], rgExtent[Extent_Hi][0], rgExtent[Extent_Lo][1], rgExtent[Extent_Hi][1]); - log_amx("Grid initialized!"); + log_amx("Grid initialized!"); - for (new i = 0; i < iAreaCount; i++) { - new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); - NavAreaGrid_AddNavArea(sArea); - } + for (new i = 0; i < iAreaCount; i++) { + new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); + NavAreaGrid_AddNavArea(sArea); + } - log_amx("All areas added to the grid!"); + log_amx("All areas added to the grid!"); - // allow areas to connect to each other, etc - for (new i = 0; i < iAreaCount; i++) { - new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); - @NavArea_PostLoadArea(sArea); - } + // allow areas to connect to each other, etc + for (new i = 0; i < iAreaCount; i++) { + new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); + @NavArea_PostLoadArea(sArea); + } - log_amx("Loaded areas post processing complete!"); + log_amx("Loaded areas post processing complete!"); - fclose(iFile); + fclose(iFile); - return NAV_OK; + return NAV_OK; } Struct:FindFirstAreaInDirection(const Float:vecStart[3], NavDirType:iDir, Float:flRange, Float:flBeneathLimit, pIgnoreEnt, Float:vecClosePos[3]) { - new Struct:sArea = Invalid_Struct; + new Struct:sArea = Invalid_Struct; - static Float:vecPos[3]; - xs_vec_copy(vecStart, vecPos); + static Float:vecPos[3]; + xs_vec_copy(vecStart, vecPos); - new iEnd = floatround((flRange / GenerationStepSize) + 0.5); + new iEnd = floatround((flRange / GenerationStepSize) + 0.5); - for (new i = 1; i <= iEnd; i++) { - AddDirectionVector(vecPos, iDir, GenerationStepSize); + for (new i = 1; i <= iEnd; i++) { + AddDirectionVector(vecPos, iDir, GenerationStepSize); - // make sure we dont look thru the wall - engfunc(EngFunc_TraceLine, vecStart, vecPos, IGNORE_MONSTERS, pIgnoreEnt, g_pTrace); + // make sure we dont look thru the wall + engfunc(EngFunc_TraceLine, vecStart, vecPos, IGNORE_MONSTERS, pIgnoreEnt, g_pTrace); - static Float:flFraction; - get_tr2(g_pTrace, TR_flFraction, flFraction); - if (flFraction != 1.0) { - break; - } + static Float:flFraction; + get_tr2(g_pTrace, TR_flFraction, flFraction); + if (flFraction != 1.0) { + break; + } - sArea = NavAreaGrid_GetNavArea(vecPos, flBeneathLimit); + sArea = NavAreaGrid_GetNavArea(vecPos, flBeneathLimit); - if (sArea != Invalid_Struct) { - vecClosePos[0] = vecPos[0]; - vecClosePos[1] = vecPos[1]; + if (sArea != Invalid_Struct) { + vecClosePos[0] = vecPos[0]; + vecClosePos[1] = vecPos[1]; - static Float:pos2d[3]; - xs_vec_copy(vecPos, pos2d); - pos2d[2] = 0.0; + static Float:pos2d[3]; + xs_vec_copy(vecPos, pos2d); + pos2d[2] = 0.0; - vecClosePos[2] = @NavArea_GetZ(sArea, pos2d); - break; - } + vecClosePos[2] = @NavArea_GetZ(sArea, pos2d); + break; } + } - return sArea; + return sArea; } Struct:NavAreaPopOpenList() { - if (g_sNavAreaOpenList != Invalid_Struct) { - static Struct:sArea; sArea = g_sNavAreaOpenList; - // disconnect from list - @NavArea_RemoveFromOpenList(sArea); - return sArea; - } + if (g_sNavAreaOpenList != Invalid_Struct) { + static Struct:sArea; sArea = g_sNavAreaOpenList; + // disconnect from list + @NavArea_RemoveFromOpenList(sArea); + return sArea; + } - return Invalid_Struct; + return Invalid_Struct; } NavAreaMakeNewMarker() { - if (++g_iNavAreaMasterMarker == 0) { - g_iNavAreaMasterMarker = 1; - } + if (++g_iNavAreaMasterMarker == 0) { + g_iNavAreaMasterMarker = 1; + } } NavAreaClearSearchLists() { - NavAreaMakeNewMarker(); - g_sNavAreaOpenList = Invalid_Struct; + NavAreaMakeNewMarker(); + g_sNavAreaOpenList = Invalid_Struct; } Struct:NavAreaBuildPath(const Float:vecStart[3], const Float:vecGoal[3], iCbFuncId = -1, iCbFuncPluginId = -1, pIgnoreEnt, iUserToken, iCostFuncId = -1, iCostFuncPluginId = -1) { - if (!g_bPrecached) { - return Invalid_Struct; - } + if (!g_bPrecached) { + return Invalid_Struct; + } - if (!xs_vec_len(vecGoal)) { - return Invalid_Struct; - } + if (!xs_vec_len(vecGoal)) { + return Invalid_Struct; + } - new Struct:sStartArea = NavAreaGrid_GetNearestNavArea(vecStart, false, pIgnoreEnt); - if (sStartArea == Invalid_Struct) { - return Invalid_Struct; - } + new Struct:sStartArea = NavAreaGrid_GetNearestNavArea(vecStart, false, pIgnoreEnt); + if (sStartArea == Invalid_Struct) { + return Invalid_Struct; + } - new Struct:sGoalArea = NavAreaGrid_GetNearestNavArea(vecGoal, false, pIgnoreEnt); - if (sGoalArea == Invalid_Struct) { - return Invalid_Struct; - } + new Struct:sGoalArea = NavAreaGrid_GetNearestNavArea(vecGoal, false, pIgnoreEnt); + if (sGoalArea == Invalid_Struct) { + return Invalid_Struct; + } - new Struct:sTask = @BuildPathTask_Create(); + new Struct:sTask = @BuildPathTask_Create(); - StructSetArray(sTask, BuildPathTask_StartPos, vecStart, 3); - StructSetArray(sTask, BuildPathTask_GoalPos, vecGoal, 3); - StructSetCell(sTask, BuildPathTask_StartArea, sStartArea); - StructSetCell(sTask, BuildPathTask_GoalArea, sGoalArea); - StructSetCell(sTask, BuildPathTask_ClosestArea, Invalid_Struct); - StructSetCell(sTask, BuildPathTask_CbFuncId, iCbFuncId); - StructSetCell(sTask, BuildPathTask_CbFuncPluginId, iCbFuncPluginId); - StructSetCell(sTask, BuildPathTask_CostFuncId, iCostFuncId); - StructSetCell(sTask, BuildPathTask_CostFuncPluginId, iCostFuncPluginId); - StructSetCell(sTask, BuildPathTask_IgnoreEntity, pIgnoreEnt); - StructSetCell(sTask, BuildPathTask_UserToken, iUserToken); - StructSetCell(sTask, BuildPathTask_IsSuccessed, false); - StructSetCell(sTask, BuildPathTask_IsTerminated, false); + StructSetArray(sTask, BuildPathTask_StartPos, vecStart, 3); + StructSetArray(sTask, BuildPathTask_GoalPos, vecGoal, 3); + StructSetCell(sTask, BuildPathTask_StartArea, sStartArea); + StructSetCell(sTask, BuildPathTask_GoalArea, sGoalArea); + StructSetCell(sTask, BuildPathTask_ClosestArea, Invalid_Struct); + StructSetCell(sTask, BuildPathTask_CbFuncId, iCbFuncId); + StructSetCell(sTask, BuildPathTask_CbFuncPluginId, iCbFuncPluginId); + StructSetCell(sTask, BuildPathTask_CostFuncId, iCostFuncId); + StructSetCell(sTask, BuildPathTask_CostFuncPluginId, iCostFuncPluginId); + StructSetCell(sTask, BuildPathTask_IgnoreEntity, pIgnoreEnt); + StructSetCell(sTask, BuildPathTask_UserToken, iUserToken); + StructSetCell(sTask, BuildPathTask_IsSuccessed, false); + StructSetCell(sTask, BuildPathTask_IsTerminated, false); - if (g_irgBuildPathTasks == Invalid_Array) { - g_irgBuildPathTasks = ArrayCreate(); - } + if (g_irgBuildPathTasks == Invalid_Array) { + g_irgBuildPathTasks = ArrayCreate(); + } - ArrayPushCell(g_irgBuildPathTasks, sTask); + ArrayPushCell(g_irgBuildPathTasks, sTask); - return sTask; + return sTask; } bool:NavAreaBuildPathAbortTask(Struct:sTask) { - // if task already in progress - if (g_rgBuildPathJob[BuildPathJob_Task] == sTask) { - g_rgBuildPathJob[BuildPathJob_Finished] = true; - g_rgBuildPathJob[BuildPathJob_Terminated] = true; - g_rgBuildPathJob[BuildPathJob_Successed] = false; + // if task already in progress + if (g_rgBuildPathJob[BuildPathJob_Task] == sTask) { + g_rgBuildPathJob[BuildPathJob_Finished] = true; + g_rgBuildPathJob[BuildPathJob_Terminated] = true; + g_rgBuildPathJob[BuildPathJob_Successed] = false; - // terminate task in the same frame - NavAreaBuildPathFrame(); + // terminate task in the same frame + NavAreaBuildPathFrame(); - return true; - } + return true; + } - if (g_irgBuildPathTasks == Invalid_Array) { - return false; - } + if (g_irgBuildPathTasks == Invalid_Array) { + return false; + } - new iTask = ArrayFindValue(g_irgBuildPathTasks, sTask); - if (iTask != -1) { - @BuildPathTask_Destroy(sTask); - ArrayDeleteItem(g_irgBuildPathTasks, iTask); - return true; - } + new iTask = ArrayFindValue(g_irgBuildPathTasks, sTask); + if (iTask != -1) { + @BuildPathTask_Destroy(sTask); + ArrayDeleteItem(g_irgBuildPathTasks, iTask); + return true; + } - return false; + return false; } bool:NavAreaBuildPathRunTask(Struct:sTask) { - g_rgBuildPathJob[BuildPathJob_Task] = sTask; - g_rgBuildPathJob[BuildPathJob_StartArea] = StructGetCell(sTask, BuildPathTask_StartArea); - g_rgBuildPathJob[BuildPathJob_GoalArea] = StructGetCell(sTask, BuildPathTask_GoalArea); - g_rgBuildPathJob[BuildPathJob_CostFuncId] = StructGetCell(sTask, BuildPathTask_CostFuncId); - g_rgBuildPathJob[BuildPathJob_CostFuncPluginId] = StructGetCell(sTask, BuildPathTask_CostFuncPluginId); - g_rgBuildPathJob[BuildPathJob_Finished] = false; - g_rgBuildPathJob[BuildPathJob_Terminated] = false; + g_rgBuildPathJob[BuildPathJob_Task] = sTask; + g_rgBuildPathJob[BuildPathJob_StartArea] = StructGetCell(sTask, BuildPathTask_StartArea); + g_rgBuildPathJob[BuildPathJob_GoalArea] = StructGetCell(sTask, BuildPathTask_GoalArea); + g_rgBuildPathJob[BuildPathJob_CostFuncId] = StructGetCell(sTask, BuildPathTask_CostFuncId); + g_rgBuildPathJob[BuildPathJob_CostFuncPluginId] = StructGetCell(sTask, BuildPathTask_CostFuncPluginId); + g_rgBuildPathJob[BuildPathJob_Finished] = false; + g_rgBuildPathJob[BuildPathJob_Terminated] = false; + g_rgBuildPathJob[BuildPathJob_Successed] = false; + g_rgBuildPathJob[BuildPathJob_MaxIterations] = get_pcvar_num(g_pCvarMaxIterationsPerFrame); + g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = 999999.0; + g_rgBuildPathJob[BuildPathJob_ClosestArea] = Invalid_Struct; + g_rgBuildPathJob[BuildPathJob_IgnoreEntity] = StructGetCell(sTask, BuildPathTask_IgnoreEntity); + + StructGetArray(sTask, BuildPathTask_GoalPos, g_rgBuildPathJob[BuildPathJob_GoalPos], 3); + + @NavArea_SetParent(g_rgBuildPathJob[BuildPathJob_StartArea], Invalid_Struct, NUM_TRAVERSE_TYPES); + + // if we are already in the goal area, build trivial path + if (g_rgBuildPathJob[BuildPathJob_StartArea] == g_rgBuildPathJob[BuildPathJob_GoalArea]) { + @NavArea_SetParent(g_rgBuildPathJob[BuildPathJob_GoalArea], Invalid_Struct, NUM_TRAVERSE_TYPES); + g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_GoalArea]; + g_rgBuildPathJob[BuildPathJob_Successed] = true; + g_rgBuildPathJob[BuildPathJob_Finished] = true; + return true; + } + + // determine actual goal position + if (xs_vec_len(g_rgBuildPathJob[BuildPathJob_GoalPos]) > 0.0) { + xs_vec_copy(g_rgBuildPathJob[BuildPathJob_GoalPos], g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); + } else { + @NavArea_GetCenter(g_rgBuildPathJob[BuildPathJob_GoalArea], g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); + } + + // start search + NavAreaClearSearchLists(); + + // compute estimate of path length + // TODO: Cost might work as "manhattan distance" + static Float:vecStartAreaCenter[3]; + @NavArea_GetCenter(g_rgBuildPathJob[BuildPathJob_StartArea], vecStartAreaCenter); + @NavArea_SetTotalCost(g_rgBuildPathJob[BuildPathJob_StartArea], xs_vec_distance(vecStartAreaCenter, g_rgBuildPathJob[BuildPathJob_ActualGoalPos])); + + new Float:flInitCost = 0.0; + + if (g_rgBuildPathJob[BuildPathJob_CostFuncId] != -1 && callfunc_begin_i(g_rgBuildPathJob[BuildPathJob_CostFuncId], g_rgBuildPathJob[BuildPathJob_CostFuncPluginId])) { + callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_Task]); + callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_StartArea]); + callfunc_push_int(_:Invalid_Struct); + flInitCost = Float:callfunc_end(); + } + + if (flInitCost < 0.0) { + g_rgBuildPathJob[BuildPathJob_Finished] = true; + g_rgBuildPathJob[BuildPathJob_Terminated] = true; g_rgBuildPathJob[BuildPathJob_Successed] = false; - g_rgBuildPathJob[BuildPathJob_MaxIterations] = get_pcvar_num(g_pCvarMaxIterationsPerFrame); - g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = 999999.0; - g_rgBuildPathJob[BuildPathJob_ClosestArea] = Invalid_Struct; - g_rgBuildPathJob[BuildPathJob_IgnoreEntity] = StructGetCell(sTask, BuildPathTask_IgnoreEntity); - - StructGetArray(sTask, BuildPathTask_GoalPos, g_rgBuildPathJob[BuildPathJob_GoalPos], 3); - - @NavArea_SetParent(g_rgBuildPathJob[BuildPathJob_StartArea], Invalid_Struct, NUM_TRAVERSE_TYPES); - - // if we are already in the goal area, build trivial path - if (g_rgBuildPathJob[BuildPathJob_StartArea] == g_rgBuildPathJob[BuildPathJob_GoalArea]) { - @NavArea_SetParent(g_rgBuildPathJob[BuildPathJob_GoalArea], Invalid_Struct, NUM_TRAVERSE_TYPES); - g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_GoalArea]; - g_rgBuildPathJob[BuildPathJob_Successed] = true; - g_rgBuildPathJob[BuildPathJob_Finished] = true; - return true; - } - - // determine actual goal position - if (xs_vec_len(g_rgBuildPathJob[BuildPathJob_GoalPos]) > 0.0) { - xs_vec_copy(g_rgBuildPathJob[BuildPathJob_GoalPos], g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); - } else { - @NavArea_GetCenter(g_rgBuildPathJob[BuildPathJob_GoalArea], g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); - } - - // start search - NavAreaClearSearchLists(); - - // compute estimate of path length - // TODO: Cost might work as "manhattan distance" - static Float:vecStartAreaCenter[3]; - @NavArea_GetCenter(g_rgBuildPathJob[BuildPathJob_StartArea], vecStartAreaCenter); - @NavArea_SetTotalCost(g_rgBuildPathJob[BuildPathJob_StartArea], xs_vec_distance(vecStartAreaCenter, g_rgBuildPathJob[BuildPathJob_ActualGoalPos])); - - new Float:flInitCost = 0.0; - - if (g_rgBuildPathJob[BuildPathJob_CostFuncId] != -1 && callfunc_begin_i(g_rgBuildPathJob[BuildPathJob_CostFuncId], g_rgBuildPathJob[BuildPathJob_CostFuncPluginId])) { - callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_Task]); - callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_StartArea]); - callfunc_push_int(_:Invalid_Struct); - flInitCost = Float:callfunc_end(); - } + return false; + } - if (flInitCost < 0.0) { - g_rgBuildPathJob[BuildPathJob_Finished] = true; - g_rgBuildPathJob[BuildPathJob_Terminated] = true; - g_rgBuildPathJob[BuildPathJob_Successed] = false; - return false; - } + @NavArea_SetCostSoFar(g_rgBuildPathJob[BuildPathJob_StartArea], flInitCost); + @NavArea_AddToOpenList(g_rgBuildPathJob[BuildPathJob_StartArea]); - @NavArea_SetCostSoFar(g_rgBuildPathJob[BuildPathJob_StartArea], flInitCost); - @NavArea_AddToOpenList(g_rgBuildPathJob[BuildPathJob_StartArea]); + // keep track of the area we visit that is closest to the goal + if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct) { + g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_StartArea]; + } - // keep track of the area we visit that is closest to the goal - if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct) { - g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_StartArea]; - } + g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = @NavArea_GetTotalCost(g_rgBuildPathJob[BuildPathJob_StartArea]); - g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = @NavArea_GetTotalCost(g_rgBuildPathJob[BuildPathJob_StartArea]); - - return true; + return true; } NavAreaBuildPathFinish() { - new Struct:sTask = g_rgBuildPathJob[BuildPathJob_Task]; - StructSetCell(sTask, BuildPathTask_IsSuccessed, g_rgBuildPathJob[BuildPathJob_Successed]); - StructSetCell(sTask, BuildPathTask_IsTerminated, g_rgBuildPathJob[BuildPathJob_Terminated]); + new Struct:sTask = g_rgBuildPathJob[BuildPathJob_Task]; + StructSetCell(sTask, BuildPathTask_IsSuccessed, g_rgBuildPathJob[BuildPathJob_Successed]); + StructSetCell(sTask, BuildPathTask_IsTerminated, g_rgBuildPathJob[BuildPathJob_Terminated]); - new Struct:sNavPath = StructGetCell(sTask, BuildPathTask_Path); - @NavPath_Invalidate(sNavPath); + new Struct:sNavPath = StructGetCell(sTask, BuildPathTask_Path); + @NavPath_Invalidate(sNavPath); - if (!g_rgBuildPathJob[BuildPathJob_Terminated]) { - NavAreaBuildPathSegments(); - } + if (!g_rgBuildPathJob[BuildPathJob_Terminated]) { + NavAreaBuildPathSegments(); + } - new iCbFuncId = StructGetCell(sTask, BuildPathTask_CbFuncId); - new iCbFuncPluginId = StructGetCell(sTask, BuildPathTask_CbFuncPluginId); + new iCbFuncId = StructGetCell(sTask, BuildPathTask_CbFuncId); + new iCbFuncPluginId = StructGetCell(sTask, BuildPathTask_CbFuncPluginId); - if (iCbFuncId != -1 && callfunc_begin_i(iCbFuncId, iCbFuncPluginId)) { - callfunc_push_int(_:sTask); - callfunc_end(); - } + if (iCbFuncId != -1 && callfunc_begin_i(iCbFuncId, iCbFuncPluginId)) { + callfunc_push_int(_:sTask); + callfunc_end(); + } } NavAreaBuildPathIteration() { - if (g_sNavAreaOpenList == Invalid_Struct) { - g_rgBuildPathJob[BuildPathJob_Finished] = true; - g_rgBuildPathJob[BuildPathJob_Successed] = false; - return; - } + if (g_sNavAreaOpenList == Invalid_Struct) { + g_rgBuildPathJob[BuildPathJob_Finished] = true; + g_rgBuildPathJob[BuildPathJob_Successed] = false; + return; + } - // get next area to check - static Struct:sArea; sArea = NavAreaPopOpenList(); + // get next area to check + static Struct:sArea; sArea = NavAreaPopOpenList(); - // check if we have found the goal area - if (sArea == g_rgBuildPathJob[BuildPathJob_GoalArea]) { - if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct) { - g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_GoalArea]; - } + // check if we have found the goal area + if (sArea == g_rgBuildPathJob[BuildPathJob_GoalArea]) { + if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct) { + g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_GoalArea]; + } - g_rgBuildPathJob[BuildPathJob_Finished] = true; - g_rgBuildPathJob[BuildPathJob_Successed] = true; + g_rgBuildPathJob[BuildPathJob_Finished] = true; + g_rgBuildPathJob[BuildPathJob_Successed] = true; - return; - } + return; + } - // search adjacent areas - static Array:irgFloorList; irgFloorList = @NavArea_GetAdjacentList(sArea, NORTH); - static iFloorIter; iFloorIter = 0; + // search adjacent areas + static Array:irgFloorList; irgFloorList = @NavArea_GetAdjacentList(sArea, NORTH); + static iFloorIter; iFloorIter = 0; - static NavDirType:iDir; - for (iDir = NORTH; iDir < NUM_DIRECTIONS;) { - // Get next adjacent area - either on floor or via ladder - // if exhausted adjacent connections in current direction, begin checking next direction - if (iFloorIter >= ArraySize(irgFloorList)) { - iDir++; + static NavDirType:iDir; + for (iDir = NORTH; iDir < NUM_DIRECTIONS;) { + // Get next adjacent area - either on floor or via ladder + // if exhausted adjacent connections in current direction, begin checking next direction + if (iFloorIter >= ArraySize(irgFloorList)) { + iDir++; - if (iDir < NUM_DIRECTIONS) { - // start next direction - irgFloorList = @NavArea_GetAdjacentList(sArea, iDir); - iFloorIter = 0; - } + if (iDir < NUM_DIRECTIONS) { + // start next direction + irgFloorList = @NavArea_GetAdjacentList(sArea, iDir); + iFloorIter = 0; + } - continue; - } + continue; + } - static Struct:newArea; newArea = ArrayGetCell(irgFloorList, iFloorIter, _:NavConnect_Area); + static Struct:newArea; newArea = ArrayGetCell(irgFloorList, iFloorIter, _:NavConnect_Area); - iFloorIter++; + iFloorIter++; - // don't backtrack - if (newArea == sArea) { - continue; - } + // don't backtrack + if (newArea == sArea) { + continue; + } - static Float:newCostSoFar; - newCostSoFar = 1.0; + static Float:newCostSoFar; + newCostSoFar = 1.0; - if (g_rgBuildPathJob[BuildPathJob_CostFuncId] != -1 && callfunc_begin_i(g_rgBuildPathJob[BuildPathJob_CostFuncId], g_rgBuildPathJob[BuildPathJob_CostFuncPluginId])) { - callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_Task]); - callfunc_push_int(_:newArea); - callfunc_push_int(_:sArea); - newCostSoFar = Float:callfunc_end(); - } + if (g_rgBuildPathJob[BuildPathJob_CostFuncId] != -1 && callfunc_begin_i(g_rgBuildPathJob[BuildPathJob_CostFuncId], g_rgBuildPathJob[BuildPathJob_CostFuncPluginId])) { + callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_Task]); + callfunc_push_int(_:newArea); + callfunc_push_int(_:sArea); + newCostSoFar = Float:callfunc_end(); + } - // check if cost functor says this area is a dead-end - if (newCostSoFar < 0.0) { - continue; - } + // check if cost functor says this area is a dead-end + if (newCostSoFar < 0.0) { + continue; + } - if ((@NavArea_IsOpen(newArea) || @NavArea_IsClosed(newArea)) && @NavArea_GetCostSoFar(newArea) <= newCostSoFar) { - // this is a worse path - skip it - // log_amx("[%d] this is a worse path - skip it", newArea); - continue; - } + if ((@NavArea_IsOpen(newArea) || @NavArea_IsClosed(newArea)) && @NavArea_GetCostSoFar(newArea) <= newCostSoFar) { + // this is a worse path - skip it + // log_amx("[%d] this is a worse path - skip it", newArea); + continue; + } - // compute estimate of distance left to go - static Float:vecNewAreaCenter[3]; - @NavArea_GetCenter(newArea, vecNewAreaCenter); + // compute estimate of distance left to go + static Float:vecNewAreaCenter[3]; + @NavArea_GetCenter(newArea, vecNewAreaCenter); - static Float:newCostRemaining; newCostRemaining = xs_vec_distance(vecNewAreaCenter, g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); + static Float:newCostRemaining; newCostRemaining = xs_vec_distance(vecNewAreaCenter, g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); - // track closest area to goal in case path fails - if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct && newCostRemaining < g_rgBuildPathJob[BuildPathJob_ClosestAreaDist]) { - g_rgBuildPathJob[BuildPathJob_ClosestArea] = newArea; - g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = newCostRemaining; - } + // track closest area to goal in case path fails + if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct && newCostRemaining < g_rgBuildPathJob[BuildPathJob_ClosestAreaDist]) { + g_rgBuildPathJob[BuildPathJob_ClosestArea] = newArea; + g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = newCostRemaining; + } - @NavArea_SetParent(newArea, sArea, NavTraverseType:iDir); - @NavArea_SetCostSoFar(newArea, newCostSoFar); - @NavArea_SetTotalCost(newArea, newCostSoFar + newCostRemaining); + @NavArea_SetParent(newArea, sArea, NavTraverseType:iDir); + @NavArea_SetCostSoFar(newArea, newCostSoFar); + @NavArea_SetTotalCost(newArea, newCostSoFar + newCostRemaining); - if (@NavArea_IsClosed(newArea)) { - @NavArea_RemoveFromClosedList(newArea); - } + if (@NavArea_IsClosed(newArea)) { + @NavArea_RemoveFromClosedList(newArea); + } - if (@NavArea_IsOpen(newArea)) { - // area already on open list, update the list order to keep costs sorted - @NavArea_UpdateOnOpenList(newArea); - } else { - @NavArea_AddToOpenList(newArea); - } + if (@NavArea_IsOpen(newArea)) { + // area already on open list, update the list order to keep costs sorted + @NavArea_UpdateOnOpenList(newArea); + } else { + @NavArea_AddToOpenList(newArea); } + } - // we have searched this area - @NavArea_AddToClosedList(sArea); + // we have searched this area + @NavArea_AddToClosedList(sArea); } NavAreaBuildPathFrame() { - // if no job in progress then find new task to start - if (g_rgBuildPathJob[BuildPathJob_Task] == Invalid_Struct) { - if (g_irgBuildPathTasks != Invalid_Array && ArraySize(g_irgBuildPathTasks)) { - new Struct:sTask = ArrayGetCell(g_irgBuildPathTasks, 0); - ArrayDeleteItem(g_irgBuildPathTasks, 0); - NavAreaBuildPathRunTask(sTask); - } - - return; + // if no job in progress then find new task to start + if (g_rgBuildPathJob[BuildPathJob_Task] == Invalid_Struct) { + if (g_irgBuildPathTasks != Invalid_Array && ArraySize(g_irgBuildPathTasks)) { + new Struct:sTask = ArrayGetCell(g_irgBuildPathTasks, 0); + ArrayDeleteItem(g_irgBuildPathTasks, 0); + NavAreaBuildPathRunTask(sTask); } - // current job finished, process - if (g_rgBuildPathJob[BuildPathJob_Finished]) { - NavAreaBuildPathFinish(); - @BuildPathTask_Destroy(g_rgBuildPathJob[BuildPathJob_Task]); - g_rgBuildPathJob[BuildPathJob_Task] = Invalid_Struct; - return; - } + return; + } - // do path finding iterations - new iIterationsNum = g_rgBuildPathJob[BuildPathJob_MaxIterations]; - for (new i = 0; i < iIterationsNum && !g_rgBuildPathJob[BuildPathJob_Finished]; ++i) { - NavAreaBuildPathIteration(); - } + // current job finished, process + if (g_rgBuildPathJob[BuildPathJob_Finished]) { + NavAreaBuildPathFinish(); + @BuildPathTask_Destroy(g_rgBuildPathJob[BuildPathJob_Task]); + g_rgBuildPathJob[BuildPathJob_Task] = Invalid_Struct; + return; + } + + // do path finding iterations + new iIterationsNum = g_rgBuildPathJob[BuildPathJob_MaxIterations]; + for (new i = 0; i < iIterationsNum && !g_rgBuildPathJob[BuildPathJob_Finished]; ++i) { + NavAreaBuildPathIteration(); + } } NavAreaBuildPathSegments() { - new Struct:sTask = g_rgBuildPathJob[BuildPathJob_Task]; + new Struct:sTask = g_rgBuildPathJob[BuildPathJob_Task]; - new Struct:sNavPath = StructGetCell(sTask, BuildPathTask_Path); - @NavPath_Invalidate(sNavPath); + new Struct:sNavPath = StructGetCell(sTask, BuildPathTask_Path); + @NavPath_Invalidate(sNavPath); - static Float:vecStart[3]; - StructGetArray(sTask, BuildPathTask_StartPos, vecStart, sizeof(vecStart)); + static Float:vecStart[3]; + StructGetArray(sTask, BuildPathTask_StartPos, vecStart, sizeof(vecStart)); - static Float:vecGoal[3]; - StructGetArray(sTask, BuildPathTask_GoalPos, vecGoal, sizeof(vecGoal)); + static Float:vecGoal[3]; + StructGetArray(sTask, BuildPathTask_GoalPos, vecGoal, sizeof(vecGoal)); - new iSegmentCount = 0; + new iSegmentCount = 0; - new Struct:sEffectiveGoalArea = ( - g_rgBuildPathJob[BuildPathJob_Successed] - ? g_rgBuildPathJob[BuildPathJob_GoalArea] - : g_rgBuildPathJob[BuildPathJob_ClosestArea] - ); - - if (g_rgBuildPathJob[BuildPathJob_StartArea] != g_rgBuildPathJob[BuildPathJob_GoalArea]) { - // Build path by following parent links - for (new Struct:sArea = sEffectiveGoalArea; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_Parent)) { - iSegmentCount++; - } + new Struct:sEffectiveGoalArea = ( + g_rgBuildPathJob[BuildPathJob_Successed] + ? g_rgBuildPathJob[BuildPathJob_GoalArea] + : g_rgBuildPathJob[BuildPathJob_ClosestArea] + ); - // save room for endpoint - iSegmentCount = min(iSegmentCount, MAX_PATH_SEGMENTS - 1); + if (g_rgBuildPathJob[BuildPathJob_StartArea] != g_rgBuildPathJob[BuildPathJob_GoalArea]) { + // Build path by following parent links + for (new Struct:sArea = sEffectiveGoalArea; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_Parent)) { + iSegmentCount++; + } - if (iSegmentCount == 0) { - return false; - } + // save room for endpoint + iSegmentCount = min(iSegmentCount, MAX_PATH_SEGMENTS - 1); - } else { - iSegmentCount = 1; + if (iSegmentCount == 0) { + return false; } - new Array:irgSegments = StructGetCell(sNavPath, NavPath_Segments); - ArrayResize(irgSegments, iSegmentCount); - StructSetCell(sNavPath, NavPath_SegmentCount, iSegmentCount); + } else { + iSegmentCount = 1; + } - if (iSegmentCount > 1) { - // Prepare segments - static Struct:sArea; sArea = sEffectiveGoalArea; + new Array:irgSegments = StructGetCell(sNavPath, NavPath_Segments); + ArrayResize(irgSegments, iSegmentCount); + StructSetCell(sNavPath, NavPath_SegmentCount, iSegmentCount); - for (new i = iSegmentCount - 1; i >= 0; --i) { - static Struct:sSegment; sSegment = @PathSegment_Create(); - StructSetCell(sSegment, PathSegment_Area, sArea); - StructSetCell(sSegment, PathSegment_How, StructGetCell(sArea, NavArea_ParentHow)); + if (iSegmentCount > 1) { + // Prepare segments + static Struct:sArea; sArea = sEffectiveGoalArea; - static Float:vecPos[3]; - @NavArea_GetCenter(sArea, vecPos); - StructSetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); + for (new i = iSegmentCount - 1; i >= 0; --i) { + static Struct:sSegment; sSegment = @PathSegment_Create(); + StructSetCell(sSegment, PathSegment_Area, sArea); + StructSetCell(sSegment, PathSegment_How, StructGetCell(sArea, NavArea_ParentHow)); - ArraySetCell(irgSegments, i, sSegment); + static Float:vecPos[3]; + @NavArea_GetCenter(sArea, vecPos); + StructSetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); - sArea = StructGetCell(sArea, NavArea_Parent); - } + ArraySetCell(irgSegments, i, sSegment); - if (!@NavPath_ComputePathPositions(sNavPath)) { - @NavPath_Invalidate(sNavPath); - return false; - } + sArea = StructGetCell(sArea, NavArea_Parent); + } - // append path end position - static Struct:sEndSegment; sEndSegment = @PathSegment_Create(); - StructSetCell(sEndSegment, PathSegment_Area, sEffectiveGoalArea); - StructSetArray(sEndSegment, PathSegment_Pos, vecGoal, sizeof(vecGoal)); - StructSetCell(sEndSegment, PathSegment_Pos, @NavArea_GetZ(sEffectiveGoalArea, vecGoal), 2); - StructSetCell(sEndSegment, PathSegment_How, NUM_TRAVERSE_TYPES); - @NavPath_PushSegment(sNavPath, sEndSegment); - } else { - @NavPath_BuildTrivialPath(sNavPath, vecStart, vecGoal); + if (!@NavPath_ComputePathPositions(sNavPath)) { + @NavPath_Invalidate(sNavPath); + return false; } - if (get_pcvar_bool(g_pCvarDebug)) { - new iSegmentCount = StructGetCell(sNavPath, NavPath_SegmentCount); - for (new i = 1; i < iSegmentCount; ++i) { - new Struct:sPrevSegment = ArrayGetCell(irgSegments, i - 1); - new Struct:sNextSegment = ArrayGetCell(irgSegments, i); + // append path end position + static Struct:sEndSegment; sEndSegment = @PathSegment_Create(); + StructSetCell(sEndSegment, PathSegment_Area, sEffectiveGoalArea); + StructSetArray(sEndSegment, PathSegment_Pos, vecGoal, sizeof(vecGoal)); + StructSetCell(sEndSegment, PathSegment_Pos, @NavArea_GetZ(sEffectiveGoalArea, vecGoal), 2); + StructSetCell(sEndSegment, PathSegment_How, NUM_TRAVERSE_TYPES); + @NavPath_PushSegment(sNavPath, sEndSegment); + } else { + @NavPath_BuildTrivialPath(sNavPath, vecStart, vecGoal); + } - static Float:vecSrc[3]; - StructGetArray(sPrevSegment, PathSegment_Pos, vecSrc, sizeof(vecSrc)); + if (get_pcvar_bool(g_pCvarDebug)) { + new iSegmentCount = StructGetCell(sNavPath, NavPath_SegmentCount); + for (new i = 1; i < iSegmentCount; ++i) { + new Struct:sPrevSegment = ArrayGetCell(irgSegments, i - 1); + new Struct:sNextSegment = ArrayGetCell(irgSegments, i); - static Float:vecNext[3]; - StructGetArray(sNextSegment, PathSegment_Pos, vecNext, sizeof(vecNext)); + static Float:vecSrc[3]; + StructGetArray(sPrevSegment, PathSegment_Pos, vecSrc, sizeof(vecSrc)); - static irgColor[3]; - irgColor[0] = floatround(255.0 * (1.0 - (float(i) / iSegmentCount))); - irgColor[1] = floatround(255.0 * (float(i) / iSegmentCount)); - irgColor[2] = 0; + static Float:vecNext[3]; + StructGetArray(sNextSegment, PathSegment_Pos, vecNext, sizeof(vecNext)); - UTIL_DrawArrow(0, vecSrc, vecNext, irgColor, 255, 30); - } + static irgColor[3]; + irgColor[0] = floatround(255.0 * (1.0 - (float(i) / iSegmentCount))); + irgColor[1] = floatround(255.0 * (float(i) / iSegmentCount)); + irgColor[2] = 0; + + UTIL_DrawArrow(0, vecSrc, vecNext, irgColor, 255, 30); } + } - return true; + return true; } stock NavDirType:OppositeDirection(NavDirType:iDir) { - switch (iDir) { - case NORTH: return SOUTH; - case EAST: return WEST; - case SOUTH: return NORTH; - case WEST: return EAST; - } + switch (iDir) { + case NORTH: return SOUTH; + case EAST: return WEST; + case SOUTH: return NORTH; + case WEST: return EAST; + } - return NORTH; + return NORTH; } stock NavDirType:DirectionLeft(NavDirType:iDir) { - switch (iDir) { - case NORTH: return WEST; - case SOUTH: return EAST; - case EAST: return NORTH; - case WEST: return SOUTH; - } + switch (iDir) { + case NORTH: return WEST; + case SOUTH: return EAST; + case EAST: return NORTH; + case WEST: return SOUTH; + } - return NORTH; + return NORTH; } stock NavDirType:DirectionRight(NavDirType:iDir) { - switch (iDir) { - case NORTH: return EAST; - case SOUTH: return WEST; - case EAST: return SOUTH; - case WEST: return NORTH; - } + switch (iDir) { + case NORTH: return EAST; + case SOUTH: return WEST; + case EAST: return SOUTH; + case WEST: return NORTH; + } - return NORTH; + return NORTH; } stock bool:GetGroundHeight(const Float:vecPos[3], &Float:flHeight, pIgnoreEnt, Float:vecNormal[3] = {0.0, 0.0, 0.0}) { - enum GroundLayerInfo { - Float:GroundLayerInfo_ground, - Float:GroundLayerInfo_normal[3] - }; + enum GroundLayerInfo { + Float:GroundLayerInfo_ground, + Float:GroundLayerInfo_normal[3] + }; - static Float:vecTo[3]; - vecTo[0] = vecPos[0]; - vecTo[1] = vecPos[1]; - vecTo[2] = vecPos[2] - 9999.9; + static Float:vecTo[3]; + vecTo[0] = vecPos[0]; + vecTo[1] = vecPos[1]; + vecTo[2] = vecPos[2] - 9999.9; - new Float:vecFrom[3]; + new Float:vecFrom[3]; - new pIgnore = pIgnoreEnt; - // new Float:ground = 0.0; + new pIgnore = pIgnoreEnt; + // new Float:ground = 0.0; - static const Float:flMaxOffset = 100.0; - static const Float:flInc = 10.0; - const MAX_GROUND_LAYERS = 16; + static const Float:flMaxOffset = 100.0; + static const Float:flInc = 10.0; + const MAX_GROUND_LAYERS = 16; - static rgLayer[MAX_GROUND_LAYERS][GroundLayerInfo]; - new iLayerCount = 0; + static rgLayer[MAX_GROUND_LAYERS][GroundLayerInfo]; + new iLayerCount = 0; - static Float:flOffset; - for (flOffset = 1.0; flOffset < flMaxOffset; flOffset += flInc) { - xs_vec_copy(vecPos, vecFrom); - vecFrom[2] += flOffset; + static Float:flOffset; + for (flOffset = 1.0; flOffset < flMaxOffset; flOffset += flInc) { + xs_vec_copy(vecPos, vecFrom); + vecFrom[2] += flOffset; - engfunc(EngFunc_TraceLine, vecFrom, vecTo, IGNORE_MONSTERS, pIgnore, g_pTrace); + engfunc(EngFunc_TraceLine, vecFrom, vecTo, IGNORE_MONSTERS, pIgnore, g_pTrace); - static Float:flFraction; - get_tr2(g_pTrace, TR_flFraction, flFraction); + static Float:flFraction; + get_tr2(g_pTrace, TR_flFraction, flFraction); - static bool:bStartSolid; bStartSolid = bool:get_tr2(g_pTrace, TR_StartSolid); - static pHit; pHit = get_tr2(g_pTrace, TR_pHit); + static bool:bStartSolid; bStartSolid = bool:get_tr2(g_pTrace, TR_StartSolid); + static pHit; pHit = get_tr2(g_pTrace, TR_pHit); - static Float:vecPlaneNormal[3]; - get_tr2(g_pTrace, TR_vecPlaneNormal, vecPlaneNormal); + static Float:vecPlaneNormal[3]; + get_tr2(g_pTrace, TR_vecPlaneNormal, vecPlaneNormal); - static Float:vecEndPos[3]; - get_tr2(g_pTrace, TR_vecEndPos, vecEndPos); + static Float:vecEndPos[3]; + get_tr2(g_pTrace, TR_vecEndPos, vecEndPos); - if (flFraction != 1.0 && pHit > 0) { - // ignoring any entities that we can walk through - if (IsEntityWalkable(pHit, WALK_THRU_DOORS | WALK_THRU_BREAKABLES)) { - pIgnore = pHit; - continue; - } - } + if (flFraction != 1.0 && pHit > 0) { + // ignoring any entities that we can walk through + if (IsEntityWalkable(pHit, WALK_THRU_DOORS | WALK_THRU_BREAKABLES)) { + pIgnore = pHit; + continue; + } + } - if (!bStartSolid) { - if (iLayerCount == 0 || vecEndPos[2] > rgLayer[iLayerCount - 1][GroundLayerInfo_ground]) { - rgLayer[iLayerCount][GroundLayerInfo_ground] = vecEndPos[2]; - xs_vec_copy(vecPlaneNormal, rgLayer[iLayerCount][GroundLayerInfo_normal]); - iLayerCount++; + if (!bStartSolid) { + if (iLayerCount == 0 || vecEndPos[2] > rgLayer[iLayerCount - 1][GroundLayerInfo_ground]) { + rgLayer[iLayerCount][GroundLayerInfo_ground] = vecEndPos[2]; + xs_vec_copy(vecPlaneNormal, rgLayer[iLayerCount][GroundLayerInfo_normal]); + iLayerCount++; - if (iLayerCount == MAX_GROUND_LAYERS) { - break; - } - } + if (iLayerCount == MAX_GROUND_LAYERS) { + break; } + } } + } - if (!iLayerCount) { - return false; - } + if (!iLayerCount) { + return false; + } - static i; - for (i = 0; i < iLayerCount - 1; i++) { - if (rgLayer[i + 1][GroundLayerInfo_ground] - rgLayer[i][GroundLayerInfo_ground] >= HalfHumanHeight) { - break; - } + static i; + for (i = 0; i < iLayerCount - 1; i++) { + if (rgLayer[i + 1][GroundLayerInfo_ground] - rgLayer[i][GroundLayerInfo_ground] >= HalfHumanHeight) { + break; } + } - flHeight = rgLayer[i][GroundLayerInfo_ground]; - xs_vec_copy(rgLayer[i][GroundLayerInfo_normal], vecNormal); + flHeight = rgLayer[i][GroundLayerInfo_ground]; + xs_vec_copy(rgLayer[i][GroundLayerInfo_normal], vecNormal); - return true; + return true; } stock bool:IsEntityWalkable(pEntity, iFlags) { - static szClassName[32]; - pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); - - // if we hit a door, assume its walkable because it will open when we touch it - if (equal(szClassName, "func_door") || equal(szClassName, "func_door_rotating")) { - return !!(iFlags & WALK_THRU_DOORS); - } else if (equal(szClassName, "func_breakable")) { - // if we hit a breakable object, assume its walkable because we will shoot it when we touch it - static Float:flTakeDamage; - pev(pEntity, pev_takedamage, flTakeDamage); - if (flTakeDamage == DAMAGE_YES) { - return !!(iFlags & WALK_THRU_BREAKABLES); - } + static szClassName[32]; + pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); + + // if we hit a door, assume its walkable because it will open when we touch it + if (equal(szClassName, "func_door") || equal(szClassName, "func_door_rotating")) { + return !!(iFlags & WALK_THRU_DOORS); + } else if (equal(szClassName, "func_breakable")) { + // if we hit a breakable object, assume its walkable because we will shoot it when we touch it + static Float:flTakeDamage; + pev(pEntity, pev_takedamage, flTakeDamage); + if (flTakeDamage == DAMAGE_YES) { + return !!(iFlags & WALK_THRU_BREAKABLES); } + } - return false; + return false; } // Can we see this area? // For now, if we can see any corner, we can see the area // TODO: Need to check LOS to more than the corners for large and/or long areas stock bool:IsAreaVisible(const Float:vecPos[3], Struct:sArea) { - static Float:vecCorner[3]; - for (new i = 0; i < _:NUM_CORNERS; i++) { - @NavArea_GetCorner(sArea, NavCornerType:i, vecCorner); - vecCorner[2] += 0.75 * HumanHeight; + static Float:vecCorner[3]; + for (new i = 0; i < _:NUM_CORNERS; i++) { + @NavArea_GetCorner(sArea, NavCornerType:i, vecCorner); + vecCorner[2] += 0.75 * HumanHeight; - engfunc(EngFunc_TraceLine, vecPos, vecCorner, IGNORE_MONSTERS, nullptr, g_pTrace); + engfunc(EngFunc_TraceLine, vecPos, vecCorner, IGNORE_MONSTERS, nullptr, g_pTrace); - static Float:flFraction; - get_tr2(g_pTrace, TR_flFraction, flFraction); + static Float:flFraction; + get_tr2(g_pTrace, TR_flFraction, flFraction); - if (flFraction == 1.0) { - // we can see this area - return true; - } + if (flFraction == 1.0) { + // we can see this area + return true; } + } - return false; + return false; } stock AddDirectionVector(Float:vecInput[3], NavDirType:iDir, Float:flAmount) { - switch (iDir) { - case NORTH: vecInput[1] -= flAmount; - case SOUTH: vecInput[1] += flAmount; - case EAST: vecInput[0] += flAmount; - case WEST: vecInput[0] -= flAmount; - } + switch (iDir) { + case NORTH: vecInput[1] -= flAmount; + case SOUTH: vecInput[1] += flAmount; + case EAST: vecInput[0] += flAmount; + case WEST: vecInput[0] -= flAmount; + } } stock DirectionToVector2D(NavDirType:iDir, Float:vecOutput[2]) { - switch (iDir) { - case NORTH: { - vecOutput[0] = 0.0; - vecOutput[1] = -1.0; - } - case SOUTH: { - vecOutput[0] = 0.0; - vecOutput[1] = 1.0; - } - case EAST: { - vecOutput[0] = 1.0; - vecOutput[1] = 0.0; - } - case WEST: { - vecOutput[0] = -1.0; - vecOutput[1] = 0.0; - } + switch (iDir) { + case NORTH: { + vecOutput[0] = 0.0; + vecOutput[1] = -1.0; + } + case SOUTH: { + vecOutput[0] = 0.0; + vecOutput[1] = 1.0; + } + case EAST: { + vecOutput[0] = 1.0; + vecOutput[1] = 0.0; } + case WEST: { + vecOutput[0] = -1.0; + vecOutput[1] = 0.0; + } + } } stock Float:NormalizeInPlace(const Float:vecSrc[3], Float:vecOut[3]) { - new Float:flLen = xs_vec_len(vecSrc); + new Float:flLen = xs_vec_len(vecSrc); - if (flLen > 0) { - vecOut[0] = vecSrc[0] / flLen; - vecOut[1] = vecSrc[1] / flLen; - vecOut[2] = vecSrc[2] / flLen; - } else { - vecOut[0] = 0.0; - vecOut[1] = 0.0; - vecOut[2] = 1.0; - } + if (flLen > 0) { + vecOut[0] = vecSrc[0] / flLen; + vecOut[1] = vecSrc[1] / flLen; + vecOut[2] = vecSrc[2] / flLen; + } else { + vecOut[0] = 0.0; + vecOut[1] = 0.0; + vecOut[2] = 1.0; + } - return flLen; + return flLen; } stock UTIL_DrawArrow(pPlayer, const Float:vecSrc[3], const Float:vecTarget[3], const irgColor[3] = {255, 255, 255}, iBrightness = 255, iLifeTime = 10, iWidth = 64) { - engfunc(EngFunc_MessageBegin, pPlayer ? MSG_ONE : MSG_ALL, SVC_TEMPENTITY, vecSrc, pPlayer); - write_byte(TE_BEAMPOINTS); - engfunc(EngFunc_WriteCoord, vecTarget[0]); - engfunc(EngFunc_WriteCoord, vecTarget[1]); - engfunc(EngFunc_WriteCoord, vecTarget[2] + 16.0); - engfunc(EngFunc_WriteCoord, vecSrc[0]); - engfunc(EngFunc_WriteCoord, vecSrc[1]); - engfunc(EngFunc_WriteCoord, vecSrc[2] + 16.0); - write_short(g_iArrowModelIndex); - write_byte(0); - write_byte(0); - write_byte(iLifeTime); - write_byte(iWidth); - write_byte(0); - write_byte(irgColor[0]); - write_byte(irgColor[1]); - write_byte(irgColor[2]); - write_byte(iBrightness); - write_byte(0); - message_end(); + engfunc(EngFunc_MessageBegin, pPlayer ? MSG_ONE : MSG_ALL, SVC_TEMPENTITY, vecSrc, pPlayer); + write_byte(TE_BEAMPOINTS); + engfunc(EngFunc_WriteCoord, vecTarget[0]); + engfunc(EngFunc_WriteCoord, vecTarget[1]); + engfunc(EngFunc_WriteCoord, vecTarget[2] + 16.0); + engfunc(EngFunc_WriteCoord, vecSrc[0]); + engfunc(EngFunc_WriteCoord, vecSrc[1]); + engfunc(EngFunc_WriteCoord, vecSrc[2] + 16.0); + write_short(g_iArrowModelIndex); + write_byte(0); + write_byte(0); + write_byte(iLifeTime); + write_byte(iWidth); + write_byte(0); + write_byte(irgColor[0]); + write_byte(irgColor[1]); + write_byte(irgColor[2]); + write_byte(iBrightness); + write_byte(0); + message_end(); } diff --git a/api/navsystem/include/api_navsystem.inc b/api/navsystem/include/api_navsystem.inc index 385d6f8..e99f132 100644 --- a/api/navsystem/include/api_navsystem.inc +++ b/api/navsystem/include/api_navsystem.inc @@ -8,15 +8,15 @@ #include enum NavArea { - Invalid_NavArea = 0 + Invalid_NavArea = 0 }; enum NavBuildPathTask { - Invalid_NavBuildPathTask = 0 + Invalid_NavBuildPathTask = 0 }; enum NavPath { - Invalid_NavPath = 0 + Invalid_NavPath = 0 }; native Nav_Precache(); diff --git a/api/navsystem/include/api_navsystem_const.inc b/api/navsystem/include/api_navsystem_const.inc index 4d9a384..7c05c2b 100644 --- a/api/navsystem/include/api_navsystem_const.inc +++ b/api/navsystem/include/api_navsystem_const.inc @@ -19,65 +19,65 @@ #define WALK_THRU_EVERYTHING (WALK_THRU_DOORS | WALK_THRU_BREAKABLES) enum NavErrorType { - NAV_OK, - NAV_CANT_ACCESS_FILE, - NAV_INVALID_FILE, - NAV_BAD_FILE_VERSION, - NAV_CORRUPT_DATA, + NAV_OK, + NAV_CANT_ACCESS_FILE, + NAV_INVALID_FILE, + NAV_BAD_FILE_VERSION, + NAV_CORRUPT_DATA, }; enum NavAttributeType { - NAV_CROUCH = 0x01, // must crouch to use this node/area - NAV_JUMP = 0x02, // must jump to traverse this area - NAV_PRECISE = 0x04, // do not adjust for obstacles, just move along area - NAV_NO_JUMP = 0x08, // inhibit discontinuity jumping + NAV_CROUCH = 0x01, // must crouch to use this node/area + NAV_JUMP = 0x02, // must jump to traverse this area + NAV_PRECISE = 0x04, // do not adjust for obstacles, just move along area + NAV_NO_JUMP = 0x08, // inhibit discontinuity jumping }; enum NavDirType { - NORTH = 0, - EAST, - SOUTH, - WEST, + NORTH = 0, + EAST, + SOUTH, + WEST, - NUM_DIRECTIONS + NUM_DIRECTIONS }; // Defines possible ways to move from one area to another enum NavTraverseType { - // NOTE: First 4 directions MUST match NavDirType - GO_NORTH = 0, - GO_EAST, - GO_SOUTH, - GO_WEST, - GO_LADDER_UP, - GO_LADDER_DOWN, - GO_JUMP, + // NOTE: First 4 directions MUST match NavDirType + GO_NORTH = 0, + GO_EAST, + GO_SOUTH, + GO_WEST, + GO_LADDER_UP, + GO_LADDER_DOWN, + GO_JUMP, - NUM_TRAVERSE_TYPES + NUM_TRAVERSE_TYPES }; enum NavCornerType { - NORTH_WEST = 0, - NORTH_EAST, - SOUTH_EAST, - SOUTH_WEST, + NORTH_WEST = 0, + NORTH_EAST, + SOUTH_EAST, + SOUTH_WEST, - NUM_CORNERS + NUM_CORNERS }; enum NavRelativeDirType { - FORWARD = 0, - RIGHT, - BACKWARD, - LEFT, - UP, - DOWN, + FORWARD = 0, + RIGHT, + BACKWARD, + LEFT, + UP, + DOWN, - NUM_RELATIVE_DIRECTIONS + NUM_RELATIVE_DIRECTIONS }; enum LadderDirectionType { - LADDER_UP = 0, - LADDER_DOWN, - NUM_LADDER_DIRECTIONS + LADDER_UP = 0, + LADDER_DOWN, + NUM_LADDER_DIRECTIONS }; diff --git a/api/player-camera/api_player_camera.sma b/api/player-camera/api_player_camera.sma index 0c7ddf3..8e19d35 100644 --- a/api/player-camera/api_player_camera.sma +++ b/api/player-camera/api_player_camera.sma @@ -28,15 +28,15 @@ public plugin_precache() { } public plugin_init() { - register_plugin("[API] Player Camerea", "1.0.0", "Hedgehog Fog"); + register_plugin("[API] Player Camerea", "1.0.0", "Hedgehog Fog"); - RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); - RegisterHamPlayer(Ham_Player_PreThink, "HamHook_Player_PreThink_Post", .Post = 1); + RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); + RegisterHamPlayer(Ham_Player_PreThink, "HamHook_Player_PreThink_Post", .Post = 1); - g_fwActivate = CreateMultiForward("PlayerCamera_Fw_Activate", ET_STOP, FP_CELL); - g_fwDeactivate = CreateMultiForward("PlayerCamera_Fw_Deactivate", ET_STOP, FP_CELL); - g_fwActivated = CreateMultiForward("PlayerCamera_Fw_Activated", ET_IGNORE, FP_CELL); - g_fwDeactivated = CreateMultiForward("PlayerCamera_Fw_Deactivated", ET_IGNORE, FP_CELL); + g_fwActivate = CreateMultiForward("PlayerCamera_Fw_Activate", ET_STOP, FP_CELL); + g_fwDeactivate = CreateMultiForward("PlayerCamera_Fw_Deactivate", ET_STOP, FP_CELL); + g_fwActivated = CreateMultiForward("PlayerCamera_Fw_Activated", ET_IGNORE, FP_CELL); + g_fwDeactivated = CreateMultiForward("PlayerCamera_Fw_Deactivated", ET_IGNORE, FP_CELL); } public plugin_natives() { @@ -171,71 +171,71 @@ SetCameraThinkDelay(pPlayer, Float:flThinkDelay) { } CreatePlayerCamera(pPlayer) { - new pCamera = engfunc(EngFunc_CreateNamedEntity, g_iszTriggerCameraClassname); + new pCamera = engfunc(EngFunc_CreateNamedEntity, g_iszTriggerCameraClassname); - set_pev(pCamera, pev_classname, "trigger_camera"); - set_pev(pCamera, pev_modelindex, g_iCameraModelIndex); - set_pev(pCamera, pev_owner, pPlayer); - set_pev(pCamera, pev_solid, SOLID_NOT); - set_pev(pCamera, pev_movetype, MOVETYPE_FLY); - set_pev(pCamera, pev_rendermode, kRenderTransTexture); + set_pev(pCamera, pev_classname, "trigger_camera"); + set_pev(pCamera, pev_modelindex, g_iCameraModelIndex); + set_pev(pCamera, pev_owner, pPlayer); + set_pev(pCamera, pev_solid, SOLID_NOT); + set_pev(pCamera, pev_movetype, MOVETYPE_FLY); + set_pev(pCamera, pev_rendermode, kRenderTransTexture); - return pCamera; + return pCamera; } PlayerCameraThink(pPlayer) { - if (g_rgflPlayerCameraNextThink[pPlayer] > get_gametime()) { - return; - } + if (g_rgflPlayerCameraNextThink[pPlayer] > get_gametime()) { + return; + } - g_rgflPlayerCameraNextThink[pPlayer] = get_gametime() + g_rgflPlayerCameraThinkDelay[pPlayer]; + g_rgflPlayerCameraNextThink[pPlayer] = get_gametime() + g_rgflPlayerCameraThinkDelay[pPlayer]; - if (g_rgpPlayerCamera[pPlayer] == -1) { - return; - } + if (g_rgpPlayerCamera[pPlayer] == -1) { + return; + } - if (!is_user_alive(pPlayer)) { - return; - } + if (!is_user_alive(pPlayer)) { + return; + } - static Float:vecOrigin[3]; - pev(pPlayer, pev_origin, vecOrigin); - xs_vec_add(vecOrigin, g_rgflPlayerCamerOffset[pPlayer], vecOrigin); + static Float:vecOrigin[3]; + pev(pPlayer, pev_origin, vecOrigin); + xs_vec_add(vecOrigin, g_rgflPlayerCamerOffset[pPlayer], vecOrigin); - static Float:vecAngles[3]; - pev(pPlayer, pev_angles, vecAngles); - vecAngles[0] = vecAngles[2] = 0.0; - xs_vec_add(vecAngles, g_rgflPlayerCameraAngles[pPlayer], vecAngles); + static Float:vecAngles[3]; + pev(pPlayer, pev_angles, vecAngles); + vecAngles[0] = vecAngles[2] = 0.0; + xs_vec_add(vecAngles, g_rgflPlayerCameraAngles[pPlayer], vecAngles); - static Float:vecBack[3]; - angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecBack); - xs_vec_neg(vecBack, vecBack); + static Float:vecBack[3]; + angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecBack); + xs_vec_neg(vecBack, vecBack); - static Float:vecVelocity[3]; - pev(pPlayer, pev_velocity, vecVelocity); + static Float:vecVelocity[3]; + pev(pPlayer, pev_velocity, vecVelocity); - static Float:vecCameraOrigin[3]; - for (new i = 0; i < 3; ++i) { - vecCameraOrigin[i] = vecOrigin[i] + (vecBack[i] * g_rgflPlayerCameraDistance[pPlayer]); - } + static Float:vecCameraOrigin[3]; + for (new i = 0; i < 3; ++i) { + vecCameraOrigin[i] = vecOrigin[i] + (vecBack[i] * g_rgflPlayerCameraDistance[pPlayer]); + } - new pTr = create_tr2(); - engfunc(EngFunc_TraceLine, vecOrigin, vecCameraOrigin, IGNORE_MONSTERS, pPlayer, pTr); + new pTr = create_tr2(); + engfunc(EngFunc_TraceLine, vecOrigin, vecCameraOrigin, IGNORE_MONSTERS, pPlayer, pTr); - static Float:flFraction; - get_tr2(pTr, TR_flFraction, flFraction); + static Float:flFraction; + get_tr2(pTr, TR_flFraction, flFraction); - free_tr2(pTr); + free_tr2(pTr); - if(flFraction != 1.0) { - for (new i = 0; i < 3; ++i) { - vecCameraOrigin[i] = vecOrigin[i] + (vecBack[i] * (g_rgflPlayerCameraDistance[pPlayer] * flFraction)); - } + if(flFraction != 1.0) { + for (new i = 0; i < 3; ++i) { + vecCameraOrigin[i] = vecOrigin[i] + (vecBack[i] * (g_rgflPlayerCameraDistance[pPlayer] * flFraction)); } + } - set_pev(g_rgpPlayerCamera[pPlayer], pev_origin, vecCameraOrigin); - set_pev(g_rgpPlayerCamera[pPlayer], pev_angles, vecAngles); - set_pev(g_rgpPlayerCamera[pPlayer], pev_velocity, vecVelocity); + set_pev(g_rgpPlayerCamera[pPlayer], pev_origin, vecCameraOrigin); + set_pev(g_rgpPlayerCamera[pPlayer], pev_angles, vecAngles); + set_pev(g_rgpPlayerCamera[pPlayer], pev_velocity, vecVelocity); } ReattachCamera(pPlayer) { diff --git a/api/player-cosmetics/api_player_cosmetics.sma b/api/player-cosmetics/api_player_cosmetics.sma index eea4be2..c436267 100644 --- a/api/player-cosmetics/api_player_cosmetics.sma +++ b/api/player-cosmetics/api_player_cosmetics.sma @@ -19,67 +19,67 @@ new g_iszCosmeticClassName; new Float:g_rgflPlayerNextRenderingUpdate[MAX_PLAYERS + 1]; public plugin_precache() { - g_iszCosmeticClassName = engfunc(EngFunc_AllocString, "info_target"); + g_iszCosmeticClassName = engfunc(EngFunc_AllocString, "info_target"); } public plugin_init() { - register_plugin(PLUGIN, VERSION, AUTHOR); + register_plugin(PLUGIN, VERSION, AUTHOR); - RegisterHam(Ham_Think, "info_target", "HamHook_Target_Think", .Post = 0); + RegisterHam(Ham_Think, "info_target", "HamHook_Target_Think", .Post = 0); - register_concmd("player_cosmetic_equip", "Command_Equip", ADMIN_CVAR); - register_concmd("player_cosmetic_unequip", "Command_Unequip", ADMIN_CVAR); + register_concmd("player_cosmetic_equip", "Command_Equip", ADMIN_CVAR); + register_concmd("player_cosmetic_unequip", "Command_Unequip", ADMIN_CVAR); } public plugin_natives() { - register_library("api_player_cosmetic"); - register_native("PlayerCosmetic_Equip", "Native_Equip"); - register_native("PlayerCosmetic_Unequip", "Native_Unquip"); - register_native("PlayerCosmetic_IsEquiped", "Native_IsEquiped"); - register_native("PlayerCosmetic_GetEntity", "Native_GetEntity"); + register_library("api_player_cosmetic"); + register_native("PlayerCosmetic_Equip", "Native_Equip"); + register_native("PlayerCosmetic_Unequip", "Native_Unquip"); + register_native("PlayerCosmetic_IsEquiped", "Native_IsEquiped"); + register_native("PlayerCosmetic_GetEntity", "Native_GetEntity"); } public client_connect(pPlayer) { - g_itPlayerCosmetics[pPlayer] = TrieCreate(); - g_rgflPlayerNextRenderingUpdate[pPlayer] = get_gametime(); + g_itPlayerCosmetics[pPlayer] = TrieCreate(); + g_rgflPlayerNextRenderingUpdate[pPlayer] = get_gametime(); } public client_disconnected(pPlayer) { - for (new TrieIter:iIterator = TrieIterCreate(g_itPlayerCosmetics[pPlayer]); !TrieIterEnded(iIterator); TrieIterNext(iIterator)) { - static pCosmetic; - TrieIterGetCell(iIterator, pCosmetic); - @PlayerCosmetic_Destroy(pCosmetic); - } + for (new TrieIter:iIterator = TrieIterCreate(g_itPlayerCosmetics[pPlayer]); !TrieIterEnded(iIterator); TrieIterNext(iIterator)) { + static pCosmetic; + TrieIterGetCell(iIterator, pCosmetic); + @PlayerCosmetic_Destroy(pCosmetic); + } - TrieDestroy(g_itPlayerCosmetics[pPlayer]); + TrieDestroy(g_itPlayerCosmetics[pPlayer]); } public Native_Equip(iPluginId, iArgc) { - new pPlayer = get_param(1); - new iModelIndex = get_param(2); + new pPlayer = get_param(1); + new iModelIndex = get_param(2); - return @Player_EquipCosmetic(pPlayer, iModelIndex); + return @Player_EquipCosmetic(pPlayer, iModelIndex); } public Native_Unquip(iPluginId, iArgc) { - new pPlayer = get_param(1); - new iModelIndex = get_param(2); + new pPlayer = get_param(1); + new iModelIndex = get_param(2); - return @Player_UnequipCosmetic(pPlayer, iModelIndex); + return @Player_UnequipCosmetic(pPlayer, iModelIndex); } public Native_IsEquiped(iPluginId, iArgc) { - new pPlayer = get_param(1); - new iModelIndex = get_param(2); + new pPlayer = get_param(1); + new iModelIndex = get_param(2); - return @Player_IsCosmeticEquiped(pPlayer, iModelIndex); + return @Player_IsCosmeticEquiped(pPlayer, iModelIndex); } public Native_GetEntity(iPluginId, iArgc) { - new pPlayer = get_param(1); - new iModelIndex = get_param(2); + new pPlayer = get_param(1); + new iModelIndex = get_param(2); - return @Player_GetCosmeticEntity(pPlayer, iModelIndex); + return @Player_GetCosmeticEntity(pPlayer, iModelIndex); } public Command_Equip(pPlayer, iLevel, iCId) { @@ -126,112 +126,112 @@ public Command_Unequip(pPlayer, iLevel, iCId) { } public HamHook_Target_Think(pEntity) { - static szClassName[32]; - pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); + static szClassName[32]; + pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); - if (equal(szClassName, COSMETIC_CLASSNAME)) { - @PlayerCosmetic_Think(pEntity); - } + if (equal(szClassName, COSMETIC_CLASSNAME)) { + @PlayerCosmetic_Think(pEntity); + } } @Player_EquipCosmetic(this, iModelIndex) { - if (g_itPlayerCosmetics[this] == Invalid_Trie) { - return -1; - } + if (g_itPlayerCosmetics[this] == Invalid_Trie) { + return -1; + } - static szModelIndex[8]; - num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); + static szModelIndex[8]; + num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); - new pCosmetic = -1; - if (TrieKeyExists(g_itPlayerCosmetics[this], szModelIndex)) { - TrieGetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic); - } else { - pCosmetic = @PlayerCosmetic_Create(this, iModelIndex); - TrieSetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic); - } + new pCosmetic = -1; + if (TrieKeyExists(g_itPlayerCosmetics[this], szModelIndex)) { + TrieGetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic); + } else { + pCosmetic = @PlayerCosmetic_Create(this, iModelIndex); + TrieSetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic); + } - return pCosmetic; + return pCosmetic; } bool:@Player_UnequipCosmetic(this, iModelIndex) { - if (g_itPlayerCosmetics[this] == Invalid_Trie) { - return false; - } - - static szModelIndex[8]; - num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); + if (g_itPlayerCosmetics[this] == Invalid_Trie) { + return false; + } + + static szModelIndex[8]; + num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); - static pCosmetic; - if (!TrieGetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic)) { - return false; - } + static pCosmetic; + if (!TrieGetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic)) { + return false; + } - @PlayerCosmetic_Destroy(pCosmetic); - TrieDeleteKey(g_itPlayerCosmetics[this], szModelIndex); + @PlayerCosmetic_Destroy(pCosmetic); + TrieDeleteKey(g_itPlayerCosmetics[this], szModelIndex); - return true; + return true; } bool:@Player_IsCosmeticEquiped(this, iModelIndex) { - if (g_itPlayerCosmetics[this] == Invalid_Trie) { - return false; - } + if (g_itPlayerCosmetics[this] == Invalid_Trie) { + return false; + } - static szModelIndex[8]; - num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); + static szModelIndex[8]; + num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); - return TrieKeyExists(g_itPlayerCosmetics[this], szModelIndex); + return TrieKeyExists(g_itPlayerCosmetics[this], szModelIndex); } @Player_GetCosmeticEntity(this, iModelIndex) { - if (g_itPlayerCosmetics[this] == Invalid_Trie) { - return -1; - } + if (g_itPlayerCosmetics[this] == Invalid_Trie) { + return -1; + } - static szModelIndex[8]; - num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); + static szModelIndex[8]; + num_to_str(iModelIndex, szModelIndex, charsmax(szModelIndex)); - static pCosmetic; - if (!TrieGetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic)) { - return -1; - } + static pCosmetic; + if (!TrieGetCell(g_itPlayerCosmetics[this], szModelIndex, pCosmetic)) { + return -1; + } - return pCosmetic; + return pCosmetic; } @PlayerCosmetic_Create(pPlayer, iModelIndex) { - new this = engfunc(EngFunc_CreateNamedEntity, g_iszCosmeticClassName); + new this = engfunc(EngFunc_CreateNamedEntity, g_iszCosmeticClassName); - set_pev(this, pev_classname, COSMETIC_CLASSNAME); - set_pev(this, pev_movetype, MOVETYPE_FOLLOW); - set_pev(this, pev_aiment, pPlayer); - set_pev(this, pev_owner, pPlayer); - set_pev(this, pev_modelindex, iModelIndex); + set_pev(this, pev_classname, COSMETIC_CLASSNAME); + set_pev(this, pev_movetype, MOVETYPE_FOLLOW); + set_pev(this, pev_aiment, pPlayer); + set_pev(this, pev_owner, pPlayer); + set_pev(this, pev_modelindex, iModelIndex); - set_pev(this, pev_nextthink, get_gametime()); + set_pev(this, pev_nextthink, get_gametime()); - return this; + return this; } @PlayerCosmetic_Think(this) { - new pOwner = pev(this, pev_owner); + new pOwner = pev(this, pev_owner); - static iRenderMode; iRenderMode = pev(pOwner, pev_rendermode); - static iRenderFx; iRenderFx = pev(pOwner, pev_renderfx); - static Float:flRenderAmt; pev(pOwner, pev_renderamt, flRenderAmt); - static Float:rgflRenderColor[3]; pev(pOwner, pev_rendercolor, rgflRenderColor); + static iRenderMode; iRenderMode = pev(pOwner, pev_rendermode); + static iRenderFx; iRenderFx = pev(pOwner, pev_renderfx); + static Float:flRenderAmt; pev(pOwner, pev_renderamt, flRenderAmt); + static Float:rgflRenderColor[3]; pev(pOwner, pev_rendercolor, rgflRenderColor); - set_pev(this, pev_rendermode, iRenderMode); - set_pev(this, pev_renderamt, flRenderAmt); - set_pev(this, pev_renderfx, iRenderFx); - set_pev(this, pev_rendercolor, rgflRenderColor); + set_pev(this, pev_rendermode, iRenderMode); + set_pev(this, pev_renderamt, flRenderAmt); + set_pev(this, pev_renderfx, iRenderFx); + set_pev(this, pev_rendercolor, rgflRenderColor); - set_pev(this, pev_nextthink, get_gametime() + 0.1); + set_pev(this, pev_nextthink, get_gametime() + 0.1); } @PlayerCosmetic_Destroy(this) { - set_pev(this, pev_movetype, MOVETYPE_NONE); - set_pev(this, pev_aiment, 0); - set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); - dllfunc(DLLFunc_Think, this); + set_pev(this, pev_movetype, MOVETYPE_NONE); + set_pev(this, pev_aiment, 0); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); + dllfunc(DLLFunc_Think, this); } diff --git a/api/player-inventory/api_player_inventory.sma b/api/player-inventory/api_player_inventory.sma index d6d2889..633ab41 100644 --- a/api/player-inventory/api_player_inventory.sma +++ b/api/player-inventory/api_player_inventory.sma @@ -33,356 +33,356 @@ new g_rgszPlayerAuthId[MAX_PLAYERS + 1][32]; new Array:g_irgPlayerInventories[MAX_PLAYERS + 1] = { Invalid_Array, ... }; public plugin_precache() { - g_hVault = OpenVault(); + g_hVault = OpenVault(); } public plugin_init() { - register_plugin(PLUGIN, VERSION, AUTHOR); - - g_fwInitialized = CreateMultiForward("PlayerInventory_Fw_Initialized", ET_STOP, FP_CELL); - g_fwLoad = CreateMultiForward("PlayerInventory_Fw_Load", ET_STOP, FP_CELL); - g_fwLoaded = CreateMultiForward("PlayerInventory_Fw_Loaded", ET_IGNORE, FP_CELL); - g_fwSave = CreateMultiForward("PlayerInventory_Fw_Save", ET_STOP, FP_CELL); - g_fwSaved = CreateMultiForward("PlayerInventory_Fw_Saved", ET_IGNORE, FP_CELL); - g_fwSlotCreated = CreateMultiForward("PlayerInventory_Fw_SlotCreated", ET_IGNORE, FP_CELL, FP_CELL); - g_fwSlotRemoved = CreateMultiForward("PlayerInventory_Fw_SlotRemoved", ET_IGNORE, FP_CELL, FP_CELL); - g_fwSlotLoad = CreateMultiForward("PlayerInventory_Fw_SlotLoad", ET_STOP, FP_CELL, FP_CELL); - g_fwSlotLoaded = CreateMultiForward("PlayerInventory_Fw_SlotLoaded", ET_IGNORE, FP_CELL, FP_CELL); - g_fwSlotSave = CreateMultiForward("PlayerInventory_Fw_SlotSave", ET_STOP, FP_CELL, FP_CELL); - g_fwSlotSaved = CreateMultiForward("PlayerInventory_Fw_SlotSaved", ET_IGNORE, FP_CELL, FP_CELL); + register_plugin(PLUGIN, VERSION, AUTHOR); + + g_fwInitialized = CreateMultiForward("PlayerInventory_Fw_Initialized", ET_STOP, FP_CELL); + g_fwLoad = CreateMultiForward("PlayerInventory_Fw_Load", ET_STOP, FP_CELL); + g_fwLoaded = CreateMultiForward("PlayerInventory_Fw_Loaded", ET_IGNORE, FP_CELL); + g_fwSave = CreateMultiForward("PlayerInventory_Fw_Save", ET_STOP, FP_CELL); + g_fwSaved = CreateMultiForward("PlayerInventory_Fw_Saved", ET_IGNORE, FP_CELL); + g_fwSlotCreated = CreateMultiForward("PlayerInventory_Fw_SlotCreated", ET_IGNORE, FP_CELL, FP_CELL); + g_fwSlotRemoved = CreateMultiForward("PlayerInventory_Fw_SlotRemoved", ET_IGNORE, FP_CELL, FP_CELL); + g_fwSlotLoad = CreateMultiForward("PlayerInventory_Fw_SlotLoad", ET_STOP, FP_CELL, FP_CELL); + g_fwSlotLoaded = CreateMultiForward("PlayerInventory_Fw_SlotLoaded", ET_IGNORE, FP_CELL, FP_CELL); + g_fwSlotSave = CreateMultiForward("PlayerInventory_Fw_SlotSave", ET_STOP, FP_CELL, FP_CELL); + g_fwSlotSaved = CreateMultiForward("PlayerInventory_Fw_SlotSaved", ET_IGNORE, FP_CELL, FP_CELL); } public plugin_end() { - nvault_close(g_hVault); + nvault_close(g_hVault); } public plugin_natives() { - register_library("api_player_inventory"); - - register_native("PlayerInventory_GetItem", "Native_GetItem"); - register_native("PlayerInventory_CheckItemType", "Native_CheckItemType"); - register_native("PlayerInventory_GetItemType", "Native_GetItemType"); - register_native("PlayerInventory_GiveItem", "Native_GiveItem"); - register_native("PlayerInventory_SetItem", "Native_SetItem"); - register_native("PlayerInventory_TakeItem", "Native_TakeItem"); - register_native("PlayerInventory_Size", "Native_Size"); + register_library("api_player_inventory"); + + register_native("PlayerInventory_GetItem", "Native_GetItem"); + register_native("PlayerInventory_CheckItemType", "Native_CheckItemType"); + register_native("PlayerInventory_GetItemType", "Native_GetItemType"); + register_native("PlayerInventory_GiveItem", "Native_GiveItem"); + register_native("PlayerInventory_SetItem", "Native_SetItem"); + register_native("PlayerInventory_TakeItem", "Native_TakeItem"); + register_native("PlayerInventory_Size", "Native_Size"); } /*--------------------------------[ Natives ]--------------------------------*/ public Struct:Native_GetItem(iPluginId, iArgc) { - new pPlayer = get_param(1); - new iSlot = get_param(2); + new pPlayer = get_param(1); + new iSlot = get_param(2); - new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[pPlayer], iSlot); - if (sSlot == Invalid_Struct) { - return Invalid_Struct; - } + new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[pPlayer], iSlot); + if (sSlot == Invalid_Struct) { + return Invalid_Struct; + } - return StructGetCell(sSlot, InventorySlot_Item); + return StructGetCell(sSlot, InventorySlot_Item); } public bool:Native_CheckItemType(iPluginId, iArgc) { - new pPlayer = get_param(1); - new iSlot = get_param(2); + new pPlayer = get_param(1); + new iSlot = get_param(2); - static szType[32]; - get_string(3, szType, charsmax(szType)); + static szType[32]; + get_string(3, szType, charsmax(szType)); - new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[pPlayer], iSlot); - if (sSlot == Invalid_Struct) { - return false; - } + new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[pPlayer], iSlot); + if (sSlot == Invalid_Struct) { + return false; + } - static szSlotType[32]; - StructGetString(sSlot, InventorySlot_Type, szSlotType, charsmax(szSlotType)); + static szSlotType[32]; + StructGetString(sSlot, InventorySlot_Type, szSlotType, charsmax(szSlotType)); - return !!equal(szType, szSlotType); + return !!equal(szType, szSlotType); } public bool:Native_GetItemType(iPluginId, iArgc) { - new pPlayer = get_param(1); - new iSlot = get_param(2); + new pPlayer = get_param(1); + new iSlot = get_param(2); - new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[pPlayer], iSlot); - if (sSlot == Invalid_Struct) { - return false; - } + new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[pPlayer], iSlot); + if (sSlot == Invalid_Struct) { + return false; + } - static szType[32]; - StructGetString(sSlot, InventorySlot_Type, szType, charsmax(szType)); + static szType[32]; + StructGetString(sSlot, InventorySlot_Type, szType, charsmax(szType)); - set_string(3, szType, get_param(4)); + set_string(3, szType, get_param(4)); - return true; + return true; } public Native_GiveItem(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - static szType[32]; - get_string(2, szType, charsmax(szType)); + static szType[32]; + get_string(2, szType, charsmax(szType)); - new Struct:sItem = Struct:get_param(3); + new Struct:sItem = Struct:get_param(3); - return @Player_GiveItem(pPlayer, szType, sItem); + return @Player_GiveItem(pPlayer, szType, sItem); } public Native_SetItem(iPluginId, iArgc) { - new pPlayer = get_param(1); - new iSlot = get_param(2); + new pPlayer = get_param(1); + new iSlot = get_param(2); - static szType[32]; - get_string(3, szType, charsmax(szType)); + static szType[32]; + get_string(3, szType, charsmax(szType)); - new Struct:sItem = Struct:get_param(4); + new Struct:sItem = Struct:get_param(4); - @Player_SetItem(pPlayer, iSlot, szType, sItem); + @Player_SetItem(pPlayer, iSlot, szType, sItem); } public Native_TakeItem(iPluginId, iArgc) { - new pPlayer = get_param(1); - new iSlot = get_param(2); + new pPlayer = get_param(1); + new iSlot = get_param(2); - return @Player_TakeItem(pPlayer, iSlot); + return @Player_TakeItem(pPlayer, iSlot); } public Native_Size(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - return ArraySize(g_irgPlayerInventories[pPlayer]); + return ArraySize(g_irgPlayerInventories[pPlayer]); } /*--------------------------------[ Forwards ]--------------------------------*/ public client_connect(pPlayer) { - if (g_irgPlayerInventories[pPlayer] != Invalid_Array) { - ArrayDestroy(g_irgPlayerInventories[pPlayer]); - } + if (g_irgPlayerInventories[pPlayer] != Invalid_Array) { + ArrayDestroy(g_irgPlayerInventories[pPlayer]); + } - g_irgPlayerInventories[pPlayer] = ArrayCreate(); + g_irgPlayerInventories[pPlayer] = ArrayCreate(); - ExecuteForward(g_fwInitialized, _, pPlayer); + ExecuteForward(g_fwInitialized, _, pPlayer); } public client_authorized(pPlayer) { - get_user_authid(pPlayer, g_rgszPlayerAuthId[pPlayer], charsmax(g_rgszPlayerAuthId[])); - LoadPlayerInventory(pPlayer); + get_user_authid(pPlayer, g_rgszPlayerAuthId[pPlayer], charsmax(g_rgszPlayerAuthId[])); + LoadPlayerInventory(pPlayer); } public client_disconnected(pPlayer) { - SavePlayerInventory(pPlayer); + SavePlayerInventory(pPlayer); } /*--------------------------------[ Player Methods ]--------------------------------*/ @Player_GiveItem(this, const szType[], Struct:sItem) { - new Struct:sSlot = @InventorySlot_Create(this, szType, sItem); + new Struct:sSlot = @InventorySlot_Create(this, szType, sItem); - static szSavedType[32]; - StructGetString(sSlot, InventorySlot_Type, szSavedType, charsmax(szSavedType)); + static szSavedType[32]; + StructGetString(sSlot, InventorySlot_Type, szSavedType, charsmax(szSavedType)); - new iSlot = ArrayPushCell(g_irgPlayerInventories[this], sSlot); - ExecuteForward(g_fwSlotCreated, _, this, iSlot); + new iSlot = ArrayPushCell(g_irgPlayerInventories[this], sSlot); + ExecuteForward(g_fwSlotCreated, _, this, iSlot); - return iSlot; + return iSlot; } @Player_SetItem(this, iSlot, const szType[], Struct:sItem) { - new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[this], iSlot); - if (sSlot == Invalid_Struct) { - sSlot = @InventorySlot_Create(this, szType, sItem); - } else { - StructSetString(sSlot, InventorySlot_Type, szType); - StructSetCell(sSlot, InventorySlot_Item, sItem); - } + new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[this], iSlot); + if (sSlot == Invalid_Struct) { + sSlot = @InventorySlot_Create(this, szType, sItem); + } else { + StructSetString(sSlot, InventorySlot_Type, szType); + StructSetCell(sSlot, InventorySlot_Item, sItem); + } } @Player_TakeItem(this, iSlot) { - new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[this], iSlot); - if (sSlot == Invalid_Struct) { - return false; - } + new Struct:sSlot = ArrayGetCell(g_irgPlayerInventories[this], iSlot); + if (sSlot == Invalid_Struct) { + return false; + } - static iResult; - ExecuteForward(g_fwSlotRemoved, iResult, this, iSlot); + static iResult; + ExecuteForward(g_fwSlotRemoved, iResult, this, iSlot); - if (iResult != PLUGIN_CONTINUE) { - return false; - } + if (iResult != PLUGIN_CONTINUE) { + return false; + } - @InventorySlot_Destroy(sSlot); - ArraySetCell(g_irgPlayerInventories[this], iSlot, Invalid_Struct); + @InventorySlot_Destroy(sSlot); + ArraySetCell(g_irgPlayerInventories[this], iSlot, Invalid_Struct); - return true; + return true; } /*--------------------------------[ Inventory Methods ]--------------------------------*/ Struct:@InventorySlot_Create(pPlayer, const szType[], Struct:sItem) { - new Struct:this = StructCreate(InventorySlot); - StructSetString(this, InventorySlot_Type, szType); - StructSetCell(this, InventorySlot_Item, sItem); + new Struct:this = StructCreate(InventorySlot); + StructSetString(this, InventorySlot_Type, szType); + StructSetCell(this, InventorySlot_Item, sItem); - return this; + return this; } @InventorySlot_Destroy(&Struct:this) { - StructDestroy(this); + StructDestroy(this); } /*--------------------------------[ Vault ]--------------------------------*/ OpenVault() { - new szVaultDir[256]; - get_datadir(szVaultDir, charsmax(szVaultDir)); - format(szVaultDir, charsmax(szVaultDir), "%s/vault", szVaultDir); + new szVaultDir[256]; + get_datadir(szVaultDir, charsmax(szVaultDir)); + format(szVaultDir, charsmax(szVaultDir), "%s/vault", szVaultDir); - static szVaultFilePath[256]; - format(szVaultFilePath, charsmax(szVaultFilePath), "%s/%s.vault", szVaultDir, VAULT_NAME); + static szVaultFilePath[256]; + format(szVaultFilePath, charsmax(szVaultFilePath), "%s/%s.vault", szVaultDir, VAULT_NAME); - new bool:bNew = true; + new bool:bNew = true; - if (file_exists(szVaultFilePath)) { - new hVault = nvault_open(VAULT_NAME); - new iVersion = nvault_get(hVault, "_version"); - nvault_close(hVault); + if (file_exists(szVaultFilePath)) { + new hVault = nvault_open(VAULT_NAME); + new iVersion = nvault_get(hVault, "_version"); + nvault_close(hVault); - if (iVersion < VAULT_VERSION) { - log_amx("Invalid vault file. The vault file will be replaced!"); + if (iVersion < VAULT_VERSION) { + log_amx("Invalid vault file. The vault file will be replaced!"); - static szBacukupVaultFilePath[256]; - format(szBacukupVaultFilePath, charsmax(szBacukupVaultFilePath), "%s/%s.vault.backup%d", szVaultDir, VAULT_NAME, get_systime()); + static szBacukupVaultFilePath[256]; + format(szBacukupVaultFilePath, charsmax(szBacukupVaultFilePath), "%s/%s.vault.backup%d", szVaultDir, VAULT_NAME, get_systime()); - rename_file(szVaultFilePath, szBacukupVaultFilePath, 1); - } else { - bNew = false; - } + rename_file(szVaultFilePath, szBacukupVaultFilePath, 1); + } else { + bNew = false; } + } - new hVault = nvault_open(VAULT_NAME); + new hVault = nvault_open(VAULT_NAME); - if (bNew) { - static szVersion[4]; - num_to_str(VAULT_VERSION, szVersion, charsmax(szVersion)); - nvault_pset(hVault, "_version", szVersion); - } + if (bNew) { + static szVersion[4]; + num_to_str(VAULT_VERSION, szVersion, charsmax(szVersion)); + nvault_pset(hVault, "_version", szVersion); + } - return hVault; + return hVault; } LoadPlayerInventory(pPlayer) { - if (g_rgszPlayerAuthId[pPlayer][0] == '^0') { - return; + if (g_rgszPlayerAuthId[pPlayer][0] == '^0') { + return; + } + + static iLoadResult; + ExecuteForward(g_fwLoad, iLoadResult, pPlayer); + if (iLoadResult != PLUGIN_CONTINUE) { + return; + } + + ArrayClear(g_irgPlayerInventories[pPlayer]); + + new szKey[32]; + new szValue[1024]; + + format(szKey, charsmax(szKey), "%s_size", g_rgszPlayerAuthId[pPlayer]); + new iInventorySize = nvault_get(g_hVault, szKey); + + //Save items + for (new iSlot = 0; iSlot < iInventorySize; ++iSlot) { + static iSlotLoadResult; + ExecuteForward(g_fwSlotLoad, iSlotLoadResult, pPlayer, iSlot); + if (iSlotLoadResult != PLUGIN_CONTINUE) { + continue; } - static iLoadResult; - ExecuteForward(g_fwLoad, iLoadResult, pPlayer); - if (iLoadResult != PLUGIN_CONTINUE) { - return; - } + // item type + format(szKey, charsmax(szKey), "%s_item_%i_type", g_rgszPlayerAuthId[pPlayer], iSlot); - ArrayClear(g_irgPlayerInventories[pPlayer]); + new szType[32]; + nvault_get(g_hVault, szKey, szType, charsmax(szType)); - new szKey[32]; - new szValue[1024]; + // item struct + format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iSlot); + nvault_get(g_hVault, szKey, szValue, charsmax(szValue)); + new Struct:sItem = StructFromString(sItem, szValue); - format(szKey, charsmax(szKey), "%s_size", g_rgszPlayerAuthId[pPlayer]); - new iInventorySize = nvault_get(g_hVault, szKey); + @Player_GiveItem(pPlayer, szType, sItem); - //Save items - for (new iSlot = 0; iSlot < iInventorySize; ++iSlot) { - static iSlotLoadResult; - ExecuteForward(g_fwSlotLoad, iSlotLoadResult, pPlayer, iSlot); - if (iSlotLoadResult != PLUGIN_CONTINUE) { - continue; - } + ExecuteForward(g_fwSlotLoaded, _, pPlayer, iSlot); + } - // item type - format(szKey, charsmax(szKey), "%s_item_%i_type", g_rgszPlayerAuthId[pPlayer], iSlot); - - new szType[32]; - nvault_get(g_hVault, szKey, szType, charsmax(szType)); - - // item struct - format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iSlot); - nvault_get(g_hVault, szKey, szValue, charsmax(szValue)); - new Struct:sItem = StructFromString(sItem, szValue); - - @Player_GiveItem(pPlayer, szType, sItem); - - ExecuteForward(g_fwSlotLoaded, _, pPlayer, iSlot); - } - - ExecuteForward(g_fwLoaded, _, pPlayer); + ExecuteForward(g_fwLoaded, _, pPlayer); } SavePlayerInventory(pPlayer) { - if (g_rgszPlayerAuthId[pPlayer][0] == '^0') { - return; - } + if (g_rgszPlayerAuthId[pPlayer][0] == '^0') { + return; + } - new Array:irgInventory = g_irgPlayerInventories[pPlayer]; + new Array:irgInventory = g_irgPlayerInventories[pPlayer]; - new iInventorySize = ArraySize(irgInventory); - if (!iInventorySize) { - return; - } + new iInventorySize = ArraySize(irgInventory); + if (!iInventorySize) { + return; + } - new iSaveResult = 0; - ExecuteForward(g_fwSave, iSaveResult, pPlayer); - if (iSaveResult != PLUGIN_CONTINUE) { - return; - } + new iSaveResult = 0; + ExecuteForward(g_fwSave, iSaveResult, pPlayer); + if (iSaveResult != PLUGIN_CONTINUE) { + return; + } - new szKey[32]; - new szValue[1024]; + new szKey[32]; + new szValue[1024]; - //Save items - new iNewInventorySize = 0; - for (new iSlot = 0; iSlot < iInventorySize; ++iSlot) { - new Struct:sSlot = ArrayGetCell(irgInventory, iSlot); + //Save items + new iNewInventorySize = 0; + for (new iSlot = 0; iSlot < iInventorySize; ++iSlot) { + new Struct:sSlot = ArrayGetCell(irgInventory, iSlot); - if (sSlot == Invalid_Struct) { - continue; - } + if (sSlot == Invalid_Struct) { + continue; + } - static iSlotSaveResult; - ExecuteForward(g_fwSlotSave, iSlotSaveResult, pPlayer, iSlot); - if (iSlotSaveResult != PLUGIN_CONTINUE) { - continue; - } + static iSlotSaveResult; + ExecuteForward(g_fwSlotSave, iSlotSaveResult, pPlayer, iSlot); + if (iSlotSaveResult != PLUGIN_CONTINUE) { + continue; + } - new Struct:sItem = StructGetCell(sSlot, InventorySlot_Item); + new Struct:sItem = StructGetCell(sSlot, InventorySlot_Item); - // item type - format(szKey, charsmax(szKey), "%s_item_%i_type", g_rgszPlayerAuthId[pPlayer], iNewInventorySize); - StructGetString(sSlot, InventorySlot_Type, szValue, charsmax(szValue)); - nvault_set(g_hVault, szKey, szValue); + // item type + format(szKey, charsmax(szKey), "%s_item_%i_type", g_rgszPlayerAuthId[pPlayer], iNewInventorySize); + StructGetString(sSlot, InventorySlot_Type, szValue, charsmax(szValue)); + nvault_set(g_hVault, szKey, szValue); - // item struct - format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iNewInventorySize); - StructStringify(sItem, szValue, charsmax(szValue)); - nvault_set(g_hVault, szKey, szValue); + // item struct + format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iNewInventorySize); + StructStringify(sItem, szValue, charsmax(szValue)); + nvault_set(g_hVault, szKey, szValue); - iNewInventorySize++; + iNewInventorySize++; - ExecuteForward(g_fwSlotSaved, _, pPlayer, iSlot); - } + ExecuteForward(g_fwSlotSaved, _, pPlayer, iSlot); + } - for (new iSlot = iNewInventorySize; iSlot < iInventorySize; ++iSlot) { - format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iSlot); - nvault_remove(g_hVault, szKey); + for (new iSlot = iNewInventorySize; iSlot < iInventorySize; ++iSlot) { + format(szKey, charsmax(szKey), "%s_item_%i", g_rgszPlayerAuthId[pPlayer], iSlot); + nvault_remove(g_hVault, szKey); - format(szKey, charsmax(szKey), "%s_item_%i_type", g_rgszPlayerAuthId[pPlayer], iSlot); - nvault_remove(g_hVault, szKey); - } + format(szKey, charsmax(szKey), "%s_item_%i_type", g_rgszPlayerAuthId[pPlayer], iSlot); + nvault_remove(g_hVault, szKey); + } - // save inventory size - format(szKey, charsmax(szKey), "%s_size", g_rgszPlayerAuthId[pPlayer]); - format(szValue, charsmax(szValue), "%i", iNewInventorySize); + // save inventory size + format(szKey, charsmax(szKey), "%s_size", g_rgszPlayerAuthId[pPlayer]); + format(szValue, charsmax(szValue), "%i", iNewInventorySize); - nvault_set(g_hVault, szKey, szValue); + nvault_set(g_hVault, szKey, szValue); - ExecuteForward(g_fwSaved, _, pPlayer); + ExecuteForward(g_fwSaved, _, pPlayer); } diff --git a/api/player-model/api_player_model.sma b/api/player-model/api_player_model.sma index 6f0d753..35521d5 100644 --- a/api/player-model/api_player_model.sma +++ b/api/player-model/api_player_model.sma @@ -26,385 +26,385 @@ new Trie:g_itPlayerSequenceModelIndexes = Invalid_Trie; new Trie:g_itPlayerSequences = Invalid_Trie; public plugin_precache() { - g_iszSubModelClassname = engfunc(EngFunc_AllocString, "info_target"); - g_itPlayerSequenceModelIndexes = TrieCreate(); - g_itPlayerSequences = TrieCreate(); + g_iszSubModelClassname = engfunc(EngFunc_AllocString, "info_target"); + g_itPlayerSequenceModelIndexes = TrieCreate(); + g_itPlayerSequences = TrieCreate(); } public plugin_init() { - register_plugin(PLUGIN, VERSION, AUTHOR); + register_plugin(PLUGIN, VERSION, AUTHOR); - register_forward(FM_SetClientKeyValue, "FMHook_SetClientKeyValue"); + register_forward(FM_SetClientKeyValue, "FMHook_SetClientKeyValue"); - RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); - RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", .Post = 1); + RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); + RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", .Post = 1); - RegisterHookChain(RG_CBasePlayer_SetAnimation, "HC_Player_SetAnimation"); + RegisterHookChain(RG_CBasePlayer_SetAnimation, "HC_Player_SetAnimation"); - register_message(get_user_msgid("ClCorpse"), "Message_ClCorpse"); + register_message(get_user_msgid("ClCorpse"), "Message_ClCorpse"); } public plugin_natives() { - register_library("api_player_model"); - register_native("PlayerModel_Get", "Native_GetPlayerModel"); - register_native("PlayerModel_GetCurrent", "Native_GetCurrentPlayerModel"); - register_native("PlayerModel_GetEntity", "Native_GetPlayerEntity"); - register_native("PlayerModel_HasCustom", "Native_HasCustomPlayerModel"); - register_native("PlayerModel_Set", "Native_SetPlayerModel"); - register_native("PlayerModel_Reset", "Native_ResetPlayerModel"); - register_native("PlayerModel_Update", "Native_UpdatePlayerModel"); - register_native("PlayerModel_SetSequence", "Native_SetPlayerSequence"); - register_native("PlayerModel_PrecacheAnimation", "Native_PrecacheAnimation"); + register_library("api_player_model"); + register_native("PlayerModel_Get", "Native_GetPlayerModel"); + register_native("PlayerModel_GetCurrent", "Native_GetCurrentPlayerModel"); + register_native("PlayerModel_GetEntity", "Native_GetPlayerEntity"); + register_native("PlayerModel_HasCustom", "Native_HasCustomPlayerModel"); + register_native("PlayerModel_Set", "Native_SetPlayerModel"); + register_native("PlayerModel_Reset", "Native_ResetPlayerModel"); + register_native("PlayerModel_Update", "Native_UpdatePlayerModel"); + register_native("PlayerModel_SetSequence", "Native_SetPlayerSequence"); + register_native("PlayerModel_PrecacheAnimation", "Native_PrecacheAnimation"); } public plugin_end() { - TrieDestroy(g_itPlayerSequenceModelIndexes); - TrieDestroy(g_itPlayerSequences); + TrieDestroy(g_itPlayerSequenceModelIndexes); + TrieDestroy(g_itPlayerSequences); } // ANCHOR: Natives public Native_GetPlayerModel(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - if (!is_user_connected(pPlayer)) { - NATIVE_ERROR_NOT_CONNECTED(pPlayer); - } + if (!is_user_connected(pPlayer)) { + NATIVE_ERROR_NOT_CONNECTED(pPlayer); + } - set_string(2, g_rgszCustomPlayerModel[pPlayer], get_param(3)); + set_string(2, g_rgszCustomPlayerModel[pPlayer], get_param(3)); } public Native_GetCurrentPlayerModel(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - if (!is_user_connected(pPlayer)) { - NATIVE_ERROR_NOT_CONNECTED(pPlayer); - } - - set_string(2, g_rgszCurrentPlayerModel[pPlayer], get_param(3)); + if (!is_user_connected(pPlayer)) { + NATIVE_ERROR_NOT_CONNECTED(pPlayer); + } + + set_string(2, g_rgszCurrentPlayerModel[pPlayer], get_param(3)); } public Native_GetPlayerEntity(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - if (!is_user_connected(pPlayer)) { - NATIVE_ERROR_NOT_CONNECTED(pPlayer); - } + if (!is_user_connected(pPlayer)) { + NATIVE_ERROR_NOT_CONNECTED(pPlayer); + } - if (g_rgpPlayerSubModel[pPlayer] && @PlayerSubModel_IsActive(g_rgpPlayerSubModel[pPlayer])) { - return g_rgpPlayerSubModel[pPlayer]; - } + if (g_rgpPlayerSubModel[pPlayer] && @PlayerSubModel_IsActive(g_rgpPlayerSubModel[pPlayer])) { + return g_rgpPlayerSubModel[pPlayer]; + } - return pPlayer; + return pPlayer; } public bool:Native_HasCustomPlayerModel(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - if (!is_user_connected(pPlayer)) { - NATIVE_ERROR_NOT_CONNECTED(pPlayer); - } + if (!is_user_connected(pPlayer)) { + NATIVE_ERROR_NOT_CONNECTED(pPlayer); + } - return g_rgbPlayerUseCustomModel[pPlayer]; + return g_rgbPlayerUseCustomModel[pPlayer]; } public Native_SetPlayerModel(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - if (!is_user_connected(pPlayer)) { - NATIVE_ERROR_NOT_CONNECTED(pPlayer); - } + if (!is_user_connected(pPlayer)) { + NATIVE_ERROR_NOT_CONNECTED(pPlayer); + } - get_string(2, g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[])); + get_string(2, g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[])); } public Native_ResetPlayerModel(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - if (!is_user_connected(pPlayer)) { - NATIVE_ERROR_NOT_CONNECTED(pPlayer); - } + if (!is_user_connected(pPlayer)) { + NATIVE_ERROR_NOT_CONNECTED(pPlayer); + } - @Player_ResetModel(pPlayer); + @Player_ResetModel(pPlayer); } public Native_UpdatePlayerModel(iPluginId, iArgc) { - new pPlayer = get_param(1); - - if (!is_user_connected(pPlayer)) { - NATIVE_ERROR_NOT_CONNECTED(pPlayer); - } + new pPlayer = get_param(1); + + if (!is_user_connected(pPlayer)) { + NATIVE_ERROR_NOT_CONNECTED(pPlayer); + } - @Player_UpdateCurrentModel(pPlayer); + @Player_UpdateCurrentModel(pPlayer); } public Native_SetPlayerSequence(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - if (!is_user_connected(pPlayer)) { - NATIVE_ERROR_NOT_CONNECTED(pPlayer); - } + if (!is_user_connected(pPlayer)) { + NATIVE_ERROR_NOT_CONNECTED(pPlayer); + } - static szSequence[MAX_RESOURCE_PATH_LENGTH]; - get_string(2, szSequence, charsmax(szSequence)); + static szSequence[MAX_RESOURCE_PATH_LENGTH]; + get_string(2, szSequence, charsmax(szSequence)); - return @Player_SetSequence(pPlayer, szSequence); + return @Player_SetSequence(pPlayer, szSequence); } public Native_PrecacheAnimation(iPluginId, iArgc) { - static szAnimation[MAX_RESOURCE_PATH_LENGTH]; - get_string(1, szAnimation, charsmax(szAnimation)); - return PrecachePlayerAnimation(szAnimation); + static szAnimation[MAX_RESOURCE_PATH_LENGTH]; + get_string(1, szAnimation, charsmax(szAnimation)); + return PrecachePlayerAnimation(szAnimation); } // ANCHOR: Hooks and Forwards public client_connect(pPlayer) { - copy(g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[]), NULL_STRING); - copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), NULL_STRING); - copy(g_rgszCurrentPlayerModel[pPlayer], charsmax(g_rgszCurrentPlayerModel[]), NULL_STRING); - g_rgiPlayerAnimationIndex[pPlayer] = 0; - g_rgbPlayerUseCustomModel[pPlayer] = false; + copy(g_rgszCustomPlayerModel[pPlayer], charsmax(g_rgszCustomPlayerModel[]), NULL_STRING); + copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), NULL_STRING); + copy(g_rgszCurrentPlayerModel[pPlayer], charsmax(g_rgszCurrentPlayerModel[]), NULL_STRING); + g_rgiPlayerAnimationIndex[pPlayer] = 0; + g_rgbPlayerUseCustomModel[pPlayer] = false; } public client_disconnected(pPlayer) { - if (g_rgpPlayerSubModel[pPlayer]) { - @PlayerSubModel_Destroy(g_rgpPlayerSubModel[pPlayer]); - g_rgpPlayerSubModel[pPlayer] = 0; - } + if (g_rgpPlayerSubModel[pPlayer]) { + @PlayerSubModel_Destroy(g_rgpPlayerSubModel[pPlayer]); + g_rgpPlayerSubModel[pPlayer] = 0; + } } public FMHook_SetClientKeyValue(pPlayer, const szInfoBuffer[], const szKey[], const szValue[]) { - if (equal(szKey, "model")) { - copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), szValue); - - if (@Player_ShouldUseCurrentModel(pPlayer)) { - return FMRES_SUPERCEDE; - } + if (equal(szKey, "model")) { + copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), szValue); - return FMRES_HANDLED; + if (@Player_ShouldUseCurrentModel(pPlayer)) { + return FMRES_SUPERCEDE; } - return FMRES_IGNORED; + return FMRES_HANDLED; + } + + return FMRES_IGNORED; } public HamHook_Player_Spawn_Post(pPlayer) { - @Player_UpdateCurrentModel(pPlayer); + @Player_UpdateCurrentModel(pPlayer); - return HAM_HANDLED; + return HAM_HANDLED; } public HamHook_Player_PostThink_Post(pPlayer) { - if (g_rgpPlayerSubModel[pPlayer]) { - @PlayerSubModel_Think(g_rgpPlayerSubModel[pPlayer]); - } + if (g_rgpPlayerSubModel[pPlayer]) { + @PlayerSubModel_Think(g_rgpPlayerSubModel[pPlayer]); + } - return HAM_HANDLED; + return HAM_HANDLED; } public HC_Player_SetAnimation(pPlayer) { - @Player_UpdateAnimationModel(pPlayer); + @Player_UpdateAnimationModel(pPlayer); } public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { - new pTargetPlayer = get_msg_arg_int(12); - if (@Player_ShouldUseCurrentModel(pTargetPlayer)) { - set_msg_arg_string(1, g_rgszCurrentPlayerModel[pTargetPlayer]); - } + new pTargetPlayer = get_msg_arg_int(12); + if (@Player_ShouldUseCurrentModel(pTargetPlayer)) { + set_msg_arg_string(1, g_rgszCurrentPlayerModel[pTargetPlayer]); + } } // ANCHOR: Methods @Player_UpdateAnimationModel(this) { - static szAnimExt[32]; - get_member(this, m_szAnimExtention, szAnimExt, charsmax(szAnimExt)); + static szAnimExt[32]; + get_member(this, m_szAnimExtention, szAnimExt, charsmax(szAnimExt)); - new iAnimationIndex = is_user_alive(this) ? GetAnimationIndexByAnimExt(szAnimExt) : 0; - if (iAnimationIndex != g_rgiPlayerAnimationIndex[this]) { - g_rgiPlayerAnimationIndex[this] = iAnimationIndex; - @Player_UpdateModel(this, false); - } + new iAnimationIndex = is_user_alive(this) ? GetAnimationIndexByAnimExt(szAnimExt) : 0; + if (iAnimationIndex != g_rgiPlayerAnimationIndex[this]) { + g_rgiPlayerAnimationIndex[this] = iAnimationIndex; + @Player_UpdateModel(this, false); + } } @Player_UpdateCurrentModel(this) { - new bool:bUsedCustom = g_rgbPlayerUseCustomModel[this]; + new bool:bUsedCustom = g_rgbPlayerUseCustomModel[this]; - g_rgbPlayerUseCustomModel[this] = !equal(g_rgszCustomPlayerModel[this], NULL_STRING); + g_rgbPlayerUseCustomModel[this] = !equal(g_rgszCustomPlayerModel[this], NULL_STRING); - if (g_rgbPlayerUseCustomModel[this]) { - copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), g_rgszCustomPlayerModel[this]); - } else if (!equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { - format(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), "models/player/%s/%s.mdl", g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]); - } + if (g_rgbPlayerUseCustomModel[this]) { + copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), g_rgszCustomPlayerModel[this]); + } else if (!equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { + format(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), "models/player/%s/%s.mdl", g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]); + } - @Player_UpdateModel(this, bUsedCustom && !g_rgbPlayerUseCustomModel[this]); + @Player_UpdateModel(this, bUsedCustom && !g_rgbPlayerUseCustomModel[this]); } @Player_UpdateModel(this, bool:bForceUpdate) { - new iSubModelModelIndex = 0; + new iSubModelModelIndex = 0; - if (bForceUpdate || @Player_ShouldUseCurrentModel(this)) { - new iAnimationIndex = g_rgiPlayerAnimationIndex[this]; - new iModelIndex = engfunc(EngFunc_ModelIndex, g_rgszCurrentPlayerModel[this]); - @Player_SetModelIndex(this, iAnimationIndex ? iAnimationIndex : iModelIndex); - iSubModelModelIndex = iAnimationIndex ? iModelIndex : 0; - } + if (bForceUpdate || @Player_ShouldUseCurrentModel(this)) { + new iAnimationIndex = g_rgiPlayerAnimationIndex[this]; + new iModelIndex = engfunc(EngFunc_ModelIndex, g_rgszCurrentPlayerModel[this]); + @Player_SetModelIndex(this, iAnimationIndex ? iAnimationIndex : iModelIndex); + iSubModelModelIndex = iAnimationIndex ? iModelIndex : 0; + } - if (iSubModelModelIndex && !g_rgpPlayerSubModel[this]) { - g_rgpPlayerSubModel[this] = @PlayerSubModel_Create(this); - } + if (iSubModelModelIndex && !g_rgpPlayerSubModel[this]) { + g_rgpPlayerSubModel[this] = @PlayerSubModel_Create(this); + } - if (g_rgpPlayerSubModel[this]) { - set_pev(g_rgpPlayerSubModel[this], pev_modelindex, iSubModelModelIndex); - } + if (g_rgpPlayerSubModel[this]) { + set_pev(g_rgpPlayerSubModel[this], pev_modelindex, iSubModelModelIndex); + } } bool:@Player_ShouldUseCurrentModel(this) { - return g_rgbPlayerUseCustomModel[this] || g_rgiPlayerAnimationIndex[this]; + return g_rgbPlayerUseCustomModel[this] || g_rgiPlayerAnimationIndex[this]; } @Player_ResetModel(this) { - if (equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { - return; - } + if (equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { + return; + } - copy(g_rgszCustomPlayerModel[this], charsmax(g_rgszCustomPlayerModel[]), NULL_STRING); - copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), NULL_STRING); - g_rgiPlayerAnimationIndex[this] = 0; + copy(g_rgszCustomPlayerModel[this], charsmax(g_rgszCustomPlayerModel[]), NULL_STRING); + copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), NULL_STRING); + g_rgiPlayerAnimationIndex[this] = 0; - @Player_UpdateCurrentModel(this); + @Player_UpdateCurrentModel(this); } @Player_SetModelIndex(this, iModelIndex) { - set_user_info(this, "model", ""); - set_pev(this, pev_modelindex, iModelIndex); - set_member(this, m_modelIndexPlayer, iModelIndex); + set_user_info(this, "model", ""); + set_pev(this, pev_modelindex, iModelIndex); + set_member(this, m_modelIndexPlayer, iModelIndex); } @Player_SetSequence(this, const szSequence[]) { - new iAnimationIndex = GetAnimationIndexBySequence(szSequence); - if (!iAnimationIndex) { - return -1; - } + new iAnimationIndex = GetAnimationIndexBySequence(szSequence); + if (!iAnimationIndex) { + return -1; + } - g_rgiPlayerAnimationIndex[this] = iAnimationIndex; - @Player_UpdateModel(this, false); + g_rgiPlayerAnimationIndex[this] = iAnimationIndex; + @Player_UpdateModel(this, false); - new iSequence = GetSequenceIndex(szSequence); - set_pev(this, pev_sequence, iSequence); - return iSequence; + new iSequence = GetSequenceIndex(szSequence); + set_pev(this, pev_sequence, iSequence); + return iSequence; } @PlayerSubModel_Create(pPlayer) { - new this = engfunc(EngFunc_CreateNamedEntity, g_iszSubModelClassname); - set_pev(this, pev_movetype, MOVETYPE_FOLLOW); - set_pev(this, pev_aiment, pPlayer); - set_pev(this, pev_owner, pPlayer); + new this = engfunc(EngFunc_CreateNamedEntity, g_iszSubModelClassname); + set_pev(this, pev_movetype, MOVETYPE_FOLLOW); + set_pev(this, pev_aiment, pPlayer); + set_pev(this, pev_owner, pPlayer); - return this; + return this; } @PlayerSubModel_Destroy(this) { - set_pev(this, pev_modelindex, 0); - set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); - dllfunc(DLLFunc_Think, this); + set_pev(this, pev_modelindex, 0); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); + dllfunc(DLLFunc_Think, this); } @PlayerSubModel_Think(this) { - if (!@PlayerSubModel_IsActive(this)) { - set_entvar(this, var_effects, get_entvar(this, var_effects) | EF_NODRAW); - return; - } + if (!@PlayerSubModel_IsActive(this)) { + set_entvar(this, var_effects, get_entvar(this, var_effects) | EF_NODRAW); + return; + } - new pOwner = pev(this, pev_owner); + new pOwner = pev(this, pev_owner); - set_entvar(this, var_skin, get_entvar(pOwner, var_skin)); - set_entvar(this, var_body, get_entvar(pOwner, var_body)); - set_entvar(this, var_colormap, get_entvar(pOwner, var_colormap)); - set_entvar(this, var_rendermode, get_entvar(pOwner, var_rendermode)); - set_entvar(this, var_renderfx, get_entvar(pOwner, var_renderfx)); - set_entvar(this, var_renderamt, get_entvar(pOwner, var_renderamt)); - set_entvar(this, var_effects, get_entvar(this, var_effects) & ~EF_NODRAW); + set_entvar(this, var_skin, get_entvar(pOwner, var_skin)); + set_entvar(this, var_body, get_entvar(pOwner, var_body)); + set_entvar(this, var_colormap, get_entvar(pOwner, var_colormap)); + set_entvar(this, var_rendermode, get_entvar(pOwner, var_rendermode)); + set_entvar(this, var_renderfx, get_entvar(pOwner, var_renderfx)); + set_entvar(this, var_renderamt, get_entvar(pOwner, var_renderamt)); + set_entvar(this, var_effects, get_entvar(this, var_effects) & ~EF_NODRAW); - static rgflColor[3]; - get_entvar(pOwner, var_rendercolor, rgflColor); - set_entvar(this, var_rendercolor, rgflColor); + static rgflColor[3]; + get_entvar(pOwner, var_rendercolor, rgflColor); + set_entvar(this, var_rendercolor, rgflColor); } @PlayerSubModel_IsActive(this) { - return (pev(this, pev_modelindex) > 0); + return (pev(this, pev_modelindex) > 0); } // ANCHOR: Functions GetAnimationIndexByAnimExt(const szAnimExt[]) { - static szSequence[32]; - format(szSequence, charsmax(szSequence), "ref_aim_%s", szAnimExt); - return GetAnimationIndexBySequence(szSequence); + static szSequence[32]; + format(szSequence, charsmax(szSequence), "ref_aim_%s", szAnimExt); + return GetAnimationIndexBySequence(szSequence); } GetAnimationIndexBySequence(const szSequence[]) { - static iAnimationIndex; - if (!TrieGetCell(g_itPlayerSequenceModelIndexes, szSequence, iAnimationIndex)) { - return 0; - } + static iAnimationIndex; + if (!TrieGetCell(g_itPlayerSequenceModelIndexes, szSequence, iAnimationIndex)) { + return 0; + } - return iAnimationIndex; + return iAnimationIndex; } GetSequenceIndex(const szSequence[]) { - static iSequence; - if (!TrieGetCell(g_itPlayerSequences, szSequence, iSequence)) { - return -1; - } + static iSequence; + if (!TrieGetCell(g_itPlayerSequences, szSequence, iSequence)) { + return -1; + } - return iSequence; + return iSequence; } // Credis: HamletEagle PrecachePlayerAnimation(const szAnim[]) { - new szFilePath[MAX_RESOURCE_PATH_LENGTH]; - format(szFilePath, charsmax(szFilePath), "animations/%s", szAnim); - - new iModelIndex = precache_model(szFilePath); - - new iFile = fopen(szFilePath, "rb"); - if (!iFile) { - return 0; + new szFilePath[MAX_RESOURCE_PATH_LENGTH]; + format(szFilePath, charsmax(szFilePath), "animations/%s", szAnim); + + new iModelIndex = precache_model(szFilePath); + + new iFile = fopen(szFilePath, "rb"); + if (!iFile) { + return 0; + } + + // Got to "numseq" position of the studiohdr_t structure + // https://github.com/dreamstalker/rehlds/blob/65c6ce593b5eabf13e92b03352e4b429d0d797b0/rehlds/public/rehlds/studio.h#L68 + fseek(iFile, 164, SEEK_SET); + + new iSeqNum; + fread(iFile, iSeqNum, BLOCK_INT); + + if (!iSeqNum) { + return 0; + } + + new iSeqIndex; + fread(iFile, iSeqIndex, BLOCK_INT); + fseek(iFile, iSeqIndex, SEEK_SET); + + new szLabel[32]; + for (new i = 0; i < iSeqNum; i++) { + if (i >= MAX_SEQUENCES) { + log_amx("Warning! Sequence limit reached for ^"%s^". Max sequences %d.", szFilePath, MAX_SEQUENCES); + break; } - - // Got to "numseq" position of the studiohdr_t structure - // https://github.com/dreamstalker/rehlds/blob/65c6ce593b5eabf13e92b03352e4b429d0d797b0/rehlds/public/rehlds/studio.h#L68 - fseek(iFile, 164, SEEK_SET); - new iSeqNum; - fread(iFile, iSeqNum, BLOCK_INT); - - if (!iSeqNum) { - return 0; - } + fread_blocks(iFile, szLabel, sizeof(szLabel), BLOCK_CHAR); + TrieSetCell(g_itPlayerSequenceModelIndexes, szLabel, iModelIndex); + TrieSetCell(g_itPlayerSequences, szLabel, i); - new iSeqIndex; - fread(iFile, iSeqIndex, BLOCK_INT); - fseek(iFile, iSeqIndex, SEEK_SET); - - new szLabel[32]; - for (new i = 0; i < iSeqNum; i++) { - if (i >= MAX_SEQUENCES) { - log_amx("Warning! Sequence limit reached for ^"%s^". Max sequences %d.", szFilePath, MAX_SEQUENCES); - break; - } - - fread_blocks(iFile, szLabel, sizeof(szLabel), BLOCK_CHAR); - TrieSetCell(g_itPlayerSequenceModelIndexes, szLabel, iModelIndex); - TrieSetCell(g_itPlayerSequences, szLabel, i); - - // jump to the end of the studiohdr_t structure - // https://github.com/dreamstalker/rehlds/blob/65c6ce593b5eabf13e92b03352e4b429d0d797b0/rehlds/public/rehlds/studio.h#L95 - fseek(iFile, 176 - sizeof(szLabel), SEEK_CUR); - } - - fclose(iFile); + // jump to the end of the studiohdr_t structure + // https://github.com/dreamstalker/rehlds/blob/65c6ce593b5eabf13e92b03352e4b429d0d797b0/rehlds/public/rehlds/studio.h#L95 + fseek(iFile, 176 - sizeof(szLabel), SEEK_CUR); + } + + fclose(iFile); - return iModelIndex; + return iModelIndex; } diff --git a/api/player-viewrange/api_player_viewrange.sma b/api/player-viewrange/api_player_viewrange.sma index ef95434..479a01f 100644 --- a/api/player-viewrange/api_player_viewrange.sma +++ b/api/player-viewrange/api_player_viewrange.sma @@ -13,92 +13,92 @@ new Float:g_flPlayerNativeFogDensity[MAX_PLAYERS + 1]; new gmsgFog; public plugin_init() { - register_plugin(PLUGIN, VERSION, AUTHOR); + register_plugin(PLUGIN, VERSION, AUTHOR); - gmsgFog = get_user_msgid("Fog"); + gmsgFog = get_user_msgid("Fog"); - register_message(gmsgFog, "Message_Fog"); + register_message(gmsgFog, "Message_Fog"); } public plugin_natives() { - register_library("api_player_viewrange"); - register_native("PlayerViewRange_Get", "Native_GetPlayerViewRange"); - register_native("PlayerViewRange_Set", "Native_SetPlayerViewRange"); - register_native("PlayerViewRange_Reset", "Native_ResetPlayerViewRange"); - register_native("PlayerViewRange_Update", "Native_UpdatePlayerViewRange"); + register_library("api_player_viewrange"); + register_native("PlayerViewRange_Get", "Native_GetPlayerViewRange"); + register_native("PlayerViewRange_Set", "Native_SetPlayerViewRange"); + register_native("PlayerViewRange_Reset", "Native_ResetPlayerViewRange"); + register_native("PlayerViewRange_Update", "Native_UpdatePlayerViewRange"); } public Float:Native_GetPlayerViewRange(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - return g_rgflPlayerViewRange[pPlayer]; + return g_rgflPlayerViewRange[pPlayer]; } public Native_SetPlayerViewRange(iPluginId, iArgc) { - new pPlayer = get_param(1); - new Float:flValue = get_param_f(2); + new pPlayer = get_param(1); + new Float:flValue = get_param_f(2); - @Player_SetViewRange(pPlayer, flValue); + @Player_SetViewRange(pPlayer, flValue); } public Native_ResetPlayerViewRange(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - @Player_SetViewRange(pPlayer, -1.0); + @Player_SetViewRange(pPlayer, -1.0); } public Native_UpdatePlayerViewRange(iPluginId, iArgc) { - new pPlayer = get_param(1); + new pPlayer = get_param(1); - @Player_UpdateViewRange(pPlayer); + @Player_UpdateViewRange(pPlayer); } public client_connect(pPlayer) { - g_rgflPlayerViewRange[pPlayer] = 0.0; - g_rgiPlayerNativeFogColor[pPlayer][0] = 0; - g_rgiPlayerNativeFogColor[pPlayer][1] = 0; - g_rgiPlayerNativeFogColor[pPlayer][2] = 0; - g_flPlayerNativeFogDensity[pPlayer] = 0.0; + g_rgflPlayerViewRange[pPlayer] = 0.0; + g_rgiPlayerNativeFogColor[pPlayer][0] = 0; + g_rgiPlayerNativeFogColor[pPlayer][1] = 0; + g_rgiPlayerNativeFogColor[pPlayer][2] = 0; + g_flPlayerNativeFogDensity[pPlayer] = 0.0; } public Message_Fog(iMsgId, iMsgDest, pPlayer) { - g_rgiPlayerNativeFogColor[pPlayer][0] = get_msg_arg_int(1); - g_rgiPlayerNativeFogColor[pPlayer][1] = get_msg_arg_int(2); - g_rgiPlayerNativeFogColor[pPlayer][2] = get_msg_arg_int(3); - g_flPlayerNativeFogDensity[pPlayer] = Float:( - get_msg_arg_int(4) | - (get_msg_arg_int(5) << 8) | - (get_msg_arg_int(6) << 16) | - (get_msg_arg_int(7) << 24) - ); + g_rgiPlayerNativeFogColor[pPlayer][0] = get_msg_arg_int(1); + g_rgiPlayerNativeFogColor[pPlayer][1] = get_msg_arg_int(2); + g_rgiPlayerNativeFogColor[pPlayer][2] = get_msg_arg_int(3); + g_flPlayerNativeFogDensity[pPlayer] = Float:( + get_msg_arg_int(4) | + (get_msg_arg_int(5) << 8) | + (get_msg_arg_int(6) << 16) | + (get_msg_arg_int(7) << 24) + ); } public @Player_SetViewRange(this, Float:flViewRange) { - if (g_rgflPlayerViewRange[this] == flViewRange) { - return; - } + if (g_rgflPlayerViewRange[this] == flViewRange) { + return; + } - g_rgflPlayerViewRange[this] = flViewRange; + g_rgflPlayerViewRange[this] = flViewRange; - @Player_UpdateViewRange(this); + @Player_UpdateViewRange(this); } public @Player_UpdateViewRange(this) { - if (g_rgflPlayerViewRange[this] >= 0.0) { - new Float:flDensity = g_rgflPlayerViewRange[this] < 0 ? 0.0 : (1.0 / g_rgflPlayerViewRange[this]); - - message_begin(MSG_ONE, gmsgFog, {0, 0, 0}, this); - write_byte(0); - write_byte(0); - write_byte(0); - write_long(_:flDensity); - message_end(); - } else { // reset to engine fog - message_begin(MSG_ONE, gmsgFog, {0, 0, 0}, this); - write_byte(g_rgiPlayerNativeFogColor[this][0]); - write_byte(g_rgiPlayerNativeFogColor[this][1]); - write_byte(g_rgiPlayerNativeFogColor[this][2]); - write_long(_:g_flPlayerNativeFogDensity[this]); - message_end(); - } + if (g_rgflPlayerViewRange[this] >= 0.0) { + new Float:flDensity = g_rgflPlayerViewRange[this] < 0 ? 0.0 : (1.0 / g_rgflPlayerViewRange[this]); + + message_begin(MSG_ONE, gmsgFog, {0, 0, 0}, this); + write_byte(0); + write_byte(0); + write_byte(0); + write_long(_:flDensity); + message_end(); + } else { // reset to engine fog + message_begin(MSG_ONE, gmsgFog, {0, 0, 0}, this); + write_byte(g_rgiPlayerNativeFogColor[this][0]); + write_byte(g_rgiPlayerNativeFogColor[this][1]); + write_byte(g_rgiPlayerNativeFogColor[this][2]); + write_long(_:g_flPlayerNativeFogDensity[this]); + message_end(); + } } diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index ad892d7..f62a18d 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -4,14 +4,14 @@ #include enum GameState { - GameState_NewRound, - GameState_RoundStarted, - GameState_RoundEnd + GameState_NewRound, + GameState_RoundStarted, + GameState_RoundEnd }; enum _:Hook { - Hook_PluginId, - Hook_FunctionId + Hook_PluginId, + Hook_FunctionId }; new GameState:g_iGameState; @@ -27,190 +27,190 @@ new g_iFwCheckWinConditions; new g_pCvarRoundEndDelay; public plugin_init() { - register_plugin("[API] Rounds", "2.1.0", "Hedgehog Fog"); + register_plugin("[API] Rounds", "2.1.0", "Hedgehog Fog"); - register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0"); - RegisterHookChain(RG_CSGameRules_RestartRound, "HC_RestartRound", .post = 0); - RegisterHookChain(RG_CSGameRules_OnRoundFreezeEnd, "HC_OnRoundFreezeEnd_Post", .post = 1); - RegisterHookChain(RG_RoundEnd, "HC_RoundEnd", .post = 1); - RegisterHookChain(RG_CSGameRules_CheckWinConditions, "HC_CheckWinConditions", .post = 0); + register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0"); + RegisterHookChain(RG_CSGameRules_RestartRound, "HC_RestartRound", .post = 0); + RegisterHookChain(RG_CSGameRules_OnRoundFreezeEnd, "HC_OnRoundFreezeEnd_Post", .post = 1); + RegisterHookChain(RG_RoundEnd, "HC_RoundEnd", .post = 1); + RegisterHookChain(RG_CSGameRules_CheckWinConditions, "HC_CheckWinConditions", .post = 0); - g_iFwNewRound = CreateMultiForward("Round_Fw_NewRound", ET_IGNORE); - g_iFwRoundStart = CreateMultiForward("Round_Fw_RoundStart", ET_IGNORE); - g_iFwRoundEnd = CreateMultiForward("Round_Fw_RoundEnd", ET_IGNORE, FP_CELL); - g_iFwRoundExpired = CreateMultiForward("Round_Fw_RoundExpired", ET_IGNORE); - g_iFwRoundRestart = CreateMultiForward("Round_Fw_RoundRestart", ET_IGNORE); - g_iFwRoundTimerTick = CreateMultiForward("Round_Fw_RoundTimerTick", ET_IGNORE); - g_iFwCheckWinConditions = CreateMultiForward("Round_Fw_CheckWinConditions", ET_STOP); + g_iFwNewRound = CreateMultiForward("Round_Fw_NewRound", ET_IGNORE); + g_iFwRoundStart = CreateMultiForward("Round_Fw_RoundStart", ET_IGNORE); + g_iFwRoundEnd = CreateMultiForward("Round_Fw_RoundEnd", ET_IGNORE, FP_CELL); + g_iFwRoundExpired = CreateMultiForward("Round_Fw_RoundExpired", ET_IGNORE); + g_iFwRoundRestart = CreateMultiForward("Round_Fw_RoundRestart", ET_IGNORE); + g_iFwRoundTimerTick = CreateMultiForward("Round_Fw_RoundTimerTick", ET_IGNORE); + g_iFwCheckWinConditions = CreateMultiForward("Round_Fw_CheckWinConditions", ET_STOP); - g_pCvarRoundEndDelay = get_cvar_pointer("mp_round_restart_delay"); + g_pCvarRoundEndDelay = get_cvar_pointer("mp_round_restart_delay"); } public plugin_natives() { - register_library("api_rounds"); - register_native("Round_DispatchWin", "Native_DispatchWin"); - register_native("Round_GetTime", "Native_GetTime"); - register_native("Round_SetTime", "Native_SetTime"); - register_native("Round_GetTimeLeft", "Native_GetTimeLeft"); - register_native("Round_IsRoundStarted", "Native_IsRoundStarted"); - register_native("Round_IsRoundEnd", "Native_IsRoundEnd"); + register_library("api_rounds"); + register_native("Round_DispatchWin", "Native_DispatchWin"); + register_native("Round_GetTime", "Native_GetTime"); + register_native("Round_SetTime", "Native_SetTime"); + register_native("Round_GetTimeLeft", "Native_GetTimeLeft"); + register_native("Round_IsRoundStarted", "Native_IsRoundStarted"); + register_native("Round_IsRoundEnd", "Native_IsRoundEnd"); } public server_frame() { - static Float:flTime; - flTime = get_gametime(); + static Float:flTime; + flTime = get_gametime(); - static Float:flNextPeriodicThink; - flNextPeriodicThink = get_member_game(m_tmNextPeriodicThink); + static Float:flNextPeriodicThink; + flNextPeriodicThink = get_member_game(m_tmNextPeriodicThink); - if (flNextPeriodicThink < flTime) { - static bool:bFreezePeriod; - bFreezePeriod = get_member_game(m_bFreezePeriod); + if (flNextPeriodicThink < flTime) { + static bool:bFreezePeriod; + bFreezePeriod = get_member_game(m_bFreezePeriod); - ExecuteForward(g_iFwRoundTimerTick); + ExecuteForward(g_iFwRoundTimerTick); - static iRoundTimeSecs; - iRoundTimeSecs = get_member_game(m_iRoundTimeSecs); + static iRoundTimeSecs; + iRoundTimeSecs = get_member_game(m_iRoundTimeSecs); - static Float:flStartTime; - flStartTime = get_member_game(m_fRoundStartTimeReal); + static Float:flStartTime; + flStartTime = get_member_game(m_fRoundStartTimeReal); - static Float:flEndTime; - flEndTime = flStartTime + float(iRoundTimeSecs); + static Float:flEndTime; + flEndTime = flStartTime + float(iRoundTimeSecs); - if (!bFreezePeriod) { - if (flTime >= flEndTime) { - ExecuteForward(g_iFwRoundExpired); - } - } + if (!bFreezePeriod) { + if (flTime >= flEndTime) { + ExecuteForward(g_iFwRoundExpired); + } } + } } public HC_RestartRound() { - if (!get_member_game(m_bCompleteReset)) { - // g_iGameState = GameState_NewRound; - // ExecuteForward(g_iFwNewRound); - } else { - ExecuteForward(g_iFwRoundRestart); - } + if (!get_member_game(m_bCompleteReset)) { + // g_iGameState = GameState_NewRound; + // ExecuteForward(g_iFwNewRound); + } else { + ExecuteForward(g_iFwRoundRestart); + } } public HC_OnRoundFreezeEnd_Post() { - g_iGameState = GameState_RoundStarted; - ExecuteForward(g_iFwRoundStart); + g_iGameState = GameState_RoundStarted; + ExecuteForward(g_iFwRoundStart); } public Event_NewRound() { - g_iGameState = GameState_NewRound; - ExecuteForward(g_iFwNewRound); + g_iGameState = GameState_NewRound; + ExecuteForward(g_iFwNewRound); } public HC_RoundEnd(WinStatus:iStatus, ScenarioEventEndRound:iEvent, Float:flDelay) { - new TeamName:iWinTeam = TEAM_UNASSIGNED; + new TeamName:iWinTeam = TEAM_UNASSIGNED; - switch (iStatus) { - case WINSTATUS_TERRORISTS: iWinTeam = TEAM_TERRORIST; - case WINSTATUS_CTS: iWinTeam = TEAM_CT; - case WINSTATUS_DRAW: iWinTeam = TEAM_SPECTATOR; - } + switch (iStatus) { + case WINSTATUS_TERRORISTS: iWinTeam = TEAM_TERRORIST; + case WINSTATUS_CTS: iWinTeam = TEAM_CT; + case WINSTATUS_DRAW: iWinTeam = TEAM_SPECTATOR; + } - g_iGameState = GameState_RoundEnd; + g_iGameState = GameState_RoundEnd; - ExecuteForward(g_iFwRoundEnd, _, _:iWinTeam); + ExecuteForward(g_iFwRoundEnd, _, _:iWinTeam); } public HC_CheckWinConditions() { - static iReturn; + static iReturn; - ExecuteForward(g_iFwCheckWinConditions, iReturn); - if (iReturn != PLUGIN_CONTINUE) { - return HC_SUPERCEDE; - } + ExecuteForward(g_iFwCheckWinConditions, iReturn); + if (iReturn != PLUGIN_CONTINUE) { + return HC_SUPERCEDE; + } - return HC_CONTINUE; + return HC_CONTINUE; } public Native_DispatchWin(iPluginId, iArgc) { - new iTeam = get_param(1); - new Float:flDelay = get_param_f(2); - DispatchWin(iTeam, flDelay); + new iTeam = get_param(1); + new Float:flDelay = get_param_f(2); + DispatchWin(iTeam, flDelay); } public Native_GetTime(iPluginId, iArgc) { - return get_member_game(m_iRoundTimeSecs); + return get_member_game(m_iRoundTimeSecs); } public Native_SetTime(iPluginId, iArgc) { - new iTime = get_param(1); - SetTime(iTime); + new iTime = get_param(1); + SetTime(iTime); } public Native_GetTimeLeft(iPluginId, iArgc) { - return GetTimeLeft(); + return GetTimeLeft(); } public bool:Native_IsRoundStarted(iPluginId, iArgc) { - return g_iGameState > GameState_NewRound; + return g_iGameState > GameState_NewRound; } public bool:Native_IsRoundEnd(iPluginId, iArgc) { - return g_iGameState == GameState_RoundEnd; + return g_iGameState == GameState_RoundEnd; } DispatchWin(iTeam, Float:flDelay = -1.0) { - if (g_iGameState == GameState_RoundEnd) { - return; - } + if (g_iGameState == GameState_RoundEnd) { + return; + } - if (iTeam < 1 || iTeam > 3) { - return; - } + if (iTeam < 1 || iTeam > 3) { + return; + } - if (flDelay < 0.0) { - flDelay = g_pCvarRoundEndDelay ? get_pcvar_float(g_pCvarRoundEndDelay) : 5.0; - } + if (flDelay < 0.0) { + flDelay = g_pCvarRoundEndDelay ? get_pcvar_float(g_pCvarRoundEndDelay) : 5.0; + } - new WinStatus:iWinstatus = WINSTATUS_DRAW; - if (iTeam == 1) { - iWinstatus = WINSTATUS_TERRORISTS; - } else if (iTeam == 2) { - iWinstatus = WINSTATUS_CTS; - } + new WinStatus:iWinstatus = WINSTATUS_DRAW; + if (iTeam == 1) { + iWinstatus = WINSTATUS_TERRORISTS; + } else if (iTeam == 2) { + iWinstatus = WINSTATUS_CTS; + } - new ScenarioEventEndRound:iEvent = ROUND_END_DRAW; - if (iTeam == 1) { - iEvent = ROUND_TERRORISTS_WIN; - } else if (iTeam == 2) { - iEvent = ROUND_CTS_WIN; - } + new ScenarioEventEndRound:iEvent = ROUND_END_DRAW; + if (iTeam == 1) { + iEvent = ROUND_TERRORISTS_WIN; + } else if (iTeam == 2) { + iEvent = ROUND_CTS_WIN; + } - rg_round_end(flDelay, iWinstatus, iEvent, _, _, true); - rg_update_teamscores(iTeam == 2 ? 1 : 0, iTeam == 1 ? 1 : 0); + rg_round_end(flDelay, iWinstatus, iEvent, _, _, true); + rg_update_teamscores(iTeam == 2 ? 1 : 0, iTeam == 1 ? 1 : 0); } SetTime(iTime) { - new Float:flStartTime = get_member_game(m_fRoundStartTimeReal); + new Float:flStartTime = get_member_game(m_fRoundStartTimeReal); - set_member_game(m_iRoundTime, iTime); - set_member_game(m_iRoundTimeSecs, iTime); - set_member_game(m_fRoundStartTime, flStartTime); + set_member_game(m_iRoundTime, iTime); + set_member_game(m_iRoundTimeSecs, iTime); + set_member_game(m_fRoundStartTime, flStartTime); - UpdateTimer(0, GetTimeLeft()); + UpdateTimer(0, GetTimeLeft()); } GetTimeLeft() { - new Float:flStartTime = get_member_game(m_fRoundStartTimeReal); - new iTime = get_member_game(m_iRoundTimeSecs); - return floatround(flStartTime + float(iTime) - get_gametime()); + new Float:flStartTime = get_member_game(m_fRoundStartTimeReal); + new iTime = get_member_game(m_iRoundTimeSecs); + return floatround(flStartTime + float(iTime) - get_gametime()); } UpdateTimer(iClient, iTime) { - static iMsgId = 0; - if(!iMsgId) { - iMsgId = get_user_msgid("RoundTime"); - } - - message_begin(iClient ? MSG_ONE : MSG_ALL, iMsgId); - write_short(iTime); - message_end(); + static iMsgId = 0; + if(!iMsgId) { + iMsgId = get_user_msgid("RoundTime"); + } + + message_begin(iClient ? MSG_ONE : MSG_ALL, iMsgId); + write_short(iTime); + message_end(); } From 5fa7c99d671555f6629ad106041a00c52ff1185d Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 9 Nov 2023 12:21:38 +0200 Subject: [PATCH 089/231] add custom weapon example --- api/custom-weapons/README.md | 158 +++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 api/custom-weapons/README.md diff --git a/api/custom-weapons/README.md b/api/custom-weapons/README.md new file mode 100644 index 0000000..7b6727f --- /dev/null +++ b/api/custom-weapons/README.md @@ -0,0 +1,158 @@ +# Custom Weapons API + +## Simple 9mm handgun +Example of simple handgun from Half-Life. + +```cpp +#pragma semicolon 1 + +#include +#include +#include +#include + +#include + +#define PLUGIN "[Weapon] 9mm Handgun" +#define VERSION "1.0.0" +#define AUTHOR "Hedgehog Fog" + +#define WEAPON_NAME "weapon_9mmhandgun" +#define WEAPON_ID CSW_FIVESEVEN +#define WEAPON_AMMO_ID 10 +#define WEAPON_SLOT_ID 1 +#define WEAPON_SLOT_POS 6 +#define WEAPON_CLIP_SIZE 7 +#define WEAPON_ICON "fiveseven" +#define WEAPON_DAMAGE 30.0 +#define WEAPON_SPREAD_MODIFIER 0.75 +#define WEAPON_RATE 0.125 +#define WEAPON_RELOAD_DURATION 1.68 + +new const g_szHudTxt[] = "sprites/weapon_9mmhandgun.txt"; + +new const g_szWeaponModelV[] = "models/v_9mmhandgun.mdl"; +new const g_szWeaponModelP[] = "models/p_9mmhandgun.mdl"; +new const g_szWeaponModelW[] = "models/w_9mmhandgun.mdl"; +new const g_szShellModel[] = "models/shell.mdl"; + +new const g_szShotSound[] = "weapons/pl_gun3.wav"; +new const g_szReloadStartSound[] = "items/9mmclip1.wav"; +new const g_szReloadEndSound[] = "items/9mmclip2.wav"; + +new CW:g_iCwHandler; + +public plugin_precache() { + precache_generic(g_szHudTxt); + + precache_model(g_szWeaponModelV); + precache_model(g_szWeaponModelP); + precache_model(g_szWeaponModelW); + precache_model(g_szShellModel); + + precache_sound(g_szShotSound); + precache_sound(g_szReloadStartSound); + precache_sound(g_szReloadEndSound); + + g_iCwHandler = CW_Register(WEAPON_NAME, WEAPON_ID, WEAPON_CLIP_SIZE, WEAPON_AMMO_ID, 120, _, _, WEAPON_SLOT_ID, WEAPON_SLOT_POS, _, WEAPON_ICON, CWF_NoBulletSmoke); + CW_Bind(g_iCwHandler, CWB_Idle, "@Weapon_Idle"); + CW_Bind(g_iCwHandler, CWB_PrimaryAttack, "@Weapon_PrimaryAttack"); + CW_Bind(g_iCwHandler, CWB_Reload, "@Weapon_Reload"); + CW_Bind(g_iCwHandler, CWB_Deploy, "@Weapon_Deploy"); + CW_Bind(g_iCwHandler, CWB_GetMaxSpeed, "@Weapon_GetMaxSpeed"); + CW_Bind(g_iCwHandler, CWB_Spawn, "@Weapon_Spawn"); + CW_Bind(g_iCwHandler, CWB_WeaponBoxModelUpdate, "@Weapon_WeaponBoxSpawn"); + CW_Bind(g_iCwHandler, CWB_Holster, "@Weapon_Holster"); +} + +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); +} + +@Weapon_Idle(this) { + switch (random(3)) { + case 0: CW_PlayAnimation(this, 0, 61.0 / 16.0); + case 1: CW_PlayAnimation(this, 1, 61.0 / 16.0); + case 2: CW_PlayAnimation(this, 2, 61.0 / 14.0); + } +} + +@Weapon_PrimaryAttack(this) { + if (get_member(this, m_Weapon_iShotsFired) > 0) { + return; + } + + static Float:vecSpread[3]; + UTIL_CalculateWeaponSpread(this, Float:VECTOR_CONE_3DEGREES, 3.0, 0.1, 0.95, 3.5, vecSpread); + + if (CW_DefaultShot(this, WEAPON_DAMAGE, WEAPON_SPREAD_MODIFIER, WEAPON_RATE, vecSpread)) { + CW_PlayAnimation(this, 3, 0.71); + + new pPlayer = CW_GetPlayer(this); + + emit_sound(pPlayer, CHAN_WEAPON, g_szShotSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); + + static Float:vecPunchAngle[3]; + pev(pPlayer, pev_punchangle, vecPunchAngle); + xs_vec_add(vecPunchAngle, Float:{-2.5, 0.0, 0.0}, vecPunchAngle); + + if (xs_vec_len(vecPunchAngle) > 0.0) { + set_pev(pPlayer, pev_punchangle, vecPunchAngle); + } + + CW_EjectWeaponBrass(this, engfunc(EngFunc_ModelIndex, g_szShellModel), 1); + } +} + +@Weapon_Reload(this) { + if (CW_DefaultReload(this, 5, WEAPON_RELOAD_DURATION)) { + new pPlayer = CW_GetPlayer(this); + emit_sound(pPlayer, CHAN_WEAPON, g_szReloadStartSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); + } +} + +@Weapon_DefaultReloadEnd(this) { + new pPlayer = CW_GetPlayer(this); + emit_sound(pPlayer, CHAN_WEAPON, g_szReloadEndSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); +} + +@Weapon_Deploy(this) { + CW_DefaultDeploy(this, g_szWeaponModelV, g_szWeaponModelP, 7, "onehanded"); +} + +Float:@Weapon_GetMaxSpeed(this) { + return 250.0; +} + +@Weapon_Spawn(this) { + engfunc(EngFunc_SetModel, this, g_szWeaponModelW); +} + +@Weapon_WeaponBoxSpawn(this, pWeaponBox) { + engfunc(EngFunc_SetModel, pWeaponBox, g_szWeaponModelW); +} + +@Weapon_Holster(this) { + CW_PlayAnimation(this, 8, 16.0 / 20.0); +} + +stock Float:UTIL_CalculateWeaponSpread(pWeapon, const Float:vecSpread[3], Float:flMovementFactor, Float:flFirstShotModifier, Float:flDuckFactor, Float:flAirFactor, Float:vecOut[3]) { + new Float:flSpreadRatio = 1.0; + + new pPlayer = get_member(pWeapon, m_pPlayer); + + static Float:vecVelocity[3]; pev(pPlayer, pev_velocity, vecVelocity); + if (xs_vec_len(vecVelocity) > 0) flSpreadRatio *= flMovementFactor; + + new iPlayerFlags = pev(pPlayer, pev_flags); + if (iPlayerFlags & FL_DUCKING) flSpreadRatio *= flDuckFactor; + if (~iPlayerFlags & FL_ONGROUND) flSpreadRatio *= flAirFactor; + + new iShotsFired = get_member(pWeapon, m_Weapon_iShotsFired); + if (!iShotsFired) flSpreadRatio *= flFirstShotModifier; + + xs_vec_mul_scalar(vecSpread, flSpreadRatio, vecOut); + + return flSpreadRatio; +} +``` From afcc091cd9edcaff6d4a1d3a88a2f0cd93de7233 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 9 Nov 2023 12:27:11 +0200 Subject: [PATCH 090/231] codestyle update --- api/advanced-pushing/api_advanced_pushing.sma | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/api/advanced-pushing/api_advanced_pushing.sma b/api/advanced-pushing/api_advanced_pushing.sma index 5bdfb7d..f4bbcce 100644 --- a/api/advanced-pushing/api_advanced_pushing.sma +++ b/api/advanced-pushing/api_advanced_pushing.sma @@ -87,8 +87,7 @@ public HamHook_Player_PostThink_Post(pPlayer) { } @Base_Push(this, const Float:vecForce[3], APS_Flags:iFlags) { - static Float:vecVelocity[3]; - pev(this, pev_velocity, vecVelocity); + static Float:vecVelocity[3]; pev(this, pev_velocity, vecVelocity); if (iFlags & APS_Flag_AddForce) { xs_vec_add(vecVelocity, vecForce, vecVelocity); @@ -111,8 +110,7 @@ public HamHook_Player_PostThink_Post(pPlayer) { } @Base_PushFromOrigin(this, Float:flForce, Float:vecPushOrigin[3], APS_Flags:iFlags) { - static Float:vecOrigin[3]; - pev(this, pev_origin, vecOrigin); + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); static Float:vecForce[3]; xs_vec_sub(vecOrigin, vecPushOrigin, vecForce); @@ -133,14 +131,9 @@ public HamHook_Player_PostThink_Post(pPlayer) { Float:flDepthInfluenceMax, APS_Flags:iFlags ) { - static Float:vecOrigin[3]; - pev(this, pev_origin, vecOrigin); - - static Float:vecToucherAbsMin[3]; - pev(this, pev_absmin, vecToucherAbsMin); - - static Float:vecToucherAbsMax[3]; - pev(this, pev_absmax, vecToucherAbsMax); + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecToucherAbsMin[3]; pev(this, pev_absmin, vecToucherAbsMin); + static Float:vecToucherAbsMax[3]; pev(this, pev_absmax, vecToucherAbsMax); // Find and check intersection point for (new iAxis = 0; iAxis < 3; ++iAxis) { From cd44c67322f9e59a62a9620759bcd7ba45c03be0 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 9 Nov 2023 12:36:30 +0200 Subject: [PATCH 091/231] fix plugin name --- api/player-camera/api_player_camera.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/player-camera/api_player_camera.sma b/api/player-camera/api_player_camera.sma index 8e19d35..c6d01a7 100644 --- a/api/player-camera/api_player_camera.sma +++ b/api/player-camera/api_player_camera.sma @@ -28,7 +28,7 @@ public plugin_precache() { } public plugin_init() { - register_plugin("[API] Player Camerea", "1.0.0", "Hedgehog Fog"); + register_plugin("[API] Player Camera", "1.0.0", "Hedgehog Fog"); RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); RegisterHamPlayer(Ham_Player_PreThink, "HamHook_Player_PreThink_Post", .Post = 1); From 387bc19bd9f349e8d6f237a2b64815a621a5135e Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 9 Nov 2023 12:57:36 +0200 Subject: [PATCH 092/231] Update README.md --- api/custom-events/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/custom-events/README.md b/api/custom-events/README.md index a1222af..06efd4f 100644 --- a/api/custom-events/README.md +++ b/api/custom-events/README.md @@ -37,7 +37,7 @@ There are two ways to obtain event parameters. Using arguments in the subscriber function: ```cpp public EventSubscriber_MyEvent(iCell, Float:flFloat, const rgiArray[3], const Float:rgflArray[3], const szString[]) { - log_amx("Subscriber 1"); + log_amx("Subscriber"); log_amx("iCell: %d", iCell); log_amx("flFloat: %f", flFloat); @@ -51,7 +51,7 @@ Using getter functions in the subscriber function: ```cpp public EventSubscriber_MyEvent() { - log_amx("Event Forward %s", szEvent); + log_amx("Subscriber"); new iCell = CustomEvent_GetParam(1); new Float:flFloat = CustomEvent_GetParamFloat(2); From 5152e3a080b93dc448c24642d98686340c45c216 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 9 Nov 2023 12:57:56 +0200 Subject: [PATCH 093/231] Update README.md --- api/custom-events/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/custom-events/README.md b/api/custom-events/README.md index 06efd4f..755fde6 100644 --- a/api/custom-events/README.md +++ b/api/custom-events/README.md @@ -21,7 +21,7 @@ Event subscriber function: ```cpp public EventSubscriber_MyEvent() { - log_amx("Subscriber 1"); + log_amx("Subscriber"); } ``` From 5b5132a80bc45acdd7397665b1a6013d5f9a5c3a Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 9 Nov 2023 12:58:37 +0200 Subject: [PATCH 094/231] Update README.md --- api/custom-events/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/custom-events/README.md b/api/custom-events/README.md index 755fde6..1d8cfd3 100644 --- a/api/custom-events/README.md +++ b/api/custom-events/README.md @@ -120,11 +120,11 @@ public plugin_init() { public Command_Boo(pPlayer) { CustomEvent_SetActivator(pPlayer); - CustomEvent_Emit("my-event"); + CustomEvent_Emit("boo-event"); } public CustomEvent_Fw_Emit(const szEvent[]) { - if (equal(szEvent, "my-event")) { + if (equal(szEvent, "boo-event")) { new pActivator = CustomEvent_GetActivator(); client_print(pActivator, print_center, "Boo!"); } From 469002f8b9dd82244423e0c437102e4a2311396e Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 9 Nov 2023 12:59:34 +0200 Subject: [PATCH 095/231] Update README.md --- api/custom-events/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/api/custom-events/README.md b/api/custom-events/README.md index 1d8cfd3..772aa5c 100644 --- a/api/custom-events/README.md +++ b/api/custom-events/README.md @@ -88,6 +88,7 @@ public CustomEvent_Fw_Emit(const szEvent[]) { log_amx("szString: %s", szString); } } +``` To block the event emit, return `PLUGIN_HANDLED` from the forward function. It will stop subscribers from being called. From c81cb22835ef18ac565777eb4ea9e7ee8c0966d2 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 12 Nov 2023 02:52:27 +0200 Subject: [PATCH 096/231] add camera target --- api/player-camera/api_player_camera.sma | 33 ++++++++++++++----- .../include/api_player_camera.inc | 10 ++++++ 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/api/player-camera/api_player_camera.sma b/api/player-camera/api_player_camera.sma index c6d01a7..f7d45d2 100644 --- a/api/player-camera/api_player_camera.sma +++ b/api/player-camera/api_player_camera.sma @@ -5,12 +5,13 @@ #include #include -new g_rgpPlayerCamera[MAX_PLAYERS]; -new Float:g_rgflPlayerCameraDistance[MAX_PLAYERS]; -new Float:g_rgflPlayerCameraAngles[MAX_PLAYERS][3]; -new Float:g_rgflPlayerCamerOffset[MAX_PLAYERS][3]; -new Float:g_rgflPlayerCameraThinkDelay[MAX_PLAYERS]; -new Float:g_rgflPlayerCameraNextThink[MAX_PLAYERS]; +new g_rgpPlayerCamera[MAX_PLAYERS + 1]; +new Float:g_rgflPlayerCameraDistance[MAX_PLAYERS + 1]; +new Float:g_rgflPlayerCameraAngles[MAX_PLAYERS + 1][3]; +new Float:g_rgflPlayerCamerOffset[MAX_PLAYERS + 1][3]; +new Float:g_rgflPlayerCameraThinkDelay[MAX_PLAYERS + 1]; +new Float:g_rgflPlayerCameraNextThink[MAX_PLAYERS + 1]; +new g_pPlayerTargetEntity[MAX_PLAYERS + 1]; new g_fwActivate; new g_fwDeactivate; @@ -48,6 +49,7 @@ public plugin_natives() { register_native("PlayerCamera_SetAngles", "Native_SetAngles"); register_native("PlayerCamera_SetDistance", "Native_SetDistance"); register_native("PlayerCamera_SetThinkDelay", "Native_SetThinkDelay"); + register_native("PlayerCamera_SetTargetEntity", "Native_SetTargetEntity"); } public bool:Native_Activate(iPluginId, iArgc) { @@ -100,6 +102,13 @@ public Native_SetThinkDelay(iPluginId, iArgc) { SetCameraThinkDelay(pPlayer, flThinkDelay); } +public Native_SetTargetEntity(iPluginId, iArgc) { + new pPlayer = get_param(1); + new pTarget = get_param(2); + + SetCameraTarget(pPlayer, pTarget); +} + public HamHook_Player_Spawn_Post(pPlayer) { ReattachCamera(pPlayer); } @@ -110,6 +119,7 @@ public HamHook_Player_PreThink_Post(pPlayer) { public client_connect(pPlayer) { g_rgpPlayerCamera[pPlayer] = -1; + SetCameraTarget(pPlayer, pPlayer); SetCameraDistance(pPlayer, 200.0); SetCameraAngles(pPlayer, Float:{0.0, 0.0, 0.0}); SetCameraOffset(pPlayer, Float:{0.0, 0.0, 0.0}); @@ -146,6 +156,7 @@ DeactivatePlayerCamera(pPlayer) { engfunc(EngFunc_RemoveEntity, g_rgpPlayerCamera[pPlayer]); g_rgpPlayerCamera[pPlayer] = -1; + g_pPlayerTargetEntity[pPlayer] = pPlayer; if (is_user_connected(pPlayer)) { engfunc(EngFunc_SetView, pPlayer, pPlayer); @@ -170,6 +181,10 @@ SetCameraThinkDelay(pPlayer, Float:flThinkDelay) { g_rgflPlayerCameraThinkDelay[pPlayer] = flThinkDelay; } +SetCameraTarget(pPlayer, pTarget) { + g_pPlayerTargetEntity[pPlayer] = pTarget; +} + CreatePlayerCamera(pPlayer) { new pCamera = engfunc(EngFunc_CreateNamedEntity, g_iszTriggerCameraClassname); @@ -199,11 +214,11 @@ PlayerCameraThink(pPlayer) { } static Float:vecOrigin[3]; - pev(pPlayer, pev_origin, vecOrigin); + pev(g_pPlayerTargetEntity[pPlayer], pev_origin, vecOrigin); xs_vec_add(vecOrigin, g_rgflPlayerCamerOffset[pPlayer], vecOrigin); static Float:vecAngles[3]; - pev(pPlayer, pev_angles, vecAngles); + pev(g_pPlayerTargetEntity[pPlayer], pev_angles, vecAngles); vecAngles[0] = vecAngles[2] = 0.0; xs_vec_add(vecAngles, g_rgflPlayerCameraAngles[pPlayer], vecAngles); @@ -212,7 +227,7 @@ PlayerCameraThink(pPlayer) { xs_vec_neg(vecBack, vecBack); static Float:vecVelocity[3]; - pev(pPlayer, pev_velocity, vecVelocity); + pev(g_pPlayerTargetEntity[pPlayer], pev_velocity, vecVelocity); static Float:vecCameraOrigin[3]; for (new i = 0; i < 3; ++i) { diff --git a/api/player-camera/include/api_player_camera.inc b/api/player-camera/include/api_player_camera.inc index a683c1a..0f7929e 100644 --- a/api/player-camera/include/api_player_camera.inc +++ b/api/player-camera/include/api_player_camera.inc @@ -62,6 +62,16 @@ native PlayerCamera_SetAngles(pPlayer, const Float:vecAngles[3]); */ native PlayerCamera_SetDistance(pPlayer, Float:flDistance); +/** + * Sets the target entity of the player's camera. + * + * @param pPlayer The player entity. + * @param pTarget The target entity. + * + * @noreturn + */ +native PlayerCamera_SetTargetEntity(pPlayer, pTarget); + /** * Sets the thinking delay of the player's camera. * From 4ce12abbc34b4eaabf0544739047708d670902e5 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 12 Nov 2023 02:52:34 +0200 Subject: [PATCH 097/231] update custom entities api --- api/custom-entities/api_custom_entities.sma | 151 +++++++++--------- .../include/api_custom_entities.inc | 3 + 2 files changed, 81 insertions(+), 73 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 55c71be..c20fd57 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -86,167 +86,164 @@ public plugin_end() { /*--------------------------------[ Natives ]--------------------------------*/ public Native_Register(iPluginId, iArgc) { - static szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + new szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); new CEPreset:iPreset = CEPreset:get_param(2); return RegisterEntity(szClassName, iPreset); } public Native_Create(iPluginId, iArgc) { - new szClassName[CE_MAX_NAME_LENGTH]; - get_string(1, szClassName, charsmax(szClassName)); - - new Float:vecOrigin[3]; - get_array_f(2, vecOrigin, 3); - - new bool:bTemp = !!get_param(3); - - return @Entity_Create(szClassName, vecOrigin, bTemp); + static szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + static Float:vecOrigin[3]; get_array_f(2, vecOrigin, 3); + static bool:bTemp; bTemp = !!get_param(3); + + static pEntity; pEntity = @Entity_Create(szClassName, vecOrigin, bTemp); + if (pEntity) { + static Trie:itPData; itPData = @Entity_GetPData(pEntity); + SetPDataMember(itPData, CE_MEMBER_PLUGINID, iPluginId); + } + + return pEntity; } public Native_Kill(iPluginId, iArgc) { - new pEntity = get_param(1); - new pKiller = get_param(2); + static pEntity; pEntity = get_param(1); + static pKiller; pKiller = get_param(2); + + if (!@Entity_IsCustom(pEntity)) return; - // ExecuteHamB(Ham_Killed, pEntity, pKiller, 0); @Entity_Kill(pEntity, pKiller, false); } public bool:Native_Remove(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); + + if (!@Entity_IsCustom(pEntity)) return; + set_pev(pEntity, pev_flags, pev(pEntity, pev_flags) | FL_KILLME); dllfunc(DLLFunc_Think, pEntity); } public Native_RegisterHook(iPluginId, iArgc) { new CEFunction:iFunction = CEFunction:get_param(1); - - new szClassname[CE_MAX_NAME_LENGTH]; - get_string(2, szClassname, charsmax(szClassname)); - - new szCallback[CE_MAX_CALLBACK_LENGTH]; - get_string(3, szCallback, charsmax(szCallback)); + new szClassname[CE_MAX_NAME_LENGTH]; get_string(2, szClassname, charsmax(szClassname)); + new szCallback[CE_MAX_CALLBACK_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); RegisterEntityHook(iFunction, szClassname, szCallback, iPluginId); } public Native_GetHandler(iPluginId, iArgc) { - new szClassName[CE_MAX_NAME_LENGTH]; - get_string(1, szClassName, charsmax(szClassName)); - + static szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + return GetIdByClassName(szClassName); } public Native_GetHandlerByEntity(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); - if (!@Entity_IsCustom(pEntity)) { - return -1; - } + if (!@Entity_IsCustom(pEntity)) return -1; + + static Trie:itPData; itPData = @Entity_GetPData(pEntity); - new Trie:itPData = @Entity_GetPData(pEntity); return GetPDataMember(itPData, CE_MEMBER_ID); } public bool:Native_HasMember(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); - static szMember[CE_MAX_MEMBER_LENGTH]; - get_string(2, szMember, charsmax(szMember)); + if (!@Entity_IsCustom(pEntity)) return false; - new Trie:itPData = @Entity_GetPData(pEntity); + static Trie:itPData; itPData = @Entity_GetPData(pEntity); return HasPDataMember(itPData, szMember); } public any:Native_GetMember(iPluginId, iArgc) { new pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); - static szMember[CE_MAX_MEMBER_LENGTH]; - get_string(2, szMember, charsmax(szMember)); + if (!@Entity_IsCustom(pEntity)) return 0; - new Trie:itPData = @Entity_GetPData(pEntity); + static Trie:itPData; itPData = @Entity_GetPData(pEntity); return GetPDataMember(itPData, szMember); } public Native_DeleteMember(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); - static szMember[CE_MAX_MEMBER_LENGTH]; - get_string(2, szMember, charsmax(szMember)); + if (!@Entity_IsCustom(pEntity)) return; - new Trie:itPData = @Entity_GetPData(pEntity); + static Trie:itPData; itPData = @Entity_GetPData(pEntity); DeletePDataMember(itPData, szMember); } public Native_SetMember(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + static iValue; iValue = get_param(3); - static szMember[CE_MAX_MEMBER_LENGTH]; - get_string(2, szMember, charsmax(szMember)); + if (!@Entity_IsCustom(pEntity)) return; - new iValue = get_param(3); - - new Trie:itPData = @Entity_GetPData(pEntity); + static Trie:itPData; itPData = @Entity_GetPData(pEntity); SetPDataMember(itPData, szMember, iValue); } public bool:Native_GetMemberVec(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); - static szMember[CE_MAX_MEMBER_LENGTH]; - get_string(2, szMember, charsmax(szMember)); + if (!@Entity_IsCustom(pEntity)) return false; - new Trie:itPData = @Entity_GetPData(pEntity); + static Trie:itPData; itPData = @Entity_GetPData(pEntity); static Float:vecValue[3]; - static bool:bResult; bResult = GetPDataMemberVec(itPData, szMember, vecValue); + if (!GetPDataMemberVec(itPData, szMember, vecValue)) return false; + set_array_f(3, vecValue, sizeof(vecValue)); - return bResult; + return true; } public Native_SetMemberVec(iPluginId, iArgc) { - new pEntity = get_param(1); - - static szMember[CE_MAX_MEMBER_LENGTH]; - get_string(2, szMember, charsmax(szMember)); + static pEntity; pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + static Float:vecValue[3]; get_array_f(3, vecValue, sizeof(vecValue)); - static Float:vecValue[3]; - get_array_f(3, vecValue, sizeof(vecValue)); + if (!@Entity_IsCustom(pEntity)) return; - new Trie:itPData = @Entity_GetPData(pEntity); + static Trie:itPData; itPData = @Entity_GetPData(pEntity); SetPDataMemberVec(itPData, szMember, vecValue); } public bool:Native_GetMemberString(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); - static szMember[CE_MAX_MEMBER_LENGTH]; - get_string(2, szMember, charsmax(szMember)); + if (!@Entity_IsCustom(pEntity)) return false; - new Trie:itPData = @Entity_GetPData(pEntity); + static Trie:itPData; itPData = @Entity_GetPData(pEntity); static szValue[128]; - static bool:bResult; bResult = GetPDataMemberString(itPData, szMember, szValue, charsmax(szValue)); + if (!GetPDataMemberString(itPData, szMember, szValue, charsmax(szValue))) return false; + set_string(3, szValue, get_param(4)); - return bResult; + return true; } public Native_SetMemberString(iPluginId, iArgc) { - new pEntity = get_param(1); - - static szMember[CE_MAX_MEMBER_LENGTH]; - get_string(2, szMember, charsmax(szMember)); - - static szValue[128]; - get_string(3, szValue, charsmax(szValue)); + static pEntity; pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + static szValue[128]; get_string(3, szValue, charsmax(szValue)); + + if (!@Entity_IsCustom(pEntity)) return; - new Trie:itPData = @Entity_GetPData(pEntity); + static Trie:itPData; itPData = @Entity_GetPData(pEntity); SetPDataMemberString(itPData, szMember, szValue); } @@ -427,6 +424,10 @@ public HamHook_Base_BloodColor(pEntity) { /*--------------------------------[ Methods ]--------------------------------*/ bool:@Entity_IsCustom(this) { + if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER) == this) { + return true; + } + return pev(this, pev_gaitsequence) == CE_ENTITY_SECRET; } @@ -468,6 +469,7 @@ bool:@Entity_IsCustom(this) { } SetPDataMember(itPData, CE_MEMBER_INITIALIZED, true); + SetPDataMember(itPData, CE_MEMBER_LASTINIT, get_gametime()); } @Entity_Spawn(this) { @@ -487,6 +489,8 @@ bool:@Entity_IsCustom(this) { return; } + static Float:flGameTime; flGameTime = get_gametime(); + set_pev(this, pev_deadflag, DEAD_NO); set_pev(this, pev_effects, pev(this, pev_effects) & ~EF_NODRAW); set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); @@ -526,13 +530,14 @@ bool:@Entity_IsCustom(this) { } if (flLifeTime > 0.0) { - new Float:flGameTime = get_gametime(); SetPDataMember(itPData, CE_MEMBER_NEXTKILL, flGameTime + flLifeTime); set_pev(this, pev_nextthink, flGameTime + flLifeTime); } else { SetPDataMember(itPData, CE_MEMBER_NEXTKILL, 0.0); } + SetPDataMember(itPData, CE_MEMBER_LASTSPAWN, flGameTime); + ExecuteHookFunction(CEFunction_Spawned, iId, this); } diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index d0a3610..995e271 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -29,6 +29,9 @@ #define CE_MEMBER_RESPAWNTIME "_flRespawnTime" #define CE_MEMBER_MINS "_vecMins" #define CE_MEMBER_MAXS "_vecMaxs" +#define CE_MEMBER_LASTINIT "_flLastInit" +#define CE_MEMBER_LASTSPAWN "_flLastSpawn" +#define CE_MEMBER_PLUGINID "_iPluginId" enum CE { CE_InvalidHandler = -1 From a4c611352678956682a522261c0a3d113d028a32 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 14 Nov 2023 05:40:23 +0200 Subject: [PATCH 098/231] add particle system --- api/particles/api_particles.sma | 599 ++++++++++++++++++++++++ api/particles/include/api_particles.inc | 138 ++++++ 2 files changed, 737 insertions(+) create mode 100644 api/particles/api_particles.sma create mode 100644 api/particles/include/api_particles.inc diff --git a/api/particles/api_particles.sma b/api/particles/api_particles.sma new file mode 100644 index 0000000..be5ebb3 --- /dev/null +++ b/api/particles/api_particles.sma @@ -0,0 +1,599 @@ +#pragma semicolon 1 + +#include +#include +#include +#include +#include +#include + +#include + +#define PLUGIN "[API] Particles" +#define VERSION "1.0.0" +#define AUTHOR "Hedgehog Fog" + +#define BIT(%0) (1<<(%0)) + +#define PARTICLE_CLASSNAME "_particle" + +#define UPDATE_RATE 0.01 +#define VISIBILITY_UPDATE_RATE 0.25 + +enum ParticleEffect { + ParticleEffect_Id[32], + Float:ParticleEffect_EmitRate, + Float:ParticleEffect_ParticleLifeTime, + ParticleEffect_VisibilityDistance, + ParticleEffect_MaxParticles, + ParticleEffect_PluginId, + ParticleEffect_InitFunctionId, + ParticleEffect_TransformFunctionId +}; + +enum ParticleSystem { + Struct:ParticleSystem_Effect, + Float:ParticleSystem_Origin[3], + Float:ParticleSystem_Angles[3], + ParticleSystem_ParentEntity, + Array:ParticleSystem_Particles, + Float:ParticleSystem_KillTime, + Float:ParticleSystem_NextEmit, + bool:ParticleSystem_Active, + Float:ParticleSystem_CreatedTime, + Float:ParticleSystem_NextVisibilityUpdate, + Float:ParticleSystem_LasOrigin[3], + Float:ParticleSystem_LastUpdate, + ParticleSystem_VisibilityBits +}; + +enum Particle { + Struct:Particle_System, + Particle_Entity, + Float:Particle_CreatedTime, + Float:Particle_KillTime, + Float:Particle_LastTransform +}; + +new g_iszParticleClassName; +new g_pTrace; + +new Float:g_flNextSystemsUpdate; + +new Array:g_irgSystems; +new Trie:g_tParticleEffects; + +public plugin_precache() { + g_flNextSystemsUpdate = 0.0; + g_irgSystems = ArrayCreate(); + g_tParticleEffects = TrieCreate(); + g_iszParticleClassName = engfunc(EngFunc_AllocString, "info_target"); + g_pTrace = create_tr2(); +} + +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); + + register_forward(FM_AddToFullPack, "FMHook_AddToFullPack", 0); + + register_concmd("particle_create", "Command_Create", ADMIN_CVAR); +} + +public plugin_natives() { + register_library("api_particles"); + register_native("Particles_RegisterEffect", "Native_RegisterParticleEffect"); + register_native("Particles_GetParticle", "Native_GetParticle"); + register_native("Particles_ParticleSystem_Create", "Native_CreateParticleSystem"); + register_native("Particles_ParticleSystem_Destroy", "Native_DestroyParticleSystem"); + register_native("Particles_ParticleSystem_Activate", "Native_ActivateParticleSystem"); + register_native("Particles_ParticleSystem_Deactivate", "Native_DeactivateParticleSystem"); + register_native("Particles_ParticleSystem_GetCreatedTime", "Native_GetParticleSystemCreatedTime"); + register_native("Particles_ParticleSystem_GetKillTime", "Native_GetParticleSystemKillTime"); + register_native("Particles_ParticleSystem_GetLastUpdate", "Native_GetParticleSystemGetLastUpdate"); + register_native("Particles_ParticleSystem_GetVisibilityBits", "Native_GetParticleSystemGetVisibilityBits"); + register_native("Particles_Particle_GetEntity", "Native_GetParticleEntity"); + register_native("Particles_Particle_GetSystem", "Native_GetParticleSystem"); + register_native("Particles_Particle_GetKillTime", "Native_GetParticleKillTime"); + register_native("Particles_Particle_GetCreatedTime", "Native_GetParticleCreatedTime"); +} + +public plugin_end() { + static irgSystemsNum; irgSystemsNum = ArraySize(g_irgSystems); + for (new iSystem = 0; iSystem < irgSystemsNum; ++iSystem) { + static Struct:sSystem; sSystem = ArrayGetCell(g_irgSystems, iSystem); + if (sSystem == Invalid_Struct) continue; + + @ParticleSystem_Destroy(sSystem); + } + + ArrayDestroy(g_irgSystems); + TrieDestroy(g_tParticleEffects); + free_tr2(g_pTrace); +} + +/*--------------------------------[ Natives ]--------------------------------*/ + +public Native_RegisterParticleEffect(iPluginId, iArgc) { + new szName[32]; get_string(1, szName, charsmax(szName)); + new Float:flEmitRate = get_param_f(2); + new Float:flParticleLifeTime = get_param_f(3); + new iMaxParticles = get_param(4); + new szInitFunction[64]; get_string(5, szInitFunction, charsmax(szInitFunction)); + new szTransformFunction[64]; get_string(6, szTransformFunction, charsmax(szTransformFunction)); + + if (TrieKeyExists(g_tParticleEffects, szName)) { + log_error(AMX_ERR_NATIVE, "Particle effect ^"%s^" is already registered.", szName); + return; + } + + new iInitFunctionId = get_func_id(szInitFunction, iPluginId); + new iTransformFunctionId = get_func_id(szTransformFunction, iPluginId); + + new Struct:sEffect = @ParticleEffect_Create(szName, flEmitRate, flParticleLifeTime, iMaxParticles, iPluginId, iInitFunctionId, iTransformFunctionId); + + TrieSetCell(g_tParticleEffects, szName, sEffect); +} + +public Struct:Native_CreateParticleSystem(iPluginId, iArgc) { + static szName[32]; get_string(1, szName, charsmax(szName)); + static Float:vecOrigin[3]; get_array_f(2, vecOrigin, sizeof(vecOrigin)); + static Float:vecAngles[3]; get_array_f(3, vecAngles, sizeof(vecAngles)); + static pParent; pParent = get_param(4); + + static Struct:sEffect; + if (!TrieGetCell(g_tParticleEffects, szName, sEffect)) { + log_error(AMX_ERR_NATIVE, "[Particles] Effect ^"%s^" is not registered!", szName); + return Invalid_Struct; + } + + static Struct:sSystem; sSystem = @ParticleSystem_Create(sEffect, vecOrigin, vecAngles, pParent); + + return sSystem; +} + +public Struct:Native_GetParticle(iPluginId, iArgc) { + static pParticle; pParticle = get_param(1); + + return Struct:pev(pParticle, pev_iuser1); +} + +public Struct:Native_GetParticleEntity(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + return StructGetCell(sParticle, Particle_Entity); +} + +public Struct:Native_GetParticleSystem(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + return StructGetCell(sParticle, Particle_System); +} + +public Float:Native_GetParticleCreatedTime(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + return Float:StructGetCell(sParticle, Particle_CreatedTime); +} + +public Float:Native_GetParticleKillTime(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + return Float:StructGetCell(sParticle, Particle_KillTime); +} + +public Native_DestroyParticleSystem(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + StructSetCell(sSystem, ParticleSystem_KillTime, get_gametime()); + + set_param_byref(1, _:Invalid_Struct); +} + +public Float:Native_ActivateParticleSystem(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + StructSetCell(sSystem, ParticleSystem_Active, true); +} + +public Float:Native_DeactivateParticleSystem(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + StructSetCell(sSystem, ParticleSystem_Active, false); +} + +public Float:Native_GetParticleSystemCreatedTime(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + return Float:StructGetCell(sSystem, ParticleSystem_CreatedTime); +} + +public Float:Native_GetParticleSystemKillTime(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + return Float:StructGetCell(sSystem, ParticleSystem_KillTime); +} + +public Native_GetParticleSystemGetLastUpdate(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + return StructGetCell(sSystem, ParticleSystem_LastUpdate); +} + +public Native_GetParticleSystemGetVisibilityBits(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + return StructGetCell(sSystem, ParticleSystem_VisibilityBits); +} + +/*--------------------------------[ Forwards ]--------------------------------*/ + +public server_frame() { + static Float:flGameTime; flGameTime = get_gametime(); + + if (g_flNextSystemsUpdate <= flGameTime) { + UpdateSystems(); + g_flNextSystemsUpdate = flGameTime + UPDATE_RATE; + } +} + +/*--------------------------------[ Hooks ]--------------------------------*/ + +public Command_Create(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 2)) { + return PLUGIN_HANDLED; + } + + static szName[32]; read_argv(1, szName, charsmax(szName)); + + if (equal(szName, NULL_STRING)) return PLUGIN_HANDLED; + + static Float:vecOrigin[3]; pev(pPlayer, pev_origin, vecOrigin); + static Float:vecAngles[3]; pev(pPlayer, pev_angles, vecAngles); + + static Struct:sEffect; + if (!TrieGetCell(g_tParticleEffects, szName, sEffect)) return PLUGIN_HANDLED; + + static Struct:sSystem; sSystem = @ParticleSystem_Create(sEffect, vecOrigin, vecAngles, 0); + StructSetCell(sSystem, ParticleSystem_Active, true); + + return PLUGIN_HANDLED; +} + +public FMHook_AddToFullPack(es, e, pEntity, pHost, hostflags, player, pSet) { + if (!pev_valid(pEntity)) return FMRES_IGNORED; + + static szClassName[32]; pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); + + if (equal(szClassName, PARTICLE_CLASSNAME)) { + static Struct:sParticle; sParticle = Struct:pev(pEntity, pev_iuser1); + static Struct:sSystem; sSystem = StructGetCell(sParticle, Particle_System); + static iVisibilityBits; iVisibilityBits = StructGetCell(sSystem, ParticleSystem_VisibilityBits); + + if (~iVisibilityBits & BIT(pHost & 31)) return FMRES_SUPERCEDE; + + return FMRES_IGNORED; + } + + return FMRES_IGNORED; +} + +/*--------------------------------[ ParticleEffect Methods ]--------------------------------*/ + +Struct:@ParticleEffect_Create(const szName[], Float:flEmitRate, Float:flParticleLifeTime, iMaxParticles, iPluginId, iInitFunctionId, iTransformFunctionId) { + static Struct:this; this = StructCreate(ParticleEffect); + + StructSetString(this, ParticleEffect_Id, szName); + StructSetCell(this, ParticleEffect_EmitRate, flEmitRate); + StructSetCell(this, ParticleEffect_VisibilityDistance, 2048.0); + StructSetCell(this, ParticleEffect_ParticleLifeTime, flParticleLifeTime); + StructSetCell(this, ParticleEffect_MaxParticles, iMaxParticles); + StructSetCell(this, ParticleEffect_PluginId, iPluginId); + StructSetCell(this, ParticleEffect_InitFunctionId, iInitFunctionId); + StructSetCell(this, ParticleEffect_TransformFunctionId, iTransformFunctionId); + + return this; +} + +@ParticleEffect_Destroy(&Struct:this) { + StructDestroy(this); +} + +/*--------------------------------[ ParticleSystem Methods ]--------------------------------*/ + +Struct:@ParticleSystem_Create(const &Struct:sEffect, const Float:vecOrigin[3], const Float:vecAngles[3], pParent) { + static Struct:this; this = StructCreate(ParticleSystem); + + static iMaxParticles; iMaxParticles = StructGetCell(sEffect, ParticleEffect_MaxParticles); + + static Array:irgParticles; irgParticles = ArrayCreate(iMaxParticles); + for (new i = 0; i < iMaxParticles; ++i) ArrayPushCell(irgParticles, Invalid_Struct); + + StructSetCell(this, ParticleSystem_Effect, sEffect); + StructSetArray(this, ParticleSystem_Origin, vecOrigin, 3); + StructSetArray(this, ParticleSystem_Angles, vecAngles, 3); + StructSetCell(this, ParticleSystem_ParentEntity, pParent); + StructSetCell(this, ParticleSystem_Particles, irgParticles); + StructSetCell(this, ParticleSystem_CreatedTime, get_gametime()); + StructSetCell(this, ParticleSystem_KillTime, 0.0); + StructSetCell(this, ParticleSystem_Active, false); + StructSetCell(this, ParticleSystem_NextEmit, 0.0); + StructSetCell(this, ParticleSystem_NextVisibilityUpdate, 0.0); + + ArrayPushCell(g_irgSystems, this); + + return this; +} + +@ParticleSystem_Destroy(&Struct:this) { + static Array:irgParticles; irgParticles = StructGetCell(this, ParticleSystem_Particles); + static iParticlesNum; iParticlesNum = ArraySize(irgParticles); + + for (new iParticle = 0; iParticle < iParticlesNum; ++iParticle) { + static Struct:sParticle; sParticle = ArrayGetCell(irgParticles, iParticle); + if (sParticle == Invalid_Struct) continue; + + @Particle_Destroy(sParticle); + } + + ArrayDestroy(irgParticles); + + StructDestroy(this); +} + +@ParticleSystem_Update(const &Struct:this) { + static Float:flGameTime; flGameTime = get_gametime(); + + static Float:vecOrigin[3]; @ParticleSystem_GetAbsOrigin(this, vecOrigin); + static Float:vecLastOrigin[3]; StructGetArray(this, ParticleSystem_LasOrigin, vecLastOrigin, sizeof(vecLastOrigin)); + static Float:vecOffset[3]; xs_vec_sub(vecOrigin, vecLastOrigin, vecOffset); + static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); + static Float:flLastUpdate; flLastUpdate = StructGetCell(this, ParticleSystem_LastUpdate); + static Array:irgParticles; irgParticles = StructGetCell(this, ParticleSystem_Particles); + static iVisibilityBits; iVisibilityBits = StructGetCell(this, ParticleSystem_VisibilityBits); + static bool:bActive; bActive = StructGetCell(this, ParticleSystem_Active); + static iParticlesNum; iParticlesNum = ArraySize(irgParticles); + static Float:flDelta; flDelta = flGameTime - flLastUpdate; + + // Emit particles + if (bActive) { + static Float:flNextEmit; flNextEmit = StructGetCell(this, ParticleSystem_NextEmit); + if (flNextEmit <= flGameTime) { + static Float:flEmitRate; flEmitRate = StructGetCell(sEffect, ParticleEffect_EmitRate); + + if (flEmitRate || !iParticlesNum) @ParticleSystem_Emit(this); + + StructSetCell(this, ParticleSystem_NextEmit, flGameTime + flEmitRate); + } + } + + for (new iParticle = 0; iParticle < iParticlesNum; ++iParticle) { + static Struct:sParticle; sParticle = ArrayGetCell(irgParticles, iParticle); + if (sParticle == Invalid_Struct) continue; + + // Destroy expired particle and skip (also destroy all particles in case no one see the system or the system is deactivated) + static Float:flKillTime; flKillTime = StructGetCell(sParticle, Particle_KillTime); + if (!iVisibilityBits || !bActive || (flKillTime > 0.0 && flKillTime <= flGameTime)) { + ArraySetCell(irgParticles, iParticle, Invalid_Struct); + @Particle_Destroy(sParticle); + continue; + } + + // Make particle follow the parent entity + static pParent; pParent = StructGetCell(this, ParticleSystem_ParentEntity); + if (pParent > 0) { + static pEntity; pEntity = StructGetCell(sParticle, Particle_Entity); + static Float:vecParticleOrigin[3]; pev(pEntity, pev_origin, vecParticleOrigin); + xs_vec_add(vecParticleOrigin, vecOffset, vecParticleOrigin); + set_pev(pEntity, pev_origin, vecParticleOrigin); + } + + static iPluginId; iPluginId = StructGetCell(sEffect, ParticleEffect_PluginId); + static iFunctionId; iFunctionId = StructGetCell(sEffect, ParticleEffect_TransformFunctionId); + if (iPluginId != -1 && iFunctionId != -1) { + static Float:flCreatedTime; flCreatedTime = StructGetCell(sParticle, Particle_CreatedTime); + static Float:fllLifeDelta; fllLifeDelta = flGameTime - flCreatedTime; + + static Float:flLifeRatio; flLifeRatio = 0.0; + if (flKillTime) { + flLifeRatio = (flGameTime - flCreatedTime) / (flKillTime - flCreatedTime); + } + + @Particle_CallTransformFunction(sParticle, iPluginId, iFunctionId, flDelta, fllLifeDelta, flLifeRatio); + } + + StructSetCell(sParticle, Particle_LastTransform, flGameTime); + } + + StructSetCell(this, ParticleSystem_LastUpdate, flGameTime); + StructSetArray(this, ParticleSystem_LasOrigin, vecOrigin, 3); +} + +@ParticleSystem_Emit(const &Struct:this) { + static iVisibilityBits; iVisibilityBits = StructGetCell(this, ParticleSystem_VisibilityBits); + if (!iVisibilityBits) return; + + static Float:flGameTime; flGameTime = get_gametime(); + static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); + + static Struct:sParticle; sParticle = @Particle_Create(this); + + static Float:flLifeTime; flLifeTime = StructGetCell(sEffect, ParticleEffect_ParticleLifeTime); + if (flLifeTime > 0.0) { + StructSetCell(sParticle, Particle_KillTime, flGameTime + flLifeTime); + } + + @ParticleSystem_AddParticle(this, sParticle); + + static iPluginId; iPluginId = StructGetCell(sEffect, ParticleEffect_PluginId); + static iFunctionId; iFunctionId = StructGetCell(sEffect, ParticleEffect_InitFunctionId); + if (iPluginId != -1 && iFunctionId != -1) { + @Particle_CallInitFunction(sParticle, iPluginId, iFunctionId); + } + + static Float:flEmitRate; flEmitRate = StructGetCell(sEffect, ParticleEffect_EmitRate); + StructSetCell(this, ParticleSystem_NextEmit, flGameTime + flEmitRate); +} + +@ParticleSystem_AddParticle(const &Struct:this, const &Struct:sNewParticle) { + static Array:irgParticles; irgParticles = StructGetCell(this, ParticleSystem_Particles); + static iParticlesNum; iParticlesNum = ArraySize(irgParticles); + + static iIndex; iIndex = -1; + static Struct:sOldParticle; sOldParticle = Invalid_Struct; + + for (new iParticle = 0; iParticle < iParticlesNum; ++iParticle) { + static Struct:sParticle; sParticle = ArrayGetCell(irgParticles, iParticle); + if (sParticle == Invalid_Struct) { + ArraySetCell(irgParticles, iParticle, sNewParticle); + return; + } + + static Float:flKillTime; flKillTime = StructGetCell(sParticle, Particle_KillTime); + if (iIndex == -1 || flKillTime < StructGetCell(sOldParticle, Particle_KillTime)) { + iIndex = iParticle; + sOldParticle = sParticle; + } + } + + @Particle_Destroy(sOldParticle); + ArraySetCell(irgParticles, iIndex, sNewParticle); +} + +@ParticleSystem_GetAbsOrigin(const &Struct:this, Float:vecOrigin[3]) { + static pParent; pParent = StructGetCell(this, ParticleSystem_ParentEntity); + if (pParent > 0) { + pev(pParent, pev_origin, vecOrigin); + + for (new i = 0; i < 3; ++i) { + vecOrigin[i] += Float:StructGetCell(this, ParticleSystem_Origin, i); + } + } else { + StructGetArray(this, ParticleSystem_Origin, vecOrigin, sizeof(vecOrigin)); + } +} + +@ParticleSystem_UpdateVisibilityBits(const &Struct:this) { + static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); + + static Float:flVisibleDistance; flVisibleDistance = StructGetCell(sEffect, ParticleEffect_VisibilityDistance); + static Float:vecOrigin[3]; @ParticleSystem_GetAbsOrigin(this, vecOrigin); + + new iVisibilityBits = 0; + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + if (!is_user_connected(pPlayer)) continue; + + static Float:vecPlayerOrigin[3]; ExecuteHamB(Ham_EyePosition, pPlayer, vecPlayerOrigin); + static Float:flDistance; flDistance = get_distance_f(vecOrigin, vecPlayerOrigin); + + if (flDistance > 32.0 && !is_in_viewcone(pPlayer, vecOrigin, 1)) continue; + if (flDistance > flVisibleDistance) continue; + + engfunc(EngFunc_TraceLine, vecPlayerOrigin, vecOrigin, IGNORE_MONSTERS, pPlayer, g_pTrace); + + static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + if (flFraction == 1.0) { + iVisibilityBits |= BIT(pPlayer & 31); + } + } + + StructSetCell(this, ParticleSystem_VisibilityBits, iVisibilityBits); +} + +/*--------------------------------[ Particle Methods ]--------------------------------*/ + +Struct:@Particle_Create(const &Struct:sSystem) { + static Struct:this; this = StructCreate(Particle); + + static Float:vecOrigin[3]; @ParticleSystem_GetAbsOrigin(sSystem, vecOrigin); + static Float:vecAngles[3]; StructGetArray(sSystem, ParticleSystem_Angles, vecAngles, sizeof(vecAngles)); + + static pParticle; pParticle = CreateParticleEnity(vecOrigin, vecAngles); + set_pev(pParticle, pev_iuser1, this); + + StructSetCell(this, Particle_System, sSystem); + StructSetCell(this, Particle_Entity, pParticle); + StructSetCell(this, Particle_CreatedTime, get_gametime()); + StructSetCell(this, Particle_KillTime, 0.0); + + return this; +} + +CreateParticleEnity(const Float:vecOrigin[3], const Float:vecAngles[3]) { + static pEntity; pEntity = engfunc(EngFunc_CreateNamedEntity, g_iszParticleClassName); + dllfunc(DLLFunc_Spawn, pEntity); + + set_pev(pEntity, pev_classname, PARTICLE_CLASSNAME); + set_pev(pEntity, pev_solid, SOLID_NOT); + set_pev(pEntity, pev_movetype, MOVETYPE_NOCLIP); + set_pev(pEntity, pev_angles, vecAngles); + + engfunc(EngFunc_SetOrigin, pEntity, vecOrigin); + + return pEntity; +} + +@Particle_Destroy(&Struct:this) { + static pParticle; pParticle = StructGetCell(this, Particle_Entity); + engfunc(EngFunc_RemoveEntity, pParticle); + + StructDestroy(this); +} + +@Particle_CallInitFunction(const &Struct:this, iPluginId, iFunctionId) { + callfunc_begin_i(iFunctionId, iPluginId); + callfunc_push_int(_:this); + callfunc_end(); +} + +@Particle_CallTransformFunction(const &Struct:this, iPluginId, iFunctionId, Float:flDelta, Float:flLifeDelta, Float:flLifeRatio) { + callfunc_begin_i(iFunctionId, iPluginId); + callfunc_push_int(_:this); + callfunc_push_float(flDelta); + callfunc_push_float(flLifeDelta); + callfunc_push_float(flLifeRatio); + callfunc_end(); +} + +/*--------------------------------[ Functions ]--------------------------------*/ + +UpdateSystems() { + static Float:flGameTime; flGameTime = get_gametime(); + static irgSystemsNum; irgSystemsNum = ArraySize(g_irgSystems); + + for (new iSystem = 0; iSystem < irgSystemsNum; ++iSystem) { + static Struct:sSystem; sSystem = ArrayGetCell(g_irgSystems, iSystem); + if (sSystem == Invalid_Struct) continue; + + // Destroy expired system and skip + static Float:flKillTime; flKillTime = StructGetCell(sSystem, ParticleSystem_KillTime); + if (flKillTime && flKillTime <= flGameTime) { + ArraySetCell(g_irgSystems, iSystem, Invalid_Struct); + @ParticleSystem_Destroy(sSystem); + continue; + } + + @ParticleSystem_Update(sSystem); + + static Float:flNextVisibilityUpdate; flNextVisibilityUpdate = StructGetCell(sSystem, ParticleSystem_NextVisibilityUpdate); + if (flNextVisibilityUpdate <= flGameTime) { + @ParticleSystem_UpdateVisibilityBits(sSystem); + StructSetCell(sSystem, ParticleSystem_NextVisibilityUpdate, flGameTime + VISIBILITY_UPDATE_RATE); + } + } + + UTIL_ArrayFindAndDelete(g_irgSystems, Invalid_Struct); +} + +/*--------------------------------[ Stocks ]--------------------------------*/ + +stock UTIL_ArrayFindAndDelete(const &Array:irgArray, any:iValue) { + static iSize; iSize = ArraySize(irgArray); + + for (new i = 0; i < iSize; ++i) { + if (ArrayGetCell(irgArray, i) == iValue) { + ArrayDeleteItem(irgArray, i); + i--; + iSize--; + } + } +} diff --git a/api/particles/include/api_particles.inc b/api/particles/include/api_particles.inc new file mode 100644 index 0000000..204bb86 --- /dev/null +++ b/api/particles/include/api_particles.inc @@ -0,0 +1,138 @@ +#if defined _api_particles_included + #endinput +#endif +#define _api_particles_included + +/** + * Registers a particle effect. + * + * @param szName The name of the effect. + * @param flEmitRate The rate at which particles are emitted. + * @param flParticleLifeTime The lifetime of each particle. + * @param iMaxParticles The maximum number of particles. + * @param szInitFunction The name of the initialization function. + * @param szTransformFunction The name of the transformation function. + * + * @noreturn + */ +native Particles_RegisterEffect(const szName[], Float:flEmitRate, Float:flParticleLifeTime, iMaxParticles, const szInitFunction[], const szTransformFunction[]); + +/** + * Creates a particle system. + * + * @param szEffect The name of the effect. + * @param vecOrigin The origin of the system. + * @param vecAngles The angles of the system. + * @param pParent The parent entity. + * + * @return The particle system structure pointer. + */ +native ParticleSystem:Particles_ParticleSystem_Create(const szEffect[], const Float:vecOrigin[3] = {0.0, 0.0, 0.0}, const Float:vecAngles[3] = {0.0, 0.0, 0.0}, pParent = 0); + +/** + * Destroys the particle system. + * + * @param sSystem The particle system structure pointer. + * + * @noreturn + */ +native ParticleSystem:Particles_ParticleSystem_Destroy(&ParticleSystem:sSystem); + +/** + * Activates the particle system. + * + * @param sSystem The particle system structure pointer. + * + * @noreturn + */ +native Particles_ParticleSystem_Activate(const &ParticleSystem:sSystem); + +/** + * Deactivates the particle system. + * + * @param sSystem The particle system structure pointer. + * + * @noreturn + */ +native Particles_ParticleSystem_Deactivate(const &ParticleSystem:sSystem); + +/** + * Retrieves the time at which a particle system was created. + * + * @param sSystem The particle system structure pointer. + * + * @return The creation time of the particle system. + */ +native Float:Particles_ParticleSystem_GetCreatedTime(const &ParticleSystem:sSystem); + +/** + * Retrieves the time at which a particle system will killed. + * + * @param sSystem The particle system structure pointer. + * + * @return The kill time of the particle system. + */ +native Float:Particles_ParticleSystem_GetKillTime(const &ParticleSystem:sSystem); + +/** + * Retrieves the last time a particle system was updated. + * + * @param sSystem The particle system structure pointer. + * + * @return The last update time of the particle system. + */ +native Float:Particles_ParticleSystem_GetLastUpdate(const &ParticleSystem:sSystem); + +/** + * Retrieves the visibility bits of a particle. + * + * @param sSystem The particle system structure pointer. + * + * @return The visibility bits of the particle system. + */ +native Float:Particles_ParticleSystem_GetVisibilityBits(const &ParticleSystem:sSystem); + +/** + * Gets particle pointer by entity. + * + * @param pEntity The particle entity. + * + * @return The particle pointer. + */ +native Particle:Particles_GetParticle(pEntity); + +/** + * Gets particle entity by particle pointer. + * + * @param sParticle The particle pointer. + * + * @return The entity of the particle. + */ +native Particles_Particle_GetEntity(const &Particle:sParticle); + +/** + * Retrieves the time at which a particle was created. + * + * @param sParticle The particle pointer. + * + * @return The creation time of the particle. + */ +native Float:Particles_Particle_GetCreatedTime(const &Particle:sParticle); + +/** + * Retrieves the time at which a particle will killed. + * + * @param sParticle The particle pointer. + * + * @return The kill time of the particle. + */ +native Float:Particles_Particle_GetKillTime(const &Particle:sParticle); + +/** + * Gets particle system pointer by particle pointer. + * + * @param sParticle The particle pointer. + * + * @return The particle system pointer. + */ +native ParticleSystem:Particles_Particle_GetSystem(const &Particle:sParticle); From aa1f0802644727c7f4d539129d6d0977be5b7550 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 14 Nov 2023 05:44:26 +0200 Subject: [PATCH 099/231] remove useless params --- api/particles/api_particles.sma | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/api/particles/api_particles.sma b/api/particles/api_particles.sma index be5ebb3..9b13e8e 100644 --- a/api/particles/api_particles.sma +++ b/api/particles/api_particles.sma @@ -347,12 +347,10 @@ Struct:@ParticleSystem_Create(const &Struct:sEffect, const Float:vecOrigin[3], c static Float:vecLastOrigin[3]; StructGetArray(this, ParticleSystem_LasOrigin, vecLastOrigin, sizeof(vecLastOrigin)); static Float:vecOffset[3]; xs_vec_sub(vecOrigin, vecLastOrigin, vecOffset); static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); - static Float:flLastUpdate; flLastUpdate = StructGetCell(this, ParticleSystem_LastUpdate); static Array:irgParticles; irgParticles = StructGetCell(this, ParticleSystem_Particles); static iVisibilityBits; iVisibilityBits = StructGetCell(this, ParticleSystem_VisibilityBits); static bool:bActive; bActive = StructGetCell(this, ParticleSystem_Active); static iParticlesNum; iParticlesNum = ArraySize(irgParticles); - static Float:flDelta; flDelta = flGameTime - flLastUpdate; // Emit particles if (bActive) { @@ -390,15 +388,7 @@ Struct:@ParticleSystem_Create(const &Struct:sEffect, const Float:vecOrigin[3], c static iPluginId; iPluginId = StructGetCell(sEffect, ParticleEffect_PluginId); static iFunctionId; iFunctionId = StructGetCell(sEffect, ParticleEffect_TransformFunctionId); if (iPluginId != -1 && iFunctionId != -1) { - static Float:flCreatedTime; flCreatedTime = StructGetCell(sParticle, Particle_CreatedTime); - static Float:fllLifeDelta; fllLifeDelta = flGameTime - flCreatedTime; - - static Float:flLifeRatio; flLifeRatio = 0.0; - if (flKillTime) { - flLifeRatio = (flGameTime - flCreatedTime) / (flKillTime - flCreatedTime); - } - - @Particle_CallTransformFunction(sParticle, iPluginId, iFunctionId, flDelta, fllLifeDelta, flLifeRatio); + @Particle_CallTransformFunction(sParticle, iPluginId, iFunctionId); } StructSetCell(sParticle, Particle_LastTransform, flGameTime); @@ -545,12 +535,9 @@ CreateParticleEnity(const Float:vecOrigin[3], const Float:vecAngles[3]) { callfunc_end(); } -@Particle_CallTransformFunction(const &Struct:this, iPluginId, iFunctionId, Float:flDelta, Float:flLifeDelta, Float:flLifeRatio) { +@Particle_CallTransformFunction(const &Struct:this, iPluginId, iFunctionId) { callfunc_begin_i(iFunctionId, iPluginId); callfunc_push_int(_:this); - callfunc_push_float(flDelta); - callfunc_push_float(flLifeDelta); - callfunc_push_float(flLifeRatio); callfunc_end(); } From fb36a9d84b546d5f0a2c133801aa2187f04dab8c Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 14 Nov 2023 06:25:32 +0200 Subject: [PATCH 100/231] add readme --- api/particles/README.md | 97 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 api/particles/README.md diff --git a/api/particles/README.md b/api/particles/README.md new file mode 100644 index 0000000..06fefd4 --- /dev/null +++ b/api/particles/README.md @@ -0,0 +1,97 @@ +# Particles API + +## Simple particle effect + +```cpp + +#include +#include + +#include + +new const g_szParticleModel[] = "sprites/muz4.spr"; + +public plugin_precache() { + precache_model(g_szParticleModel); + + Particles_RegisterEffect("test", 0.1, 1.0, 10, "@Particle_Init", "@Particle_Transform"); +} + +public plugin_init() { + register_plugin("[Particle Effect] Test", "1.0.0", "Hedgehog Fog"); +} + +public @Particle_Init(Particle:this) { + // Getting entity from the particle pointer + + static pEntity; pEntity = Particles_Particle_GetEntity(this); + + static iModelIndex; iModelIndex = engfunc(EngFunc_ModelIndex, g_szParticleModel); + + set_pev(pEntity, pev_rendermode, kRenderTransAdd); + set_pev(pEntity, pev_renderamt, 160.0); + set_pev(pEntity, pev_scale, 0.2); + set_pev(pEntity, pev_modelindex, iModelIndex); + + // Random Color + static Float:rgflColor[3]; + rgflColor[0] = random_float(50.0, 255.0); + rgflColor[1] = random_float(50.0, 255.0); + rgflColor[2] = random_float(50.0, 255.0); + + set_pev(pEntity, pev_rendercolor, rgflColor); +} + +public @Particle_Transform(Particle:this) { + // Getting entity from the particle pointer + + static pEntity; pEntity = Particles_Particle_GetEntity(this); + + // Time Ratio Calculation + + static Float:flGameTime; flGameTime = get_gametime(); + static Float:flCreatedTime; flCreatedTime = Particles_Particle_GetCreatedTime(this); + static Float:flKillTime; flKillTime = Particles_Particle_GetKillTime(this); + static Float:flTimeRatio; flTimeRatio = (flGameTime - flCreatedTime) / (flKillTime - flCreatedTime); + + // Random Velocity + + static Float:flMinNoise; flMinNoise = 80.0; + static Float:flMaxNoise; flMaxNoise = flMinNoise + (64.0 * flTimeRatio); + + static Float:vecVelocity[3]; + vecVelocity[0] = random_float(flMinNoise, flMaxNoise) * (random(2) ? -1 : 1); + vecVelocity[1] = random_float(flMinNoise, flMaxNoise) * (random(2) ? -1 : 1); + vecVelocity[2] = 32.0; + + set_pev(pEntity, pev_velocity, vecVelocity); + + // Fade Out effect + + static Float:flRenderAmt; flRenderAmt = 160.0; + if (flTimeRatio <= 0.25) { + flRenderAmt *= flTimeRatio / 0.25; + } else if (flTimeRatio > 0.75) { + flRenderAmt *= (1.0 - flTimeRatio) / 0.25; + } + + set_pev(pEntity, pev_renderamt, flRenderAmt); +} + +``` + +## Spawning the particle effect + +```cpp +new ParticleSystem:g_sParticleSystem; + +public SpawnTestParticleEffect() { + g_sParticleSystem = Particles_ParticleSystem_Create("test", vecOrigin); + Particles_ParticleSystem_Activate(g_sParticleSystem); +} + +public RemoveParticleEffect() { + Particles_ParticleSystem_Destroy(g_sParticleSystem); +} + +``` From bf622526f3d4e755d1385972b282a4f99d55f50d Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 14 Nov 2023 19:41:59 +0200 Subject: [PATCH 101/231] update particles api --- api/particles/api_particles.sma | 205 ++++++++++++++++-------- api/particles/include/api_particles.inc | 97 ++++++++--- 2 files changed, 218 insertions(+), 84 deletions(-) diff --git a/api/particles/api_particles.sma b/api/particles/api_particles.sma index 9b13e8e..430d3f2 100644 --- a/api/particles/api_particles.sma +++ b/api/particles/api_particles.sma @@ -33,18 +33,18 @@ enum ParticleEffect { enum ParticleSystem { Struct:ParticleSystem_Effect, + bool:ParticleSystem_Active, Float:ParticleSystem_Origin[3], Float:ParticleSystem_Angles[3], ParticleSystem_ParentEntity, - Array:ParticleSystem_Particles, + Float:ParticleSystem_CreatedTime, + ParticleSystem_VisibilityBits, Float:ParticleSystem_KillTime, + Array:ParticleSystem_Particles, Float:ParticleSystem_NextEmit, - bool:ParticleSystem_Active, - Float:ParticleSystem_CreatedTime, Float:ParticleSystem_NextVisibilityUpdate, Float:ParticleSystem_LasOrigin[3], - Float:ParticleSystem_LastUpdate, - ParticleSystem_VisibilityBits + Float:ParticleSystem_LastUpdate }; enum Particle { @@ -81,20 +81,29 @@ public plugin_init() { public plugin_natives() { register_library("api_particles"); - register_native("Particles_RegisterEffect", "Native_RegisterParticleEffect"); - register_native("Particles_GetParticle", "Native_GetParticle"); - register_native("Particles_ParticleSystem_Create", "Native_CreateParticleSystem"); - register_native("Particles_ParticleSystem_Destroy", "Native_DestroyParticleSystem"); - register_native("Particles_ParticleSystem_Activate", "Native_ActivateParticleSystem"); - register_native("Particles_ParticleSystem_Deactivate", "Native_DeactivateParticleSystem"); - register_native("Particles_ParticleSystem_GetCreatedTime", "Native_GetParticleSystemCreatedTime"); - register_native("Particles_ParticleSystem_GetKillTime", "Native_GetParticleSystemKillTime"); - register_native("Particles_ParticleSystem_GetLastUpdate", "Native_GetParticleSystemGetLastUpdate"); - register_native("Particles_ParticleSystem_GetVisibilityBits", "Native_GetParticleSystemGetVisibilityBits"); - register_native("Particles_Particle_GetEntity", "Native_GetParticleEntity"); - register_native("Particles_Particle_GetSystem", "Native_GetParticleSystem"); - register_native("Particles_Particle_GetKillTime", "Native_GetParticleKillTime"); - register_native("Particles_Particle_GetCreatedTime", "Native_GetParticleCreatedTime"); + + register_native("RegisterParticleEffect", "Native_RegisterParticleEffect"); + + register_native("ParticleSystem_Create", "Native_CreateParticleSystem"); + register_native("ParticleSystem_Destroy", "Native_DestroyParticleSystem"); + register_native("ParticleSystem_Activate", "Native_ActivateParticleSystem"); + register_native("ParticleSystem_Deactivate", "Native_DeactivateParticleSystem"); + register_native("ParticleSystem_GetCreatedTime", "Native_GetParticleSystemCreatedTime"); + register_native("ParticleSystem_GetKillTime", "Native_GetParticleSystemKillTime"); + register_native("ParticleSystem_GetLastUpdateTime", "Native_GetParticleSystemLastUpdate"); + register_native("ParticleSystem_GetVisibilityBits", "Native_GetParticleSystemVisibilityBits"); + register_native("ParticleSystem_GetOrigin", "Native_GetParticleSystemOrigin"); + register_native("ParticleSystem_SetOrigin", "Native_SetParticleSystemOrigin"); + register_native("ParticleSystem_GetParentEntity", "Native_GetParticleSystemParentEntity"); + register_native("ParticleSystem_SetParentEntity", "Native_SetParticleSystemParentEntity"); + register_native("ParticleSystem_GetEffect", "Native_GetParticleSystemEffect"); + register_native("ParticleSystem_SetEffect", "Native_SetParticleSystemEffect"); + + register_native("Particle_GetEntity", "Native_GetParticleEntity"); + register_native("Particle_GetSystem", "Native_GetParticleSystem"); + register_native("Particle_GetCreatedTime", "Native_GetParticleCreatedTime"); + register_native("Particle_GetKillTime", "Native_GetParticleKillTime"); + register_native("Particle_GetLastTransformTime", "Native_GetParticleLastTransformTime"); } public plugin_end() { @@ -115,11 +124,12 @@ public plugin_end() { public Native_RegisterParticleEffect(iPluginId, iArgc) { new szName[32]; get_string(1, szName, charsmax(szName)); - new Float:flEmitRate = get_param_f(2); - new Float:flParticleLifeTime = get_param_f(3); - new iMaxParticles = get_param(4); - new szInitFunction[64]; get_string(5, szInitFunction, charsmax(szInitFunction)); - new szTransformFunction[64]; get_string(6, szTransformFunction, charsmax(szTransformFunction)); + new szInitFunction[64]; get_string(2, szInitFunction, charsmax(szInitFunction)); + new szTransformFunction[64]; get_string(3, szTransformFunction, charsmax(szTransformFunction)); + new Float:flEmitRate = get_param_f(4); + new Float:flParticleLifeTime = get_param_f(5); + new Float:flVisibilityDistance = get_param_f(6); + new iMaxParticles = get_param(7); if (TrieKeyExists(g_tParticleEffects, szName)) { log_error(AMX_ERR_NATIVE, "Particle effect ^"%s^" is already registered.", szName); @@ -129,100 +139,151 @@ public Native_RegisterParticleEffect(iPluginId, iArgc) { new iInitFunctionId = get_func_id(szInitFunction, iPluginId); new iTransformFunctionId = get_func_id(szTransformFunction, iPluginId); - new Struct:sEffect = @ParticleEffect_Create(szName, flEmitRate, flParticleLifeTime, iMaxParticles, iPluginId, iInitFunctionId, iTransformFunctionId); + new Struct:sEffect = @ParticleEffect_Create(szName, flEmitRate, flParticleLifeTime, flVisibilityDistance, iMaxParticles, iPluginId, iInitFunctionId, iTransformFunctionId); TrieSetCell(g_tParticleEffects, szName, sEffect); } public Struct:Native_CreateParticleSystem(iPluginId, iArgc) { - static szName[32]; get_string(1, szName, charsmax(szName)); - static Float:vecOrigin[3]; get_array_f(2, vecOrigin, sizeof(vecOrigin)); - static Float:vecAngles[3]; get_array_f(3, vecAngles, sizeof(vecAngles)); - static pParent; pParent = get_param(4); + new szName[32]; get_string(1, szName, charsmax(szName)); + new Float:vecOrigin[3]; get_array_f(2, vecOrigin, sizeof(vecOrigin)); + new Float:vecAngles[3]; get_array_f(3, vecAngles, sizeof(vecAngles)); + new pParent; pParent = get_param(4); - static Struct:sEffect; + new Struct:sEffect; if (!TrieGetCell(g_tParticleEffects, szName, sEffect)) { log_error(AMX_ERR_NATIVE, "[Particles] Effect ^"%s^" is not registered!", szName); return Invalid_Struct; } - static Struct:sSystem; sSystem = @ParticleSystem_Create(sEffect, vecOrigin, vecAngles, pParent); + new Struct:sSystem; sSystem = @ParticleSystem_Create(sEffect, vecOrigin, vecAngles, pParent); return sSystem; } -public Struct:Native_GetParticle(iPluginId, iArgc) { - static pParticle; pParticle = get_param(1); +public Native_DestroyParticleSystem(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + StructSetCell(sSystem, ParticleSystem_KillTime, get_gametime()); - return Struct:pev(pParticle, pev_iuser1); + set_param_byref(1, _:Invalid_Struct); } -public Struct:Native_GetParticleEntity(iPluginId, iArgc) { - static Struct:sParticle; sParticle = Struct:get_param_byref(1); +public Float:Native_ActivateParticleSystem(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - return StructGetCell(sParticle, Particle_Entity); + StructSetCell(sSystem, ParticleSystem_Active, true); } -public Struct:Native_GetParticleSystem(iPluginId, iArgc) { - static Struct:sParticle; sParticle = Struct:get_param_byref(1); +public Float:Native_DeactivateParticleSystem(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - return StructGetCell(sParticle, Particle_System); + StructSetCell(sSystem, ParticleSystem_Active, false); } -public Float:Native_GetParticleCreatedTime(iPluginId, iArgc) { - static Struct:sParticle; sParticle = Struct:get_param_byref(1); +public Float:Native_GetParticleSystemCreatedTime(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - return Float:StructGetCell(sParticle, Particle_CreatedTime); + return Float:StructGetCell(sSystem, ParticleSystem_CreatedTime); } -public Float:Native_GetParticleKillTime(iPluginId, iArgc) { - static Struct:sParticle; sParticle = Struct:get_param_byref(1); +public Float:Native_GetParticleSystemKillTime(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - return Float:StructGetCell(sParticle, Particle_KillTime); + return Float:StructGetCell(sSystem, ParticleSystem_KillTime); } -public Native_DestroyParticleSystem(iPluginId, iArgc) { +public Native_GetParticleSystemLastUpdate(iPluginId, iArgc) { static Struct:sSystem; sSystem = Struct:get_param_byref(1); - StructSetCell(sSystem, ParticleSystem_KillTime, get_gametime()); - - set_param_byref(1, _:Invalid_Struct); + return StructGetCell(sSystem, ParticleSystem_LastUpdate); } -public Float:Native_ActivateParticleSystem(iPluginId, iArgc) { +public Native_GetParticleSystemVisibilityBits(iPluginId, iArgc) { static Struct:sSystem; sSystem = Struct:get_param_byref(1); - StructSetCell(sSystem, ParticleSystem_Active, true); + return StructGetCell(sSystem, ParticleSystem_VisibilityBits); } -public Float:Native_DeactivateParticleSystem(iPluginId, iArgc) { +public Native_GetParticleSystemOrigin(iPluginId, iArgc) { static Struct:sSystem; sSystem = Struct:get_param_byref(1); - StructSetCell(sSystem, ParticleSystem_Active, false); + static Float:vecOrigin[3]; StructGetArray(sSystem, ParticleSystem_Origin, vecOrigin, 3); + + set_array_f(2, vecOrigin, sizeof(vecOrigin)); } -public Float:Native_GetParticleSystemCreatedTime(iPluginId, iArgc) { +public Native_SetParticleSystemOrigin(iPluginId, iArgc) { static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static Float:vecOrigin[3]; get_array_f(2, vecOrigin, sizeof(vecOrigin)); - return Float:StructGetCell(sSystem, ParticleSystem_CreatedTime); + StructSetArray(sSystem, ParticleSystem_Origin, vecOrigin, 3); } -public Float:Native_GetParticleSystemKillTime(iPluginId, iArgc) { +public Native_GetParticleSystemParentEntity(iPluginId, iArgc) { static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + return StructGetCell(sSystem, ParticleSystem_ParentEntity); +} - return Float:StructGetCell(sSystem, ParticleSystem_KillTime); +public Native_SetParticleSystemParentEntity(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static pParent; pParent = get_param(2); + + StructSetCell(sSystem, ParticleSystem_ParentEntity, pParent); } -public Native_GetParticleSystemGetLastUpdate(iPluginId, iArgc) { +public Native_GetParticleSystemEffect(iPluginId, iArgc) { static Struct:sSystem; sSystem = Struct:get_param_byref(1); - return StructGetCell(sSystem, ParticleSystem_LastUpdate); + static Struct:sEffect; sEffect = StructGetCell(sSystem, ParticleSystem_Effect); + + static szName[32]; StructGetString(sEffect, ParticleEffect_Id, szName, charsmax(szName)); + + set_string(2, szName, get_param(3)); } -public Native_GetParticleSystemGetVisibilityBits(iPluginId, iArgc) { +public Native_SetParticleSystemEffect(iPluginId, iArgc) { static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static szName[32]; get_string(2, szName, charsmax(szName)); - return StructGetCell(sSystem, ParticleSystem_VisibilityBits); + static Struct:sEffect; + if (!TrieGetCell(g_tParticleEffects, szName, sEffect)) { + log_error(AMX_ERR_NATIVE, "[Particles] Effect ^"%s^" is not registered!", szName); + return; + } + + StructSetCell(sSystem, ParticleSystem_Effect, sEffect); +} + +public Struct:Native_GetParticleEntity(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + return StructGetCell(sParticle, Particle_Entity); +} + +public Struct:Native_GetParticleSystem(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + return StructGetCell(sParticle, Particle_System); +} + +public Float:Native_GetParticleCreatedTime(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + return Float:StructGetCell(sParticle, Particle_CreatedTime); +} + +public Float:Native_GetParticleKillTime(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + return Float:StructGetCell(sParticle, Particle_KillTime); +} + +public Float:Native_GetParticleLastTransformTime(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + return Float:StructGetCell(sParticle, Particle_LastTransform); } /*--------------------------------[ Forwards ]--------------------------------*/ @@ -279,12 +340,12 @@ public FMHook_AddToFullPack(es, e, pEntity, pHost, hostflags, player, pSet) { /*--------------------------------[ ParticleEffect Methods ]--------------------------------*/ -Struct:@ParticleEffect_Create(const szName[], Float:flEmitRate, Float:flParticleLifeTime, iMaxParticles, iPluginId, iInitFunctionId, iTransformFunctionId) { +Struct:@ParticleEffect_Create(const szName[], Float:flEmitRate, Float:flParticleLifeTime, Float:flVisibilityDistance, iMaxParticles, iPluginId, iInitFunctionId, iTransformFunctionId) { static Struct:this; this = StructCreate(ParticleEffect); StructSetString(this, ParticleEffect_Id, szName); StructSetCell(this, ParticleEffect_EmitRate, flEmitRate); - StructSetCell(this, ParticleEffect_VisibilityDistance, 2048.0); + StructSetCell(this, ParticleEffect_VisibilityDistance, flVisibilityDistance); StructSetCell(this, ParticleEffect_ParticleLifeTime, flParticleLifeTime); StructSetCell(this, ParticleEffect_MaxParticles, iMaxParticles); StructSetCell(this, ParticleEffect_PluginId, iPluginId); @@ -458,10 +519,24 @@ Struct:@ParticleSystem_Create(const &Struct:sEffect, const Float:vecOrigin[3], c vecOrigin[i] += Float:StructGetCell(this, ParticleSystem_Origin, i); } } else { - StructGetArray(this, ParticleSystem_Origin, vecOrigin, sizeof(vecOrigin)); + StructGetArray(this, ParticleSystem_Origin, vecOrigin, 3); } } +@ParticleSystem_SetAbsOrigin(const &Struct:this, const Float:vecOrigin[3]) { + static Float:vecAbsOrigin[3]; + + static pParent; pParent = StructGetCell(this, ParticleSystem_ParentEntity); + if (pParent > 0) { + pev(pParent, pev_origin, vecAbsOrigin); + xs_vec_sub(vecOrigin, vecAbsOrigin, vecAbsOrigin); + } else { + xs_vec_copy(vecOrigin, vecAbsOrigin); + } + + StructSetArray(this, ParticleSystem_Origin, vecAbsOrigin, 3); +} + @ParticleSystem_UpdateVisibilityBits(const &Struct:this) { static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); diff --git a/api/particles/include/api_particles.inc b/api/particles/include/api_particles.inc index 204bb86..58aefda 100644 --- a/api/particles/include/api_particles.inc +++ b/api/particles/include/api_particles.inc @@ -15,7 +15,7 @@ * * @noreturn */ -native Particles_RegisterEffect(const szName[], Float:flEmitRate, Float:flParticleLifeTime, iMaxParticles, const szInitFunction[], const szTransformFunction[]); +native RegisterParticleEffect(const szName[], const szInitFunction[], const szTransformFunction[], Float:flEmitRate = 0.1, Float:flParticleLifeTime = 1.0, Float:flVisibilityDistance = 1024.0, iMaxParticles = 10); /** * Creates a particle system. @@ -27,7 +27,7 @@ native Particles_RegisterEffect(const szName[], Float:flEmitRate, Float:flPartic * * @return The particle system structure pointer. */ -native ParticleSystem:Particles_ParticleSystem_Create(const szEffect[], const Float:vecOrigin[3] = {0.0, 0.0, 0.0}, const Float:vecAngles[3] = {0.0, 0.0, 0.0}, pParent = 0); +native ParticleSystem:ParticleSystem_Create(const szEffect[], const Float:vecOrigin[3] = {0.0, 0.0, 0.0}, const Float:vecAngles[3] = {0.0, 0.0, 0.0}, pParent = 0); /** * Destroys the particle system. @@ -36,7 +36,7 @@ native ParticleSystem:Particles_ParticleSystem_Create(const szEffect[], const Fl * * @noreturn */ -native ParticleSystem:Particles_ParticleSystem_Destroy(&ParticleSystem:sSystem); +native ParticleSystem_Destroy(&ParticleSystem:sSystem); /** * Activates the particle system. @@ -45,7 +45,7 @@ native ParticleSystem:Particles_ParticleSystem_Destroy(&ParticleSystem:sSystem); * * @noreturn */ -native Particles_ParticleSystem_Activate(const &ParticleSystem:sSystem); +native ParticleSystem_Activate(const &ParticleSystem:sSystem); /** * Deactivates the particle system. @@ -54,7 +54,7 @@ native Particles_ParticleSystem_Activate(const &ParticleSystem:sSystem); * * @noreturn */ -native Particles_ParticleSystem_Deactivate(const &ParticleSystem:sSystem); +native ParticleSystem_Deactivate(const &ParticleSystem:sSystem); /** * Retrieves the time at which a particle system was created. @@ -63,7 +63,7 @@ native Particles_ParticleSystem_Deactivate(const &ParticleSystem:sSystem); * * @return The creation time of the particle system. */ -native Float:Particles_ParticleSystem_GetCreatedTime(const &ParticleSystem:sSystem); +native Float:ParticleSystem_GetCreatedTime(const &ParticleSystem:sSystem); /** * Retrieves the time at which a particle system will killed. @@ -72,7 +72,7 @@ native Float:Particles_ParticleSystem_GetCreatedTime(const &ParticleSystem:sSyst * * @return The kill time of the particle system. */ -native Float:Particles_ParticleSystem_GetKillTime(const &ParticleSystem:sSystem); +native Float:ParticleSystem_GetKillTime(const &ParticleSystem:sSystem); /** * Retrieves the last time a particle system was updated. @@ -81,7 +81,7 @@ native Float:Particles_ParticleSystem_GetKillTime(const &ParticleSystem:sSystem) * * @return The last update time of the particle system. */ -native Float:Particles_ParticleSystem_GetLastUpdate(const &ParticleSystem:sSystem); +native Float:ParticleSystem_GetLastUpdateTime(const &ParticleSystem:sSystem); /** * Retrieves the visibility bits of a particle. @@ -90,16 +90,66 @@ native Float:Particles_ParticleSystem_GetLastUpdate(const &ParticleSystem:sSyste * * @return The visibility bits of the particle system. */ -native Float:Particles_ParticleSystem_GetVisibilityBits(const &ParticleSystem:sSystem); +native Float:ParticleSystem_GetVisibilityBits(const &ParticleSystem:sSystem); /** - * Gets particle pointer by entity. + * Retrieves the origin of the particle system. * - * @param pEntity The particle entity. + * @param sSystem The particle system structure pointer. + * @param vecOut The vector to set. + * + * @noreturn + */ +native ParticleSystem_GetOrigin(const &ParticleSystem:sSystem, const vecOut[]); + +/** + * Sets the origin of the particle system. + * + * @param sSystem The particle system structure pointer. + * @param vecOrigin The origin vector. + * + * @noreturn + */ +native ParticleSystem_SetOrigin(const &ParticleSystem:sSystem, const Float:vecOrigin[3]); + +/** + * Retrieves the parent entity of the particle system. + * @param sSystem The particle system structure pointer. + * @param pParent The parent entity. + * + * @noreturn + */ +native ParticleSystem_GetParentEntity(const &ParticleSystem:sSystem, pParent); + +/** + * Sets the parent entity of the particle system. + * + * @param sSystem The particle system structure pointer. + * + * @return The parent entity. + */ +native ParticleSystem_SetParentEntity(const &ParticleSystem:sSystem); + +/** + * Retrieves the effect name of the particle system. * - * @return The particle pointer. + * @param sSystem The particle system structure pointer. + * @param szOut The buffer to copy the value. + * @param iMaxLen Maximum size of buffer. + * + * @noreturn */ -native Particle:Particles_GetParticle(pEntity); +native ParticleSystem_GetEffect(const &ParticleSystem:sSystem, szOut[], iMaxLen); + +/** + * Sets the effect of the particle system. + * + * @param sSystem The particle system structure pointer. + * @param szName The name of the particle effect. + * + * @noreturn + */ +native ParticleSystem_SetEffect(const &ParticleSystem:sSystem, const szName[]); /** * Gets particle entity by particle pointer. @@ -108,7 +158,16 @@ native Particle:Particles_GetParticle(pEntity); * * @return The entity of the particle. */ -native Particles_Particle_GetEntity(const &Particle:sParticle); +native Particle_GetEntity(const &Particle:sParticle); + +/** + * Gets particle system pointer by particle pointer. + * + * @param sParticle The particle pointer. + * + * @return The particle system pointer. + */ +native ParticleSystem:Particle_GetSystem(const &Particle:sParticle); /** * Retrieves the time at which a particle was created. @@ -117,7 +176,7 @@ native Particles_Particle_GetEntity(const &Particle:sParticle); * * @return The creation time of the particle. */ -native Float:Particles_Particle_GetCreatedTime(const &Particle:sParticle); +native Float:Particle_GetCreatedTime(const &Particle:sParticle); /** * Retrieves the time at which a particle will killed. @@ -126,13 +185,13 @@ native Float:Particles_Particle_GetCreatedTime(const &Particle:sParticle); * * @return The kill time of the particle. */ -native Float:Particles_Particle_GetKillTime(const &Particle:sParticle); +native Float:Particle_GetKillTime(const &Particle:sParticle); /** - * Gets particle system pointer by particle pointer. + * Retrieves the time at which a particle was transformed last. * * @param sParticle The particle pointer. * - * @return The particle system pointer. + * @return The last transform time of the particle. */ -native ParticleSystem:Particles_Particle_GetSystem(const &Particle:sParticle); +native Float:Particle_GetLastTransformTime(const &Particle:sParticle); From f411c3034697f7e17f2aca76c65ca53ede3af8c4 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 15 Nov 2023 14:23:14 +0200 Subject: [PATCH 102/231] Update entity_fire.sma --- entities/entity_fire.sma | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index 8a1250c..e9119ba 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -1,3 +1,8 @@ +/* + Credits: + georgik57 aka D7 - for the code the fire effect is based on. +*/ + #pragma semicolon 1 #include From aee0f081866e488e9bd3e9d264cae7ec8b635a6f Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 16 Nov 2023 21:08:37 +0200 Subject: [PATCH 103/231] fix movetype --- api/waypoint-markers/api_waypoint_markers.sma | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api/waypoint-markers/api_waypoint_markers.sma b/api/waypoint-markers/api_waypoint_markers.sma index c679c54..4e31b59 100644 --- a/api/waypoint-markers/api_waypoint_markers.sma +++ b/api/waypoint-markers/api_waypoint_markers.sma @@ -166,6 +166,8 @@ public FMHook_AddToFullPack_Post(es, e, pEntity, pHost, pHostFlags, iPlayer, pSe set_es(es, ES_Origin, vecOrigin); set_es(es, ES_Angles, vecAngles); set_es(es, ES_Scale, flScale); + set_es(es, ES_AimEnt, 0); + set_es(es, ES_MoveType, MOVETYPE_NONE); } return FMRES_HANDLED; From 7b3d62494c6269a95f1eca2e36c8a790bbfbf544 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 17 Nov 2023 00:06:15 +0200 Subject: [PATCH 104/231] fix marker destroy --- api/waypoint-markers/api_waypoint_markers.sma | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api/waypoint-markers/api_waypoint_markers.sma b/api/waypoint-markers/api_waypoint_markers.sma index 4e31b59..ada7c61 100644 --- a/api/waypoint-markers/api_waypoint_markers.sma +++ b/api/waypoint-markers/api_waypoint_markers.sma @@ -234,6 +234,11 @@ public FMHook_OnFreeEntPrivateData(pEntity) { } ArrayDestroy(irgsPlayersData); + + new iGlobalId = ArrayFindValue(g_irgpMarkers, this); + if (iGlobalId != -1) { + ArrayDeleteItem(g_irgpMarkers, iGlobalId); + } } @Marker_SetVisible(this, pPlayer, bool:bValue) { From ccdee4ca21fc8d153e789950291bf194549ffade Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 17 Nov 2023 16:08:44 +0200 Subject: [PATCH 105/231] fix sprite check --- entities/entity_fire.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index e9119ba..c708692 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -334,7 +334,7 @@ public plugin_end() { static bool:bIsBspModel; bIsBspModel = szModel[0] == '*'; static bool:bHasModel; bHasModel = !!pev(pAimEnt, pev_modelindex); - static bool:bIsSprite; bIsSprite = iModelStrLen > 5 && equal(szModel[iModelStrLen - 5], ".spr"); + static bool:bIsSprite; bIsSprite = iModelStrLen > 4 && equal(szModel[iModelStrLen - 4], ".spr"); if (!bHasModel || bIsBspModel || bIsSprite) { pev(pAimEnt, pev_mins, vecMins); From 5f275ab3bf487b019febe3d905b92995b9426c09 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 19 Nov 2023 09:08:24 +0200 Subject: [PATCH 106/231] add custom rounds api for Half-Life --- api/rounds/api_rounds.sma | 611 ++++++++++++++++++++++++++++++++------ 1 file changed, 526 insertions(+), 85 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index f62a18d..52f1527 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -1,7 +1,13 @@ #pragma semicolon 1 #include -#include +#include +#include +#tryinclude + +#if !defined USE_CUSTOM_ROUNDS + #define USE_CUSTOM_ROUNDS +#endif enum GameState { GameState_NewRound, @@ -26,14 +32,51 @@ new g_iFwCheckWinConditions; new g_pCvarRoundEndDelay; +#if defined USE_CUSTOM_ROUNDS + new g_pCvarRoundTime; + new g_pCvarFreezeTime; + new g_pCvarMaxRounds; + new g_pCvarWinLimits; + new g_pCvarRestartRound; + new g_pCvarRestart; +#endif + +#if defined USE_CUSTOM_ROUNDS + new g_iIntroRoundTime; + new g_iPlayersNum = 0; + new g_iRoundWinStatus = 0; + new bool:g_bFreezePeriod = false; + new g_iRoundTime = 0; + new g_iRoundTimeSecs = 0; + new Float:g_fRoundStartTime = 0.0; + new Float:g_fRoundStartTimeReal = 0.0; + new Float:g_flRestartRoundTime = 0.0; + new Float:g_tmNextPeriodicThink = 0.0; + new bool:g_bGameStarted = false; + // new g_bRoundTerminating = false; + new g_iTotalRoundsPlayed = 0; + new g_iMaxRounds = 0; + new g_iMaxRoundsWon = 0; + new bool:g_bCompleteReset = false; + new g_rgiWinsNum[16]; + // new bool:g_bNeededPlayers = false; +#endif + public plugin_init() { register_plugin("[API] Rounds", "2.1.0", "Hedgehog Fog"); - register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0"); - RegisterHookChain(RG_CSGameRules_RestartRound, "HC_RestartRound", .post = 0); - RegisterHookChain(RG_CSGameRules_OnRoundFreezeEnd, "HC_OnRoundFreezeEnd_Post", .post = 1); - RegisterHookChain(RG_RoundEnd, "HC_RoundEnd", .post = 1); - RegisterHookChain(RG_CSGameRules_CheckWinConditions, "HC_CheckWinConditions", .post = 0); + #if !defined USE_CUSTOM_ROUNDS + register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0"); + RegisterHookChain(RG_CSGameRules_RestartRound, "HC_RestartRound", .post = 0); + RegisterHookChain(RG_CSGameRules_OnRoundFreezeEnd, "HC_OnRoundFreezeEnd_Post", .post = 1); + RegisterHookChain(RG_RoundEnd, "HC_RoundEnd", .post = 1); + RegisterHookChain(RG_CSGameRules_CheckWinConditions, "HC_CheckWinConditions", .post = 0); + #endif + + #if defined USE_CUSTOM_ROUNDS + RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); + RegisterHamPlayer(Ham_Killed, "HamHook_Player_Killed_Post", .Post = 1); + #endif g_iFwNewRound = CreateMultiForward("Round_Fw_NewRound", ET_IGNORE); g_iFwRoundStart = CreateMultiForward("Round_Fw_RoundStart", ET_IGNORE); @@ -43,6 +86,25 @@ public plugin_init() { g_iFwRoundTimerTick = CreateMultiForward("Round_Fw_RoundTimerTick", ET_IGNORE); g_iFwCheckWinConditions = CreateMultiForward("Round_Fw_CheckWinConditions", ET_STOP); + #if defined USE_CUSTOM_ROUNDS + if (!cvar_exists("mp_freezetime")) register_cvar("mp_freezetime", "6.0"); + if (!cvar_exists("mp_roundtime")) register_cvar("mp_roundtime", "5.0"); + if (!cvar_exists("mp_round_restart_delay")) register_cvar("mp_round_restart_delay", "5.0"); + if (!cvar_exists("mp_maxrounds")) register_cvar("mp_maxrounds", "0"); + if (!cvar_exists("mp_winlimit")) register_cvar("mp_winlimit", "0"); + if (!cvar_exists("sv_restart")) register_cvar("sv_restart", "0"); + if (!cvar_exists("sv_restartround")) register_cvar("sv_restartround", "0"); + + g_pCvarRoundTime = get_cvar_pointer("mp_roundtime"); + g_pCvarFreezeTime = get_cvar_pointer("mp_freezetime"); + g_pCvarMaxRounds = get_cvar_pointer("mp_maxrounds"); + g_pCvarWinLimits = get_cvar_pointer("mp_winlimit"); + g_pCvarRestartRound = get_cvar_pointer("sv_restartround"); + g_pCvarRestart = get_cvar_pointer("sv_restart"); + + ReadMultiplayCvars(); + #endif + g_pCvarRoundEndDelay = get_cvar_pointer("mp_round_restart_delay"); } @@ -54,81 +116,119 @@ public plugin_natives() { register_native("Round_GetTimeLeft", "Native_GetTimeLeft"); register_native("Round_IsRoundStarted", "Native_IsRoundStarted"); register_native("Round_IsRoundEnd", "Native_IsRoundEnd"); + register_native("Round_CheckWinConditions", "Native_CheckWinConditions"); } -public server_frame() { - static Float:flTime; - flTime = get_gametime(); +#if defined USE_CUSTOM_ROUNDS + public client_putinserver() { + g_iPlayersNum++; - static Float:flNextPeriodicThink; - flNextPeriodicThink = get_member_game(m_tmNextPeriodicThink); + if (g_iPlayersNum == 1) { + RestartRound(); + } + } - if (flNextPeriodicThink < flTime) { - static bool:bFreezePeriod; - bFreezePeriod = get_member_game(m_bFreezePeriod); + public client_disconnected() { + g_iPlayersNum--; - ExecuteForward(g_iFwRoundTimerTick); + CheckWinConditions(); + } - static iRoundTimeSecs; - iRoundTimeSecs = get_member_game(m_iRoundTimeSecs); + public HamHook_Player_Spawn_Post(pPlayer) { + if (g_bFreezePeriod) { + set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) | FL_FROZEN); + } + } - static Float:flStartTime; - flStartTime = get_member_game(m_fRoundStartTimeReal); + public HamHook_Player_Killed_Post(pPlayer) { + set_pev(pPlayer, pev_flags, ~pev(pPlayer, pev_flags) & FL_FROZEN); + CheckWinConditions(); + } +#endif + +public server_frame() { + static Float:flTime; flTime = get_gametime(); + static Float:flNextPeriodicThink; + + #if defined USE_CUSTOM_ROUNDS + flNextPeriodicThink = g_tmNextPeriodicThink; + #else + flNextPeriodicThink = get_gamerules_float("CHalfLifeMultiplay", "m_tmNextPeriodicThink"); + #endif + + #if defined USE_CUSTOM_ROUNDS + Think(); + #endif + + if (flNextPeriodicThink < flTime) { + static bool:bFreezePeriod; + static iRoundTimeSecs; + static Float:flStartTime; static Float:flEndTime; - flEndTime = flStartTime + float(iRoundTimeSecs); + + #if defined USE_CUSTOM_ROUNDS + bFreezePeriod = g_bFreezePeriod; + iRoundTimeSecs = g_iRoundTimeSecs; + flStartTime = g_fRoundStartTimeReal; + flEndTime = flStartTime + float(iRoundTimeSecs); + #else + bFreezePeriod = get_member_game(m_bFreezePeriod); + iRoundTimeSecs = get_member_game(m_iRoundTimeSecs); + flStartTime = get_member_game(m_fRoundStartTimeReal); + flEndTime = flStartTime + float(iRoundTimeSecs); + #endif + + ExecuteForward(g_iFwRoundTimerTick); if (!bFreezePeriod) { if (flTime >= flEndTime) { - ExecuteForward(g_iFwRoundExpired); + OnRoundExpired(); } } + + #if defined USE_CUSTOM_ROUNDS + g_tmNextPeriodicThink = flTime + 1.0; + #endif } } -public HC_RestartRound() { - if (!get_member_game(m_bCompleteReset)) { - // g_iGameState = GameState_NewRound; - // ExecuteForward(g_iFwNewRound); - } else { - ExecuteForward(g_iFwRoundRestart); +#if !defined USE_CUSTOM_ROUNDS + public HC_RestartRound() { + OnRestartRound(); } -} -public HC_OnRoundFreezeEnd_Post() { - g_iGameState = GameState_RoundStarted; - ExecuteForward(g_iFwRoundStart); -} + public HC_OnRoundFreezeEnd_Post() { + OnEndFreezePeriod(); + } -public Event_NewRound() { - g_iGameState = GameState_NewRound; - ExecuteForward(g_iFwNewRound); -} + public Event_NewRound() { + OnNewRound(); + } -public HC_RoundEnd(WinStatus:iStatus, ScenarioEventEndRound:iEvent, Float:flDelay) { - new TeamName:iWinTeam = TEAM_UNASSIGNED; + public HC_RoundEnd(WinStatus:iStatus, ScenarioEventEndRound:iEvent, Float:flDelay) { + new iTeam; - switch (iStatus) { - case WINSTATUS_TERRORISTS: iWinTeam = TEAM_TERRORIST; - case WINSTATUS_CTS: iWinTeam = TEAM_CT; - case WINSTATUS_DRAW: iWinTeam = TEAM_SPECTATOR; - } + switch (iStatus) { + case WINSTATUS_CTS: iTeam = 1; + case WINSTATUS_TERRORISTS: iTeam = 2; + case WINSTATUS_DRAW: iTeam = 3; + } - g_iGameState = GameState_RoundEnd; + OnRoundEnd(iTeam); + } - ExecuteForward(g_iFwRoundEnd, _, _:iWinTeam); -} + public HC_CheckWinConditions() { + static iReturn; -public HC_CheckWinConditions() { - static iReturn; + ExecuteForward(g_iFwCheckWinConditions, iReturn); + if (iReturn != PLUGIN_CONTINUE) { + return HC_SUPERCEDE; + } - ExecuteForward(g_iFwCheckWinConditions, iReturn); - if (iReturn != PLUGIN_CONTINUE) { - return HC_SUPERCEDE; + return HC_CONTINUE; } - - return HC_CONTINUE; -} +#endif public Native_DispatchWin(iPluginId, iArgc) { new iTeam = get_param(1); @@ -137,11 +237,16 @@ public Native_DispatchWin(iPluginId, iArgc) { } public Native_GetTime(iPluginId, iArgc) { - return get_member_game(m_iRoundTimeSecs); + #if defined USE_CUSTOM_ROUNDS + return g_iRoundTimeSecs; + #else + return get_member_game(m_iRoundTimeSecs); + #endif } public Native_SetTime(iPluginId, iArgc) { new iTime = get_param(1); + SetTime(iTime); } @@ -157,6 +262,14 @@ public bool:Native_IsRoundEnd(iPluginId, iArgc) { return g_iGameState == GameState_RoundEnd; } +public bool:Native_CheckWinConditions(iPluginId, iArgc) { + #if defined USE_CUSTOM_ROUNDS + CheckWinConditions(); + #else + rg_check_win_conditions(); + #endif +} + DispatchWin(iTeam, Float:flDelay = -1.0) { if (g_iGameState == GameState_RoundEnd) { return; @@ -170,47 +283,375 @@ DispatchWin(iTeam, Float:flDelay = -1.0) { flDelay = g_pCvarRoundEndDelay ? get_pcvar_float(g_pCvarRoundEndDelay) : 5.0; } - new WinStatus:iWinstatus = WINSTATUS_DRAW; - if (iTeam == 1) { - iWinstatus = WINSTATUS_TERRORISTS; - } else if (iTeam == 2) { - iWinstatus = WINSTATUS_CTS; - } + #if !defined USE_CUSTOM_ROUNDS + new WinStatus:iWinstatus = WINSTATUS_DRAW; + if (iTeam == 1) { + iWinstatus = WINSTATUS_TERRORISTS; + } else if (iTeam == 2) { + iWinstatus = WINSTATUS_CTS; + } - new ScenarioEventEndRound:iEvent = ROUND_END_DRAW; - if (iTeam == 1) { - iEvent = ROUND_TERRORISTS_WIN; - } else if (iTeam == 2) { - iEvent = ROUND_CTS_WIN; - } + new ScenarioEventEndRound:iEvent = ROUND_END_DRAW; + if (iTeam == 1) { + iEvent = ROUND_TERRORISTS_WIN; + } else if (iTeam == 2) { + iEvent = ROUND_CTS_WIN; + } + + rg_round_end(flDelay, iWinstatus, iEvent, _, _, true); + #else + EndRound(flDelay, iTeam); + #endif - rg_round_end(flDelay, iWinstatus, iEvent, _, _, true); - rg_update_teamscores(iTeam == 2 ? 1 : 0, iTeam == 1 ? 1 : 0); + UpdateTeamScores(iTeam == 1 ? 1 : 0, iTeam == 2 ? 1 : 0); } SetTime(iTime) { - new Float:flStartTime = get_member_game(m_fRoundStartTimeReal); - - set_member_game(m_iRoundTime, iTime); - set_member_game(m_iRoundTimeSecs, iTime); - set_member_game(m_fRoundStartTime, flStartTime); - - UpdateTimer(0, GetTimeLeft()); + #if defined USE_CUSTOM_ROUNDS + g_iRoundTime = iTime; + g_iRoundTimeSecs = iTime; + g_fRoundStartTime = g_fRoundStartTimeReal; + #else + new flStartTime = get_member_game(m_fRoundStartTimeReal); + set_member_game(m_iRoundTime, iTime); + set_member_game(m_iRoundTimeSecs, iTime); + set_member_game(m_fRoundStartTime, flStartTime); + + UpdateTimer(0, GetTimeLeft()); + #endif } GetTimeLeft() { - new Float:flStartTime = get_member_game(m_fRoundStartTimeReal); - new iTime = get_member_game(m_iRoundTimeSecs); + #if defined USE_CUSTOM_ROUNDS + new Float:flStartTime = g_fRoundStartTimeReal; + new iTime = g_iRoundTimeSecs; + #else + new Float:flStartTime = get_member_game(m_fRoundStartTimeReal); + new iTime = get_member_game(m_iRoundTimeSecs); + #endif + return floatround(flStartTime + float(iTime) - get_gametime()); } -UpdateTimer(iClient, iTime) { - static iMsgId = 0; - if(!iMsgId) { - iMsgId = get_user_msgid("RoundTime"); +#if !defined USE_CUSTOM_ROUNDS + UpdateTimer(iClient, iTime) { + static iMsgId = 0; + if(!iMsgId) { + iMsgId = get_user_msgid("RoundTime"); + } + + message_begin(iClient ? MSG_ONE : MSG_ALL, iMsgId); + write_short(iTime); + message_end(); } +#endif + +UpdateTeamScores(iTeam1Wins, iTeam2Wins) { + #if defined USE_CUSTOM_ROUNDS + #pragma unused iTeam1Wins,iTeam2Wins + // TODO: Implement + #else + rg_update_teamscores(iTeam2Wins, iTeam1Wins); + #endif +} + +#if defined USE_CUSTOM_ROUNDS + EndRound(const Float:flDelay, iTeam, const szMessage[] = "") { + EndRoundMessage(szMessage); + TerminateRound(flDelay, iTeam); + } + + CheckWinConditions() { + static iReturn; + + ExecuteForward(g_iFwCheckWinConditions, iReturn); + + if (iReturn != PLUGIN_CONTINUE) { + return; + } + + if (g_bGameStarted && g_iRoundWinStatus != 0) { + return; + } + + // g_bNeededPlayers = false; + NeededPlayersCheck(); + + // #if defined USE_CUSTOM_ROUNDS + // if (g_bGameStarted && g_iRoundWinStatus != WINSTATUS_NONE) return; + + // if (g_iRoundWinStatus && g_fRoundEndTimeReal <= get_gametime()) { + // OnNewRound(); + // } + // #endif + } + + RestartRound() { + if (!g_bCompleteReset) { + g_iTotalRoundsPlayed++; + // g_iGameState = GameState_NewRound; + // ExecuteForward(g_iFwNewRound); + } + + if (g_bCompleteReset) { + g_iTotalRoundsPlayed = 0; + g_iMaxRounds = max(get_pcvar_num(g_pCvarMaxRounds), 0); + g_iMaxRoundsWon = max(get_pcvar_num(g_pCvarWinLimits), 0); + + for (new i = 0; i < sizeof(g_rgiWinsNum); ++i) { + g_rgiWinsNum[i] = 0; + } + } + + OnRestartRound(); + + g_bFreezePeriod = true; + // g_bRoundTerminating = false; + + ReadMultiplayCvars(); + + g_iRoundTimeSecs = g_iIntroRoundTime; + + g_fRoundStartTime = g_fRoundStartTimeReal = get_gametime(); + + CleanUpMap(); + + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + if (!is_user_connected(pPlayer)) continue; + if (pev(pPlayer, pev_flags) == FL_DORMANT) continue; + + PlayerRoundRespawn(pPlayer); + } + + g_flRestartRoundTime = 0.0; + g_iRoundWinStatus = 0; + g_bCompleteReset = false; + + OnNewRound(); + } + + Think() { + if (!g_fRoundStartTime) { + g_fRoundStartTime = g_fRoundStartTimeReal = get_gametime(); + } + + // if (CheckGameOver()) return; + // if (CheckTimeLimit()) return; + // if (CheckFragLimit()) return; + if (CheckMaxRounds()) return; + if (CheckWinLimit()) return; - message_begin(iClient ? MSG_ONE : MSG_ALL, iMsgId); - write_short(iTime); - message_end(); + if (g_bFreezePeriod) { + CheckFreezePeriodExpired(); + } else { + CheckRoundTimeExpired(); + } + + if (g_flRestartRoundTime > 0.0 && g_flRestartRoundTime <= get_gametime()) { + RestartRound(); + } + + // CheckLevelInitialized(); + + static Float:flNextPeriodicThink; + + #if !defined USE_CUSTOM_ROUNDS + flNextPeriodicThink = get_gamerules_float("CHalfLifeMultiplay", "m_tmNextPeriodicThink"); + #else + flNextPeriodicThink = g_tmNextPeriodicThink; + #endif + + if (flNextPeriodicThink < get_gametime()) { + CheckRestartRound(); + // m_tmNextPeriodicThink = get_gametime() + 1.0f; + + g_iMaxRounds = get_pcvar_num(g_pCvarMaxRounds); + g_iMaxRoundsWon = get_pcvar_num(g_pCvarWinLimits); + } + } + + // CheckGameOver() {} + + bool:CheckMaxRounds() { + if (g_iMaxRounds && g_iTotalRoundsPlayed >= g_iMaxRounds) { + GoToIntermission(); + return true; + } + + return false; + } + + bool:CheckWinLimit() { + if (g_iMaxRoundsWon) { + new iMaxWins = 0; + for (new i = 0; i < sizeof(g_rgiWinsNum); ++i) { + if (g_rgiWinsNum[i] > iMaxWins) iMaxWins = g_rgiWinsNum[i]; + } + + if (iMaxWins >= g_iMaxRoundsWon) { + GoToIntermission(); + return true; + } + } + + return false; + } + + CheckFreezePeriodExpired() { + if (GetRoundRemainingTime() > 0.0) return; + + log_message("World triggered ^"Round_Start^"\n"); + + g_bFreezePeriod = false; + g_fRoundStartTimeReal = g_fRoundStartTime = get_gametime(); + g_iRoundTimeSecs = g_iRoundTime; + + // for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + // if (!is_user_connected(pPlayer)) continue; + // if (pev(pPlayer, pev_flags) == FL_DORMANT) continue; + + // if (get_ent_data(pPlayer, "CBasePlayer", "m_iJoiningState") == JOINED) { + + // } + // } + + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + set_pev(pPlayer, pev_flags, ~pev(pPlayer, pev_flags) & FL_FROZEN); + } + + OnEndFreezePeriod(); + } + + CheckRoundTimeExpired() { + if (!g_iRoundTime) { + return false; + } + + if (GetRoundRemainingTime() > 0 || g_iRoundWinStatus != 0) { + return false; + } + + // m_fRoundStartTime = get_gametime() + 60.0; + + return true; + } + + // CheckLevelInitialized() {} + + RestartRoundCheck(Float:flDelay) { + log_message("World triggered ^"Restart_Round_(%i_%s)^"^n", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "second" : "seconds"); + + // let the players know + client_print(0, print_center, "#Game_will_restart_in", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "SECOND" : "SECONDS"); + client_print(0, print_console, "#Game_will_restart_in_console", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "SECOND" : "SECONDS"); + + g_flRestartRoundTime = get_gametime() + flDelay; + g_bCompleteReset = true; + + set_pcvar_num(g_pCvarRestartRound, 0); + set_pcvar_num(g_pCvarRestart, 0); + } + + CheckRestartRound() { + new iRestartDelay = get_pcvar_num(g_pCvarRestartRound); + + if (!iRestartDelay) { + iRestartDelay = get_pcvar_num(g_pCvarRestart); + } + + if (iRestartDelay) { + RestartRoundCheck(float(iRestartDelay)); + } + } + + // FPlayerCanRespawn() { + // return true; + // } + + GoToIntermission() { + message_begin(MSG_ALL, SVC_INTERMISSION); + message_end(); + } + + PlayerRoundRespawn(pPlayer) { + #pragma unused pPlayer + } + + CleanUpMap() {} + + ReadMultiplayCvars() { + g_iRoundTime = floatround(get_pcvar_float(g_pCvarRoundTime) * 60, floatround_floor); + g_iIntroRoundTime = floatround(get_pcvar_float(g_pCvarFreezeTime), floatround_floor); + } + + NeededPlayersCheck() { + if (!g_iPlayersNum) { + // UTIL_ClientPrintAll(HUD_PRINTCONSOLE, "#Game_scoring"); + // g_bNeededPlayers = true; + g_bGameStarted = false; + } + + g_bFreezePeriod = false; + g_bCompleteReset = true; + + EndRoundMessage("#Game_Commencing"); + TerminateRound(3.0, 0); + + g_bGameStarted = true; + } + + TerminateRound(Float:flDelay, iTeam) { + g_iRoundWinStatus = iTeam; + g_flRestartRoundTime = get_gametime() + flDelay; + // g_bRoundTerminating = true; + OnRoundEnd(iTeam); + } + + EndRoundMessage(const szSentence[]) { + static szMessage[64]; + + if (szSentence[0] == '#') { + copy(szMessage, charsmax(szMessage), szSentence[1]); + } else { + copy(szMessage, charsmax(szMessage), szSentence); + } + + if (!equal(szSentence, NULL_STRING)) { + client_print(0, print_center, szSentence); + log_message("World triggered ^"%s^"^n", szMessage); + } + + log_message("World triggered ^"Round_End^"^n"); + } + + Float:GetRoundRemainingTime() { + return float(g_iRoundTimeSecs) - get_gametime() + g_fRoundStartTime; + } + + // GetRoundRemainingTimeReal() { + // return float(g_iRoundTimeSecs) - get_gametime() + g_fRoundStartTimeReal; + // } +#endif + +OnRestartRound() { + ExecuteForward(g_iFwRoundRestart); +} + +OnEndFreezePeriod() { + g_iGameState = GameState_RoundStarted; + ExecuteForward(g_iFwRoundStart); +} + +OnNewRound() { + g_iGameState = GameState_NewRound; + ExecuteForward(g_iFwNewRound); +} + +OnRoundExpired() { + ExecuteForward(g_iFwRoundExpired); +} + +OnRoundEnd(iTeam) { + g_iGameState = GameState_RoundEnd; + ExecuteForward(g_iFwRoundEnd, _, _:iTeam); } From eaf3c2f2cd5b50e815b1be08f0540470456398b9 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 19 Nov 2023 21:10:22 +0200 Subject: [PATCH 107/231] add axis lock option --- api/player-camera/api_player_camera.sma | 33 ++++++++++++++++--- .../include/api_player_camera.inc | 12 +++++++ 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/api/player-camera/api_player_camera.sma b/api/player-camera/api_player_camera.sma index f7d45d2..0bee6b5 100644 --- a/api/player-camera/api_player_camera.sma +++ b/api/player-camera/api_player_camera.sma @@ -8,7 +8,8 @@ new g_rgpPlayerCamera[MAX_PLAYERS + 1]; new Float:g_rgflPlayerCameraDistance[MAX_PLAYERS + 1]; new Float:g_rgflPlayerCameraAngles[MAX_PLAYERS + 1][3]; -new Float:g_rgflPlayerCamerOffset[MAX_PLAYERS + 1][3]; +new Float:g_rgflPlayerCameraOffset[MAX_PLAYERS + 1][3]; +new bool:g_rgbPlayerCameraAxisLock[MAX_PLAYERS + 1][3]; new Float:g_rgflPlayerCameraThinkDelay[MAX_PLAYERS + 1]; new Float:g_rgflPlayerCameraNextThink[MAX_PLAYERS + 1]; new g_pPlayerTargetEntity[MAX_PLAYERS + 1]; @@ -48,6 +49,7 @@ public plugin_natives() { register_native("PlayerCamera_SetOffset", "Native_SetOffset"); register_native("PlayerCamera_SetAngles", "Native_SetAngles"); register_native("PlayerCamera_SetDistance", "Native_SetDistance"); + register_native("PlayerCamera_SetAxisLock", "Native_SetAxisLock"); register_native("PlayerCamera_SetThinkDelay", "Native_SetThinkDelay"); register_native("PlayerCamera_SetTargetEntity", "Native_SetTargetEntity"); } @@ -95,6 +97,15 @@ public Native_SetDistance(iPluginId, iArgc) { SetCameraDistance(pPlayer, flDistance); } +public Native_SetAxisLock(iPluginId, iArgc) { + new pPlayer = get_param(1); + new bool:bLockPitch = bool:get_param(2); + new bool:bLockYaw = bool:get_param(3); + new bool:bLockRoll = bool:get_param(4); + + SetAxisLock(pPlayer, bLockPitch, bLockYaw, bLockRoll); +} + public Native_SetThinkDelay(iPluginId, iArgc) { new pPlayer = get_param(1); new Float:flThinkDelay = get_param_f(2); @@ -121,6 +132,7 @@ public client_connect(pPlayer) { g_rgpPlayerCamera[pPlayer] = -1; SetCameraTarget(pPlayer, pPlayer); SetCameraDistance(pPlayer, 200.0); + SetAxisLock(pPlayer, false, false, false); SetCameraAngles(pPlayer, Float:{0.0, 0.0, 0.0}); SetCameraOffset(pPlayer, Float:{0.0, 0.0, 0.0}); SetCameraThinkDelay(pPlayer, 0.01); @@ -166,7 +178,7 @@ DeactivatePlayerCamera(pPlayer) { } SetCameraOffset(pPlayer, const Float:vecOffset[3]) { - xs_vec_copy(vecOffset, g_rgflPlayerCamerOffset[pPlayer]); + xs_vec_copy(vecOffset, g_rgflPlayerCameraOffset[pPlayer]); } SetCameraAngles(pPlayer, const Float:vecAngles[3]) { @@ -177,6 +189,12 @@ SetCameraDistance(pPlayer, Float:flDistance) { g_rgflPlayerCameraDistance[pPlayer] = flDistance; } +SetAxisLock(pPlayer, bool:bLockPitch, bool:bLockYaw, bool:bLockRoll) { + g_rgbPlayerCameraAxisLock[pPlayer][0] = bLockPitch; + g_rgbPlayerCameraAxisLock[pPlayer][1] = bLockYaw; + g_rgbPlayerCameraAxisLock[pPlayer][2] = bLockRoll; +} + SetCameraThinkDelay(pPlayer, Float:flThinkDelay) { g_rgflPlayerCameraThinkDelay[pPlayer] = flThinkDelay; } @@ -215,11 +233,16 @@ PlayerCameraThink(pPlayer) { static Float:vecOrigin[3]; pev(g_pPlayerTargetEntity[pPlayer], pev_origin, vecOrigin); - xs_vec_add(vecOrigin, g_rgflPlayerCamerOffset[pPlayer], vecOrigin); + xs_vec_add(vecOrigin, g_rgflPlayerCameraOffset[pPlayer], vecOrigin); static Float:vecAngles[3]; - pev(g_pPlayerTargetEntity[pPlayer], pev_angles, vecAngles); - vecAngles[0] = vecAngles[2] = 0.0; + pev(g_pPlayerTargetEntity[pPlayer], pev_v_angle, vecAngles); + for (new iAxis = 0; iAxis < 3; ++iAxis) { + if (g_rgbPlayerCameraAxisLock[pPlayer][iAxis]) { + vecAngles[iAxis] = 0.0; + } + } + xs_vec_add(vecAngles, g_rgflPlayerCameraAngles[pPlayer], vecAngles); static Float:vecBack[3]; diff --git a/api/player-camera/include/api_player_camera.inc b/api/player-camera/include/api_player_camera.inc index 0f7929e..cf4d5fc 100644 --- a/api/player-camera/include/api_player_camera.inc +++ b/api/player-camera/include/api_player_camera.inc @@ -62,6 +62,18 @@ native PlayerCamera_SetAngles(pPlayer, const Float:vecAngles[3]); */ native PlayerCamera_SetDistance(pPlayer, Float:flDistance); +/** + * Sets the axis lock of the player's camera. + * + * @param pPlayer The player entity. + * @param bLockPitch Lock Pitch axis. + * @param bLockYaw Lock Yaw axis. + * @param bLockRoll Lock Roll axis. + * + * @noreturn + */ +native PlayerCamera_SetAxisLock(pPlayer, bool:bLockPitch, bool:bLockYaw, bool:bLockRoll); + /** * Sets the target entity of the player's camera. * From 96fb3ec9188737386c7fa3ef1cf69520eb067c40 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 19 Nov 2023 21:10:44 +0200 Subject: [PATCH 108/231] add hl support --- api/player-model/api_player_model.sma | 68 +++++++++++++++++++-------- 1 file changed, 48 insertions(+), 20 deletions(-) diff --git a/api/player-model/api_player_model.sma b/api/player-model/api_player_model.sma index 35521d5..c08248a 100644 --- a/api/player-model/api_player_model.sma +++ b/api/player-model/api_player_model.sma @@ -1,9 +1,10 @@ #pragma semicolon 1 #include +#include #include #include -#include +#tryinclude #define PLUGIN "[API] Player Model" #define VERSION "1.0.0" @@ -15,6 +16,8 @@ new g_iszSubModelClassname; +new bool:g_bIsCStrike; + new g_rgszDefaultPlayerModel[MAX_PLAYERS + 1][32]; new g_rgszCurrentPlayerModel[MAX_PLAYERS + 1][256]; new g_rgszCustomPlayerModel[MAX_PLAYERS + 1][256]; @@ -26,6 +29,7 @@ new Trie:g_itPlayerSequenceModelIndexes = Invalid_Trie; new Trie:g_itPlayerSequences = Invalid_Trie; public plugin_precache() { + g_bIsCStrike = !!cstrike_running(); g_iszSubModelClassname = engfunc(EngFunc_AllocString, "info_target"); g_itPlayerSequenceModelIndexes = TrieCreate(); g_itPlayerSequences = TrieCreate(); @@ -39,7 +43,9 @@ public plugin_init() { RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", .Post = 1); - RegisterHookChain(RG_CBasePlayer_SetAnimation, "HC_Player_SetAnimation"); + #if defined _reapi_included + RegisterHookChain(RG_CBasePlayer_SetAnimation, "HC_Player_SetAnimation"); + #endif register_message(get_user_msgid("ClCorpse"), "Message_ClCorpse"); } @@ -199,12 +205,24 @@ public HamHook_Player_PostThink_Post(pPlayer) { @PlayerSubModel_Think(g_rgpPlayerSubModel[pPlayer]); } + if (!g_bIsCStrike) { + static szModel[MAX_RESOURCE_PATH_LENGTH]; + get_user_info(pPlayer, "model", szModel, charsmax(szModel)); + if (!equal(szModel, NULL_STRING)) { + copy(g_rgszDefaultPlayerModel[pPlayer], charsmax(g_rgszDefaultPlayerModel[]), szModel); + } + + @Player_UpdateModel(pPlayer, false); + } + return HAM_HANDLED; } -public HC_Player_SetAnimation(pPlayer) { - @Player_UpdateAnimationModel(pPlayer); -} +#if defined _reapi_included + public HC_Player_SetAnimation(pPlayer) { + @Player_UpdateAnimationModel(pPlayer); + } +#endif public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { new pTargetPlayer = get_msg_arg_int(12); @@ -217,7 +235,7 @@ public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { @Player_UpdateAnimationModel(this) { static szAnimExt[32]; - get_member(this, m_szAnimExtention, szAnimExt, charsmax(szAnimExt)); + get_ent_data_string(this, "CBasePlayer", "m_szAnimExtention", szAnimExt, charsmax(szAnimExt)); new iAnimationIndex = is_user_alive(this) ? GetAnimationIndexByAnimExt(szAnimExt) : 0; if (iAnimationIndex != g_rgiPlayerAnimationIndex[this]) { @@ -228,6 +246,7 @@ public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { @Player_UpdateCurrentModel(this) { new bool:bUsedCustom = g_rgbPlayerUseCustomModel[this]; + new bool:bSetDefaultModel = false; g_rgbPlayerUseCustomModel[this] = !equal(g_rgszCustomPlayerModel[this], NULL_STRING); @@ -235,9 +254,14 @@ public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { copy(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), g_rgszCustomPlayerModel[this]); } else if (!equal(g_rgszDefaultPlayerModel[this], NULL_STRING)) { format(g_rgszCurrentPlayerModel[this], charsmax(g_rgszCurrentPlayerModel[]), "models/player/%s/%s.mdl", g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]); + bSetDefaultModel = true; } - @Player_UpdateModel(this, bUsedCustom && !g_rgbPlayerUseCustomModel[this]); + if (!g_bIsCStrike && bSetDefaultModel) { + set_user_info(this, "model", g_rgszDefaultPlayerModel[this]); + } else { + @Player_UpdateModel(this, bUsedCustom && !g_rgbPlayerUseCustomModel[this]); + } } @Player_UpdateModel(this, bool:bForceUpdate) { @@ -278,7 +302,10 @@ bool:@Player_ShouldUseCurrentModel(this) { @Player_SetModelIndex(this, iModelIndex) { set_user_info(this, "model", ""); set_pev(this, pev_modelindex, iModelIndex); - set_member(this, m_modelIndexPlayer, iModelIndex); + + if (g_bIsCStrike) { + set_ent_data(this, "CBasePlayer", "m_modelIndexPlayer", iModelIndex); + } } @Player_SetSequence(this, const szSequence[]) { @@ -312,23 +339,24 @@ bool:@Player_ShouldUseCurrentModel(this) { @PlayerSubModel_Think(this) { if (!@PlayerSubModel_IsActive(this)) { - set_entvar(this, var_effects, get_entvar(this, var_effects) | EF_NODRAW); + set_pev(this, pev_effects, pev(this, pev_effects) | EF_NODRAW); return; } new pOwner = pev(this, pev_owner); - set_entvar(this, var_skin, get_entvar(pOwner, var_skin)); - set_entvar(this, var_body, get_entvar(pOwner, var_body)); - set_entvar(this, var_colormap, get_entvar(pOwner, var_colormap)); - set_entvar(this, var_rendermode, get_entvar(pOwner, var_rendermode)); - set_entvar(this, var_renderfx, get_entvar(pOwner, var_renderfx)); - set_entvar(this, var_renderamt, get_entvar(pOwner, var_renderamt)); - set_entvar(this, var_effects, get_entvar(this, var_effects) & ~EF_NODRAW); - - static rgflColor[3]; - get_entvar(pOwner, var_rendercolor, rgflColor); - set_entvar(this, var_rendercolor, rgflColor); + set_pev(this, pev_skin, pev(pOwner, pev_skin)); + set_pev(this, pev_body, pev(pOwner, pev_body)); + set_pev(this, pev_colormap, pev(pOwner, pev_colormap)); + set_pev(this, pev_rendermode, pev(pOwner, pev_rendermode)); + set_pev(this, pev_renderfx, pev(pOwner, pev_renderfx)); + set_pev(this, pev_effects, pev(this, pev_effects) & ~EF_NODRAW); + + static Float:flRenderAmt; pev(pOwner, pev_renderamt, flRenderAmt); + set_pev(this, pev_renderamt, flRenderAmt); + + static rgflColor[3]; pev(pOwner, pev_rendercolor, rgflColor); + set_pev(this, pev_rendercolor, rgflColor); } @PlayerSubModel_IsActive(this) { From a604c44a44cae7b4fc0032a3b2dc334e40df0d33 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 19 Nov 2023 21:11:38 +0200 Subject: [PATCH 109/231] improve custom rounds --- api/rounds/api_rounds.sma | 304 ++++++++++++++++-------------- api/rounds/include/api_rounds.inc | 10 +- 2 files changed, 168 insertions(+), 146 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index 52f1527..a0acd4c 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -1,12 +1,19 @@ #pragma semicolon 1 #include +#include #include #include #tryinclude #if !defined USE_CUSTOM_ROUNDS - #define USE_CUSTOM_ROUNDS + #if !defined _reapi_included + #define USE_CUSTOM_ROUNDS + #endif +#endif + +#if defined USE_CUSTOM_ROUNDS + #define MAX_TEAMS 8 #endif enum GameState { @@ -21,6 +28,7 @@ enum _:Hook { }; new GameState:g_iGameState; +new bool:g_bIsCStrike; new g_iFwNewRound; new g_iFwRoundStart; @@ -28,6 +36,7 @@ new g_iFwRoundEnd; new g_iFwRoundExpired; new g_iFwRoundRestart; new g_iFwRoundTimerTick; +new g_iFwUpdateTimer; new g_iFwCheckWinConditions; new g_pCvarRoundEndDelay; @@ -44,24 +53,29 @@ new g_pCvarRoundEndDelay; #if defined USE_CUSTOM_ROUNDS new g_iIntroRoundTime; new g_iPlayersNum = 0; - new g_iRoundWinStatus = 0; - new bool:g_bFreezePeriod = false; + new g_iRoundWinTeam = 0; new g_iRoundTime = 0; new g_iRoundTimeSecs = 0; - new Float:g_fRoundStartTime = 0.0; - new Float:g_fRoundStartTimeReal = 0.0; - new Float:g_flRestartRoundTime = 0.0; - new Float:g_tmNextPeriodicThink = 0.0; - new bool:g_bGameStarted = false; - // new g_bRoundTerminating = false; new g_iTotalRoundsPlayed = 0; new g_iMaxRounds = 0; new g_iMaxRoundsWon = 0; + new Float:g_flRoundStartTime = 0.0; + new Float:g_flRoundStartTimeReal = 0.0; + new Float:g_flRestartRoundTime = 0.0; + new Float:g_flNextPeriodicThink = 0.0; + new Float:g_flNextThink = 0.0; + new bool:g_bRoundTerminating = false; + new bool:g_bFreezePeriod = false; + new bool:g_bGameStarted = false; new bool:g_bCompleteReset = false; - new g_rgiWinsNum[16]; - // new bool:g_bNeededPlayers = false; + new bool:g_bNeededPlayers = false; + new g_rgiWinsNum[MAX_TEAMS]; #endif +public plugin_precache() { + g_bIsCStrike = !!cstrike_running(); +} + public plugin_init() { register_plugin("[API] Rounds", "2.1.0", "Hedgehog Fog"); @@ -84,23 +98,24 @@ public plugin_init() { g_iFwRoundExpired = CreateMultiForward("Round_Fw_RoundExpired", ET_IGNORE); g_iFwRoundRestart = CreateMultiForward("Round_Fw_RoundRestart", ET_IGNORE); g_iFwRoundTimerTick = CreateMultiForward("Round_Fw_RoundTimerTick", ET_IGNORE); + g_iFwUpdateTimer = CreateMultiForward("Round_Fw_UpdateTimer", ET_IGNORE); g_iFwCheckWinConditions = CreateMultiForward("Round_Fw_CheckWinConditions", ET_STOP); #if defined USE_CUSTOM_ROUNDS - if (!cvar_exists("mp_freezetime")) register_cvar("mp_freezetime", "6.0"); if (!cvar_exists("mp_roundtime")) register_cvar("mp_roundtime", "5.0"); - if (!cvar_exists("mp_round_restart_delay")) register_cvar("mp_round_restart_delay", "5.0"); + if (!cvar_exists("mp_freezetime")) register_cvar("mp_freezetime", "6.0"); if (!cvar_exists("mp_maxrounds")) register_cvar("mp_maxrounds", "0"); if (!cvar_exists("mp_winlimit")) register_cvar("mp_winlimit", "0"); if (!cvar_exists("sv_restart")) register_cvar("sv_restart", "0"); if (!cvar_exists("sv_restartround")) register_cvar("sv_restartround", "0"); + if (!cvar_exists("mp_round_restart_delay")) register_cvar("mp_round_restart_delay", "5.0"); g_pCvarRoundTime = get_cvar_pointer("mp_roundtime"); g_pCvarFreezeTime = get_cvar_pointer("mp_freezetime"); g_pCvarMaxRounds = get_cvar_pointer("mp_maxrounds"); g_pCvarWinLimits = get_cvar_pointer("mp_winlimit"); - g_pCvarRestartRound = get_cvar_pointer("sv_restartround"); g_pCvarRestart = get_cvar_pointer("sv_restart"); + g_pCvarRestartRound = get_cvar_pointer("sv_restartround"); ReadMultiplayCvars(); #endif @@ -111,11 +126,16 @@ public plugin_init() { public plugin_natives() { register_library("api_rounds"); register_native("Round_DispatchWin", "Native_DispatchWin"); + register_native("Round_TerminateRound", "Native_TerminateRound"); register_native("Round_GetTime", "Native_GetTime"); register_native("Round_SetTime", "Native_SetTime"); - register_native("Round_GetTimeLeft", "Native_GetTimeLeft"); + register_native("Round_GetRemainingTime", "Native_GetRemainingTime"); + register_native("Round_IsFreezePeriod", "Native_IsFreezePeriod"); register_native("Round_IsRoundStarted", "Native_IsRoundStarted"); register_native("Round_IsRoundEnd", "Native_IsRoundEnd"); + register_native("Round_IsRoundTerminating", "Native_IsRoundTerminating"); + register_native("Round_IsPlayersNeeded", "Native_IsPlayersNeeded"); + register_native("Round_IsCompleteReset", "Native_IsCompleteReset"); register_native("Round_CheckWinConditions", "Native_CheckWinConditions"); } @@ -124,6 +144,7 @@ public plugin_natives() { g_iPlayersNum++; if (g_iPlayersNum == 1) { + g_bCompleteReset = true; RestartRound(); } } @@ -148,62 +169,58 @@ public plugin_natives() { #endif public server_frame() { - static Float:flTime; flTime = get_gametime(); + static Float:flGameTime; flGameTime = get_gametime(); static Float:flNextPeriodicThink; #if defined USE_CUSTOM_ROUNDS - flNextPeriodicThink = g_tmNextPeriodicThink; + flNextPeriodicThink = g_flNextPeriodicThink; #else - flNextPeriodicThink = get_gamerules_float("CHalfLifeMultiplay", "m_tmNextPeriodicThink"); + flNextPeriodicThink = get_member_game(m_tmNextPeriodicThink); #endif #if defined USE_CUSTOM_ROUNDS - Think(); + if (g_flNextThink <= flGameTime) { + RoundThink(); + g_flNextThink = flGameTime + 0.1; + } #endif - if (flNextPeriodicThink < flTime) { - static bool:bFreezePeriod; + if (flNextPeriodicThink <= flGameTime) { + ExecuteForward(g_iFwRoundTimerTick); + static iRoundTimeSecs; static Float:flStartTime; - static Float:flEndTime; + static bool:bFreezePeriod; #if defined USE_CUSTOM_ROUNDS - bFreezePeriod = g_bFreezePeriod; iRoundTimeSecs = g_iRoundTimeSecs; - flStartTime = g_fRoundStartTimeReal; - flEndTime = flStartTime + float(iRoundTimeSecs); + flStartTime = g_flRoundStartTimeReal; + bFreezePeriod = g_bFreezePeriod; #else - bFreezePeriod = get_member_game(m_bFreezePeriod); iRoundTimeSecs = get_member_game(m_iRoundTimeSecs); flStartTime = get_member_game(m_fRoundStartTimeReal); - flEndTime = flStartTime + float(iRoundTimeSecs); + bFreezePeriod = get_member_game(m_bFreezePeriod); #endif - ExecuteForward(g_iFwRoundTimerTick); - - if (!bFreezePeriod) { - if (flTime >= flEndTime) { - OnRoundExpired(); - } + if (!bFreezePeriod && flGameTime >= flStartTime + float(iRoundTimeSecs)) { + ExecuteForward(g_iFwRoundExpired); } - - #if defined USE_CUSTOM_ROUNDS - g_tmNextPeriodicThink = flTime + 1.0; - #endif } } #if !defined USE_CUSTOM_ROUNDS public HC_RestartRound() { - OnRestartRound(); + ExecuteForward(g_iFwRoundRestart); } public HC_OnRoundFreezeEnd_Post() { - OnEndFreezePeriod(); + g_iGameState = GameState_RoundStarted; + ExecuteForward(g_iFwRoundStart); } public Event_NewRound() { - OnNewRound(); + g_iGameState = GameState_NewRound; + ExecuteForward(g_iFwNewRound); } public HC_RoundEnd(WinStatus:iStatus, ScenarioEventEndRound:iEvent, Float:flDelay) { @@ -215,16 +232,15 @@ public server_frame() { case WINSTATUS_DRAW: iTeam = 3; } - OnRoundEnd(iTeam); + g_iGameState = GameState_RoundEnd; + ExecuteForward(g_iFwRoundEnd, _, iTeam); } public HC_CheckWinConditions() { static iReturn; ExecuteForward(g_iFwCheckWinConditions, iReturn); - if (iReturn != PLUGIN_CONTINUE) { - return HC_SUPERCEDE; - } + if (iReturn != PLUGIN_CONTINUE) return HC_SUPERCEDE; return HC_CONTINUE; } @@ -233,9 +249,17 @@ public server_frame() { public Native_DispatchWin(iPluginId, iArgc) { new iTeam = get_param(1); new Float:flDelay = get_param_f(2); + DispatchWin(iTeam, flDelay); } +public Native_TerminateRound(iPluginId, iArgc) { + new Float:flDelay = get_param_f(1); + new iTeam = get_param(2); + + TerminateRound(flDelay, iTeam); +} + public Native_GetTime(iPluginId, iArgc) { #if defined USE_CUSTOM_ROUNDS return g_iRoundTimeSecs; @@ -250,8 +274,16 @@ public Native_SetTime(iPluginId, iArgc) { SetTime(iTime); } -public Native_GetTimeLeft(iPluginId, iArgc) { - return GetTimeLeft(); +public Float:Native_GetRemainingTime(iPluginId, iArgc) { + return GetRoundRemainingTime(); +} + +public bool:Native_IsFreezePeriod(iPluginId, iArgc) { + #if defined USE_CUSTOM_ROUNDS + return g_bFreezePeriod; + #else + return get_member_game(m_bFreezePeriod); + #endif } public bool:Native_IsRoundStarted(iPluginId, iArgc) { @@ -262,6 +294,30 @@ public bool:Native_IsRoundEnd(iPluginId, iArgc) { return g_iGameState == GameState_RoundEnd; } +public bool:Native_IsRoundTerminating(iPluginId, iArgc) { + #if defined USE_CUSTOM_ROUNDS + return g_bRoundTerminating; + #else + return get_member_game(m_bRoundTerminating); + #endif +} + +public bool:Native_IsPlayersNeeded(iPluginId, iArgc) { + #if defined USE_CUSTOM_ROUNDS + return g_bNeededPlayers; + #else + return get_member_game(m_bNeededPlayers); + #endif +} + +public bool:Native_IsCompleteReset(iPluginId, iArgc) { + #if defined USE_CUSTOM_ROUNDS + return g_bCompleteReset; + #else + return get_member_game(m_bCompleteReset); + #endif +} + public bool:Native_CheckWinConditions(iPluginId, iArgc) { #if defined USE_CUSTOM_ROUNDS CheckWinConditions(); @@ -271,19 +327,17 @@ public bool:Native_CheckWinConditions(iPluginId, iArgc) { } DispatchWin(iTeam, Float:flDelay = -1.0) { - if (g_iGameState == GameState_RoundEnd) { - return; - } - - if (iTeam < 1 || iTeam > 3) { - return; - } + if (g_iGameState == GameState_RoundEnd) return; if (flDelay < 0.0) { flDelay = g_pCvarRoundEndDelay ? get_pcvar_float(g_pCvarRoundEndDelay) : 5.0; } + if (!iTeam) return; + #if !defined USE_CUSTOM_ROUNDS + if (iTeam > 3) return; + new WinStatus:iWinstatus = WINSTATUS_DRAW; if (iTeam == 1) { iWinstatus = WINSTATUS_TERRORISTS; @@ -299,60 +353,40 @@ DispatchWin(iTeam, Float:flDelay = -1.0) { } rg_round_end(flDelay, iWinstatus, iEvent, _, _, true); + rg_update_teamscores(iTeam == 2 ? 1 : 0, iTeam == 1 ? 1 : 0); #else EndRound(flDelay, iTeam); #endif - - UpdateTeamScores(iTeam == 1 ? 1 : 0, iTeam == 2 ? 1 : 0); } SetTime(iTime) { #if defined USE_CUSTOM_ROUNDS g_iRoundTime = iTime; g_iRoundTimeSecs = iTime; - g_fRoundStartTime = g_fRoundStartTimeReal; + g_flRoundStartTime = g_flRoundStartTimeReal; #else new flStartTime = get_member_game(m_fRoundStartTimeReal); set_member_game(m_iRoundTime, iTime); set_member_game(m_iRoundTimeSecs, iTime); set_member_game(m_fRoundStartTime, flStartTime); - - UpdateTimer(0, GetTimeLeft()); - #endif -} - -GetTimeLeft() { - #if defined USE_CUSTOM_ROUNDS - new Float:flStartTime = g_fRoundStartTimeReal; - new iTime = g_iRoundTimeSecs; - #else - new Float:flStartTime = get_member_game(m_fRoundStartTimeReal); - new iTime = get_member_game(m_iRoundTimeSecs); #endif - return floatround(flStartTime + float(iTime) - get_gametime()); + UpdateTimer(); } -#if !defined USE_CUSTOM_ROUNDS - UpdateTimer(iClient, iTime) { - static iMsgId = 0; - if(!iMsgId) { - iMsgId = get_user_msgid("RoundTime"); - } +UpdateTimer() { + static iRemainingTime; iRemainingTime = floatround(GetRoundRemainingTime(), floatround_floor); - message_begin(iClient ? MSG_ONE : MSG_ALL, iMsgId); - write_short(iTime); - message_end(); + if (g_bIsCStrike) { + static iMsgId = 0; + if(!iMsgId) iMsgId = get_user_msgid("RoundTime"); + + message_begin(MSG_ALL, iMsgId); + write_short(iRemainingTime); + message_end(); } -#endif -UpdateTeamScores(iTeam1Wins, iTeam2Wins) { - #if defined USE_CUSTOM_ROUNDS - #pragma unused iTeam1Wins,iTeam2Wins - // TODO: Implement - #else - rg_update_teamscores(iTeam2Wins, iTeam1Wins); - #endif + ExecuteForward(g_iFwUpdateTimer, _, iRemainingTime); } #if defined USE_CUSTOM_ROUNDS @@ -362,35 +396,27 @@ UpdateTeamScores(iTeam1Wins, iTeam2Wins) { } CheckWinConditions() { - static iReturn; - - ExecuteForward(g_iFwCheckWinConditions, iReturn); - - if (iReturn != PLUGIN_CONTINUE) { - return; - } + static iReturn; ExecuteForward(g_iFwCheckWinConditions, iReturn); - if (g_bGameStarted && g_iRoundWinStatus != 0) { - return; - } + if (iReturn != PLUGIN_CONTINUE) return; + if (g_bGameStarted && g_iRoundWinTeam != 0) return; - // g_bNeededPlayers = false; + g_bNeededPlayers = false; NeededPlayersCheck(); // #if defined USE_CUSTOM_ROUNDS - // if (g_bGameStarted && g_iRoundWinStatus != WINSTATUS_NONE) return; + // if (g_bGameStarted && g_iRoundWinTeam != WINSTATUS_NONE) return; - // if (g_iRoundWinStatus && g_fRoundEndTimeReal <= get_gametime()) { - // OnNewRound(); - // } + // if (g_iRoundWinTeam && g_fRoundEndTimeReal <= get_gametime()) { + // g_iGameState = GameState_NewRound; + // ExecuteForward(g_iFwNewRound); + // } // #endif } RestartRound() { if (!g_bCompleteReset) { g_iTotalRoundsPlayed++; - // g_iGameState = GameState_NewRound; - // ExecuteForward(g_iFwNewRound); } if (g_bCompleteReset) { @@ -403,16 +429,16 @@ UpdateTeamScores(iTeam1Wins, iTeam2Wins) { } } - OnRestartRound(); + ExecuteForward(g_iFwRoundRestart); g_bFreezePeriod = true; - // g_bRoundTerminating = false; + g_bRoundTerminating = false; ReadMultiplayCvars(); g_iRoundTimeSecs = g_iIntroRoundTime; - g_fRoundStartTime = g_fRoundStartTimeReal = get_gametime(); + g_flRoundStartTime = g_flRoundStartTimeReal = get_gametime(); CleanUpMap(); @@ -424,15 +450,16 @@ UpdateTeamScores(iTeam1Wins, iTeam2Wins) { } g_flRestartRoundTime = 0.0; - g_iRoundWinStatus = 0; + g_iRoundWinTeam = 0; g_bCompleteReset = false; - OnNewRound(); + g_iGameState = GameState_NewRound; + ExecuteForward(g_iFwNewRound); } - Think() { - if (!g_fRoundStartTime) { - g_fRoundStartTime = g_fRoundStartTimeReal = get_gametime(); + RoundThink() { + if (!g_flRoundStartTime) { + g_flRoundStartTime = g_flRoundStartTimeReal = get_gametime(); } // if (CheckGameOver()) return; @@ -456,9 +483,9 @@ UpdateTeamScores(iTeam1Wins, iTeam2Wins) { static Float:flNextPeriodicThink; #if !defined USE_CUSTOM_ROUNDS - flNextPeriodicThink = get_gamerules_float("CHalfLifeMultiplay", "m_tmNextPeriodicThink"); + flNextPeriodicThink = get_member_game(m_tmNextPeriodicThink); #else - flNextPeriodicThink = g_tmNextPeriodicThink; + flNextPeriodicThink = g_flNextPeriodicThink; #endif if (flNextPeriodicThink < get_gametime()) { @@ -503,7 +530,7 @@ UpdateTeamScores(iTeam1Wins, iTeam2Wins) { log_message("World triggered ^"Round_Start^"\n"); g_bFreezePeriod = false; - g_fRoundStartTimeReal = g_fRoundStartTime = get_gametime(); + g_flRoundStartTimeReal = g_flRoundStartTime = get_gametime(); g_iRoundTimeSecs = g_iRoundTime; // for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { @@ -519,7 +546,8 @@ UpdateTeamScores(iTeam1Wins, iTeam2Wins) { set_pev(pPlayer, pev_flags, ~pev(pPlayer, pev_flags) & FL_FROZEN); } - OnEndFreezePeriod(); + g_iGameState = GameState_RoundStarted; + ExecuteForward(g_iFwRoundStart); } CheckRoundTimeExpired() { @@ -527,7 +555,7 @@ UpdateTeamScores(iTeam1Wins, iTeam2Wins) { return false; } - if (GetRoundRemainingTime() > 0 || g_iRoundWinStatus != 0) { + if (GetRoundRemainingTime() > 0 || g_iRoundWinTeam != 0) { return false; } @@ -587,7 +615,7 @@ UpdateTeamScores(iTeam1Wins, iTeam2Wins) { NeededPlayersCheck() { if (!g_iPlayersNum) { // UTIL_ClientPrintAll(HUD_PRINTCONSOLE, "#Game_scoring"); - // g_bNeededPlayers = true; + g_bNeededPlayers = true; g_bGameStarted = false; } @@ -601,10 +629,12 @@ UpdateTeamScores(iTeam1Wins, iTeam2Wins) { } TerminateRound(Float:flDelay, iTeam) { - g_iRoundWinStatus = iTeam; + g_iRoundWinTeam = iTeam; g_flRestartRoundTime = get_gametime() + flDelay; - // g_bRoundTerminating = true; - OnRoundEnd(iTeam); + g_bRoundTerminating = true; + g_iGameState = GameState_RoundEnd; + + ExecuteForward(g_iFwRoundEnd, _, iTeam); } EndRoundMessage(const szSentence[]) { @@ -624,34 +654,20 @@ UpdateTeamScores(iTeam1Wins, iTeam2Wins) { log_message("World triggered ^"Round_End^"^n"); } - Float:GetRoundRemainingTime() { - return float(g_iRoundTimeSecs) - get_gametime() + g_fRoundStartTime; - } - // GetRoundRemainingTimeReal() { - // return float(g_iRoundTimeSecs) - get_gametime() + g_fRoundStartTimeReal; + // return float(g_iRoundTimeSecs) - get_gametime() + g_flRoundStartTimeReal; // } #endif -OnRestartRound() { - ExecuteForward(g_iFwRoundRestart); -} - -OnEndFreezePeriod() { - g_iGameState = GameState_RoundStarted; - ExecuteForward(g_iFwRoundStart); -} -OnNewRound() { - g_iGameState = GameState_NewRound; - ExecuteForward(g_iFwNewRound); -} - -OnRoundExpired() { - ExecuteForward(g_iFwRoundExpired); -} +Float:GetRoundRemainingTime() { + #if defined USE_CUSTOM_ROUNDS + static Float:flStartTime; flStartTime = g_flRoundStartTimeReal; + static iTime; iTime = g_iRoundTimeSecs; + #else + static Float:flStartTime; flStartTime = get_member_game(m_fRoundStartTimeReal); + static iTime; iTime = get_member_game(m_iRoundTimeSecs); + #endif -OnRoundEnd(iTeam) { - g_iGameState = GameState_RoundEnd; - ExecuteForward(g_iFwRoundEnd, _, _:iTeam); + return float(iTime) - get_gametime() + flStartTime; } diff --git a/api/rounds/include/api_rounds.inc b/api/rounds/include/api_rounds.inc index 5e25f1b..b443e55 100644 --- a/api/rounds/include/api_rounds.inc +++ b/api/rounds/include/api_rounds.inc @@ -6,16 +6,22 @@ #pragma reqlib api_rounds native Round_DispatchWin(iTeam, Float:fDelay = -1.0); +native Round_TerminateRound(Float:fDelay = 0.0, iTeam = 0); native Round_SetTime(iTime); native Round_GetTime(); -native Round_GetTimeLeft(); +native Float:Round_GetRemainingTime(); +native bool:Round_IsFreezePeriod(); native bool:Round_IsRoundStarted(); native bool:Round_IsRoundEnd(); +native bool:Round_IsPlayersNeeded(); +native bool:Round_IsCompleteReset(); +native Round_CheckWinConditions(); forward Round_Fw_NewRound(); forward Round_Fw_RoundStart(); -forward Round_Fw_RoundEnd(iWinnerTeam); +forward Round_Fw_RoundEnd(iTeam); forward Round_Fw_RoundExpired(); forward Round_Fw_RoundRestart(); forward Round_Fw_RoundTimerTick(); +forward Round_Fw_UpdateTimer(iRemainingTime); forward Round_Fw_CheckWinConditions(); From 2e1b5176b87fd1005daac410964b060c66ab730e Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 19 Nov 2023 21:28:23 +0200 Subject: [PATCH 110/231] add some natives --- api/rounds/api_rounds.sma | 18 ++++++++++++++++++ api/rounds/include/api_rounds.inc | 2 ++ 2 files changed, 20 insertions(+) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index a0acd4c..b2990f4 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -129,6 +129,8 @@ public plugin_natives() { register_native("Round_TerminateRound", "Native_TerminateRound"); register_native("Round_GetTime", "Native_GetTime"); register_native("Round_SetTime", "Native_SetTime"); + register_native("Round_GetIntroTime", "Native_GetIntroTime"); + register_native("Round_GetRestartRoundTime", "Native_GetRestartRoundTime"); register_native("Round_GetRemainingTime", "Native_GetRemainingTime"); register_native("Round_IsFreezePeriod", "Native_IsFreezePeriod"); register_native("Round_IsRoundStarted", "Native_IsRoundStarted"); @@ -274,6 +276,22 @@ public Native_SetTime(iPluginId, iArgc) { SetTime(iTime); } +public Native_GetIntroTime(iPluginId, iArgc) { + #if defined USE_CUSTOM_ROUNDS + return g_iIntroRoundTime; + #else + return get_member_game(m_iIntroRoundTime); + #endif +} + +public Float:Native_GetRestartRoundTime(iPluginId, iArgc) { + #if defined USE_CUSTOM_ROUNDS + return g_flRestartRoundTime; + #else + return get_member_game(m_flRestartRoundTime); + #endif +} + public Float:Native_GetRemainingTime(iPluginId, iArgc) { return GetRoundRemainingTime(); } diff --git a/api/rounds/include/api_rounds.inc b/api/rounds/include/api_rounds.inc index b443e55..a9182c1 100644 --- a/api/rounds/include/api_rounds.inc +++ b/api/rounds/include/api_rounds.inc @@ -9,6 +9,8 @@ native Round_DispatchWin(iTeam, Float:fDelay = -1.0); native Round_TerminateRound(Float:fDelay = 0.0, iTeam = 0); native Round_SetTime(iTime); native Round_GetTime(); +native Round_GetIntroTime(); +native Float:Round_GetRestartRoundTime(); native Float:Round_GetRemainingTime(); native bool:Round_IsFreezePeriod(); native bool:Round_IsRoundStarted(); From fa492523de79d609cb4e94c0face524428dae7a4 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 21 Nov 2023 00:37:05 +0200 Subject: [PATCH 111/231] fix round termination --- api/rounds/api_rounds.sma | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index b2990f4..14f43a1 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -259,7 +259,11 @@ public Native_TerminateRound(iPluginId, iArgc) { new Float:flDelay = get_param_f(1); new iTeam = get_param(2); - TerminateRound(flDelay, iTeam); + #if defined USE_CUSTOM_ROUNDS + TerminateRound(flDelay, iTeam); + #else + DispatchWin(iTeam, flDelay); + #endif } public Native_GetTime(iPluginId, iArgc) { From caf25897b23f24cadf75e9edcc58d1566fb000ce Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 21 Nov 2023 04:57:35 +0200 Subject: [PATCH 112/231] fix hl crashes --- api/waypoint-markers/api_waypoint_markers.sma | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api/waypoint-markers/api_waypoint_markers.sma b/api/waypoint-markers/api_waypoint_markers.sma index ada7c61..13793bb 100644 --- a/api/waypoint-markers/api_waypoint_markers.sma +++ b/api/waypoint-markers/api_waypoint_markers.sma @@ -266,8 +266,7 @@ public FMHook_OnFreeEntPrivateData(pEntity) { static Float:flLastUpdate; flLastUpdate = StructGetCell(sPlayerData, MarkerPlayerData_LastUpdate); static Float:flDelta; flDelta = flGameTime - flLastUpdate; - static Float:vecViewOrigin[3]; - ExecuteHam(Ham_Player_GetGunPosition, pPlayer, vecViewOrigin); + static Float:vecViewOrigin[3]; ExecuteHam(Ham_EyePosition, pPlayer, vecViewOrigin); if (g_bCompensation) { static Float:vecVelocity[3]; @@ -275,12 +274,13 @@ public FMHook_OnFreeEntPrivateData(pEntity) { xs_vec_add_scaled(vecViewOrigin, vecVelocity, flDelay * flDelta, vecViewOrigin); } - static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); - if (!ExecuteHamB(Ham_FVecInViewCone, pPlayer, vecOrigin)) { + if (!ExecuteHamB(Ham_FInViewCone, pPlayer, this)) { StructSetCell(sPlayerData, MarkerPlayerData_ShouldHide, true); return; } + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecAngles[3]; xs_vec_sub(vecOrigin, vecViewOrigin, vecAngles); xs_vec_normalize(vecAngles, vecAngles); From 4e80e88fc92c93247dd0fe2aab8ce400dafd0de9 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 21 Nov 2023 05:19:33 +0200 Subject: [PATCH 113/231] fix custom rounds system --- api/rounds/api_rounds.sma | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index 14f43a1..c75449c 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -145,7 +145,7 @@ public plugin_natives() { public client_putinserver() { g_iPlayersNum++; - if (g_iPlayersNum == 1) { + if (g_iPlayersNum < 2) { g_bCompleteReset = true; RestartRound(); } @@ -160,6 +160,8 @@ public plugin_natives() { public HamHook_Player_Spawn_Post(pPlayer) { if (g_bFreezePeriod) { set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) | FL_FROZEN); + } else { + set_pev(pPlayer, pev_flags, ~pev(pPlayer, pev_flags) & FL_FROZEN); } } @@ -259,9 +261,9 @@ public Native_TerminateRound(iPluginId, iArgc) { new Float:flDelay = get_param_f(1); new iTeam = get_param(2); - #if defined USE_CUSTOM_ROUNDS - TerminateRound(flDelay, iTeam); - #else +#if defined USE_CUSTOM_ROUNDS + TerminateRound(flDelay, iTeam); +#else DispatchWin(iTeam, flDelay); #endif } @@ -565,6 +567,7 @@ UpdateTimer() { // } for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + if (!is_user_connected(pPlayer)) continue; set_pev(pPlayer, pev_flags, ~pev(pPlayer, pev_flags) & FL_FROZEN); } From 53991bca50f45b492dd3c0586e4cd41b785c1b68 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 21 Nov 2023 05:22:48 +0200 Subject: [PATCH 114/231] update round messages --- api/rounds/api_rounds.sma | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index c75449c..c02f277 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -592,11 +592,11 @@ UpdateTimer() { // CheckLevelInitialized() {} RestartRoundCheck(Float:flDelay) { - log_message("World triggered ^"Restart_Round_(%i_%s)^"^n", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "second" : "seconds"); + log_message("World triggered ^"Restart_Round_(%d_%s)^"^n", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "second" : "seconds"); // let the players know - client_print(0, print_center, "#Game_will_restart_in", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "SECOND" : "SECONDS"); - client_print(0, print_console, "#Game_will_restart_in_console", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "SECOND" : "SECONDS"); + client_print(0, print_center, "The game will restart in %d %s", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "SECOND" : "SECONDS"); + client_print(0, print_console, "The game will restart in %d %s", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "SECOND" : "SECONDS"); g_flRestartRoundTime = get_gametime() + flDelay; g_bCompleteReset = true; @@ -639,7 +639,6 @@ UpdateTimer() { NeededPlayersCheck() { if (!g_iPlayersNum) { - // UTIL_ClientPrintAll(HUD_PRINTCONSOLE, "#Game_scoring"); g_bNeededPlayers = true; g_bGameStarted = false; } @@ -647,7 +646,7 @@ UpdateTimer() { g_bFreezePeriod = false; g_bCompleteReset = true; - EndRoundMessage("#Game_Commencing"); + EndRoundMessage("Game Commencing!"); TerminateRound(3.0, 0); g_bGameStarted = true; From 798245bb812f107a1b4e149b13d2db77d7d3282f Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 21 Nov 2023 05:35:36 +0200 Subject: [PATCH 115/231] fix frozen flag set --- api/rounds/api_rounds.sma | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index c02f277..973b250 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -89,6 +89,7 @@ public plugin_init() { #if defined USE_CUSTOM_ROUNDS RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); + RegisterHamPlayer(Ham_Killed, "HamHook_Player_Killed", .Post = 0); RegisterHamPlayer(Ham_Killed, "HamHook_Player_Killed_Post", .Post = 1); #endif @@ -158,16 +159,20 @@ public plugin_natives() { } public HamHook_Player_Spawn_Post(pPlayer) { + if (!is_user_alive(pPlayer)) return; + if (g_bFreezePeriod) { set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) | FL_FROZEN); } else { - set_pev(pPlayer, pev_flags, ~pev(pPlayer, pev_flags) & FL_FROZEN); + set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) & ~FL_FROZEN); } } - public HamHook_Player_Killed_Post(pPlayer) { - set_pev(pPlayer, pev_flags, ~pev(pPlayer, pev_flags) & FL_FROZEN); + public HamHook_Player_Killed(pPlayer) { + set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) & ~FL_FROZEN); + } + public HamHook_Player_Killed_Post(pPlayer) { CheckWinConditions(); } #endif @@ -568,7 +573,8 @@ UpdateTimer() { for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { if (!is_user_connected(pPlayer)) continue; - set_pev(pPlayer, pev_flags, ~pev(pPlayer, pev_flags) & FL_FROZEN); + if (!is_user_alive(pPlayer)) continue; + set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) & ~FL_FROZEN); } g_iGameState = GameState_RoundStarted; From 8c058021edb7902c4aa2fd3c5d7c9f5dfa838360 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 21 Nov 2023 06:08:09 +0200 Subject: [PATCH 116/231] better hl support --- api/custom-entities/api_custom_entities.sma | 34 +++++++++++++++++-- .../include/api_custom_entities.inc | 7 ++++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index c20fd57..e1f9f4e 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -22,6 +22,8 @@ enum CEHookData { CEHookData_FuncID }; +enum _:GLOBALESTATE { GLOBAL_OFF = 0, GLOBAL_ON = 1, GLOBAL_DEAD = 2 }; + new g_iszBaseClassName; new Trie:g_itPData = Invalid_Trie; @@ -29,18 +31,25 @@ new Trie:g_itEntityIds = Invalid_Trie; new g_rgCEData[CEData] = { Invalid_Array, ... }; new g_iEntitiesNum = 0; new bool:g_bPrecaching = true; +new bool:g_bIsCStrike = false; public plugin_precache() { - InitStorages(); + g_bIsCStrike = !!cstrike_running(); g_iszBaseClassName = engfunc(EngFunc_AllocString, CE_BASE_CLASSNAME); + InitStorages(); + register_forward(FM_Spawn, "FMHook_Spawn"); register_forward(FM_KeyValue, "FMHook_KeyValue"); register_forward(FM_OnFreeEntPrivateData, "FMHook_OnFreeEntPrivateData"); RegisterHam(Ham_Spawn, CE_BASE_CLASSNAME, "HamHook_Base_Spawn_Post", .Post = 1); RegisterHam(Ham_ObjectCaps, CE_BASE_CLASSNAME, "HamHook_Base_ObjectCaps", .Post = 0); - RegisterHam(Ham_CS_Restart, CE_BASE_CLASSNAME, "HamHook_Base_Restart", .Post = 1); + + if (g_bIsCStrike) { + RegisterHam(Ham_CS_Restart, CE_BASE_CLASSNAME, "HamHook_Base_Restart", .Post = 1); + } + RegisterHam(Ham_Touch, CE_BASE_CLASSNAME, "HamHook_Base_Touch", .Post = 0); RegisterHam(Ham_Touch, CE_BASE_CLASSNAME, "HamHook_Base_Touch_Post", .Post = 1); RegisterHam(Ham_Killed, CE_BASE_CLASSNAME, "HamHook_Base_Killed", .Post = 0); @@ -63,6 +72,7 @@ public plugin_natives() { register_native("CE_Create", "Native_Create"); register_native("CE_Kill", "Native_Kill"); register_native("CE_Remove", "Native_Remove"); + register_native("CE_Restart", "Native_Restart"); register_native("CE_RegisterHook", "Native_RegisterHook"); @@ -124,6 +134,14 @@ public bool:Native_Remove(iPluginId, iArgc) { dllfunc(DLLFunc_Think, pEntity); } +public Native_Restart(iPluginId, iArgc) { + static pEntity; pEntity = get_param(1); + + if (!@Entity_IsCustom(pEntity)) return; + + @Entity_Restart(pEntity); +} + public Native_RegisterHook(iPluginId, iArgc) { new CEFunction:iFunction = CEFunction:get_param(1); new szClassname[CE_MAX_NAME_LENGTH]; get_string(2, szClassname, charsmax(szClassname)); @@ -549,6 +567,17 @@ bool:@Entity_IsCustom(this) { new iObjectCaps = ExecuteHamB(Ham_ObjectCaps, this); + if (!g_bIsCStrike) { + if (iObjectCaps & FCAP_MUST_RELEASE) { + set_pev(this, pev_globalname, GLOBAL_DEAD); + set_pev(this, pev_solid, SOLID_NOT); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); + set_pev(this, pev_targetname, ""); + + return; + } + } + if (~iObjectCaps & FCAP_ACROSS_TRANSITION) { dllfunc(DLLFunc_Spawn, this); } @@ -928,6 +957,7 @@ Trie:AllocPData(iId, pEntity) { SetPDataMember(itPData, CE_MEMBER_WORLD, false); SetPDataMember(itPData, CE_MEMBER_POINTER, pEntity); SetPDataMember(itPData, CE_MEMBER_INITIALIZED, false); + return itPData; } diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index 995e271..a4f6e99 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -88,6 +88,13 @@ native CE:CE_Register(const szName[], CEPreset:iPreset = CEPreset_None); */ native CE_Create(const szName[], const Float:vecOrigin[3] = {0.0, 0.0, 0.0}, bool:bTemp = true); +/** + * Restart entity + * + * @param pEntity Entity index + */ +native bool:CE_Restart(pEntity); + /** * Kill entity * From 3cb72fc7ecd6114246ec503154a7f00a10e13ddb Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 22 Nov 2023 02:59:15 +0200 Subject: [PATCH 117/231] add start time native --- api/rounds/api_rounds.sma | 9 +++++++++ api/rounds/include/api_rounds.inc | 1 + 2 files changed, 10 insertions(+) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index 973b250..1152410 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -131,6 +131,7 @@ public plugin_natives() { register_native("Round_GetTime", "Native_GetTime"); register_native("Round_SetTime", "Native_SetTime"); register_native("Round_GetIntroTime", "Native_GetIntroTime"); + register_native("Round_GetStartTime", "Native_GetStartTime"); register_native("Round_GetRestartRoundTime", "Native_GetRestartRoundTime"); register_native("Round_GetRemainingTime", "Native_GetRemainingTime"); register_native("Round_IsFreezePeriod", "Native_IsFreezePeriod"); @@ -295,6 +296,14 @@ public Native_GetIntroTime(iPluginId, iArgc) { #endif } +public Float:Native_GetStartTime(iPluginId, iArgc) { + #if defined USE_CUSTOM_ROUNDS + return g_flRoundStartTime; + #else + return get_member_game(m_fRoundStartTime); + #endif +} + public Float:Native_GetRestartRoundTime(iPluginId, iArgc) { #if defined USE_CUSTOM_ROUNDS return g_flRestartRoundTime; diff --git a/api/rounds/include/api_rounds.inc b/api/rounds/include/api_rounds.inc index a9182c1..1760e00 100644 --- a/api/rounds/include/api_rounds.inc +++ b/api/rounds/include/api_rounds.inc @@ -10,6 +10,7 @@ native Round_TerminateRound(Float:fDelay = 0.0, iTeam = 0); native Round_SetTime(iTime); native Round_GetTime(); native Round_GetIntroTime(); +native Float:Round_GetStartTime(); native Float:Round_GetRestartRoundTime(); native Float:Round_GetRemainingTime(); native bool:Round_IsFreezePeriod(); From 652c4d188f3150f1c70323e16c5f14e9bb27ee52 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 22 Nov 2023 03:22:39 +0200 Subject: [PATCH 118/231] fix round restart --- api/rounds/api_rounds.sma | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index 1152410..3652c10 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -144,16 +144,16 @@ public plugin_natives() { } #if defined USE_CUSTOM_ROUNDS - public client_putinserver() { + public client_putinserver(pPlayer) { g_iPlayersNum++; - if (g_iPlayersNum < 2) { + if (g_iPlayersNum <= 2) { g_bCompleteReset = true; RestartRound(); } } - public client_disconnected() { + public client_disconnected(pPlayer) { g_iPlayersNum--; CheckWinConditions(); From 32b2bad822689b57579afe4cd4aa6a1e9015a404 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 22 Nov 2023 05:05:39 +0200 Subject: [PATCH 119/231] fix scale calculation --- api/waypoint-markers/api_waypoint_markers.sma | 3 +++ 1 file changed, 3 insertions(+) diff --git a/api/waypoint-markers/api_waypoint_markers.sma b/api/waypoint-markers/api_waypoint_markers.sma index 13793bb..ceaf66e 100644 --- a/api/waypoint-markers/api_waypoint_markers.sma +++ b/api/waypoint-markers/api_waypoint_markers.sma @@ -288,6 +288,9 @@ public FMHook_OnFreeEntPrivateData(pEntity) { vecAngles[0] = -vecAngles[0]; static iFov; iFov = get_ent_data(pPlayer, "CBasePlayer", "m_iFOV"); + + if (!iFov) iFov = 90; // HL FIX + static Float:flDistance; flDistance = xs_vec_distance(vecViewOrigin, vecOrigin); static Float:vecSize[3]; pev(this, pev_size, vecSize); static Float:vecForward[3]; angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecForward); From 698a9a351bc5d7cc748534efe98cd5b5ba5f48d7 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 22 Nov 2023 05:59:03 +0200 Subject: [PATCH 120/231] fix visibility check for Half-Life --- api/waypoint-markers/api_waypoint_markers.sma | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/api/waypoint-markers/api_waypoint_markers.sma b/api/waypoint-markers/api_waypoint_markers.sma index ceaf66e..379d316 100644 --- a/api/waypoint-markers/api_waypoint_markers.sma +++ b/api/waypoint-markers/api_waypoint_markers.sma @@ -274,23 +274,25 @@ public FMHook_OnFreeEntPrivateData(pEntity) { xs_vec_add_scaled(vecViewOrigin, vecVelocity, flDelay * flDelta, vecViewOrigin); } - if (!ExecuteHamB(Ham_FInViewCone, pPlayer, this)) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + static iFov; iFov = get_ent_data(pPlayer, "CBasePlayer", "m_iFOV"); + + // We have to fix default HL FOV, because it equal to 0 and we can't use it in calculations + if (!iFov) iFov = 90; + + // Default view cone test functions not working for Half-Life, so we have to use this stock + if (!UTIL_IsInViewCone(pPlayer, vecOrigin, float(iFov) / 2)) { StructSetCell(sPlayerData, MarkerPlayerData_ShouldHide, true); return; } - static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); - static Float:vecAngles[3]; xs_vec_sub(vecOrigin, vecViewOrigin, vecAngles); xs_vec_normalize(vecAngles, vecAngles); vector_to_angle(vecAngles, vecAngles); vecAngles[0] = -vecAngles[0]; - static iFov; iFov = get_ent_data(pPlayer, "CBasePlayer", "m_iFOV"); - - if (!iFov) iFov = 90; // HL FIX - static Float:flDistance; flDistance = xs_vec_distance(vecViewOrigin, vecOrigin); static Float:vecSize[3]; pev(this, pev_size, vecSize); static Float:vecForward[3]; angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecForward); @@ -385,3 +387,19 @@ Float:CalculateDistanceScaleFactor(Float:flDistance, iFov = 90) { return flScaleFactor; } + +stock bool:UTIL_IsInViewCone(pEntity, const Float:vecTarget[3], Float:fMaxAngle) { + static Float:vecOrigin[3]; ExecuteHamB(Ham_EyePosition, pEntity, vecOrigin); + + static Float:vecDir[3]; + xs_vec_sub(vecTarget, vecOrigin, vecDir); + xs_vec_normalize(vecDir, vecDir); + + static Float:vecForward[3]; + pev(pEntity, pev_v_angle, vecForward); + angle_vector(vecForward, ANGLEVECTOR_FORWARD, vecForward); + + new Float:flAngle = xs_rad2deg(xs_acos((vecDir[0] * vecForward[0]) + (vecDir[1] * vecForward[1]), radian)); + + return flAngle <= fMaxAngle; +} From 2f48a94b7acee7588d30f9b4c686914b0685dd7d Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 22 Nov 2023 20:57:00 +0200 Subject: [PATCH 121/231] fix round system --- api/rounds/api_rounds.sma | 103 ++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 53 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index 3652c10..d83db44 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -51,11 +51,10 @@ new g_pCvarRoundEndDelay; #endif #if defined USE_CUSTOM_ROUNDS - new g_iIntroRoundTime; - new g_iPlayersNum = 0; + new g_iIntroRoundTime = 2; new g_iRoundWinTeam = 0; new g_iRoundTime = 0; - new g_iRoundTimeSecs = 0; + new g_iRoundTimeSecs = 2; new g_iTotalRoundsPlayed = 0; new g_iMaxRounds = 0; new g_iMaxRoundsWon = 0; @@ -65,10 +64,11 @@ new g_pCvarRoundEndDelay; new Float:g_flNextPeriodicThink = 0.0; new Float:g_flNextThink = 0.0; new bool:g_bRoundTerminating = false; - new bool:g_bFreezePeriod = false; + new bool:g_bFreezePeriod = true; new bool:g_bGameStarted = false; new bool:g_bCompleteReset = false; new bool:g_bNeededPlayers = false; + new g_iSpawnablePlayersNum = 0; new g_rgiWinsNum[MAX_TEAMS]; #endif @@ -118,6 +118,9 @@ public plugin_init() { g_pCvarRestart = get_cvar_pointer("sv_restart"); g_pCvarRestartRound = get_cvar_pointer("sv_restartround"); + g_iMaxRounds = max(get_pcvar_num(g_pCvarMaxRounds), 0); + g_iMaxRoundsWon = max(get_pcvar_num(g_pCvarWinLimits), 0); + ReadMultiplayCvars(); #endif @@ -145,17 +148,10 @@ public plugin_natives() { #if defined USE_CUSTOM_ROUNDS public client_putinserver(pPlayer) { - g_iPlayersNum++; - - if (g_iPlayersNum <= 2) { - g_bCompleteReset = true; - RestartRound(); - } + CheckWinConditions(); } public client_disconnected(pPlayer) { - g_iPlayersNum--; - CheckWinConditions(); } @@ -436,20 +432,19 @@ UpdateTimer() { CheckWinConditions() { static iReturn; ExecuteForward(g_iFwCheckWinConditions, iReturn); + if (g_iRoundWinTeam) { + InitializePlayerCounts(); + return; + } + if (iReturn != PLUGIN_CONTINUE) return; - if (g_bGameStarted && g_iRoundWinTeam != 0) return; + if (g_bGameStarted && g_iRoundWinTeam) return; - g_bNeededPlayers = false; - NeededPlayersCheck(); + InitializePlayerCounts(); - // #if defined USE_CUSTOM_ROUNDS - // if (g_bGameStarted && g_iRoundWinTeam != WINSTATUS_NONE) return; + g_bNeededPlayers = false; - // if (g_iRoundWinTeam && g_fRoundEndTimeReal <= get_gametime()) { - // g_iGameState = GameState_NewRound; - // ExecuteForward(g_iFwNewRound); - // } - // #endif + if (NeededPlayersCheck()) return; } RestartRound() { @@ -475,7 +470,6 @@ UpdateTimer() { ReadMultiplayCvars(); g_iRoundTimeSecs = g_iIntroRoundTime; - g_flRoundStartTime = g_flRoundStartTimeReal = get_gametime(); CleanUpMap(); @@ -487,6 +481,8 @@ UpdateTimer() { PlayerRoundRespawn(pPlayer); } + CleanUpMap(); + g_flRestartRoundTime = 0.0; g_iRoundWinTeam = 0; g_bCompleteReset = false; @@ -500,9 +496,6 @@ UpdateTimer() { g_flRoundStartTime = g_flRoundStartTimeReal = get_gametime(); } - // if (CheckGameOver()) return; - // if (CheckTimeLimit()) return; - // if (CheckFragLimit()) return; if (CheckMaxRounds()) return; if (CheckWinLimit()) return; @@ -516,27 +509,15 @@ UpdateTimer() { RestartRound(); } - // CheckLevelInitialized(); - - static Float:flNextPeriodicThink; - - #if !defined USE_CUSTOM_ROUNDS - flNextPeriodicThink = get_member_game(m_tmNextPeriodicThink); - #else - flNextPeriodicThink = g_flNextPeriodicThink; - #endif - - if (flNextPeriodicThink < get_gametime()) { + if (g_flNextPeriodicThink <= get_gametime()) { CheckRestartRound(); - // m_tmNextPeriodicThink = get_gametime() + 1.0f; g_iMaxRounds = get_pcvar_num(g_pCvarMaxRounds); g_iMaxRoundsWon = get_pcvar_num(g_pCvarWinLimits); + g_flNextPeriodicThink = get_gametime() + 1.0; } } - // CheckGameOver() {} - bool:CheckMaxRounds() { if (g_iMaxRounds && g_iTotalRoundsPlayed >= g_iMaxRounds) { GoToIntermission(); @@ -591,15 +572,15 @@ UpdateTimer() { } CheckRoundTimeExpired() { - if (!g_iRoundTime) { - return false; - } + if (!g_iRoundTime) return; + if (!HasRoundTimeExpired()) return; - if (GetRoundRemainingTime() > 0 || g_iRoundWinTeam != 0) { - return false; - } + g_flRoundStartTime = get_gametime() + 60.0; + } - // m_fRoundStartTime = get_gametime() + 60.0; + HasRoundTimeExpired() { + if (!g_iRoundTime) return false; + if (GetRoundRemainingTime() > 0 || g_iRoundWinTeam != 0) return false; return true; } @@ -653,18 +634,25 @@ UpdateTimer() { } NeededPlayersCheck() { - if (!g_iPlayersNum) { + if (!g_iSpawnablePlayersNum) { + // log_message("#Game_scoring"); g_bNeededPlayers = true; g_bGameStarted = false; } - g_bFreezePeriod = false; - g_bCompleteReset = true; + if (!g_bGameStarted && g_iSpawnablePlayersNum) { + g_bFreezePeriod = false; + g_bCompleteReset = true; + + EndRoundMessage("Game Commencing!"); + TerminateRound(3.0, 0); + + g_bGameStarted = true; - EndRoundMessage("Game Commencing!"); - TerminateRound(3.0, 0); + return true; + } - g_bGameStarted = true; + return false; } TerminateRound(Float:flDelay, iTeam) { @@ -696,6 +684,15 @@ UpdateTimer() { // GetRoundRemainingTimeReal() { // return float(g_iRoundTimeSecs) - get_gametime() + g_flRoundStartTimeReal; // } + + InitializePlayerCounts() { + g_iSpawnablePlayersNum = 0; + + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + if (!is_user_connected(pPlayer)) continue; + g_iSpawnablePlayersNum++; + } + } #endif From 385df40d02b945373c2a5f9f9679d56bbfe9b0e6 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 22 Nov 2023 21:52:22 +0200 Subject: [PATCH 122/231] improve custom rounds api --- api/rounds/api_rounds.sma | 777 ++++++++++++++++-------------- api/rounds/include/api_rounds.inc | 1 + 2 files changed, 410 insertions(+), 368 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index d83db44..d7809ec 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -6,15 +6,7 @@ #include #tryinclude -#if !defined USE_CUSTOM_ROUNDS - #if !defined _reapi_included - #define USE_CUSTOM_ROUNDS - #endif -#endif - -#if defined USE_CUSTOM_ROUNDS - #define MAX_TEAMS 8 -#endif +#define MAX_TEAMS 8 enum GameState { GameState_NewRound, @@ -41,36 +33,33 @@ new g_iFwCheckWinConditions; new g_pCvarRoundEndDelay; -#if defined USE_CUSTOM_ROUNDS - new g_pCvarRoundTime; - new g_pCvarFreezeTime; - new g_pCvarMaxRounds; - new g_pCvarWinLimits; - new g_pCvarRestartRound; - new g_pCvarRestart; -#endif - -#if defined USE_CUSTOM_ROUNDS - new g_iIntroRoundTime = 2; - new g_iRoundWinTeam = 0; - new g_iRoundTime = 0; - new g_iRoundTimeSecs = 2; - new g_iTotalRoundsPlayed = 0; - new g_iMaxRounds = 0; - new g_iMaxRoundsWon = 0; - new Float:g_flRoundStartTime = 0.0; - new Float:g_flRoundStartTimeReal = 0.0; - new Float:g_flRestartRoundTime = 0.0; - new Float:g_flNextPeriodicThink = 0.0; - new Float:g_flNextThink = 0.0; - new bool:g_bRoundTerminating = false; - new bool:g_bFreezePeriod = true; - new bool:g_bGameStarted = false; - new bool:g_bCompleteReset = false; - new bool:g_bNeededPlayers = false; - new g_iSpawnablePlayersNum = 0; - new g_rgiWinsNum[MAX_TEAMS]; -#endif +new g_pCvarRoundTime; +new g_pCvarFreezeTime; +new g_pCvarMaxRounds; +new g_pCvarWinLimits; +new g_pCvarRestartRound; +new g_pCvarRestart; + +new bool:g_bUseCustomRounds = false; +new g_iIntroRoundTime = 2; +new g_iRoundWinTeam = 0; +new g_iRoundTime = 0; +new g_iRoundTimeSecs = 2; +new g_iTotalRoundsPlayed = 0; +new g_iMaxRounds = 0; +new g_iMaxRoundsWon = 0; +new Float:g_flRoundStartTime = 0.0; +new Float:g_flRoundStartTimeReal = 0.0; +new Float:g_flRestartRoundTime = 0.0; +new Float:g_flNextPeriodicThink = 0.0; +new Float:g_flNextThink = 0.0; +new bool:g_bRoundTerminating = false; +new bool:g_bFreezePeriod = true; +new bool:g_bGameStarted = false; +new bool:g_bCompleteReset = false; +new bool:g_bNeededPlayers = false; +new g_iSpawnablePlayersNum = 0; +new g_rgiWinsNum[MAX_TEAMS]; public plugin_precache() { g_bIsCStrike = !!cstrike_running(); @@ -79,18 +68,17 @@ public plugin_precache() { public plugin_init() { register_plugin("[API] Rounds", "2.1.0", "Hedgehog Fog"); - #if !defined USE_CUSTOM_ROUNDS + if (g_bIsCStrike) { register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0"); + } + + #if defined _reapi_included RegisterHookChain(RG_CSGameRules_RestartRound, "HC_RestartRound", .post = 0); RegisterHookChain(RG_CSGameRules_OnRoundFreezeEnd, "HC_OnRoundFreezeEnd_Post", .post = 1); RegisterHookChain(RG_RoundEnd, "HC_RoundEnd", .post = 1); RegisterHookChain(RG_CSGameRules_CheckWinConditions, "HC_CheckWinConditions", .post = 0); - #endif - #if defined USE_CUSTOM_ROUNDS - RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); - RegisterHamPlayer(Ham_Killed, "HamHook_Player_Killed", .Post = 0); - RegisterHamPlayer(Ham_Killed, "HamHook_Player_Killed_Post", .Post = 1); + g_pCvarRoundEndDelay = get_cvar_pointer("mp_round_restart_delay"); #endif g_iFwNewRound = CreateMultiForward("Round_Fw_NewRound", ET_IGNORE); @@ -101,34 +89,11 @@ public plugin_init() { g_iFwRoundTimerTick = CreateMultiForward("Round_Fw_RoundTimerTick", ET_IGNORE); g_iFwUpdateTimer = CreateMultiForward("Round_Fw_UpdateTimer", ET_IGNORE); g_iFwCheckWinConditions = CreateMultiForward("Round_Fw_CheckWinConditions", ET_STOP); - - #if defined USE_CUSTOM_ROUNDS - if (!cvar_exists("mp_roundtime")) register_cvar("mp_roundtime", "5.0"); - if (!cvar_exists("mp_freezetime")) register_cvar("mp_freezetime", "6.0"); - if (!cvar_exists("mp_maxrounds")) register_cvar("mp_maxrounds", "0"); - if (!cvar_exists("mp_winlimit")) register_cvar("mp_winlimit", "0"); - if (!cvar_exists("sv_restart")) register_cvar("sv_restart", "0"); - if (!cvar_exists("sv_restartround")) register_cvar("sv_restartround", "0"); - if (!cvar_exists("mp_round_restart_delay")) register_cvar("mp_round_restart_delay", "5.0"); - - g_pCvarRoundTime = get_cvar_pointer("mp_roundtime"); - g_pCvarFreezeTime = get_cvar_pointer("mp_freezetime"); - g_pCvarMaxRounds = get_cvar_pointer("mp_maxrounds"); - g_pCvarWinLimits = get_cvar_pointer("mp_winlimit"); - g_pCvarRestart = get_cvar_pointer("sv_restart"); - g_pCvarRestartRound = get_cvar_pointer("sv_restartround"); - - g_iMaxRounds = max(get_pcvar_num(g_pCvarMaxRounds), 0); - g_iMaxRoundsWon = max(get_pcvar_num(g_pCvarWinLimits), 0); - - ReadMultiplayCvars(); - #endif - - g_pCvarRoundEndDelay = get_cvar_pointer("mp_round_restart_delay"); } public plugin_natives() { register_library("api_rounds"); + register_native("Round_UseCustomRounds", "Native_UseCustomRounds"); register_native("Round_DispatchWin", "Native_DispatchWin"); register_native("Round_TerminateRound", "Native_TerminateRound"); register_native("Round_GetTime", "Native_GetTime"); @@ -146,50 +111,59 @@ public plugin_natives() { register_native("Round_CheckWinConditions", "Native_CheckWinConditions"); } -#if defined USE_CUSTOM_ROUNDS - public client_putinserver(pPlayer) { - CheckWinConditions(); - } +public client_putinserver(pPlayer) { + if (!g_bUseCustomRounds) return; - public client_disconnected(pPlayer) { - CheckWinConditions(); - } + CheckWinConditions(); +} - public HamHook_Player_Spawn_Post(pPlayer) { - if (!is_user_alive(pPlayer)) return; +public client_disconnected(pPlayer) { + if (!g_bUseCustomRounds) return; - if (g_bFreezePeriod) { - set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) | FL_FROZEN); - } else { - set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) & ~FL_FROZEN); - } - } + CheckWinConditions(); +} + +public HamHook_Player_Spawn_Post(pPlayer) { + if (!g_bUseCustomRounds) return; + if (!is_user_alive(pPlayer)) return; - public HamHook_Player_Killed(pPlayer) { + if (g_bFreezePeriod) { + set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) | FL_FROZEN); + } else { set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) & ~FL_FROZEN); } +} - public HamHook_Player_Killed_Post(pPlayer) { - CheckWinConditions(); - } -#endif +public HamHook_Player_Killed(pPlayer) { + if (!g_bUseCustomRounds) return; + + set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) & ~FL_FROZEN); +} + +public HamHook_Player_Killed_Post(pPlayer) { + if (!g_bUseCustomRounds) return; + + CheckWinConditions(); +} public server_frame() { static Float:flGameTime; flGameTime = get_gametime(); static Float:flNextPeriodicThink; - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { flNextPeriodicThink = g_flNextPeriodicThink; - #else - flNextPeriodicThink = get_member_game(m_tmNextPeriodicThink); - #endif + } else if (g_bIsCStrike) { + flNextPeriodicThink = get_gamerules_int("CHalfLifeMultiplay", "m_tmNextPeriodicThink"); + } else { + return; + } - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { if (g_flNextThink <= flGameTime) { RoundThink(); g_flNextThink = flGameTime + 0.1; } - #endif + } if (flNextPeriodicThink <= flGameTime) { ExecuteForward(g_iFwRoundTimerTick); @@ -198,15 +172,15 @@ public server_frame() { static Float:flStartTime; static bool:bFreezePeriod; - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { iRoundTimeSecs = g_iRoundTimeSecs; flStartTime = g_flRoundStartTimeReal; bFreezePeriod = g_bFreezePeriod; - #else - iRoundTimeSecs = get_member_game(m_iRoundTimeSecs); - flStartTime = get_member_game(m_fRoundStartTimeReal); - bFreezePeriod = get_member_game(m_bFreezePeriod); - #endif + } else if (g_bIsCStrike) { + iRoundTimeSecs = get_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs"); + flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fRoundStartTimeReal"); + bFreezePeriod = get_gamerules_int("CHalfLifeMultiplay", "m_bFreezePeriod"); + } if (!bFreezePeriod && flGameTime >= flStartTime + float(iRoundTimeSecs)) { ExecuteForward(g_iFwRoundExpired); @@ -214,22 +188,30 @@ public server_frame() { } } -#if !defined USE_CUSTOM_ROUNDS +#if defined _reapi_included public HC_RestartRound() { + if (g_bUseCustomRounds) return; + ExecuteForward(g_iFwRoundRestart); } public HC_OnRoundFreezeEnd_Post() { + if (g_bUseCustomRounds) return; + g_iGameState = GameState_RoundStarted; ExecuteForward(g_iFwRoundStart); } public Event_NewRound() { + if (g_bUseCustomRounds) return; + g_iGameState = GameState_NewRound; ExecuteForward(g_iFwNewRound); } public HC_RoundEnd(WinStatus:iStatus, ScenarioEventEndRound:iEvent, Float:flDelay) { + if (g_bUseCustomRounds) return; + new iTeam; switch (iStatus) { @@ -243,6 +225,8 @@ public server_frame() { } public HC_CheckWinConditions() { + if (g_bUseCustomRounds) return; + static iReturn; ExecuteForward(g_iFwCheckWinConditions, iReturn); @@ -252,6 +236,41 @@ public server_frame() { } #endif +StartCustomRounds() { + if (g_bUseCustomRounds) return; + + RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); + RegisterHamPlayer(Ham_Killed, "HamHook_Player_Killed", .Post = 0); + RegisterHamPlayer(Ham_Killed, "HamHook_Player_Killed_Post", .Post = 1); + + if (!cvar_exists("mp_roundtime")) register_cvar("mp_roundtime", "5.0"); + if (!cvar_exists("mp_freezetime")) register_cvar("mp_freezetime", "6.0"); + if (!cvar_exists("mp_maxrounds")) register_cvar("mp_maxrounds", "0"); + if (!cvar_exists("mp_winlimit")) register_cvar("mp_winlimit", "0"); + if (!cvar_exists("sv_restart")) register_cvar("sv_restart", "0"); + if (!cvar_exists("sv_restartround")) register_cvar("sv_restartround", "0"); + if (!cvar_exists("mp_round_restart_delay")) register_cvar("mp_round_restart_delay", "5.0"); + + g_pCvarRoundTime = get_cvar_pointer("mp_roundtime"); + g_pCvarFreezeTime = get_cvar_pointer("mp_freezetime"); + g_pCvarMaxRounds = get_cvar_pointer("mp_maxrounds"); + g_pCvarWinLimits = get_cvar_pointer("mp_winlimit"); + g_pCvarRestart = get_cvar_pointer("sv_restart"); + g_pCvarRestartRound = get_cvar_pointer("sv_restartround"); + g_pCvarRoundEndDelay = get_cvar_pointer("mp_round_restart_delay"); + + g_iMaxRounds = max(get_pcvar_num(g_pCvarMaxRounds), 0); + g_iMaxRoundsWon = max(get_pcvar_num(g_pCvarWinLimits), 0); + + ReadMultiplayCvars(); + + g_bUseCustomRounds = true; +} + +public Native_UseCustomRounds(iPluginId, iArgc) { + StartCustomRounds(); +} + public Native_DispatchWin(iPluginId, iArgc) { new iTeam = get_param(1); new Float:flDelay = get_param_f(2); @@ -263,19 +282,21 @@ public Native_TerminateRound(iPluginId, iArgc) { new Float:flDelay = get_param_f(1); new iTeam = get_param(2); -#if defined USE_CUSTOM_ROUNDS - TerminateRound(flDelay, iTeam); -#else + if (g_bUseCustomRounds) { + TerminateRound(flDelay, iTeam); + } else { DispatchWin(iTeam, flDelay); - #endif + } } public Native_GetTime(iPluginId, iArgc) { - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { return g_iRoundTimeSecs; - #else - return get_member_game(m_iRoundTimeSecs); - #endif + } else if (g_bIsCStrike) { + return get_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs"); + } + + return 0; } public Native_SetTime(iPluginId, iArgc) { @@ -285,27 +306,33 @@ public Native_SetTime(iPluginId, iArgc) { } public Native_GetIntroTime(iPluginId, iArgc) { - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { return g_iIntroRoundTime; - #else - return get_member_game(m_iIntroRoundTime); - #endif + } else if (g_bIsCStrike) { + return get_gamerules_int("CHalfLifeMultiplay", "m_iIntroRoundTime"); + } + + return 0; } public Float:Native_GetStartTime(iPluginId, iArgc) { - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { return g_flRoundStartTime; - #else - return get_member_game(m_fRoundStartTime); - #endif + } else if (g_bIsCStrike) { + return get_gamerules_float("CHalfLifeMultiplay", "m_fRoundStartTime"); + } + + return 0.0; } public Float:Native_GetRestartRoundTime(iPluginId, iArgc) { - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { return g_flRestartRoundTime; - #else - return get_member_game(m_flRestartRoundTime); - #endif + } else if (g_bIsCStrike) { + return get_gamerules_float("CHalfLifeMultiplay", "m_flRestartRoundTime"); + } + + return 0.0; } public Float:Native_GetRemainingTime(iPluginId, iArgc) { @@ -313,11 +340,13 @@ public Float:Native_GetRemainingTime(iPluginId, iArgc) { } public bool:Native_IsFreezePeriod(iPluginId, iArgc) { - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { return g_bFreezePeriod; - #else - return get_member_game(m_bFreezePeriod); - #endif + } else if (g_bIsCStrike) { + return get_gamerules_int("CHalfLifeMultiplay", "m_bFreezePeriod"); + } + + return false; } public bool:Native_IsRoundStarted(iPluginId, iArgc) { @@ -329,35 +358,43 @@ public bool:Native_IsRoundEnd(iPluginId, iArgc) { } public bool:Native_IsRoundTerminating(iPluginId, iArgc) { - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { return g_bRoundTerminating; - #else - return get_member_game(m_bRoundTerminating); - #endif + } else if (g_bIsCStrike) { + return get_gamerules_int("CHalfLifeMultiplay", "m_bRoundTerminating"); + } + + return false; } public bool:Native_IsPlayersNeeded(iPluginId, iArgc) { - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { return g_bNeededPlayers; - #else - return get_member_game(m_bNeededPlayers); - #endif + } else if (g_bIsCStrike) { + return get_gamerules_int("CHalfLifeMultiplay", "m_bNeededPlayers"); + } + + return false; } public bool:Native_IsCompleteReset(iPluginId, iArgc) { - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { return g_bCompleteReset; - #else - return get_member_game(m_bCompleteReset); - #endif + } else if (g_bIsCStrike) { + return get_gamerules_int("CHalfLifeMultiplay", "m_bCompleteReset"); + } + + return false; } public bool:Native_CheckWinConditions(iPluginId, iArgc) { - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { CheckWinConditions(); - #else - rg_check_win_conditions(); - #endif + } else { + #if defined _reapi_included + rg_check_win_conditions(); + #endif + } } DispatchWin(iTeam, Float:flDelay = -1.0) { @@ -369,41 +406,43 @@ DispatchWin(iTeam, Float:flDelay = -1.0) { if (!iTeam) return; - #if !defined USE_CUSTOM_ROUNDS - if (iTeam > 3) return; + if (!g_bUseCustomRounds) { + #if defined _reapi_included + if (iTeam > 3) return; - new WinStatus:iWinstatus = WINSTATUS_DRAW; - if (iTeam == 1) { - iWinstatus = WINSTATUS_TERRORISTS; - } else if (iTeam == 2) { - iWinstatus = WINSTATUS_CTS; - } + new WinStatus:iWinstatus = WINSTATUS_DRAW; + if (iTeam == 1) { + iWinstatus = WINSTATUS_TERRORISTS; + } else if (iTeam == 2) { + iWinstatus = WINSTATUS_CTS; + } - new ScenarioEventEndRound:iEvent = ROUND_END_DRAW; - if (iTeam == 1) { - iEvent = ROUND_TERRORISTS_WIN; - } else if (iTeam == 2) { - iEvent = ROUND_CTS_WIN; - } + new ScenarioEventEndRound:iEvent = ROUND_END_DRAW; + if (iTeam == 1) { + iEvent = ROUND_TERRORISTS_WIN; + } else if (iTeam == 2) { + iEvent = ROUND_CTS_WIN; + } - rg_round_end(flDelay, iWinstatus, iEvent, _, _, true); - rg_update_teamscores(iTeam == 2 ? 1 : 0, iTeam == 1 ? 1 : 0); - #else + rg_round_end(flDelay, iWinstatus, iEvent, _, _, true); + rg_update_teamscores(iTeam == 2 ? 1 : 0, iTeam == 1 ? 1 : 0); + #endif + } else { EndRound(flDelay, iTeam); - #endif + } } SetTime(iTime) { - #if defined USE_CUSTOM_ROUNDS + if (g_bUseCustomRounds) { g_iRoundTime = iTime; g_iRoundTimeSecs = iTime; g_flRoundStartTime = g_flRoundStartTimeReal; - #else - new flStartTime = get_member_game(m_fRoundStartTimeReal); - set_member_game(m_iRoundTime, iTime); - set_member_game(m_iRoundTimeSecs, iTime); - set_member_game(m_fRoundStartTime, flStartTime); - #endif + } else if (g_bIsCStrike) { + new Float:flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fRoundStartTimeReal"); + set_gamerules_int("CHalfLifeMultiplay", "m_iRoundTime", iTime); + set_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs", iTime); + set_gamerules_float("CHalfLifeMultiplay", "m_fRoundStartTime", flStartTime); + } UpdateTimer(); } @@ -423,287 +462,289 @@ UpdateTimer() { ExecuteForward(g_iFwUpdateTimer, _, iRemainingTime); } -#if defined USE_CUSTOM_ROUNDS - EndRound(const Float:flDelay, iTeam, const szMessage[] = "") { - EndRoundMessage(szMessage); - TerminateRound(flDelay, iTeam); - } +EndRound(const Float:flDelay, iTeam, const szMessage[] = "") { + EndRoundMessage(szMessage); + TerminateRound(flDelay, iTeam); +} - CheckWinConditions() { - static iReturn; ExecuteForward(g_iFwCheckWinConditions, iReturn); +CheckWinConditions() { + static iReturn; ExecuteForward(g_iFwCheckWinConditions, iReturn); - if (g_iRoundWinTeam) { - InitializePlayerCounts(); - return; - } + if (g_iRoundWinTeam) { + InitializePlayerCounts(); + return; + } - if (iReturn != PLUGIN_CONTINUE) return; - if (g_bGameStarted && g_iRoundWinTeam) return; + if (iReturn != PLUGIN_CONTINUE) return; + if (g_bGameStarted && g_iRoundWinTeam) return; - InitializePlayerCounts(); + InitializePlayerCounts(); + + g_bNeededPlayers = false; - g_bNeededPlayers = false; + if (NeededPlayersCheck()) return; +} - if (NeededPlayersCheck()) return; +RestartRound() { + if (!g_bCompleteReset) { + g_iTotalRoundsPlayed++; } - RestartRound() { - if (!g_bCompleteReset) { - g_iTotalRoundsPlayed++; + if (g_bCompleteReset) { + g_iTotalRoundsPlayed = 0; + g_iMaxRounds = max(get_pcvar_num(g_pCvarMaxRounds), 0); + g_iMaxRoundsWon = max(get_pcvar_num(g_pCvarWinLimits), 0); + + for (new i = 0; i < sizeof(g_rgiWinsNum); ++i) { + g_rgiWinsNum[i] = 0; } + } - if (g_bCompleteReset) { - g_iTotalRoundsPlayed = 0; - g_iMaxRounds = max(get_pcvar_num(g_pCvarMaxRounds), 0); - g_iMaxRoundsWon = max(get_pcvar_num(g_pCvarWinLimits), 0); + ExecuteForward(g_iFwRoundRestart); - for (new i = 0; i < sizeof(g_rgiWinsNum); ++i) { - g_rgiWinsNum[i] = 0; - } - } + g_bFreezePeriod = true; + g_bRoundTerminating = false; - ExecuteForward(g_iFwRoundRestart); + ReadMultiplayCvars(); - g_bFreezePeriod = true; - g_bRoundTerminating = false; + g_iRoundTimeSecs = g_iIntroRoundTime; + g_flRoundStartTime = g_flRoundStartTimeReal = get_gametime(); - ReadMultiplayCvars(); + CleanUpMap(); - g_iRoundTimeSecs = g_iIntroRoundTime; - g_flRoundStartTime = g_flRoundStartTimeReal = get_gametime(); + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + if (!is_user_connected(pPlayer)) continue; + if (pev(pPlayer, pev_flags) == FL_DORMANT) continue; - CleanUpMap(); + PlayerRoundRespawn(pPlayer); + } - for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { - if (!is_user_connected(pPlayer)) continue; - if (pev(pPlayer, pev_flags) == FL_DORMANT) continue; + CleanUpMap(); - PlayerRoundRespawn(pPlayer); - } + g_flRestartRoundTime = 0.0; + g_iRoundWinTeam = 0; + g_bCompleteReset = false; - CleanUpMap(); + g_iGameState = GameState_NewRound; + ExecuteForward(g_iFwNewRound); +} + +RoundThink() { + if (!g_flRoundStartTime) { + g_flRoundStartTime = g_flRoundStartTimeReal = get_gametime(); + } - g_flRestartRoundTime = 0.0; - g_iRoundWinTeam = 0; - g_bCompleteReset = false; + if (CheckMaxRounds()) return; + if (CheckWinLimit()) return; - g_iGameState = GameState_NewRound; - ExecuteForward(g_iFwNewRound); + if (g_bFreezePeriod) { + CheckFreezePeriodExpired(); + } else { + CheckRoundTimeExpired(); } - RoundThink() { - if (!g_flRoundStartTime) { - g_flRoundStartTime = g_flRoundStartTimeReal = get_gametime(); - } + if (g_flRestartRoundTime > 0.0 && g_flRestartRoundTime <= get_gametime()) { + RestartRound(); + } - if (CheckMaxRounds()) return; - if (CheckWinLimit()) return; + if (g_flNextPeriodicThink <= get_gametime()) { + CheckRestartRound(); - if (g_bFreezePeriod) { - CheckFreezePeriodExpired(); - } else { - CheckRoundTimeExpired(); - } + g_iMaxRounds = get_pcvar_num(g_pCvarMaxRounds); + g_iMaxRoundsWon = get_pcvar_num(g_pCvarWinLimits); + g_flNextPeriodicThink = get_gametime() + 1.0; + } +} - if (g_flRestartRoundTime > 0.0 && g_flRestartRoundTime <= get_gametime()) { - RestartRound(); - } +bool:CheckMaxRounds() { + if (g_iMaxRounds && g_iTotalRoundsPlayed >= g_iMaxRounds) { + GoToIntermission(); + return true; + } - if (g_flNextPeriodicThink <= get_gametime()) { - CheckRestartRound(); + return false; +} - g_iMaxRounds = get_pcvar_num(g_pCvarMaxRounds); - g_iMaxRoundsWon = get_pcvar_num(g_pCvarWinLimits); - g_flNextPeriodicThink = get_gametime() + 1.0; +bool:CheckWinLimit() { + if (g_iMaxRoundsWon) { + new iMaxWins = 0; + for (new i = 0; i < sizeof(g_rgiWinsNum); ++i) { + if (g_rgiWinsNum[i] > iMaxWins) iMaxWins = g_rgiWinsNum[i]; } - } - bool:CheckMaxRounds() { - if (g_iMaxRounds && g_iTotalRoundsPlayed >= g_iMaxRounds) { + if (iMaxWins >= g_iMaxRoundsWon) { GoToIntermission(); return true; } - - return false; } - bool:CheckWinLimit() { - if (g_iMaxRoundsWon) { - new iMaxWins = 0; - for (new i = 0; i < sizeof(g_rgiWinsNum); ++i) { - if (g_rgiWinsNum[i] > iMaxWins) iMaxWins = g_rgiWinsNum[i]; - } + return false; +} - if (iMaxWins >= g_iMaxRoundsWon) { - GoToIntermission(); - return true; - } - } +CheckFreezePeriodExpired() { + if (GetRoundRemainingTime() > 0.0) return; - return false; - } + log_message("World triggered ^"Round_Start^"\n"); - CheckFreezePeriodExpired() { - if (GetRoundRemainingTime() > 0.0) return; + g_bFreezePeriod = false; + g_flRoundStartTimeReal = g_flRoundStartTime = get_gametime(); + g_iRoundTimeSecs = g_iRoundTime; - log_message("World triggered ^"Round_Start^"\n"); + // for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + // if (!is_user_connected(pPlayer)) continue; + // if (pev(pPlayer, pev_flags) == FL_DORMANT) continue; - g_bFreezePeriod = false; - g_flRoundStartTimeReal = g_flRoundStartTime = get_gametime(); - g_iRoundTimeSecs = g_iRoundTime; - - // for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { - // if (!is_user_connected(pPlayer)) continue; - // if (pev(pPlayer, pev_flags) == FL_DORMANT) continue; - - // if (get_ent_data(pPlayer, "CBasePlayer", "m_iJoiningState") == JOINED) { - - // } - // } - - for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { - if (!is_user_connected(pPlayer)) continue; - if (!is_user_alive(pPlayer)) continue; - set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) & ~FL_FROZEN); - } + // if (get_ent_data(pPlayer, "CBasePlayer", "m_iJoiningState") == JOINED) { + + // } + // } - g_iGameState = GameState_RoundStarted; - ExecuteForward(g_iFwRoundStart); + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + if (!is_user_connected(pPlayer)) continue; + if (!is_user_alive(pPlayer)) continue; + set_pev(pPlayer, pev_flags, pev(pPlayer, pev_flags) & ~FL_FROZEN); } - CheckRoundTimeExpired() { - if (!g_iRoundTime) return; - if (!HasRoundTimeExpired()) return; + g_iGameState = GameState_RoundStarted; + ExecuteForward(g_iFwRoundStart); +} - g_flRoundStartTime = get_gametime() + 60.0; - } +CheckRoundTimeExpired() { + if (!g_iRoundTime) return; + if (!HasRoundTimeExpired()) return; - HasRoundTimeExpired() { - if (!g_iRoundTime) return false; - if (GetRoundRemainingTime() > 0 || g_iRoundWinTeam != 0) return false; + g_flRoundStartTime = get_gametime() + 60.0; +} - return true; - } +HasRoundTimeExpired() { + if (!g_iRoundTime) return false; + if (GetRoundRemainingTime() > 0 || g_iRoundWinTeam != 0) return false; - // CheckLevelInitialized() {} + return true; +} - RestartRoundCheck(Float:flDelay) { - log_message("World triggered ^"Restart_Round_(%d_%s)^"^n", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "second" : "seconds"); +// CheckLevelInitialized() {} - // let the players know - client_print(0, print_center, "The game will restart in %d %s", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "SECOND" : "SECONDS"); - client_print(0, print_console, "The game will restart in %d %s", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "SECOND" : "SECONDS"); +RestartRoundCheck(Float:flDelay) { + log_message("World triggered ^"Restart_Round_(%d_%s)^"^n", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "second" : "seconds"); - g_flRestartRoundTime = get_gametime() + flDelay; - g_bCompleteReset = true; + // let the players know + client_print(0, print_center, "The game will restart in %d %s", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "SECOND" : "SECONDS"); + client_print(0, print_console, "The game will restart in %d %s", floatround(flDelay, floatround_floor), (flDelay == 1.0) ? "SECOND" : "SECONDS"); - set_pcvar_num(g_pCvarRestartRound, 0); - set_pcvar_num(g_pCvarRestart, 0); - } + g_flRestartRoundTime = get_gametime() + flDelay; + g_bCompleteReset = true; - CheckRestartRound() { - new iRestartDelay = get_pcvar_num(g_pCvarRestartRound); + set_pcvar_num(g_pCvarRestartRound, 0); + set_pcvar_num(g_pCvarRestart, 0); +} - if (!iRestartDelay) { - iRestartDelay = get_pcvar_num(g_pCvarRestart); - } +CheckRestartRound() { + new iRestartDelay = get_pcvar_num(g_pCvarRestartRound); - if (iRestartDelay) { - RestartRoundCheck(float(iRestartDelay)); - } + if (!iRestartDelay) { + iRestartDelay = get_pcvar_num(g_pCvarRestart); } - // FPlayerCanRespawn() { - // return true; - // } - - GoToIntermission() { - message_begin(MSG_ALL, SVC_INTERMISSION); - message_end(); + if (iRestartDelay) { + RestartRoundCheck(float(iRestartDelay)); } +} - PlayerRoundRespawn(pPlayer) { - #pragma unused pPlayer - } +// FPlayerCanRespawn() { +// return true; +// } - CleanUpMap() {} +GoToIntermission() { + message_begin(MSG_ALL, SVC_INTERMISSION); + message_end(); +} - ReadMultiplayCvars() { - g_iRoundTime = floatround(get_pcvar_float(g_pCvarRoundTime) * 60, floatround_floor); - g_iIntroRoundTime = floatround(get_pcvar_float(g_pCvarFreezeTime), floatround_floor); - } +PlayerRoundRespawn(pPlayer) { + #pragma unused pPlayer +} - NeededPlayersCheck() { - if (!g_iSpawnablePlayersNum) { - // log_message("#Game_scoring"); - g_bNeededPlayers = true; - g_bGameStarted = false; - } +CleanUpMap() {} + +ReadMultiplayCvars() { + g_iRoundTime = floatround(get_pcvar_float(g_pCvarRoundTime) * 60, floatround_floor); + g_iIntroRoundTime = floatround(get_pcvar_float(g_pCvarFreezeTime), floatround_floor); +} - if (!g_bGameStarted && g_iSpawnablePlayersNum) { - g_bFreezePeriod = false; - g_bCompleteReset = true; +NeededPlayersCheck() { + if (!g_iSpawnablePlayersNum) { + // log_message("#Game_scoring"); + g_bNeededPlayers = true; + g_bGameStarted = false; + } - EndRoundMessage("Game Commencing!"); - TerminateRound(3.0, 0); + if (!g_bGameStarted && g_iSpawnablePlayersNum) { + g_bFreezePeriod = false; + g_bCompleteReset = true; - g_bGameStarted = true; + EndRoundMessage("Game Commencing!"); + TerminateRound(3.0, 0); - return true; - } + g_bGameStarted = true; - return false; + return true; } - TerminateRound(Float:flDelay, iTeam) { - g_iRoundWinTeam = iTeam; - g_flRestartRoundTime = get_gametime() + flDelay; - g_bRoundTerminating = true; - g_iGameState = GameState_RoundEnd; + return false; +} - ExecuteForward(g_iFwRoundEnd, _, iTeam); - } +TerminateRound(Float:flDelay, iTeam) { + g_iRoundWinTeam = iTeam; + g_flRestartRoundTime = get_gametime() + flDelay; + g_bRoundTerminating = true; + g_iGameState = GameState_RoundEnd; - EndRoundMessage(const szSentence[]) { - static szMessage[64]; + ExecuteForward(g_iFwRoundEnd, _, iTeam); +} - if (szSentence[0] == '#') { - copy(szMessage, charsmax(szMessage), szSentence[1]); - } else { - copy(szMessage, charsmax(szMessage), szSentence); - } +EndRoundMessage(const szSentence[]) { + static szMessage[64]; - if (!equal(szSentence, NULL_STRING)) { - client_print(0, print_center, szSentence); - log_message("World triggered ^"%s^"^n", szMessage); - } + if (szSentence[0] == '#') { + copy(szMessage, charsmax(szMessage), szSentence[1]); + } else { + copy(szMessage, charsmax(szMessage), szSentence); + } - log_message("World triggered ^"Round_End^"^n"); + if (!equal(szSentence, NULL_STRING)) { + client_print(0, print_center, szSentence); + log_message("World triggered ^"%s^"^n", szMessage); } - // GetRoundRemainingTimeReal() { - // return float(g_iRoundTimeSecs) - get_gametime() + g_flRoundStartTimeReal; - // } + log_message("World triggered ^"Round_End^"^n"); +} - InitializePlayerCounts() { - g_iSpawnablePlayersNum = 0; +// GetRoundRemainingTimeReal() { +// return float(g_iRoundTimeSecs) - get_gametime() + g_flRoundStartTimeReal; +// } - for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { - if (!is_user_connected(pPlayer)) continue; - g_iSpawnablePlayersNum++; - } - } -#endif +InitializePlayerCounts() { + g_iSpawnablePlayersNum = 0; + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + if (!is_user_connected(pPlayer)) continue; + g_iSpawnablePlayersNum++; + } +} Float:GetRoundRemainingTime() { - #if defined USE_CUSTOM_ROUNDS - static Float:flStartTime; flStartTime = g_flRoundStartTimeReal; - static iTime; iTime = g_iRoundTimeSecs; - #else - static Float:flStartTime; flStartTime = get_member_game(m_fRoundStartTimeReal); - static iTime; iTime = get_member_game(m_iRoundTimeSecs); - #endif + static Float:flStartTime; + static iTime; + + if (g_bUseCustomRounds) { + flStartTime = g_flRoundStartTimeReal; + iTime = g_iRoundTimeSecs; + } else if (g_bIsCStrike) { + flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fRoundStartTimeReal"); + iTime = get_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs"); + } else { + return 0.0; + } return float(iTime) - get_gametime() + flStartTime; } diff --git a/api/rounds/include/api_rounds.inc b/api/rounds/include/api_rounds.inc index 1760e00..a15c186 100644 --- a/api/rounds/include/api_rounds.inc +++ b/api/rounds/include/api_rounds.inc @@ -5,6 +5,7 @@ #pragma reqlib api_rounds +native Round_UseCustomRounds(); native Round_DispatchWin(iTeam, Float:fDelay = -1.0); native Round_TerminateRound(Float:fDelay = 0.0, iTeam = 0); native Round_SetTime(iTime); From 2e3950a388c870588f3b752ea16538fd4e882aa4 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 22 Nov 2023 22:33:27 +0200 Subject: [PATCH 123/231] add CEFunction_Invalid constant --- api/custom-entities/include/api_custom_entities.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index a4f6e99..d4805aa 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -47,6 +47,7 @@ enum CEPreset { }; enum CEFunction { + CEFunction_Invalid = -1, CEFunction_KVD, // Calls when new key value obtained CEFunction_Spawn, // Calls during entity spawn CEFunction_Init, // Calls when entity is initialized (on first spawn) From ce5ae4f45ceaab566dc326704dd018ef76989f94 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 23 Nov 2023 00:25:06 +0200 Subject: [PATCH 124/231] update readme --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 11118fb..17d9911 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,12 @@ -## 🛠️ CS Modding Kit 🇺🇦 +## 🛠️ Modding Kit 🇺🇦 ### 📄 About -__CS Modding Kit__ is a powerful solutions for Counter-Strike modding that can be used to create complex mods for a short time with flexible solutions using a unified development approach. I continue working on this repository and plan many new solutions in the future as well as move my mods to this solution to create examples and a good code base. +__CS Modding Kit__ is a powerful solutions for Amx Mod X modding that can be used to create complex mods for a short time with flexible solutions using a unified development approach. I continue working on this repository and plan many new solutions in the future as well as move my mods to this solution to create examples and a good code base. Focus on game logic instead of crutches for native stuff. + +### ❔Why Modding Kit? +- Powerful, rasy to use and flexible game systems +- Unified system easy to maintain +- Cross-game development (you can create mods that will work with both **Counter-Strike** and **Half-Life**) ### 🔽 Download latest: - [Releases](./releases) From 53675e92e1d2acb0c218c71e190ac4701aab36f0 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 26 Nov 2023 20:22:57 +0200 Subject: [PATCH 125/231] fix return value --- api/rounds/api_rounds.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index d7809ec..d53db20 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -225,7 +225,7 @@ public server_frame() { } public HC_CheckWinConditions() { - if (g_bUseCustomRounds) return; + if (g_bUseCustomRounds) return HC_CONTINUE; static iReturn; From 852f5c60c7fd41fc1830e63547c9fc67741e8b38 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 4 Feb 2024 10:53:32 +0100 Subject: [PATCH 126/231] fix cstrike variables --- api/rounds/api_rounds.sma | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index d53db20..d63d287 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -153,7 +153,7 @@ public server_frame() { if (g_bUseCustomRounds) { flNextPeriodicThink = g_flNextPeriodicThink; } else if (g_bIsCStrike) { - flNextPeriodicThink = get_gamerules_int("CHalfLifeMultiplay", "m_tmNextPeriodicThink"); + flNextPeriodicThink = get_gamerules_float("CHalfLifeMultiplay", "m_tmNextPeriodicThink"); } else { return; } @@ -178,8 +178,8 @@ public server_frame() { bFreezePeriod = g_bFreezePeriod; } else if (g_bIsCStrike) { iRoundTimeSecs = get_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs"); - flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fRoundStartTimeReal"); - bFreezePeriod = get_gamerules_int("CHalfLifeMultiplay", "m_bFreezePeriod"); + flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fIntroRoundCount"); + bFreezePeriod = get_gamerules_int("CGameRules", "m_bFreezePeriod"); } if (!bFreezePeriod && flGameTime >= flStartTime + float(iRoundTimeSecs)) { @@ -438,7 +438,7 @@ SetTime(iTime) { g_iRoundTimeSecs = iTime; g_flRoundStartTime = g_flRoundStartTimeReal; } else if (g_bIsCStrike) { - new Float:flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fRoundStartTimeReal"); + new Float:flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fIntroRoundCount"); set_gamerules_int("CHalfLifeMultiplay", "m_iRoundTime", iTime); set_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs", iTime); set_gamerules_float("CHalfLifeMultiplay", "m_fRoundStartTime", flStartTime); @@ -740,7 +740,7 @@ Float:GetRoundRemainingTime() { flStartTime = g_flRoundStartTimeReal; iTime = g_iRoundTimeSecs; } else if (g_bIsCStrike) { - flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fRoundStartTimeReal"); + flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fIntroRoundCount"); iTime = get_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs"); } else { return 0.0; From f1ca0401ddac405d7a3376288db4b9728d6dfbd4 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 6 Feb 2024 19:18:00 +0100 Subject: [PATCH 127/231] fix touched hook --- api/custom-entities/api_custom_entities.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index e1f9f4e..65daab9 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -1014,7 +1014,7 @@ ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { callfunc_push_int(pEntity); switch (iFunction) { - case CEFunction_Touch: { + case CEFunction_Touch, CEFunction_Touched: { new pToucher = getarg(3); callfunc_push_int(pToucher); } From c780048a5501825c7ee3e7d82d0952fc527ef96f Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 26 Feb 2024 19:24:00 +0100 Subject: [PATCH 128/231] add traverse type getter for area and segment --- api/navsystem/api_navsystem.sma | 18 ++++++++++++++++++ api/navsystem/include/api_navsystem.inc | 2 ++ 2 files changed, 20 insertions(+) diff --git a/api/navsystem/api_navsystem.sma b/api/navsystem/api_navsystem.sma index 95fd5ed..fbb7da6 100644 --- a/api/navsystem/api_navsystem.sma +++ b/api/navsystem/api_navsystem.sma @@ -202,6 +202,7 @@ public plugin_natives() { register_native("Nav_IsAreaVisible", "Native_IsAreaVisible"); register_native("Nav_Area_GetAttributes", "Native_Area_GetAttributes"); + register_native("Nav_Area_GetParentHow", "Native_Area_GetParentHow"); register_native("Nav_Area_GetCenter", "Native_Area_GetCenter"); register_native("Nav_Area_GetId", "Native_Area_GetId"); register_native("Nav_Area_Contains", "Native_Area_Contains"); @@ -221,6 +222,7 @@ public plugin_natives() { register_native("Nav_Path_IsValid", "Native_Path_IsValid"); register_native("Nav_Path_GetSegments", "Native_Path_GetSegments"); register_native("Nav_Path_Segment_GetPos", "Native_Path_Segment_GetPos"); + register_native("Nav_Path_Segment_GetHow", "Native_Path_Segment_GetHow"); register_native("Nav_Path_Find", "Native_Path_Find"); register_native("Nav_Path_FindTask_GetUserToken", "Native_Path_FindTask_GetUserToken"); @@ -340,6 +342,12 @@ public NavAttributeType:Native_Area_GetAttributes(iPluginId, iArgc) { return @NavArea_GetAttributes(sArea); } +public NavTraverseType:Native_Area_GetParentHow(iPluginId, iArgc) { + new Struct:sArea = Struct:get_param(1); + + return @NavArea_GetParentHow(sArea); +} + public Native_Area_GetCenter(iPluginId, iArgc) { new Struct:sArea = Struct:get_param(1); @@ -399,6 +407,12 @@ public Native_Path_Segment_GetPos(iPluginId, iArgc) { set_array_f(2, vecPos, sizeof(vecPos)); } +public NavTraverseType:Native_Path_Segment_GetHow(iPluginId, iArgc) { + new Struct:sSegment = Struct:get_param(1); + + return StructGetCell(sSegment, PathSegment_How); +} + public Native_Area_GetId(iPluginId, iArgc) { new Struct:sArea = Struct:get_param(1); @@ -811,6 +825,10 @@ NavAttributeType:@NavArea_GetAttributes(const &Struct:this) { return StructGetCell(this, NavArea_AttributeFlags); } +NavTraverseType:@NavArea_GetParentHow(const &Struct:this) { + return StructGetCell(this, NavArea_ParentHow); +} + bool:@NavArea_IsClosed(const &Struct:this) { return @NavArea_IsMarked(this) && !@NavArea_IsOpen(this); } diff --git a/api/navsystem/include/api_navsystem.inc b/api/navsystem/include/api_navsystem.inc index e99f132..0680986 100644 --- a/api/navsystem/include/api_navsystem.inc +++ b/api/navsystem/include/api_navsystem.inc @@ -32,6 +32,7 @@ native bool:Nav_IsAreaVisible(const Float:vecPos[3], NavArea:pArea); native Nav_Area_GetId(NavArea:pArea); native NavAttributeType:Nav_Area_GetAttributes(NavArea:pArea); +native NavTraverseType:Nav_Area_GetParentHow(NavArea:pArea); native Nav_Area_GetCenter(NavArea:pArea, Float:vecOut[3]); native bool:Nav_Area_Contains(NavArea:pArea, const Float:vecPoint[3]); native bool:Nav_Area_IsCoplanar(NavArea:pArea, NavArea:pOther); @@ -85,3 +86,4 @@ native bool:Nav_Path_FindTask_IsTerminated(NavBuildPathTask:pTask); native any:Nav_Path_FindTask_GetUserToken(NavBuildPathTask:pTask); native Nav_Path_Segment_GetPos(NavPathSegment:pSegment, Float:vecOut[3]); +native NavTraverseType:Nav_Path_Segment_GetHow(NavPathSegment:pSegment); From 580dfdc912413895e623539bcefcada0f4453dfd Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 26 Feb 2024 19:56:07 +0100 Subject: [PATCH 129/231] add navsystem api example example --- api/navsystem/README.md | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 api/navsystem/README.md diff --git a/api/navsystem/README.md b/api/navsystem/README.md new file mode 100644 index 0000000..828cd56 --- /dev/null +++ b/api/navsystem/README.md @@ -0,0 +1,42 @@ +# Example + +```pawn +@Entity_FindPath(this, Float:vecTarget[3]) { + static Float:vecOrigin[3]; + pev(this, pev_origin, vecOrigin); + + new NavBuildPathTask:pTask = Nav_Path_Find(vecOrigin, vecTarget, "NavPathCallback", this, this, "NavPathCost"); + CE_SetMember(this, m_pFindPathTask, pTask); +} + +public NavPathCallback(NavBuildPathTask:pTask) { + new pEntity = Nav_Path_FindTask_GetUserToken(pTask); + new NavPath:pPath = Nav_Path_FindTask_GetPath(pTask); + new Array:irgSegments = Nav_Path_GetSegments(pPath); + + new Array:irgPath = CE_GetMember(pEntity, m_irgPath); + ArrayClear(irgPath); + + for (new i = 0; i < ArraySize(irgSegments); ++i) { + new NavPathSegment:pSegment = ArrayGetCell(irgSegments, i); + static Float:vecPos[3]; + Nav_Path_Segment_GetPos(pSegment, vecPos); + ArrayPushArray(irgPath, vecPos, sizeof(vecPos)); + } + + CE_SetMember(pEntity, m_pFindPathTask, Invalid_NavBuildPathTask); +} + + +public Float:NavPathCost(NavBuildPathTask:pTask, NavArea:newArea, NavArea:prevArea) { + if (Nav_Area_GetAttributes(newArea) & NAV_JUMP) { + return -1.0; + } + + if (Nav_Area_GetAttributes(newArea) & NAV_CROUCH) { + return -1.0; + } + + return 1.0; +} +``` \ No newline at end of file From 04171110c9f5c4dc407cef9d33c71c0d77ded48b Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 26 Feb 2024 19:56:36 +0100 Subject: [PATCH 130/231] add StructCopy function --- util/cellstruct.inc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/util/cellstruct.inc b/util/cellstruct.inc index b1b7656..5f6a2ed 100644 --- a/util/cellstruct.inc +++ b/util/cellstruct.inc @@ -31,6 +31,14 @@ stock StructSize(const &Struct:which) { return ArraySize(Array:which); } +stock StructCopy(const &Struct:which, &Struct:other) { + new size = min(StructSize(which), StructSize(other)); + + for (new i = 0; i < size; ++i) { + StructSetCell(other, i, StructGetCell(which, i)); + } +} + stock StructDestroy(&Struct:which) { ArrayDestroy(Array:which); which = Invalid_Struct; From 1e7e1e8ae0f7f9f501f07b77c4172187ac9fcc87 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 27 Feb 2024 15:05:10 +0100 Subject: [PATCH 131/231] fix custom events api --- api/custom-events/api_custom_events.sma | 6 +++--- api/custom-events/include/api_custom_events.inc | 11 +---------- .../include/api_custom_events_const.inc | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 13 deletions(-) create mode 100644 api/custom-events/include/api_custom_events_const.inc diff --git a/api/custom-events/api_custom_events.sma b/api/custom-events/api_custom_events.sma index 4b01895..30791e0 100644 --- a/api/custom-events/api_custom_events.sma +++ b/api/custom-events/api_custom_events.sma @@ -5,7 +5,7 @@ #include -#include +#include #define PLUGIN "[API] Custom Events" #define VERSION "1.0.0" @@ -138,10 +138,10 @@ public Native_EmitEvent(iPluginId, iArgc) { static iParamsNum; iParamsNum = ArraySize(irgParamTypes); for (new iEventParam = 0; iEventParam < iParamsNum; ++iEventParam) { - static iParam; iParam = 3 + iEventParam; + static iParam; iParam = 2 + iEventParam; static iType; iType = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Type); static iSize; iSize = ArrayGetCell(irgParamTypes, iEventParam, _:EventParam_Size); - static bool:bUseDefault; bUseDefault = iParam >= iArgc; + static bool:bUseDefault; bUseDefault = iParam > iArgc; switch (iType) { case EP_Cell: { diff --git a/api/custom-events/include/api_custom_events.inc b/api/custom-events/include/api_custom_events.inc index 745cb5b..3952d21 100644 --- a/api/custom-events/include/api_custom_events.inc +++ b/api/custom-events/include/api_custom_events.inc @@ -5,16 +5,7 @@ #pragma reqlib api_custom_events -#define MAX_CUSTOM_EVENT_KEY_LENGTH 64 - -enum { - EP_Invalid = -1, - EP_Cell, - EP_Float, - EP_String, - EP_Array, - EP_FloatArray -}; +#include /** * Registers a custom event with the specified ID and parameter types. diff --git a/api/custom-events/include/api_custom_events_const.inc b/api/custom-events/include/api_custom_events_const.inc new file mode 100644 index 0000000..16a453e --- /dev/null +++ b/api/custom-events/include/api_custom_events_const.inc @@ -0,0 +1,15 @@ +#if defined _api_custom_events_const_included + #endinput +#endif +#define _api_custom_events_const_included + +#define MAX_CUSTOM_EVENT_KEY_LENGTH 64 + +enum { + EP_Invalid = -1, + EP_Cell, + EP_Float, + EP_String, + EP_Array, + EP_FloatArray +}; \ No newline at end of file From 1e54641d8d547152f4902392a19abfd4e6d778e2 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 27 Feb 2024 15:48:29 +0100 Subject: [PATCH 132/231] add custom methods functionality --- api/custom-entities/api_custom_entities.sma | 221 +++++++++++++++++- .../include/api_custom_entities.inc | 84 ++----- .../include/api_custom_entities_const.inc | 77 ++++++ 3 files changed, 314 insertions(+), 68 deletions(-) create mode 100644 api/custom-entities/include/api_custom_entities_const.inc diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 65daab9..97f8379 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -5,16 +5,29 @@ #include #include #include +#include #include -#include +#include + +#include + +#define DEFAULT_CELL_VALUE 0 +#define DEFAULT_FLOAT_VALUE 0.0 +#define DEFAULT_STRING_VALUE NULL_STRING #define LOG_PREFIX "[CE]" +enum MethodParam { + MethodParam_Type = 0, + MethodParam_Size +}; + enum CEData { Array:CEData_Name, Array:CEData_Preset, - Array:CEData_Hooks[CEFunction] + Array:CEData_Hooks[CEFunction], + Array:CEData_Methods }; enum CEHookData { @@ -22,8 +35,18 @@ enum CEHookData { CEHookData_FuncID }; +enum CEMethodData { + CEMethodData_PluginID, + CEMethodData_FunctionID, + Array:CEMethodData_ParamTypes +}; + enum _:GLOBALESTATE { GLOBAL_OFF = 0, GLOBAL_ON = 1, GLOBAL_DEAD = 2 }; +new g_szBuffer[MAX_STRING_LENGTH]; +new g_rgiBuffer[MAX_STRING_LENGTH]; +new Float:g_rgflBuffer[MAX_STRING_LENGTH]; + new g_iszBaseClassName; new Trie:g_itPData = Invalid_Trie; @@ -75,6 +98,7 @@ public plugin_natives() { register_native("CE_Restart", "Native_Restart"); register_native("CE_RegisterHook", "Native_RegisterHook"); + register_native("CE_RegisterMethod", "Native_RegisterMethod"); register_native("CE_GetHandler", "Native_GetHandler"); register_native("CE_GetHandlerByEntity", "Native_GetHandlerByEntity"); @@ -87,6 +111,7 @@ public plugin_natives() { register_native("CE_SetMemberVec", "Native_SetMemberVec"); register_native("CE_GetMemberString", "Native_GetMemberString"); register_native("CE_SetMemberString", "Native_SetMemberString"); + register_native("CE_CallMethod", "Native_CallMethod"); } public plugin_end() { @@ -150,6 +175,31 @@ public Native_RegisterHook(iPluginId, iArgc) { RegisterEntityHook(iFunction, szClassname, szCallback, iPluginId); } +public Native_RegisterMethod(iPluginId, iArgc) { + new szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + new szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + new szCallback[CE_MAX_CALLBACK_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); + + new Array:irgParamTypes; irgParamTypes = ArrayCreate(_:MethodParam, iArgc - 1); + + for (new iParam = 4; iParam <= iArgc; ++iParam) { + new rgParam[MethodParam]; + rgParam[MethodParam_Type] = get_param_byref(iParam); + rgParam[MethodParam_Size] = 1; + + switch (rgParam[MethodParam_Type]) { + case CE_MP_Array, CE_MP_FloatArray: { + rgParam[MethodParam_Size] = get_param_byref(iParam + 1); + iParam++; + } + } + + ArrayPushArray(irgParamTypes, rgParam[any:0], _:MethodParam); + } + + RegisterEntityMethod(szClassName, szMethod, szCallback, iPluginId, irgParamTypes); +} + public Native_GetHandler(iPluginId, iArgc) { static szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); @@ -265,6 +315,76 @@ public Native_SetMemberString(iPluginId, iArgc) { SetPDataMemberString(itPData, szMember, szValue); } +public any:Native_CallMethod(iPluginId, iArgc) { + static pEntity; pEntity = get_param(1); + static szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + + if (!@Entity_IsCustom(pEntity)) return 0; + + static Trie:itPData; itPData = @Entity_GetPData(pEntity); + static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); + static Trie:itMethods; itMethods = ArrayGetCell(g_rgCEData[CEData_Methods], iId); + + static rgMethod[CEMethodData]; + if (!TrieGetArray(itMethods, szMethod, rgMethod[CEMethodData:0], _:CEMethodData)) { + log_error(AMX_ERR_NATIVE, "%s The method ^"%s^" is not registered for the entity %d!", LOG_PREFIX, szMethod, pEntity); + return 0; + } + + static Array:irgParamTypes; irgParamTypes = rgMethod[CEMethodData_ParamTypes]; + static DataPack:dpParams; dpParams = CreateDataPack(); + + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { + static iParam; iParam = 3 + iMethodParam; + static iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Type); + static iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Size); + static bool:bUseDefault; bUseDefault = iParam > iArgc; + + switch (iType) { + case CE_MP_Cell: { + WritePackCell(dpParams, bUseDefault ? DEFAULT_CELL_VALUE : get_param_byref(iParam)); + } + case CE_MP_Float: { + WritePackFloat(dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:get_param_byref(iParam)); + } + case CE_MP_String: { + if (bUseDefault) { + copy(g_szBuffer, sizeof(g_szBuffer), DEFAULT_STRING_VALUE); + } else { + get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); + } + + WritePackString(dpParams, g_szBuffer); + } + case CE_MP_Array: { + if (bUseDefault) { + arrayset(g_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + get_array(iParam, g_rgiBuffer, iSize); + } + + WritePackArray(dpParams, g_rgiBuffer, iSize); + } + case CE_MP_FloatArray: { + if (bUseDefault) { + arrayset(g_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + get_array_f(iParam, g_rgflBuffer, iSize); + } + + WritePackFloatArray(dpParams, g_rgflBuffer, iSize); + } + } + } + + ResetPack(dpParams); + new any:result = @Entity_CallMethod(pEntity, szMethod, dpParams); + DestroyDataPack(dpParams); + + return result; +} + /*--------------------------------[ Commands ]--------------------------------*/ public Command_Spawn(pPlayer, iLevel, iCId) { @@ -474,7 +594,7 @@ bool:@Entity_IsCustom(this) { static szModel[MAX_RESOURCE_PATH_LENGTH]; pev(this, pev_model, szModel, charsmax(szModel)); - CE_SetMember(this, CE_MEMBER_IGNOREROUNDS, false); + SetPDataMember(itPData, CE_MEMBER_IGNOREROUNDS, false); ExecuteHookFunction(CEFunction_Init, iId, this); @@ -866,6 +986,54 @@ Trie:@Entity_AllocPData(this, iId) { set_pev(this, pev_iStepLeft, 0); } +any:@Entity_CallMethod(this, const szMethod[], DataPack:dpParams) { + static Trie:itPData; itPData = @Entity_GetPData(this); + static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); + static Trie:itMethods; itMethods = ArrayGetCell(g_rgCEData[CEData_Methods], iId); + static rgMethod[CEMethodData]; TrieGetArray(itMethods, szMethod, rgMethod[CEMethodData:0], _:CEMethodData); + + if (callfunc_begin_i(rgMethod[CEMethodData_FunctionID], rgMethod[CEMethodData_PluginID]) == 1) { + callfunc_push_int(this); + + static Array:irgParamTypes; irgParamTypes = rgMethod[CEMethodData_ParamTypes]; + + if (irgParamTypes != Invalid_Array) { + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + + for (new iParam = 0; iParam < iParamsNum; ++iParam) { + static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:MethodParam_Type); + + switch (iType) { + case CE_MP_Cell: { + static iValue; iValue = ReadPackCell(dpParams); + callfunc_push_int(iValue); + } + case CE_MP_Float: { + static Float:flValue; flValue = ReadPackFloat(dpParams); + callfunc_push_float(flValue); + } + case CE_MP_String: { + ReadPackString(dpParams, g_szBuffer, charsmax(g_szBuffer)); + callfunc_push_str(g_szBuffer); + } + case CE_MP_Array: { + static iLen; iLen = ReadPackArray(dpParams, g_rgiBuffer); + callfunc_push_array(g_rgiBuffer, iLen, false); + } + case CE_MP_FloatArray: { + static iLen; iLen = ReadPackFloatArray(dpParams, g_rgflBuffer); + callfunc_push_array(_:g_rgflBuffer, iLen, false); + } + } + } + } + + return callfunc_end(); + } + + return 0; +} + /*--------------------------------[ Functions ]--------------------------------*/ InitStorages() { @@ -876,6 +1044,8 @@ InitStorages() { for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { g_rgCEData[CEData_Hooks][iFunction] = ArrayCreate(); } + + g_rgCEData[CEData_Methods] = ArrayCreate(); } DestroyStorages() { @@ -891,6 +1061,10 @@ DestroyStorages() { ArrayDestroy(Array:g_rgCEData[iData]); } + ArrayDestroy(g_rgCEData[CEData_Methods]); + ArrayDestroy(g_rgCEData[CEData_Preset]); + ArrayDestroy(g_rgCEData[CEData_Name]); + TrieDestroy(g_itEntityIds); } @@ -900,6 +1074,7 @@ RegisterEntity(const szClassName[], CEPreset:iPreset) { TrieSetCell(g_itEntityIds, szClassName, iId); ArrayPushString(g_rgCEData[CEData_Name], szClassName); ArrayPushCell(g_rgCEData[CEData_Preset], iPreset); + ArrayPushCell(g_rgCEData[CEData_Methods], TrieCreate()); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { ArrayPushCell(g_rgCEData[CEData_Hooks][iFunction], ArrayCreate(_:CEHookData)); @@ -907,7 +1082,7 @@ RegisterEntity(const szClassName[], CEPreset:iPreset) { g_iEntitiesNum++; - log_amx("%s Entity %s successfully registred.", LOG_PREFIX, szClassName); + log_amx("%s Entity ^"%s^" successfully registred.", LOG_PREFIX, szClassName); return iId; } @@ -918,6 +1093,10 @@ FreeRegisteredEntityData(iId) { ArrayDestroy(irgHooks); ArraySetCell(g_rgCEData[CEData_Hooks][iFunction], iId, Invalid_Array); } + + new Trie:itMethods = ArrayGetCell(g_rgCEData[CEData_Methods], iId); + TrieDestroy(itMethods); + ArraySetCell(g_rgCEData[CEData_Methods], iId, Invalid_Trie); } GetIdByClassName(const szClassName[]) { @@ -929,7 +1108,7 @@ GetIdByClassName(const szClassName[]) { RegisterEntityHook(CEFunction:iFunction, const szClassName[], const szCallback[], iPluginId = -1) { new iId = GetIdByClassName(szClassName); if (iId == -1) { - log_error(AMX_ERR_NATIVE, "%s Entity %s is not registered.", LOG_PREFIX, szClassName); + log_error(AMX_ERR_NATIVE, "%s Entity ^"%s^" is not registered.", LOG_PREFIX, szClassName); return -1; } @@ -937,7 +1116,7 @@ RegisterEntityHook(CEFunction:iFunction, const szClassName[], const szCallback[] if (iFunctionId < 0) { new szFilename[32]; get_plugin(iPluginId, szFilename, charsmax(szFilename)); - log_error(AMX_ERR_NATIVE, "%s Function %s not found in plugin %s.", LOG_PREFIX, szCallback, szFilename); + log_error(AMX_ERR_NATIVE, "%s Function ^"%s^" not found in plugin ^"%s^".", LOG_PREFIX, szCallback, szFilename); return -1; } @@ -951,6 +1130,36 @@ RegisterEntityHook(CEFunction:iFunction, const szClassName[], const szCallback[] return iHookId; } +RegisterEntityMethod(const szClassName[], const szMethod[], const szCallback[], iPluginId = -1, Array:irgParamTypes) { + new iId = GetIdByClassName(szClassName); + if (iId == -1) { + log_error(AMX_ERR_NATIVE, "%s Entity ^"%s^" is not registered.", LOG_PREFIX, szClassName); + return; + } + + new iFunctionId = get_func_id(szCallback, iPluginId); + if (iFunctionId < 0) { + new szFilename[32]; + get_plugin(iPluginId, szFilename, charsmax(szFilename)); + log_error(AMX_ERR_NATIVE, "%s Function ^"%s^" not found in plugin ^"%s^".", LOG_PREFIX, szCallback, szFilename); + return; + } + + new Trie:itMethods; itMethods = ArrayGetCell(g_rgCEData[CEData_Methods], iId); + + if (TrieKeyExists(itMethods, szMethod)) { + log_error(AMX_ERR_NATIVE, "%s Method ^"%s^" is already registered for ^"%s^" entity.", LOG_PREFIX, szMethod, szClassName); + return; + } + + new rgMethod[CEMethodData]; + rgMethod[CEMethodData_PluginID] = iPluginId; + rgMethod[CEMethodData_FunctionID] = iFunctionId; + rgMethod[CEMethodData_ParamTypes] = irgParamTypes; + + TrieSetArray(itMethods, szMethod, rgMethod[CEMethodData:0], _:CEMethodData); +} + Trie:AllocPData(iId, pEntity) { new Trie:itPData = TrieCreate(); SetPDataMember(itPData, CE_MEMBER_ID, iId); diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index d4805aa..6768698 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -5,68 +5,7 @@ #pragma reqlib api_custom_entities -#define CE_BASE_CLASSNAME "info_target" -#define CE_ENTITY_SECRET ('c'+'e'+'2') - -#define CE_MAX_NAME_LENGTH 64 -#define CE_MAX_MEMBER_LENGTH 64 -#define CE_MAX_CALLBACK_LENGTH 64 - -#define CE_MEMBER_ID "_id" -#define CE_MEMBER_POINTER "_ptr" -#define CE_MEMBER_WORLD "_bWorld" -#define CE_MEMBER_ORIGIN "_vecOrigin" -#define CE_MEMBER_ANGLES "_vecAngles" -#define CE_MEMBER_MASTER "_szMaster" -#define CE_MEMBER_MODEL "_szModel" -#define CE_MEMBER_DELAY "_flDelay" -#define CE_MEMBER_NEXTKILL "_flNextKill" -#define CE_MEMBER_NEXTRESPAWN "_flNextRespawn" -#define CE_MEMBER_INITIALIZED "_bInitialized" -#define CE_MEMBER_BLOODCOLOR "_iBloodColor" -#define CE_MEMBER_LIFETIME "_flLifeTime" -#define CE_MEMBER_IGNOREROUNDS "_bIgnoreRounds" -#define CE_MEMBER_RESPAWNTIME "_flRespawnTime" -#define CE_MEMBER_MINS "_vecMins" -#define CE_MEMBER_MAXS "_vecMaxs" -#define CE_MEMBER_LASTINIT "_flLastInit" -#define CE_MEMBER_LASTSPAWN "_flLastSpawn" -#define CE_MEMBER_PLUGINID "_iPluginId" - -enum CE { - CE_InvalidHandler = -1 -}; - -enum CEPreset { - CEPreset_None = 0, - CEPreset_Item, - CEPreset_NPC, - CEPreset_Prop, - CEPreset_Trigger, - CEPreset_BSP -}; - -enum CEFunction { - CEFunction_Invalid = -1, - CEFunction_KVD, // Calls when new key value obtained - CEFunction_Spawn, // Calls during entity spawn - CEFunction_Init, // Calls when entity is initialized (on first spawn) - CEFunction_InitPhysics, // Calls during on entity physics initialization - CEFunction_InitModel, // Calls during on entity model initialization - CEFunction_InitSize, // Calls during on entity size initialization - CEFunction_Spawned, // Calls when entity spawned - CEFunction_Touch, // Calls during entity touch - CEFunction_Touched, // Calls when entity touched - CEFunction_Think, // Calls when entity thinking - CEFunction_Pickup, // Calls when player touch item. Should return PLUGIN_HANDLED if picked - CEFunction_Picked, // Calls when player pick item - CEFunction_Activate, // Calls every trigger activation check - CEFunction_Activated, // Calls when player activates trigger - CEFunction_Restart, // Calls when entity is restarting - CEFunction_Kill, // Calls when something killing entity. return PLUGIN_HANDLED to block the kill. - CEFunction_Killed, // Calls when entity killed - CEFunction_Remove, // Calls before entity remove -}; +#include /** * Register entity @@ -122,6 +61,17 @@ native bool:CE_Remove(pEntity); */ native CE_RegisterHook(CEFunction:function, const szName[], const szCallback[]); +/** + * Registers a new method for entity. + * + * @param szName Name of entity + * @param szMethod Name of method + * @param szCallback Callback + * + * @noreturn +*/ +native CE_RegisterMethod(const szName[], const szMethod[], const szCallback[], any:...); + /** * Gets handler of entity by name * @@ -211,3 +161,13 @@ native bool:CE_GetMemberString(pEntity, const szMember[], szOut[], iLen); * @param szValue String value to set */ native CE_SetMemberString(pEntity, const szMember[], const szValue[]); + +/** + * Call a method for entity. + * + * @param pEntity Entity index + * @param szMethod Name of method + * + * @return Method return value +*/ +native any:CE_CallMethod(pEntity, const szMethod[], any:...); diff --git a/api/custom-entities/include/api_custom_entities_const.inc b/api/custom-entities/include/api_custom_entities_const.inc new file mode 100644 index 0000000..034bee4 --- /dev/null +++ b/api/custom-entities/include/api_custom_entities_const.inc @@ -0,0 +1,77 @@ +#if defined _api_custom_entities_const_included + #endinput +#endif +#define _api_custom_entities_const_included + +#define CE_BASE_CLASSNAME "info_target" +#define CE_ENTITY_SECRET ('c'+'e'+'2') + +#define CE_MAX_NAME_LENGTH 64 +#define CE_MAX_MEMBER_LENGTH 64 +#define CE_MAX_CALLBACK_LENGTH 64 +#define CE_MAX_METHOD_NAME_LENGTH 64 + +#define CE_MEMBER_ID "_id" +#define CE_MEMBER_POINTER "_ptr" +#define CE_MEMBER_WORLD "_bWorld" +#define CE_MEMBER_ORIGIN "_vecOrigin" +#define CE_MEMBER_ANGLES "_vecAngles" +#define CE_MEMBER_MASTER "_szMaster" +#define CE_MEMBER_MODEL "_szModel" +#define CE_MEMBER_DELAY "_flDelay" +#define CE_MEMBER_NEXTKILL "_flNextKill" +#define CE_MEMBER_NEXTRESPAWN "_flNextRespawn" +#define CE_MEMBER_INITIALIZED "_bInitialized" +#define CE_MEMBER_BLOODCOLOR "_iBloodColor" +#define CE_MEMBER_LIFETIME "_flLifeTime" +#define CE_MEMBER_IGNOREROUNDS "_bIgnoreRounds" +#define CE_MEMBER_RESPAWNTIME "_flRespawnTime" +#define CE_MEMBER_MINS "_vecMins" +#define CE_MEMBER_MAXS "_vecMaxs" +#define CE_MEMBER_LASTINIT "_flLastInit" +#define CE_MEMBER_LASTSPAWN "_flLastSpawn" +#define CE_MEMBER_PLUGINID "_iPluginId" + +enum CE { + CE_InvalidHandler = -1 +}; + +enum CEPreset { + CEPreset_None = 0, + CEPreset_Item, + CEPreset_NPC, + CEPreset_Prop, + CEPreset_Trigger, + CEPreset_BSP +}; + +enum CEFunction { + CEFunction_Invalid = -1, + CEFunction_KVD, // Calls when new key value obtained + CEFunction_Spawn, // Calls during entity spawn + CEFunction_Init, // Calls when entity is initialized (on first spawn) + CEFunction_InitPhysics, // Calls during on entity physics initialization + CEFunction_InitModel, // Calls during on entity model initialization + CEFunction_InitSize, // Calls during on entity size initialization + CEFunction_Spawned, // Calls when entity spawned + CEFunction_Touch, // Calls during entity touch + CEFunction_Touched, // Calls when entity touched + CEFunction_Think, // Calls when entity thinking + CEFunction_Pickup, // Calls when player touch item. Should return PLUGIN_HANDLED if picked + CEFunction_Picked, // Calls when player pick item + CEFunction_Activate, // Calls every trigger activation check + CEFunction_Activated, // Calls when player activates trigger + CEFunction_Restart, // Calls when entity is restarting + CEFunction_Kill, // Calls when something killing entity. return PLUGIN_HANDLED to block the kill. + CEFunction_Killed, // Calls when entity killed + CEFunction_Remove, // Calls before entity remove +}; + +enum { + CE_MP_Invalid = -1, + CE_MP_Cell, + CE_MP_Float, + CE_MP_String, + CE_MP_Array, + CE_MP_FloatArray +}; From 51acf215582586a8c134dc1e74dbebe3ec402d48 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 27 Feb 2024 16:16:38 +0100 Subject: [PATCH 133/231] make datapack library optional --- api/custom-entities/api_custom_entities.sma | 27 +++++++++++++++++++-- util/datapack_stocks.inc | 6 ++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 97f8379..38fc539 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -5,13 +5,17 @@ #include #include #include -#include +#tryinclude #include #include #include +#if !defined _datapack_included + enum DataPack { Invalid_DataPack = 0 } +#endif + #define DEFAULT_CELL_VALUE 0 #define DEFAULT_FLOAT_VALUE 0.0 #define DEFAULT_STRING_VALUE NULL_STRING @@ -43,9 +47,11 @@ enum CEMethodData { enum _:GLOBALESTATE { GLOBAL_OFF = 0, GLOBAL_ON = 1, GLOBAL_DEAD = 2 }; +#if defined _datapack_included new g_szBuffer[MAX_STRING_LENGTH]; new g_rgiBuffer[MAX_STRING_LENGTH]; new Float:g_rgflBuffer[MAX_STRING_LENGTH]; +#endif new g_iszBaseClassName; @@ -86,6 +92,10 @@ public plugin_init() { register_plugin("[API] Custom Entities", "2.0.0", "Hedgehog Fog"); register_concmd("ce_spawn", "Command_Spawn", ADMIN_CVAR); + + #if !defined _datapack_included + log_amx("%s Warning! This version is compiled without ^"datapack^" support. Method arguments are not supported!", LOG_PREFIX); + #endif } public plugin_natives() { @@ -330,9 +340,13 @@ public any:Native_CallMethod(iPluginId, iArgc) { log_error(AMX_ERR_NATIVE, "%s The method ^"%s^" is not registered for the entity %d!", LOG_PREFIX, szMethod, pEntity); return 0; } + + static DataPack:dpParams; dpParams = Invalid_DataPack; + + #if defined _datapack_included + dpParams = CreateDataPack(); static Array:irgParamTypes; irgParamTypes = rgMethod[CEMethodData_ParamTypes]; - static DataPack:dpParams; dpParams = CreateDataPack(); static iParamsNum; iParamsNum = ArraySize(irgParamTypes); for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { @@ -377,10 +391,17 @@ public any:Native_CallMethod(iPluginId, iArgc) { } } } + #endif + #if defined _datapack_included ResetPack(dpParams); + #endif + new any:result = @Entity_CallMethod(pEntity, szMethod, dpParams); + + #if defined _datapack_included DestroyDataPack(dpParams); + #endif return result; } @@ -995,6 +1016,7 @@ any:@Entity_CallMethod(this, const szMethod[], DataPack:dpParams) { if (callfunc_begin_i(rgMethod[CEMethodData_FunctionID], rgMethod[CEMethodData_PluginID]) == 1) { callfunc_push_int(this); + #if defined _datapack_included static Array:irgParamTypes; irgParamTypes = rgMethod[CEMethodData_ParamTypes]; if (irgParamTypes != Invalid_Array) { @@ -1027,6 +1049,7 @@ any:@Entity_CallMethod(this, const szMethod[], DataPack:dpParams) { } } } + #endif return callfunc_end(); } diff --git a/util/datapack_stocks.inc b/util/datapack_stocks.inc index bcf5b27..e9a545a 100644 --- a/util/datapack_stocks.inc +++ b/util/datapack_stocks.inc @@ -4,7 +4,11 @@ #define _datapack_stocks_included #if !defined _datapack_included - #include + #tryinclude +#endif + +#if !defined _datapack_included + #endinput #endif stock ReadPackArray(DataPack:pack, buffer[], maxlen = -1) { From 0af35293fee62ee6a38c7a890b9d8ba0187453ab Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 27 Feb 2024 16:35:55 +0100 Subject: [PATCH 134/231] fix member name --- api/rounds/api_rounds.sma | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index d63d287..5abc02f 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -319,7 +319,7 @@ public Float:Native_GetStartTime(iPluginId, iArgc) { if (g_bUseCustomRounds) { return g_flRoundStartTime; } else if (g_bIsCStrike) { - return get_gamerules_float("CHalfLifeMultiplay", "m_fRoundStartTime"); + return get_gamerules_float("CHalfLifeMultiplay", "m_fRoundCount"); } return 0.0; @@ -441,7 +441,7 @@ SetTime(iTime) { new Float:flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fIntroRoundCount"); set_gamerules_int("CHalfLifeMultiplay", "m_iRoundTime", iTime); set_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs", iTime); - set_gamerules_float("CHalfLifeMultiplay", "m_fRoundStartTime", flStartTime); + set_gamerules_float("CHalfLifeMultiplay", "m_fRoundCount", flStartTime); } UpdateTimer(); From d12cfa9e2783d52f6aee6e12ab55145a1aa8896a Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 27 Feb 2024 17:59:21 +0100 Subject: [PATCH 135/231] fix update timer forward --- api/rounds/api_rounds.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index 5abc02f..beed8ab 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -87,7 +87,7 @@ public plugin_init() { g_iFwRoundExpired = CreateMultiForward("Round_Fw_RoundExpired", ET_IGNORE); g_iFwRoundRestart = CreateMultiForward("Round_Fw_RoundRestart", ET_IGNORE); g_iFwRoundTimerTick = CreateMultiForward("Round_Fw_RoundTimerTick", ET_IGNORE); - g_iFwUpdateTimer = CreateMultiForward("Round_Fw_UpdateTimer", ET_IGNORE); + g_iFwUpdateTimer = CreateMultiForward("Round_Fw_UpdateTimer", ET_IGNORE, FP_CELL); g_iFwCheckWinConditions = CreateMultiForward("Round_Fw_CheckWinConditions", ET_STOP); } From 05c14bd69222898459ade810bd5bf60dd4168c82 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 27 Feb 2024 17:59:35 +0100 Subject: [PATCH 136/231] fix for regamedll --- api/rounds/api_rounds.sma | 90 +++++++++++++++++++++++++++++++-------- 1 file changed, 72 insertions(+), 18 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index beed8ab..dc3b45c 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -153,7 +153,11 @@ public server_frame() { if (g_bUseCustomRounds) { flNextPeriodicThink = g_flNextPeriodicThink; } else if (g_bIsCStrike) { - flNextPeriodicThink = get_gamerules_float("CHalfLifeMultiplay", "m_tmNextPeriodicThink"); + #if defined _reapi_included + flNextPeriodicThink = get_member_game(m_tmNextPeriodicThink); + #else + flNextPeriodicThink = get_gamerules_float("CHalfLifeMultiplay", "m_tmNextPeriodicThink"); + #endif } else { return; } @@ -177,9 +181,15 @@ public server_frame() { flStartTime = g_flRoundStartTimeReal; bFreezePeriod = g_bFreezePeriod; } else if (g_bIsCStrike) { - iRoundTimeSecs = get_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs"); - flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fIntroRoundCount"); - bFreezePeriod = get_gamerules_int("CGameRules", "m_bFreezePeriod"); + #if defined _reapi_included + iRoundTimeSecs = get_member_game(m_iRoundTimeSecs); + flStartTime = get_member_game(m_fRoundStartTimeReal); + bFreezePeriod = get_member_game(m_bFreezePeriod); + #else + iRoundTimeSecs = get_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs"); + flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fIntroRoundCount"); + bFreezePeriod = get_gamerules_int("CGameRules", "m_bFreezePeriod"); + #endif } if (!bFreezePeriod && flGameTime >= flStartTime + float(iRoundTimeSecs)) { @@ -293,7 +303,11 @@ public Native_GetTime(iPluginId, iArgc) { if (g_bUseCustomRounds) { return g_iRoundTimeSecs; } else if (g_bIsCStrike) { - return get_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs"); + #if defined _reapi_included + return get_member_game(m_iRoundTimeSecs); + #else + return get_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs"); + #endif } return 0; @@ -309,7 +323,11 @@ public Native_GetIntroTime(iPluginId, iArgc) { if (g_bUseCustomRounds) { return g_iIntroRoundTime; } else if (g_bIsCStrike) { - return get_gamerules_int("CHalfLifeMultiplay", "m_iIntroRoundTime"); + #if defined _reapi_included + return get_member_game(m_iIntroRoundTime); + #else + return get_gamerules_int("CHalfLifeMultiplay", "m_iIntroRoundTime"); + #endif } return 0; @@ -319,7 +337,11 @@ public Float:Native_GetStartTime(iPluginId, iArgc) { if (g_bUseCustomRounds) { return g_flRoundStartTime; } else if (g_bIsCStrike) { - return get_gamerules_float("CHalfLifeMultiplay", "m_fRoundCount"); + #if defined _reapi_included + return get_member_game(m_fRoundStartTime); + #else + return get_gamerules_float("CHalfLifeMultiplay", "m_fRoundCount"); + #endif } return 0.0; @@ -329,7 +351,11 @@ public Float:Native_GetRestartRoundTime(iPluginId, iArgc) { if (g_bUseCustomRounds) { return g_flRestartRoundTime; } else if (g_bIsCStrike) { - return get_gamerules_float("CHalfLifeMultiplay", "m_flRestartRoundTime"); + #if defined _reapi_included + return get_member_game(m_flRestartRoundTime); + #else + return get_gamerules_float("CHalfLifeMultiplay", "m_flRestartRoundTime"); + #endif } return 0.0; @@ -343,7 +369,11 @@ public bool:Native_IsFreezePeriod(iPluginId, iArgc) { if (g_bUseCustomRounds) { return g_bFreezePeriod; } else if (g_bIsCStrike) { - return get_gamerules_int("CHalfLifeMultiplay", "m_bFreezePeriod"); + #if defined _reapi_included + return get_member_game(m_bFreezePeriod); + #else + return get_gamerules_int("CHalfLifeMultiplay", "m_bFreezePeriod"); + #endif } return false; @@ -361,7 +391,11 @@ public bool:Native_IsRoundTerminating(iPluginId, iArgc) { if (g_bUseCustomRounds) { return g_bRoundTerminating; } else if (g_bIsCStrike) { - return get_gamerules_int("CHalfLifeMultiplay", "m_bRoundTerminating"); + #if defined _reapi_included + return get_member_game(m_bRoundTerminating); + #else + return get_gamerules_int("CHalfLifeMultiplay", "m_bRoundTerminating"); + #endif } return false; @@ -371,7 +405,11 @@ public bool:Native_IsPlayersNeeded(iPluginId, iArgc) { if (g_bUseCustomRounds) { return g_bNeededPlayers; } else if (g_bIsCStrike) { - return get_gamerules_int("CHalfLifeMultiplay", "m_bNeededPlayers"); + #if defined _reapi_included + return get_member_game(m_bNeededPlayers); + #else + return get_gamerules_int("CHalfLifeMultiplay", "m_bNeededPlayers"); + #endif } return false; @@ -381,7 +419,11 @@ public bool:Native_IsCompleteReset(iPluginId, iArgc) { if (g_bUseCustomRounds) { return g_bCompleteReset; } else if (g_bIsCStrike) { - return get_gamerules_int("CHalfLifeMultiplay", "m_bCompleteReset"); + #if defined _reapi_included + return get_member_game(m_bCompleteReset); + #else + return get_gamerules_int("CHalfLifeMultiplay", "m_bCompleteReset"); + #endif } return false; @@ -438,10 +480,17 @@ SetTime(iTime) { g_iRoundTimeSecs = iTime; g_flRoundStartTime = g_flRoundStartTimeReal; } else if (g_bIsCStrike) { - new Float:flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fIntroRoundCount"); - set_gamerules_int("CHalfLifeMultiplay", "m_iRoundTime", iTime); - set_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs", iTime); - set_gamerules_float("CHalfLifeMultiplay", "m_fRoundCount", flStartTime); + #if defined _reapi_included + new Float:flStartTime = get_member_game(m_fRoundStartTimeReal); + set_member_game(m_iRoundTime, iTime); + set_member_game(m_iRoundTimeSecs, iTime); + set_member_game(m_fRoundStartTime, flStartTime); + #else + new Float:flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fIntroRoundCount"); + set_gamerules_int("CHalfLifeMultiplay", "m_iRoundTime", iTime); + set_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs", iTime); + set_gamerules_float("CHalfLifeMultiplay", "m_fRoundCount", flStartTime); + #endif } UpdateTimer(); @@ -740,8 +789,13 @@ Float:GetRoundRemainingTime() { flStartTime = g_flRoundStartTimeReal; iTime = g_iRoundTimeSecs; } else if (g_bIsCStrike) { - flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fIntroRoundCount"); - iTime = get_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs"); + #if defined _reapi_included + flStartTime = get_member_game(m_fRoundStartTimeReal); + iTime = get_member_game(m_iRoundTimeSecs); + #else + flStartTime = get_gamerules_float("CHalfLifeMultiplay", "m_fIntroRoundCount"); + iTime = get_gamerules_int("CHalfLifeMultiplay", "m_iRoundTimeSecs"); + #endif } else { return 0.0; } From 07e1a8ff75cab13fd8f1ca517c65a2874a42da94 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 28 Feb 2024 03:06:35 +0100 Subject: [PATCH 137/231] add player effects api --- api/player-effects/api_player_effects.sma | 310 ++++++++++++++++++ .../include/api_player_effects.inc | 14 + .../include/api_player_effects_const.inc | 4 + 3 files changed, 328 insertions(+) create mode 100644 api/player-effects/api_player_effects.sma create mode 100644 api/player-effects/include/api_player_effects.inc create mode 100644 api/player-effects/include/api_player_effects_const.inc diff --git a/api/player-effects/api_player_effects.sma b/api/player-effects/api_player_effects.sma new file mode 100644 index 0000000..94c0696 --- /dev/null +++ b/api/player-effects/api_player_effects.sma @@ -0,0 +1,310 @@ +#pragma semicolon 1 + +#include +#include +#include +#include + +#tryinclude +#include + +#include + +#define PLUGIN "[API] Player Effects" +#define VERSION "1.0.0" +#define AUTHOR "Hedgehog Fog" + +#define BIT(%0) (1<<(%0)) + +enum PEffectData { + Array:PEffectData_Id, + Array:PEffectData_InvokeFunctionId, + Array:PEffectData_RevokeFunctionId, + Array:PEffectData_PluginId, + Array:PEffectData_Icon, + Array:PEffectData_IconColor, + Array:PEffectData_Players, + Array:PEffectData_PlayerEffectDuration, + Array:PEffectData_PlayerEffectEnd +}; + +new gmsgStatusIcon; + +new Trie:g_itEffectsIds = Invalid_Trie; +new g_rgPEffectData[PEffectData] = { Invalid_Array, ... }; +new g_iEffectssNum = 0; + +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); + + RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", .Post = 1); + RegisterHamPlayer(Ham_Killed, "HamHook_Player_Killed", .Post = 0); + + g_itEffectsIds = TrieCreate(); + + g_rgPEffectData[PEffectData_Id] = ArrayCreate(32); + g_rgPEffectData[PEffectData_InvokeFunctionId] = ArrayCreate(); + g_rgPEffectData[PEffectData_RevokeFunctionId] = ArrayCreate(); + g_rgPEffectData[PEffectData_PluginId] = ArrayCreate(); + g_rgPEffectData[PEffectData_Icon] = ArrayCreate(32); + g_rgPEffectData[PEffectData_IconColor] = ArrayCreate(3); + g_rgPEffectData[PEffectData_Players] = ArrayCreate(); + g_rgPEffectData[PEffectData_PlayerEffectEnd] = ArrayCreate(MAX_PLAYERS + 1); + g_rgPEffectData[PEffectData_PlayerEffectDuration] = ArrayCreate(MAX_PLAYERS + 1); + + register_concmd("player_effect_set", "Command_Set", ADMIN_CVAR); + + gmsgStatusIcon = get_user_msgid("StatusIcon"); +} + +public plugin_end() { + TrieDestroy(g_itEffectsIds); + + for (new PEffectData:iEffectData = PEffectData:0; iEffectData < PEffectData; ++iEffectData) { + ArrayDestroy(Array:g_rgPEffectData[iEffectData]); + } +} + +public plugin_natives() { + register_library("api_player_effects"); + register_native("PlayerEffect_Register", "Native_Register"); + register_native("PlayerEffect_Set", "Native_SetPlayerEffect"); + register_native("PlayerEffect_Get", "Native_GetPlayerEffect"); + register_native("PlayerEffect_GetEndtime", "Native_GetPlayerEffectEndTime"); + register_native("PlayerEffect_GetDuration", "Native_GetPlayerEffectDuration"); +} + +public Native_Register(iPluginId, iArgc) { + new szId[32]; get_string(1, szId, charsmax(szId)); + new szInvokeFunction[32]; get_string(2, szInvokeFunction, charsmax(szInvokeFunction)); + new szRevokeFunction[32]; get_string(3, szRevokeFunction, charsmax(szRevokeFunction)); + new szIcon[32]; get_string(4, szIcon, charsmax(szIcon)); + new rgiIconColor[3]; get_array(5, rgiIconColor, sizeof(rgiIconColor)); + + new iInvokeFunctionId = get_func_id(szInvokeFunction, iPluginId); + new iRevokeFunctionId = get_func_id(szRevokeFunction, iPluginId); + + return Register(szId, iInvokeFunctionId, iRevokeFunctionId, iPluginId, szIcon, rgiIconColor); +} + +public bool:Native_SetPlayerEffect(iPluginId, iArgc) { + new pPlayer = get_param(1); + new szEffectId[32]; get_string(2, szEffectId, charsmax(szEffectId)); + + new iEffectId = -1; + if (!TrieGetCell(g_itEffectsIds, szEffectId, iEffectId)) return false; + + new bool:bValue = bool:get_param(3); + new Float:flDuration = get_param_f(4); + new bool:bExtend = bool:get_param(5); + + return @Player_SetEffect(pPlayer, iEffectId, bValue, flDuration, bExtend); +} + +public bool:Native_GetPlayerEffect(iPluginId, iArgc) { + new pPlayer = get_param(1); + new szEffectId[32]; get_string(2, szEffectId, charsmax(szEffectId)); + + new iEffectId = -1; + if (!TrieGetCell(g_itEffectsIds, szEffectId, iEffectId)) return false; + + return @Player_GetEffect(pPlayer, iEffectId); +} + +public Float:Native_GetPlayerEffectEndTime(iPluginId, iArgc) { + new pPlayer = get_param(1); + new szEffectId[32]; get_string(2, szEffectId, charsmax(szEffectId)); + + new iEffectId = -1; + if (!TrieGetCell(g_itEffectsIds, szEffectId, iEffectId)) return 0.0; + + return Float:ArrayGetCell(g_rgPEffectData[PEffectData_PlayerEffectEnd], iEffectId, pPlayer); +} + +public Float:Native_GetPlayerEffectDuration(iPluginId, iArgc) { + new pPlayer = get_param(1); + new szEffectId[32]; get_string(2, szEffectId, charsmax(szEffectId)); + + new iEffectId = -1; + if (!TrieGetCell(g_itEffectsIds, szEffectId, iEffectId)) return 0.0; + + return Float:ArrayGetCell(g_rgPEffectData[PEffectData_PlayerEffectDuration], iEffectId, pPlayer); +} + +/*--------------------------------[ Forwards ]--------------------------------*/ + +public client_disconnected(pPlayer) { + @Player_RevokeEffects(pPlayer); +} + +public Round_Fw_NewRound() { + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) @Player_RevokeEffects(pPlayer); +} + +/*--------------------------------[ Hooks ]--------------------------------*/ + +public Command_Set(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 1)) return PLUGIN_HANDLED; + + static szTarget[32]; read_argv(1, szTarget, charsmax(szTarget)); + static szEffectId[32]; read_argv(2, szEffectId, charsmax(szEffectId)); + static szValue[32]; read_argv(3, szValue, charsmax(szValue)); + static szDuration[32]; read_argv(4, szDuration, charsmax(szDuration)); + + new iEffectId = -1; + if (!TrieGetCell(g_itEffectsIds, szEffectId, iEffectId)) return PLUGIN_HANDLED; + + new iTarget = CMD_RESOLVE_TARGET(szTarget); + new bool:bValue = equal(szValue, NULL_STRING) ? true : bool:str_to_num(szValue); + new Float:flDuration = equal(szDuration, NULL_STRING) ? -1.0 : str_to_float(szDuration); + + for (new pTarget = 1; pTarget <= MaxClients; ++pTarget) { + if (!CMD_SHOULD_TARGET_PLAYER(pTarget, iTarget, pPlayer)) continue; + @Player_SetEffect(pTarget, iEffectId, bValue, flDuration, false); + } + + return PLUGIN_HANDLED; +} + +public HamHook_Player_Killed(pPlayer) { + @Player_RevokeEffects(pPlayer); +} + +public HamHook_Player_PostThink_Post(pPlayer) { + static Float:flGameTime; flGameTime = get_gametime(); + + for (new iEffectId = 0; iEffectId < g_iEffectssNum; ++iEffectId) { + static iPlayers; iPlayers = ArrayGetCell(g_rgPEffectData[PEffectData_Players], iEffectId); + if (~iPlayers & BIT(pPlayer & 31)) continue; + + static Float:flEndTime; flEndTime = ArrayGetCell(g_rgPEffectData[PEffectData_PlayerEffectEnd], iEffectId, pPlayer); + if (!flEndTime || flEndTime > flGameTime) continue; + + @Player_SetEffect(pPlayer, iEffectId, false, -1.0, true); + } +} + +/*--------------------------------[ Methods ]--------------------------------*/ + +bool:@Player_GetEffect(pPlayer, iEffectId) { + new iPlayers = ArrayGetCell(g_rgPEffectData[PEffectData_Players], iEffectId); + + return !!(iPlayers & BIT(pPlayer & 31)); +} + +bool:@Player_SetEffect(pPlayer, iEffectId, bool:bValue, Float:flDuration, bool:bExtend) { + if (bValue && !is_user_alive(pPlayer)) return false; + + new iPlayers = ArrayGetCell(g_rgPEffectData[PEffectData_Players], iEffectId); + new bool:bCurrentValue = !!(iPlayers & BIT(pPlayer & 31)); + + if (bValue == bCurrentValue && (!bValue || !bExtend)) return false; + + if (bValue) { + ArraySetCell(g_rgPEffectData[PEffectData_Players], iEffectId, iPlayers | BIT(pPlayer & 31)); + } else { + ArraySetCell(g_rgPEffectData[PEffectData_Players], iEffectId, iPlayers & ~BIT(pPlayer & 31)); + } + + new bool:bResult = ( + bValue + ? CallInvokeFunction(pPlayer, iEffectId, flDuration) + : CallRevokeFunction(pPlayer, iEffectId) + ); + + if (!bResult) { + ArraySetCell(g_rgPEffectData[PEffectData_Players], iEffectId, iPlayers); + return false; + } + + if (bValue) { + if (bCurrentValue && bExtend && flDuration >= 0.0) { + new Float:flEndTime = ArrayGetCell(g_rgPEffectData[PEffectData_PlayerEffectEnd], iEffectId, pPlayer); + if (flEndTime) { + new Float:flPrevDuration = ArrayGetCell(g_rgPEffectData[PEffectData_PlayerEffectDuration], iEffectId, pPlayer); + ArraySetCell(g_rgPEffectData[PEffectData_PlayerEffectEnd], iEffectId, flEndTime + flDuration, pPlayer); + ArraySetCell(g_rgPEffectData[PEffectData_PlayerEffectDuration], iEffectId, flPrevDuration + flDuration, pPlayer); + } + } else { + new Float:flEndTime = flDuration < 0.0 ? 0.0 : get_gametime() + flDuration; + ArraySetCell(g_rgPEffectData[PEffectData_PlayerEffectEnd], iEffectId, flEndTime, pPlayer); + ArraySetCell(g_rgPEffectData[PEffectData_PlayerEffectDuration], iEffectId, flDuration, pPlayer); + } + } + + static szIcon[32]; ArrayGetString(g_rgPEffectData[PEffectData_Icon], iEffectId, szIcon, charsmax(szIcon)); + + if (!equal(szIcon, NULL_STRING)) { + new irgIconColor[3]; + ArrayGetArray(g_rgPEffectData[PEffectData_IconColor], iEffectId, irgIconColor, sizeof(irgIconColor)); + + message_begin(MSG_ONE, gmsgStatusIcon, _, pPlayer); + write_byte(bValue); + write_string(szIcon); + + if (bValue) { + write_byte(irgIconColor[0]); + write_byte(irgIconColor[1]); + write_byte(irgIconColor[2]); + } + + message_end(); + } + + return true; +} + +@Player_RevokeEffects(pPlayer) { + for (new iEffectId = 0; iEffectId < g_iEffectssNum; ++iEffectId) { + @Player_SetEffect(pPlayer, iEffectId, false, -1.0, true); + } +} + +/*--------------------------------[ Functions ]--------------------------------*/ + +Register(const szId[], iInvokeFunctionId, iRevokeFunctionId, iPluginId, const szIcon[], const rgiIconColor[3]) { + new iEffectId = g_iEffectssNum; + + ArrayPushString(g_rgPEffectData[PEffectData_Id], szId); + ArrayPushCell(g_rgPEffectData[PEffectData_InvokeFunctionId], iInvokeFunctionId); + ArrayPushCell(g_rgPEffectData[PEffectData_RevokeFunctionId], iRevokeFunctionId); + ArrayPushCell(g_rgPEffectData[PEffectData_PluginId], iPluginId); + ArrayPushString(g_rgPEffectData[PEffectData_Icon], szIcon); + ArrayPushArray(g_rgPEffectData[PEffectData_IconColor], rgiIconColor); + ArrayPushCell(g_rgPEffectData[PEffectData_Players], 0); + ArrayPushCell(g_rgPEffectData[PEffectData_PlayerEffectEnd], 0); + ArrayPushCell(g_rgPEffectData[PEffectData_PlayerEffectDuration], 0); + + TrieSetCell(g_itEffectsIds, szId, iEffectId); + + g_iEffectssNum++; + + return iEffectId; +} + +bool:CallInvokeFunction(pPlayer, iEffectId, Float:flDuration) { + new iPluginId = ArrayGetCell(g_rgPEffectData[PEffectData_PluginId], iEffectId); + new iFunctionId = ArrayGetCell(g_rgPEffectData[PEffectData_InvokeFunctionId], iEffectId); + + callfunc_begin_i(iFunctionId, iPluginId); + callfunc_push_int(pPlayer); + callfunc_push_float(flDuration); + new iResult = callfunc_end(); + + if (iResult >= PLUGIN_HANDLED) return false; + + return true; +} + +bool:CallRevokeFunction(pPlayer, iEffectId) { + new iPluginId = ArrayGetCell(g_rgPEffectData[PEffectData_PluginId], iEffectId); + new iFunctionId = ArrayGetCell(g_rgPEffectData[PEffectData_RevokeFunctionId], iEffectId); + + callfunc_begin_i(iFunctionId, iPluginId); + callfunc_push_int(pPlayer); + new iResult = callfunc_end(); + + if (iResult >= PLUGIN_HANDLED) return false; + + return true; +} diff --git a/api/player-effects/include/api_player_effects.inc b/api/player-effects/include/api_player_effects.inc new file mode 100644 index 0000000..3ec22b8 --- /dev/null +++ b/api/player-effects/include/api_player_effects.inc @@ -0,0 +1,14 @@ +#if defined _api_player_effects_included + #endinput +#endif +#define _api_player_effects_included + +#pragma reqlib api_player_effects + +#include + +native PlayerEffect_Register(const szId[], const szInvokeFunction[], const szRevokeFunction[], const szIcon[] = "", const irgIconColor[3] = {255, 255, 255}); +native PlayerEffect_Set(pPlayer, const szId[], bool:bValue, Float:flDuration = -1.0, bool:bExtend = true); +native bool:PlayerEffect_Get(pPlayer, const szId[]); +native Float:PlayerEffect_GetEndtime(pPlayer, const szId[]); +native Float:PlayerEffect_GetDuration(pPlayer, const szId[]); diff --git a/api/player-effects/include/api_player_effects_const.inc b/api/player-effects/include/api_player_effects_const.inc new file mode 100644 index 0000000..142dd97 --- /dev/null +++ b/api/player-effects/include/api_player_effects_const.inc @@ -0,0 +1,4 @@ +#if defined _api_player_effects_const_included + #endinput +#endif +#define _api_player_effects_const_included From 078d6d4c9c6cc80137721f222471ac81a16fa1f4 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 28 Feb 2024 03:19:56 +0100 Subject: [PATCH 138/231] update api --- api/custom-entities/api_custom_entities.sma | 146 +++++++++--------- .../include/api_custom_entities.inc | 2 +- .../include/api_custom_entities_const.inc | 2 +- 3 files changed, 75 insertions(+), 75 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 38fc539..05ccf4f 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -48,9 +48,9 @@ enum CEMethodData { enum _:GLOBALESTATE { GLOBAL_OFF = 0, GLOBAL_ON = 1, GLOBAL_DEAD = 2 }; #if defined _datapack_included -new g_szBuffer[MAX_STRING_LENGTH]; -new g_rgiBuffer[MAX_STRING_LENGTH]; -new Float:g_rgflBuffer[MAX_STRING_LENGTH]; + new g_szBuffer[MAX_STRING_LENGTH]; + new g_rgiBuffer[MAX_STRING_LENGTH]; + new Float:g_rgflBuffer[MAX_STRING_LENGTH]; #endif new g_iszBaseClassName; @@ -178,8 +178,8 @@ public Native_Restart(iPluginId, iArgc) { } public Native_RegisterHook(iPluginId, iArgc) { - new CEFunction:iFunction = CEFunction:get_param(1); - new szClassname[CE_MAX_NAME_LENGTH]; get_string(2, szClassname, charsmax(szClassname)); + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + new CEFunction:iFunction = CEFunction:get_param(2); new szCallback[CE_MAX_CALLBACK_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); RegisterEntityHook(iFunction, szClassname, szCallback, iPluginId); @@ -345,62 +345,62 @@ public any:Native_CallMethod(iPluginId, iArgc) { #if defined _datapack_included dpParams = CreateDataPack(); - - static Array:irgParamTypes; irgParamTypes = rgMethod[CEMethodData_ParamTypes]; - - static iParamsNum; iParamsNum = ArraySize(irgParamTypes); - for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { - static iParam; iParam = 3 + iMethodParam; - static iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Type); - static iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Size); - static bool:bUseDefault; bUseDefault = iParam > iArgc; - - switch (iType) { - case CE_MP_Cell: { - WritePackCell(dpParams, bUseDefault ? DEFAULT_CELL_VALUE : get_param_byref(iParam)); - } - case CE_MP_Float: { - WritePackFloat(dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:get_param_byref(iParam)); - } - case CE_MP_String: { - if (bUseDefault) { - copy(g_szBuffer, sizeof(g_szBuffer), DEFAULT_STRING_VALUE); - } else { - get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); + + static Array:irgParamTypes; irgParamTypes = rgMethod[CEMethodData_ParamTypes]; + + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { + static iParam; iParam = 3 + iMethodParam; + static iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Type); + static iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Size); + static bool:bUseDefault; bUseDefault = iParam > iArgc; + + switch (iType) { + case CE_MP_Cell: { + WritePackCell(dpParams, bUseDefault ? DEFAULT_CELL_VALUE : get_param_byref(iParam)); } + case CE_MP_Float: { + WritePackFloat(dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:get_param_byref(iParam)); + } + case CE_MP_String: { + if (bUseDefault) { + copy(g_szBuffer, sizeof(g_szBuffer), DEFAULT_STRING_VALUE); + } else { + get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); + } - WritePackString(dpParams, g_szBuffer); - } - case CE_MP_Array: { - if (bUseDefault) { - arrayset(g_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); - } else { - get_array(iParam, g_rgiBuffer, iSize); + WritePackString(dpParams, g_szBuffer); } + case CE_MP_Array: { + if (bUseDefault) { + arrayset(g_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + get_array(iParam, g_rgiBuffer, iSize); + } - WritePackArray(dpParams, g_rgiBuffer, iSize); - } - case CE_MP_FloatArray: { - if (bUseDefault) { - arrayset(g_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); - } else { - get_array_f(iParam, g_rgflBuffer, iSize); + WritePackArray(dpParams, g_rgiBuffer, iSize); } + case CE_MP_FloatArray: { + if (bUseDefault) { + arrayset(g_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + get_array_f(iParam, g_rgflBuffer, iSize); + } - WritePackFloatArray(dpParams, g_rgflBuffer, iSize); + WritePackFloatArray(dpParams, g_rgflBuffer, iSize); + } } } - } #endif #if defined _datapack_included - ResetPack(dpParams); + ResetPack(dpParams); #endif new any:result = @Entity_CallMethod(pEntity, szMethod, dpParams); #if defined _datapack_included - DestroyDataPack(dpParams); + DestroyDataPack(dpParams); #endif return result; @@ -486,7 +486,7 @@ public FMHook_KeyValue(pEntity, hKVD) { } new iId = GetPDataMember(g_itPData, CE_MEMBER_ID); - ExecuteHookFunction(CEFunction_KVD, iId, pEntity, szKey, szValue); + ExecuteHookFunction(CEFunction_KeyValue, iId, pEntity, szKey, szValue); } return FMRES_HANDLED; @@ -1017,38 +1017,38 @@ any:@Entity_CallMethod(this, const szMethod[], DataPack:dpParams) { callfunc_push_int(this); #if defined _datapack_included - static Array:irgParamTypes; irgParamTypes = rgMethod[CEMethodData_ParamTypes]; + static Array:irgParamTypes; irgParamTypes = rgMethod[CEMethodData_ParamTypes]; - if (irgParamTypes != Invalid_Array) { - static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + if (irgParamTypes != Invalid_Array) { + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); - for (new iParam = 0; iParam < iParamsNum; ++iParam) { - static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:MethodParam_Type); + for (new iParam = 0; iParam < iParamsNum; ++iParam) { + static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:MethodParam_Type); - switch (iType) { - case CE_MP_Cell: { - static iValue; iValue = ReadPackCell(dpParams); - callfunc_push_int(iValue); - } - case CE_MP_Float: { - static Float:flValue; flValue = ReadPackFloat(dpParams); - callfunc_push_float(flValue); - } - case CE_MP_String: { - ReadPackString(dpParams, g_szBuffer, charsmax(g_szBuffer)); - callfunc_push_str(g_szBuffer); - } - case CE_MP_Array: { - static iLen; iLen = ReadPackArray(dpParams, g_rgiBuffer); - callfunc_push_array(g_rgiBuffer, iLen, false); - } - case CE_MP_FloatArray: { - static iLen; iLen = ReadPackFloatArray(dpParams, g_rgflBuffer); - callfunc_push_array(_:g_rgflBuffer, iLen, false); + switch (iType) { + case CE_MP_Cell: { + static iValue; iValue = ReadPackCell(dpParams); + callfunc_push_int(iValue); + } + case CE_MP_Float: { + static Float:flValue; flValue = ReadPackFloat(dpParams); + callfunc_push_float(flValue); + } + case CE_MP_String: { + ReadPackString(dpParams, g_szBuffer, charsmax(g_szBuffer)); + callfunc_push_str(g_szBuffer); + } + case CE_MP_Array: { + static iLen; iLen = ReadPackArray(dpParams, g_rgiBuffer); + callfunc_push_array(g_rgiBuffer, iLen, false); + } + case CE_MP_FloatArray: { + static iLen; iLen = ReadPackFloatArray(dpParams, g_rgflBuffer); + callfunc_push_array(_:g_rgflBuffer, iLen, false); + } } } } - } #endif return callfunc_end(); @@ -1264,7 +1264,7 @@ ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { new pPlayer = getarg(3); callfunc_push_int(pPlayer); } - case CEFunction_KVD: { + case CEFunction_KeyValue: { static szKey[32]; for (new i = 0; i < charsmax(szKey); ++i) { szKey[i] = getarg(3, i); diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index 6768698..d4c6de6 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -59,7 +59,7 @@ native bool:CE_Remove(pEntity); * @param szName Name of entity * @param szCallback Callback */ -native CE_RegisterHook(CEFunction:function, const szName[], const szCallback[]); +native CE_RegisterHook(const szName[], CEFunction:function, const szCallback[]); /** * Registers a new method for entity. diff --git a/api/custom-entities/include/api_custom_entities_const.inc b/api/custom-entities/include/api_custom_entities_const.inc index 034bee4..75ba0f6 100644 --- a/api/custom-entities/include/api_custom_entities_const.inc +++ b/api/custom-entities/include/api_custom_entities_const.inc @@ -47,7 +47,7 @@ enum CEPreset { enum CEFunction { CEFunction_Invalid = -1, - CEFunction_KVD, // Calls when new key value obtained + CEFunction_KeyValue, // Calls when new key value obtained CEFunction_Spawn, // Calls during entity spawn CEFunction_Init, // Calls when entity is initialized (on first spawn) CEFunction_InitPhysics, // Calls during on entity physics initialization From 86486d6c03ee463f0a2520600bfcdfb65e372b04 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 28 Feb 2024 19:37:55 +0100 Subject: [PATCH 139/231] update entities --- entities/entity_custom_events_handler.sma | 8 ++++---- entities/entity_fire.sma | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/entities/entity_custom_events_handler.sma b/entities/entity_custom_events_handler.sma index e62bef8..0aaddda 100644 --- a/entities/entity_custom_events_handler.sma +++ b/entities/entity_custom_events_handler.sma @@ -24,10 +24,10 @@ public plugin_precache() { g_irgpEntities = ArrayCreate(); CE_Register(ENTITY_NAME); - CE_RegisterHook(CEFunction_Init, ENTITY_NAME, "@Entity_Init"); - CE_RegisterHook(CEFunction_KVD, ENTITY_NAME, "@Entity_KeyValue"); - CE_RegisterHook(CEFunction_Think, ENTITY_NAME, "@Entity_Think"); - CE_RegisterHook(CEFunction_Remove, ENTITY_NAME, "@Entity_Remove"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Init, "@Entity_Init"); + CE_RegisterHook(ENTITY_NAME, CEFunction_KeyValue, "@Entity_KeyValue"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Think, "@Entity_Think"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Remove, "@Entity_Remove"); } public plugin_init() { diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index c708692..1a464ca 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -94,13 +94,13 @@ public plugin_precache() { } g_iCeHandler = CE_Register(ENTITY_NAME); - CE_RegisterHook(CEFunction_Init, ENTITY_NAME, "@Entity_Init"); - CE_RegisterHook(CEFunction_KVD, ENTITY_NAME, "@Entity_KeyValue"); - CE_RegisterHook(CEFunction_Spawned, ENTITY_NAME, "@Entity_Spawned"); - CE_RegisterHook(CEFunction_Touch, ENTITY_NAME, "@Entity_Touch"); - CE_RegisterHook(CEFunction_Think, ENTITY_NAME, "@Entity_Think"); - CE_RegisterHook(CEFunction_Killed, ENTITY_NAME, "@Entity_Killed"); - CE_RegisterHook(CEFunction_Remove, ENTITY_NAME, "@Entity_Remove"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Init, "@Entity_Init"); + CE_RegisterHook(ENTITY_NAME, CEFunction_KeyValue, "@Entity_KeyValue"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Spawned, "@Entity_Spawned"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Touch, "@Entity_Touch"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Think, "@Entity_Think"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Killed, "@Entity_Killed"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Remove, "@Entity_Remove"); register_forward(FM_OnFreeEntPrivateData, "FMHook_OnFreeEntPrivateData"); } From 3ae950cdc5e6cddc7f537f05d88aa90b6941db8a Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 1 Mar 2024 23:34:12 +0100 Subject: [PATCH 140/231] update player effects constants --- .../include/api_player_effects_const.inc | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/api/player-effects/include/api_player_effects_const.inc b/api/player-effects/include/api_player_effects_const.inc index 142dd97..3446820 100644 --- a/api/player-effects/include/api_player_effects_const.inc +++ b/api/player-effects/include/api_player_effects_const.inc @@ -1,4 +1,23 @@ -#if defined _api_player_effects_const_included +#if defined _api_particles_const_included #endinput #endif -#define _api_player_effects_const_included +#define _api_particles_const_included + +#define PARTICLE_MAX_MEMBER_LENGTH 64 + +enum ParticleHook { + ParticleHook_System_Init, + ParticleHook_System_Destroy, + ParticleHook_System_Think, + ParticleHook_System_Activated, + ParticleHook_System_Deactivated, + ParticleHook_Particle_Init, + ParticleHook_Particle_Destroy, + ParticleHook_Particle_Think, + ParticleHook_Particle_EntityInit +}; + +enum ParticleEffectFlag (<<=1) { + ParticleEffectFlag_None = 0, + ParticleEffectFlag_AttachParticles = 1 +}; From 1df9c98dfd8f880809551ce9682835b0bebf426c Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 1 Mar 2024 23:35:01 +0100 Subject: [PATCH 141/231] add inheritance --- api/custom-entities/api_custom_entities.sma | 773 +++++++++++++----- .../include/api_custom_entities.inc | 41 + 2 files changed, 591 insertions(+), 223 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 05ccf4f..efb9339 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -12,40 +12,49 @@ #include -#if !defined _datapack_included - enum DataPack { Invalid_DataPack = 0 } -#endif - #define DEFAULT_CELL_VALUE 0 #define DEFAULT_FLOAT_VALUE 0.0 #define DEFAULT_STRING_VALUE NULL_STRING #define LOG_PREFIX "[CE]" +#if !defined _datapack_included + enum DataPack { Invalid_DataPack = 0 } +#endif + +enum _:GLOBALESTATE { GLOBAL_OFF = 0, GLOBAL_ON = 1, GLOBAL_DEAD = 2 }; + enum MethodParam { MethodParam_Type = 0, MethodParam_Size }; -enum CEData { - Array:CEData_Name, - Array:CEData_Preset, - Array:CEData_Hooks[CEFunction], - Array:CEData_Methods +enum MethodCallStackItem { + MethodCallStackItem_Entity, + MethodCallStackItem_EntityID, + MethodCallStackItem_Method }; -enum CEHookData { - CEHookData_PluginID, - CEHookData_FuncID +enum Entity { + Array:Entity_Name, + Array:Entity_Preset, + Array:Entity_Parent, + Array:Entity_Hooks[CEFunction], + Array:Entity_Methods, + Array:Entity_Hierarchy }; -enum CEMethodData { - CEMethodData_PluginID, - CEMethodData_FunctionID, - Array:CEMethodData_ParamTypes +enum EntityHook { + EntityHook_PluginID, + EntityHook_FuncID }; -enum _:GLOBALESTATE { GLOBAL_OFF = 0, GLOBAL_ON = 1, GLOBAL_DEAD = 2 }; +enum Method { + Method_PluginID, + Method_FunctionID, + bool:Method_IsVirtual, + Array:Method_ParamTypes +}; #if defined _datapack_included new g_szBuffer[MAX_STRING_LENGTH]; @@ -57,11 +66,17 @@ new g_iszBaseClassName; new Trie:g_itPData = Invalid_Trie; new Trie:g_itEntityIds = Invalid_Trie; -new g_rgCEData[CEData] = { Invalid_Array, ... }; +new g_rgEntity[Entity] = { Invalid_Array, ... }; new g_iEntitiesNum = 0; new bool:g_bPrecaching = true; new bool:g_bIsCStrike = false; +new DataPack:g_dpParams = Invalid_DataPack; + +new Array:g_irgMethodCallStack = Invalid_Array; +new Array:g_irgMethods = Invalid_Array; +new Trie:g_itMethods = Invalid_Trie; + public plugin_precache() { g_bIsCStrike = !!cstrike_running(); g_iszBaseClassName = engfunc(EngFunc_AllocString, CE_BASE_CLASSNAME); @@ -102,6 +117,7 @@ public plugin_natives() { register_library("api_custom_entities"); register_native("CE_Register", "Native_Register"); + register_native("CE_RegisterDerived", "Native_RegisterDerived"); register_native("CE_Create", "Native_Create"); register_native("CE_Kill", "Native_Kill"); register_native("CE_Remove", "Native_Remove"); @@ -109,9 +125,11 @@ public plugin_natives() { register_native("CE_RegisterHook", "Native_RegisterHook"); register_native("CE_RegisterMethod", "Native_RegisterMethod"); + register_native("CE_RegisterVirtualMethod", "Native_RegisterVirtualMethod"); register_native("CE_GetHandler", "Native_GetHandler"); register_native("CE_GetHandlerByEntity", "Native_GetHandlerByEntity"); + register_native("CE_IsInstanceOf", "Native_IsInstanceOf"); register_native("CE_HasMember", "Native_HasMember"); register_native("CE_GetMember", "Native_GetMember"); @@ -122,6 +140,7 @@ public plugin_natives() { register_native("CE_GetMemberString", "Native_GetMemberString"); register_native("CE_SetMemberString", "Native_SetMemberString"); register_native("CE_CallMethod", "Native_CallMethod"); + register_native("CE_CallBaseMethod", "Native_CallBaseMethod"); } public plugin_end() { @@ -137,6 +156,13 @@ public Native_Register(iPluginId, iArgc) { return RegisterEntity(szClassName, iPreset); } +public Native_RegisterDerived(iPluginId, iArgc) { + new szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + new szBaseClassName[CE_MAX_NAME_LENGTH]; get_string(2, szBaseClassName, charsmax(szBaseClassName)); + + return RegisterEntity(szClassName, _, szBaseClassName); +} + public Native_Create(iPluginId, iArgc) { static szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); static Float:vecOrigin[3]; get_array_f(2, vecOrigin, 3); @@ -207,7 +233,32 @@ public Native_RegisterMethod(iPluginId, iArgc) { ArrayPushArray(irgParamTypes, rgParam[any:0], _:MethodParam); } - RegisterEntityMethod(szClassName, szMethod, szCallback, iPluginId, irgParamTypes); + RegisterEntityMethod(szClassName, szMethod, szCallback, iPluginId, irgParamTypes, false); +} + +public Native_RegisterVirtualMethod(iPluginId, iArgc) { + new szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + new szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + new szCallback[CE_MAX_CALLBACK_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); + + new Array:irgParamTypes; irgParamTypes = ArrayCreate(_:MethodParam, iArgc - 1); + + for (new iParam = 4; iParam <= iArgc; ++iParam) { + new rgParam[MethodParam]; + rgParam[MethodParam_Type] = get_param_byref(iParam); + rgParam[MethodParam_Size] = 1; + + switch (rgParam[MethodParam_Type]) { + case CE_MP_Array, CE_MP_FloatArray: { + rgParam[MethodParam_Size] = get_param_byref(iParam + 1); + iParam++; + } + } + + ArrayPushArray(irgParamTypes, rgParam[any:0], _:MethodParam); + } + + RegisterEntityMethod(szClassName, szMethod, szCallback, iPluginId, irgParamTypes, true); } public Native_GetHandler(iPluginId, iArgc) { @@ -226,6 +277,28 @@ public Native_GetHandlerByEntity(iPluginId, iArgc) { return GetPDataMember(itPData, CE_MEMBER_ID); } +public bool:Native_IsInstanceOf(iPluginId, iArgc) { + static pEntity; pEntity = get_param(1); + static szClassName[CE_MAX_NAME_LENGTH]; get_string(2, szClassName, charsmax(szClassName)); + + if (!@Entity_IsCustom(pEntity)) return false; + + static iTargetId; iTargetId = GetIdByClassName(szClassName); + + if (iTargetId == -1) return false; + + static Trie:itPData; itPData = @Entity_GetPData(pEntity); + static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); + + do { + if (iId == iTargetId) return true; + + iId = ArrayGetCell(g_rgEntity[Entity_Parent], iId); + } while(iId != -1); + + return false; +} + public bool:Native_HasMember(iPluginId, iArgc) { static pEntity; pEntity = get_param(1); static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); @@ -238,7 +311,7 @@ public bool:Native_HasMember(iPluginId, iArgc) { } public any:Native_GetMember(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); if (!@Entity_IsCustom(pEntity)) return 0; @@ -326,41 +399,149 @@ public Native_SetMemberString(iPluginId, iArgc) { } public any:Native_CallMethod(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); - static szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + new pEntity; pEntity = get_param(1); + new szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); if (!@Entity_IsCustom(pEntity)) return 0; - static Trie:itPData; itPData = @Entity_GetPData(pEntity); - static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); - static Trie:itMethods; itMethods = ArrayGetCell(g_rgCEData[CEData_Methods], iId); + new Trie:itPData; itPData = @Entity_GetPData(pEntity); + + new iId; iId = -1; + + // If we are already in the execution context use entity logic from current context + if (IsMethodCallStackEmtpy()) { + iId = GetPDataMember(itPData, CE_MEMBER_ID); + } else { + static rgCallStackItem[MethodCallStackItem]; + GetCurrentMethodFromCallStack(rgCallStackItem); + + if (rgCallStackItem[MethodCallStackItem_Entity] == pEntity) { + iId = rgCallStackItem[MethodCallStackItem_EntityID]; + } else { + iId = GetPDataMember(itPData, CE_MEMBER_ID); + } + } - static rgMethod[CEMethodData]; - if (!TrieGetArray(itMethods, szMethod, rgMethod[CEMethodData:0], _:CEMethodData)) { - log_error(AMX_ERR_NATIVE, "%s The method ^"%s^" is not registered for the entity %d!", LOG_PREFIX, szMethod, pEntity); + new rgMethod[Method]; + iId = FindEntityMethodInHierarchy(iId, szMethod, rgMethod); + + if (iId == -1) { + new szName[CE_MAX_NAME_LENGTH]; ArrayGetString(g_rgEntity[Entity_Name], iId, szName, charsmax(szName)); + log_error(AMX_ERR_NATIVE, "%s Method ^"%s^" is not registered for the ^"%s^" entity (%d)!", LOG_PREFIX, szMethod, szName, pEntity); return 0; } - static DataPack:dpParams; dpParams = Invalid_DataPack; + // If we are already in the execution context and the method is virual jump to top level context + if (IsMethodCallStackEmtpy()) { + if (rgMethod[Method_IsVirtual]) { + iId = FindEntityMethodInHierarchy(GetPDataMember(itPData, CE_MEMBER_ID), szMethod, rgMethod); + } + } #if defined _datapack_included - dpParams = CreateDataPack(); + ResetPack(g_dpParams, true); + + new Array:irgParamTypes; irgParamTypes = rgMethod[Method_ParamTypes]; - static Array:irgParamTypes; irgParamTypes = rgMethod[CEMethodData_ParamTypes]; + new iParamsNum; iParamsNum = ArraySize(irgParamTypes); + for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { + new iParam; iParam = 3 + iMethodParam; + new iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Type); + new iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Size); + new bool:bUseDefault; bUseDefault = iParam > iArgc; + + switch (iType) { + case CE_MP_Cell: { + WritePackCell(g_dpParams, bUseDefault ? DEFAULT_CELL_VALUE : get_param_byref(iParam)); + } + case CE_MP_Float: { + WritePackFloat(g_dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:get_param_byref(iParam)); + } + case CE_MP_String: { + if (bUseDefault) { + copy(g_szBuffer, sizeof(g_szBuffer), DEFAULT_STRING_VALUE); + } else { + get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); + } + + WritePackString(g_dpParams, g_szBuffer); + } + case CE_MP_Array: { + if (bUseDefault) { + arrayset(g_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + get_array(iParam, g_rgiBuffer, iSize); + } + + WritePackArray(g_dpParams, g_rgiBuffer, iSize); + } + case CE_MP_FloatArray: { + if (bUseDefault) { + arrayset(g_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + get_array_f(iParam, g_rgflBuffer, iSize); + } + + WritePackFloatArray(g_dpParams, g_rgflBuffer, iSize); + } + } + } + #endif + + #if defined _datapack_included + ResetPack(g_dpParams); + #endif + + new any:result; result = ExecuteMethod(szMethod, iId, pEntity, g_dpParams); + + + return result; +} + +public any:Native_CallBaseMethod(iPluginId, iArgc) { + if (IsMethodCallStackEmtpy()) { + log_error(AMX_ERR_NATIVE, "%s Calling a base method is not allowed outside of the execution context!", LOG_PREFIX); + return 0; + } + + static rgCallStackItem[MethodCallStackItem]; GetCurrentMethodFromCallStack(rgCallStackItem); + static iId; iId = ArrayGetCell(g_rgEntity[Entity_Parent], rgCallStackItem[MethodCallStackItem_EntityID]); + + if (iId == -1) { + new szName[CE_MAX_NAME_LENGTH]; ArrayGetString(g_rgEntity[Entity_Name], rgCallStackItem[MethodCallStackItem_EntityID], szName, charsmax(szName)); + log_error(AMX_ERR_NATIVE, "%s Entity ^"%s^" (%d) has no base entity!", LOG_PREFIX, szName, rgCallStackItem[MethodCallStackItem_Entity]); + return 0; + } + + new szMethod[CE_MAX_METHOD_NAME_LENGTH]; GetNameFromMethodGlobalTable(rgCallStackItem[MethodCallStackItem_Method], szMethod, charsmax(szMethod)); + + static rgMethod[Method]; + iId = FindEntityMethodInHierarchy(iId, szMethod, rgMethod); + + if (iId == -1) { + new szName[CE_MAX_NAME_LENGTH]; ArrayGetString(g_rgEntity[Entity_Name], iId, szName, charsmax(szName)); + log_error(AMX_ERR_NATIVE, "%s Method ^"%s^" is not registered for the ^"%s^" entity (%d)!", LOG_PREFIX, szMethod, szName, rgCallStackItem[MethodCallStackItem_Entity]); + return 0; + } + + #if defined _datapack_included + ResetPack(g_dpParams, true); + + static Array:irgParamTypes; irgParamTypes = rgMethod[Method_ParamTypes]; static iParamsNum; iParamsNum = ArraySize(irgParamTypes); for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { - static iParam; iParam = 3 + iMethodParam; + static iParam; iParam = 1 + iMethodParam; static iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Type); static iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Size); static bool:bUseDefault; bUseDefault = iParam > iArgc; switch (iType) { case CE_MP_Cell: { - WritePackCell(dpParams, bUseDefault ? DEFAULT_CELL_VALUE : get_param_byref(iParam)); + WritePackCell(g_dpParams, bUseDefault ? DEFAULT_CELL_VALUE : get_param_byref(iParam)); } case CE_MP_Float: { - WritePackFloat(dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:get_param_byref(iParam)); + WritePackFloat(g_dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:get_param_byref(iParam)); } case CE_MP_String: { if (bUseDefault) { @@ -369,7 +550,7 @@ public any:Native_CallMethod(iPluginId, iArgc) { get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); } - WritePackString(dpParams, g_szBuffer); + WritePackString(g_dpParams, g_szBuffer); } case CE_MP_Array: { if (bUseDefault) { @@ -378,7 +559,7 @@ public any:Native_CallMethod(iPluginId, iArgc) { get_array(iParam, g_rgiBuffer, iSize); } - WritePackArray(dpParams, g_rgiBuffer, iSize); + WritePackArray(g_dpParams, g_rgiBuffer, iSize); } case CE_MP_FloatArray: { if (bUseDefault) { @@ -387,21 +568,17 @@ public any:Native_CallMethod(iPluginId, iArgc) { get_array_f(iParam, g_rgflBuffer, iSize); } - WritePackFloatArray(dpParams, g_rgflBuffer, iSize); + WritePackFloatArray(g_dpParams, g_rgflBuffer, iSize); } } } #endif #if defined _datapack_included - ResetPack(dpParams); + ResetPack(g_dpParams); #endif - new any:result = @Entity_CallMethod(pEntity, szMethod, dpParams); - - #if defined _datapack_included - DestroyDataPack(dpParams); - #endif + static any:result; result = ExecuteMethod(szMethod, iId, rgCallStackItem[MethodCallStackItem_Entity], g_dpParams); return result; } @@ -421,8 +598,7 @@ public Command_Spawn(pPlayer, iLevel, iCId) { return PLUGIN_HANDLED; } - static Float:vecOrigin[3]; - pev(pPlayer, pev_origin, vecOrigin); + static Float:vecOrigin[3]; pev(pPlayer, pev_origin, vecOrigin); new pEntity = @Entity_Create(szClassName, vecOrigin, true); if (pEntity) { @@ -446,11 +622,8 @@ public FMHook_OnFreeEntPrivateData(pEntity) { } public FMHook_KeyValue(pEntity, hKVD) { - new szKey[32]; - get_kvd(hKVD, KV_KeyName, szKey, charsmax(szKey)); - - new szValue[32]; - get_kvd(hKVD, KV_Value, szValue, charsmax(szValue)); + new szKey[32]; get_kvd(hKVD, KV_KeyName, szKey, charsmax(szKey)); + new szValue[32]; get_kvd(hKVD, KV_Value, szValue, charsmax(szValue)); if (equal(szKey, "classname")) { new iId = GetIdByClassName(szValue); @@ -497,7 +670,7 @@ public FMHook_Spawn(pEntity) { new iId = GetPDataMember(g_itPData, CE_MEMBER_ID); static szClassName[CE_MAX_NAME_LENGTH]; - ArrayGetString(g_rgCEData[CEData_Name], iId, szClassName, charsmax(szClassName)); + ArrayGetString(g_rgEntity[Entity_Name], iId, szClassName, charsmax(szClassName)); set_pev(pEntity, pev_classname, szClassName); @Entity_SetPData(pEntity, g_itPData); @@ -582,14 +755,6 @@ public HamHook_Base_BloodColor(pEntity) { /*--------------------------------[ Methods ]--------------------------------*/ -bool:@Entity_IsCustom(this) { - if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER) == this) { - return true; - } - - return pev(this, pev_gaitsequence) == CE_ENTITY_SECRET; -} - @Entity_Create(const szClassName[], const Float:vecOrigin[3], bool:bTemp) { new iId = GetIdByClassName(szClassName); if (iId == -1) { @@ -609,7 +774,15 @@ bool:@Entity_IsCustom(this) { return this; } -@Entity_Init(this) { +bool:@Entity_IsCustom(const &this) { + if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER) == this) { + return true; + } + + return pev(this, pev_gaitsequence) == CE_ENTITY_SECRET; +} + +@Entity_Init(const &this) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); @@ -631,7 +804,7 @@ bool:@Entity_IsCustom(this) { SetPDataMember(itPData, CE_MEMBER_LASTINIT, get_gametime()); } -@Entity_Spawn(this) { +@Entity_Spawn(const &this) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); @@ -658,7 +831,7 @@ bool:@Entity_IsCustom(this) { @Entity_InitModel(this); @Entity_InitSize(this); - new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); + new CEPreset:iPreset = ArrayGetCell(g_rgEntity[Entity_Preset], iId); switch (iPreset) { case CEPreset_Trigger: { @@ -700,7 +873,7 @@ bool:@Entity_IsCustom(this) { ExecuteHookFunction(CEFunction_Spawned, iId, this); } -@Entity_Restart(this) { +@Entity_Restart(const &this) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); @@ -724,10 +897,10 @@ bool:@Entity_IsCustom(this) { } } -@Entity_InitPhysics(this) { +@Entity_InitPhysics(const &this) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); - new CEPreset:iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); + new CEPreset:iPreset = ArrayGetCell(g_rgEntity[Entity_Preset], iId); if (ExecuteHookFunction(CEFunction_InitPhysics, iId, this) != PLUGIN_CONTINUE) { return; @@ -772,7 +945,7 @@ bool:@Entity_IsCustom(this) { } } -@Entity_InitModel(this) { +@Entity_InitModel(const &this) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); @@ -788,7 +961,7 @@ bool:@Entity_IsCustom(this) { } -@Entity_InitSize(this) { +@Entity_InitSize(const &this) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); @@ -803,7 +976,7 @@ bool:@Entity_IsCustom(this) { } } -@Entity_Kill(this, pKiller, bool:bPicked) { +@Entity_Kill(const &this, const &pKiller, bool:bPicked) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); @@ -840,28 +1013,26 @@ bool:@Entity_IsCustom(this) { ExecuteHookFunction(CEFunction_Killed, iId, this, pKiller, bPicked); } -@Entity_Think(this) { - if (pev(this, pev_flags) & FL_KILLME) { - return; - } +@Entity_Think(const &this) { + if (pev(this, pev_flags) & FL_KILLME) return; - new Float:flGameTime = get_gametime(); + static Float:flGameTime; flGameTime = get_gametime(); - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); + static Trie:itPData; itPData = @Entity_GetPData(this); + static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); ExecuteHookFunction(CEFunction_Think, iId, this); - new iDeadFlag = pev(this, pev_deadflag); + static iDeadFlag; iDeadFlag = pev(this, pev_deadflag); switch (iDeadFlag) { case DEAD_NO: { - new Float:flNextKill = GetPDataMember(itPData, CE_MEMBER_NEXTKILL); + static Float:flNextKill; flNextKill = GetPDataMember(itPData, CE_MEMBER_NEXTKILL); if (flNextKill > 0.0 && flNextKill <= flGameTime) { ExecuteHamB(Ham_Killed, this, 0, 0); } } case DEAD_RESPAWNABLE: { - new Float:flNextRespawn = GetPDataMember(itPData, CE_MEMBER_NEXTRESPAWN); + static Float:flNextRespawn; flNextRespawn = GetPDataMember(itPData, CE_MEMBER_NEXTRESPAWN); if (flNextRespawn <= flGameTime) { dllfunc(DLLFunc_Spawn, this); } @@ -869,15 +1040,13 @@ bool:@Entity_IsCustom(this) { } } -@Entity_Touch(this, pToucher) { +@Entity_Touch(const &this, const &pToucher) { static Trie:itPData; itPData = @Entity_GetPData(this); static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); - if (ExecuteHookFunction(CEFunction_Touch, iId, this, pToucher)) { - return; - } + if (ExecuteHookFunction(CEFunction_Touch, iId, this, pToucher)) return; - static CEPreset:iPreset; iPreset = ArrayGetCell(g_rgCEData[CEData_Preset], iId); + static CEPreset:iPreset; iPreset = ArrayGetCell(g_rgEntity[Entity_Preset], iId); switch (iPreset) { case CEPreset_Item: { @@ -891,14 +1060,14 @@ bool:@Entity_IsCustom(this) { } } -@Entity_Touched(this, pToucher) { +@Entity_Touched(const &this, const &pToucher) { static Trie:itPData; itPData = @Entity_GetPData(this); static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); ExecuteHookFunction(CEFunction_Touched, iId, this, pToucher); } -@Entity_GetObjectCaps(this) { +@Entity_GetObjectCaps(const &this) { new Trie:itPData = @Entity_GetPData(this); new bool:bIgnoreRound = GetPDataMember(itPData, CE_MEMBER_IGNOREROUNDS); new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); @@ -918,7 +1087,7 @@ bool:@Entity_IsCustom(this) { return iObjectCaps; } -@Entity_Pickup(this, pToucher) { +@Entity_Pickup(const &this, const &pToucher) { if (~pev(this, pev_flags) & FL_ONGROUND) { return; } @@ -932,7 +1101,7 @@ bool:@Entity_IsCustom(this) { } } -bool:@Entity_CanActivate(this, pTarget) { +bool:@Entity_CanActivate(const &this, const &pTarget) { static Float:flNextThink; pev(this, pev_nextthink, flNextThink); @@ -954,7 +1123,7 @@ bool:@Entity_CanActivate(this, pTarget) { return UTIL_IsMasterTriggered(szMaster, pTarget); } -@Entity_Trigger(this, pActivator) { +@Entity_Trigger(const &this, const &pActivator) { if (!@Entity_CanActivate(this, pActivator)) { return; } @@ -967,7 +1136,7 @@ bool:@Entity_CanActivate(this, pTarget) { ExecuteHookFunction(CEFunction_Activated, iId, this, pActivator); } -@Entity_BloodColor(this) { +@Entity_BloodColor(const &this) { new Trie:itPData = @Entity_GetPData(this); if (!HasPDataMember(itPData, CE_MEMBER_BLOODCOLOR)) return -1; @@ -975,7 +1144,7 @@ bool:@Entity_CanActivate(this, pTarget) { return GetPDataMember(itPData, CE_MEMBER_BLOODCOLOR); } -Trie:@Entity_GetPData(this) { +Trie:@Entity_GetPData(const &this) { // Return the current allocated data if the entity is at the initialization stage if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER) == this) { return g_itPData; @@ -984,18 +1153,18 @@ Trie:@Entity_GetPData(this) { return Trie:pev(this, pev_iStepLeft); } -@Entity_SetPData(this, Trie:itPData) { +@Entity_SetPData(const &this, Trie:itPData) { set_pev(this, pev_gaitsequence, CE_ENTITY_SECRET); set_pev(this, pev_iStepLeft, itPData); } -Trie:@Entity_AllocPData(this, iId) { +Trie:@Entity_AllocPData(const &this, iId) { new Trie:itPData = AllocPData(iId, this); @Entity_SetPData(this, itPData); return itPData; } -@Entity_FreePData(this) { +@Entity_FreePData(const &this) { new Trie:itPData = @Entity_GetPData(this); new iId = GetPDataMember(itPData, CE_MEMBER_ID); @@ -1007,100 +1176,77 @@ Trie:@Entity_AllocPData(this, iId) { set_pev(this, pev_iStepLeft, 0); } -any:@Entity_CallMethod(this, const szMethod[], DataPack:dpParams) { - static Trie:itPData; itPData = @Entity_GetPData(this); - static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); - static Trie:itMethods; itMethods = ArrayGetCell(g_rgCEData[CEData_Methods], iId); - static rgMethod[CEMethodData]; TrieGetArray(itMethods, szMethod, rgMethod[CEMethodData:0], _:CEMethodData); - - if (callfunc_begin_i(rgMethod[CEMethodData_FunctionID], rgMethod[CEMethodData_PluginID]) == 1) { - callfunc_push_int(this); - - #if defined _datapack_included - static Array:irgParamTypes; irgParamTypes = rgMethod[CEMethodData_ParamTypes]; - - if (irgParamTypes != Invalid_Array) { - static iParamsNum; iParamsNum = ArraySize(irgParamTypes); - - for (new iParam = 0; iParam < iParamsNum; ++iParam) { - static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:MethodParam_Type); - - switch (iType) { - case CE_MP_Cell: { - static iValue; iValue = ReadPackCell(dpParams); - callfunc_push_int(iValue); - } - case CE_MP_Float: { - static Float:flValue; flValue = ReadPackFloat(dpParams); - callfunc_push_float(flValue); - } - case CE_MP_String: { - ReadPackString(dpParams, g_szBuffer, charsmax(g_szBuffer)); - callfunc_push_str(g_szBuffer); - } - case CE_MP_Array: { - static iLen; iLen = ReadPackArray(dpParams, g_rgiBuffer); - callfunc_push_array(g_rgiBuffer, iLen, false); - } - case CE_MP_FloatArray: { - static iLen; iLen = ReadPackFloatArray(dpParams, g_rgflBuffer); - callfunc_push_array(_:g_rgflBuffer, iLen, false); - } - } - } - } - #endif - - return callfunc_end(); - } - - return 0; -} - /*--------------------------------[ Functions ]--------------------------------*/ InitStorages() { + g_dpParams = CreateDataPack(); g_itEntityIds = TrieCreate(); - g_rgCEData[CEData_Name] = ArrayCreate(CE_MAX_NAME_LENGTH); - g_rgCEData[CEData_Preset] = ArrayCreate(); + g_rgEntity[Entity_Name] = ArrayCreate(CE_MAX_NAME_LENGTH); + g_rgEntity[Entity_Preset] = ArrayCreate(); + g_rgEntity[Entity_Parent] = ArrayCreate(); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - g_rgCEData[CEData_Hooks][iFunction] = ArrayCreate(); + g_rgEntity[Entity_Hooks][iFunction] = ArrayCreate(); } - g_rgCEData[CEData_Methods] = ArrayCreate(); + g_rgEntity[Entity_Methods] = ArrayCreate(); + g_rgEntity[Entity_Hierarchy] = ArrayCreate(); + + g_irgMethods = ArrayCreate(CE_MAX_METHOD_NAME_LENGTH, 128); + g_itMethods = TrieCreate(); + g_irgMethodCallStack = ArrayCreate(_:MethodCallStackItem); } DestroyStorages() { for (new iId = 0; iId < g_iEntitiesNum; ++iId) { - FreeRegisteredEntityData(iId); + FreeRegisteredEntity(iId); } for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - ArrayDestroy(g_rgCEData[CEData_Hooks][iFunction]); + ArrayDestroy(g_rgEntity[Entity_Hooks][iFunction]); } - for (new CEData:iData = CEData:0; iData < CEData; ++iData) { - ArrayDestroy(Array:g_rgCEData[iData]); + for (new Entity:iData = Entity:0; iData < Entity; ++iData) { + ArrayDestroy(Array:g_rgEntity[iData]); } - ArrayDestroy(g_rgCEData[CEData_Methods]); - ArrayDestroy(g_rgCEData[CEData_Preset]); - ArrayDestroy(g_rgCEData[CEData_Name]); + ArrayDestroy(g_rgEntity[Entity_Hierarchy]); + ArrayDestroy(g_rgEntity[Entity_Methods]); + ArrayDestroy(g_rgEntity[Entity_Parent]); + ArrayDestroy(g_rgEntity[Entity_Preset]); + ArrayDestroy(g_rgEntity[Entity_Name]); + + ArrayDestroy(g_irgMethodCallStack); + ArrayDestroy(g_irgMethods); + TrieDestroy(g_itMethods); + + DestroyDataPack(g_dpParams); TrieDestroy(g_itEntityIds); } -RegisterEntity(const szClassName[], CEPreset:iPreset) { +RegisterEntity(const szClassName[], CEPreset:iPreset = CEPreset_None, const szParent[] = "") { new iId = g_iEntitiesNum; + new iParentId = -1; + if (!equal(szParent, "")) { + if (!TrieGetCell(g_itEntityIds, szParent, iParentId)) { + log_error(AMX_ERR_NATIVE, "%s Cannot extend entity class ^"%s^". The class is not exists!", LOG_PREFIX, szParent); + return -1; + } + + iPreset = ArrayGetCell(g_rgEntity[Entity_Preset], iParentId); + } + TrieSetCell(g_itEntityIds, szClassName, iId); - ArrayPushString(g_rgCEData[CEData_Name], szClassName); - ArrayPushCell(g_rgCEData[CEData_Preset], iPreset); - ArrayPushCell(g_rgCEData[CEData_Methods], TrieCreate()); + ArrayPushString(g_rgEntity[Entity_Name], szClassName); + ArrayPushCell(g_rgEntity[Entity_Preset], iPreset); + ArrayPushCell(g_rgEntity[Entity_Parent], iParentId); + ArrayPushCell(g_rgEntity[Entity_Methods], TrieCreate()); + ArrayPushCell(g_rgEntity[Entity_Hierarchy], Invalid_Array); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - ArrayPushCell(g_rgCEData[CEData_Hooks][iFunction], ArrayCreate(_:CEHookData)); + ArrayPushCell(g_rgEntity[Entity_Hooks][iFunction], ArrayCreate(_:EntityHook)); } g_iEntitiesNum++; @@ -1110,21 +1256,24 @@ RegisterEntity(const szClassName[], CEPreset:iPreset) { return iId; } -FreeRegisteredEntityData(iId) { +FreeRegisteredEntity(iId) { for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - new Array:irgHooks = ArrayGetCell(g_rgCEData[CEData_Hooks][iFunction], iId); + new Array:irgHooks = ArrayGetCell(g_rgEntity[Entity_Hooks][iFunction], iId); ArrayDestroy(irgHooks); - ArraySetCell(g_rgCEData[CEData_Hooks][iFunction], iId, Invalid_Array); + ArraySetCell(g_rgEntity[Entity_Hooks][iFunction], iId, Invalid_Array); } - new Trie:itMethods = ArrayGetCell(g_rgCEData[CEData_Methods], iId); + new Trie:itMethods = ArrayGetCell(g_rgEntity[Entity_Methods], iId); TrieDestroy(itMethods); - ArraySetCell(g_rgCEData[CEData_Methods], iId, Invalid_Trie); + ArraySetCell(g_rgEntity[Entity_Methods], iId, Invalid_Trie); + + new Array:irgHierarchy = ArrayGetCell(g_rgEntity[Entity_Hierarchy], iId); + ArrayDestroy(irgHierarchy); } GetIdByClassName(const szClassName[]) { - new iId = -1; - TrieGetCell(g_itEntityIds, szClassName, iId); + new iId = -1; TrieGetCell(g_itEntityIds, szClassName, iId); + return iId; } @@ -1143,17 +1292,17 @@ RegisterEntityHook(CEFunction:iFunction, const szClassName[], const szCallback[] return -1; } - new rgHook[CEHookData]; - rgHook[CEHookData_PluginID] = iPluginId; - rgHook[CEHookData_FuncID] = iFunctionId; + new rgHook[EntityHook]; + rgHook[EntityHook_PluginID] = iPluginId; + rgHook[EntityHook_FuncID] = iFunctionId; - new Array:irgHooks = ArrayGetCell(g_rgCEData[CEData_Hooks][iFunction], iId); - new iHookId = ArrayPushArray(irgHooks, rgHook[CEHookData:0], _:CEHookData); + new Array:irgHooks = ArrayGetCell(g_rgEntity[Entity_Hooks][iFunction], iId); + new iHookId = ArrayPushArray(irgHooks, rgHook[EntityHook:0], _:EntityHook); return iHookId; } -RegisterEntityMethod(const szClassName[], const szMethod[], const szCallback[], iPluginId = -1, Array:irgParamTypes) { +RegisterEntityMethod(const szClassName[], const szMethod[], const szCallback[], iPluginId = -1, Array:irgParamTypes, bool:bVirtual) { new iId = GetIdByClassName(szClassName); if (iId == -1) { log_error(AMX_ERR_NATIVE, "%s Entity ^"%s^" is not registered.", LOG_PREFIX, szClassName); @@ -1168,19 +1317,35 @@ RegisterEntityMethod(const szClassName[], const szMethod[], const szCallback[], return; } - new Trie:itMethods; itMethods = ArrayGetCell(g_rgCEData[CEData_Methods], iId); + new Trie:itMethods; itMethods = ArrayGetCell(g_rgEntity[Entity_Methods], iId); if (TrieKeyExists(itMethods, szMethod)) { log_error(AMX_ERR_NATIVE, "%s Method ^"%s^" is already registered for ^"%s^" entity.", LOG_PREFIX, szMethod, szClassName); return; } - new rgMethod[CEMethodData]; - rgMethod[CEMethodData_PluginID] = iPluginId; - rgMethod[CEMethodData_FunctionID] = iFunctionId; - rgMethod[CEMethodData_ParamTypes] = irgParamTypes; + new iParentId = ArrayGetCell(g_rgEntity[Entity_Parent], iId); + if (iParentId != -1) { + new rgMethod[Method]; + if (FindEntityMethodInHierarchy(iId, szMethod, rgMethod) != -1) { + if (rgMethod[Method_IsVirtual]) { + if (!CompareParamTypes(rgMethod[Method_ParamTypes], irgParamTypes)) { + log_error(AMX_ERR_NATIVE, "%s Arguments mismatch in the overridden virtual method ^"%s^".", LOG_PREFIX, szMethod, szClassName); + return; + } + } + } + } + + new rgMethod[Method]; + rgMethod[Method_PluginID] = iPluginId; + rgMethod[Method_FunctionID] = iFunctionId; + rgMethod[Method_ParamTypes] = irgParamTypes; + rgMethod[Method_IsVirtual] = bVirtual; + + TrieSetArray(itMethods, szMethod, rgMethod[Method:0], _:Method); - TrieSetArray(itMethods, szMethod, rgMethod[CEMethodData:0], _:CEMethodData); + AddMethodToGlobalTable(szMethod); } Trie:AllocPData(iId, pEntity) { @@ -1235,66 +1400,228 @@ SetPDataMemberVec(Trie:itPData, const szMember[], const Float:vecValue[3]) { ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { new iResult = 0; - new Array:irgHooks = ArrayGetCell(g_rgCEData[CEData_Hooks][iFunction], iId); + // Do not use static here! (recursion) + new Array:irgHierarchy = GetEntityHierarchy(iId); + new iHierarchySize = ArraySize(irgHierarchy); - new iHooksNum = ArraySize(irgHooks); - for (new iHookId = 0; iHookId < iHooksNum; ++iHookId) { - new iPluginId = ArrayGetCell(irgHooks, iHookId, _:CEHookData_PluginID); - new iFunctionId = ArrayGetCell(irgHooks, iHookId, _:CEHookData_FuncID); - - if (callfunc_begin_i(iFunctionId, iPluginId) == 1) { - callfunc_push_int(pEntity); + for (new i = 0; i < iHierarchySize; ++i) { + new iCurrentId; iCurrentId = ArrayGetCell(irgHierarchy, i); + new Array:irgHooks; irgHooks = ArrayGetCell(g_rgEntity[Entity_Hooks][iFunction], iCurrentId); + new iHooksNum; iHooksNum = ArraySize(irgHooks); - switch (iFunction) { - case CEFunction_Touch, CEFunction_Touched: { - new pToucher = getarg(3); - callfunc_push_int(pToucher); - } - case CEFunction_Kill, CEFunction_Killed: { - new pKiller = getarg(3); - new bool:bPicked = bool:getarg(4); - callfunc_push_int(pKiller); - callfunc_push_int(bPicked); - } - case CEFunction_Pickup, CEFunction_Picked: { - new pPlayer = getarg(3); - callfunc_push_int(pPlayer); - } - case CEFunction_Activate, CEFunction_Activated: { - new pPlayer = getarg(3); - callfunc_push_int(pPlayer); - } - case CEFunction_KeyValue: { - static szKey[32]; - for (new i = 0; i < charsmax(szKey); ++i) { - szKey[i] = getarg(3, i); + for (new iHookId = 0; iHookId < iHooksNum; ++iHookId) { + static iPluginId; iPluginId = ArrayGetCell(irgHooks, iHookId, _:EntityHook_PluginID); + static iFunctionId; iFunctionId = ArrayGetCell(irgHooks, iHookId, _:EntityHook_FuncID); + + if (callfunc_begin_i(iFunctionId, iPluginId) == 1) { + callfunc_push_int(pEntity); + + switch (iFunction) { + case CEFunction_Touch, CEFunction_Touched: { + static pToucher; pToucher = getarg(3); + callfunc_push_int(pToucher); + } + case CEFunction_Kill, CEFunction_Killed: { + static pKiller; pKiller = getarg(3); + static bool:bPicked; bPicked = bool:getarg(4); + callfunc_push_int(pKiller); + callfunc_push_int(bPicked); + } + case CEFunction_Pickup, CEFunction_Picked: { + static pPlayer; pPlayer = getarg(3); + callfunc_push_int(pPlayer); + } + case CEFunction_Activate, CEFunction_Activated: { + static pPlayer; pPlayer = getarg(3); + callfunc_push_int(pPlayer); + } + case CEFunction_KeyValue: { + static szKey[32]; + for (new i = 0; i < charsmax(szKey); ++i) { + szKey[i] = getarg(3, i); + + if (szKey[i] == '^0') break; + } - if (szKey[i] == '^0') { - break; + static szValue[32]; + for (new i = 0; i < charsmax(szValue); ++i) { + szValue[i] = getarg(4, i); + + if (szValue[i] == '^0') break; } - } - - static szValue[32]; - for (new i = 0; i < charsmax(szValue); ++i) { - szValue[i] = getarg(4, i); - if (szValue[i] == '^0') { - break; + callfunc_push_str(szKey); + callfunc_push_str(szValue); + } + } + + iResult = max(iResult, callfunc_end()); + } + } + } + + return iResult; +} + +ExecuteMethod(const szMethod[], const iId, const pEntity, const DataPack:dpParams) { + static Trie:itMethods; itMethods = ArrayGetCell(g_rgEntity[Entity_Methods], iId); + + static rgMethod[Method]; + if (!TrieGetArray(itMethods, szMethod, rgMethod[Method:0], _:Method)) { + return 0; + } + + new iResult = 0; + + PushMethodToCallStack(pEntity, iId, szMethod); + + if (callfunc_begin_i(rgMethod[Method_FunctionID], rgMethod[Method_PluginID]) == 1) { + callfunc_push_int(pEntity); + + #if defined _datapack_included + static Array:irgParamTypes; irgParamTypes = rgMethod[Method_ParamTypes]; + + if (irgParamTypes != Invalid_Array) { + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + + for (new iParam = 0; iParam < iParamsNum; ++iParam) { + static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:MethodParam_Type); + + switch (iType) { + case CE_MP_Cell: { + static iValue; iValue = ReadPackCell(dpParams); + callfunc_push_int(iValue); + } + case CE_MP_Float: { + static Float:flValue; flValue = ReadPackFloat(dpParams); + callfunc_push_float(flValue); + } + case CE_MP_String: { + ReadPackString(dpParams, g_szBuffer, charsmax(g_szBuffer)); + callfunc_push_str(g_szBuffer); + } + case CE_MP_Array: { + static iLen; iLen = ReadPackArray(dpParams, g_rgiBuffer); + callfunc_push_array(g_rgiBuffer, iLen, false); + } + case CE_MP_FloatArray: { + static iLen; iLen = ReadPackFloatArray(dpParams, g_rgflBuffer); + callfunc_push_array(_:g_rgflBuffer, iLen, false); } } - - callfunc_push_str(szKey); - callfunc_push_str(szValue); } } + #endif - iResult += callfunc_end(); - } + iResult = callfunc_end(); } + PopMethodFromCallStack(); + return iResult; } +FindEntityMethodInHierarchy(iId, const szMethod[], rgMethod[Method]) { + new iCurrentId = iId; + + do { + static Trie:itMethods; itMethods = ArrayGetCell(g_rgEntity[Entity_Methods], iCurrentId); + + if (TrieGetArray(itMethods, szMethod, rgMethod[Method:0], _:Method)) { + break; + } + + } while ((iCurrentId = ArrayGetCell(g_rgEntity[Entity_Parent], iCurrentId)) != -1); + + return iCurrentId; +} + +Array:GetEntityHierarchy(iId) { + static Array:irgHierarchy; irgHierarchy = ArrayGetCell(g_rgEntity[Entity_Hierarchy], iId); + + if (irgHierarchy == Invalid_Array) { + irgHierarchy = CreateHierarchyList(iId); + ArraySetCell(g_rgEntity[Entity_Hierarchy], iId, irgHierarchy); + } + + return irgHierarchy; +} + +Array:CreateHierarchyList(iId) { + new Array:irgHierarchy = ArrayCreate(); + + new iCurrentId = iId; + + do { + if (iCurrentId == iId) { + ArrayPushCell(irgHierarchy, iCurrentId); + } else { + ArrayInsertCellBefore(irgHierarchy, 0, iCurrentId); + } + iCurrentId = ArrayGetCell(g_rgEntity[Entity_Parent], iCurrentId); + } while (iCurrentId != -1); + + return irgHierarchy; +} + +AddMethodToGlobalTable(const szMethod[]) { + if (TrieKeyExists(g_itMethods, szMethod)) return -1; + + new iIndex = ArraySize(g_irgMethods); + + ArrayPushString(g_irgMethods, szMethod); + TrieSetCell(g_itMethods, szMethod, iIndex); + + return iIndex; +} + +GetNameFromMethodGlobalTable(iIndex, szMethod[], iLen) { + return ArrayGetString(g_irgMethods, iIndex, szMethod, iLen); +} + +GetIndexFromMethodGlobalTable(const szMethod[]) { + static iValue; + if (!TrieGetCell(g_itMethods, szMethod, iValue)) return -1; + + return iValue; +} + +bool:IsMethodCallStackEmtpy() { + return !ArraySize(g_irgMethodCallStack); +} + +PushMethodToCallStack(const pEntity, const iId, const szMethod[]) { + static rgCallStackItem[MethodCallStackItem]; + rgCallStackItem[MethodCallStackItem_Entity] = pEntity; + rgCallStackItem[MethodCallStackItem_EntityID] = iId; + rgCallStackItem[MethodCallStackItem_Method] = GetIndexFromMethodGlobalTable(szMethod); + + ArrayPushArray(g_irgMethodCallStack, rgCallStackItem[MethodCallStackItem:0], sizeof(rgCallStackItem)); +} + +PopMethodFromCallStack() { + ArrayDeleteItem(g_irgMethodCallStack, ArraySize(g_irgMethodCallStack) - 1); +} + +GetCurrentMethodFromCallStack(rgCallStackItem[MethodCallStackItem]) { + ArrayGetArray(g_irgMethodCallStack, ArraySize(g_irgMethodCallStack) - 1, rgCallStackItem[MethodCallStackItem:0], sizeof(rgCallStackItem)); +} + +CompareParamTypes(const &Array:irgParams, const &Array:irgOtherParams) { + new iSize = ArraySize(irgParams); + new iOtherSize = ArraySize(irgOtherParams); + + if (iSize != iOtherSize) { + return false; + } + + for (new i = 0; i < iSize; ++i) { + if (ArrayGetCell(irgParams, i) != ArrayGetCell(irgOtherParams, i)) return false; + } + + return true; +} + /*--------------------------------[ Stocks ]--------------------------------*/ stock bool:UTIL_IsMasterTriggered(const szMaster[], pActivator) { diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index d4c6de6..aa77165 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -17,6 +17,16 @@ */ native CE:CE_Register(const szName[], CEPreset:iPreset = CEPreset_None); +/** + * Extend entity + * + * @param szName Name of an entity + * @param iPreset Preset for an entity + * + * @return Handler of the registered entity + */ +native CE:CE_RegisterDerived(const szName[], const szBase[]); + /** * Spawn entity * @@ -72,6 +82,17 @@ native CE_RegisterHook(const szName[], CEFunction:function, const szCallback[]); */ native CE_RegisterMethod(const szName[], const szMethod[], const szCallback[], any:...); +/** + * Registers a new virtual method for entity. + * + * @param szName Name of entity + * @param szMethod Name of method + * @param szCallback Callback + * + * @noreturn +*/ +native CE_RegisterVirtualMethod(const szName[], const szMethod[], const szCallback[], any:...); + /** * Gets handler of entity by name * @@ -90,6 +111,16 @@ native CE:CE_GetHandler(const szName[]); */ native CE:CE_GetHandlerByEntity(pEntity); +/** + * Checks if entity is an instance of specific custom entity + * + * @param pEntity Entity index + * @param szTargetName Name of target entity to check + * + * @return Result true/false + */ +native bool:CE_IsInstanceOf(pEntity, const szTargetName[]); + /** * Checks if entity has member * @@ -171,3 +202,13 @@ native CE_SetMemberString(pEntity, const szMember[], const szValue[]); * @return Method return value */ native any:CE_CallMethod(pEntity, const szMethod[], any:...); + +/** + * Call a base method for entity. + * + * @param pEntity Entity index + * @param szMethod Name of method + * + * @return Method return value +*/ +native any:CE_CallBaseMethod(any:...); From fd564ba9a6d148d1ca8aaee79964457fa10319f1 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 2 Mar 2024 03:06:07 +0100 Subject: [PATCH 142/231] particles api update --- api/particles/README.md | 153 ++- api/particles/api_particles.sma | 1206 +++++++++++------ api/particles/include/api_particles.inc | 217 ++- api/particles/include/api_particles_const.inc | 23 + 4 files changed, 1125 insertions(+), 474 deletions(-) create mode 100644 api/particles/include/api_particles_const.inc diff --git a/api/particles/README.md b/api/particles/README.md index 06fefd4..d5cfcbf 100644 --- a/api/particles/README.md +++ b/api/particles/README.md @@ -1,97 +1,124 @@ # Particles API +This is a Particle System API for a game modification plugin, likely written in Pawn language for the AMX Mod X platform. The API provides functions to register particle effects, create and manipulate particle systems, and work with individual particles. -## Simple particle effect +## Registering new particle effect +To register new particle effect use `ParticleEffect_Register` function. ```cpp +ParticleEffect_Register("my-effect", EMIT_RATE, PARTICLE_LIFETIME, MAX_PARTICLES); +``` -#include -#include +## Controling particle effect +To control your effect use hooks. Use `ParticleEffect_RegisterHook` function together with `ParticleEffectHook_` constants to hook events. +```cpp +ParticleEffect_RegisterHook("my-effect", ParticleEffectHook_Particle_Think, "@Effect_Particle_Think"); +``` -#include +## Spawning the particle effect system +Use `ParticleSystem_Create` function to spawn the system on specific origin. +```cpp +new ParticleSystem:sParticleSystem = ParticleSystem_Create("my-effect", vecOrigin); +``` -new const g_szParticleModel[] = "sprites/muz4.spr"; +## Removing the particle effect system +To remove destroy system and free memory use `ParticleSystem_Destroy` function. +```cpp +ParticleSystem_Destroy(sParticleSystem); +``` -public plugin_precache() { - precache_model(g_szParticleModel); +## Enabling/Disabling the particle effect system +You can use `ParticleSystem_Activate` and `ParticleSystem_Deactivate` methods to enable or disable particle system. +```cpp +ParticleSystem_Activate(sParticleSystem); +ParticleSystem_Deactivate(sParticleSystem); +``` - Particles_RegisterEffect("test", 0.1, 1.0, 10, "@Particle_Init", "@Particle_Transform"); -} -public plugin_init() { - register_plugin("[Particle Effect] Test", "1.0.0", "Hedgehog Fog"); -} +## Simple particle effect +Here is an example of a simple particle effect to demonstrate API functionality. -public @Particle_Init(Particle:this) { - // Getting entity from the particle pointer +![Simple Particle Effect](../../images/example-particle-effect.gif) - static pEntity; pEntity = Particles_Particle_GetEntity(this); - static iModelIndex; iModelIndex = engfunc(EngFunc_ModelIndex, g_szParticleModel); - set_pev(pEntity, pev_rendermode, kRenderTransAdd); - set_pev(pEntity, pev_renderamt, 160.0); - set_pev(pEntity, pev_scale, 0.2); - set_pev(pEntity, pev_modelindex, iModelIndex); +```cpp +#include +#include +#include - // Random Color - static Float:rgflColor[3]; - rgflColor[0] = random_float(50.0, 255.0); - rgflColor[1] = random_float(50.0, 255.0); - rgflColor[2] = random_float(50.0, 255.0); +#include - set_pev(pEntity, pev_rendercolor, rgflColor); -} +#define EFFECT_PARTICLE_LIFETIME 1.5 +#define EFFECT_EMIT_RATE 0.01 +#define EFFECT_MAX_PARTICLES floatround(EFFECT_PARTICLE_LIFETIME / EFFECT_EMIT_RATE, floatround_ceil) + +// Particle model for the effect +new g_szParticleModel[] = "sprites/animglow01.spr"; -public @Particle_Transform(Particle:this) { - // Getting entity from the particle pointer +public plugin_precache() { + // Precache the particle model + precache_model(g_szParticleModel); + + // Register the particle effect + ParticleEffect_Register("colored-circle", EFFECT_EMIT_RATE, EFFECT_PARTICLE_LIFETIME, EFFECT_MAX_PARTICLES); + + // Register hooks for the particle effect + ParticleEffect_RegisterHook("colored-circle", ParticleEffectHook_System_Init, "@Effect_System_Init"); + ParticleEffect_RegisterHook("colored-circle", ParticleEffectHook_Particle_Think, "@Effect_Particle_Think"); + ParticleEffect_RegisterHook("colored-circle", ParticleEffectHook_Particle_EntityInit, "@Effect_Particle_EntityInit"); +} - static pEntity; pEntity = Particles_Particle_GetEntity(this); +public plugin_init() { + // Plugin initialization + register_plugin("[Particle] Colored Circle", "1.0.0", "Hedgehog Fog"); +} - // Time Ratio Calculation +// Hook callback for system initialization +@Effect_System_Init(ParticleSystem:this) { + // Set additional system parameters + ParticleSystem_SetMember(this, "flRadius", 48.0); +} +// Hook callback for particle thinking +@Effect_Particle_Think(Particle:this) { + // Get relevant time and system information static Float:flGameTime; flGameTime = get_gametime(); - static Float:flCreatedTime; flCreatedTime = Particles_Particle_GetCreatedTime(this); - static Float:flKillTime; flKillTime = Particles_Particle_GetKillTime(this); + static ParticleSystem:sSystem; sSystem = Particle_GetSystem(this); + static Float:flCreatedTime; flCreatedTime = Particle_GetCreatedTime(this); + static Float:flKillTime; flKillTime = Particle_GetKillTime(this); static Float:flTimeRatio; flTimeRatio = (flGameTime - flCreatedTime) / (flKillTime - flCreatedTime); - // Random Velocity - - static Float:flMinNoise; flMinNoise = 80.0; - static Float:flMaxNoise; flMaxNoise = flMinNoise + (64.0 * flTimeRatio); + // Calculate particle velocity in a circular pattern + static Float:flAngle; flAngle = 2 * M_PI * flTimeRatio + static Float:flRadius; flRadius = ParticleSystem_GetMember(sSystem, "flRadius"); static Float:vecVelocity[3]; - vecVelocity[0] = random_float(flMinNoise, flMaxNoise) * (random(2) ? -1 : 1); - vecVelocity[1] = random_float(flMinNoise, flMaxNoise) * (random(2) ? -1 : 1); - vecVelocity[2] = 32.0; + vecVelocity[0] = flRadius * floatcos(flAngle); + vecVelocity[1] = flRadius * floatsin(flAngle); + vecVelocity[2] = 0.0; - set_pev(pEntity, pev_velocity, vecVelocity); - - // Fade Out effect - - static Float:flRenderAmt; flRenderAmt = 160.0; - if (flTimeRatio <= 0.25) { - flRenderAmt *= flTimeRatio / 0.25; - } else if (flTimeRatio > 0.75) { - flRenderAmt *= (1.0 - flTimeRatio) / 0.25; - } - - set_pev(pEntity, pev_renderamt, flRenderAmt); + // Set the calculated velocity to create circular motion + Particle_SetVelocity(this, vecVelocity); } -``` +// Hook callback for particle entity initialization +@Effect_Particle_EntityInit(Particle:this, pEntity) { + // Set up rendering properties for each particle entity + static iModelIndex; iModelIndex = engfunc(EngFunc_ModelIndex, g_szParticleModel); -## Spawning the particle effect + set_pev(pEntity, pev_rendermode, kRenderTransAdd); + set_pev(pEntity, pev_renderfx, kRenderFxLightMultiplier); + set_pev(pEntity, pev_scale, 0.065); + set_pev(pEntity, pev_modelindex, iModelIndex); + set_pev(pEntity, pev_renderamt, 220.0); + set_pev(pEntity, pev_framerate, 1.0); -```cpp -new ParticleSystem:g_sParticleSystem; + engfunc(EngFunc_SetModel, pEntity, g_szParticleModel); -public SpawnTestParticleEffect() { - g_sParticleSystem = Particles_ParticleSystem_Create("test", vecOrigin); - Particles_ParticleSystem_Activate(g_sParticleSystem); -} + // Randomize color for each particle entity + static Float:rgflColor[3]; + for (new i = 0; i < 3; ++i) rgflColor[i] = random_float(0.0, 255.0); -public RemoveParticleEffect() { - Particles_ParticleSystem_Destroy(g_sParticleSystem); + set_pev(pEntity, pev_rendercolor, rgflColor); } - ``` diff --git a/api/particles/api_particles.sma b/api/particles/api_particles.sma index 430d3f2..bc66369 100644 --- a/api/particles/api_particles.sma +++ b/api/particles/api_particles.sma @@ -2,13 +2,14 @@ #include #include -#include #include #include #include #include +#include + #define PLUGIN "[API] Particles" #define VERSION "1.0.0" #define AUTHOR "Hedgehog Fog" @@ -20,39 +21,55 @@ #define UPDATE_RATE 0.01 #define VISIBILITY_UPDATE_RATE 0.25 +enum Callback { + Callback_PluginId, + Callback_FunctionId +}; + +enum PositionVars { + Float:PositionVars_Origin[3], + Float:PositionVars_Angles[3], + Float:PositionVars_Velocity[3] +}; + enum ParticleEffect { - ParticleEffect_Id[32], - Float:ParticleEffect_EmitRate, - Float:ParticleEffect_ParticleLifeTime, - ParticleEffect_VisibilityDistance, - ParticleEffect_MaxParticles, - ParticleEffect_PluginId, - ParticleEffect_InitFunctionId, - ParticleEffect_TransformFunctionId + ParticleEffect_Id[32], + ParticleEffect_EmitAmount, + Float:ParticleEffect_EmitRate, + Float:ParticleEffect_ParticleLifeTime, + ParticleEffect_VisibilityDistance, + ParticleEffect_MaxParticles, + ParticleEffectFlag:ParticleEffect_Flags, + Array:ParticleEffect_Hooks[ParticleEffectHook] }; enum ParticleSystem { - Struct:ParticleSystem_Effect, - bool:ParticleSystem_Active, - Float:ParticleSystem_Origin[3], - Float:ParticleSystem_Angles[3], - ParticleSystem_ParentEntity, - Float:ParticleSystem_CreatedTime, - ParticleSystem_VisibilityBits, - Float:ParticleSystem_KillTime, - Array:ParticleSystem_Particles, - Float:ParticleSystem_NextEmit, - Float:ParticleSystem_NextVisibilityUpdate, - Float:ParticleSystem_LasOrigin[3], - Float:ParticleSystem_LastUpdate + Struct:ParticleSystem_Effect, + bool:ParticleSystem_Active, + Float:ParticleSystem_EffectSpeed, + ParticleSystem_ParentEntity, + Float:ParticleSystem_CreatedTime, + ParticleSystem_VisibilityBits, + Float:ParticleSystem_KillTime, + Array:ParticleSystem_Particles, + Float:ParticleSystem_NextEmit, + Float:ParticleSystem_NextVisibilityUpdate, + Float:ParticleSystem_LastThink, + Trie:ParticleSystem_Members, + ParticleSystem_PositionVars[PositionVars] }; enum Particle { - Struct:Particle_System, - Particle_Entity, - Float:Particle_CreatedTime, - Float:Particle_KillTime, - Float:Particle_LastTransform + Particle_Index, + Particle_BatchIndex, + Particle_Entity, + Float:Particle_CreatedTime, + Float:Particle_KillTime, + Float:Particle_LastThink, + Struct:Particle_System, + bool:Particle_Attached, + Particle_PositionVars[PositionVars], + Particle_AbsPositionVars[PositionVars] }; new g_iszParticleClassName; @@ -64,598 +81,999 @@ new Array:g_irgSystems; new Trie:g_tParticleEffects; public plugin_precache() { - g_flNextSystemsUpdate = 0.0; - g_irgSystems = ArrayCreate(); - g_tParticleEffects = TrieCreate(); - g_iszParticleClassName = engfunc(EngFunc_AllocString, "info_target"); - g_pTrace = create_tr2(); + g_flNextSystemsUpdate = 0.0; + g_irgSystems = ArrayCreate(); + g_tParticleEffects = TrieCreate(); + g_iszParticleClassName = engfunc(EngFunc_AllocString, "info_target"); + g_pTrace = create_tr2(); } public plugin_init() { - register_plugin(PLUGIN, VERSION, AUTHOR); + register_plugin(PLUGIN, VERSION, AUTHOR); - register_forward(FM_AddToFullPack, "FMHook_AddToFullPack", 0); - - register_concmd("particle_create", "Command_Create", ADMIN_CVAR); + register_forward(FM_AddToFullPack, "FMHook_AddToFullPack", 0); + + register_concmd("particle_create", "Command_Create", ADMIN_CVAR); } public plugin_natives() { - register_library("api_particles"); - - register_native("RegisterParticleEffect", "Native_RegisterParticleEffect"); - - register_native("ParticleSystem_Create", "Native_CreateParticleSystem"); - register_native("ParticleSystem_Destroy", "Native_DestroyParticleSystem"); - register_native("ParticleSystem_Activate", "Native_ActivateParticleSystem"); - register_native("ParticleSystem_Deactivate", "Native_DeactivateParticleSystem"); - register_native("ParticleSystem_GetCreatedTime", "Native_GetParticleSystemCreatedTime"); - register_native("ParticleSystem_GetKillTime", "Native_GetParticleSystemKillTime"); - register_native("ParticleSystem_GetLastUpdateTime", "Native_GetParticleSystemLastUpdate"); - register_native("ParticleSystem_GetVisibilityBits", "Native_GetParticleSystemVisibilityBits"); - register_native("ParticleSystem_GetOrigin", "Native_GetParticleSystemOrigin"); - register_native("ParticleSystem_SetOrigin", "Native_SetParticleSystemOrigin"); - register_native("ParticleSystem_GetParentEntity", "Native_GetParticleSystemParentEntity"); - register_native("ParticleSystem_SetParentEntity", "Native_SetParticleSystemParentEntity"); - register_native("ParticleSystem_GetEffect", "Native_GetParticleSystemEffect"); - register_native("ParticleSystem_SetEffect", "Native_SetParticleSystemEffect"); - - register_native("Particle_GetEntity", "Native_GetParticleEntity"); - register_native("Particle_GetSystem", "Native_GetParticleSystem"); - register_native("Particle_GetCreatedTime", "Native_GetParticleCreatedTime"); - register_native("Particle_GetKillTime", "Native_GetParticleKillTime"); - register_native("Particle_GetLastTransformTime", "Native_GetParticleLastTransformTime"); + register_library("api_particles"); + + register_native("ParticleEffect_Register", "Native_RegisterParticleEffect"); + register_native("ParticleEffect_RegisterHook", "Native_RegisterParticleEffectHook"); + + register_native("ParticleSystem_Create", "Native_CreateParticleSystem"); + register_native("ParticleSystem_Destroy", "Native_DestroyParticleSystem"); + register_native("ParticleSystem_Activate", "Native_ActivateParticleSystem"); + register_native("ParticleSystem_Deactivate", "Native_DeactivateParticleSystem"); + register_native("ParticleSystem_GetEffectSpeed", "Native_GetParticleSystemEffectSpeed"); + register_native("ParticleSystem_SetEffectSpeed", "Native_SetParticleSystemEffectSpeed"); + register_native("ParticleSystem_GetCreatedTime", "Native_GetParticleSystemCreatedTime"); + register_native("ParticleSystem_GetKillTime", "Native_GetParticleSystemKillTime"); + register_native("ParticleSystem_GetLastThinkTime", "Native_GetParticleSystemLastThink"); + register_native("ParticleSystem_GetVisibilityBits", "Native_GetParticleSystemVisibilityBits"); + register_native("ParticleSystem_GetOrigin", "Native_GetParticleSystemOrigin"); + register_native("ParticleSystem_SetOrigin", "Native_SetParticleSystemOrigin"); + register_native("ParticleSystem_GetParentEntity", "Native_GetParticleSystemParentEntity"); + register_native("ParticleSystem_SetParentEntity", "Native_SetParticleSystemParentEntity"); + register_native("ParticleSystem_GetEffect", "Native_GetParticleSystemEffect"); + register_native("ParticleSystem_SetEffect", "Native_SetParticleSystemEffect"); + register_native("ParticleSystem_HasMember", "Native_HasMember"); + register_native("ParticleSystem_DeleteMember", "Native_DeleteMember"); + register_native("ParticleSystem_GetMember", "Native_GetMember"); + register_native("ParticleSystem_SetMember", "Native_SetMember"); + register_native("ParticleSystem_GetMemberVec", "Native_GetMemberVec"); + register_native("ParticleSystem_SetMemberVec", "Native_SetMemberVec"); + register_native("ParticleSystem_GetMemberString", "Native_GetMemberString"); + register_native("ParticleSystem_SetMemberString", "Native_SetMemberString"); + + register_native("Particle_GetIndex", "Native_GetParticleIndex"); + register_native("Particle_GetBatchIndex", "Native_GetParticleBatchIndex"); + register_native("Particle_GetEntity", "Native_GetParticleEntity"); + register_native("Particle_GetSystem", "Native_GetParticleSystem"); + register_native("Particle_GetCreatedTime", "Native_GetParticleCreatedTime"); + register_native("Particle_GetKillTime", "Native_GetParticleKillTime"); + register_native("Particle_GetLastThink", "Native_GetParticleLastThink"); + register_native("Particle_GetOrigin", "Native_GetParticleOrigin"); + register_native("Particle_SetOrigin", "Native_SetParticleOrigin"); + register_native("Particle_GetAngles", "Native_GetParticleAngles"); + register_native("Particle_SetAngles", "Native_SetParticleAngles"); + register_native("Particle_GetVelocity", "Native_GetParticleVelocity"); + register_native("Particle_SetVelocity", "Native_SetParticleVelocity"); } public plugin_end() { - static irgSystemsNum; irgSystemsNum = ArraySize(g_irgSystems); - for (new iSystem = 0; iSystem < irgSystemsNum; ++iSystem) { - static Struct:sSystem; sSystem = ArrayGetCell(g_irgSystems, iSystem); - if (sSystem == Invalid_Struct) continue; + static irgSystemsNum; irgSystemsNum = ArraySize(g_irgSystems); + for (new iSystem = 0; iSystem < irgSystemsNum; ++iSystem) { + static Struct:sSystem; sSystem = ArrayGetCell(g_irgSystems, iSystem); + if (sSystem == Invalid_Struct) continue; - @ParticleSystem_Destroy(sSystem); - } + @ParticleSystem_Destroy(sSystem); + } - ArrayDestroy(g_irgSystems); - TrieDestroy(g_tParticleEffects); - free_tr2(g_pTrace); + ArrayDestroy(g_irgSystems); + TrieDestroy(g_tParticleEffects); + free_tr2(g_pTrace); } /*--------------------------------[ Natives ]--------------------------------*/ public Native_RegisterParticleEffect(iPluginId, iArgc) { - new szName[32]; get_string(1, szName, charsmax(szName)); - new szInitFunction[64]; get_string(2, szInitFunction, charsmax(szInitFunction)); - new szTransformFunction[64]; get_string(3, szTransformFunction, charsmax(szTransformFunction)); - new Float:flEmitRate = get_param_f(4); - new Float:flParticleLifeTime = get_param_f(5); - new Float:flVisibilityDistance = get_param_f(6); - new iMaxParticles = get_param(7); - - if (TrieKeyExists(g_tParticleEffects, szName)) { - log_error(AMX_ERR_NATIVE, "Particle effect ^"%s^" is already registered.", szName); - return; - } + new szName[32]; get_string(1, szName, charsmax(szName)); + new Float:flEmitRate = get_param_f(2); + new Float:flParticleLifeTime = get_param_f(3); + new iMaxParticles = get_param(4); + new iEmitAmount = get_param(5); + new Float:flVisibilityDistance = get_param_f(6); + new ParticleEffectFlag:iFlags = ParticleEffectFlag:get_param(7); + + if (TrieKeyExists(g_tParticleEffects, szName)) { + log_error(AMX_ERR_NATIVE, "Particle effect ^"%s^" is already registered.", szName); + return; + } + + new Struct:sEffect = @ParticleEffect_Create(szName, flEmitRate, flParticleLifeTime, flVisibilityDistance, iMaxParticles, iEmitAmount, iFlags); + + TrieSetCell(g_tParticleEffects, szName, sEffect); +} +public Native_RegisterParticleEffectHook(iPluginId, iArgc) { + new szName[32]; get_string(1, szName, charsmax(szName)); + new ParticleEffectHook:iHookId = ParticleEffectHook:get_param(2); + new szCallback[64]; get_string(3, szCallback, charsmax(szCallback)); - new iInitFunctionId = get_func_id(szInitFunction, iPluginId); - new iTransformFunctionId = get_func_id(szTransformFunction, iPluginId); + static Struct:sEffect; + if (!TrieGetCell(g_tParticleEffects, szName, sEffect)) { + log_error(AMX_ERR_NATIVE, "[Particles] Effect ^"%s^" is not registered!", szName); + return; + } - new Struct:sEffect = @ParticleEffect_Create(szName, flEmitRate, flParticleLifeTime, flVisibilityDistance, iMaxParticles, iPluginId, iInitFunctionId, iTransformFunctionId); + new Array:irgHooks = StructGetCell(sEffect, ParticleEffect_Hooks, iHookId); - TrieSetCell(g_tParticleEffects, szName, sEffect); + new rgCallback[Callback]; + rgCallback[Callback_PluginId] = iPluginId; + rgCallback[Callback_FunctionId] = get_func_id(szCallback, iPluginId); + + if (rgCallback[Callback_FunctionId] == -1) { + log_error(AMX_ERR_NATIVE, "[Particles] Function ^"%s^" is not found!", szCallback); + return; + } + + ArrayPushArray(irgHooks, rgCallback[any:0], sizeof(rgCallback)); } public Struct:Native_CreateParticleSystem(iPluginId, iArgc) { - new szName[32]; get_string(1, szName, charsmax(szName)); - new Float:vecOrigin[3]; get_array_f(2, vecOrigin, sizeof(vecOrigin)); - new Float:vecAngles[3]; get_array_f(3, vecAngles, sizeof(vecAngles)); - new pParent; pParent = get_param(4); - - new Struct:sEffect; - if (!TrieGetCell(g_tParticleEffects, szName, sEffect)) { - log_error(AMX_ERR_NATIVE, "[Particles] Effect ^"%s^" is not registered!", szName); - return Invalid_Struct; - } + new szName[32]; get_string(1, szName, charsmax(szName)); + new Float:vecOrigin[3]; get_array_f(2, vecOrigin, sizeof(vecOrigin)); + new Float:vecAngles[3]; get_array_f(3, vecAngles, sizeof(vecAngles)); + new pParent; pParent = get_param(4); - new Struct:sSystem; sSystem = @ParticleSystem_Create(sEffect, vecOrigin, vecAngles, pParent); + new Struct:sEffect; + if (!TrieGetCell(g_tParticleEffects, szName, sEffect)) { + log_error(AMX_ERR_NATIVE, "[Particles] Effect ^"%s^" is not registered!", szName); + return Invalid_Struct; + } - return sSystem; + new Struct:sSystem; sSystem = @ParticleSystem_Create(sEffect, vecOrigin, vecAngles, pParent); + + return sSystem; } public Native_DestroyParticleSystem(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - StructSetCell(sSystem, ParticleSystem_KillTime, get_gametime()); + StructSetCell(sSystem, ParticleSystem_KillTime, get_gametime()); - set_param_byref(1, _:Invalid_Struct); + set_param_byref(1, _:Invalid_Struct); } public Float:Native_ActivateParticleSystem(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - StructSetCell(sSystem, ParticleSystem_Active, true); + StructSetCell(sSystem, ParticleSystem_Active, true); } public Float:Native_DeactivateParticleSystem(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + StructSetCell(sSystem, ParticleSystem_Active, false); +} + +public Float:Native_GetParticleSystemEffectSpeed(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + return StructGetCell(sSystem, ParticleSystem_EffectSpeed); +} - StructSetCell(sSystem, ParticleSystem_Active, false); +public Native_SetParticleSystemEffectSpeed(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static Float:flSpeed; flSpeed = get_param_f(2); + + StructSetCell(sSystem, ParticleSystem_EffectSpeed, flSpeed); } public Float:Native_GetParticleSystemCreatedTime(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - return Float:StructGetCell(sSystem, ParticleSystem_CreatedTime); + return Float:StructGetCell(sSystem, ParticleSystem_CreatedTime); } public Float:Native_GetParticleSystemKillTime(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - return Float:StructGetCell(sSystem, ParticleSystem_KillTime); + return Float:StructGetCell(sSystem, ParticleSystem_KillTime); } -public Native_GetParticleSystemLastUpdate(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); +public Native_GetParticleSystemLastThink(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - return StructGetCell(sSystem, ParticleSystem_LastUpdate); + return StructGetCell(sSystem, ParticleSystem_LastThink); } public Native_GetParticleSystemVisibilityBits(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - return StructGetCell(sSystem, ParticleSystem_VisibilityBits); + return StructGetCell(sSystem, ParticleSystem_VisibilityBits); } public Native_GetParticleSystemOrigin(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - static Float:vecOrigin[3]; StructGetArray(sSystem, ParticleSystem_Origin, vecOrigin, 3); + static Float:vecOrigin[3]; StructGetArray(sSystem, ParticleSystem_PositionVars, vecOrigin, 3, PositionVars_Origin); - set_array_f(2, vecOrigin, sizeof(vecOrigin)); + set_array_f(2, vecOrigin, sizeof(vecOrigin)); } public Native_SetParticleSystemOrigin(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); - static Float:vecOrigin[3]; get_array_f(2, vecOrigin, sizeof(vecOrigin)); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static Float:vecOrigin[3]; get_array_f(2, vecOrigin, sizeof(vecOrigin)); - StructSetArray(sSystem, ParticleSystem_Origin, vecOrigin, 3); + StructSetArray(sSystem, ParticleSystem_PositionVars, vecOrigin, 3, PositionVars_Origin); } public Native_GetParticleSystemParentEntity(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); - - return StructGetCell(sSystem, ParticleSystem_ParentEntity); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + + return StructGetCell(sSystem, ParticleSystem_ParentEntity); } public Native_SetParticleSystemParentEntity(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); - static pParent; pParent = get_param(2); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static pParent; pParent = get_param(2); - StructSetCell(sSystem, ParticleSystem_ParentEntity, pParent); + StructSetCell(sSystem, ParticleSystem_ParentEntity, pParent); } public Native_GetParticleSystemEffect(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); - - static Struct:sEffect; sEffect = StructGetCell(sSystem, ParticleSystem_Effect); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); - static szName[32]; StructGetString(sEffect, ParticleEffect_Id, szName, charsmax(szName)); + static Struct:sEffect; sEffect = StructGetCell(sSystem, ParticleSystem_Effect); + static szName[32]; StructGetString(sEffect, ParticleEffect_Id, szName, charsmax(szName)); - set_string(2, szName, get_param(3)); + set_string(2, szName, get_param(3)); } public Native_SetParticleSystemEffect(iPluginId, iArgc) { - static Struct:sSystem; sSystem = Struct:get_param_byref(1); - static szName[32]; get_string(2, szName, charsmax(szName)); + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static szName[32]; get_string(2, szName, charsmax(szName)); - static Struct:sEffect; - if (!TrieGetCell(g_tParticleEffects, szName, sEffect)) { - log_error(AMX_ERR_NATIVE, "[Particles] Effect ^"%s^" is not registered!", szName); - return; - } + static Struct:sEffect; + if (!TrieGetCell(g_tParticleEffects, szName, sEffect)) { + log_error(AMX_ERR_NATIVE, "[Particles] Effect ^"%s^" is not registered!", szName); + return; + } - StructSetCell(sSystem, ParticleSystem_Effect, sEffect); + StructSetCell(sSystem, ParticleSystem_Effect, sEffect); +} + +public bool:Native_HasMember(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static szMember[PARTICLE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + + static Trie:itMembers; itMembers = StructGetCell(sSystem, ParticleSystem_Members); + + return TrieKeyExists(itMembers, szMember); +} + +public Native_DeleteMember(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static szMember[PARTICLE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + + static Trie:itMembers; itMembers = StructGetCell(sSystem, ParticleSystem_Members); + + TrieDeleteKey(itMembers, szMember); +} + +public any:Native_GetMember(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static szMember[PARTICLE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + + static Trie:itMembers; itMembers = StructGetCell(sSystem, ParticleSystem_Members); + + static iValue; + if (!TrieGetCell(itMembers, szMember, iValue)) return 0; + + return iValue; +} + +public Native_SetMember(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static szMember[PARTICLE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + static iValue; iValue = get_param(3); + + static Trie:itMembers; itMembers = StructGetCell(sSystem, ParticleSystem_Members); + + TrieSetCell(itMembers, szMember, iValue); +} + +public bool:Native_GetMemberVec(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static szMember[PARTICLE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + + static Trie:itMembers; itMembers = StructGetCell(sSystem, ParticleSystem_Members); + + static Float:vecValue[3]; + if (!TrieGetArray(itMembers, szMember, vecValue, 3)) return false; + + set_array_f(3, vecValue, sizeof(vecValue)); + + return true; +} + +public Native_SetMemberVec(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static szMember[PARTICLE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + static Float:vecValue[3]; get_array_f(3, vecValue, sizeof(vecValue)); + + static Trie:itMembers; itMembers = StructGetCell(sSystem, ParticleSystem_Members); + TrieSetArray(itMembers, szMember, vecValue, 3); +} + +public bool:Native_GetMemberString(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static szMember[PARTICLE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + + static Trie:itMembers; itMembers = StructGetCell(sSystem, ParticleSystem_Members); + + static szValue[128]; + if (!TrieGetString(itMembers, szMember, szValue, charsmax(szValue))) return false; + + set_string(3, szValue, get_param(4)); + + return true; +} + +public Native_SetMemberString(iPluginId, iArgc) { + static Struct:sSystem; sSystem = Struct:get_param_byref(1); + static szMember[PARTICLE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + static szValue[128]; get_string(3, szValue, charsmax(szValue)); + + static Trie:itMembers; itMembers = StructGetCell(sSystem, ParticleSystem_Members); + TrieSetString(itMembers, szMember, szValue); +} + +public Native_GetParticleOrigin(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + static Float:vecOrigin[3]; StructGetArray(sParticle, Particle_PositionVars, vecOrigin, 3, PositionVars_Origin); + + set_array_f(2, vecOrigin, sizeof(vecOrigin)); +} + +public Native_SetParticleOrigin(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + static Float:vecOrigin[3]; get_array_f(2, vecOrigin, sizeof(vecOrigin)); + + StructSetArray(sParticle, Particle_PositionVars, vecOrigin, 3, PositionVars_Origin); +} + +public Native_GetParticleAngles(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + static Float:vecAngles[3]; StructGetArray(sParticle, Particle_PositionVars, vecAngles, 3, PositionVars_Angles); + + set_array_f(2, vecAngles, sizeof(vecAngles)); +} + +public Native_SetParticleAngles(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + static Float:vecAngles[3]; get_array_f(2, vecAngles, sizeof(vecAngles)); + + StructSetArray(sParticle, Particle_PositionVars, vecAngles, 3, PositionVars_Angles); +} + +public Native_GetParticleVelocity(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + static Float:vecVelocity[3]; StructGetArray(sParticle, Particle_PositionVars, vecVelocity, 3, PositionVars_Velocity); + + set_array_f(2, vecVelocity, sizeof(vecVelocity)); +} + +public Native_SetParticleVelocity(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + static Float:vecVelocity[3]; get_array_f(2, vecVelocity, sizeof(vecVelocity)); + + StructSetArray(sParticle, Particle_PositionVars, vecVelocity, 3, PositionVars_Velocity); +} + +public Struct:Native_GetParticleIndex(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + return StructGetCell(sParticle, Particle_Index); +} + +public Struct:Native_GetParticleBatchIndex(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); + + return StructGetCell(sParticle, Particle_BatchIndex); } public Struct:Native_GetParticleEntity(iPluginId, iArgc) { - static Struct:sParticle; sParticle = Struct:get_param_byref(1); + static Struct:sParticle; sParticle = Struct:get_param_byref(1); - return StructGetCell(sParticle, Particle_Entity); + return StructGetCell(sParticle, Particle_Entity); } public Struct:Native_GetParticleSystem(iPluginId, iArgc) { - static Struct:sParticle; sParticle = Struct:get_param_byref(1); + static Struct:sParticle; sParticle = Struct:get_param_byref(1); - return StructGetCell(sParticle, Particle_System); + return StructGetCell(sParticle, Particle_System); } public Float:Native_GetParticleCreatedTime(iPluginId, iArgc) { - static Struct:sParticle; sParticle = Struct:get_param_byref(1); + static Struct:sParticle; sParticle = Struct:get_param_byref(1); - return Float:StructGetCell(sParticle, Particle_CreatedTime); + return Float:StructGetCell(sParticle, Particle_CreatedTime); } public Float:Native_GetParticleKillTime(iPluginId, iArgc) { - static Struct:sParticle; sParticle = Struct:get_param_byref(1); + static Struct:sParticle; sParticle = Struct:get_param_byref(1); - return Float:StructGetCell(sParticle, Particle_KillTime); + return Float:StructGetCell(sParticle, Particle_KillTime); } -public Float:Native_GetParticleLastTransformTime(iPluginId, iArgc) { - static Struct:sParticle; sParticle = Struct:get_param_byref(1); +public Float:Native_GetParticleLastThink(iPluginId, iArgc) { + static Struct:sParticle; sParticle = Struct:get_param_byref(1); - return Float:StructGetCell(sParticle, Particle_LastTransform); + return Float:StructGetCell(sParticle, Particle_LastThink); } /*--------------------------------[ Forwards ]--------------------------------*/ public server_frame() { - static Float:flGameTime; flGameTime = get_gametime(); + static Float:flGameTime; flGameTime = get_gametime(); - if (g_flNextSystemsUpdate <= flGameTime) { - UpdateSystems(); - g_flNextSystemsUpdate = flGameTime + UPDATE_RATE; - } + if (g_flNextSystemsUpdate <= flGameTime) { + UpdateSystems(); + g_flNextSystemsUpdate = flGameTime + UPDATE_RATE; + } } /*--------------------------------[ Hooks ]--------------------------------*/ public Command_Create(pPlayer, iLevel, iCId) { - if (!cmd_access(pPlayer, iLevel, iCId, 2)) { - return PLUGIN_HANDLED; - } + if (!cmd_access(pPlayer, iLevel, iCId, 2)) { + return PLUGIN_HANDLED; + } - static szName[32]; read_argv(1, szName, charsmax(szName)); + static szName[32]; read_argv(1, szName, charsmax(szName)); - if (equal(szName, NULL_STRING)) return PLUGIN_HANDLED; + if (equal(szName, NULL_STRING)) return PLUGIN_HANDLED; - static Float:vecOrigin[3]; pev(pPlayer, pev_origin, vecOrigin); - static Float:vecAngles[3]; pev(pPlayer, pev_angles, vecAngles); + static Float:vecOrigin[3]; pev(pPlayer, pev_origin, vecOrigin); + static Float:vecAngles[3]; pev(pPlayer, pev_angles, vecAngles); - static Struct:sEffect; - if (!TrieGetCell(g_tParticleEffects, szName, sEffect)) return PLUGIN_HANDLED; + static Struct:sEffect; + if (!TrieGetCell(g_tParticleEffects, szName, sEffect)) return PLUGIN_HANDLED; - static Struct:sSystem; sSystem = @ParticleSystem_Create(sEffect, vecOrigin, vecAngles, 0); - StructSetCell(sSystem, ParticleSystem_Active, true); + static Struct:sSystem; sSystem = @ParticleSystem_Create(sEffect, vecOrigin, vecAngles, 0); + StructSetCell(sSystem, ParticleSystem_Active, true); - return PLUGIN_HANDLED; + return PLUGIN_HANDLED; } public FMHook_AddToFullPack(es, e, pEntity, pHost, hostflags, player, pSet) { - if (!pev_valid(pEntity)) return FMRES_IGNORED; - - static szClassName[32]; pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); + if (!pev_valid(pEntity)) return FMRES_IGNORED; - if (equal(szClassName, PARTICLE_CLASSNAME)) { - static Struct:sParticle; sParticle = Struct:pev(pEntity, pev_iuser1); - static Struct:sSystem; sSystem = StructGetCell(sParticle, Particle_System); - static iVisibilityBits; iVisibilityBits = StructGetCell(sSystem, ParticleSystem_VisibilityBits); + static szClassName[32]; pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); - if (~iVisibilityBits & BIT(pHost & 31)) return FMRES_SUPERCEDE; + if (equal(szClassName, PARTICLE_CLASSNAME)) { + static Struct:sParticle; sParticle = Struct:pev(pEntity, pev_iuser1); + static Struct:sSystem; sSystem = StructGetCell(sParticle, Particle_System); + static iVisibilityBits; iVisibilityBits = StructGetCell(sSystem, ParticleSystem_VisibilityBits); - return FMRES_IGNORED; - } + if (~iVisibilityBits & BIT(pHost & 31)) return FMRES_SUPERCEDE; return FMRES_IGNORED; + } + + return FMRES_IGNORED; } /*--------------------------------[ ParticleEffect Methods ]--------------------------------*/ -Struct:@ParticleEffect_Create(const szName[], Float:flEmitRate, Float:flParticleLifeTime, Float:flVisibilityDistance, iMaxParticles, iPluginId, iInitFunctionId, iTransformFunctionId) { - static Struct:this; this = StructCreate(ParticleEffect); +Struct:@ParticleEffect_Create(const szName[], Float:flEmitRate, Float:flParticleLifeTime, Float:flVisibilityDistance, iMaxParticles, iEmitAmount, ParticleEffectFlag:iFlags) { + static Struct:this; this = StructCreate(ParticleEffect); + + StructSetString(this, ParticleEffect_Id, szName); + StructSetCell(this, ParticleEffect_EmitRate, flEmitRate); + StructSetCell(this, ParticleEffect_EmitAmount, iEmitAmount); + StructSetCell(this, ParticleEffect_VisibilityDistance, flVisibilityDistance); + StructSetCell(this, ParticleEffect_ParticleLifeTime, flParticleLifeTime); + StructSetCell(this, ParticleEffect_MaxParticles, iMaxParticles); + StructSetCell(this, ParticleEffect_Flags, iFlags); - StructSetString(this, ParticleEffect_Id, szName); - StructSetCell(this, ParticleEffect_EmitRate, flEmitRate); - StructSetCell(this, ParticleEffect_VisibilityDistance, flVisibilityDistance); - StructSetCell(this, ParticleEffect_ParticleLifeTime, flParticleLifeTime); - StructSetCell(this, ParticleEffect_MaxParticles, iMaxParticles); - StructSetCell(this, ParticleEffect_PluginId, iPluginId); - StructSetCell(this, ParticleEffect_InitFunctionId, iInitFunctionId); - StructSetCell(this, ParticleEffect_TransformFunctionId, iTransformFunctionId); + for (new ParticleEffectHook:iHookId = ParticleEffectHook:0; iHookId < ParticleEffectHook; ++iHookId) { + StructSetCell(this, ParticleEffect_Hooks, ArrayCreate(_:Callback, 1), iHookId); + } - return this; + return this; } @ParticleEffect_Destroy(&Struct:this) { - StructDestroy(this); + for (new ParticleEffectHook:iHookId = ParticleEffectHook:0; iHookId < ParticleEffectHook; ++iHookId) { + new Array:irgHooks = StructGetCell(this, ParticleEffect_Hooks, iHookId); + ArrayDestroy(irgHooks); + } + + StructDestroy(this); +} + +static @ParticleEffect_ExecuteHook(const &Struct:this, ParticleEffectHook:iHook, const &Struct:sInstance, any:...) { + new iResult = 0; + + new Array:irgHooks = StructGetCell(this, ParticleEffect_Hooks, iHook); + + new iHooksNum = ArraySize(irgHooks); + for (new iHookId = 0; iHookId < iHooksNum; ++iHookId) { + new iPluginId = ArrayGetCell(irgHooks, iHookId, _:Callback_PluginId); + new iFunctionId = ArrayGetCell(irgHooks, iHookId, _:Callback_FunctionId); + + if (callfunc_begin_i(iFunctionId, iPluginId) == 1) { + callfunc_push_int(_:sInstance); + + switch (iHook) { + case ParticleEffectHook_Particle_EntityInit: { + callfunc_push_int(getarg(3)); + } + } + + iResult = max(iResult, callfunc_end()); + } + } + + + return iResult; } /*--------------------------------[ ParticleSystem Methods ]--------------------------------*/ Struct:@ParticleSystem_Create(const &Struct:sEffect, const Float:vecOrigin[3], const Float:vecAngles[3], pParent) { - static Struct:this; this = StructCreate(ParticleSystem); + static Struct:this; this = StructCreate(ParticleSystem); - static iMaxParticles; iMaxParticles = StructGetCell(sEffect, ParticleEffect_MaxParticles); + static iMaxParticles; iMaxParticles = StructGetCell(sEffect, ParticleEffect_MaxParticles); - static Array:irgParticles; irgParticles = ArrayCreate(iMaxParticles); - for (new i = 0; i < iMaxParticles; ++i) ArrayPushCell(irgParticles, Invalid_Struct); + static Array:irgParticles; irgParticles = ArrayCreate(iMaxParticles); + for (new i = 0; i < iMaxParticles; ++i) ArrayPushCell(irgParticles, Invalid_Struct); - StructSetCell(this, ParticleSystem_Effect, sEffect); - StructSetArray(this, ParticleSystem_Origin, vecOrigin, 3); - StructSetArray(this, ParticleSystem_Angles, vecAngles, 3); - StructSetCell(this, ParticleSystem_ParentEntity, pParent); - StructSetCell(this, ParticleSystem_Particles, irgParticles); - StructSetCell(this, ParticleSystem_CreatedTime, get_gametime()); - StructSetCell(this, ParticleSystem_KillTime, 0.0); - StructSetCell(this, ParticleSystem_Active, false); - StructSetCell(this, ParticleSystem_NextEmit, 0.0); - StructSetCell(this, ParticleSystem_NextVisibilityUpdate, 0.0); + StructSetCell(this, ParticleSystem_Effect, sEffect); + StructSetArray(this, ParticleSystem_PositionVars, vecOrigin, 3, PositionVars_Origin); + StructSetArray(this, ParticleSystem_PositionVars, vecAngles, 3, PositionVars_Angles); + StructSetArray(this, ParticleSystem_PositionVars, Float:{0.0, 0.0, 0.0}, 3, PositionVars_Velocity); + StructSetCell(this, ParticleSystem_ParentEntity, pParent); + StructSetCell(this, ParticleSystem_Particles, irgParticles); + StructSetCell(this, ParticleSystem_CreatedTime, get_gametime()); + StructSetCell(this, ParticleSystem_KillTime, 0.0); + StructSetCell(this, ParticleSystem_EffectSpeed, 1.0); + StructSetCell(this, ParticleSystem_Active, false); + StructSetCell(this, ParticleSystem_NextEmit, 0.0); + StructSetCell(this, ParticleSystem_NextVisibilityUpdate, 0.0); + StructSetCell(this, ParticleSystem_Members, TrieCreate()); - ArrayPushCell(g_irgSystems, this); + ArrayPushCell(g_irgSystems, this); - return this; + @ParticleEffect_ExecuteHook(sEffect, ParticleEffectHook_System_Init, this); + + return this; } @ParticleSystem_Destroy(&Struct:this) { - static Array:irgParticles; irgParticles = StructGetCell(this, ParticleSystem_Particles); - static iParticlesNum; iParticlesNum = ArraySize(irgParticles); + static Array:irgParticles; irgParticles = StructGetCell(this, ParticleSystem_Particles); + static iParticlesNum; iParticlesNum = ArraySize(irgParticles); + static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); + static Trie:itMembers; itMembers = StructGetCell(this, ParticleSystem_Members); - for (new iParticle = 0; iParticle < iParticlesNum; ++iParticle) { - static Struct:sParticle; sParticle = ArrayGetCell(irgParticles, iParticle); - if (sParticle == Invalid_Struct) continue; + @ParticleEffect_ExecuteHook(sEffect, ParticleEffectHook_System_Destroy, this); - @Particle_Destroy(sParticle); - } + for (new iParticle = 0; iParticle < iParticlesNum; ++iParticle) { + static Struct:sParticle; sParticle = ArrayGetCell(irgParticles, iParticle); + if (sParticle == Invalid_Struct) continue; - ArrayDestroy(irgParticles); - - StructDestroy(this); + @Particle_Destroy(sParticle); + } + + ArrayDestroy(irgParticles); + TrieDestroy(itMembers); + StructDestroy(this); } @ParticleSystem_Update(const &Struct:this) { - static Float:flGameTime; flGameTime = get_gametime(); - - static Float:vecOrigin[3]; @ParticleSystem_GetAbsOrigin(this, vecOrigin); - static Float:vecLastOrigin[3]; StructGetArray(this, ParticleSystem_LasOrigin, vecLastOrigin, sizeof(vecLastOrigin)); - static Float:vecOffset[3]; xs_vec_sub(vecOrigin, vecLastOrigin, vecOffset); - static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); - static Array:irgParticles; irgParticles = StructGetCell(this, ParticleSystem_Particles); - static iVisibilityBits; iVisibilityBits = StructGetCell(this, ParticleSystem_VisibilityBits); - static bool:bActive; bActive = StructGetCell(this, ParticleSystem_Active); - static iParticlesNum; iParticlesNum = ArraySize(irgParticles); - - // Emit particles - if (bActive) { - static Float:flNextEmit; flNextEmit = StructGetCell(this, ParticleSystem_NextEmit); - if (flNextEmit <= flGameTime) { - static Float:flEmitRate; flEmitRate = StructGetCell(sEffect, ParticleEffect_EmitRate); - - if (flEmitRate || !iParticlesNum) @ParticleSystem_Emit(this); - - StructSetCell(this, ParticleSystem_NextEmit, flGameTime + flEmitRate); - } - } + static Float:flGameTime; flGameTime = get_gametime(); - for (new iParticle = 0; iParticle < iParticlesNum; ++iParticle) { - static Struct:sParticle; sParticle = ArrayGetCell(irgParticles, iParticle); - if (sParticle == Invalid_Struct) continue; + static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); + static Array:irgParticles; irgParticles = StructGetCell(this, ParticleSystem_Particles); + static iVisibilityBits; iVisibilityBits = StructGetCell(this, ParticleSystem_VisibilityBits); + static bool:bActive; bActive = StructGetCell(this, ParticleSystem_Active); + static iParticlesNum; iParticlesNum = ArraySize(irgParticles); + static Float:flLastThink; flLastThink = StructGetCell(this, ParticleSystem_LastThink); + static Float:flSpeed; flSpeed = StructGetCell(this, ParticleSystem_EffectSpeed); - // Destroy expired particle and skip (also destroy all particles in case no one see the system or the system is deactivated) - static Float:flKillTime; flKillTime = StructGetCell(sParticle, Particle_KillTime); - if (!iVisibilityBits || !bActive || (flKillTime > 0.0 && flKillTime <= flGameTime)) { - ArraySetCell(irgParticles, iParticle, Invalid_Struct); - @Particle_Destroy(sParticle); - continue; - } + static Float:flDelta; flDelta = flGameTime - flLastThink; - // Make particle follow the parent entity - static pParent; pParent = StructGetCell(this, ParticleSystem_ParentEntity); - if (pParent > 0) { - static pEntity; pEntity = StructGetCell(sParticle, Particle_Entity); - static Float:vecParticleOrigin[3]; pev(pEntity, pev_origin, vecParticleOrigin); - xs_vec_add(vecParticleOrigin, vecOffset, vecParticleOrigin); - set_pev(pEntity, pev_origin, vecParticleOrigin); - } + static Float:vecOrigin[3]; StructGetArray(this, ParticleSystem_PositionVars, vecOrigin, 3, PositionVars_Origin); + static Float:vecVelocity[3]; StructGetArray(this, ParticleSystem_PositionVars, vecVelocity, 3, PositionVars_Velocity); + static Float:vecAngles[3]; StructGetArray(this, ParticleSystem_PositionVars, vecAngles, 3, PositionVars_Angles); + + xs_vec_add_scaled(vecOrigin, vecVelocity, flDelta * flSpeed, vecOrigin); + StructSetArray(this, ParticleSystem_PositionVars, vecOrigin, 3, PositionVars_Origin); + + @ParticleEffect_ExecuteHook(sEffect, ParticleEffectHook_System_Think, this); + + // Emit particles + if (bActive) { + static Float:flNextEmit; flNextEmit = StructGetCell(this, ParticleSystem_NextEmit); + if (flNextEmit <= flGameTime) { + static Float:flEmitRate; flEmitRate = StructGetCell(sEffect, ParticleEffect_EmitRate); + static iEmitAmount; iEmitAmount = StructGetCell(sEffect, ParticleEffect_EmitAmount); - static iPluginId; iPluginId = StructGetCell(sEffect, ParticleEffect_PluginId); - static iFunctionId; iFunctionId = StructGetCell(sEffect, ParticleEffect_TransformFunctionId); - if (iPluginId != -1 && iFunctionId != -1) { - @Particle_CallTransformFunction(sParticle, iPluginId, iFunctionId); + if (flEmitRate || !iParticlesNum) { + for (new iBatchIndex = 0; iBatchIndex < iEmitAmount; ++iBatchIndex) { + @ParticleSystem_Emit(this, iBatchIndex); } + } - StructSetCell(sParticle, Particle_LastTransform, flGameTime); + StructSetCell(this, ParticleSystem_NextEmit, flGameTime + (flEmitRate / flSpeed)); + } + } + + for (new iParticle = 0; iParticle < iParticlesNum; ++iParticle) { + static Struct:sParticle; sParticle = ArrayGetCell(irgParticles, iParticle); + if (sParticle == Invalid_Struct) continue; + + // Destroy expired particle and skip (also destroy all particles in case no one see the system or the system is deactivated) + static Float:flKillTime; flKillTime = StructGetCell(sParticle, Particle_KillTime); + if (!iVisibilityBits || !bActive || (flKillTime > 0.0 && flKillTime <= flGameTime)) { + ArraySetCell(irgParticles, iParticle, Invalid_Struct); + @Particle_Destroy(sParticle); + continue; + } + + static bool:bAttached; bAttached = StructGetCell(sParticle, Particle_Attached); + static Float:vecParticleOrigin[3]; StructGetArray(sParticle, Particle_PositionVars, vecParticleOrigin, 3, PositionVars_Origin); + static Float:vecParticleVelocity[3]; StructGetArray(sParticle, Particle_PositionVars, vecParticleVelocity, 3, PositionVars_Velocity); + static Float:vecParticleAngles[3]; StructGetArray(sParticle, Particle_PositionVars, vecParticleAngles, 3, PositionVars_Angles); + + xs_vec_add_scaled(vecParticleOrigin, vecParticleVelocity, flDelta * flSpeed, vecParticleOrigin); + StructSetArray(sParticle, Particle_PositionVars, vecParticleOrigin, 3, PositionVars_Origin); + + @ParticleEffect_ExecuteHook(sEffect, ParticleEffectHook_Particle_Think, sParticle); + + if (bAttached) { + @ParticleSystem_UpdateParticleAbsPosition(this, sParticle); } - StructSetCell(this, ParticleSystem_LastUpdate, flGameTime); - StructSetArray(this, ParticleSystem_LasOrigin, vecOrigin, 3); + @ParticleSystem_SyncParticleVars(this, sParticle); + + StructSetCell(sParticle, Particle_LastThink, flGameTime); + } + + StructSetCell(this, ParticleSystem_LastThink, flGameTime); } -@ParticleSystem_Emit(const &Struct:this) { - static iVisibilityBits; iVisibilityBits = StructGetCell(this, ParticleSystem_VisibilityBits); - if (!iVisibilityBits) return; +@ParticleSystem_Emit(const &Struct:this, iBatchIndex) { + static iVisibilityBits; iVisibilityBits = StructGetCell(this, ParticleSystem_VisibilityBits); + if (!iVisibilityBits) return; - static Float:flGameTime; flGameTime = get_gametime(); - static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); + static Float:flGameTime; flGameTime = get_gametime(); + static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); + static Float:flSpeed; flSpeed = StructGetCell(this, ParticleSystem_EffectSpeed); + static ParticleEffectFlag:iEffectFlags; iEffectFlags = StructGetCell(sEffect, ParticleEffect_Flags); - static Struct:sParticle; sParticle = @Particle_Create(this); + static Struct:sParticle; sParticle = @Particle_Create(this, !!(iEffectFlags & ParticleEffectFlag_AttachParticles)); - static Float:flLifeTime; flLifeTime = StructGetCell(sEffect, ParticleEffect_ParticleLifeTime); - if (flLifeTime > 0.0) { - StructSetCell(sParticle, Particle_KillTime, flGameTime + flLifeTime); - } + static Float:vecAbsOrigin[3]; @ParticleSystem_GetAbsPositionVar(this, PositionVars_Origin, vecAbsOrigin); + static Float:vecAbsAngles[3]; @ParticleSystem_GetAbsPositionVar(this, PositionVars_Angles, vecAbsAngles); + static Float:vecAbsVelocity[3]; @ParticleSystem_GetAbsPositionVar(this, PositionVars_Velocity, vecAbsVelocity); - @ParticleSystem_AddParticle(this, sParticle); + StructSetArray(sParticle, Particle_AbsPositionVars, vecAbsOrigin, 3, PositionVars_Origin); + StructSetArray(sParticle, Particle_AbsPositionVars, vecAbsAngles, 3, PositionVars_Angles); + StructSetArray(sParticle, Particle_AbsPositionVars, vecAbsVelocity, 3, PositionVars_Velocity); - static iPluginId; iPluginId = StructGetCell(sEffect, ParticleEffect_PluginId); - static iFunctionId; iFunctionId = StructGetCell(sEffect, ParticleEffect_InitFunctionId); - if (iPluginId != -1 && iFunctionId != -1) { - @Particle_CallInitFunction(sParticle, iPluginId, iFunctionId); - } + StructSetCell(sParticle, Particle_BatchIndex, iBatchIndex); - static Float:flEmitRate; flEmitRate = StructGetCell(sEffect, ParticleEffect_EmitRate); - StructSetCell(this, ParticleSystem_NextEmit, flGameTime + flEmitRate); -} + static Float:flLifeTime; flLifeTime = StructGetCell(sEffect, ParticleEffect_ParticleLifeTime); + if (flLifeTime > 0.0) { + StructSetCell(sParticle, Particle_KillTime, flGameTime + (flLifeTime / flSpeed)); + } -@ParticleSystem_AddParticle(const &Struct:this, const &Struct:sNewParticle) { - static Array:irgParticles; irgParticles = StructGetCell(this, ParticleSystem_Particles); - static iParticlesNum; iParticlesNum = ArraySize(irgParticles); + @ParticleSystem_AddParticle(this, sParticle); - static iIndex; iIndex = -1; - static Struct:sOldParticle; sOldParticle = Invalid_Struct; + static Float:flEmitRate; flEmitRate = StructGetCell(sEffect, ParticleEffect_EmitRate); + StructSetCell(this, ParticleSystem_NextEmit, flGameTime + (flEmitRate * flSpeed)); - for (new iParticle = 0; iParticle < iParticlesNum; ++iParticle) { - static Struct:sParticle; sParticle = ArrayGetCell(irgParticles, iParticle); - if (sParticle == Invalid_Struct) { - ArraySetCell(irgParticles, iParticle, sNewParticle); - return; - } + @ParticleSystem_SyncParticleVars(this, sParticle); +} - static Float:flKillTime; flKillTime = StructGetCell(sParticle, Particle_KillTime); - if (iIndex == -1 || flKillTime < StructGetCell(sOldParticle, Particle_KillTime)) { - iIndex = iParticle; - sOldParticle = sParticle; - } +@ParticleSystem_AddParticle(const &Struct:this, const &Struct:sNewParticle) { + static Array:irgParticles; irgParticles = StructGetCell(this, ParticleSystem_Particles); + static iParticlesNum; iParticlesNum = ArraySize(irgParticles); + + static iIndex; iIndex = -1; + static Struct:sOldParticle; sOldParticle = Invalid_Struct; + + for (new iParticle = 0; iParticle < iParticlesNum; ++iParticle) { + static Struct:sParticle; sParticle = ArrayGetCell(irgParticles, iParticle); + if (sParticle == Invalid_Struct) { + sOldParticle = Invalid_Struct; + iIndex = iParticle; + break; + } + + static Float:flKillTime; flKillTime = StructGetCell(sParticle, Particle_KillTime); + if (iIndex == -1 || flKillTime < StructGetCell(sOldParticle, Particle_KillTime)) { + iIndex = iParticle; + sOldParticle = sParticle; } + } + if (sOldParticle != Invalid_Struct) { @Particle_Destroy(sOldParticle); - ArraySetCell(irgParticles, iIndex, sNewParticle); + } + + ArraySetCell(irgParticles, iIndex, sNewParticle); + StructSetCell(sNewParticle, Particle_Index, iIndex); } -@ParticleSystem_GetAbsOrigin(const &Struct:this, Float:vecOrigin[3]) { - static pParent; pParent = StructGetCell(this, ParticleSystem_ParentEntity); - if (pParent > 0) { - pev(pParent, pev_origin, vecOrigin); +@ParticleSystem_GetAbsPositionVar(const &Struct:this, PositionVars:iVariable, Float:vecOut[]) { + static pParent; pParent = StructGetCell(this, ParticleSystem_ParentEntity); - for (new i = 0; i < 3; ++i) { - vecOrigin[i] += Float:StructGetCell(this, ParticleSystem_Origin, i); - } - } else { - StructGetArray(this, ParticleSystem_Origin, vecOrigin, 3); + if (pParent > 0) { + pev(pParent, PositionVarsToPevMemberVec(iVariable), vecOut); + + for (new i = 0; i < 3; ++i) { + vecOut[i] += Float:StructGetCell(this, ParticleSystem_PositionVars, _:iVariable + i); } + } else { + StructGetArray(this, ParticleSystem_PositionVars, vecOut, 3, iVariable); + } } -@ParticleSystem_SetAbsOrigin(const &Struct:this, const Float:vecOrigin[3]) { - static Float:vecAbsOrigin[3]; +@ParticleSystem_SetAbsVectorVar(const &Struct:this, PositionVars:iVariable, const Float:vecValue[3]) { + static Float:vecAbsValue[3]; - static pParent; pParent = StructGetCell(this, ParticleSystem_ParentEntity); - if (pParent > 0) { - pev(pParent, pev_origin, vecAbsOrigin); - xs_vec_sub(vecOrigin, vecAbsOrigin, vecAbsOrigin); - } else { - xs_vec_copy(vecOrigin, vecAbsOrigin); - } + static pParent; pParent = StructGetCell(this, ParticleSystem_ParentEntity); + if (pParent > 0) { + pev(pParent, PositionVarsToPevMemberVec(iVariable), vecAbsValue); + xs_vec_sub(vecValue, vecAbsValue, vecAbsValue); + } else { + xs_vec_copy(vecValue, vecAbsValue); + } - StructSetArray(this, ParticleSystem_Origin, vecAbsOrigin, 3); + StructSetArray(this, ParticleSystem_PositionVars, vecAbsValue, 3, iVariable); } @ParticleSystem_UpdateVisibilityBits(const &Struct:this) { - static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); + static Struct:sEffect; sEffect = StructGetCell(this, ParticleSystem_Effect); - static Float:flVisibleDistance; flVisibleDistance = StructGetCell(sEffect, ParticleEffect_VisibilityDistance); - static Float:vecOrigin[3]; @ParticleSystem_GetAbsOrigin(this, vecOrigin); + static Float:flVisibleDistance; flVisibleDistance = StructGetCell(sEffect, ParticleEffect_VisibilityDistance); + static Float:vecAbsOrigin[3]; @ParticleSystem_GetAbsPositionVar(this, PositionVars_Origin, vecAbsOrigin); - new iVisibilityBits = 0; - for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { - if (!is_user_connected(pPlayer)) continue; + new iVisibilityBits = 0; + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + if (!is_user_connected(pPlayer)) continue; - static Float:vecPlayerOrigin[3]; ExecuteHamB(Ham_EyePosition, pPlayer, vecPlayerOrigin); - static Float:flDistance; flDistance = get_distance_f(vecOrigin, vecPlayerOrigin); + static Float:vecPlayerOrigin[3]; ExecuteHamB(Ham_EyePosition, pPlayer, vecPlayerOrigin); + static Float:flDistance; flDistance = get_distance_f(vecAbsOrigin, vecPlayerOrigin); + static Float:flFOV; pev(pPlayer, pev_fov, flFOV); - if (flDistance > 32.0 && !is_in_viewcone(pPlayer, vecOrigin, 1)) continue; - if (flDistance > flVisibleDistance) continue; + if (flDistance > 32.0 && !UTIL_IsInViewCone(pPlayer, vecAbsOrigin, flFOV / 2)) continue; + if (flDistance > flVisibleDistance) continue; - engfunc(EngFunc_TraceLine, vecPlayerOrigin, vecOrigin, IGNORE_MONSTERS, pPlayer, g_pTrace); + engfunc(EngFunc_TraceLine, vecPlayerOrigin, vecAbsOrigin, IGNORE_MONSTERS, pPlayer, g_pTrace); - static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); - if (flFraction == 1.0) { - iVisibilityBits |= BIT(pPlayer & 31); - } + static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + if (flFraction == 1.0) { + iVisibilityBits |= BIT(pPlayer & 31); } + } - StructSetCell(this, ParticleSystem_VisibilityBits, iVisibilityBits); + StructSetCell(this, ParticleSystem_VisibilityBits, iVisibilityBits); } -/*--------------------------------[ Particle Methods ]--------------------------------*/ +@ParticleSystem_UpdateParticleAbsPosition(const &Struct:this, const &Struct:sParticle) { + static Float:vecAbsOrigin[3]; @ParticleSystem_GetAbsPositionVar(this, PositionVars_Origin, vecAbsOrigin); + static Float:vecAbsAngles[3]; @ParticleSystem_GetAbsPositionVar(this, PositionVars_Angles, vecAbsAngles); + static Float:vecAbsVelocity[3]; @ParticleSystem_GetAbsPositionVar(this, PositionVars_Velocity, vecAbsVelocity); -Struct:@Particle_Create(const &Struct:sSystem) { - static Struct:this; this = StructCreate(Particle); + StructSetArray(sParticle, Particle_AbsPositionVars, vecAbsOrigin, 3, PositionVars_Origin); + StructSetArray(sParticle, Particle_AbsPositionVars, vecAbsAngles, 3, PositionVars_Angles); + StructSetArray(sParticle, Particle_AbsPositionVars, vecAbsVelocity, 3, PositionVars_Velocity); +} - static Float:vecOrigin[3]; @ParticleSystem_GetAbsOrigin(sSystem, vecOrigin); - static Float:vecAngles[3]; StructGetArray(sSystem, ParticleSystem_Angles, vecAngles, sizeof(vecAngles)); +@ParticleSystem_SyncParticleVars(const &Struct:this, const &Struct:sParticle) { + static Float:flSpeed; flSpeed = StructGetCell(this, ParticleSystem_EffectSpeed); - static pParticle; pParticle = CreateParticleEnity(vecOrigin, vecAngles); - set_pev(pParticle, pev_iuser1, this); + static pEntity; pEntity = StructGetCell(sParticle, Particle_Entity); + static bool:bAttached; bAttached = StructGetCell(sParticle, Particle_Attached); - StructSetCell(this, Particle_System, sSystem); - StructSetCell(this, Particle_Entity, pParticle); - StructSetCell(this, Particle_CreatedTime, get_gametime()); - StructSetCell(this, Particle_KillTime, 0.0); + static Float:vecAbsOrigin[3]; StructGetArray(sParticle, Particle_AbsPositionVars, vecAbsOrigin, 3, PositionVars_Origin); + static Float:vecAbsAngles[3]; StructGetArray(sParticle, Particle_AbsPositionVars, vecAbsAngles, 3, PositionVars_Angles); + static Float:vecAbsVelocity[3]; StructGetArray(sParticle, Particle_AbsPositionVars, vecAbsVelocity, 3, PositionVars_Velocity); - return this; -} + static Float:vecOrigin[3]; StructGetArray(sParticle, Particle_PositionVars, vecOrigin, 3, PositionVars_Origin); + static Float:vecAngles[3]; StructGetArray(sParticle, Particle_PositionVars, vecAngles, 3, PositionVars_Angles); + static Float:vecVelocity[3]; StructGetArray(sParticle, Particle_PositionVars, vecVelocity, 3, PositionVars_Velocity); -CreateParticleEnity(const Float:vecOrigin[3], const Float:vecAngles[3]) { - static pEntity; pEntity = engfunc(EngFunc_CreateNamedEntity, g_iszParticleClassName); - dllfunc(DLLFunc_Spawn, pEntity); + if (bAttached) { + static Float:rgAngleMatrix[3][4]; UTIL_AngleMatrix(vecAbsAngles, rgAngleMatrix); + + UTIL_RotateVectorByMatrix(vecOrigin, rgAngleMatrix, vecOrigin); + UTIL_RotateVectorByMatrix(vecVelocity, rgAngleMatrix, vecVelocity); + } - set_pev(pEntity, pev_classname, PARTICLE_CLASSNAME); - set_pev(pEntity, pev_solid, SOLID_NOT); - set_pev(pEntity, pev_movetype, MOVETYPE_NOCLIP); - set_pev(pEntity, pev_angles, vecAngles); + xs_vec_add(vecAbsOrigin, vecOrigin, vecAbsOrigin); + xs_vec_add(vecAbsAngles, vecAngles, vecAbsAngles); + xs_vec_add(vecAbsVelocity, vecVelocity, vecAbsVelocity); - engfunc(EngFunc_SetOrigin, pEntity, vecOrigin); + if (flSpeed != 1.0) { + xs_vec_mul_scalar(vecVelocity, flSpeed, vecVelocity); + } - return pEntity; + set_pev(pEntity, pev_angles, vecAbsAngles); + set_pev(pEntity, pev_origin, vecAbsOrigin); + set_pev(pEntity, pev_velocity, vecAbsVelocity); } -@Particle_Destroy(&Struct:this) { - static pParticle; pParticle = StructGetCell(this, Particle_Entity); - engfunc(EngFunc_RemoveEntity, pParticle); +/*--------------------------------[ Particle Methods ]--------------------------------*/ + +Struct:@Particle_Create(const &Struct:sSystem, bool:bAttached) { + static Struct:this; this = StructCreate(Particle); + + StructSetCell(this, Particle_System, sSystem); + StructSetCell(this, Particle_Index, -1); + StructSetCell(this, Particle_BatchIndex, 0); + StructSetCell(this, Particle_Entity, -1); + StructSetCell(this, Particle_CreatedTime, get_gametime()); + StructSetCell(this, Particle_LastThink, get_gametime()); + StructSetCell(this, Particle_KillTime, 0.0); + StructSetCell(this, Particle_Attached, bAttached); + + StructSetArray(this, Particle_PositionVars, Float:{0.0, 0.0, 0.0}, 3, PositionVars_Origin); + StructSetArray(this, Particle_PositionVars, Float:{0.0, 0.0, 0.0}, 3, PositionVars_Angles); + StructSetArray(this, Particle_PositionVars, Float:{0.0, 0.0, 0.0}, 3, PositionVars_Velocity); + + static Struct:sSystem; sSystem = StructGetCell(this, Particle_System); + static Struct:sEffect; sEffect = StructGetCell(sSystem, ParticleSystem_Effect); + @ParticleEffect_ExecuteHook(sEffect, ParticleEffectHook_Particle_Init, this); + + @Particle_InitEntity(this); - StructDestroy(this); + return this; } -@Particle_CallInitFunction(const &Struct:this, iPluginId, iFunctionId) { - callfunc_begin_i(iFunctionId, iPluginId); - callfunc_push_int(_:this); - callfunc_end(); +@Particle_InitEntity(const &Struct:this) { + static Struct:sSystem; sSystem = StructGetCell(this, Particle_System); + static Struct:sEffect; sEffect = StructGetCell(sSystem, ParticleSystem_Effect); + + static pParticle; pParticle = CreateParticleEnity(Float:{0.0, 0.0, 0.0}, Float:{0.0, 0.0, 0.0}); + set_pev(pParticle, pev_iuser1, this); + + StructSetCell(this, Particle_Entity, pParticle); + + @ParticleEffect_ExecuteHook(sEffect, ParticleEffectHook_Particle_EntityInit, this, pParticle); } -@Particle_CallTransformFunction(const &Struct:this, iPluginId, iFunctionId) { - callfunc_begin_i(iFunctionId, iPluginId); - callfunc_push_int(_:this); - callfunc_end(); +@Particle_Destroy(&Struct:this) { + static Struct:sSystem; sSystem = StructGetCell(this, Particle_System); + static Struct:sEffect; sEffect = StructGetCell(sSystem, ParticleSystem_Effect); + @ParticleEffect_ExecuteHook(sEffect, ParticleEffectHook_Particle_Destroy, this); + + static pParticle; pParticle = StructGetCell(this, Particle_Entity); + engfunc(EngFunc_RemoveEntity, pParticle); + + StructDestroy(this); } /*--------------------------------[ Functions ]--------------------------------*/ +CreateParticleEnity(const Float:vecOrigin[3], const Float:vecAngles[3]) { + static pEntity; pEntity = engfunc(EngFunc_CreateNamedEntity, g_iszParticleClassName); + dllfunc(DLLFunc_Spawn, pEntity); + + set_pev(pEntity, pev_classname, PARTICLE_CLASSNAME); + set_pev(pEntity, pev_solid, SOLID_NOT); + set_pev(pEntity, pev_movetype, MOVETYPE_NOCLIP); + set_pev(pEntity, pev_angles, vecAngles); + + engfunc(EngFunc_SetOrigin, pEntity, vecOrigin); + + return pEntity; +} + UpdateSystems() { - static Float:flGameTime; flGameTime = get_gametime(); - static irgSystemsNum; irgSystemsNum = ArraySize(g_irgSystems); - - for (new iSystem = 0; iSystem < irgSystemsNum; ++iSystem) { - static Struct:sSystem; sSystem = ArrayGetCell(g_irgSystems, iSystem); - if (sSystem == Invalid_Struct) continue; - - // Destroy expired system and skip - static Float:flKillTime; flKillTime = StructGetCell(sSystem, ParticleSystem_KillTime); - if (flKillTime && flKillTime <= flGameTime) { - ArraySetCell(g_irgSystems, iSystem, Invalid_Struct); - @ParticleSystem_Destroy(sSystem); - continue; - } + static Float:flGameTime; flGameTime = get_gametime(); + static irgSystemsNum; irgSystemsNum = ArraySize(g_irgSystems); + + for (new iSystem = 0; iSystem < irgSystemsNum; ++iSystem) { + static Struct:sSystem; sSystem = ArrayGetCell(g_irgSystems, iSystem); + if (sSystem == Invalid_Struct) continue; + + // Destroy expired system and skip + static Float:flKillTime; flKillTime = StructGetCell(sSystem, ParticleSystem_KillTime); + if (flKillTime && flKillTime <= flGameTime) { + ArraySetCell(g_irgSystems, iSystem, Invalid_Struct); + @ParticleSystem_Destroy(sSystem); + continue; + } - @ParticleSystem_Update(sSystem); + @ParticleSystem_Update(sSystem); - static Float:flNextVisibilityUpdate; flNextVisibilityUpdate = StructGetCell(sSystem, ParticleSystem_NextVisibilityUpdate); - if (flNextVisibilityUpdate <= flGameTime) { - @ParticleSystem_UpdateVisibilityBits(sSystem); - StructSetCell(sSystem, ParticleSystem_NextVisibilityUpdate, flGameTime + VISIBILITY_UPDATE_RATE); - } + static Float:flNextVisibilityUpdate; flNextVisibilityUpdate = StructGetCell(sSystem, ParticleSystem_NextVisibilityUpdate); + if (flNextVisibilityUpdate <= flGameTime) { + @ParticleSystem_UpdateVisibilityBits(sSystem); + StructSetCell(sSystem, ParticleSystem_NextVisibilityUpdate, flGameTime + VISIBILITY_UPDATE_RATE); } + } + + UTIL_ArrayFindAndDelete(g_irgSystems, Invalid_Struct); +} - UTIL_ArrayFindAndDelete(g_irgSystems, Invalid_Struct); +PositionVarsToPevMemberVec(PositionVars:iVariable) { + switch (iVariable) { + case PositionVars_Origin: return pev_origin; + case PositionVars_Angles: return pev_angles; + case PositionVars_Velocity: return pev_velocity; + } + + return -1; } /*--------------------------------[ Stocks ]--------------------------------*/ stock UTIL_ArrayFindAndDelete(const &Array:irgArray, any:iValue) { - static iSize; iSize = ArraySize(irgArray); + static iSize; iSize = ArraySize(irgArray); - for (new i = 0; i < iSize; ++i) { - if (ArrayGetCell(irgArray, i) == iValue) { - ArrayDeleteItem(irgArray, i); - i--; - iSize--; - } + for (new i = 0; i < iSize; ++i) { + if (ArrayGetCell(irgArray, i) == iValue) { + ArrayDeleteItem(irgArray, i); + i--; + iSize--; + } + } +} + +stock UTIL_RotateVectorByMatrix(const Float:vecValue[3], Float:rgAngleMatrix[3][4], Float:vecOut[3]) { + static Float:vecTemp[3]; + + for (new i = 0; i < 3; ++i) { + vecTemp[i] = (vecValue[0] * rgAngleMatrix[0][i]) + (vecValue[1] * rgAngleMatrix[1][i]) + (vecValue[2] * rgAngleMatrix[2][i]); } + + xs_vec_copy(vecTemp, vecOut); +} + +stock UTIL_AngleMatrix(const Float:vecAngles[3], Float:rgMatrix[3][4]) { + static Float:cp; cp = floatcos(vecAngles[0], degrees); + static Float:sp; sp = floatsin(vecAngles[0], degrees); + static Float:cy; cy = floatcos(vecAngles[1], degrees); + static Float:sy; sy = floatsin(vecAngles[1], degrees); + static Float:cr; cr = floatcos(-vecAngles[2], degrees); + static Float:sr; sr = floatsin(-vecAngles[2], degrees); + static Float:crcy; crcy = cr * cy; + static Float:crsy; crsy = cr * sy; + static Float:srcy; srcy = sr * cy; + static Float:srsy; srsy = sr * sy; + + // matrix = (YAW * PITCH) * ROLL + + rgMatrix[0][0] = cp * cy; + rgMatrix[1][0] = cp * sy; + rgMatrix[2][0] = -sp; + + rgMatrix[0][1] = (sp * srcy) + crsy; + rgMatrix[1][1] = (sp * srsy) - crcy; + rgMatrix[2][1] = sr * cp; + + rgMatrix[0][2] = (sp * crcy) - srsy; + rgMatrix[1][2] = (sp * crsy) + srcy; + rgMatrix[2][2] = cr * cp; + + rgMatrix[0][3] = 0.0; + rgMatrix[1][3] = 0.0; + rgMatrix[2][3] = 0.0; +} + +stock V_swap(&Float:v1, &Float:v2) { + static Float:tmp; + tmp = v1; + v1 = v2; + v2 = tmp; +} + +stock bool:UTIL_IsInViewCone(pEntity, const Float:vecTarget[3], Float:fMaxAngle) { + static Float:vecOrigin[3]; + ExecuteHamB(Ham_EyePosition, pEntity, vecOrigin); + + static Float:vecDir[3]; + xs_vec_sub(vecTarget, vecOrigin, vecDir); + xs_vec_normalize(vecDir, vecDir); + + static Float:vecForward[3]; + pev(pEntity, pev_v_angle, vecForward); + angle_vector(vecForward, ANGLEVECTOR_FORWARD, vecForward); + + new Float:flAngle = xs_rad2deg(xs_acos((vecDir[0] * vecForward[0]) + (vecDir[1] * vecForward[1]), radian)); + + return flAngle < fMaxAngle; } diff --git a/api/particles/include/api_particles.inc b/api/particles/include/api_particles.inc index 58aefda..f5120b0 100644 --- a/api/particles/include/api_particles.inc +++ b/api/particles/include/api_particles.inc @@ -3,6 +3,8 @@ #endif #define _api_particles_included +#include + /** * Registers a particle effect. * @@ -10,12 +12,24 @@ * @param flEmitRate The rate at which particles are emitted. * @param flParticleLifeTime The lifetime of each particle. * @param iMaxParticles The maximum number of particles. - * @param szInitFunction The name of the initialization function. - * @param szTransformFunction The name of the transformation function. + * @param iEmitAmount The amount of emitted particles. + * @param flVisibilityDistance Max visible distance. + * @param iFlags Effect flags. + * + * @noreturn + */ +native ParticleEffect_Register(const szName[], Float:flEmitRate = 0.1, Float:flParticleLifeTime = 1.0, iMaxParticles = 10, iEmitAmount = 1, Float:flVisibilityDistance = 1024.0, ParticleEffectFlag:iFlags = ParticleEffectFlag_None); + +/** + * Registers a particle effect hook. + * + * @param iHook Hook to handle. + * @param szName Name of the particle effect. + * @param szCallback Callback function to be called during particle effects. * * @noreturn */ -native RegisterParticleEffect(const szName[], const szInitFunction[], const szTransformFunction[], Float:flEmitRate = 0.1, Float:flParticleLifeTime = 1.0, Float:flVisibilityDistance = 1024.0, iMaxParticles = 10); +native ParticleEffect_RegisterHook(const szName[], ParticleEffectHook:iHook, const szCallback[]); /** * Creates a particle system. @@ -23,7 +37,7 @@ native RegisterParticleEffect(const szName[], const szInitFunction[], const szTr * @param szEffect The name of the effect. * @param vecOrigin The origin of the system. * @param vecAngles The angles of the system. - * @param pParent The parent entity. + * @param pParent The parent System. * * @return The particle system structure pointer. */ @@ -56,6 +70,25 @@ native ParticleSystem_Activate(const &ParticleSystem:sSystem); */ native ParticleSystem_Deactivate(const &ParticleSystem:sSystem); +/** + * Gets particle effect speed. + * + * @param sSystem The particle system structure pointer. + * + * @return The particle system effect speed. + */ +native Float:ParticleSystem_GetEffectSpeed(const &ParticleSystem:sSystem); + +/** + * Sets particle effect speed. + * + * @param sSystem The particle system structure pointer. + * @param flSpeed The particle system effect speed. + * + * @noreturn + */ +native ParticleSystem_SetEffectSpeed(const &ParticleSystem:sSystem, Float:flSpeed); + /** * Retrieves the time at which a particle system was created. * @@ -75,13 +108,13 @@ native Float:ParticleSystem_GetCreatedTime(const &ParticleSystem:sSystem); native Float:ParticleSystem_GetKillTime(const &ParticleSystem:sSystem); /** - * Retrieves the last time a particle system was updated. + * Retrieves the last time a particle system was thinked. * * @param sSystem The particle system structure pointer. * - * @return The last update time of the particle system. + * @return The last think time of the particle system. */ -native Float:ParticleSystem_GetLastUpdateTime(const &ParticleSystem:sSystem); +native Float:ParticleSystem_GetLastThink(const &ParticleSystem:sSystem); /** * Retrieves the visibility bits of a particle. @@ -103,7 +136,7 @@ native Float:ParticleSystem_GetVisibilityBits(const &ParticleSystem:sSystem); native ParticleSystem_GetOrigin(const &ParticleSystem:sSystem, const vecOut[]); /** - * Sets the origin of the particle system. + * Sets the origin of the particle system. * * @param sSystem The particle system structure pointer. * @param vecOrigin The origin vector. @@ -113,22 +146,22 @@ native ParticleSystem_GetOrigin(const &ParticleSystem:sSystem, const vecOut[]); native ParticleSystem_SetOrigin(const &ParticleSystem:sSystem, const Float:vecOrigin[3]); /** - * Retrieves the parent entity of the particle system. + * Retrieves the parent System of the particle system. * @param sSystem The particle system structure pointer. - * @param pParent The parent entity. + * @param pParent The parent System. * * @noreturn */ -native ParticleSystem_GetParentEntity(const &ParticleSystem:sSystem, pParent); +native ParticleSystem_GetParentSystem(const &ParticleSystem:sSystem, pParent); /** - * Sets the parent entity of the particle system. + * Sets the parent System of the particle system. * * @param sSystem The particle system structure pointer. * - * @return The parent entity. + * @return The parent System. */ -native ParticleSystem_SetParentEntity(const &ParticleSystem:sSystem); +native ParticleSystem_SetParentSystem(const &ParticleSystem:sSystem); /** * Retrieves the effect name of the particle system. @@ -151,6 +184,96 @@ native ParticleSystem_GetEffect(const &ParticleSystem:sSystem, szOut[], iMaxLen) */ native ParticleSystem_SetEffect(const &ParticleSystem:sSystem, const szName[]); +/** + * Checks if System has member + * + * @param sSystem System index + * @param szMember Member name + */ +native ParticleSystem_HasMember(const &ParticleSystem:sSystem, const szMember[]); + +/** + * Deletes member of an System + * + * @param sSystem System index + * @param szMember Member name + */ +native ParticleSystem_DeleteMember(const &ParticleSystem:sSystem, const szMember[]); + +/** + * Gets member of an System + * + * @param sSystem System index + * @param szMember Member name + * + * @return Member value + */ +native any:ParticleSystem_GetMember(const &ParticleSystem:sSystem, const szMember[]); + +/** + * Sets member of an System + * + * @param sSystem System index + * @param szMember Member name + * @param value Value to set + */ +native ParticleSystem_SetMember(const &ParticleSystem:sSystem, const szMember[], any:value); + +/** + * Gets vector member of an System + * + * @param sSystem System index + * @param szMember Member name + * @param vecOut Output vector + */ +native bool:ParticleSystem_GetMemberVec(const &ParticleSystem:sSystem, const szMember[], Float:vecOut[3]); + +/** + * Sets vector member of an System + * + * @param sSystem System index + * @param szMember Member name + * @param vecValue Vector to set + */ +native ParticleSystem_SetMemberVec(const &ParticleSystem:sSystem, const szMember[], const Float:vecValue[3]); + +/** + * Gets string member of an System + * + * @param sSystem System index + * @param szMember Member name + * @param szOut Buffer to copy the value + * @param iLen Maximum size of buffer + */ +native bool:ParticleSystem_GetMemberString(const &ParticleSystem:sSystem, const szMember[], szOut[], iLen); + +/** + * Sets string member of an System + * + * @param sSystem System index + * @param szMember Member name + * @param szValue String value to set + */ +native ParticleSystem_SetMemberString(const &ParticleSystem:sSystem, const szMember[], const szValue[]); + +/** + * Gets particle index by particle pointer. + * + * @param sParticle The particle pointer. + * + * @return The index of the particle. + */ +native Particle_GetIndex(const &Particle:sParticle); + +/** + * Gets particle batch index by particle pointer. + * + * @param sParticle The particle pointer. + * + * @return The batch index of the particle. + */ +native Particle_GetBatchIndex(const &Particle:sParticle); + /** * Gets particle entity by particle pointer. * @@ -188,10 +311,70 @@ native Float:Particle_GetCreatedTime(const &Particle:sParticle); native Float:Particle_GetKillTime(const &Particle:sParticle); /** - * Retrieves the time at which a particle was transformed last. + * Retrieves the time at which a particle was thinked last. * * @param sParticle The particle pointer. * - * @return The last transform time of the particle. + * @return The last think time of the particle. + */ +native Float:Particle_GetLastThink(const &Particle:sParticle); + +/** + * Retrieves the origin of the particle. + * + * @param sSystem The particle structure pointer. + * @param vecOut The vector to set. + * + * @noreturn + */ +native Particle_GetOrigin(const &Particle:sParticle, Float:vecOut[3]); + +/** + * Sets the origin of the particle. + * + * @param sSystem The particle structure pointer. + * @param vecOrigin The origin vector. + * + * @noreturn + */ +native Particle_SetOrigin(const &Particle:sParticle, const Float:vecOrigin[3]); + +/** + * Retrieves the angles of the particle. + * + * @param sSystem The particle structure pointer. + * @param vecOut The vector to set. + * + * @noreturn + */ +native Particle_GetAngles(const &Particle:sParticle, Float:vecOut[3]); + +/** + * Sets the angles of the particle. + * + * @param sSystem The particle structure pointer. + * @param vecAngles The angles vector. + * + * @noreturn + */ +native Particle_SetAngles(const &Particle:sParticle, const Float:vecAngles[3]); + +/** + * Retrieves the velocity of the particle. + * + * @param sSystem The particle structure pointer. + * @param vecOut The vector to set. + * + * @noreturn + */ +native Particle_GetVelocity(const &Particle:sParticle, Float:vecOut[3]); + +/** + * Sets the velocity of the particle. + * + * @param sSystem The particle structure pointer. + * @param vecVelocity The origin velocity. + * + * @noreturn */ -native Float:Particle_GetLastTransformTime(const &Particle:sParticle); +native Particle_SetVelocity(const &Particle:sParticle, const Float:vecVelocity[3]); diff --git a/api/particles/include/api_particles_const.inc b/api/particles/include/api_particles_const.inc new file mode 100644 index 0000000..7190a1d --- /dev/null +++ b/api/particles/include/api_particles_const.inc @@ -0,0 +1,23 @@ +#if defined _api_particles_const_included + #endinput +#endif +#define _api_particles_const_included + +#define PARTICLE_MAX_MEMBER_LENGTH 64 + +enum ParticleEffectHook { + ParticleEffectHook_System_Init, + ParticleEffectHook_System_Destroy, + ParticleEffectHook_System_Think, + ParticleEffectHook_System_Activated, + ParticleEffectHook_System_Deactivated, + ParticleEffectHook_Particle_Init, + ParticleEffectHook_Particle_Destroy, + ParticleEffectHook_Particle_Think, + ParticleEffectHook_Particle_EntityInit +}; + +enum ParticleEffectFlag (<<=1) { + ParticleEffectFlag_None = 0, + ParticleEffectFlag_AttachParticles = 1 +}; From 5a8750914811fe7747051b210da2a3c7c1cfb91d Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 2 Mar 2024 03:11:54 +0100 Subject: [PATCH 143/231] add images --- images/example-particle-effect.gif | Bin 0 -> 999647 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/example-particle-effect.gif diff --git a/images/example-particle-effect.gif b/images/example-particle-effect.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c68c0b2f4774bc0ac67e50f8ad773d328dccc10 GIT binary patch literal 999647 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

|1#Uzd14D`6UkEy$KKU6Xa};_Pe$PL$$XUIUQX6 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�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.ZgcG4G8fAl9_9gf0#rL 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 z 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

X~!KTzk?^YRX;1B#|Ne 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

NhvI?LneI)<;y;3?kBc3V84?;?O3 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 literal 0 HcmV?d00001 From 70bc080e7bd5d25c0a85cc87c89605e0c660fdd5 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 2 Mar 2024 03:24:02 +0100 Subject: [PATCH 144/231] add links --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 17d9911..0c4e4d7 100644 --- a/README.md +++ b/README.md @@ -14,3 +14,20 @@ __CS Modding Kit__ is a powerful solutions for Amx Mod X modding that can be use ### 🔄 Requirements - Amx Mod X 1.9+ - RegameDLL + ReAPI (for some APIs) + +### ⚙️ Available APIs +- [🫸 Advanced Pushing](./api/advanced-pushing) +- [🧸 Custom Entities](./api/custom-entities) +- [🔄 Custom Events](./api/custom-events) +- [🔫 Custom Weapons](./api/custom-weapons) +- [🎯 NavSystem](./api/navsystem) +- [💫 Particles](./api/particles) +- [🎥 Player Camera](./api/player-camera) +- [🎩 Player Cosmetics](./api/player-cosmetics) +- [🥴 Player Dizziness](./api/player-dizziness) +- [🏃‍♂️ Player Effects](./api/player-effects) +- [🎒 Player Inventory](./api/player-inventory) +- [🦸 Player Model](./api/player-model) +- [👁️ Player Viewrange](./api/player-viewrange) +- [⏱️ Rounds](./api/rounds) +- [❓ Waypoint Markers](./api/waypoint-markers) From 62639ac845fe8e923a796358ed25b5d666617629 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 2 Mar 2024 03:47:18 +0100 Subject: [PATCH 145/231] update docs --- api/particles/README.md | 55 ++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/api/particles/README.md b/api/particles/README.md index d5cfcbf..f15902b 100644 --- a/api/particles/README.md +++ b/api/particles/README.md @@ -1,46 +1,57 @@ # Particles API -This is a Particle System API for a game modification plugin, likely written in Pawn language for the AMX Mod X platform. The API provides functions to register particle effects, create and manipulate particle systems, and work with individual particles. +This Particle System API is designed to implement particle effects. The API provides functions to register particle effects, create and manipulate particle systems, and work with individual particles. -## Registering new particle effect +## Registering a New Particle Effect + +To register a new particle effect, use the `ParticleEffect_Register` function. -To register new particle effect use `ParticleEffect_Register` function. ```cpp ParticleEffect_Register("my-effect", EMIT_RATE, PARTICLE_LIFETIME, MAX_PARTICLES); ``` -## Controling particle effect -To control your effect use hooks. Use `ParticleEffect_RegisterHook` function together with `ParticleEffectHook_` constants to hook events. +- `EMIT_RATE`: Emit rate of particles per second. +- `PARTICLE_LIFETIME`: Lifetime of each particle in seconds. +- `MAX_PARTICLES`: Maximum number of particles in the effect. + +## Controlling Particle Effects + +To control your effect you need hooks. Use the `ParticleEffect_RegisterHook` function with `ParticleEffectHook_` constants to hook events. + ```cpp ParticleEffect_RegisterHook("my-effect", ParticleEffectHook_Particle_Think, "@Effect_Particle_Think"); ``` -## Spawning the particle effect system -Use `ParticleSystem_Create` function to spawn the system on specific origin. +## Spawning the Particle Effect System + +To spawn the system at a specific origin use the `ParticleSystem_Create` function. + ```cpp new ParticleSystem:sParticleSystem = ParticleSystem_Create("my-effect", vecOrigin); ``` -## Removing the particle effect system -To remove destroy system and free memory use `ParticleSystem_Destroy` function. +## Removing the Particle Effect System + +To remove and free memory, destroy the system using `ParticleSystem_Destroy`. + ```cpp ParticleSystem_Destroy(sParticleSystem); ``` -## Enabling/Disabling the particle effect system -You can use `ParticleSystem_Activate` and `ParticleSystem_Deactivate` methods to enable or disable particle system. +## Enabling/Disabling the Particle Effect System + +Enable or disable the particle system with `ParticleSystem_Activate` and `ParticleSystem_Deactivate` methods. + ```cpp ParticleSystem_Activate(sParticleSystem); ParticleSystem_Deactivate(sParticleSystem); ``` +## Simple Particle Effect Example -## Simple particle effect -Here is an example of a simple particle effect to demonstrate API functionality. +Here is a simple example demonstrating API functionality: ![Simple Particle Effect](../../images/example-particle-effect.gif) - - ```cpp #include #include @@ -122,3 +133,17 @@ public plugin_init() { set_pev(pEntity, pev_rendercolor, rgflColor); } ``` + + +Certainly! Here's an improved version: + +## Testing Your Effect In-Game + +To evaluate and visualize your particle effect within the game environment, you can use the `particle_create` console command, specifying the name of your effect as the first argument. + +**Example:** +```bash +particle_create "colored-circle" +``` + +This command triggers the creation and rendering of the "colored-circle" particle effect, allowing you to assess its appearance and behavior in real-time. From 56ca0d50e9bb8d1e4844074c634f4a8191eb8dd6 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 2 Mar 2024 06:03:41 +0100 Subject: [PATCH 146/231] fix lang --- api/particles/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/api/particles/README.md b/api/particles/README.md index f15902b..9fc2b8a 100644 --- a/api/particles/README.md +++ b/api/particles/README.md @@ -5,7 +5,7 @@ This Particle System API is designed to implement particle effects. The API prov To register a new particle effect, use the `ParticleEffect_Register` function. -```cpp +```pawn ParticleEffect_Register("my-effect", EMIT_RATE, PARTICLE_LIFETIME, MAX_PARTICLES); ``` @@ -17,7 +17,7 @@ ParticleEffect_Register("my-effect", EMIT_RATE, PARTICLE_LIFETIME, MAX_PARTICLES To control your effect you need hooks. Use the `ParticleEffect_RegisterHook` function with `ParticleEffectHook_` constants to hook events. -```cpp +```pawn ParticleEffect_RegisterHook("my-effect", ParticleEffectHook_Particle_Think, "@Effect_Particle_Think"); ``` @@ -25,7 +25,7 @@ ParticleEffect_RegisterHook("my-effect", ParticleEffectHook_Particle_Think, "@Ef To spawn the system at a specific origin use the `ParticleSystem_Create` function. -```cpp +```pawn new ParticleSystem:sParticleSystem = ParticleSystem_Create("my-effect", vecOrigin); ``` @@ -33,7 +33,7 @@ new ParticleSystem:sParticleSystem = ParticleSystem_Create("my-effect", vecOrigi To remove and free memory, destroy the system using `ParticleSystem_Destroy`. -```cpp +```pawn ParticleSystem_Destroy(sParticleSystem); ``` @@ -41,7 +41,7 @@ ParticleSystem_Destroy(sParticleSystem); Enable or disable the particle system with `ParticleSystem_Activate` and `ParticleSystem_Deactivate` methods. -```cpp +```pawn ParticleSystem_Activate(sParticleSystem); ParticleSystem_Deactivate(sParticleSystem); ``` @@ -52,7 +52,7 @@ Here is a simple example demonstrating API functionality: ![Simple Particle Effect](../../images/example-particle-effect.gif) -```cpp +```pawn #include #include #include From 311836027c58a6c155dd835280b7b88b22264edf Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 2 Mar 2024 23:55:32 +0100 Subject: [PATCH 147/231] fix initialization --- api/player-effects/api_player_effects.sma | 14 ++++++++------ .../include/api_player_effects_const.inc | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/api/player-effects/api_player_effects.sma b/api/player-effects/api_player_effects.sma index 94c0696..1b2939f 100644 --- a/api/player-effects/api_player_effects.sma +++ b/api/player-effects/api_player_effects.sma @@ -34,12 +34,7 @@ new Trie:g_itEffectsIds = Invalid_Trie; new g_rgPEffectData[PEffectData] = { Invalid_Array, ... }; new g_iEffectssNum = 0; -public plugin_init() { - register_plugin(PLUGIN, VERSION, AUTHOR); - - RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", .Post = 1); - RegisterHamPlayer(Ham_Killed, "HamHook_Player_Killed", .Post = 0); - +public plugin_precache() { g_itEffectsIds = TrieCreate(); g_rgPEffectData[PEffectData_Id] = ArrayCreate(32); @@ -51,6 +46,13 @@ public plugin_init() { g_rgPEffectData[PEffectData_Players] = ArrayCreate(); g_rgPEffectData[PEffectData_PlayerEffectEnd] = ArrayCreate(MAX_PLAYERS + 1); g_rgPEffectData[PEffectData_PlayerEffectDuration] = ArrayCreate(MAX_PLAYERS + 1); +} + +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); + + RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", .Post = 1); + RegisterHamPlayer(Ham_Killed, "HamHook_Player_Killed", .Post = 0); register_concmd("player_effect_set", "Command_Set", ADMIN_CVAR); diff --git a/api/player-effects/include/api_player_effects_const.inc b/api/player-effects/include/api_player_effects_const.inc index 3446820..b38f180 100644 --- a/api/player-effects/include/api_player_effects_const.inc +++ b/api/player-effects/include/api_player_effects_const.inc @@ -18,6 +18,6 @@ enum ParticleHook { }; enum ParticleEffectFlag (<<=1) { - ParticleEffectFlag_None = 0, - ParticleEffectFlag_AttachParticles = 1 + ParticleEffectFlag_None = 0, + ParticleEffectFlag_AttachParticles = 1 }; From 481ab112a7e92ce39521dccff7d79b347cce9357 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 3 Mar 2024 00:12:07 +0100 Subject: [PATCH 148/231] fix Nav_Area_GetClosestPointOnArea native --- api/navsystem/api_navsystem.sma | 2 -- api/navsystem/include/api_navsystem.inc | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/api/navsystem/api_navsystem.sma b/api/navsystem/api_navsystem.sma index fbb7da6..ffe927a 100644 --- a/api/navsystem/api_navsystem.sma +++ b/api/navsystem/api_navsystem.sma @@ -451,8 +451,6 @@ public Native_Area_GetClosestPointOnArea(iPluginId, iArgc) { get_array_f(2, vecPos, sizeof(vecPos)); static Float:vecClose[3]; - get_array_f(3, vecClose, sizeof(vecClose)); - @NavArea_GetClosestPointOnArea(sArea, vecPos, vecClose); set_array_f(3, vecClose, sizeof(vecClose)); diff --git a/api/navsystem/include/api_navsystem.inc b/api/navsystem/include/api_navsystem.inc index 0680986..324c086 100644 --- a/api/navsystem/include/api_navsystem.inc +++ b/api/navsystem/include/api_navsystem.inc @@ -37,7 +37,7 @@ native Nav_Area_GetCenter(NavArea:pArea, Float:vecOut[3]); native bool:Nav_Area_Contains(NavArea:pArea, const Float:vecPoint[3]); native bool:Nav_Area_IsCoplanar(NavArea:pArea, NavArea:pOther); native Float:Nav_Area_GetZ(NavArea:pArea); -native Nav_Area_GetClosestPointOnArea(NavArea:pArea, const Float:vecPoint[3], const Float:vecOut[3]); +native Nav_Area_GetClosestPointOnArea(NavArea:pArea, const Float:vecPoint[3], Float:vecOut[3]); native Float:Nav_Area_GetDistanceSquaredToPoint(NavArea:pArea, const Float:vecPoint[3]); native NavArea:Nav_Area_GetRandomAdjacentArea(NavArea:pArea, NavDirType:iDir); native bool:Nav_Area_IsEdge(NavArea:pArea, NavDirType:iDir); From 027110d3a78c8cea540089d6369ae37918f75543 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 3 Mar 2024 00:16:56 +0100 Subject: [PATCH 149/231] add Nav_Path_Segment_GetArea method --- api/navsystem/api_navsystem.sma | 7 +++++++ api/navsystem/include/api_navsystem.inc | 1 + 2 files changed, 8 insertions(+) diff --git a/api/navsystem/api_navsystem.sma b/api/navsystem/api_navsystem.sma index ffe927a..3ace5b6 100644 --- a/api/navsystem/api_navsystem.sma +++ b/api/navsystem/api_navsystem.sma @@ -223,6 +223,7 @@ public plugin_natives() { register_native("Nav_Path_GetSegments", "Native_Path_GetSegments"); register_native("Nav_Path_Segment_GetPos", "Native_Path_Segment_GetPos"); register_native("Nav_Path_Segment_GetHow", "Native_Path_Segment_GetHow"); + register_native("Nav_Path_Segment_GetArea", "Native_Path_Segment_GetArea"); register_native("Nav_Path_Find", "Native_Path_Find"); register_native("Nav_Path_FindTask_GetUserToken", "Native_Path_FindTask_GetUserToken"); @@ -413,6 +414,12 @@ public NavTraverseType:Native_Path_Segment_GetHow(iPluginId, iArgc) { return StructGetCell(sSegment, PathSegment_How); } +public NavTraverseType:Native_Path_Segment_GetArea(iPluginId, iArgc) { + new Struct:sSegment = Struct:get_param(1); + + return StructGetCell(sSegment, PathSegment_Area); +} + public Native_Area_GetId(iPluginId, iArgc) { new Struct:sArea = Struct:get_param(1); diff --git a/api/navsystem/include/api_navsystem.inc b/api/navsystem/include/api_navsystem.inc index 324c086..973485a 100644 --- a/api/navsystem/include/api_navsystem.inc +++ b/api/navsystem/include/api_navsystem.inc @@ -87,3 +87,4 @@ native any:Nav_Path_FindTask_GetUserToken(NavBuildPathTask:pTask); native Nav_Path_Segment_GetPos(NavPathSegment:pSegment, Float:vecOut[3]); native NavTraverseType:Nav_Path_Segment_GetHow(NavPathSegment:pSegment); +native NavArea:Nav_Path_Segment_GetArea(NavPathSegment:pSegment); From 88339bb7f8c70b9015f510a64d3c49bfded33e04 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 3 Mar 2024 18:19:12 +0100 Subject: [PATCH 150/231] add ladders support --- api/navsystem/api_navsystem.sma | 494 +++++++++++++++++++++++++++++--- 1 file changed, 448 insertions(+), 46 deletions(-) diff --git a/api/navsystem/api_navsystem.sma b/api/navsystem/api_navsystem.sma index 3ace5b6..8eafce1 100644 --- a/api/navsystem/api_navsystem.sma +++ b/api/navsystem/api_navsystem.sma @@ -24,6 +24,14 @@ #include +enum _:LADDER_TOP_DIR { + LADDER_TOP_DIR_AHEAD = 0, + LADDER_TOP_DIR_LEFT, + LADDER_TOP_DIR_RIGHT, + LADDER_TOP_DIR_BEHIND, + NUM_TOP_DIRECTIONS +}; + enum Extent { Float:Extent_Lo[3], Float:Extent_Hi[3] }; enum Ray { Float:Ray_From[3], Float:Ray_To[3]}; enum NavConnect { NavConnect_Id, Struct:NavConnect_Area }; @@ -77,6 +85,7 @@ enum NavArea { // connections to adjacent areas Array:NavArea_Connect[NUM_DIRECTIONS], // a list of adjacent areas for each direction + Array:NavArea_Ladder[NUM_LADDER_DIRECTIONS], // a list of adjacent areas for each direction Array:NavArea_OverlapList, // list of areas that overlap this area @@ -130,6 +139,21 @@ enum BuildPathJob { BuildPathJob_IgnoreEntity }; +enum NavLadder { + Float:NavLadder_Top[3], + Float:NavLadder_Bottom[3], + Float:NavLadder_Length, + NavDirType:NavLadder_Dir, + Float:NavLadder_DirVector[2], + NavLadder_Entity, + Struct:NavLadder_TopForwardArea, + Struct:NavLadder_TopLeftArea, + Struct:NavLadder_TopRightArea, + Struct:NavLadder_TopBehindArea, + Struct:NavLadder_BottomArea, + bool:NavLadder_IsDangling +}; + const Float:GenerationStepSize = 25.0; const Float:StepHeight = 18.0; const Float:HalfHumanWidth = 16.0; @@ -141,6 +165,7 @@ new g_rgGrid[NavAreaGrid]; new g_iNavAreaNextId = 0; new g_iNavAreaMasterMarker; new Array:g_irgNavAreaList = Invalid_Array; +// new Array:g_irgNavLadderList = Invalid_Array; new Struct:g_sNavAreaOpenList = Invalid_Struct; new g_rgBuildPathJob[BuildPathJob]; @@ -151,6 +176,7 @@ new g_pTrace; new g_pCvarMaxIterationsPerFrame; new g_pCvarDebug; +new bool:b_bInitStage = false; new bool:g_bPrecached = false; new g_iArrowModelIndex; @@ -162,8 +188,11 @@ public plugin_precache() { public plugin_init() { register_plugin("Nav System", "0.1.0", "Hedgehog Fog"); + b_bInitStage = true; g_pCvarMaxIterationsPerFrame = register_cvar("nav_max_iterations_per_frame", "100"); g_pCvarDebug = register_cvar("nav_debug", "0"); + + if (g_bPrecached) BuildLadders(); } public plugin_end() { @@ -178,6 +207,17 @@ public plugin_end() { ArrayDestroy(g_irgNavAreaList); } + // if (g_irgNavLadderList != Invalid_Array) { + // new iNavirgLadderListSize = ArraySize(g_irgNavLadderList); + + // for (new i = 0; i < iNavirgLadderListSize; ++i) { + // new Struct:sNavLader = ArrayGetCell(g_irgNavLadderList, i); + // @NavLadder_Destroy(sNavLader); + // } + + // ArrayDestroy(g_irgNavLadderList); + // } + NavAreaGrid_Free(); if (g_irgBuildPathTasks != Invalid_Array) { @@ -556,6 +596,10 @@ Struct:@NavArea_Create() { StructSetCell(this, NavArea_Connect, ArrayCreate(_:NavConnect), d); } + for (new LadderDirectionType:d = LADDER_UP; d < NUM_LADDER_DIRECTIONS; d++) { + StructSetCell(this, NavArea_Ladder, ArrayCreate(_:NavLadder), d); + } + return this; } @@ -581,6 +625,11 @@ Struct:@NavArea_Create() { ArrayDestroy(irgConnectList); } + for (new LadderDirectionType:d = LADDER_UP; d < NUM_LADDER_DIRECTIONS; d++) { + new Array:irgLadderList = StructGetCell(this, NavArea_Ladder, d); + ArrayDestroy(irgLadderList); + } + StructDestroy(this); } @@ -786,7 +835,7 @@ NavErrorType:@NavArea_PostLoadArea(const &Struct:this) { rgSpot[SpotEncounter_To][NavConnect_Area] = NavAreaGrid_GetNavAreaById(rgSpot[SpotEncounter_To][NavConnect_Id]); if (rgSpot[SpotEncounter_To][NavConnect_Area] == Invalid_Struct) { - // log_amx("ERROR: Corrupt navigation data. Missing ^"to^" Navigation Area for Encounter Spot.^n"); + log_amx("ERROR: Corrupt navigation data. Missing ^"to^" Navigation Area for Encounter Spot.^n"); error = NAV_CORRUPT_DATA; } @@ -878,6 +927,16 @@ Float:@NavArea_GetCostSoFar(const &Struct:this) { // since "closed" is defined as visited (marked) and not on open list, do nothing } +@NavArea_AddLadderUp(const &Struct:this, const rgNavLadder[NavLadder]) { + new Array:irgLadderList = StructGetCell(this, NavArea_Ladder, LADDER_UP); + ArrayPushArray(irgLadderList, rgNavLadder[any:0]); +} + +@NavArea_AddLadderDown(const &Struct:this, const rgNavLadder[NavLadder]) { + new Array:irgLadderList = StructGetCell(this, NavArea_Ladder, LADDER_DOWN); + ArrayPushArray(irgLadderList, rgNavLadder[any:0]); +} + @NavArea_SetParent(const &Struct:this, Struct:parent, NavTraverseType:how) { StructSetCell(this, NavArea_Parent, parent); StructSetCell(this, NavArea_ParentHow, how); @@ -1122,7 +1181,7 @@ Float:@NavArea_GetZ(const &Struct:this, const Float:vecPos[]) { // Return closest point to 'vecPos' on 'area'. // Returned point is in 'vecClose'. -@NavArea_GetClosestPointOnArea(const &Struct:this, const Float:vecPos[3], Float:vecClose[3]) { +@NavArea_GetClosestPointOnArea(const &Struct:this, const Float:vecPos[], Float:vecClose[]) { static rgExtent[Extent]; StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); @@ -1429,6 +1488,31 @@ bool:@NavArea_IsConnected(const &Struct:this, Struct:sArea, NavDirType:iDir) { return true; } } + + // check ladder connections + { + static Array:irgLadderList; irgLadderList = StructGetCell(this, NavArea_Ladder, LADDER_UP); + static iListSize; iListSize = ArraySize(irgLadderList); + for (new i = 0; i < iListSize; ++i) { + static rgNavLadder[NavLadder]; ArrayGetArray(irgLadderList, i, rgNavLadder[any:0]); + + if (rgNavLadder[NavLadder_TopBehindArea] == sArea || rgNavLadder[NavLadder_TopForwardArea] == sArea || rgNavLadder[NavLadder_TopLeftArea] == sArea || rgNavLadder[NavLadder_TopRightArea] == sArea) { + return true; + } + } + } + + { + static Array:irgLadderList; irgLadderList = StructGetCell(this, NavArea_Ladder, LADDER_DOWN); + static iListSize; iListSize = ArraySize(irgLadderList); + for (new i = 0; i < iListSize; ++i) { + static rgNavLadder[NavLadder]; ArrayGetArray(irgLadderList, i, rgNavLadder[any:0]); + + if (rgNavLadder[NavLadder_BottomArea] == sArea) { + return true; + } + } + } } else { // check specific direction static Array:irgConnections; irgConnections = StructGetCell(this, NavArea_Connect, iDir); @@ -1500,6 +1584,16 @@ NavDirType:@NavArea_ComputeDirection(const &Struct:this, const Float:vecPoint[3] } } +Struct:@NavLadder_Create() { + new Struct:this = StructCreate(NavLadder); + + return this; +} + +@NavLadder_Destroy(&Struct:this) { + StructDestroy(this); +} + Struct:@NavPath_Create() { new Struct:this = StructCreate(NavPath); StructSetCell(this, NavPath_Segments, ArrayCreate()); @@ -1568,8 +1662,7 @@ bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[3], cons static Struct:sStartArea; sStartArea = StructGetCell(startSegment, PathSegment_Area); // start in first area's center - static Float:vecStart[3]; - @NavArea_GetCenter(sStartArea, vecStart); + static Float:vecStart[3]; @NavArea_GetCenter(sStartArea, vecStart); StructSetArray(startSegment, PathSegment_Pos, vecStart, sizeof(vecStart)); StructSetCell(startSegment, PathSegment_How, NUM_TRAVERSE_TYPES); @@ -1580,11 +1673,8 @@ bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[3], cons static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); static Struct:sToArea; sToArea = StructGetCell(sToSegment, PathSegment_Area); - static Float:vecFromPos[3]; - StructGetArray(sFromSegment, PathSegment_Pos, vecFromPos, sizeof(vecFromPos)); - - static Float:vecToPos[3]; - StructGetArray(sToSegment, PathSegment_Pos, vecToPos, sizeof(vecToPos)); + static Float:vecFromPos[3]; StructGetArray(sFromSegment, PathSegment_Pos, vecFromPos, sizeof(vecFromPos)); + static Float:vecToPos[3]; StructGetArray(sToSegment, PathSegment_Pos, vecToPos, sizeof(vecToPos)); // walk along the floor to the next area static NavTraverseType:toHow; toHow = StructGetCell(sToSegment, PathSegment_How); @@ -1633,6 +1723,47 @@ bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[3], cons i++; } } + } else if (toHow == GO_LADDER_UP) { // to get to next area, must go up a ladder + // find our ladder + new bool:bFound = false; + new Array:irgLadderList = StructGetCell(sFromArea, NavArea_Ladder, LADDER_UP); + + new iListSize = ArraySize(irgLadderList); + for (new i = 0; i < iListSize; ++i) { + static rgNavLadder[NavLadder]; ArrayGetArray(irgLadderList, i, rgNavLadder[any:0]); + + // can't use "behind" area when ascending... + if (rgNavLadder[NavLadder_TopForwardArea] == sToArea || rgNavLadder[NavLadder_TopLeftArea] == sToArea || rgNavLadder[NavLadder_TopRightArea] == sToArea) { + // to->ladder = ladder; + static Float:vecPos[3]; xs_vec_copy(rgNavLadder[NavLadder_Bottom], vecPos); + AddDirectionVector(vecPos, rgNavLadder[NavLadder_Dir], 2.0 * HalfHumanWidth); + StructSetArray(sToSegment, PathSegment_Pos, vecPos, 3); + bFound = true; + break; + } + } + + if (!bFound) return false; + } else if (toHow == GO_LADDER_DOWN) { // to get to next area, must go down a ladder + // find our ladder + new bool:bFound = false; + new Array:irgLadderList = StructGetCell(sFromArea, NavArea_Ladder, LADDER_DOWN); + + new iListSize = ArraySize(irgLadderList); + for (new i = 0; i < iListSize; ++i) { + static rgNavLadder[NavLadder]; ArrayGetArray(irgLadderList, i, rgNavLadder[any:0]); + + if (rgNavLadder[NavLadder_BottomArea] == sToArea) { + // to->ladder = ladder; + static Float:vecPos[3]; xs_vec_copy(rgNavLadder[NavLadder_Top], vecPos); + AddDirectionVector(vecPos, OppositeDirection(rgNavLadder[NavLadder_Dir]), 2.0 * HalfHumanWidth); + StructSetArray(sToSegment, PathSegment_Pos, vecPos, 3); + bFound = true; + break; + } + } + + if (!bFound) return false; } } @@ -2033,6 +2164,7 @@ NavErrorType:LoadNavigationMap() { } g_irgNavAreaList = ArrayCreate(); + // g_irgNavLadderList = ArrayCreate(); new iFile = fopen(szFilePath, "rb"); g_iNavAreaNextId = 1; @@ -2135,10 +2267,224 @@ NavErrorType:LoadNavigationMap() { fclose(iFile); + if (b_bInitStage) BuildLadders(); + return NAV_OK; } -Struct:FindFirstAreaInDirection(const Float:vecStart[3], NavDirType:iDir, Float:flRange, Float:flBeneathLimit, pIgnoreEnt, Float:vecClosePos[3]) { +// For each ladder in the map, create a navigation representation of it. +BuildLadders() { + log_amx("Building ladders..."); + + new pEntity = 0; + while ((pEntity = engfunc(EngFunc_FindEntityByString, pEntity, "classname", "func_ladder")) != 0) { + BuildLadder(pEntity); + } + + log_amx("All ladders built!"); +} + +BuildLadder(pEntity) { + new Float:vecAbsMin[3]; pev(pEntity, pev_absmin, vecAbsMin); + new Float:vecAbsMax[3]; pev(pEntity, pev_absmax, vecAbsMax); + + new rgNavLadder[NavLadder]; + rgNavLadder[NavLadder_Entity] = pEntity; + + // compute top & bottom of ladder + xs_vec_set(rgNavLadder[NavLadder_Top], (vecAbsMin[0] + vecAbsMax[0]) / 2.0, (vecAbsMin[1] + vecAbsMax[1]) / 2.0, vecAbsMax[2]); + xs_vec_set(rgNavLadder[NavLadder_Bottom], rgNavLadder[NavLadder_Top][0], rgNavLadder[NavLadder_Top][1], vecAbsMin[2]); + + // determine facing - assumes "normal" runged ladder + new Float:xSize = vecAbsMax[0] - vecAbsMin[0]; + new Float:ySize = vecAbsMax[1] - vecAbsMin[1]; + + if (xSize > ySize) { + // ladder is facing north or south - determine which way + // "pull in" traceline from bottom and top in case ladder abuts floor and/or ceiling + new Float:vecFrom[3]; xs_vec_add(rgNavLadder[NavLadder_Bottom], Float:{0.0, GenerationStepSize, GenerationStepSize}, vecFrom); + new Float:vecTo[3]; xs_vec_add(rgNavLadder[NavLadder_Top], Float:{0.0, GenerationStepSize, -GenerationStepSize}, vecTo); + + engfunc(EngFunc_TraceLine, vecFrom, vecTo, IGNORE_MONSTERS, pEntity, g_pTrace); + + new Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + + if (flFraction != 1.0 || get_tr2(g_pTrace, TR_StartSolid)) { + rgNavLadder[NavLadder_Dir] = NORTH; + } else { + rgNavLadder[NavLadder_Dir] = SOUTH; + } + } else { + // ladder is facing east or west - determine which way + new Float:vecFrom[3]; xs_vec_add(rgNavLadder[NavLadder_Bottom], Float:{GenerationStepSize, 0.0, GenerationStepSize}, vecFrom); + new Float:vecTo[3]; xs_vec_add(rgNavLadder[NavLadder_Top], Float:{GenerationStepSize, 0.0, -GenerationStepSize}, vecTo); + + engfunc(EngFunc_TraceLine, vecFrom, vecTo, IGNORE_MONSTERS, pEntity, g_pTrace); + + new Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + + if (flFraction != 1.0 || get_tr2(g_pTrace, TR_StartSolid)) { + rgNavLadder[NavLadder_Dir] = WEST; + } else { + rgNavLadder[NavLadder_Dir] = EAST; + } + } + + // adjust top and bottom of ladder to make sure they are reachable + // (cs_office has a crate right in front of the base of a ladder) + new Float:vecAlong[3]; xs_vec_sub(rgNavLadder[NavLadder_Top], rgNavLadder[NavLadder_Bottom], vecAlong); + + // adjust bottom to bypass blockages + AdjustLadderPositionToBypassBlockages(pEntity, rgNavLadder[NavLadder_Bottom], rgNavLadder[NavLadder_Dir], vecAlong); + + // adjust top to bypass blockages + AdjustLadderPositionToBypassBlockages(pEntity, rgNavLadder[NavLadder_Top], rgNavLadder[NavLadder_Dir], vecAlong); + + rgNavLadder[NavLadder_Length] = xs_vec_distance(rgNavLadder[NavLadder_Top], rgNavLadder[NavLadder_Bottom]); + + DirectionToVector2D(rgNavLadder[NavLadder_Dir], rgNavLadder[NavLadder_DirVector]); + + new Float:vecCenter[3]; + + // Find naviagtion area at bottom of ladder + // get approximate postion of player on ladder + xs_vec_add(rgNavLadder[NavLadder_Bottom], Float:{0.0, 0.0, GenerationStepSize}, vecCenter); + AddDirectionVector(vecCenter, rgNavLadder[NavLadder_Dir], HalfHumanWidth); + + rgNavLadder[NavLadder_BottomArea] = NavAreaGrid_GetNearestNavArea(vecCenter, true, nullptr); + + // Find adjacent navigation areas at the top of the ladder + // get approximate postion of player on ladder + xs_vec_add(rgNavLadder[NavLadder_Top], Float:{0.0, 0.0, GenerationStepSize}, vecCenter); + AddDirectionVector(vecCenter, rgNavLadder[NavLadder_Dir], HalfHumanWidth); + + static const Float:flNearLadderRange = 75.0; + + // find "ahead" area + rgNavLadder[NavLadder_TopForwardArea] = FindFirstAreaInDirection(vecCenter, OppositeDirection(rgNavLadder[NavLadder_Dir]), flNearLadderRange, 120.0, pEntity); + if (rgNavLadder[NavLadder_TopForwardArea] == rgNavLadder[NavLadder_BottomArea]) { + rgNavLadder[NavLadder_TopForwardArea] = Invalid_Struct; + } + + // find "left" area + rgNavLadder[NavLadder_TopLeftArea] = FindFirstAreaInDirection(vecCenter, DirectionLeft(rgNavLadder[NavLadder_Dir]), flNearLadderRange, 120.0, pEntity); + if (rgNavLadder[NavLadder_TopLeftArea] == rgNavLadder[NavLadder_BottomArea]) { + rgNavLadder[NavLadder_TopLeftArea] = Invalid_Struct; + } + + // find "right" area + rgNavLadder[NavLadder_TopRightArea] = FindFirstAreaInDirection(vecCenter, DirectionRight(rgNavLadder[NavLadder_Dir]), flNearLadderRange, 120.0, pEntity); + if (rgNavLadder[NavLadder_TopRightArea] == rgNavLadder[NavLadder_BottomArea]) { + rgNavLadder[NavLadder_TopRightArea] = Invalid_Struct; + } + + // find "behind" area - must look farther, since ladder is against the wall away from this area + rgNavLadder[NavLadder_TopBehindArea] = FindFirstAreaInDirection(vecCenter, rgNavLadder[NavLadder_Dir], 2.0 * flNearLadderRange, 120.0, pEntity); + if (rgNavLadder[NavLadder_TopBehindArea] == rgNavLadder[NavLadder_BottomArea]) { + rgNavLadder[NavLadder_TopBehindArea] = Invalid_Struct; + } + + // can't include behind area, since it is not used when going up a ladder + if (rgNavLadder[NavLadder_BottomArea] == Invalid_Struct) { + log_amx("ERROR: Unconnected ladder bottom at (%f, %f, %f)", rgNavLadder[NavLadder_Bottom][0], rgNavLadder[NavLadder_Bottom][1], rgNavLadder[NavLadder_Bottom][2]); + return; + } + + if (rgNavLadder[NavLadder_TopForwardArea] == Invalid_Struct && rgNavLadder[NavLadder_TopLeftArea] == Invalid_Struct && rgNavLadder[NavLadder_TopRightArea] == Invalid_Struct) { + log_amx("ERROR: Unconnected ladder top at (%f, %f, %f)", rgNavLadder[NavLadder_Top][0], rgNavLadder[NavLadder_Top][1], rgNavLadder[NavLadder_Top][2]); + return; + } + + // store reference to ladder in the area + if (rgNavLadder[NavLadder_BottomArea] != Invalid_Struct) { + @NavArea_AddLadderUp(rgNavLadder[NavLadder_BottomArea], rgNavLadder); + } + + // store reference to ladder in the area(s) + if (rgNavLadder[NavLadder_TopForwardArea] != Invalid_Struct) { + @NavArea_AddLadderDown(rgNavLadder[NavLadder_TopForwardArea], rgNavLadder); + } + + if (rgNavLadder[NavLadder_TopLeftArea] != Invalid_Struct) { + @NavArea_AddLadderDown(rgNavLadder[NavLadder_TopLeftArea], rgNavLadder); + } + + if (rgNavLadder[NavLadder_TopRightArea] != Invalid_Struct) { + @NavArea_AddLadderDown(rgNavLadder[NavLadder_TopRightArea], rgNavLadder); + } + + if (rgNavLadder[NavLadder_TopBehindArea] != Invalid_Struct) { + @NavArea_AddLadderDown(rgNavLadder[NavLadder_TopBehindArea], rgNavLadder); + } + + // adjust top of ladder to highest connected area + new Float:flTopZ = -99999.9; + new bool:bTopAdjusted = false; + + new Struct:rgsTopAreaList[NUM_CORNERS]; + rgsTopAreaList[NORTH_WEST] = rgNavLadder[NavLadder_TopForwardArea]; + rgsTopAreaList[NORTH_EAST] = rgNavLadder[NavLadder_TopLeftArea]; + rgsTopAreaList[SOUTH_EAST] = rgNavLadder[NavLadder_TopRightArea]; + rgsTopAreaList[SOUTH_WEST] = rgNavLadder[NavLadder_TopBehindArea]; + + for (new iCorner = 0; iCorner < _:NUM_CORNERS; iCorner++) { + new Struct:sTopArea = rgsTopAreaList[NavCornerType:iCorner]; + if (!sTopArea) continue; + + new Float:vecClose[3]; @NavArea_GetClosestPointOnArea(sTopArea, rgNavLadder[NavLadder_Top], vecClose); + + if (flTopZ < vecClose[2]) { + flTopZ = vecClose[2]; + bTopAdjusted = true; + } + } + + if (bTopAdjusted) rgNavLadder[NavLadder_Top][2] = flTopZ; + + // Determine whether this ladder is "dangling" or not + // "Dangling" ladders are too high to go up + rgNavLadder[NavLadder_IsDangling] = false; + if (rgNavLadder[NavLadder_BottomArea]) { + new Float:vecBottomSpot[3]; @NavArea_GetClosestPointOnArea(rgNavLadder[NavLadder_BottomArea], rgNavLadder[NavLadder_Bottom], vecBottomSpot); + if (rgNavLadder[NavLadder_Bottom][2] - vecBottomSpot[2] > HumanHeight) { + rgNavLadder[NavLadder_IsDangling] = true; + } + } + + // add ladder to global list + // new Struct:sNavLadder = @NavLadder_Create(); + // StructSetArray(sNavLadder, 0, rgNavLadder, _:NavLadder); + // ArrayPushCell(g_irgNavLadderList, sNavLadder); +} + +AdjustLadderPositionToBypassBlockages(pEntity, Float:vecPosition[], NavDirType:iDir, const Float:vecAlong[3]) { + static const Float:flMinLadderClearance = 32.0; + static const Float:flLadderStep = 10.0; + + new Float:flPathLength = xs_vec_len(vecAlong); + + new Float:vecOn[3]; + new Float:vecOut[3]; + + for (new Float:flPath = 0.0; flPath <= flPathLength; flPath += flLadderStep) { + xs_vec_sub_scaled(vecPosition, vecAlong, flPath, vecOn); + + xs_vec_copy(vecOn, vecOut); + AddDirectionVector(vecOut, iDir, flMinLadderClearance); + + engfunc(EngFunc_TraceLine, vecOn, vecOut, IGNORE_MONSTERS, pEntity, g_pTrace); + + new Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + + if (flFraction == 1.0 && !get_tr2(g_pTrace, TR_StartSolid)) { + // found viable ladder pos + xs_vec_copy(vecOn, vecPosition); + break; + } + } +} + +Struct:FindFirstAreaInDirection(const Float:vecStart[3], NavDirType:iDir, Float:flRange, Float:flBeneathLimit, pIgnoreEnt, Float:vecClosePos[3] = 0.0) { new Struct:sArea = Invalid_Struct; static Float:vecPos[3]; @@ -2385,80 +2731,136 @@ NavAreaBuildPathIteration() { } // search adjacent areas + static bool:bSearchFloor; bSearchFloor = true; static Array:irgFloorList; irgFloorList = @NavArea_GetAdjacentList(sArea, NORTH); static iFloorIter; iFloorIter = 0; + static bool:bLadderUp; bLadderUp = true; + static Array:irgLadderList; irgLadderList = Invalid_Array; + static iLadderIter; iLadderIter = 0; + static iLadderTopDir; iLadderTopDir = LADDER_TOP_DIR_AHEAD; static NavDirType:iDir; for (iDir = NORTH; iDir < NUM_DIRECTIONS;) { + static rgNavLadder[NavLadder]; + static Struct:sNewArea; sNewArea = Invalid_Struct; + static NavTraverseType:iHow; iHow = GO_NORTH; + // Get next adjacent area - either on floor or via ladder - // if exhausted adjacent connections in current direction, begin checking next direction - if (iFloorIter >= ArraySize(irgFloorList)) { - iDir++; - - if (iDir < NUM_DIRECTIONS) { - // start next direction - irgFloorList = @NavArea_GetAdjacentList(sArea, iDir); - iFloorIter = 0; + if (bSearchFloor) { + // if exhausted adjacent connections in current direction, begin checking next direction + if (iFloorIter >= ArraySize(irgFloorList)) { + iDir++; + + if (iDir < NUM_DIRECTIONS) { + // start next direction + irgFloorList = @NavArea_GetAdjacentList(sArea, iDir); + iFloorIter = 0; + } else { + // checked all directions on floor - check ladders next + bSearchFloor = false; + + irgLadderList = StructGetCell(sArea, NavArea_Ladder, LADDER_UP); + iLadderIter = 0; + iLadderTopDir = LADDER_TOP_DIR_AHEAD; + iDir = NORTH; + } + + continue; } - continue; - } + sNewArea = ArrayGetCell(irgFloorList, iFloorIter, _:NavConnect_Area); + iHow = NavTraverseType:iDir; + iFloorIter++; + } else { // search ladders + if (iLadderIter >= ArraySize(irgLadderList)) { + // checked both ladder directions - done + if (!bLadderUp) break; - static Struct:newArea; newArea = ArrayGetCell(irgFloorList, iFloorIter, _:NavConnect_Area); + // check down ladders + bLadderUp = false; + irgLadderList = StructGetCell(sArea, NavArea_Ladder, LADDER_DOWN); + iLadderIter = 0; - iFloorIter++; + continue; + } - // don't backtrack - if (newArea == sArea) { - continue; + ArrayGetArray(irgLadderList, iLadderIter, rgNavLadder[any:0], _:NavLadder); + + if (bLadderUp) { + // cannot use this ladder if the ladder bottom is hanging above our head + if (rgNavLadder[NavLadder_IsDangling]) { + iLadderIter++; + continue; + } + + // do not use BEHIND connection, as its very hard to get to when going up a ladder + if (iLadderTopDir == LADDER_TOP_DIR_AHEAD) { + sNewArea = rgNavLadder[NavLadder_TopForwardArea]; + } else if (iLadderTopDir == LADDER_TOP_DIR_LEFT) { + sNewArea = rgNavLadder[NavLadder_TopLeftArea]; + } else if (iLadderTopDir == LADDER_TOP_DIR_RIGHT) { + sNewArea = rgNavLadder[NavLadder_TopRightArea]; + // } else if (iLadderTopDir == LADDER_TOP_DIR_BEHIND) { + // sNewArea = rgNavLadder[NavLadder_TopBehindArea]; + } else { + iLadderIter++; + continue; + } + + iHow = GO_LADDER_UP; + iLadderTopDir++; + } else { + sNewArea = rgNavLadder[NavLadder_BottomArea]; + iHow = GO_LADDER_DOWN; + iLadderIter++; + } } - static Float:newCostSoFar; - newCostSoFar = 1.0; + if (sNewArea == Invalid_Struct) continue; + + // don't backtrack + if (sNewArea == sArea) continue; + + static Float:newCostSoFar; newCostSoFar = 1.0; if (g_rgBuildPathJob[BuildPathJob_CostFuncId] != -1 && callfunc_begin_i(g_rgBuildPathJob[BuildPathJob_CostFuncId], g_rgBuildPathJob[BuildPathJob_CostFuncPluginId])) { callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_Task]); - callfunc_push_int(_:newArea); + callfunc_push_int(_:sNewArea); callfunc_push_int(_:sArea); newCostSoFar = Float:callfunc_end(); } // check if cost functor says this area is a dead-end - if (newCostSoFar < 0.0) { - continue; - } + if (newCostSoFar < 0.0) continue; - if ((@NavArea_IsOpen(newArea) || @NavArea_IsClosed(newArea)) && @NavArea_GetCostSoFar(newArea) <= newCostSoFar) { + if ((@NavArea_IsOpen(sNewArea) || @NavArea_IsClosed(sNewArea)) && @NavArea_GetCostSoFar(sNewArea) <= newCostSoFar) { // this is a worse path - skip it - // log_amx("[%d] this is a worse path - skip it", newArea); continue; } // compute estimate of distance left to go - static Float:vecNewAreaCenter[3]; - @NavArea_GetCenter(newArea, vecNewAreaCenter); - + static Float:vecNewAreaCenter[3]; @NavArea_GetCenter(sNewArea, vecNewAreaCenter); static Float:newCostRemaining; newCostRemaining = xs_vec_distance(vecNewAreaCenter, g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); // track closest area to goal in case path fails if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct && newCostRemaining < g_rgBuildPathJob[BuildPathJob_ClosestAreaDist]) { - g_rgBuildPathJob[BuildPathJob_ClosestArea] = newArea; + g_rgBuildPathJob[BuildPathJob_ClosestArea] = sNewArea; g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = newCostRemaining; } - @NavArea_SetParent(newArea, sArea, NavTraverseType:iDir); - @NavArea_SetCostSoFar(newArea, newCostSoFar); - @NavArea_SetTotalCost(newArea, newCostSoFar + newCostRemaining); + @NavArea_SetParent(sNewArea, sArea, iHow); + @NavArea_SetCostSoFar(sNewArea, newCostSoFar); + @NavArea_SetTotalCost(sNewArea, newCostSoFar + newCostRemaining); - if (@NavArea_IsClosed(newArea)) { - @NavArea_RemoveFromClosedList(newArea); + if (@NavArea_IsClosed(sNewArea)) { + @NavArea_RemoveFromClosedList(sNewArea); } - if (@NavArea_IsOpen(newArea)) { + if (@NavArea_IsOpen(sNewArea)) { // area already on open list, update the list order to keep costs sorted - @NavArea_UpdateOnOpenList(newArea); + @NavArea_UpdateOnOpenList(sNewArea); } else { - @NavArea_AddToOpenList(newArea); + @NavArea_AddToOpenList(sNewArea); } } @@ -2756,7 +3158,7 @@ stock AddDirectionVector(Float:vecInput[3], NavDirType:iDir, Float:flAmount) { } } -stock DirectionToVector2D(NavDirType:iDir, Float:vecOutput[2]) { +stock DirectionToVector2D(NavDirType:iDir, Float:vecOutput[]) { switch (iDir) { case NORTH: { vecOutput[0] = 0.0; From b6153f4cfe4a02b5fdd600554e7a23115ab76735 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 3 Mar 2024 18:25:26 +0100 Subject: [PATCH 151/231] update docs --- api/navsystem/README.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/api/navsystem/README.md b/api/navsystem/README.md index 828cd56..5542910 100644 --- a/api/navsystem/README.md +++ b/api/navsystem/README.md @@ -29,14 +29,19 @@ public NavPathCallback(NavBuildPathTask:pTask) { public Float:NavPathCost(NavBuildPathTask:pTask, NavArea:newArea, NavArea:prevArea) { - if (Nav_Area_GetAttributes(newArea) & NAV_JUMP) { - return -1.0; - } + // No jump + if (Nav_Area_GetAttributes(newArea) & NAV_JUMP) return -1.0; + + // No crouch + if (Nav_Area_GetAttributes(newArea) & NAV_CROUCH) return -1.0; - if (Nav_Area_GetAttributes(newArea) & NAV_CROUCH) { - return -1.0; + // Don't go ladders + if (prevArea != Invalid_NavArea) { + new NavTraverseType:iTraverseType = Nav_Area_GetParentHow(prevArea); + if (iTraverseType == GO_LADDER_UP) return -1.0; + if (iTraverseType == GO_LADDER_DOWN) return -1.0; } return 1.0; } -``` \ No newline at end of file +``` From 3a159d2397d19132c6ecca1c7bead41687766902 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 3 Mar 2024 20:44:48 +0100 Subject: [PATCH 152/231] fix virtual methods --- api/custom-entities/api_custom_entities.sma | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index efb9339..88f960f 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -409,9 +409,7 @@ public any:Native_CallMethod(iPluginId, iArgc) { new iId; iId = -1; // If we are already in the execution context use entity logic from current context - if (IsMethodCallStackEmtpy()) { - iId = GetPDataMember(itPData, CE_MEMBER_ID); - } else { + if (!IsMethodCallStackEmtpy()) { static rgCallStackItem[MethodCallStackItem]; GetCurrentMethodFromCallStack(rgCallStackItem); @@ -420,6 +418,8 @@ public any:Native_CallMethod(iPluginId, iArgc) { } else { iId = GetPDataMember(itPData, CE_MEMBER_ID); } + } else { + iId = GetPDataMember(itPData, CE_MEMBER_ID); } new rgMethod[Method]; @@ -432,7 +432,7 @@ public any:Native_CallMethod(iPluginId, iArgc) { } // If we are already in the execution context and the method is virual jump to top level context - if (IsMethodCallStackEmtpy()) { + if (!IsMethodCallStackEmtpy()) { if (rgMethod[Method_IsVirtual]) { iId = FindEntityMethodInHierarchy(GetPDataMember(itPData, CE_MEMBER_ID), szMethod, rgMethod); } From e0a4755e14144830b3dcd9f4cf9ada77ade0144c Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 10 Mar 2024 06:51:47 +0100 Subject: [PATCH 153/231] fix camera activation pvs --- api/player-camera/api_player_camera.sma | 4 + util/cellclass.inc | 616 ++++++++++++++++++++++++ 2 files changed, 620 insertions(+) create mode 100644 util/cellclass.inc diff --git a/api/player-camera/api_player_camera.sma b/api/player-camera/api_player_camera.sma index 0bee6b5..5ba3161 100644 --- a/api/player-camera/api_player_camera.sma +++ b/api/player-camera/api_player_camera.sma @@ -155,6 +155,10 @@ ActivatePlayerCamera(pPlayer) { engfunc(EngFunc_SetView, pPlayer, g_rgpPlayerCamera[pPlayer]); + static Float:vecOrigin[3]; + pev(g_pPlayerTargetEntity[pPlayer], pev_origin, vecOrigin); + engfunc(EngFunc_SetOrigin, g_rgpPlayerCamera[pPlayer], vecOrigin); + ExecuteForward(g_fwActivated, _, pPlayer); } diff --git a/util/cellclass.inc b/util/cellclass.inc new file mode 100644 index 0000000..548ea0f --- /dev/null +++ b/util/cellclass.inc @@ -0,0 +1,616 @@ +#if defined _classes_included + #endinput +#endif +#define _classes_included + +#include +#include +#tryinclude +#include + +#define MAX_CLASS_NAME_LENGTH 64 +#define MAX_METHOD_NAME_LENGTH 64 + +#define DEFAULT_CELL_VALUE 0 +#define DEFAULT_FLOAT_VALUE 0.0 +#define DEFAULT_STRING_VALUE NULL_STRING + +#define __class_err_MethodAlreadyRegistered "Method ^"%s^" is already registered for the class!" +#define __class_err_VMethodArgumentsMismatch "Arguments mismatch in the overridden virtual method ^"%s^"." +#define __class_err_ClassIdNotFound "Class with id %d is not registered!" +#define __class_err_MethodNotFound "Method ^"%s^" is not registered for the instance (%d)!" +#define __class_err_CallMethodOutsideContext "Calling a base method is not allowed outside of the execution context!" +#define __class_err_ClassHasNoBaseClass "Cannot call base method of class without base class!" +#define __class_err_MethodNotFoundInBaseClass "Cannot find method ^"%s^" in base classes!" + +enum Class { + Invalid_Class = -1 +}; + +enum ClassInstance { + Invalid_ClassInstance = -1 +}; + +enum { + CMP_Invalid = -1, + CMP_Cell, + CMP_Float, + CMP_String, + CMP_Array, + CMP_FloatArray +}; + +enum __class_Data { + Class:__class_Data_Base, + Array:__class_Data_Hierarchy, + Trie:__class_Data_Methods +}; + +enum __class_MethodData { + __class_MethodData_Name[MAX_METHOD_NAME_LENGTH], + Class:__class_MethodData_Class, + __class_MethodData_PluginId, + __class_MethodData_FunctionId, + bool:__class_MethodData_IsVirtual, + Array:__class_MethodData_ParamTypes +}; + +enum __class_InstanceData { + Class:__class_InstanceData_Class, + Trie:__class_InstanceData_Members +}; + +enum __class_MethodParamData { + __class_MethodParamData_Type = 0, + __class_MethodParamData_Size +}; + +enum __class_MethodCallStackItem { + ClassInstance:__class_MethodCallStackItem_Instance, + Class:__class_MethodCallStackItem_Class, + Struct:__class_MethodCallStackItem_Method +}; + +stock bool:__class_bInitialized = false; +new Array:__class_irgMethodCallStack; +new DataPack:__class_dpParams = Invalid_DataPack; + +#if defined _datapack_included + new __class_szBuffer[MAX_STRING_LENGTH]; + new __class_rgiBuffer[MAX_STRING_LENGTH]; + new Float:__class_rgflBuffer[MAX_STRING_LENGTH]; +#endif + +stock Class:ClassCreate(const &Class:sBaseClass = Invalid_Class) { + if (!__class_bInitialized) { + __class_Initialize(); + } + + new Trie:itMethods = TrieCreate(); + + new Class:class = Class:StructCreate(__class_Data); + StructSetCell(Struct:class, __class_Data_Base, sBaseClass); + StructSetCell(Struct:class, __class_Data_Methods, itMethods); + + return Class:class; +} + +stock ClassDestroy(const &Class:cClass) { + new Trie:itMethods = StructGetCell(Struct:cClass, __class_Data_Methods); + TrieDestroy(itMethods); + + StructDestroy(Struct:cClass); +} + +stock Class:ClassAddMethod(const &Class:class, const szMethod[], const szCallback[], iPluginId = -1, bool:bVirtual = false, any:...) { + static const iArgOffset = 5; + + new iArgc = numargs(); + + new Class:sBaseClass = StructGetCell(Struct:class, __class_Data_Base); + new Trie:itMethods = StructGetCell(Struct:class, __class_Data_Methods); + + if (TrieKeyExists(itMethods, szMethod)) { + log_error(AMX_ERR_NATIVE, __class_err_MethodAlreadyRegistered, szMethod); + return; + } + + new Array:irgParamTypes; irgParamTypes = ArrayCreate(_:__class_MethodParamData, iArgc - iArgOffset); + + for (new iArg = iArgOffset; iArg <= iArgc; ++iArg) { + new rgParam[__class_MethodParamData]; + rgParam[__class_MethodParamData_Type] = getarg(iArg); + rgParam[__class_MethodParamData_Size] = 1; + + switch (rgParam[__class_MethodParamData_Type]) { + case CMP_Array, CMP_FloatArray: { + rgParam[__class_MethodParamData_Size] = getarg(iArg + 1); + iArg++; + } + } + + ArrayPushArray(irgParamTypes, rgParam[any:0], _:__class_MethodParamData); + } + + if (sBaseClass != Invalid_Class) { + new Struct:sBaseMethod = _cellclass_FindClassMethodInHierarchy(sBaseClass, szMethod); + if (sBaseMethod != Invalid_Struct) { + if (StructGetCell(sBaseMethod, __class_MethodData_IsVirtual)) { + new Array:irgBaseParamTypes = StructGetCell(sBaseMethod, __class_MethodData_ParamTypes); + if (!_cellclass_CompareParamTypes(irgBaseParamTypes, irgParamTypes)) { + log_error(AMX_ERR_NATIVE, __class_err_VMethodArgumentsMismatch, szMethod); + return; + } + } + } + } + + new Struct:sMethod = StructCreate(__class_MethodData); + StructSetCell(sMethod, __class_MethodData_Class, class); + StructSetString(sMethod, __class_MethodData_Name, szMethod); + StructSetCell(sMethod, __class_MethodData_PluginId, iPluginId); + StructSetCell(sMethod, __class_MethodData_FunctionId, get_func_id(szCallback, iPluginId)); + StructSetCell(sMethod, __class_MethodData_ParamTypes, irgParamTypes); + StructSetCell(sMethod, __class_MethodData_IsVirtual, bVirtual); + + TrieSetCell(itMethods, szMethod, sMethod); +} + +stock ClassInstance:ClassGetCurrentInstance() { + if (__class_IsMethodCallStackEmtpy()) { + log_error(AMX_ERR_NATIVE, __class_err_CallMethodOutsideContext); + return Invalid_ClassInstance; + } + + static rgCallStackItem[__class_MethodCallStackItem]; __class_GetCurrentMethodFromCallStack(rgCallStackItem); + + return rgCallStackItem[__class_MethodCallStackItem_Instance]; +} + +stock ClassCallMethod(const &ClassInstance:pInstance, const szMethod[], any:...) { + static Class:class; class = __class_GetCallMethodClass(pInstance); + + static Struct:sMethod; sMethod = _cellclass_FindClassMethodInHierarchy(class, szMethod); + + // Check for virtual method call + if (!__class_IsMethodCallStackEmtpy()) { + // If we are already in the execution context and the method is virual jump to top level context + if (StructGetCell(sMethod, __class_MethodData_IsVirtual)) { + static Class:sInstanceClass; sInstanceClass = StructGetCell(Struct:pInstance, __class_InstanceData_Class); + sMethod = _cellclass_FindClassMethodInHierarchy(sInstanceClass, szMethod); + } + } + + #if defined _datapack_included + ResetPack(__class_dpParams, true); + + new Array:irgParamTypes; irgParamTypes = StructGetCell(sMethod, __class_MethodData_ParamTypes); + + new iParamsNum; iParamsNum = ArraySize(irgParamTypes); + for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { + new iParam; iParam = 2 + iMethodParam; + new iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Type); + new iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Size); + new bool:bUseDefault; bUseDefault = iParam > numargs(); + + switch (iType) { + case CMP_Cell: { + WritePackCell(__class_dpParams, bUseDefault ? DEFAULT_CELL_VALUE : getarg(iParam)); + } + case CMP_Float: { + WritePackFloat(__class_dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:getarg(iParam)); + } + case CMP_String: { + if (bUseDefault) { + copy(__class_szBuffer, sizeof(__class_szBuffer), DEFAULT_STRING_VALUE); + } else { + for (new i = 0; i < charsmax(__class_szBuffer); ++i) { + __class_szBuffer[i] = getarg(iParam, i); + if (__class_szBuffer[i] == '^0') break; + } + } + + WritePackString(__class_dpParams, __class_szBuffer); + } + case CMP_Array: { + if (bUseDefault) { + arrayset(__class_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + for (new i = 0; i < iSize; ++i) { + __class_rgiBuffer[i] = getarg(iParam, i); + } + } + + WritePackArray(__class_dpParams, __class_rgiBuffer, iSize); + } + case CMP_FloatArray: { + if (bUseDefault) { + arrayset(__class_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + for (new i = 0; i < iSize; ++i) { + __class_rgflBuffer[i] = Float:getarg(iParam, i); + } + } + + WritePackFloatArray(__class_dpParams, __class_rgflBuffer, iSize); + } + } + } + #endif + + #if defined _datapack_included + ResetPack(__class_dpParams); + #endif + + new any:result; result = __class_ExecuteMethod(sMethod, pInstance, __class_dpParams); + + return result; +} + +stock any:ClassCallBaseMethod(any:...) { + if (__class_IsMethodCallStackEmtpy()) { + log_error(AMX_ERR_NATIVE, __class_err_CallMethodOutsideContext); + return 0; + } + + static rgCallStackItem[__class_MethodCallStackItem]; __class_GetCurrentMethodFromCallStack(rgCallStackItem); + + static Class:class; class = StructGetCell(Struct:rgCallStackItem[__class_MethodCallStackItem_Class], __class_Data_Base); + + if (class == Invalid_Class) { + log_error(AMX_ERR_NATIVE, __class_err_ClassHasNoBaseClass); + return 0; + } + + new szMethod[MAX_METHOD_NAME_LENGTH]; StructGetString(rgCallStackItem[__class_MethodCallStackItem_Method], __class_MethodData_Name, szMethod, charsmax(szMethod)); + + static Struct:sMethod; sMethod = _cellclass_FindClassMethodInHierarchy(class, szMethod); + + if (sMethod == Invalid_Struct) { + log_error(AMX_ERR_NATIVE, __class_err_MethodNotFoundInBaseClass, szMethod); + return 0; + } + + #if defined _datapack_included + ResetPack(__class_dpParams, true); + + new Array:irgParamTypes; irgParamTypes = StructGetCell(sMethod, __class_MethodData_ParamTypes); + + new iParamsNum; iParamsNum = ArraySize(irgParamTypes); + for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { + new iParam; iParam = 0 + iMethodParam; + new iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Type); + new iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Size); + new bool:bUseDefault; bUseDefault = iParam > numargs(); + + switch (iType) { + case CMP_Cell: { + WritePackCell(__class_dpParams, bUseDefault ? DEFAULT_CELL_VALUE : getarg(iParam)); + } + case CMP_Float: { + WritePackFloat(__class_dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:getarg(iParam)); + } + case CMP_String: { + if (bUseDefault) { + copy(__class_szBuffer, sizeof(__class_szBuffer), DEFAULT_STRING_VALUE); + } else { + for (new i = 0; i < charsmax(__class_szBuffer); ++i) { + __class_szBuffer[i] = getarg(iParam, i); + if (__class_szBuffer[i] == '^0') break; + } + } + + WritePackString(__class_dpParams, __class_szBuffer); + } + case CMP_Array: { + if (bUseDefault) { + arrayset(__class_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + for (new i = 0; i < iSize; ++i) { + __class_rgiBuffer[i] = getarg(iParam, i); + } + } + + WritePackArray(__class_dpParams, __class_rgiBuffer, iSize); + } + case CMP_FloatArray: { + if (bUseDefault) { + arrayset(__class_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + for (new i = 0; i < iSize; ++i) { + __class_rgflBuffer[i] = Float:getarg(iParam, i); + } + } + + WritePackFloatArray(__class_dpParams, __class_rgflBuffer, iSize); + } + } + } + #endif + + #if defined _datapack_included + ResetPack(__class_dpParams); + #endif + + new any:result; result = __class_ExecuteMethod(sMethod, rgCallStackItem[__class_MethodCallStackItem_Instance], __class_dpParams); + + return result; +} + +stock ClassInstance:ClassCreateInstance(const &Class:class) { + static Struct:pInstance; pInstance = StructCreate(__class_InstanceData); + StructSetCell(pInstance, __class_InstanceData_Class, class); + StructSetCell(pInstance, __class_InstanceData_Members, TrieCreate()); + + return ClassInstance:pInstance; +} + +stock ClassDestroyInstance(&ClassInstance:pInstance) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + TrieDestroy(itMembers); + + StructDestroy(pInstance); + + pInstance = Invalid_Struct; +} + +stock bool:ClassInstanceHasMember(const &ClassInstance:pInstance, const szMember[]) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + + return TrieKeyExists(itMembers, szMember); +} + +stock ClassDelInstanceeteMember(const &ClassInstance:pInstance, const szMember[]) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + + TrieDeleteKey(itMembers, szMember); +} + +stock any:ClassInstanceGetMember(const &ClassInstance:pInstance, const szMember[]) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + + static any:value; + return TrieGetCell(itMembers, szMember, value) ? value : 0; +} + +stock ClassInstanceSetMember(const &ClassInstance:pInstance, const szMember[], any:value) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + + TrieSetCell(itMembers, szMember, value); +} + +stock bool:ClassInstanceGetMemberVec(const &ClassInstance:pInstance, const szMember[], Float:vecOut[]) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + + return !!TrieGetArray(itMembers, szMember, vecOut, 3); +} + +stock ClassInstanceSetMemberVec(const &ClassInstance:pInstance, const szMember[], const Float:vecValue[3]) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + + TrieSetArray(itMembers, szMember, vecValue, 3); +} + +stock bool:ClassInstanceGetMemberString(const &ClassInstance:pInstance, const szMember[], szOut[], iMaxLen) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + + copy(szOut, iMaxLen, NULL_STRING); + return !!TrieGetString(itMembers, szMember, szOut, iMaxLen); +} + +stock ClassInstanceSetMemberString(const &ClassInstance:pInstance, const szMember[], const szValue[]) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + + TrieSetString(itMembers, szMember, szValue); +} + +stock bool:ClassInstanceGetMemberArray(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iLen) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + + return !!TrieGetArray(itMembers, szMember, rgOut, iLen); +} + +stock ClassInstanceSetMemberArray(const &ClassInstance:pInstance, const szMember[], const rgValue[], iLen) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + + TrieSetArray(itMembers, szMember, rgValue, iLen); +} + + +__class_Initialize() { + __class_irgMethodCallStack = ArrayCreate(_:__class_MethodCallStackItem); + __class_bInitialized = true; + + #if defined _datapack_included + __class_dpParams = CreateDataPack(); + #endif +} + +stock _cellclass_CompareParamTypes(const &Array:irgParams, const &Array:irgOtherParams) { + new iSize = ArraySize(irgParams); + new iOtherSize = ArraySize(irgOtherParams); + + if (iSize != iOtherSize) return false; + + for (new i = 0; i < iSize; ++i) { + if (ArrayGetCell(irgParams, i) != ArrayGetCell(irgOtherParams, i)) return false; + } + + return true; +} + +stock __class_ExecuteMethod(const &Struct:sMethod, ClassInstance:pInstance, const DataPack:dpParams) { + new iResult = 0; + + static Class:class; class = StructGetCell(sMethod, __class_MethodData_Class); + + __class_PushMethodToCallStack(sMethod, pInstance, class); + + if (callfunc_begin_i(StructGetCell(sMethod, __class_MethodData_FunctionId), StructGetCell(sMethod, __class_MethodData_PluginId)) == 1) { + #if defined _datapack_included + static Array:irgParamTypes; irgParamTypes = StructGetCell(sMethod, __class_MethodData_ParamTypes); + + if (irgParamTypes != Invalid_Array) { + static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + + for (new iParam = 0; iParam < iParamsNum; ++iParam) { + static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:__class_MethodParamData_Type); + + switch (iType) { + case CMP_Cell: { + static iValue; iValue = ReadPackCell(dpParams); + callfunc_push_int(iValue); + } + case CMP_Float: { + static Float:flValue; flValue = ReadPackFloat(dpParams); + callfunc_push_float(flValue); + } + case CMP_String: { + ReadPackString(dpParams, __class_szBuffer, charsmax(__class_szBuffer)); + callfunc_push_str(__class_szBuffer); + } + case CMP_Array: { + static iLen; iLen = ReadPackArray(dpParams, __class_rgiBuffer); + callfunc_push_array(__class_rgiBuffer, iLen, false); + } + case CMP_FloatArray: { + static iLen; iLen = ReadPackFloatArray(dpParams, __class_rgflBuffer); + callfunc_push_array(_:__class_rgflBuffer, iLen, false); + } + } + } + } + #endif + + iResult = callfunc_end(); + } + + __celstruct_PopMethodFromCallStack(); + + return iResult; +} + +stock Struct:_cellclass_FindClassMethodInHierarchy(const &Class:class, const szMethod[]) { + new Class:sCurrentClass = class; + + do { + static Trie:itMethods; itMethods = StructGetCell(Struct:class, __class_Data_Methods); + + static Struct:sMethod; + if (TrieGetCell(itMethods, szMethod, sMethod)) return sMethod; + + sCurrentClass = StructGetCell(Struct:sCurrentClass, __class_Data_Base); + } while (sCurrentClass != Invalid_Class); + + return Invalid_Struct; +} + +stock Array:__class_GetClassHierarchy(const &Class:class) { + static Array:irgHierarchy; irgHierarchy = StructGetCell(class, __class_Data_Hierarchy); + + if (irgHierarchy == Invalid_Array) { + irgHierarchy = __class_CreateHierarchyList(class); + StructSetCell(class, __class_Data_Hierarchy, irgHierarchy); + } + + return irgHierarchy; +} + +stock Array:__class_CreateHierarchyList(const &Class:class) { + new Array:irgHierarchy = ArrayCreate(); + + new Class:sCurrentClass = class; + + do { + if (sCurrentClass == class) { + ArrayPushCell(irgHierarchy, sCurrentClass); + } else { + ArrayInsertCellBefore(irgHierarchy, 0, sCurrentClass); + } + + sCurrentClass = StructGetCell(Struct:class, __class_Data_Base); + } while (sCurrentClass != Invalid_Class); + + return irgHierarchy; +} + +stock bool:__class_IsMethodCallStackEmtpy() { + return !ArraySize(__class_irgMethodCallStack); +} + +stock __class_PushMethodToCallStack(const Struct:sMethod, const &ClassInstance:pInstance, const &Class:class) { + static rgCallStackItem[__class_MethodCallStackItem]; + rgCallStackItem[__class_MethodCallStackItem_Instance] = pInstance; + rgCallStackItem[__class_MethodCallStackItem_Class] = class; + rgCallStackItem[__class_MethodCallStackItem_Method] = sMethod; + + ArrayPushArray(__class_irgMethodCallStack, rgCallStackItem[__class_MethodCallStackItem:0], sizeof(rgCallStackItem)); +} + +stock __celstruct_PopMethodFromCallStack() { + ArrayDeleteItem(__class_irgMethodCallStack, ArraySize(__class_irgMethodCallStack) - 1); +} + +stock __class_GetCurrentMethodFromCallStack(rgCallStackItem[__class_MethodCallStackItem]) { + ArrayGetArray(__class_irgMethodCallStack, ArraySize(__class_irgMethodCallStack) - 1, rgCallStackItem[__class_MethodCallStackItem:0], sizeof(rgCallStackItem)); +} + +stock __class_PackNativeParams(const &Array:irgParamTypes, iOffset, iArgc) { + ResetPack(__class_dpParams, true); + + new iParamsNum; iParamsNum = ArraySize(irgParamTypes); + for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { + new iParam; iParam = iOffset + iMethodParam; + new iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Type); + new iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Size); + new bool:bUseDefault; bUseDefault = iParam > iArgc; + + switch (iType) { + case CMP_Cell: { + WritePackCell(__class_dpParams, bUseDefault ? DEFAULT_CELL_VALUE : get_param_byref(iParam)); + } + case CMP_Float: { + WritePackFloat(__class_dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:get_param_byref(iParam)); + } + case CMP_String: { + if (bUseDefault) { + copy(__class_szBuffer, sizeof(__class_szBuffer), DEFAULT_STRING_VALUE); + } else { + get_string(iParam, __class_szBuffer, charsmax(__class_szBuffer)); + } + + WritePackString(__class_dpParams, __class_szBuffer); + } + case CMP_Array: { + if (bUseDefault) { + arrayset(__class_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + get_array(iParam, __class_rgiBuffer, iSize); + } + + WritePackArray(__class_dpParams, __class_rgiBuffer, iSize); + } + case CMP_FloatArray: { + if (bUseDefault) { + arrayset(__class_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); + } else { + get_array_f(iParam, __class_rgflBuffer, iSize); + } + + WritePackFloatArray(__class_dpParams, __class_rgflBuffer, iSize); + } + } + } +} + +stock Class:__class_GetCallMethodClass(const &ClassInstance:pInstance) { + if (!__class_IsMethodCallStackEmtpy()) { + static rgCallStackItem[__class_MethodCallStackItem]; __class_GetCurrentMethodFromCallStack(rgCallStackItem); + + if (rgCallStackItem[__class_MethodCallStackItem_Instance] == pInstance) { + return rgCallStackItem[__class_MethodCallStackItem_Class]; + } + } + + return StructGetCell(Struct:pInstance, __class_InstanceData_Class); +} From 21cf9f566643d1e81de2954867387193ed1c8158 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 10 Mar 2024 06:52:04 +0100 Subject: [PATCH 154/231] fix round end forward params --- api/rounds/api_rounds.sma | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/rounds/api_rounds.sma b/api/rounds/api_rounds.sma index dc3b45c..9aedf7e 100644 --- a/api/rounds/api_rounds.sma +++ b/api/rounds/api_rounds.sma @@ -225,8 +225,8 @@ public server_frame() { new iTeam; switch (iStatus) { - case WINSTATUS_CTS: iTeam = 1; - case WINSTATUS_TERRORISTS: iTeam = 2; + case WINSTATUS_TERRORISTS: iTeam = 1; + case WINSTATUS_CTS: iTeam = 2; case WINSTATUS_DRAW: iTeam = 3; } From 16ba4b9d9d71020d1a43e833ed378787145414d1 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 10 Mar 2024 17:10:26 +0100 Subject: [PATCH 155/231] fix system cleaning --- api/particles/api_particles.sma | 49 +++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/api/particles/api_particles.sma b/api/particles/api_particles.sma index bc66369..076cc87 100644 --- a/api/particles/api_particles.sma +++ b/api/particles/api_particles.sma @@ -72,6 +72,9 @@ enum Particle { Particle_AbsPositionVars[PositionVars] }; +new g_pCvarEnabled; +new bool:g_bEnabled; + new g_iszParticleClassName; new g_pTrace; @@ -92,6 +95,10 @@ public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_forward(FM_AddToFullPack, "FMHook_AddToFullPack", 0); + + g_pCvarEnabled = register_cvar("particles", "1"); + bind_pcvar_num(g_pCvarEnabled, g_bEnabled); + hook_cvar_change(g_pCvarEnabled, "CvarHook_Enabled"); register_concmd("particle_create", "Command_Create", ADMIN_CVAR); } @@ -502,11 +509,13 @@ public Float:Native_GetParticleLastThink(iPluginId, iArgc) { /*--------------------------------[ Forwards ]--------------------------------*/ public server_frame() { - static Float:flGameTime; flGameTime = get_gametime(); + if (g_bEnabled) { + static Float:flGameTime; flGameTime = get_gametime(); - if (g_flNextSystemsUpdate <= flGameTime) { - UpdateSystems(); - g_flNextSystemsUpdate = flGameTime + UPDATE_RATE; + if (g_flNextSystemsUpdate <= flGameTime) { + UpdateSystems(); + g_flNextSystemsUpdate = flGameTime + UPDATE_RATE; + } } } @@ -551,6 +560,12 @@ public FMHook_AddToFullPack(es, e, pEntity, pHost, hostflags, player, pSet) { return FMRES_IGNORED; } +public CvarHook_Enabled() { + if (!get_pcvar_num(g_pCvarEnabled)) { + FreeParticles(); + } +} + /*--------------------------------[ ParticleEffect Methods ]--------------------------------*/ Struct:@ParticleEffect_Create(const szName[], Float:flEmitRate, Float:flParticleLifeTime, Float:flVisibilityDistance, iMaxParticles, iEmitAmount, ParticleEffectFlag:iFlags) { @@ -658,6 +673,18 @@ Struct:@ParticleSystem_Create(const &Struct:sEffect, const Float:vecOrigin[3], c StructDestroy(this); } +@ParticleSystem_FreeParticles(const &Struct:this) { + static Array:irgParticles; irgParticles = StructGetCell(this, ParticleSystem_Particles); + static iParticlesNum; iParticlesNum = ArraySize(irgParticles); + + for (new iParticle = 0; iParticle < iParticlesNum; ++iParticle) { + static Struct:sParticle; sParticle = ArrayGetCell(irgParticles, iParticle); + if (sParticle == Invalid_Struct) continue; + @Particle_Destroy(sParticle); + ArraySetCell(irgParticles, iParticle, Invalid_Struct); + } +} + @ParticleSystem_Update(const &Struct:this) { static Float:flGameTime; flGameTime = get_gametime(); @@ -683,13 +710,13 @@ Struct:@ParticleSystem_Create(const &Struct:sEffect, const Float:vecOrigin[3], c // Emit particles if (bActive) { static Float:flNextEmit; flNextEmit = StructGetCell(this, ParticleSystem_NextEmit); - if (flNextEmit <= flGameTime) { + if (iVisibilityBits && flNextEmit <= flGameTime) { static Float:flEmitRate; flEmitRate = StructGetCell(sEffect, ParticleEffect_EmitRate); static iEmitAmount; iEmitAmount = StructGetCell(sEffect, ParticleEffect_EmitAmount); if (flEmitRate || !iParticlesNum) { for (new iBatchIndex = 0; iBatchIndex < iEmitAmount; ++iBatchIndex) { - @ParticleSystem_Emit(this, iBatchIndex); + @ParticleSystem_Emit(this, iBatchIndex); } } @@ -989,6 +1016,16 @@ UpdateSystems() { UTIL_ArrayFindAndDelete(g_irgSystems, Invalid_Struct); } +FreeParticles() { + static irgSystemsNum; irgSystemsNum = ArraySize(g_irgSystems); + + for (new iSystem = 0; iSystem < irgSystemsNum; ++iSystem) { + static Struct:sSystem; sSystem = ArrayGetCell(g_irgSystems, iSystem); + if (sSystem == Invalid_Struct) continue; + @ParticleSystem_FreeParticles(sSystem); + } +} + PositionVarsToPevMemberVec(PositionVars:iVariable) { switch (iVariable) { case PositionVars_Origin: return pev_origin; From 14201e3053d917f3f88f338eaab5a3782edfc6c4 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 10 Mar 2024 22:02:07 +0100 Subject: [PATCH 156/231] fix particle init --- api/particles/api_particles.sma | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/api/particles/api_particles.sma b/api/particles/api_particles.sma index 076cc87..a75c98f 100644 --- a/api/particles/api_particles.sma +++ b/api/particles/api_particles.sma @@ -786,6 +786,10 @@ Struct:@ParticleSystem_Create(const &Struct:sEffect, const Float:vecOrigin[3], c @ParticleSystem_AddParticle(this, sParticle); + @ParticleEffect_ExecuteHook(sEffect, ParticleEffectHook_Particle_Init, sParticle); + + @Particle_InitEntity(sParticle); + static Float:flEmitRate; flEmitRate = StructGetCell(sEffect, ParticleEffect_EmitRate); StructSetCell(this, ParticleSystem_NextEmit, flGameTime + (flEmitRate * flSpeed)); @@ -940,12 +944,6 @@ Struct:@Particle_Create(const &Struct:sSystem, bool:bAttached) { StructSetArray(this, Particle_PositionVars, Float:{0.0, 0.0, 0.0}, 3, PositionVars_Angles); StructSetArray(this, Particle_PositionVars, Float:{0.0, 0.0, 0.0}, 3, PositionVars_Velocity); - static Struct:sSystem; sSystem = StructGetCell(this, Particle_System); - static Struct:sEffect; sEffect = StructGetCell(sSystem, ParticleSystem_Effect); - @ParticleEffect_ExecuteHook(sEffect, ParticleEffectHook_Particle_Init, this); - - @Particle_InitEntity(this); - return this; } From 1cf689e03846499a217ee0faf3ee7bef478f5f59 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 10 Mar 2024 22:02:41 +0100 Subject: [PATCH 157/231] add cellclass util --- util/cellclass.inc | 839 +++++++++++++++++++++++++++------------------ 1 file changed, 511 insertions(+), 328 deletions(-) diff --git a/util/cellclass.inc b/util/cellclass.inc index 548ea0f..5993ffc 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -10,18 +10,25 @@ #define MAX_CLASS_NAME_LENGTH 64 #define MAX_METHOD_NAME_LENGTH 64 +#define MAX_METHOD_CALL_STACK_SIZE 1024 -#define DEFAULT_CELL_VALUE 0 -#define DEFAULT_FLOAT_VALUE 0.0 -#define DEFAULT_STRING_VALUE NULL_STRING +// Default argument values -#define __class_err_MethodAlreadyRegistered "Method ^"%s^" is already registered for the class!" -#define __class_err_VMethodArgumentsMismatch "Arguments mismatch in the overridden virtual method ^"%s^"." -#define __class_err_ClassIdNotFound "Class with id %d is not registered!" -#define __class_err_MethodNotFound "Method ^"%s^" is not registered for the instance (%d)!" -#define __class_err_CallMethodOutsideContext "Calling a base method is not allowed outside of the execution context!" -#define __class_err_ClassHasNoBaseClass "Cannot call base method of class without base class!" -#define __class_err_MethodNotFoundInBaseClass "Cannot find method ^"%s^" in base classes!" +#define __cls_DefaultValue_Cell 0 +#define __cls_DefaultValue_Float 0.0 +#define __cls_DefaultValue_String NULL_STRING + +// Error messages + +#define __cls_err_MethodAlreadyRegistered "Method ^"%s^" is already registered for the class!" +#define __cls_err_VMethodArgumentsMismatch "Arguments mismatch in the overridden virtual method ^"%s^"." +#define __cls_err_ClassIdNotFound "Class with id %d is not registered!" +#define __cls_err_MethodNotFound "Method ^"%s^" is not registered for the instance (%d)!" +#define __cls_err_CallMethodOutsideContext "Calling a base method is not allowed outside of the execution context!" +#define __cls_err_ClassHasNoBaseClass "Cannot call base method of class without base class!" +#define __cls_err_MethodNotFoundInBaseClass "Cannot find method ^"%s^" in base classes!" +#define __cls_err_MaxCallStackSizeExceeded "Maximum call stack size exceeded!" +#define __cls_err_ClassMethodCallEndWithoutStart "Call ClassInstanceCallMethodEnd but method call is not started" enum Class { Invalid_Class = -1 @@ -37,69 +44,101 @@ enum { CMP_Float, CMP_String, CMP_Array, - CMP_FloatArray + CMP_FloatArray, + CMP_ReadFromCellArray }; -enum __class_Data { - Class:__class_Data_Base, - Array:__class_Data_Hierarchy, - Trie:__class_Data_Methods +// Internal structures enum + +enum __cls_Data { + Class:__cls_Data_Base, + Trie:__cls_Data_Members, + Trie:__cls_Data_Methods }; -enum __class_MethodData { - __class_MethodData_Name[MAX_METHOD_NAME_LENGTH], - Class:__class_MethodData_Class, - __class_MethodData_PluginId, - __class_MethodData_FunctionId, - bool:__class_MethodData_IsVirtual, - Array:__class_MethodData_ParamTypes +enum __cls_MethodData { + __cls_MethodData_Name[MAX_METHOD_NAME_LENGTH], + Class:__cls_MethodData_Class, + __cls_MethodData_PluginId, + __cls_MethodData_FunctionId, + bool:__cls_MethodData_IsVirtual, + Array:__cls_MethodData_ParamTypes }; -enum __class_InstanceData { - Class:__class_InstanceData_Class, - Trie:__class_InstanceData_Members +enum __cls_InstanceData { + Class:__cls_InstanceData_Class, + Trie:__cls_InstanceData_Members }; -enum __class_MethodParamData { - __class_MethodParamData_Type = 0, - __class_MethodParamData_Size +enum __cls_MethodParamData { + __cls_MethodParamData_Type = 0, + __cls_MethodParamData_Size }; -enum __class_MethodCallStackItem { - ClassInstance:__class_MethodCallStackItem_Instance, - Class:__class_MethodCallStackItem_Class, - Struct:__class_MethodCallStackItem_Method +enum __cls_MethodCallStackItem { + __cls_MethodCallStackItem_Name[MAX_METHOD_NAME_LENGTH], + ClassInstance:__cls_MethodCallStackItem_Instance, + Class:__cls_MethodCallStackItem_Class, + Struct:__cls_MethodCallStackItem_Method }; -stock bool:__class_bInitialized = false; -new Array:__class_irgMethodCallStack; -new DataPack:__class_dpParams = Invalid_DataPack; +// Fast pseudo-stack implementation +stock Array:__cls_callstack[MAX_METHOD_CALL_STACK_SIZE][__cls_MethodCallStackItem]; +stock __cls_callstack_size = 0; + +// Variables to store info between Begin and End method calls +stock ClassInstance:__cls_call_pInstance = Invalid_ClassInstance; +stock Struct:__cls_call_sMethod = Invalid_Struct; +stock DataPack:__cls_call_dpParams = Invalid_DataPack; +stock Array:__cls_call_irgParamTypes = Invalid_Array; +stock __cls_call_iParamTypesNum = 0; +stock __cls_call_sParamsNum = 0; +// Buffers #if defined _datapack_included - new __class_szBuffer[MAX_STRING_LENGTH]; - new __class_rgiBuffer[MAX_STRING_LENGTH]; - new Float:__class_rgflBuffer[MAX_STRING_LENGTH]; + stock __cls_szBuffer[MAX_STRING_LENGTH]; + stock __cls_rgiBuffer[MAX_STRING_LENGTH]; + stock Float:__cls_rgflBuffer[MAX_STRING_LENGTH]; #endif -stock Class:ClassCreate(const &Class:sBaseClass = Invalid_Class) { - if (!__class_bInitialized) { - __class_Initialize(); - } +/*--------------------------------[ Class Functions] --------------------------------*/ - new Trie:itMethods = TrieCreate(); - - new Class:class = Class:StructCreate(__class_Data); - StructSetCell(Struct:class, __class_Data_Base, sBaseClass); - StructSetCell(Struct:class, __class_Data_Methods, itMethods); +stock Class:ClassCreate(const &Class:sBaseClass = Invalid_Class) { + new Class:class = Class:StructCreate(__cls_Data); + StructSetCell(Struct:class, __cls_Data_Base, sBaseClass); + StructSetCell(Struct:class, __cls_Data_Methods, TrieCreate()); + StructSetCell(Struct:class, __cls_Data_Members, TrieCreate()); return Class:class; } -stock ClassDestroy(const &Class:cClass) { - new Trie:itMethods = StructGetCell(Struct:cClass, __class_Data_Methods); +stock ClassDestroy(&Class:class) { + new Trie:itMethods = StructGetCell(Struct:class, __cls_Data_Methods); + + new TrieIter:iMethodsIter = TrieIterCreate(itMethods); + + while (!TrieIterEnded(iMethodsIter)) { + new Struct:sMethod; TrieIterGetCell(iMethodsIter, sMethod); + __cls_DestroyMethod(sMethod); + TrieIterNext(iMethodsIter); + } + + TrieIterDestroy(iMethodsIter); + TrieDestroy(itMethods); - StructDestroy(Struct:cClass); + new Trie:itMembers = StructGetCell(Struct:class, __cls_Data_Members); + TrieDestroy(itMembers); + + StructDestroy(Struct:class); + + class = Invalid_Class; +} + +stock ClassFreeStorages() { + if (__cls_call_dpParams != Invalid_DataPack) { + DestroyDataPack(__cls_call_dpParams); + } } stock Class:ClassAddMethod(const &Class:class, const szMethod[], const szCallback[], iPluginId = -1, bool:bVirtual = false, any:...) { @@ -107,354 +146,562 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const szCallbac new iArgc = numargs(); - new Class:sBaseClass = StructGetCell(Struct:class, __class_Data_Base); - new Trie:itMethods = StructGetCell(Struct:class, __class_Data_Methods); + new Class:sBaseClass = StructGetCell(Struct:class, __cls_Data_Base); + new Trie:itMethods = StructGetCell(Struct:class, __cls_Data_Methods); if (TrieKeyExists(itMethods, szMethod)) { - log_error(AMX_ERR_NATIVE, __class_err_MethodAlreadyRegistered, szMethod); + set_fail_state(__cls_err_MethodAlreadyRegistered, szMethod); return; } - new Array:irgParamTypes; irgParamTypes = ArrayCreate(_:__class_MethodParamData, iArgc - iArgOffset); + new Array:irgArgs = ArrayCreate(); - for (new iArg = iArgOffset; iArg <= iArgc; ++iArg) { - new rgParam[__class_MethodParamData]; - rgParam[__class_MethodParamData_Type] = getarg(iArg); - rgParam[__class_MethodParamData_Size] = 1; + for (new iArg = iArgOffset; iArg < iArgc; ++iArg) { + ArrayPushCell(irgArgs, getarg(iArg)); + } - switch (rgParam[__class_MethodParamData_Type]) { - case CMP_Array, CMP_FloatArray: { - rgParam[__class_MethodParamData_Size] = getarg(iArg + 1); - iArg++; - } - } + new Array:irgParamTypes; irgParamTypes = ArrayCreate(_:__cls_MethodParamData, iArgc - iArgOffset); + __cls_ParseParamTypes(irgArgs, irgParamTypes); - ArrayPushArray(irgParamTypes, rgParam[any:0], _:__class_MethodParamData); - } + ArrayDestroy(irgArgs); if (sBaseClass != Invalid_Class) { new Struct:sBaseMethod = _cellclass_FindClassMethodInHierarchy(sBaseClass, szMethod); if (sBaseMethod != Invalid_Struct) { - if (StructGetCell(sBaseMethod, __class_MethodData_IsVirtual)) { - new Array:irgBaseParamTypes = StructGetCell(sBaseMethod, __class_MethodData_ParamTypes); + if (StructGetCell(sBaseMethod, __cls_MethodData_IsVirtual)) { + new Array:irgBaseParamTypes = StructGetCell(sBaseMethod, __cls_MethodData_ParamTypes); if (!_cellclass_CompareParamTypes(irgBaseParamTypes, irgParamTypes)) { - log_error(AMX_ERR_NATIVE, __class_err_VMethodArgumentsMismatch, szMethod); + set_fail_state(__cls_err_VMethodArgumentsMismatch, szMethod); return; } } } } - new Struct:sMethod = StructCreate(__class_MethodData); - StructSetCell(sMethod, __class_MethodData_Class, class); - StructSetString(sMethod, __class_MethodData_Name, szMethod); - StructSetCell(sMethod, __class_MethodData_PluginId, iPluginId); - StructSetCell(sMethod, __class_MethodData_FunctionId, get_func_id(szCallback, iPluginId)); - StructSetCell(sMethod, __class_MethodData_ParamTypes, irgParamTypes); - StructSetCell(sMethod, __class_MethodData_IsVirtual, bVirtual); + new Struct:sMethod = StructCreate(__cls_MethodData); + StructSetCell(sMethod, __cls_MethodData_Class, class); + StructSetString(sMethod, __cls_MethodData_Name, szMethod); + StructSetCell(sMethod, __cls_MethodData_PluginId, iPluginId); + StructSetCell(sMethod, __cls_MethodData_FunctionId, get_func_id(szCallback, iPluginId)); + StructSetCell(sMethod, __cls_MethodData_ParamTypes, irgParamTypes); + StructSetCell(sMethod, __cls_MethodData_IsVirtual, bVirtual); TrieSetCell(itMethods, szMethod, sMethod); } -stock ClassInstance:ClassGetCurrentInstance() { - if (__class_IsMethodCallStackEmtpy()) { - log_error(AMX_ERR_NATIVE, __class_err_CallMethodOutsideContext); +stock Class:ClassGetBaseClass(const &Class:class) { + return StructGetCell(Struct:class, __cls_Data_Base); +} + +stock bool:ClassHasMetadata(const &Class:class, const szMember[]) { + static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + + return TrieKeyExists(itMembers, szMember); +} + +stock ClassDeleteMetadata(const &Class:class, const szMember[]) { + static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + + TrieDeleteKey(itMembers, szMember); +} + +stock any:ClassGetMetadata(const &Class:class, const szMember[]) { + static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + + static any:value; + return TrieGetCell(itMembers, szMember, value) ? value : 0; +} + +stock ClassSetMetadata(const &Class:class, const szMember[], any:value, bool:bReplace = true) { + static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + + TrieSetCell(itMembers, szMember, value, bReplace); +} + +stock bool:ClassGetMetadataString(const &Class:class, const szMember[], szOut[], iMaxLen) { + static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + + copy(szOut, iMaxLen, NULL_STRING); + return !!TrieGetString(itMembers, szMember, szOut, iMaxLen); +} + +stock ClassSetMetadataString(const &Class:class, const szMember[], const szValue[], bool:bReplace = true) { + static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + + TrieSetString(itMembers, szMember, szValue, bReplace); +} + +stock bool:ClassGetMetadataArray(const &Class:class, const szMember[], any:rgOut[], iLen) { + static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + + return !!TrieGetArray(itMembers, szMember, rgOut, iLen); +} + +stock ClassSetMetadataArray(const &Class:class, const szMember[], const any:rgValue[], iLen, bool:bReplace = true) { + static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + + TrieSetArray(itMembers, szMember, rgValue, iLen, bReplace); +} + +/*--------------------------------[ Class Instance Functions] --------------------------------*/ + +stock ClassInstance:ClassInstanceCreate(const &Class:class) { + static Struct:sInstance; sInstance = StructCreate(__cls_InstanceData); + StructSetCell(sInstance, __cls_InstanceData_Class, class); + StructSetCell(sInstance, __cls_InstanceData_Members, TrieCreate()); + + return ClassInstance:sInstance; +} + +stock ClassInstanceDestroy(&ClassInstance:pInstance) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + TrieDestroy(itMembers); + + StructDestroy(Struct:pInstance); + + pInstance = Invalid_ClassInstance; +} + +stock ClassInstance:ClassInstanceGetCurrent() { + if (__cls_IsMethodCallStackEmpty()) { + set_fail_state(__cls_err_CallMethodOutsideContext); return Invalid_ClassInstance; } - static rgCallStackItem[__class_MethodCallStackItem]; __class_GetCurrentMethodFromCallStack(rgCallStackItem); + static rgCallStackItem[__cls_MethodCallStackItem]; __cls_GetCurrentMethodFromCallStack(rgCallStackItem); - return rgCallStackItem[__class_MethodCallStackItem_Instance]; + return rgCallStackItem[__cls_MethodCallStackItem_Instance]; } -stock ClassCallMethod(const &ClassInstance:pInstance, const szMethod[], any:...) { - static Class:class; class = __class_GetCallMethodClass(pInstance); +stock Class:ClassInstanceGetCurrentClass() { + if (__cls_IsMethodCallStackEmpty()) { + set_fail_state(__cls_err_CallMethodOutsideContext); + return Invalid_Class; + } - static Struct:sMethod; sMethod = _cellclass_FindClassMethodInHierarchy(class, szMethod); + static rgCallStackItem[__cls_MethodCallStackItem]; __cls_GetCurrentMethodFromCallStack(rgCallStackItem); - // Check for virtual method call - if (!__class_IsMethodCallStackEmtpy()) { - // If we are already in the execution context and the method is virual jump to top level context - if (StructGetCell(sMethod, __class_MethodData_IsVirtual)) { - static Class:sInstanceClass; sInstanceClass = StructGetCell(Struct:pInstance, __class_InstanceData_Class); - sMethod = _cellclass_FindClassMethodInHierarchy(sInstanceClass, szMethod); - } - } + return rgCallStackItem[__cls_MethodCallStackItem_Class]; +} - #if defined _datapack_included - ResetPack(__class_dpParams, true); - - new Array:irgParamTypes; irgParamTypes = StructGetCell(sMethod, __class_MethodData_ParamTypes); +stock ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], any:...) { + ClassInstanceCallMethodBegin(pInstance, szMethod); - new iParamsNum; iParamsNum = ArraySize(irgParamTypes); - for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { - new iParam; iParam = 2 + iMethodParam; - new iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Type); - new iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Size); - new bool:bUseDefault; bUseDefault = iParam > numargs(); + #if defined _datapack_included + for (new iMethodParam = 0; iMethodParam < __cls_call_iParamTypesNum; ++iMethodParam) { + static iParam; iParam = 2 + iMethodParam; + static iType; iType = ArrayGetCell(__cls_call_irgParamTypes, iMethodParam, _:__cls_MethodParamData_Type); + static iArgc; iArgc = ArrayGetCell(__cls_call_irgParamTypes, iMethodParam, _:__cls_MethodParamData_Size); + static bool:bUseDefault; bUseDefault = iParam > numargs(); switch (iType) { case CMP_Cell: { - WritePackCell(__class_dpParams, bUseDefault ? DEFAULT_CELL_VALUE : getarg(iParam)); + ClassInstanceCallMethodPushParamCell(bUseDefault ? __cls_DefaultValue_Cell : getarg(iParam)); } case CMP_Float: { - WritePackFloat(__class_dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:getarg(iParam)); + ClassInstanceCallMethodPushParamFloat(bUseDefault ? __cls_DefaultValue_Float : Float:getarg(iParam)); } case CMP_String: { if (bUseDefault) { - copy(__class_szBuffer, sizeof(__class_szBuffer), DEFAULT_STRING_VALUE); + copy(__cls_szBuffer, sizeof(__cls_szBuffer), __cls_DefaultValue_String); } else { - for (new i = 0; i < charsmax(__class_szBuffer); ++i) { - __class_szBuffer[i] = getarg(iParam, i); - if (__class_szBuffer[i] == '^0') break; + for (new i = 0; i < charsmax(__cls_szBuffer); ++i) { + __cls_szBuffer[i] = getarg(iParam, i); + if (__cls_szBuffer[i] == '^0') break; } } - WritePackString(__class_dpParams, __class_szBuffer); + ClassInstanceCallMethodPushParamString(__cls_szBuffer); } case CMP_Array: { if (bUseDefault) { - arrayset(__class_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); + arrayset(__cls_rgiBuffer, __cls_DefaultValue_Float, iArgc); } else { - for (new i = 0; i < iSize; ++i) { - __class_rgiBuffer[i] = getarg(iParam, i); + for (new i = 0; i < iArgc; ++i) { + __cls_rgiBuffer[i] = getarg(iParam, i); } } - WritePackArray(__class_dpParams, __class_rgiBuffer, iSize); + ClassInstanceCallMethodPushParamArray(__cls_rgiBuffer, iArgc); } case CMP_FloatArray: { if (bUseDefault) { - arrayset(__class_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); + arrayset(__cls_rgflBuffer, __cls_DefaultValue_Float, iArgc); } else { - for (new i = 0; i < iSize; ++i) { - __class_rgflBuffer[i] = Float:getarg(iParam, i); + for (new i = 0; i < iArgc; ++i) { + __cls_rgflBuffer[i] = Float:getarg(iParam, i); } } - WritePackFloatArray(__class_dpParams, __class_rgflBuffer, iSize); + ClassInstanceCallMethodPushParamFloatArray(__cls_rgflBuffer, iArgc); } } } #endif - #if defined _datapack_included - ResetPack(__class_dpParams); - #endif - - new any:result; result = __class_ExecuteMethod(sMethod, pInstance, __class_dpParams); - - return result; + return ClassInstanceCallMethodEnd(); } -stock any:ClassCallBaseMethod(any:...) { - if (__class_IsMethodCallStackEmtpy()) { - log_error(AMX_ERR_NATIVE, __class_err_CallMethodOutsideContext); - return 0; - } - - static rgCallStackItem[__class_MethodCallStackItem]; __class_GetCurrentMethodFromCallStack(rgCallStackItem); - - static Class:class; class = StructGetCell(Struct:rgCallStackItem[__class_MethodCallStackItem_Class], __class_Data_Base); - - if (class == Invalid_Class) { - log_error(AMX_ERR_NATIVE, __class_err_ClassHasNoBaseClass); - return 0; - } - - new szMethod[MAX_METHOD_NAME_LENGTH]; StructGetString(rgCallStackItem[__class_MethodCallStackItem_Method], __class_MethodData_Name, szMethod, charsmax(szMethod)); - - static Struct:sMethod; sMethod = _cellclass_FindClassMethodInHierarchy(class, szMethod); - - if (sMethod == Invalid_Struct) { - log_error(AMX_ERR_NATIVE, __class_err_MethodNotFoundInBaseClass, szMethod); - return 0; - } +stock ClassInstanceCallBaseMethod(any:...) { + ClassInstanceCallMethodBeginBase(); #if defined _datapack_included - ResetPack(__class_dpParams, true); - - new Array:irgParamTypes; irgParamTypes = StructGetCell(sMethod, __class_MethodData_ParamTypes); - - new iParamsNum; iParamsNum = ArraySize(irgParamTypes); - for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { - new iParam; iParam = 0 + iMethodParam; - new iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Type); - new iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Size); - new bool:bUseDefault; bUseDefault = iParam > numargs(); + for (new iMethodParam = 0; iMethodParam < __cls_call_iParamTypesNum; ++iMethodParam) { + static iParam; iParam = 0 + iMethodParam; + static iType; iType = ArrayGetCell(__cls_call_irgParamTypes, iMethodParam, _:__cls_MethodParamData_Type); + static iArgc; iArgc = ArrayGetCell(__cls_call_irgParamTypes, iMethodParam, _:__cls_MethodParamData_Size); + static bool:bUseDefault; bUseDefault = iParam > numargs(); switch (iType) { case CMP_Cell: { - WritePackCell(__class_dpParams, bUseDefault ? DEFAULT_CELL_VALUE : getarg(iParam)); + ClassInstanceCallMethodPushParamCell(bUseDefault ? __cls_DefaultValue_Cell : getarg(iParam)); } case CMP_Float: { - WritePackFloat(__class_dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:getarg(iParam)); + ClassInstanceCallMethodPushParamFloat(bUseDefault ? __cls_DefaultValue_Float : Float:getarg(iParam)); } case CMP_String: { if (bUseDefault) { - copy(__class_szBuffer, sizeof(__class_szBuffer), DEFAULT_STRING_VALUE); + copy(__cls_szBuffer, sizeof(__cls_szBuffer), __cls_DefaultValue_String); } else { - for (new i = 0; i < charsmax(__class_szBuffer); ++i) { - __class_szBuffer[i] = getarg(iParam, i); - if (__class_szBuffer[i] == '^0') break; + for (new i = 0; i < charsmax(__cls_szBuffer); ++i) { + __cls_szBuffer[i] = getarg(iParam, i); + if (__cls_szBuffer[i] == '^0') break; } } - WritePackString(__class_dpParams, __class_szBuffer); + ClassInstanceCallMethodPushParamString(__cls_szBuffer); } case CMP_Array: { if (bUseDefault) { - arrayset(__class_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); + arrayset(__cls_rgiBuffer, __cls_DefaultValue_Float, iArgc); } else { - for (new i = 0; i < iSize; ++i) { - __class_rgiBuffer[i] = getarg(iParam, i); + for (new i = 0; i < iArgc; ++i) { + __cls_rgiBuffer[i] = getarg(iParam, i); } } - WritePackArray(__class_dpParams, __class_rgiBuffer, iSize); + ClassInstanceCallMethodPushParamArray(__cls_rgiBuffer, iArgc); } case CMP_FloatArray: { if (bUseDefault) { - arrayset(__class_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); + arrayset(__cls_rgflBuffer, __cls_DefaultValue_Float, iArgc); } else { - for (new i = 0; i < iSize; ++i) { - __class_rgflBuffer[i] = Float:getarg(iParam, i); + for (new i = 0; i < iArgc; ++i) { + __cls_rgflBuffer[i] = Float:getarg(iParam, i); } } - WritePackFloatArray(__class_dpParams, __class_rgflBuffer, iSize); + ClassInstanceCallMethodPushParamFloatArray(__cls_rgflBuffer, iArgc); } } } #endif - #if defined _datapack_included - ResetPack(__class_dpParams); - #endif + return ClassInstanceCallMethodEnd(); +} - new any:result; result = __class_ExecuteMethod(sMethod, rgCallStackItem[__class_MethodCallStackItem_Instance], __class_dpParams); +stock ClassInstanceCallMethodBegin(const &ClassInstance:pInstance, const szMethod[]) { + __cls_InitMethodCall(pInstance, szMethod); + + // Check for virtual method call + // If we are already in the execution context and the method is virual jump to top level context + if (!__cls_IsMethodCallStackEmpty() && StructGetCell(__cls_call_sMethod, __cls_MethodData_IsVirtual)) { + static Class:sInstanceClass; sInstanceClass = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + if (sInstanceClass != StructGetCell(__cls_call_sMethod, __cls_MethodData_Class)) { + __cls_call_sMethod = _cellclass_FindClassMethodInHierarchy(sInstanceClass, szMethod); + } + } + + if (__cls_call_sMethod == Invalid_Struct) { + set_fail_state(__cls_err_MethodNotFound, szMethod, pInstance); + return; + } +} + +stock ClassInstanceCallMethodBeginBase(any:...) { + if (__cls_IsMethodCallStackEmpty()) { + set_fail_state(__cls_err_CallMethodOutsideContext); + return; + } + + static rgCallStackItem[__cls_MethodCallStackItem]; __cls_GetCurrentMethodFromCallStack(rgCallStackItem); + + static Class:class; class = StructGetCell(Struct:rgCallStackItem[__cls_MethodCallStackItem_Class], __cls_Data_Base); + if (class == Invalid_Class) { + set_fail_state(__cls_err_ClassHasNoBaseClass); + return; + } + + static szMethod[MAX_METHOD_NAME_LENGTH]; StructGetString(rgCallStackItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Name, szMethod, charsmax(szMethod)); + + __cls_InitMethodCall(rgCallStackItem[__cls_MethodCallStackItem_Instance], szMethod, class); + +} + +stock any:ClassInstanceCallMethodEnd() { + if (__cls_call_sMethod == Invalid_Struct) { + set_fail_state(__cls_err_ClassMethodCallEndWithoutStart); + return 0; + } + + __cls_ValidateParams(); + + ResetPack(__cls_call_dpParams); + + static any:result; result = __cls_ExecuteMethod(__cls_call_pInstance, __cls_call_sMethod, __cls_call_dpParams, __cls_call_irgParamTypes); + + if (__cls_IsMethodCallStackEmpty()) { + __cls_FreeMethodCall(); + } return result; } -stock ClassInstance:ClassCreateInstance(const &Class:class) { - static Struct:pInstance; pInstance = StructCreate(__class_InstanceData); - StructSetCell(pInstance, __class_InstanceData_Class, class); - StructSetCell(pInstance, __class_InstanceData_Members, TrieCreate()); +stock ClassInstanceCallMethodPushParamCell(iValue) { + if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; + WritePackCell(__cls_call_dpParams, iValue); + __cls_call_sParamsNum++; +} - return ClassInstance:pInstance; +stock ClassInstanceCallMethodPushParamFloat(Float:flValue) { + if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; + WritePackFloat(__cls_call_dpParams, flValue); + __cls_call_sParamsNum++; } -stock ClassDestroyInstance(&ClassInstance:pInstance) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); - TrieDestroy(itMembers); +stock ClassInstanceCallMethodPushParamString(const szValue[]) { + if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; + WritePackString(__cls_call_dpParams, szValue); + __cls_call_sParamsNum++; +} - StructDestroy(pInstance); +stock ClassInstanceCallMethodPushParamArray(const rgValue[], iArgc) { + if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; + WritePackArray(__cls_call_dpParams, rgValue, iArgc); + __cls_call_sParamsNum++; +} - pInstance = Invalid_Struct; +stock ClassInstanceCallMethodPushParamFloatArray(const Float:rgValue[], iArgc) { + if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; + WritePackFloatArray(__cls_call_dpParams, rgValue, iArgc); + __cls_call_sParamsNum++; +} + +stock ClassInstanceCallMethodPushNativeParam(iParam) { + if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; + + static iType; iType = ArrayGetCell(__cls_call_irgParamTypes, __cls_call_sParamsNum, _:__cls_MethodParamData_Type); + static iArgc; iArgc = ArrayGetCell(__cls_call_irgParamTypes, __cls_call_sParamsNum, _:__cls_MethodParamData_Size); + + switch (iType) { + case CMP_Cell: { + WritePackCell(__cls_call_dpParams, get_param_byref(iParam)); + } + case CMP_Float: { + WritePackFloat(__cls_call_dpParams, Float:get_param_byref(iParam)); + } + case CMP_String: { + get_string(iParam, __cls_szBuffer, charsmax(__cls_szBuffer)); + WritePackString(__cls_call_dpParams, __cls_szBuffer); + } + case CMP_Array: { + get_array(iParam, __cls_rgiBuffer, iArgc); + WritePackArray(__cls_call_dpParams, __cls_rgiBuffer, iArgc); + } + case CMP_FloatArray: { + get_array_f(iParam, __cls_rgflBuffer, iArgc); + WritePackFloatArray(__cls_call_dpParams, __cls_rgflBuffer, iArgc); + } + } + + __cls_call_sParamsNum++; +} + +stock Class:ClassInstanceGetClass(const &ClassInstance:pInstance) { + return StructGetCell(Struct:pInstance, __cls_InstanceData_Class); } stock bool:ClassInstanceHasMember(const &ClassInstance:pInstance, const szMember[]) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); return TrieKeyExists(itMembers, szMember); } -stock ClassDelInstanceeteMember(const &ClassInstance:pInstance, const szMember[]) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); +stock ClassInstanceDeleteMember(const &ClassInstance:pInstance, const szMember[]) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); TrieDeleteKey(itMembers, szMember); } stock any:ClassInstanceGetMember(const &ClassInstance:pInstance, const szMember[]) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); static any:value; return TrieGetCell(itMembers, szMember, value) ? value : 0; } -stock ClassInstanceSetMember(const &ClassInstance:pInstance, const szMember[], any:value) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); +stock ClassInstanceSetMember(const &ClassInstance:pInstance, const szMember[], any:value, bool:bReplace = true) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); - TrieSetCell(itMembers, szMember, value); + TrieSetCell(itMembers, szMember, value, bReplace); } -stock bool:ClassInstanceGetMemberVec(const &ClassInstance:pInstance, const szMember[], Float:vecOut[]) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); +stock bool:ClassInstanceGetMemberString(const &ClassInstance:pInstance, const szMember[], szOut[], iMaxLen) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); - return !!TrieGetArray(itMembers, szMember, vecOut, 3); + copy(szOut, iMaxLen, NULL_STRING); + return !!TrieGetString(itMembers, szMember, szOut, iMaxLen); } -stock ClassInstanceSetMemberVec(const &ClassInstance:pInstance, const szMember[], const Float:vecValue[3]) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); +stock ClassInstanceSetMemberString(const &ClassInstance:pInstance, const szMember[], const szValue[], bool:bReplace = true) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); - TrieSetArray(itMembers, szMember, vecValue, 3); + TrieSetString(itMembers, szMember, szValue, bReplace); } -stock bool:ClassInstanceGetMemberString(const &ClassInstance:pInstance, const szMember[], szOut[], iMaxLen) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); +stock bool:ClassInstanceGetMemberArray(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iLen) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); - copy(szOut, iMaxLen, NULL_STRING); - return !!TrieGetString(itMembers, szMember, szOut, iMaxLen); + return !!TrieGetArray(itMembers, szMember, rgOut, iLen); } -stock ClassInstanceSetMemberString(const &ClassInstance:pInstance, const szMember[], const szValue[]) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); +stock ClassInstanceSetMemberArray(const &ClassInstance:pInstance, const szMember[], const any:rgValue[], iLen, bool:bReplace = true) { + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); - TrieSetString(itMembers, szMember, szValue); + TrieSetArray(itMembers, szMember, rgValue, iLen, bReplace); } -stock bool:ClassInstanceGetMemberArray(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iLen) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); +stock bool:ClassInstanceIsInstanceOf(const &ClassInstance:pInstance, const &Class:class) { + new Class:sCurrentClass = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); - return !!TrieGetArray(itMembers, szMember, rgOut, iLen); + do { + if (sCurrentClass == class) return true; + sCurrentClass = StructGetCell(Struct:sCurrentClass, __cls_Data_Base); + } while (sCurrentClass != Invalid_Class); + + return false; } -stock ClassInstanceSetMemberArray(const &ClassInstance:pInstance, const szMember[], const rgValue[], iLen) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __class_InstanceData_Members); +/*--------------------------------[ Internal Functions] --------------------------------*/ + +stock __cls_ParseParamTypes(Array:irgArgs, &Array:irgParamTypes) { + new iArgc = ArraySize(irgArgs); + + new rgParam[__cls_MethodParamData]; + + for (new iArg = 0; iArg < iArgc; ++iArg) { + rgParam[__cls_MethodParamData_Type] = ArrayGetCell(irgArgs, iArg); + rgParam[__cls_MethodParamData_Size] = 1; + + switch (rgParam[__cls_MethodParamData_Type]) { + case CMP_Array, CMP_FloatArray: { + rgParam[__cls_MethodParamData_Size] = ArrayGetCell(irgArgs, iArg + 1); + iArg++; + } + case CMP_ReadFromCellArray: { + rgParam[__cls_MethodParamData_Size] = 0; - TrieSetArray(itMembers, szMember, rgValue, iLen); + new Array:irgExtraParamTypes = ArrayGetCell(irgArgs, iArg + 1); + iArg++; + __cls_ParseParamTypes(irgExtraParamTypes, irgParamTypes); + } + } + + if (rgParam[__cls_MethodParamData_Size]) { + ArrayPushArray(irgParamTypes, rgParam[any:0], _:__cls_MethodParamData); + } + } } +stock __cls_ValidateParams() { + for (new iParam = __cls_call_sParamsNum; iParam < __cls_call_iParamTypesNum; ++iParam) { + static iType; iType = ArrayGetCell(__cls_call_irgParamTypes, iParam, _:__cls_MethodParamData_Type); + static iSize; iSize = ArrayGetCell(__cls_call_irgParamTypes, iParam, _:__cls_MethodParamData_Size); -__class_Initialize() { - __class_irgMethodCallStack = ArrayCreate(_:__class_MethodCallStackItem); - __class_bInitialized = true; + switch (iType) { + case CMP_Cell: { + WritePackCell(__cls_call_dpParams, __cls_DefaultValue_Cell); + } + case CMP_Float: { + WritePackFloat(__cls_call_dpParams, __cls_DefaultValue_Float); + } + case CMP_String: { + WritePackString(__cls_call_dpParams, __cls_DefaultValue_String); + } + case CMP_Array: { + arrayset(__cls_rgiBuffer, __cls_DefaultValue_Cell, iSize); + WritePackArray(__cls_call_dpParams, __cls_rgiBuffer, iSize); + } + case CMP_FloatArray: { + arrayset(__cls_rgflBuffer, __cls_DefaultValue_Float, iSize); + WritePackFloatArray(__cls_call_dpParams, __cls_rgflBuffer, iSize); + } + } + } +} - #if defined _datapack_included - __class_dpParams = CreateDataPack(); - #endif +stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], const &Class:class = Invalid_Class) { + static Class:callClass; callClass = class == Invalid_Class ? __cls_GetCallMethodClass(pInstance) : class; + + __cls_call_pInstance = pInstance; + __cls_call_sMethod = _cellclass_FindClassMethodInHierarchy(callClass, szMethod); + __cls_call_sParamsNum = 0; + __cls_call_irgParamTypes = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes); + __cls_call_iParamTypesNum = ArraySize(__cls_call_irgParamTypes); + + if (__cls_call_sMethod == Invalid_Struct) { + set_fail_state(__cls_err_MethodNotFoundInBaseClass, szMethod); + return; + } + + static DataPack:dpParams; dpParams = __cls_GetDataPackParams(); + ResetPack(dpParams); +} + +stock __cls_FreeMethodCall() { + __cls_call_pInstance = Invalid_ClassInstance; + __cls_call_sMethod = Invalid_Struct; + __cls_call_sParamsNum = 0; + __cls_call_irgParamTypes = Invalid_Array; + __cls_call_iParamTypesNum = 0; +} + +stock __cls_DestroyMethod(&Struct:sMethod) { + new Array:irgParamTypes; StructGetCell(sMethod, __cls_MethodData_ParamTypes); + + if (irgParamTypes != Invalid_Array) { + ArrayDestroy(irgParamTypes); + } + + StructDestroy(sMethod); } stock _cellclass_CompareParamTypes(const &Array:irgParams, const &Array:irgOtherParams) { - new iSize = ArraySize(irgParams); + new iArgc = ArraySize(irgParams); new iOtherSize = ArraySize(irgOtherParams); - if (iSize != iOtherSize) return false; + if (iArgc != iOtherSize) return false; - for (new i = 0; i < iSize; ++i) { + for (new i = 0; i < iArgc; ++i) { if (ArrayGetCell(irgParams, i) != ArrayGetCell(irgOtherParams, i)) return false; } return true; } -stock __class_ExecuteMethod(const &Struct:sMethod, ClassInstance:pInstance, const DataPack:dpParams) { +stock __cls_ExecuteMethod(const &ClassInstance:pInstance, const &Struct:sMethod, const &DataPack:dpParams, const &Array:irgParamTypes) { new iResult = 0; - static Class:class; class = StructGetCell(sMethod, __class_MethodData_Class); - - __class_PushMethodToCallStack(sMethod, pInstance, class); + __cls_PushMethodToCallStack(sMethod, pInstance); - if (callfunc_begin_i(StructGetCell(sMethod, __class_MethodData_FunctionId), StructGetCell(sMethod, __class_MethodData_PluginId)) == 1) { + if (callfunc_begin_i(StructGetCell(sMethod, __cls_MethodData_FunctionId), StructGetCell(sMethod, __cls_MethodData_PluginId)) == 1) { #if defined _datapack_included - static Array:irgParamTypes; irgParamTypes = StructGetCell(sMethod, __class_MethodData_ParamTypes); - - if (irgParamTypes != Invalid_Array) { + if (dpParams != Invalid_DataPack) { static iParamsNum; iParamsNum = ArraySize(irgParamTypes); for (new iParam = 0; iParam < iParamsNum; ++iParam) { - static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:__class_MethodParamData_Type); + static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:__cls_MethodParamData_Type); + static iSize; iSize = ArrayGetCell(irgParamTypes, iParam, _:__cls_MethodParamData_Size); switch (iType) { case CMP_Cell: { @@ -466,16 +713,16 @@ stock __class_ExecuteMethod(const &Struct:sMethod, ClassInstance:pInstance, cons callfunc_push_float(flValue); } case CMP_String: { - ReadPackString(dpParams, __class_szBuffer, charsmax(__class_szBuffer)); - callfunc_push_str(__class_szBuffer); + ReadPackString(dpParams, __cls_szBuffer, charsmax(__cls_szBuffer)); + callfunc_push_str(__cls_szBuffer); } case CMP_Array: { - static iLen; iLen = ReadPackArray(dpParams, __class_rgiBuffer); - callfunc_push_array(__class_rgiBuffer, iLen, false); + static iLen; iLen = ReadPackArray(dpParams, __cls_rgiBuffer, iSize); + callfunc_push_array(__cls_rgiBuffer, iLen, false); } case CMP_FloatArray: { - static iLen; iLen = ReadPackFloatArray(dpParams, __class_rgflBuffer); - callfunc_push_array(_:__class_rgflBuffer, iLen, false); + static iLen; iLen = ReadPackFloatArray(dpParams, __cls_rgflBuffer, iSize); + callfunc_push_array(_:__cls_rgflBuffer, iLen, false); } } } @@ -494,123 +741,59 @@ stock Struct:_cellclass_FindClassMethodInHierarchy(const &Class:class, const szM new Class:sCurrentClass = class; do { - static Trie:itMethods; itMethods = StructGetCell(Struct:class, __class_Data_Methods); + static Trie:itMethods; itMethods = StructGetCell(Struct:sCurrentClass, __cls_Data_Methods); static Struct:sMethod; if (TrieGetCell(itMethods, szMethod, sMethod)) return sMethod; - sCurrentClass = StructGetCell(Struct:sCurrentClass, __class_Data_Base); + sCurrentClass = StructGetCell(Struct:sCurrentClass, __cls_Data_Base); } while (sCurrentClass != Invalid_Class); return Invalid_Struct; } -stock Array:__class_GetClassHierarchy(const &Class:class) { - static Array:irgHierarchy; irgHierarchy = StructGetCell(class, __class_Data_Hierarchy); - - if (irgHierarchy == Invalid_Array) { - irgHierarchy = __class_CreateHierarchyList(class); - StructSetCell(class, __class_Data_Hierarchy, irgHierarchy); - } - - return irgHierarchy; +stock bool:__cls_IsMethodCallStackEmpty() { + return !__cls_callstack_size; } -stock Array:__class_CreateHierarchyList(const &Class:class) { - new Array:irgHierarchy = ArrayCreate(); - - new Class:sCurrentClass = class; - - do { - if (sCurrentClass == class) { - ArrayPushCell(irgHierarchy, sCurrentClass); - } else { - ArrayInsertCellBefore(irgHierarchy, 0, sCurrentClass); - } - - sCurrentClass = StructGetCell(Struct:class, __class_Data_Base); - } while (sCurrentClass != Invalid_Class); - - return irgHierarchy; -} +stock __cls_PushMethodToCallStack(const Struct:sMethod, const &ClassInstance:pInstance) { + if (__cls_callstack_size >= MAX_METHOD_CALL_STACK_SIZE) { + set_fail_state(__cls_err_MaxCallStackSizeExceeded); + } -stock bool:__class_IsMethodCallStackEmtpy() { - return !ArraySize(__class_irgMethodCallStack); -} + __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Instance] = any:pInstance; + __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Class] = any:StructGetCell(sMethod, __cls_MethodData_Class); + __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Method] = any:sMethod; -stock __class_PushMethodToCallStack(const Struct:sMethod, const &ClassInstance:pInstance, const &Class:class) { - static rgCallStackItem[__class_MethodCallStackItem]; - rgCallStackItem[__class_MethodCallStackItem_Instance] = pInstance; - rgCallStackItem[__class_MethodCallStackItem_Class] = class; - rgCallStackItem[__class_MethodCallStackItem_Method] = sMethod; - - ArrayPushArray(__class_irgMethodCallStack, rgCallStackItem[__class_MethodCallStackItem:0], sizeof(rgCallStackItem)); + __cls_callstack_size++; } stock __celstruct_PopMethodFromCallStack() { - ArrayDeleteItem(__class_irgMethodCallStack, ArraySize(__class_irgMethodCallStack) - 1); + __cls_callstack_size--; } -stock __class_GetCurrentMethodFromCallStack(rgCallStackItem[__class_MethodCallStackItem]) { - ArrayGetArray(__class_irgMethodCallStack, ArraySize(__class_irgMethodCallStack) - 1, rgCallStackItem[__class_MethodCallStackItem:0], sizeof(rgCallStackItem)); +stock __cls_GetCurrentMethodFromCallStack(rgCallStackItem[__cls_MethodCallStackItem]) { + rgCallStackItem[__cls_MethodCallStackItem_Instance] = __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Instance]; + rgCallStackItem[__cls_MethodCallStackItem_Class] = __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Class]; + rgCallStackItem[__cls_MethodCallStackItem_Method] = __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Method]; } -stock __class_PackNativeParams(const &Array:irgParamTypes, iOffset, iArgc) { - ResetPack(__class_dpParams, true); - - new iParamsNum; iParamsNum = ArraySize(irgParamTypes); - for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { - new iParam; iParam = iOffset + iMethodParam; - new iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Type); - new iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:__class_MethodParamData_Size); - new bool:bUseDefault; bUseDefault = iParam > iArgc; - - switch (iType) { - case CMP_Cell: { - WritePackCell(__class_dpParams, bUseDefault ? DEFAULT_CELL_VALUE : get_param_byref(iParam)); - } - case CMP_Float: { - WritePackFloat(__class_dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:get_param_byref(iParam)); - } - case CMP_String: { - if (bUseDefault) { - copy(__class_szBuffer, sizeof(__class_szBuffer), DEFAULT_STRING_VALUE); - } else { - get_string(iParam, __class_szBuffer, charsmax(__class_szBuffer)); - } - - WritePackString(__class_dpParams, __class_szBuffer); - } - case CMP_Array: { - if (bUseDefault) { - arrayset(__class_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); - } else { - get_array(iParam, __class_rgiBuffer, iSize); - } - - WritePackArray(__class_dpParams, __class_rgiBuffer, iSize); - } - case CMP_FloatArray: { - if (bUseDefault) { - arrayset(__class_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); - } else { - get_array_f(iParam, __class_rgflBuffer, iSize); - } - - WritePackFloatArray(__class_dpParams, __class_rgflBuffer, iSize); - } - } +stock DataPack:__cls_GetDataPackParams() { + if (__cls_call_dpParams == Invalid_DataPack) { + __cls_call_dpParams = CreateDataPack(); } + + return __cls_call_dpParams; } -stock Class:__class_GetCallMethodClass(const &ClassInstance:pInstance) { - if (!__class_IsMethodCallStackEmtpy()) { - static rgCallStackItem[__class_MethodCallStackItem]; __class_GetCurrentMethodFromCallStack(rgCallStackItem); +stock Class:__cls_GetCallMethodClass(const &ClassInstance:pInstance) { + if (!__cls_IsMethodCallStackEmpty()) { + static rgCallStackItem[__cls_MethodCallStackItem]; __cls_GetCurrentMethodFromCallStack(rgCallStackItem); - if (rgCallStackItem[__class_MethodCallStackItem_Instance] == pInstance) { - return rgCallStackItem[__class_MethodCallStackItem_Class]; + if (rgCallStackItem[__cls_MethodCallStackItem_Instance] == pInstance) { + return rgCallStackItem[__cls_MethodCallStackItem_Class]; } } - return StructGetCell(Struct:pInstance, __class_InstanceData_Class); + return StructGetCell(Struct:pInstance, __cls_InstanceData_Class); } From 886de023cfbe11e4721508ec7ec4859974e29574 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 10 Mar 2024 22:04:27 +0100 Subject: [PATCH 158/231] update custom entities api --- api/custom-entities/README.md | 227 +++ api/custom-entities/api_custom_entities.sma | 1274 ++++++----------- .../include/api_custom_entities.inc | 38 +- .../include/api_custom_entities_const.inc | 14 +- 4 files changed, 718 insertions(+), 835 deletions(-) create mode 100644 api/custom-entities/README.md diff --git a/api/custom-entities/README.md b/api/custom-entities/README.md new file mode 100644 index 0000000..7f8af1e --- /dev/null +++ b/api/custom-entities/README.md @@ -0,0 +1,227 @@ +Certainly! Let's create documentation for the Custom Entities API: + +# Custom Entities API + +The Custom Entities API provides a flexible framework for managing and creating custom entities. This API allows developers to register, spawn, manipulate, and interact with custom entities, defining their behavior through hooks and methods. + +## API Functions + +### CE_Register + +Register a new custom entity. + +```pawn +native CE:CE_Register(const szName[], CEPreset:iPreset = CEPreset_None); +``` + +### CE_RegisterDerived + +Extend an existing custom entity. + +```pawn +native CE:CE_RegisterDerived(const szName[], const szBase[]); +``` + +### CE_Create + +Spawn a custom entity. + +```pawn +native CE_Create(const szName[], const Float:vecOrigin[3] = {0.0, 0.0, 0.0}, bool:bTemp = true); +``` + +### CE_Restart + +Restart a custom entity. + +```pawn +native bool:CE_Restart(pEntity); +``` + +### CE_Kill + +Kill a custom entity. + +```pawn +native bool:CE_Kill(pEntity, pKiller = 0); +``` + +### CE_Remove + +Remove a custom entity correctly. + +```pawn +native bool:CE_Remove(pEntity); +``` + +### CE_RegisterHook + +Register a new hook for a custom entity. + +```pawn +native CE_RegisterHook(const szName[], CEFunction:function, const szCallback[]); +``` + +### CE_RegisterMethod + +Register a new method for a custom entity. + +```pawn +native CE_RegisterMethod(const szName[], const szMethod[], const szCallback[], any:...); +``` + +### CE_RegisterVirtualMethod + +Register a new virtual method for a custom entity. + +```pawn +native CE_RegisterVirtualMethod(const szName[], const szMethod[], const szCallback[], any:...); +``` + +### CE_GetHandler + +Get the handler of an entity by name. + +```pawn +native CE:CE_GetHandler(const szName[]); +``` + +### CE_GetHandlerByEntity + +Get the handler of an entity by index. + +```pawn +native CE:CE_GetHandlerByEntity(pEntity); +``` + +### CE_IsInstanceOf + +Check if an entity is an instance of a specific custom entity. + +```pawn +native bool:CE_IsInstanceOf(pEntity, const szTargetName[]); +``` + +### CE_HasMember + +Check if an entity has a member. + +```pawn +native bool:CE_HasMember(pEntity, const szMember[]); +``` + +### CE_DeleteMember + +Delete a member of an entity. + +```pawn +native CE_DeleteMember(pEntity, const szMember[]); +``` + +### CE_GetMember + +Get a member of an entity. + +```pawn +native any:CE_GetMember(pEntity, const szMember[]); +``` + +### CE_SetMember + +Set a member of an entity. + +```pawn +native CE_SetMember(pEntity, const szMember[], any:value); +``` + +### CE_GetMemberVec + +Get a vector member of an entity. + +```pawn +native bool:CE_GetMemberVec(pEntity, const szMember[], Float:vecOut[3]); +``` + +### CE_SetMemberVec + +Set a vector member of an entity. + +```pawn +native CE_SetMemberVec(pEntity, const szMember[], const Float:vecValue[3]); +``` + +### CE_GetMemberString + +Get a string member of an entity. + +```pawn +native bool:CE_GetMemberString(pEntity, const szMember[], szOut[], iLen); +``` + +### CE_SetMemberString + +Set a string member of an entity. + +```pawn +native CE_SetMemberString(pEntity, const szMember[], const szValue[]); +``` + +### CE_CallMethod + +Call a method for an entity. + +```pawn +native any:CE_CallMethod(pEntity, const szMethod[], any:...); +``` + +### CE_CallBaseMethod + +Call a base method for an entity. + +```pawn +native any:CE_CallBaseMethod(any:...); +``` + + +## Constants + +### Base Class and Entity Secret + +- **CE_BASE_CLASSNAME**: Base classname for custom entities, typically set to "info_target." +- **CE_ENTITY_SECRET**: A constant identifier ('c'+'e'+'2') used internally for entity verification. + +### Maximum Lengths + +- **CE_MAX_NAME_LENGTH**: Maximum length for the name of an entity. +- **CE_MAX_MEMBER_LENGTH**: Maximum length for a member name. +- **CE_MAX_CALLBACK_LENGTH**: Maximum length for a callback name. +- **CE_MAX_METHOD_NAME_LENGTH**: Maximum length for a method name. + +### Entity Members + +Defines member names commonly used in entities: + +- **CE_MEMBER_ID**: Identifier member. +- **CE_MEMBER_POINTER**: Pointer member. +- **CE_MEMBER_WORLD**: World member. +- **CE_MEMBER_ORIGIN**: Origin member. +- **CE_MEMBER_ANGLES**: Angles member. +- **CE_MEMBER_MASTER**: Master member. +- **CE_MEMBER_MODEL**: Model member. +- **CE_MEMBER_DELAY**: Delay member. +- **CE_MEMBER_NEXTKILL**: Next kill member. +- **CE_MEMBER_NEXTRESPAWN**: Next respawn member. +- **CE_MEMBER_INITIALIZED**: Initialized member. +- **CE_MEMBER_BLOODCOLOR**: Blood color member. +- **CE_MEMBER_LIFETIME**: Lifetime member. +- **CE_MEMBER_IGNOREROUNDS**: Ignore rounds member. +- **CE_MEMBER_RESPAWNTIME**: Respawn time member. +- **CE_MEMBER_MINS**: Mins member. +- **CE_MEMBER_MAXS**: Maxs member. +- **CE_MEMBER_LASTINIT**: Last init member. +- **CE_MEMBER_LASTSPAWN**: Last spawn member. +- **CE_MEMBER_PLUGINID**: Plugin ID member. + +### Enums +- **CEPreset**: Available presets for custom entities. +- **CEFunction**: Available functions to hook. diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 88f960f..7768f6e 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -8,40 +8,29 @@ #tryinclude #include +#include #include #include +#define MAX_HOOK_CALL_HIERARCHY_DEPTH 128 + #define DEFAULT_CELL_VALUE 0 #define DEFAULT_FLOAT_VALUE 0.0 #define DEFAULT_STRING_VALUE NULL_STRING -#define LOG_PREFIX "[CE]" +#define CLASS_METADATA_ID "iId" -#if !defined _datapack_included - enum DataPack { Invalid_DataPack = 0 } -#endif +#define LOG_PREFIX "[CE]" enum _:GLOBALESTATE { GLOBAL_OFF = 0, GLOBAL_ON = 1, GLOBAL_DEAD = 2 }; -enum MethodParam { - MethodParam_Type = 0, - MethodParam_Size -}; - -enum MethodCallStackItem { - MethodCallStackItem_Entity, - MethodCallStackItem_EntityID, - MethodCallStackItem_Method -}; - enum Entity { Array:Entity_Name, Array:Entity_Preset, - Array:Entity_Parent, Array:Entity_Hooks[CEFunction], - Array:Entity_Methods, - Array:Entity_Hierarchy + Array:Entity_Class, + Array:Entity_KeyMemberBindings }; enum EntityHook { @@ -49,33 +38,15 @@ enum EntityHook { EntityHook_FuncID }; -enum Method { - Method_PluginID, - Method_FunctionID, - bool:Method_IsVirtual, - Array:Method_ParamTypes -}; - -#if defined _datapack_included - new g_szBuffer[MAX_STRING_LENGTH]; - new g_rgiBuffer[MAX_STRING_LENGTH]; - new Float:g_rgflBuffer[MAX_STRING_LENGTH]; -#endif - new g_iszBaseClassName; -new Trie:g_itPData = Invalid_Trie; new Trie:g_itEntityIds = Invalid_Trie; -new g_rgEntity[Entity] = { Invalid_Array, ... }; +new Array:g_rgEntities[Entity] = { Invalid_Array, ... }; new g_iEntitiesNum = 0; -new bool:g_bPrecaching = true; -new bool:g_bIsCStrike = false; -new DataPack:g_dpParams = Invalid_DataPack; +new ClassInstance:g_pInstance = Invalid_ClassInstance; -new Array:g_irgMethodCallStack = Invalid_Array; -new Array:g_irgMethods = Invalid_Array; -new Trie:g_itMethods = Invalid_Trie; +new bool:g_bIsCStrike = false; public plugin_precache() { g_bIsCStrike = !!cstrike_running(); @@ -102,8 +73,6 @@ public plugin_precache() { } public plugin_init() { - g_bPrecaching = false; - register_plugin("[API] Custom Entities", "2.0.0", "Hedgehog Fog"); register_concmd("ce_spawn", "Command_Spawn", ADMIN_CVAR); @@ -124,6 +93,8 @@ public plugin_natives() { register_native("CE_Restart", "Native_Restart"); register_native("CE_RegisterHook", "Native_RegisterHook"); + register_native("CE_RegisterKeyMemberBinding", "Native_RegisterKeyMemberBinding"); + register_native("CE_RemoveKeyMemberBinding", "Native_RemoveKeyMemberBinding"); register_native("CE_RegisterMethod", "Native_RegisterMethod"); register_native("CE_RegisterVirtualMethod", "Native_RegisterVirtualMethod"); @@ -150,36 +121,36 @@ public plugin_end() { /*--------------------------------[ Natives ]--------------------------------*/ public Native_Register(iPluginId, iArgc) { - new szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); new CEPreset:iPreset = CEPreset:get_param(2); - return RegisterEntity(szClassName, iPreset); + return RegisterEntity(szClassname, iPreset); } public Native_RegisterDerived(iPluginId, iArgc) { - new szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); new szBaseClassName[CE_MAX_NAME_LENGTH]; get_string(2, szBaseClassName, charsmax(szBaseClassName)); - return RegisterEntity(szClassName, _, szBaseClassName); + return RegisterEntity(szClassname, _, szBaseClassName); } public Native_Create(iPluginId, iArgc) { - static szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + static szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); static Float:vecOrigin[3]; get_array_f(2, vecOrigin, 3); static bool:bTemp; bTemp = !!get_param(3); - static pEntity; pEntity = @Entity_Create(szClassName, vecOrigin, bTemp); + new pEntity = @Entity_Create(szClassname, vecOrigin, bTemp); if (pEntity) { - static Trie:itPData; itPData = @Entity_GetPData(pEntity); - SetPDataMember(itPData, CE_MEMBER_PLUGINID, iPluginId); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); + ClassInstanceSetMember(pInstance, CE_MEMBER_PLUGINID, iPluginId); } return pEntity; } public Native_Kill(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); - static pKiller; pKiller = get_param(2); + new pEntity = get_param(1); + new pKiller = get_param(2); if (!@Entity_IsCustom(pEntity)) return; @@ -187,7 +158,7 @@ public Native_Kill(iPluginId, iArgc) { } public bool:Native_Remove(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); + new pEntity = get_param(1); if (!@Entity_IsCustom(pEntity)) return; @@ -196,7 +167,7 @@ public bool:Native_Remove(iPluginId, iArgc) { } public Native_Restart(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); + new pEntity = get_param(1); if (!@Entity_IsCustom(pEntity)) return; @@ -206,154 +177,156 @@ public Native_Restart(iPluginId, iArgc) { public Native_RegisterHook(iPluginId, iArgc) { new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); new CEFunction:iFunction = CEFunction:get_param(2); - new szCallback[CE_MAX_CALLBACK_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); + new szCallback[CE_MAX_CALLBACK_NAME_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); RegisterEntityHook(iFunction, szClassname, szCallback, iPluginId); } public Native_RegisterMethod(iPluginId, iArgc) { - new szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); new szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); - new szCallback[CE_MAX_CALLBACK_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); + new szCallback[CE_MAX_CALLBACK_NAME_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); - new Array:irgParamTypes; irgParamTypes = ArrayCreate(_:MethodParam, iArgc - 1); + new iId = GetIdByClassName(szClassname); + new Class:cEntity = ArrayGetCell(g_rgEntities[Entity_Class], iId); + new Array:irgParams = ReadMethodParamsFromNativeCall(4, iArgc); - for (new iParam = 4; iParam <= iArgc; ++iParam) { - new rgParam[MethodParam]; - rgParam[MethodParam_Type] = get_param_byref(iParam); - rgParam[MethodParam_Size] = 1; + ClassAddMethod(cEntity, szMethod, szCallback, iPluginId, false, CMP_Cell, CMP_ReadFromCellArray, irgParams); - switch (rgParam[MethodParam_Type]) { - case CE_MP_Array, CE_MP_FloatArray: { - rgParam[MethodParam_Size] = get_param_byref(iParam + 1); - iParam++; - } - } - - ArrayPushArray(irgParamTypes, rgParam[any:0], _:MethodParam); - } - - RegisterEntityMethod(szClassName, szMethod, szCallback, iPluginId, irgParamTypes, false); + ArrayDestroy(irgParams); } public Native_RegisterVirtualMethod(iPluginId, iArgc) { - new szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); new szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); - new szCallback[CE_MAX_CALLBACK_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); + new szCallback[CE_MAX_CALLBACK_NAME_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); - new Array:irgParamTypes; irgParamTypes = ArrayCreate(_:MethodParam, iArgc - 1); + new iId = GetIdByClassName(szClassname); + new Class:cEntity = ArrayGetCell(g_rgEntities[Entity_Class], iId); + new Array:irgParams = ReadMethodParamsFromNativeCall(4, iArgc); - for (new iParam = 4; iParam <= iArgc; ++iParam) { - new rgParam[MethodParam]; - rgParam[MethodParam_Type] = get_param_byref(iParam); - rgParam[MethodParam_Size] = 1; + ClassAddMethod(cEntity, szMethod, szCallback, iPluginId, true, CMP_Cell, CMP_ReadFromCellArray, irgParams); - switch (rgParam[MethodParam_Type]) { - case CE_MP_Array, CE_MP_FloatArray: { - rgParam[MethodParam_Size] = get_param_byref(iParam + 1); - iParam++; - } - } + ArrayDestroy(irgParams); +} + +public Native_RegisterKeyMemberBinding(iPluginId, iArgc) { + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + new szKey[CE_MAX_NAME_LENGTH]; get_string(2, szKey, charsmax(szKey)); + new szMember[CE_MAX_NAME_LENGTH]; get_string(3, szMember, charsmax(szMember)); + new CEMemberType:iType = CEMemberType:get_param(4); + + new iId = GetIdByClassName(szClassname); + if (iId == -1) { + log_error(AMX_ERR_NATIVE, "%s Entity ^"%s^" is not registered.", LOG_PREFIX, szClassname); + return; + } + + RegisterKeyMemberBinding(iId, szKey, szMember, iType); +} + +public Native_RemoveKeyMemberBinding(iPluginId, iArgc) { + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + new szKey[CE_MAX_NAME_LENGTH]; get_string(2, szKey, charsmax(szKey)); + new szMember[CE_MAX_NAME_LENGTH]; get_string(3, szMember, charsmax(szMember)); - ArrayPushArray(irgParamTypes, rgParam[any:0], _:MethodParam); + new iId = GetIdByClassName(szClassname); + if (iId == -1) { + log_error(AMX_ERR_NATIVE, "%s Entity ^"%s^" is not registered.", LOG_PREFIX, szClassname); + return; } - RegisterEntityMethod(szClassName, szMethod, szCallback, iPluginId, irgParamTypes, true); + RemoveKeyMemberBinding(iId, szKey, szMember); } public Native_GetHandler(iPluginId, iArgc) { - static szClassName[CE_MAX_NAME_LENGTH]; get_string(1, szClassName, charsmax(szClassName)); + static szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); - return GetIdByClassName(szClassName); + return GetIdByClassName(szClassname); } public Native_GetHandlerByEntity(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); + new pEntity = get_param(1); if (!@Entity_IsCustom(pEntity)) return -1; - static Trie:itPData; itPData = @Entity_GetPData(pEntity); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); - return GetPDataMember(itPData, CE_MEMBER_ID); + return ClassInstanceGetMember(pInstance, CE_MEMBER_ID); } public bool:Native_IsInstanceOf(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); - static szClassName[CE_MAX_NAME_LENGTH]; get_string(2, szClassName, charsmax(szClassName)); + new pEntity = get_param(1); + static szClassname[CE_MAX_NAME_LENGTH]; get_string(2, szClassname, charsmax(szClassname)); if (!@Entity_IsCustom(pEntity)) return false; - static iTargetId; iTargetId = GetIdByClassName(szClassName); - + static iTargetId; iTargetId = GetIdByClassName(szClassname); if (iTargetId == -1) return false; - static Trie:itPData; itPData = @Entity_GetPData(pEntity); - static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); + static Class:cTarget; cTarget = ArrayGetCell(g_rgEntities[Entity_Class], iTargetId); - do { - if (iId == iTargetId) return true; + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); - iId = ArrayGetCell(g_rgEntity[Entity_Parent], iId); - } while(iId != -1); - - return false; + return ClassInstanceIsInstanceOf(pInstance, cTarget); } public bool:Native_HasMember(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); - static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + new pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); if (!@Entity_IsCustom(pEntity)) return false; - static Trie:itPData; itPData = @Entity_GetPData(pEntity); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); - return HasPDataMember(itPData, szMember); + return ClassInstanceHasMember(pInstance, szMember); } public any:Native_GetMember(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); - static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + new pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); if (!@Entity_IsCustom(pEntity)) return 0; - static Trie:itPData; itPData = @Entity_GetPData(pEntity); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); - return GetPDataMember(itPData, szMember); + return ClassInstanceGetMember(pInstance, szMember); } public Native_DeleteMember(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); - static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + new pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); if (!@Entity_IsCustom(pEntity)) return; - static Trie:itPData; itPData = @Entity_GetPData(pEntity); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); - DeletePDataMember(itPData, szMember); + ClassInstanceDeleteMember(pInstance, szMember); } public Native_SetMember(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); - static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + new pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); static iValue; iValue = get_param(3); + static bool:bReplace; bReplace = bool:get_param(4); if (!@Entity_IsCustom(pEntity)) return; - static Trie:itPData; itPData = @Entity_GetPData(pEntity); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); - SetPDataMember(itPData, szMember, iValue); + ClassInstanceSetMember(pInstance, szMember, iValue, bReplace); } public bool:Native_GetMemberVec(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); - static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + new pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); if (!@Entity_IsCustom(pEntity)) return false; - static Trie:itPData; itPData = @Entity_GetPData(pEntity); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); static Float:vecValue[3]; - if (!GetPDataMemberVec(itPData, szMember, vecValue)) return false; + if (!ClassInstanceGetMemberArray(pInstance, szMember, vecValue, 3)) return false; set_array_f(3, vecValue, sizeof(vecValue)); @@ -361,26 +334,27 @@ public bool:Native_GetMemberVec(iPluginId, iArgc) { } public Native_SetMemberVec(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); - static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + new pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); static Float:vecValue[3]; get_array_f(3, vecValue, sizeof(vecValue)); + static bool:bReplace; bReplace = bool:get_param(4); if (!@Entity_IsCustom(pEntity)) return; - static Trie:itPData; itPData = @Entity_GetPData(pEntity); - SetPDataMemberVec(itPData, szMember, vecValue); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); + ClassInstanceSetMemberArray(pInstance, szMember, vecValue, 3, bReplace); } public bool:Native_GetMemberString(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); - static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + new pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); if (!@Entity_IsCustom(pEntity)) return false; - static Trie:itPData; itPData = @Entity_GetPData(pEntity); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); static szValue[128]; - if (!GetPDataMemberString(itPData, szMember, szValue, charsmax(szValue))) return false; + if (!ClassInstanceGetMemberString(pInstance, szMember, szValue, charsmax(szValue))) return false; set_string(3, szValue, get_param(4)); @@ -388,223 +362,66 @@ public bool:Native_GetMemberString(iPluginId, iArgc) { } public Native_SetMemberString(iPluginId, iArgc) { - static pEntity; pEntity = get_param(1); - static szMember[CE_MAX_MEMBER_LENGTH]; get_string(2, szMember, charsmax(szMember)); + new pEntity = get_param(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); static szValue[128]; get_string(3, szValue, charsmax(szValue)); + static bool:bReplace; bReplace = bool:get_param(4); if (!@Entity_IsCustom(pEntity)) return; - static Trie:itPData; itPData = @Entity_GetPData(pEntity); - SetPDataMemberString(itPData, szMember, szValue); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); + ClassInstanceSetMemberString(pInstance, szMember, szValue, bReplace); } public any:Native_CallMethod(iPluginId, iArgc) { - new pEntity; pEntity = get_param(1); - new szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + new pEntity = get_param(1); + static szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); - if (!@Entity_IsCustom(pEntity)) return 0; - - new Trie:itPData; itPData = @Entity_GetPData(pEntity); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); - new iId; iId = -1; + ClassInstanceCallMethodBegin(pInstance, szMethod); - // If we are already in the execution context use entity logic from current context - if (!IsMethodCallStackEmtpy()) { - static rgCallStackItem[MethodCallStackItem]; - GetCurrentMethodFromCallStack(rgCallStackItem); + ClassInstanceCallMethodPushParamCell(pEntity); - if (rgCallStackItem[MethodCallStackItem_Entity] == pEntity) { - iId = rgCallStackItem[MethodCallStackItem_EntityID]; - } else { - iId = GetPDataMember(itPData, CE_MEMBER_ID); - } - } else { - iId = GetPDataMember(itPData, CE_MEMBER_ID); + for (new iParam = 3; iParam <= iArgc; ++iParam) { + ClassInstanceCallMethodPushNativeParam(iParam); } - new rgMethod[Method]; - iId = FindEntityMethodInHierarchy(iId, szMethod, rgMethod); - - if (iId == -1) { - new szName[CE_MAX_NAME_LENGTH]; ArrayGetString(g_rgEntity[Entity_Name], iId, szName, charsmax(szName)); - log_error(AMX_ERR_NATIVE, "%s Method ^"%s^" is not registered for the ^"%s^" entity (%d)!", LOG_PREFIX, szMethod, szName, pEntity); - return 0; - } - - // If we are already in the execution context and the method is virual jump to top level context - if (!IsMethodCallStackEmtpy()) { - if (rgMethod[Method_IsVirtual]) { - iId = FindEntityMethodInHierarchy(GetPDataMember(itPData, CE_MEMBER_ID), szMethod, rgMethod); - } - } - - #if defined _datapack_included - ResetPack(g_dpParams, true); - - new Array:irgParamTypes; irgParamTypes = rgMethod[Method_ParamTypes]; - - new iParamsNum; iParamsNum = ArraySize(irgParamTypes); - for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { - new iParam; iParam = 3 + iMethodParam; - new iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Type); - new iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Size); - new bool:bUseDefault; bUseDefault = iParam > iArgc; - - switch (iType) { - case CE_MP_Cell: { - WritePackCell(g_dpParams, bUseDefault ? DEFAULT_CELL_VALUE : get_param_byref(iParam)); - } - case CE_MP_Float: { - WritePackFloat(g_dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:get_param_byref(iParam)); - } - case CE_MP_String: { - if (bUseDefault) { - copy(g_szBuffer, sizeof(g_szBuffer), DEFAULT_STRING_VALUE); - } else { - get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); - } - - WritePackString(g_dpParams, g_szBuffer); - } - case CE_MP_Array: { - if (bUseDefault) { - arrayset(g_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); - } else { - get_array(iParam, g_rgiBuffer, iSize); - } - - WritePackArray(g_dpParams, g_rgiBuffer, iSize); - } - case CE_MP_FloatArray: { - if (bUseDefault) { - arrayset(g_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); - } else { - get_array_f(iParam, g_rgflBuffer, iSize); - } - - WritePackFloatArray(g_dpParams, g_rgflBuffer, iSize); - } - } - } - #endif - - #if defined _datapack_included - ResetPack(g_dpParams); - #endif - - new any:result; result = ExecuteMethod(szMethod, iId, pEntity, g_dpParams); - - - return result; + return ClassInstanceCallMethodEnd(); } public any:Native_CallBaseMethod(iPluginId, iArgc) { - if (IsMethodCallStackEmtpy()) { - log_error(AMX_ERR_NATIVE, "%s Calling a base method is not allowed outside of the execution context!", LOG_PREFIX); - return 0; - } - - static rgCallStackItem[MethodCallStackItem]; GetCurrentMethodFromCallStack(rgCallStackItem); - static iId; iId = ArrayGetCell(g_rgEntity[Entity_Parent], rgCallStackItem[MethodCallStackItem_EntityID]); + new ClassInstance:pInstance = ClassInstanceGetCurrent(); + new pEntity = ClassInstanceGetMember(pInstance, CE_MEMBER_POINTER); - if (iId == -1) { - new szName[CE_MAX_NAME_LENGTH]; ArrayGetString(g_rgEntity[Entity_Name], rgCallStackItem[MethodCallStackItem_EntityID], szName, charsmax(szName)); - log_error(AMX_ERR_NATIVE, "%s Entity ^"%s^" (%d) has no base entity!", LOG_PREFIX, szName, rgCallStackItem[MethodCallStackItem_Entity]); - return 0; - } - - new szMethod[CE_MAX_METHOD_NAME_LENGTH]; GetNameFromMethodGlobalTable(rgCallStackItem[MethodCallStackItem_Method], szMethod, charsmax(szMethod)); + ClassInstanceCallMethodBeginBase(); - static rgMethod[Method]; - iId = FindEntityMethodInHierarchy(iId, szMethod, rgMethod); + ClassInstanceCallMethodPushParamCell(pEntity); - if (iId == -1) { - new szName[CE_MAX_NAME_LENGTH]; ArrayGetString(g_rgEntity[Entity_Name], iId, szName, charsmax(szName)); - log_error(AMX_ERR_NATIVE, "%s Method ^"%s^" is not registered for the ^"%s^" entity (%d)!", LOG_PREFIX, szMethod, szName, rgCallStackItem[MethodCallStackItem_Entity]); - return 0; + for (new iParam = 1; iParam <= iArgc; ++iParam) { + ClassInstanceCallMethodPushNativeParam(iParam); } - #if defined _datapack_included - ResetPack(g_dpParams, true); - - static Array:irgParamTypes; irgParamTypes = rgMethod[Method_ParamTypes]; - - static iParamsNum; iParamsNum = ArraySize(irgParamTypes); - for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) { - static iParam; iParam = 1 + iMethodParam; - static iType; iType = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Type); - static iSize; iSize = ArrayGetCell(irgParamTypes, iMethodParam, _:MethodParam_Size); - static bool:bUseDefault; bUseDefault = iParam > iArgc; - - switch (iType) { - case CE_MP_Cell: { - WritePackCell(g_dpParams, bUseDefault ? DEFAULT_CELL_VALUE : get_param_byref(iParam)); - } - case CE_MP_Float: { - WritePackFloat(g_dpParams, bUseDefault ? DEFAULT_FLOAT_VALUE : Float:get_param_byref(iParam)); - } - case CE_MP_String: { - if (bUseDefault) { - copy(g_szBuffer, sizeof(g_szBuffer), DEFAULT_STRING_VALUE); - } else { - get_string(iParam, g_szBuffer, charsmax(g_szBuffer)); - } - - WritePackString(g_dpParams, g_szBuffer); - } - case CE_MP_Array: { - if (bUseDefault) { - arrayset(g_rgiBuffer, DEFAULT_FLOAT_VALUE, iSize); - } else { - get_array(iParam, g_rgiBuffer, iSize); - } - - WritePackArray(g_dpParams, g_rgiBuffer, iSize); - } - case CE_MP_FloatArray: { - if (bUseDefault) { - arrayset(g_rgflBuffer, DEFAULT_FLOAT_VALUE, iSize); - } else { - get_array_f(iParam, g_rgflBuffer, iSize); - } - - WritePackFloatArray(g_dpParams, g_rgflBuffer, iSize); - } - } - } - #endif - - #if defined _datapack_included - ResetPack(g_dpParams); - #endif - - static any:result; result = ExecuteMethod(szMethod, iId, rgCallStackItem[MethodCallStackItem_Entity], g_dpParams); - - return result; + return ClassInstanceCallMethodEnd(); } /*--------------------------------[ Commands ]--------------------------------*/ public Command_Spawn(pPlayer, iLevel, iCId) { - if (!cmd_access(pPlayer, iLevel, iCId, 2)) { - return PLUGIN_HANDLED; - } + if (!cmd_access(pPlayer, iLevel, iCId, 2)) return PLUGIN_HANDLED; - static szClassName[128]; - read_args(szClassName, charsmax(szClassName)); - remove_quotes(szClassName); + new szClassname[128]; + read_args(szClassname, charsmax(szClassname)); + remove_quotes(szClassname); - if (equal(szClassName, NULL_STRING)) { - return PLUGIN_HANDLED; - } + if (equal(szClassname, NULL_STRING)) return PLUGIN_HANDLED; - static Float:vecOrigin[3]; pev(pPlayer, pev_origin, vecOrigin); + new Float:vecOrigin[3]; pev(pPlayer, pev_origin, vecOrigin); - new pEntity = @Entity_Create(szClassName, vecOrigin, true); - if (pEntity) { - dllfunc(DLLFunc_Spawn, pEntity); - engfunc(EngFunc_SetOrigin, pEntity, vecOrigin); - } + new pEntity = @Entity_Create(szClassname, vecOrigin, true); + if (!pEntity) return PLUGIN_HANDLED; + + dllfunc(DLLFunc_Spawn, pEntity); return PLUGIN_HANDLED; } @@ -612,12 +429,10 @@ public Command_Spawn(pPlayer, iLevel, iCId) { /*--------------------------------[ Hooks ]--------------------------------*/ public FMHook_OnFreeEntPrivateData(pEntity) { - if (!pev_valid(pEntity)) { - return; - } + if (!pev_valid(pEntity)) return; if (@Entity_IsCustom(pEntity)) { - @Entity_FreePData(pEntity); + @Entity_DestroyClassInstance(pEntity); } } @@ -630,51 +445,42 @@ public FMHook_KeyValue(pEntity, hKVD) { if (iId != -1) { // using set_kvd leads to duplicate kvd emit, this check will fix the issue - if (g_itPData == Invalid_Trie) { + if (g_pInstance == Invalid_ClassInstance) { set_kvd(hKVD, KV_Value, CE_BASE_CLASSNAME); - g_itPData = AllocPData(iId, pEntity); + g_pInstance = AllocPData(iId, pEntity); } } else { // if for some reason data was not assigned - if (g_itPData != Invalid_Trie) { - FreePData(g_itPData); - g_itPData = Invalid_Trie; + if (g_pInstance != Invalid_ClassInstance) { + ClassInstanceDestroy(g_pInstance); + g_pInstance = Invalid_ClassInstance; } } } - if (g_itPData != Invalid_Trie) { + if (g_pInstance != Invalid_ClassInstance) { if (equal(szKey, "classname")) { - SetPDataMember(g_itPData, CE_MEMBER_WORLD, true); - } else if (equal(szKey, "origin")) { - new Float:vecOrigin[3]; - UTIL_ParseVector(szValue, vecOrigin); - SetPDataMemberVec(g_itPData, CE_MEMBER_ORIGIN, vecOrigin); - } else if (equal(szKey, "angles")) { - new Float:vecAngles[3]; - UTIL_ParseVector(szValue, vecAngles); - SetPDataMemberVec(g_itPData, CE_MEMBER_ANGLES, vecAngles); - } else if (equal(szKey, "master")) { - SetPDataMemberString(g_itPData, CE_MEMBER_MASTER, szValue); + ClassInstanceSetMember(g_pInstance, CE_MEMBER_WORLD, true); + } + + if (ExecuteHookFunction(CEFunction_KeyValue, pEntity, szKey, szValue) == PLUGIN_CONTINUE) { + @Entity_ApplyKeyMemberBindings(pEntity, szKey, szValue); } - - new iId = GetPDataMember(g_itPData, CE_MEMBER_ID); - ExecuteHookFunction(CEFunction_KeyValue, iId, pEntity, szKey, szValue); } return FMRES_HANDLED; } public FMHook_Spawn(pEntity) { - if (g_itPData != Invalid_Trie) { - new iId = GetPDataMember(g_itPData, CE_MEMBER_ID); + if (g_pInstance != Invalid_ClassInstance) { + static iId; iId = ClassInstanceGetMember(g_pInstance, CE_MEMBER_ID); - static szClassName[CE_MAX_NAME_LENGTH]; - ArrayGetString(g_rgEntity[Entity_Name], iId, szClassName, charsmax(szClassName)); - set_pev(pEntity, pev_classname, szClassName); + static szClassname[CE_MAX_NAME_LENGTH]; + ArrayGetString(g_rgEntities[Entity_Name], iId, szClassname, charsmax(szClassname)); + set_pev(pEntity, pev_classname, szClassname); - @Entity_SetPData(pEntity, g_itPData); - g_itPData = Invalid_Trie; + @Entity_SetClassInstance(pEntity, g_pInstance); + g_pInstance = Invalid_ClassInstance; } } @@ -755,73 +561,56 @@ public HamHook_Base_BloodColor(pEntity) { /*--------------------------------[ Methods ]--------------------------------*/ -@Entity_Create(const szClassName[], const Float:vecOrigin[3], bool:bTemp) { - new iId = GetIdByClassName(szClassName); - if (iId == -1) { - return 0; - } +@Entity_Create(const szClassname[], const Float:vecOrigin[3], bool:bTemp) { + new iId = GetIdByClassName(szClassname); + if (iId == -1) return 0; new this = engfunc(EngFunc_CreateNamedEntity, g_iszBaseClassName); - set_pev(this, pev_classname, szClassName); + set_pev(this, pev_classname, szClassname); engfunc(EngFunc_SetOrigin, this, vecOrigin); // set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); - new Trie:itPData = @Entity_AllocPData(this, iId); - SetPDataMemberVec(itPData, CE_MEMBER_ORIGIN, vecOrigin); + new ClassInstance:pInstance = @Entity_AllocClassInstance(this, iId); + ClassInstanceSetMemberArray(pInstance, CE_MEMBER_ORIGIN, vecOrigin, 3); - SetPDataMember(itPData, CE_MEMBER_WORLD, !bTemp); + ClassInstanceSetMember(pInstance, CE_MEMBER_WORLD, !bTemp); return this; } bool:@Entity_IsCustom(const &this) { - if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER) == this) { + if (g_pInstance != Invalid_ClassInstance && ClassInstanceGetMember(g_pInstance, CE_MEMBER_POINTER) == this) { return true; } return pev(this, pev_gaitsequence) == CE_ENTITY_SECRET; } -@Entity_Init(const &this) { - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); +@Entity_Init(&this) { + new ClassInstance:pInstance = @Entity_GetClassInstance(this); - static szModel[MAX_RESOURCE_PATH_LENGTH]; pev(this, pev_model, szModel, charsmax(szModel)); + ClassInstanceSetMember(pInstance, CE_MEMBER_IGNOREROUNDS, false); - SetPDataMember(itPData, CE_MEMBER_IGNOREROUNDS, false); + if (ExecuteHookFunction(CEFunction_Init, this) != PLUGIN_CONTINUE) return; - ExecuteHookFunction(CEFunction_Init, iId, this); - - if (!HasPDataMember(itPData, CE_MEMBER_MODEL) && !equal(szModel, NULL_STRING)) { - SetPDataMemberString(itPData, CE_MEMBER_MODEL, szModel); - - if (g_bPrecaching && szModel[0] != '*') { - precache_model(szModel); - } + if (ClassInstanceHasMember(pInstance, CE_MEMBER_MODEL)) { + static szModel[MAX_RESOURCE_PATH_LENGTH]; + ClassInstanceGetMemberString(pInstance, CE_MEMBER_MODEL, szModel, charsmax(szModel)); } - SetPDataMember(itPData, CE_MEMBER_INITIALIZED, true); - SetPDataMember(itPData, CE_MEMBER_LASTINIT, get_gametime()); + ClassInstanceSetMember(pInstance, CE_MEMBER_INITIALIZED, true); + ClassInstanceSetMember(pInstance, CE_MEMBER_LASTINIT, get_gametime()); } -@Entity_Spawn(const &this) { - new Trie:itPData = @Entity_GetPData(this); +@Entity_Spawn(&this) { + if (ExecuteHookFunction(CEFunction_Spawn, this) != PLUGIN_CONTINUE) return; - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - - if (ExecuteHookFunction(CEFunction_Spawn, iId, this) != PLUGIN_CONTINUE) { - return; - } - - if (!GetPDataMember(itPData, CE_MEMBER_INITIALIZED)) { + new ClassInstance:pInstance; pInstance = @Entity_GetClassInstance(this); + if (!ClassInstanceGetMember(pInstance, CE_MEMBER_INITIALIZED)) { @Entity_Init(this); } - if (!pev_valid(this) || pev(this, pev_flags) & FL_KILLME) { - return; - } - - static Float:flGameTime; flGameTime = get_gametime(); + if (!pev_valid(this) || pev(this, pev_flags) & FL_KILLME) return; set_pev(this, pev_deadflag, DEAD_NO); set_pev(this, pev_effects, pev(this, pev_effects) & ~EF_NODRAW); @@ -831,53 +620,65 @@ bool:@Entity_IsCustom(const &this) { @Entity_InitModel(this); @Entity_InitSize(this); - new CEPreset:iPreset = ArrayGetCell(g_rgEntity[Entity_Preset], iId); + static iId; iId = ClassInstanceGetMember(pInstance, CE_MEMBER_ID); + static CEPreset:iPreset; iPreset = ArrayGetCell(g_rgEntities[Entity_Preset], iId); switch (iPreset) { case CEPreset_Trigger: { - SetPDataMember(itPData, CE_MEMBER_DELAY, 0.1); + ClassInstanceSetMember(pInstance, CE_MEMBER_DELAY, 0.1); } case CEPreset_NPC: { set_pev(this, pev_flags, pev(this, pev_flags) | FL_MONSTER); } } - if (HasPDataMember(itPData, CE_MEMBER_ORIGIN)) { + if (ClassInstanceHasMember(pInstance, CE_MEMBER_ORIGIN)) { static Float:vecOrigin[3]; - GetPDataMemberVec(itPData, CE_MEMBER_ORIGIN, vecOrigin); + ClassInstanceGetMemberArray(pInstance, CE_MEMBER_ORIGIN, vecOrigin, 3); engfunc(EngFunc_SetOrigin, this, vecOrigin); } - if (HasPDataMember(itPData, CE_MEMBER_ANGLES)) { + if (ClassInstanceHasMember(pInstance, CE_MEMBER_ANGLES)) { static Float:vecAngles[3]; - GetPDataMemberVec(itPData, CE_MEMBER_ANGLES, vecAngles); + ClassInstanceGetMemberArray(pInstance, CE_MEMBER_ANGLES, vecAngles, 3); set_pev(this, pev_angles, vecAngles); } - new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); + if (ClassInstanceHasMember(pInstance, CE_MEMBER_TARGETNAME)) { + static szTargetname[32]; + ClassInstanceGetMemberString(pInstance, CE_MEMBER_TARGETNAME, szTargetname, charsmax(szTargetname)); + set_pev(this, pev_targetname, szTargetname); + } + + if (ClassInstanceHasMember(pInstance, CE_MEMBER_TARGET)) { + static szTarget[32]; + ClassInstanceGetMemberString(pInstance, CE_MEMBER_TARGET, szTarget, charsmax(szTarget)); + set_pev(this, pev_target, szTarget); + } + + static bool:bIsWorld; bIsWorld = ClassInstanceGetMember(pInstance, CE_MEMBER_WORLD); - new Float:flLifeTime = 0.0; - if (!bIsWorld && HasPDataMember(itPData, CE_MEMBER_LIFETIME)) { - flLifeTime = GetPDataMember(itPData, CE_MEMBER_LIFETIME); + static Float:flLifeTime; flLifeTime = 0.0; + if (!bIsWorld && ClassInstanceHasMember(pInstance, CE_MEMBER_LIFETIME)) { + flLifeTime = ClassInstanceGetMember(pInstance, CE_MEMBER_LIFETIME); } + static Float:flGameTime; flGameTime = get_gametime(); + if (flLifeTime > 0.0) { - SetPDataMember(itPData, CE_MEMBER_NEXTKILL, flGameTime + flLifeTime); + ClassInstanceSetMember(pInstance, CE_MEMBER_NEXTKILL, flGameTime + flLifeTime); set_pev(this, pev_nextthink, flGameTime + flLifeTime); } else { - SetPDataMember(itPData, CE_MEMBER_NEXTKILL, 0.0); + ClassInstanceSetMember(pInstance, CE_MEMBER_NEXTKILL, 0.0); } - SetPDataMember(itPData, CE_MEMBER_LASTSPAWN, flGameTime); + ClassInstanceSetMember(pInstance, CE_MEMBER_LASTSPAWN, flGameTime); - ExecuteHookFunction(CEFunction_Spawned, iId, this); + ExecuteHookFunction(CEFunction_Spawned, this); } -@Entity_Restart(const &this) { - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - - ExecuteHookFunction(CEFunction_Restart, iId, this); +@Entity_Restart(&this) { + ExecuteHookFunction(CEFunction_Restart, this); new iObjectCaps = ExecuteHamB(Ham_ObjectCaps, this); @@ -897,14 +698,13 @@ bool:@Entity_IsCustom(const &this) { } } -@Entity_InitPhysics(const &this) { - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - new CEPreset:iPreset = ArrayGetCell(g_rgEntity[Entity_Preset], iId); +@Entity_InitPhysics(&this) { + if (ExecuteHookFunction(CEFunction_InitPhysics, this) != PLUGIN_CONTINUE) return; - if (ExecuteHookFunction(CEFunction_InitPhysics, iId, this) != PLUGIN_CONTINUE) { - return; - } + new ClassInstance:pInstance = @Entity_GetClassInstance(this); + + static iId; iId = ClassInstanceGetMember(pInstance, CE_MEMBER_ID); + static CEPreset:iPreset; iPreset = ArrayGetCell(g_rgEntities[Entity_Preset], iId); switch (iPreset) { case CEPreset_Item: { @@ -945,46 +745,36 @@ bool:@Entity_IsCustom(const &this) { } } -@Entity_InitModel(const &this) { - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); +@Entity_InitModel(&this) { + if (ExecuteHookFunction(CEFunction_InitModel, this) != PLUGIN_CONTINUE) return; - if (ExecuteHookFunction(CEFunction_InitModel, iId, this) != PLUGIN_CONTINUE) { - return; - } + new ClassInstance:pInstance = @Entity_GetClassInstance(this); - if (HasPDataMember(itPData, CE_MEMBER_MODEL)) { + if (ClassInstanceHasMember(pInstance, CE_MEMBER_MODEL)) { static szModel[MAX_RESOURCE_PATH_LENGTH]; - GetPDataMemberString(itPData, CE_MEMBER_MODEL, szModel, charsmax(szModel)); + ClassInstanceGetMemberString(pInstance, CE_MEMBER_MODEL, szModel, charsmax(szModel)); engfunc(EngFunc_SetModel, this, szModel); } - } -@Entity_InitSize(const &this) { - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); +@Entity_InitSize(&this) { + if (ExecuteHookFunction(CEFunction_InitSize, this) != PLUGIN_CONTINUE) return; - if (ExecuteHookFunction(CEFunction_InitSize, iId, this) != PLUGIN_CONTINUE) { - return; - } + new ClassInstance:pInstance = @Entity_GetClassInstance(this); - if (HasPDataMember(itPData, CE_MEMBER_MINS) && HasPDataMember(itPData, CE_MEMBER_MAXS)) { - static Float:vecMins[3]; GetPDataMemberVec(itPData, CE_MEMBER_MINS, vecMins); - static Float:vecMaxs[3]; GetPDataMemberVec(itPData, CE_MEMBER_MAXS, vecMaxs); + if (ClassInstanceHasMember(pInstance, CE_MEMBER_MINS) && ClassInstanceHasMember(pInstance, CE_MEMBER_MAXS)) { + static Float:vecMins[3]; ClassInstanceGetMemberArray(pInstance, CE_MEMBER_MINS, vecMins, 3); + static Float:vecMaxs[3]; ClassInstanceGetMemberArray(pInstance, CE_MEMBER_MAXS, vecMaxs, 3); engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); } } -@Entity_Kill(const &this, const &pKiller, bool:bPicked) { - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); +@Entity_Kill(&this, const &pKiller, bool:bPicked) { + if (ExecuteHookFunction(CEFunction_Kill, this, pKiller, bPicked) != PLUGIN_CONTINUE) return; - if (ExecuteHookFunction(CEFunction_Kill, iId, this, pKiller, bPicked) != PLUGIN_CONTINUE) { - return; - } + new ClassInstance:pInstance = @Entity_GetClassInstance(this); - SetPDataMember(itPData, CE_MEMBER_NEXTKILL, 0.0); + ClassInstanceSetMember(pInstance, CE_MEMBER_NEXTKILL, 0.0); set_pev(this, pev_takedamage, DAMAGE_NO); set_pev(this, pev_effects, pev(this, pev_effects) | EF_NODRAW); @@ -992,14 +782,14 @@ bool:@Entity_IsCustom(const &this) { set_pev(this, pev_movetype, MOVETYPE_NONE); set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); - new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); + new bool:bIsWorld = ClassInstanceGetMember(pInstance, CE_MEMBER_WORLD); if (bIsWorld) { - if (HasPDataMember(itPData, CE_MEMBER_RESPAWNTIME)) { - new Float:flRespawnTime = GetPDataMember(itPData, CE_MEMBER_RESPAWNTIME); + if (ClassInstanceHasMember(pInstance, CE_MEMBER_RESPAWNTIME)) { + new Float:flRespawnTime = ClassInstanceGetMember(pInstance, CE_MEMBER_RESPAWNTIME); new Float:flGameTime = get_gametime(); - SetPDataMember(itPData, CE_MEMBER_NEXTRESPAWN, flGameTime + flRespawnTime); + ClassInstanceSetMember(pInstance, CE_MEMBER_NEXTRESPAWN, flGameTime + flRespawnTime); set_pev(this, pev_deadflag, DEAD_RESPAWNABLE); set_pev(this, pev_nextthink, flGameTime + flRespawnTime); } else { @@ -1010,29 +800,28 @@ bool:@Entity_IsCustom(const &this) { set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); } - ExecuteHookFunction(CEFunction_Killed, iId, this, pKiller, bPicked); + ExecuteHookFunction(CEFunction_Killed, this, pKiller, bPicked); } -@Entity_Think(const &this) { +@Entity_Think(&this) { if (pev(this, pev_flags) & FL_KILLME) return; - static Float:flGameTime; flGameTime = get_gametime(); - - static Trie:itPData; itPData = @Entity_GetPData(this); - static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); + ExecuteHookFunction(CEFunction_Think, this); - ExecuteHookFunction(CEFunction_Think, iId, this); + new ClassInstance:pInstance = @Entity_GetClassInstance(this); + static Float:flGameTime; flGameTime = get_gametime(); static iDeadFlag; iDeadFlag = pev(this, pev_deadflag); + switch (iDeadFlag) { case DEAD_NO: { - static Float:flNextKill; flNextKill = GetPDataMember(itPData, CE_MEMBER_NEXTKILL); + static Float:flNextKill; flNextKill = ClassInstanceGetMember(pInstance, CE_MEMBER_NEXTKILL); if (flNextKill > 0.0 && flNextKill <= flGameTime) { ExecuteHamB(Ham_Killed, this, 0, 0); } } case DEAD_RESPAWNABLE: { - static Float:flNextRespawn; flNextRespawn = GetPDataMember(itPData, CE_MEMBER_NEXTRESPAWN); + static Float:flNextRespawn; flNextRespawn = ClassInstanceGetMember(pInstance, CE_MEMBER_NEXTRESPAWN); if (flNextRespawn <= flGameTime) { dllfunc(DLLFunc_Spawn, this); } @@ -1040,13 +829,13 @@ bool:@Entity_IsCustom(const &this) { } } -@Entity_Touch(const &this, const &pToucher) { - static Trie:itPData; itPData = @Entity_GetPData(this); - static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); +@Entity_Touch(&this, const &pToucher) { + if (ExecuteHookFunction(CEFunction_Touch, this, pToucher)) return; - if (ExecuteHookFunction(CEFunction_Touch, iId, this, pToucher)) return; + new ClassInstance:pInstance = @Entity_GetClassInstance(this); - static CEPreset:iPreset; iPreset = ArrayGetCell(g_rgEntity[Entity_Preset], iId); + static iId; iId = ClassInstanceGetMember(pInstance, CE_MEMBER_ID); + static CEPreset:iPreset; iPreset = ArrayGetCell(g_rgEntities[Entity_Preset], iId); switch (iPreset) { case CEPreset_Item: { @@ -1060,117 +849,138 @@ bool:@Entity_IsCustom(const &this) { } } -@Entity_Touched(const &this, const &pToucher) { - static Trie:itPData; itPData = @Entity_GetPData(this); - static iId; iId = GetPDataMember(itPData, CE_MEMBER_ID); - - ExecuteHookFunction(CEFunction_Touched, iId, this, pToucher); +@Entity_Touched(&this, const &pToucher) { + ExecuteHookFunction(CEFunction_Touched, this, pToucher); } @Entity_GetObjectCaps(const &this) { - new Trie:itPData = @Entity_GetPData(this); - new bool:bIgnoreRound = GetPDataMember(itPData, CE_MEMBER_IGNOREROUNDS); - new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD); + new ClassInstance:pInstance = @Entity_GetClassInstance(this); + new bool:bIgnoreRound = ClassInstanceGetMember(pInstance, CE_MEMBER_IGNOREROUNDS); + new bool:bIsWorld = ClassInstanceGetMember(pInstance, CE_MEMBER_WORLD); new iObjectCaps = 0; if (bIgnoreRound) { - iObjectCaps |= FCAP_ACROSS_TRANSITION; + iObjectCaps |= FCAP_ACROSS_TRANSITION; } else { - if (bIsWorld) { - iObjectCaps |= FCAP_MUST_RESET; - } else { - iObjectCaps |= FCAP_MUST_RELEASE; - } + iObjectCaps |= bIsWorld ? FCAP_MUST_RESET : FCAP_MUST_RELEASE; } return iObjectCaps; } -@Entity_Pickup(const &this, const &pToucher) { - if (~pev(this, pev_flags) & FL_ONGROUND) { - return; - } - - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); +@Entity_Pickup(&this, const &pToucher) { + if (~pev(this, pev_flags) & FL_ONGROUND) return; - if (ExecuteHookFunction(CEFunction_Pickup, iId, this, pToucher)) { - ExecuteHookFunction(CEFunction_Picked, iId, this, pToucher); + if (ExecuteHookFunction(CEFunction_Pickup, this, pToucher)) { + ExecuteHookFunction(CEFunction_Picked, this, pToucher); @Entity_Kill(this, pToucher, true); } } bool:@Entity_CanActivate(const &this, const &pTarget) { - static Float:flNextThink; - pev(this, pev_nextthink, flNextThink); + new ClassInstance:pInstance = @Entity_GetClassInstance(this); - if (flNextThink > get_gametime()) { - return false; - } + static Float:flNextThink; pev(this, pev_nextthink, flNextThink); + if (flNextThink > get_gametime()) return false; - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); + if (!ExecuteHookFunction(CEFunction_Activate, this, pTarget)) return false; - if (!ExecuteHookFunction(CEFunction_Activate, iId, this, pTarget)) { - return false; - } + static szMaster[32]; copy(szMaster, charsmax(szMaster), NULL_STRING); - static szMaster[32]; - copy(szMaster, charsmax(szMaster), NULL_STRING); - GetPDataMemberString(@Entity_GetPData(this), CE_MEMBER_MASTER, szMaster, charsmax(szMaster)); + ClassInstanceGetMemberString(pInstance, CE_MEMBER_MASTER, szMaster, charsmax(szMaster)); return UTIL_IsMasterTriggered(szMaster, pTarget); } -@Entity_Trigger(const &this, const &pActivator) { - if (!@Entity_CanActivate(this, pActivator)) { - return; - } +@Entity_Trigger(&this, const &pActivator) { + if (!@Entity_CanActivate(this, pActivator)) return; + + new ClassInstance:pInstance = @Entity_GetClassInstance(this); - new Trie:itPData = @Entity_GetPData(this); - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - new Float:flDelay = GetPDataMember(itPData, CE_MEMBER_DELAY); + static Float:flDelay; flDelay = ClassInstanceGetMember(pInstance, CE_MEMBER_DELAY); set_pev(this, pev_nextthink, get_gametime() + flDelay); - ExecuteHookFunction(CEFunction_Activated, iId, this, pActivator); + ExecuteHookFunction(CEFunction_Activated, this, pActivator); } @Entity_BloodColor(const &this) { - new Trie:itPData = @Entity_GetPData(this); + new ClassInstance:pInstance = @Entity_GetClassInstance(this); - if (!HasPDataMember(itPData, CE_MEMBER_BLOODCOLOR)) return -1; + if (!ClassInstanceHasMember(pInstance, CE_MEMBER_BLOODCOLOR)) return -1; - return GetPDataMember(itPData, CE_MEMBER_BLOODCOLOR); + return ClassInstanceGetMember(pInstance, CE_MEMBER_BLOODCOLOR); } -Trie:@Entity_GetPData(const &this) { +@Entity_ApplyKeyMemberBindings(&this, const szKey[], const szValue[]) { + new ClassInstance:pInstance = @Entity_GetClassInstance(this); + + new Class:rgHierarchy[MAX_HOOK_CALL_HIERARCHY_DEPTH], iHierarchySize; + GetInstanceHierarchy(pInstance, rgHierarchy, iHierarchySize); + + for (new i = iHierarchySize - 1; i >= 0; --i) { + new iCurrentId; iCurrentId = ClassGetMetadata(rgHierarchy[i], CLASS_METADATA_ID); + + new Trie:itKeyMemberBindings = ArrayGetCell(g_rgEntities[Entity_KeyMemberBindings], iCurrentId); + new Trie:itMemberTypes = Invalid_Trie; + + if (!TrieGetCell(itKeyMemberBindings, szKey, itMemberTypes)) return; + + new TrieIter:itMemberTypesIter = TrieIterCreate(itMemberTypes); + + while (!TrieIterEnded(itMemberTypesIter)) { + new szMember[32]; TrieIterGetKey(itMemberTypesIter, szMember, charsmax(szMember)); + new CEMemberType:iType; TrieIterGetCell(itMemberTypesIter, iType); + + switch (iType) { + case CEMemberType_Cell: { + ClassInstanceSetMember(g_pInstance, szMember, str_to_num(szValue)); + } + case CEMemberType_Float: { + ClassInstanceSetMember(g_pInstance, szMember, str_to_float(szValue)); + } + case CEMemberType_String: { + ClassInstanceSetMemberString(g_pInstance, szMember, szValue); + } + case CEMemberType_Vector: { + new Float:vecValue[3]; + UTIL_ParseVector(szValue, vecValue); + ClassInstanceSetMemberArray(g_pInstance, szMember, vecValue, 3); + } + } + + TrieIterNext(itMemberTypesIter); + } + } +} + +ClassInstance:@Entity_GetClassInstance(const &this) { // Return the current allocated data if the entity is at the initialization stage - if (g_itPData != Invalid_Trie && GetPDataMember(g_itPData, CE_MEMBER_POINTER) == this) { - return g_itPData; + if (g_pInstance != Invalid_ClassInstance && ClassInstanceGetMember(g_pInstance, CE_MEMBER_POINTER) == this) { + return g_pInstance; } - return Trie:pev(this, pev_iStepLeft); + return ClassInstance:pev(this, pev_iStepLeft); } -@Entity_SetPData(const &this, Trie:itPData) { +@Entity_SetClassInstance(&this, ClassInstance:pInstance) { set_pev(this, pev_gaitsequence, CE_ENTITY_SECRET); - set_pev(this, pev_iStepLeft, itPData); + set_pev(this, pev_iStepLeft, pInstance); } -Trie:@Entity_AllocPData(const &this, iId) { - new Trie:itPData = AllocPData(iId, this); - @Entity_SetPData(this, itPData); - return itPData; +ClassInstance:@Entity_AllocClassInstance(&this, iId) { + new ClassInstance:pInstance = AllocPData(iId, this); + + @Entity_SetClassInstance(this, pInstance); + + return pInstance; } -@Entity_FreePData(const &this) { - new Trie:itPData = @Entity_GetPData(this); - - new iId = GetPDataMember(itPData, CE_MEMBER_ID); - ExecuteHookFunction(CEFunction_Remove, iId, this); +@Entity_DestroyClassInstance(&this) { + ExecuteHookFunction(CEFunction_Remove, this); - FreePData(itPData); + new ClassInstance:pInstance = @Entity_GetClassInstance(this); + ClassInstanceDestroy(pInstance); set_pev(this, pev_gaitsequence, 0); set_pev(this, pev_iStepLeft, 0); @@ -1179,22 +989,15 @@ Trie:@Entity_AllocPData(const &this, iId) { /*--------------------------------[ Functions ]--------------------------------*/ InitStorages() { - g_dpParams = CreateDataPack(); g_itEntityIds = TrieCreate(); - g_rgEntity[Entity_Name] = ArrayCreate(CE_MAX_NAME_LENGTH); - g_rgEntity[Entity_Preset] = ArrayCreate(); - g_rgEntity[Entity_Parent] = ArrayCreate(); + g_rgEntities[Entity_Name] = ArrayCreate(CE_MAX_NAME_LENGTH); + g_rgEntities[Entity_Preset] = ArrayCreate(); + g_rgEntities[Entity_Class] = ArrayCreate(); + g_rgEntities[Entity_KeyMemberBindings] = ArrayCreate(); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - g_rgEntity[Entity_Hooks][iFunction] = ArrayCreate(); + g_rgEntities[Entity_Hooks][iFunction] = ArrayCreate(); } - - g_rgEntity[Entity_Methods] = ArrayCreate(); - g_rgEntity[Entity_Hierarchy] = ArrayCreate(); - - g_irgMethods = ArrayCreate(CE_MAX_METHOD_NAME_LENGTH, 128); - g_itMethods = TrieCreate(); - g_irgMethodCallStack = ArrayCreate(_:MethodCallStackItem); } DestroyStorages() { @@ -1203,84 +1006,99 @@ DestroyStorages() { } for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - ArrayDestroy(g_rgEntity[Entity_Hooks][iFunction]); + ArrayDestroy(g_rgEntities[Entity_Hooks][iFunction]); } for (new Entity:iData = Entity:0; iData < Entity; ++iData) { - ArrayDestroy(Array:g_rgEntity[iData]); + ArrayDestroy(Array:g_rgEntities[iData]); } - ArrayDestroy(g_rgEntity[Entity_Hierarchy]); - ArrayDestroy(g_rgEntity[Entity_Methods]); - ArrayDestroy(g_rgEntity[Entity_Parent]); - ArrayDestroy(g_rgEntity[Entity_Preset]); - ArrayDestroy(g_rgEntity[Entity_Name]); - - ArrayDestroy(g_irgMethodCallStack); - ArrayDestroy(g_irgMethods); - TrieDestroy(g_itMethods); - - DestroyDataPack(g_dpParams); + ArrayDestroy(g_rgEntities[Entity_KeyMemberBindings]); + ArrayDestroy(g_rgEntities[Entity_Class]); + ArrayDestroy(g_rgEntities[Entity_Preset]); + ArrayDestroy(g_rgEntities[Entity_Name]); TrieDestroy(g_itEntityIds); } -RegisterEntity(const szClassName[], CEPreset:iPreset = CEPreset_None, const szParent[] = "") { +RegisterEntity(const szClassname[], CEPreset:iPreset = CEPreset_None, const szParent[] = "") { new iId = g_iEntitiesNum; - new iParentId = -1; - if (!equal(szParent, "")) { + new Class:cParent = Invalid_Class; + if (!equal(szParent, NULL_STRING)) { + new iParentId = -1; if (!TrieGetCell(g_itEntityIds, szParent, iParentId)) { log_error(AMX_ERR_NATIVE, "%s Cannot extend entity class ^"%s^". The class is not exists!", LOG_PREFIX, szParent); return -1; } - iPreset = ArrayGetCell(g_rgEntity[Entity_Preset], iParentId); + iPreset = ArrayGetCell(g_rgEntities[Entity_Preset], iParentId); + cParent = ArrayGetCell(g_rgEntities[Entity_Class], iParentId); } - TrieSetCell(g_itEntityIds, szClassName, iId); - ArrayPushString(g_rgEntity[Entity_Name], szClassName); - ArrayPushCell(g_rgEntity[Entity_Preset], iPreset); - ArrayPushCell(g_rgEntity[Entity_Parent], iParentId); - ArrayPushCell(g_rgEntity[Entity_Methods], TrieCreate()); - ArrayPushCell(g_rgEntity[Entity_Hierarchy], Invalid_Array); + new Class:cEntity = ClassCreate(cParent); + ClassSetMetadata(cEntity, CLASS_METADATA_ID, iId); + + TrieSetCell(g_itEntityIds, szClassname, iId); + ArrayPushString(g_rgEntities[Entity_Name], szClassname); + ArrayPushCell(g_rgEntities[Entity_Preset], iPreset); + ArrayPushCell(g_rgEntities[Entity_Class], cEntity); + ArrayPushCell(g_rgEntities[Entity_KeyMemberBindings], TrieCreate()); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - ArrayPushCell(g_rgEntity[Entity_Hooks][iFunction], ArrayCreate(_:EntityHook)); + ArrayPushCell(g_rgEntities[Entity_Hooks][iFunction], ArrayCreate(_:EntityHook)); } g_iEntitiesNum++; - log_amx("%s Entity ^"%s^" successfully registred.", LOG_PREFIX, szClassName); + RegisterKeyMemberBinding(iId, "origin", CE_MEMBER_ORIGIN, CEMemberType_Vector); + RegisterKeyMemberBinding(iId, "angles", CE_MEMBER_ANGLES, CEMemberType_Vector); + RegisterKeyMemberBinding(iId, "master", CE_MEMBER_MASTER, CEMemberType_String); + RegisterKeyMemberBinding(iId, "targetname", CE_MEMBER_TARGETNAME, CEMemberType_String); + RegisterKeyMemberBinding(iId, "target", CE_MEMBER_TARGET, CEMemberType_String); + RegisterKeyMemberBinding(iId, "model", CE_MEMBER_MODEL, CEMemberType_String); + + log_amx("%s Entity ^"%s^" successfully registred.", LOG_PREFIX, szClassname); return iId; } FreeRegisteredEntity(iId) { for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - new Array:irgHooks = ArrayGetCell(g_rgEntity[Entity_Hooks][iFunction], iId); + new Array:irgHooks = ArrayGetCell(g_rgEntities[Entity_Hooks][iFunction], iId); ArrayDestroy(irgHooks); - ArraySetCell(g_rgEntity[Entity_Hooks][iFunction], iId, Invalid_Array); + ArraySetCell(g_rgEntities[Entity_Hooks][iFunction], iId, Invalid_Array); + } + + new Trie:itKeyMemberBindings = ArrayGetCell(g_rgEntities[Entity_KeyMemberBindings], iId); + + new TrieIter:itKeyMemberBindingsIter = TrieIterCreate(itKeyMemberBindings); + + while (!TrieIterEnded(itKeyMemberBindingsIter)) { + new Trie:itMemberTypes; TrieIterGetCell(itKeyMemberBindingsIter, itMemberTypes); + TrieDestroy(itMemberTypes); + TrieIterNext(itKeyMemberBindingsIter); } - new Trie:itMethods = ArrayGetCell(g_rgEntity[Entity_Methods], iId); - TrieDestroy(itMethods); - ArraySetCell(g_rgEntity[Entity_Methods], iId, Invalid_Trie); + TrieIterDestroy(itKeyMemberBindingsIter); - new Array:irgHierarchy = ArrayGetCell(g_rgEntity[Entity_Hierarchy], iId); - ArrayDestroy(irgHierarchy); + TrieDestroy(itKeyMemberBindings); + + new Class:cEntity = ArrayGetCell(g_rgEntities[Entity_Class], iId); + ClassDestroy(cEntity); } -GetIdByClassName(const szClassName[]) { - new iId = -1; TrieGetCell(g_itEntityIds, szClassName, iId); +GetIdByClassName(const szClassname[]) { + static iId; iId = -1; + TrieGetCell(g_itEntityIds, szClassname, iId); return iId; } -RegisterEntityHook(CEFunction:iFunction, const szClassName[], const szCallback[], iPluginId = -1) { - new iId = GetIdByClassName(szClassName); +RegisterEntityHook(CEFunction:iFunction, const szClassname[], const szCallback[], iPluginId = -1) { + new iId = GetIdByClassName(szClassname); if (iId == -1) { - log_error(AMX_ERR_NATIVE, "%s Entity ^"%s^" is not registered.", LOG_PREFIX, szClassName); + log_error(AMX_ERR_NATIVE, "%s Entity ^"%s^" is not registered.", LOG_PREFIX, szClassname); return -1; } @@ -1296,156 +1114,97 @@ RegisterEntityHook(CEFunction:iFunction, const szClassName[], const szCallback[] rgHook[EntityHook_PluginID] = iPluginId; rgHook[EntityHook_FuncID] = iFunctionId; - new Array:irgHooks = ArrayGetCell(g_rgEntity[Entity_Hooks][iFunction], iId); + new Array:irgHooks = ArrayGetCell(g_rgEntities[Entity_Hooks][iFunction], iId); new iHookId = ArrayPushArray(irgHooks, rgHook[EntityHook:0], _:EntityHook); return iHookId; } -RegisterEntityMethod(const szClassName[], const szMethod[], const szCallback[], iPluginId = -1, Array:irgParamTypes, bool:bVirtual) { - new iId = GetIdByClassName(szClassName); - if (iId == -1) { - log_error(AMX_ERR_NATIVE, "%s Entity ^"%s^" is not registered.", LOG_PREFIX, szClassName); - return; - } +RegisterKeyMemberBinding(iId, const szKey[], const szMember[], CEMemberType:iType) { + new Trie:itKeyMemberBindings = ArrayGetCell(g_rgEntities[Entity_KeyMemberBindings], iId); - new iFunctionId = get_func_id(szCallback, iPluginId); - if (iFunctionId < 0) { - new szFilename[32]; - get_plugin(iPluginId, szFilename, charsmax(szFilename)); - log_error(AMX_ERR_NATIVE, "%s Function ^"%s^" not found in plugin ^"%s^".", LOG_PREFIX, szCallback, szFilename); - return; - } - - new Trie:itMethods; itMethods = ArrayGetCell(g_rgEntity[Entity_Methods], iId); - - if (TrieKeyExists(itMethods, szMethod)) { - log_error(AMX_ERR_NATIVE, "%s Method ^"%s^" is already registered for ^"%s^" entity.", LOG_PREFIX, szMethod, szClassName); - return; + new Trie:itMemberTypes = Invalid_Trie; + if (!TrieGetCell(itKeyMemberBindings, szKey, itMemberTypes)) { + itMemberTypes = TrieCreate(); + TrieSetCell(itKeyMemberBindings, szKey, itMemberTypes); } - new iParentId = ArrayGetCell(g_rgEntity[Entity_Parent], iId); - if (iParentId != -1) { - new rgMethod[Method]; - if (FindEntityMethodInHierarchy(iId, szMethod, rgMethod) != -1) { - if (rgMethod[Method_IsVirtual]) { - if (!CompareParamTypes(rgMethod[Method_ParamTypes], irgParamTypes)) { - log_error(AMX_ERR_NATIVE, "%s Arguments mismatch in the overridden virtual method ^"%s^".", LOG_PREFIX, szMethod, szClassName); - return; - } - } - } - } - - new rgMethod[Method]; - rgMethod[Method_PluginID] = iPluginId; - rgMethod[Method_FunctionID] = iFunctionId; - rgMethod[Method_ParamTypes] = irgParamTypes; - rgMethod[Method_IsVirtual] = bVirtual; - - TrieSetArray(itMethods, szMethod, rgMethod[Method:0], _:Method); - - AddMethodToGlobalTable(szMethod); -} - -Trie:AllocPData(iId, pEntity) { - new Trie:itPData = TrieCreate(); - SetPDataMember(itPData, CE_MEMBER_ID, iId); - SetPDataMember(itPData, CE_MEMBER_WORLD, false); - SetPDataMember(itPData, CE_MEMBER_POINTER, pEntity); - SetPDataMember(itPData, CE_MEMBER_INITIALIZED, false); - - return itPData; + TrieSetCell(itMemberTypes, szMember, iType); } -FreePData(Trie:itPData) { - TrieDestroy(itPData); -} +RemoveKeyMemberBinding(iId, const szKey[], const szMember[]) { + new Trie:itKeyMemberBindings = ArrayGetCell(g_rgEntities[Entity_KeyMemberBindings], iId); -bool:HasPDataMember(Trie:itPData, const szMember[]) { - return TrieKeyExists(itPData, szMember); -} - -any:GetPDataMember(Trie:itPData, const szMember[]) { - static any:value; - return TrieGetCell(itPData, szMember, value) ? value : 0; -} - -DeletePDataMember(Trie:itPData, const szMember[]) { - TrieDeleteKey(itPData, szMember); -} - -SetPDataMember(Trie:itPData, const szMember[], any:value) { - TrieSetCell(itPData, szMember, value); -} + new Trie:itMemberTypes = Invalid_Trie; + if (!TrieGetCell(itKeyMemberBindings, szKey, itMemberTypes)) { + return; + } -bool:GetPDataMemberString(Trie:itPData, const szMember[], szOutput[], iLen) { - copy(szOutput, iLen, NULL_STRING); - return !!TrieGetString(itPData, szMember, szOutput, iLen); + TrieDeleteKey(itMemberTypes, szMember); } -SetPDataMemberString(Trie:itPData, const szMember[], const szValue[]) { - TrieSetString(itPData, szMember, szValue); -} +ClassInstance:AllocPData(iId, pEntity) { + static Class:cEntity; cEntity = ArrayGetCell(g_rgEntities[Entity_Class], iId); + static ClassInstance:pInstance; pInstance = ClassInstanceCreate(cEntity); -bool:GetPDataMemberVec(Trie:itPData, const szMember[], Float:vecOut[3]) { - xs_vec_copy(Float:{0.0, 0.0, 0.0}, vecOut); - return !!TrieGetArray(itPData, szMember, vecOut, 3); -} + ClassInstanceSetMember(pInstance, CE_MEMBER_ID, iId); + ClassInstanceSetMember(pInstance, CE_MEMBER_WORLD, false); + ClassInstanceSetMember(pInstance, CE_MEMBER_POINTER, pEntity); + ClassInstanceSetMember(pInstance, CE_MEMBER_INITIALIZED, false); -SetPDataMemberVec(Trie:itPData, const szMember[], const Float:vecValue[3]) { - TrieSetArray(itPData, szMember, vecValue, 3); + return pInstance; } -ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { +ExecuteHookFunction(CEFunction:iFunction, pEntity, any:...) { new iResult = 0; - // Do not use static here! (recursion) - new Array:irgHierarchy = GetEntityHierarchy(iId); - new iHierarchySize = ArraySize(irgHierarchy); + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); + + new Class:rgHierarchy[MAX_HOOK_CALL_HIERARCHY_DEPTH], iHierarchySize; + GetInstanceHierarchy(pInstance, rgHierarchy, iHierarchySize); - for (new i = 0; i < iHierarchySize; ++i) { - new iCurrentId; iCurrentId = ArrayGetCell(irgHierarchy, i); - new Array:irgHooks; irgHooks = ArrayGetCell(g_rgEntity[Entity_Hooks][iFunction], iCurrentId); + for (new i = iHierarchySize - 1; i >= 0; --i) { + new iCurrentId; iCurrentId = ClassGetMetadata(rgHierarchy[i], CLASS_METADATA_ID); + new Array:irgHooks; irgHooks = ArrayGetCell(g_rgEntities[Entity_Hooks][iFunction], iCurrentId); new iHooksNum; iHooksNum = ArraySize(irgHooks); for (new iHookId = 0; iHookId < iHooksNum; ++iHookId) { static iPluginId; iPluginId = ArrayGetCell(irgHooks, iHookId, _:EntityHook_PluginID); static iFunctionId; iFunctionId = ArrayGetCell(irgHooks, iHookId, _:EntityHook_FuncID); - + if (callfunc_begin_i(iFunctionId, iPluginId) == 1) { callfunc_push_int(pEntity); switch (iFunction) { case CEFunction_Touch, CEFunction_Touched: { - static pToucher; pToucher = getarg(3); + static pToucher; pToucher = getarg(2); callfunc_push_int(pToucher); } case CEFunction_Kill, CEFunction_Killed: { - static pKiller; pKiller = getarg(3); - static bool:bPicked; bPicked = bool:getarg(4); + static pKiller; pKiller = getarg(2); + static bool:bPicked; bPicked = bool:getarg(3); callfunc_push_int(pKiller); callfunc_push_int(bPicked); } case CEFunction_Pickup, CEFunction_Picked: { - static pPlayer; pPlayer = getarg(3); + static pPlayer; pPlayer = getarg(2); callfunc_push_int(pPlayer); } case CEFunction_Activate, CEFunction_Activated: { - static pPlayer; pPlayer = getarg(3); + static pPlayer; pPlayer = getarg(2); callfunc_push_int(pPlayer); } case CEFunction_KeyValue: { static szKey[32]; for (new i = 0; i < charsmax(szKey); ++i) { - szKey[i] = getarg(3, i); + szKey[i] = getarg(2, i); if (szKey[i] == '^0') break; } static szValue[32]; for (new i = 0; i < charsmax(szValue); ++i) { - szValue[i] = getarg(4, i); + szValue[i] = getarg(3, i); if (szValue[i] == '^0') break; } @@ -1463,163 +1222,45 @@ ExecuteHookFunction(CEFunction:iFunction, iId, pEntity, any:...) { return iResult; } -ExecuteMethod(const szMethod[], const iId, const pEntity, const DataPack:dpParams) { - static Trie:itMethods; itMethods = ArrayGetCell(g_rgEntity[Entity_Methods], iId); - - static rgMethod[Method]; - if (!TrieGetArray(itMethods, szMethod, rgMethod[Method:0], _:Method)) { - return 0; - } +GetInstanceHierarchy(ClassInstance:pInstance, Class:rgValue[MAX_HOOK_CALL_HIERARCHY_DEPTH], &iSize) { + iSize = 0; - new iResult = 0; - - PushMethodToCallStack(pEntity, iId, szMethod); - - if (callfunc_begin_i(rgMethod[Method_FunctionID], rgMethod[Method_PluginID]) == 1) { - callfunc_push_int(pEntity); - - #if defined _datapack_included - static Array:irgParamTypes; irgParamTypes = rgMethod[Method_ParamTypes]; - - if (irgParamTypes != Invalid_Array) { - static iParamsNum; iParamsNum = ArraySize(irgParamTypes); - - for (new iParam = 0; iParam < iParamsNum; ++iParam) { - static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:MethodParam_Type); - - switch (iType) { - case CE_MP_Cell: { - static iValue; iValue = ReadPackCell(dpParams); - callfunc_push_int(iValue); - } - case CE_MP_Float: { - static Float:flValue; flValue = ReadPackFloat(dpParams); - callfunc_push_float(flValue); - } - case CE_MP_String: { - ReadPackString(dpParams, g_szBuffer, charsmax(g_szBuffer)); - callfunc_push_str(g_szBuffer); - } - case CE_MP_Array: { - static iLen; iLen = ReadPackArray(dpParams, g_rgiBuffer); - callfunc_push_array(g_rgiBuffer, iLen, false); - } - case CE_MP_FloatArray: { - static iLen; iLen = ReadPackFloatArray(dpParams, g_rgflBuffer); - callfunc_push_array(_:g_rgflBuffer, iLen, false); - } - } - } - } - #endif - - iResult = callfunc_end(); + for (new Class:cStart = ClassInstanceGetClass(pInstance); cStart != Invalid_Class; cStart = ClassGetBaseClass(cStart)) { + rgValue[iSize] = cStart; + iSize++; } - - PopMethodFromCallStack(); - - return iResult; } -FindEntityMethodInHierarchy(iId, const szMethod[], rgMethod[Method]) { - new iCurrentId = iId; +Array:ReadMethodParamsFromNativeCall(iStartArg, iArgc) { + static Array:irgParams; irgParams = ArrayCreate(); - do { - static Trie:itMethods; itMethods = ArrayGetCell(g_rgEntity[Entity_Methods], iCurrentId); + for (new iParam = iStartArg; iParam <= iArgc; ++iParam) { + static iType; iType = get_param_byref(iParam); - if (TrieGetArray(itMethods, szMethod, rgMethod[Method:0], _:Method)) { - break; + switch (iType) { + case CE_MP_Cell: { + ArrayPushCell(irgParams, CMP_Cell); + } + case CE_MP_Float: { + ArrayPushCell(irgParams, CMP_Float); + } + case CE_MP_String: { + ArrayPushCell(irgParams, CMP_String); + } + case CE_MP_Array: { + ArrayPushCell(irgParams, CMP_Array); + ArrayPushCell(irgParams, get_param_byref(iParam + 1)); + iParam++; + } + case CE_MP_FloatArray: { + ArrayPushCell(irgParams, CMP_FloatArray); + ArrayPushCell(irgParams, get_param_byref(iParam + 1)); + iParam++; } - - } while ((iCurrentId = ArrayGetCell(g_rgEntity[Entity_Parent], iCurrentId)) != -1); - - return iCurrentId; -} - -Array:GetEntityHierarchy(iId) { - static Array:irgHierarchy; irgHierarchy = ArrayGetCell(g_rgEntity[Entity_Hierarchy], iId); - - if (irgHierarchy == Invalid_Array) { - irgHierarchy = CreateHierarchyList(iId); - ArraySetCell(g_rgEntity[Entity_Hierarchy], iId, irgHierarchy); - } - - return irgHierarchy; -} - -Array:CreateHierarchyList(iId) { - new Array:irgHierarchy = ArrayCreate(); - - new iCurrentId = iId; - - do { - if (iCurrentId == iId) { - ArrayPushCell(irgHierarchy, iCurrentId); - } else { - ArrayInsertCellBefore(irgHierarchy, 0, iCurrentId); } - iCurrentId = ArrayGetCell(g_rgEntity[Entity_Parent], iCurrentId); - } while (iCurrentId != -1); - - return irgHierarchy; -} - -AddMethodToGlobalTable(const szMethod[]) { - if (TrieKeyExists(g_itMethods, szMethod)) return -1; - - new iIndex = ArraySize(g_irgMethods); - - ArrayPushString(g_irgMethods, szMethod); - TrieSetCell(g_itMethods, szMethod, iIndex); - - return iIndex; -} - -GetNameFromMethodGlobalTable(iIndex, szMethod[], iLen) { - return ArrayGetString(g_irgMethods, iIndex, szMethod, iLen); -} - -GetIndexFromMethodGlobalTable(const szMethod[]) { - static iValue; - if (!TrieGetCell(g_itMethods, szMethod, iValue)) return -1; - - return iValue; -} - -bool:IsMethodCallStackEmtpy() { - return !ArraySize(g_irgMethodCallStack); -} - -PushMethodToCallStack(const pEntity, const iId, const szMethod[]) { - static rgCallStackItem[MethodCallStackItem]; - rgCallStackItem[MethodCallStackItem_Entity] = pEntity; - rgCallStackItem[MethodCallStackItem_EntityID] = iId; - rgCallStackItem[MethodCallStackItem_Method] = GetIndexFromMethodGlobalTable(szMethod); - - ArrayPushArray(g_irgMethodCallStack, rgCallStackItem[MethodCallStackItem:0], sizeof(rgCallStackItem)); -} - -PopMethodFromCallStack() { - ArrayDeleteItem(g_irgMethodCallStack, ArraySize(g_irgMethodCallStack) - 1); -} - -GetCurrentMethodFromCallStack(rgCallStackItem[MethodCallStackItem]) { - ArrayGetArray(g_irgMethodCallStack, ArraySize(g_irgMethodCallStack) - 1, rgCallStackItem[MethodCallStackItem:0], sizeof(rgCallStackItem)); -} - -CompareParamTypes(const &Array:irgParams, const &Array:irgOtherParams) { - new iSize = ArraySize(irgParams); - new iOtherSize = ArraySize(irgOtherParams); - - if (iSize != iOtherSize) { - return false; } - for (new i = 0; i < iSize; ++i) { - if (ArrayGetCell(irgParams, i) != ArrayGetCell(irgOtherParams, i)) return false; - } - - return true; + return irgParams; } /*--------------------------------[ Stocks ]--------------------------------*/ @@ -1637,10 +1278,11 @@ stock bool:UTIL_IsMasterTriggered(const szMaster[], pActivator) { } stock UTIL_ParseVector(const szBuffer[], Float:vecOut[3]) { - new rgszOrigin[3][8]; + static rgszOrigin[3][8]; parse(szBuffer, rgszOrigin[0], charsmax(rgszOrigin[]), rgszOrigin[1], charsmax(rgszOrigin[]), rgszOrigin[2], charsmax(rgszOrigin[])); for (new i = 0; i < 3; ++i) { vecOut[i] = str_to_float(rgszOrigin[i]); } } + diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index aa77165..511f824 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -10,33 +10,33 @@ /** * Register entity * - * @param szName Name of an entity + * @param szClassname Name of an entity * @param iPreset Preset for an entity * * @return Handler of the registered entity */ -native CE:CE_Register(const szName[], CEPreset:iPreset = CEPreset_None); +native CE:CE_Register(const szClassname[], CEPreset:iPreset = CEPreset_None); /** * Extend entity * - * @param szName Name of an entity + * @param szClassname Name of an entity * @param iPreset Preset for an entity * * @return Handler of the registered entity */ -native CE:CE_RegisterDerived(const szName[], const szBase[]); +native CE:CE_RegisterDerived(const szClassname[], const szBase[]); /** * Spawn entity * - * @param szName Name of entity + * @param szClassname Name of entity * @param vecOrigin Spawn origin * @param bTemp Mark entity as an temporary entity * * @return Entity index */ -native CE_Create(const szName[], const Float:vecOrigin[3] = {0.0, 0.0, 0.0}, bool:bTemp = true); +native CE_Create(const szClassname[], const Float:vecOrigin[3] = {0.0, 0.0, 0.0}, bool:bTemp = true); /** * Restart entity @@ -66,41 +66,45 @@ native bool:CE_Remove(pEntity); * Register new hook for entity * * @param function Function handler - * @param szName Name of entity + * @param szClassname Name of entity * @param szCallback Callback */ -native CE_RegisterHook(const szName[], CEFunction:function, const szCallback[]); +native CE_RegisterHook(const szClassname[], CEFunction:function, const szCallback[]); + +native CE_RegisterKeyMemberBinding(const szClassname[], const szKey[], const szMember[], CEMemberType:iType); + +native CE_RemoveKeyMemberBinding(const szClassname[], const szKey[], const szMember[]); /** * Registers a new method for entity. * - * @param szName Name of entity + * @param szClassname Name of entity * @param szMethod Name of method * @param szCallback Callback * * @noreturn */ -native CE_RegisterMethod(const szName[], const szMethod[], const szCallback[], any:...); +native CE_RegisterMethod(const szClassname[], const szMethod[], const szCallback[], any:...); /** * Registers a new virtual method for entity. * - * @param szName Name of entity + * @param szClassname Name of entity * @param szMethod Name of method * @param szCallback Callback * * @noreturn */ -native CE_RegisterVirtualMethod(const szName[], const szMethod[], const szCallback[], any:...); +native CE_RegisterVirtualMethod(const szClassname[], const szMethod[], const szCallback[], any:...); /** * Gets handler of entity by name * - * @param szName Name of entity + * @param szClassname Name of entity * * @return Handler of the registered entity or -1 otherwise */ -native CE:CE_GetHandler(const szName[]); +native CE:CE_GetHandler(const szClassname[]); /** * Gets handler of entity by index @@ -154,7 +158,7 @@ native any:CE_GetMember(pEntity, const szMember[]); * @param szMember Member name * @param value Value to set */ -native CE_SetMember(pEntity, const szMember[], any:value); +native CE_SetMember(pEntity, const szMember[], any:value, bool:bReplace = true); /** * Gets vector member of an entity @@ -172,7 +176,7 @@ native bool:CE_GetMemberVec(pEntity, const szMember[], Float:vecOut[3]); * @param szMember Member name * @param vecValue Vector to set */ -native CE_SetMemberVec(pEntity, const szMember[], const Float:vecValue[3]); +native CE_SetMemberVec(pEntity, const szMember[], const Float:vecValue[3], bool:bReplace = true); /** * Gets string member of an entity @@ -191,7 +195,7 @@ native bool:CE_GetMemberString(pEntity, const szMember[], szOut[], iLen); * @param szMember Member name * @param szValue String value to set */ -native CE_SetMemberString(pEntity, const szMember[], const szValue[]); +native CE_SetMemberString(pEntity, const szMember[], const szValue[], bool:bReplace = true); /** * Call a method for entity. diff --git a/api/custom-entities/include/api_custom_entities_const.inc b/api/custom-entities/include/api_custom_entities_const.inc index 75ba0f6..c4c92d4 100644 --- a/api/custom-entities/include/api_custom_entities_const.inc +++ b/api/custom-entities/include/api_custom_entities_const.inc @@ -7,8 +7,8 @@ #define CE_ENTITY_SECRET ('c'+'e'+'2') #define CE_MAX_NAME_LENGTH 64 -#define CE_MAX_MEMBER_LENGTH 64 -#define CE_MAX_CALLBACK_LENGTH 64 +#define CE_MAX_MEMBER_NAME_LENGTH 64 +#define CE_MAX_CALLBACK_NAME_LENGTH 64 #define CE_MAX_METHOD_NAME_LENGTH 64 #define CE_MEMBER_ID "_id" @@ -31,6 +31,8 @@ #define CE_MEMBER_LASTINIT "_flLastInit" #define CE_MEMBER_LASTSPAWN "_flLastSpawn" #define CE_MEMBER_PLUGINID "_iPluginId" +#define CE_MEMBER_TARGETNAME "_Targetname" +#define CE_MEMBER_TARGET "_Target" enum CE { CE_InvalidHandler = -1 @@ -67,6 +69,14 @@ enum CEFunction { CEFunction_Remove, // Calls before entity remove }; +enum CEMemberType { + CEMemberType_Invalid = -1, + CEMemberType_Cell, + CEMemberType_Float, + CEMemberType_String, + CEMemberType_Vector +}; + enum { CE_MP_Invalid = -1, CE_MP_Cell, From b9bf7da879423b53c13d5e63669426065b6aa83e Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 10 Mar 2024 22:04:52 +0100 Subject: [PATCH 159/231] optimizations --- util/datapack_stocks.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/datapack_stocks.inc b/util/datapack_stocks.inc index e9a545a..390cc66 100644 --- a/util/datapack_stocks.inc +++ b/util/datapack_stocks.inc @@ -12,7 +12,7 @@ #endif stock ReadPackArray(DataPack:pack, buffer[], maxlen = -1) { - new len = ReadPackCell(pack); + static len; len = ReadPackCell(pack); if (maxlen == -1) maxlen = len; @@ -26,7 +26,7 @@ stock ReadPackArray(DataPack:pack, buffer[], maxlen = -1) { } stock ReadPackFloatArray(DataPack:pack, Float:buffer[], maxlen = -1) { - new len = ReadPackCell(pack); + static len; len = ReadPackCell(pack); if (maxlen == -1) maxlen = len; From 93900840b03cb652cd99313c83341663225f1098 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 10 Mar 2024 22:05:32 +0100 Subject: [PATCH 160/231] update fire entity --- entities/entity_fire.sma | 112 ++++++++++----------------------------- 1 file changed, 29 insertions(+), 83 deletions(-) diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index 1a464ca..47e4ac4 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -1,8 +1,3 @@ -/* - Credits: - georgik57 aka D7 - for the code the fire effect is based on. -*/ - #pragma semicolon 1 #include @@ -95,13 +90,17 @@ public plugin_precache() { g_iCeHandler = CE_Register(ENTITY_NAME); CE_RegisterHook(ENTITY_NAME, CEFunction_Init, "@Entity_Init"); - CE_RegisterHook(ENTITY_NAME, CEFunction_KeyValue, "@Entity_KeyValue"); CE_RegisterHook(ENTITY_NAME, CEFunction_Spawned, "@Entity_Spawned"); CE_RegisterHook(ENTITY_NAME, CEFunction_Touch, "@Entity_Touch"); CE_RegisterHook(ENTITY_NAME, CEFunction_Think, "@Entity_Think"); CE_RegisterHook(ENTITY_NAME, CEFunction_Killed, "@Entity_Killed"); CE_RegisterHook(ENTITY_NAME, CEFunction_Remove, "@Entity_Remove"); + CE_RegisterKeyMemberBinding(ENTITY_NAME, "damage", m_flDamage, CEMemberType_Float); + CE_RegisterKeyMemberBinding(ENTITY_NAME, "lifetime", m_flChildrenLifeTime, CEMemberType_Float); + CE_RegisterKeyMemberBinding(ENTITY_NAME, "range", m_flSpreadRange, CEMemberType_Float); + CE_RegisterKeyMemberBinding(ENTITY_NAME, "spread", m_bAllowSpread, CEMemberType_Cell); + register_forward(FM_OnFreeEntPrivateData, "FMHook_OnFreeEntPrivateData"); } @@ -118,18 +117,6 @@ public plugin_end() { ArrayDestroy(g_irgFireEntities); } -@Entity_KeyValue(this, const szKey[], const szValue[]) { - if (equal(szKey, "damage")) { - CE_SetMember(this, m_flDamage, str_to_float(szValue)); - } else if (equal(szKey, "lifetime")) { - CE_SetMember(this, m_flChildrenLifeTime, str_to_float(szValue)); - } else if (equal(szKey, "range")) { - CE_SetMember(this, m_flSpreadRange, str_to_float(szValue)); - } else if (equal(szKey, "spread")) { - CE_SetMember(this, m_bAllowSpread, str_to_num(szValue)); - } -} - @Entity_Init(this) { CE_SetMemberVec(this, CE_MEMBER_MINS, Float:{-16.0, -16.0, -16.0}); CE_SetMemberVec(this, CE_MEMBER_MAXS, Float:{16.0, 16.0, 16.0}); @@ -279,9 +266,7 @@ public plugin_end() { } @Entity_SpreadThink(this) { - if (!@Entity_CanSpread(this)) { - return; - } + if (!@Entity_CanSpread(this)) return; static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); new Float:flRange = CE_GetMember(this, m_flSpreadRange); @@ -318,24 +303,19 @@ public plugin_end() { } @Entity_UpdateSize(this) { - if (pev(this, pev_movetype) != MOVETYPE_FOLLOW) { - return; - } + if (pev(this, pev_movetype) != MOVETYPE_FOLLOW) return; + + static pAimEnt; pAimEnt = pev(this, pev_aiment); - new pAimEnt = pev(this, pev_aiment); + static szModel[256]; pev(pAimEnt, pev_model, szModel, charsmax(szModel)); + static iModelStrLen; iModelStrLen = strlen(szModel); + static bool:bHasModel; bHasModel = !!iModelStrLen; + static bool:bIsBspModel; bIsBspModel = bHasModel && szModel[0] == '*'; + static bool:bIsSprite; bIsSprite = iModelStrLen > 5 && equal(szModel[iModelStrLen - 5], ".spr"); static Float:vecMins[3]; static Float:vecMaxs[3]; - static szModel[256]; - pev(pAimEnt, pev_model, szModel, charsmax(szModel)); - - new iModelStrLen = strlen(szModel); - - static bool:bIsBspModel; bIsBspModel = szModel[0] == '*'; - static bool:bHasModel; bHasModel = !!pev(pAimEnt, pev_modelindex); - static bool:bIsSprite; bIsSprite = iModelStrLen > 4 && equal(szModel[iModelStrLen - 4], ".spr"); - if (!bHasModel || bIsBspModel || bIsSprite) { pev(pAimEnt, pev_mins, vecMins); pev(pAimEnt, pev_maxs, vecMaxs); @@ -353,13 +333,8 @@ public plugin_end() { } bool:@Entity_CanSpread(this) { - if (!get_pcvar_bool(g_pCvarSpread)) { - return false; - } - - if (!CE_GetMember(this, m_bAllowSpread)) { - return false; - } + if (!get_pcvar_bool(g_pCvarSpread)) return false; + if (!CE_GetMember(this, m_bAllowSpread)) return false; return true; } @@ -373,33 +348,21 @@ bool:@Entity_CanSpread(this) { static szTargetClassName[32]; pev(pTarget, pev_classname, szTargetClassName, charsmax(szTargetClassName)); - if (equal(szTargetClassName, "func_water")) { - return true; - } + if (equal(szTargetClassName, "func_water")) return true; } return false; } bool:@Entity_Damage(this, pTarget) { - if (!pTarget) { - return false; - } - - if (pev(pTarget, pev_takedamage) == DAMAGE_NO) { - return false; - } - - // if (pev(pTarget, pev_solid) <= SOLID_TRIGGER) { - // return false; - // } + if (!pTarget) return false; + if (pev(pTarget, pev_takedamage) == DAMAGE_NO) return false; + // if (pev(pTarget, pev_solid) <= SOLID_TRIGGER) return false; static Float:flGameTime; flGameTime = get_gametime(); static Float:flNextDamage; flNextDamage = CE_GetMember(this, m_flNextDamage); - if (flNextDamage > flGameTime) { - return false; - } + if (flNextDamage > flGameTime) return false; static Float:flDamage; flDamage = Float:CE_GetMember(this, m_flDamage) * FIRE_DAMAGE_RATE; if (flDamage) { @@ -434,14 +397,10 @@ bool:@Entity_Damage(this, pTarget) { } @Entity_Spread(this, pTarget) { - if (!@Entity_CanIgnite(this, pTarget)) { - return 0; - } + if (!@Entity_CanIgnite(this, pTarget)) return 0; new pChild = @Entity_CreateChild(this); - if (!pChild) { - return 0; - } + if (!pChild) return 0; set_pev(pChild, pev_aiment, pTarget); set_pev(pChild, pev_movetype, MOVETYPE_FOLLOW); @@ -453,9 +412,7 @@ bool:@Entity_Damage(this, pTarget) { static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); new pChild = CE_Create(ENTITY_NAME, vecOrigin); - if (!pChild) { - return 0; - } + if (!pChild) return 0; dllfunc(DLLFunc_Spawn, pChild); @@ -474,28 +431,17 @@ bool:@Entity_Damage(this, pTarget) { } @Entity_CanIgnite(this, pTarget) { - if (pev(pTarget, pev_takedamage) == DAMAGE_NO) { - return false; - } - - if (pev(pTarget, pev_deadflag) != DEAD_NO) { - return false; - } + if (pev(pTarget, pev_takedamage) == DAMAGE_NO) return false; + if (pev(pTarget, pev_deadflag) != DEAD_NO) return false; // Fire entity cannot be ignited - if (CE_GetHandlerByEntity(pTarget) == g_iCeHandler) { - return false; - } + if (CE_GetHandlerByEntity(pTarget) == g_iCeHandler) return false; static iMoveType; iMoveType = pev(this, pev_movetype); static pAimEnt; pAimEnt = pev(this, pev_aiment); - if (iMoveType == MOVETYPE_FOLLOW && pAimEnt == pTarget) { - return false; - } + if (iMoveType == MOVETYPE_FOLLOW && pAimEnt == pTarget) return false; - if (@Base_IsOnFire(pTarget)) { - return false; - } + if (@Base_IsOnFire(pTarget)) return false; return true; } From 03481b1bb50096291d892bb4591d9b467f6a6bf9 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 10 Mar 2024 22:11:36 +0100 Subject: [PATCH 161/231] fix const include --- .../include/api_player_effects_const.inc | 23 ++----------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/api/player-effects/include/api_player_effects_const.inc b/api/player-effects/include/api_player_effects_const.inc index b38f180..142dd97 100644 --- a/api/player-effects/include/api_player_effects_const.inc +++ b/api/player-effects/include/api_player_effects_const.inc @@ -1,23 +1,4 @@ -#if defined _api_particles_const_included +#if defined _api_player_effects_const_included #endinput #endif -#define _api_particles_const_included - -#define PARTICLE_MAX_MEMBER_LENGTH 64 - -enum ParticleHook { - ParticleHook_System_Init, - ParticleHook_System_Destroy, - ParticleHook_System_Think, - ParticleHook_System_Activated, - ParticleHook_System_Deactivated, - ParticleHook_Particle_Init, - ParticleHook_Particle_Destroy, - ParticleHook_Particle_Think, - ParticleHook_Particle_EntityInit -}; - -enum ParticleEffectFlag (<<=1) { - ParticleEffectFlag_None = 0, - ParticleEffectFlag_AttachParticles = 1 -}; +#define _api_player_effects_const_included From eb5c1dd58acbf6d257778f16d04ba5bf4a6cf314 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 10 Mar 2024 22:12:30 +0100 Subject: [PATCH 162/231] small fixes --- util/datapack_stocks.inc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/util/datapack_stocks.inc b/util/datapack_stocks.inc index 390cc66..d662bc1 100644 --- a/util/datapack_stocks.inc +++ b/util/datapack_stocks.inc @@ -14,11 +14,10 @@ stock ReadPackArray(DataPack:pack, buffer[], maxlen = -1) { static len; len = ReadPackCell(pack); - if (maxlen == -1) maxlen = len; + if (maxlen != -1) len = min(maxlen, len); for (new i = 0; i < len; ++i) { static value; value = ReadPackCell(pack); - if (i >= maxlen) continue; buffer[i] = value; } @@ -28,11 +27,10 @@ stock ReadPackArray(DataPack:pack, buffer[], maxlen = -1) { stock ReadPackFloatArray(DataPack:pack, Float:buffer[], maxlen = -1) { static len; len = ReadPackCell(pack); - if (maxlen == -1) maxlen = len; + if (maxlen != -1) len = min(maxlen, len); for (new i = 0; i < len; ++i) { static Float:value; value = ReadPackFloat(pack); - if (i >= maxlen) continue; buffer[i] = value; } From 7bffa84a021f449a7ecfd0b03d46636d0b242b96 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 10 Mar 2024 23:15:59 +0100 Subject: [PATCH 163/231] fix model update --- api/player-model/api_player_model.sma | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/api/player-model/api_player_model.sma b/api/player-model/api_player_model.sma index c08248a..aa89506 100644 --- a/api/player-model/api_player_model.sma +++ b/api/player-model/api_player_model.sma @@ -234,19 +234,23 @@ public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { // ANCHOR: Methods @Player_UpdateAnimationModel(this) { - static szAnimExt[32]; - get_ent_data_string(this, "CBasePlayer", "m_szAnimExtention", szAnimExt, charsmax(szAnimExt)); + new iAnimationIndex = 0; - new iAnimationIndex = is_user_alive(this) ? GetAnimationIndexByAnimExt(szAnimExt) : 0; + if (is_user_alive(this)) { + static szAnimExt[32]; get_ent_data_string(this, "CBasePlayer", "m_szAnimExtention", szAnimExt, charsmax(szAnimExt)); + iAnimationIndex = GetAnimationIndexByAnimExt(szAnimExt); + } + if (iAnimationIndex != g_rgiPlayerAnimationIndex[this]) { g_rgiPlayerAnimationIndex[this] = iAnimationIndex; - @Player_UpdateModel(this, false); + @Player_UpdateModel(this, !iAnimationIndex); } } @Player_UpdateCurrentModel(this) { new bool:bUsedCustom = g_rgbPlayerUseCustomModel[this]; new bool:bSetDefaultModel = false; + new bool:bReset = !!equal(g_rgszCurrentPlayerModel[this], NULL_STRING); g_rgbPlayerUseCustomModel[this] = !equal(g_rgszCustomPlayerModel[this], NULL_STRING); @@ -260,7 +264,7 @@ public Message_ClCorpse(iMsgId, iMsgDest, pPlayer) { if (!g_bIsCStrike && bSetDefaultModel) { set_user_info(this, "model", g_rgszDefaultPlayerModel[this]); } else { - @Player_UpdateModel(this, bUsedCustom && !g_rgbPlayerUseCustomModel[this]); + @Player_UpdateModel(this, bReset || bUsedCustom && !g_rgbPlayerUseCustomModel[this]); } } @@ -366,8 +370,10 @@ bool:@Player_ShouldUseCurrentModel(this) { // ANCHOR: Functions GetAnimationIndexByAnimExt(const szAnimExt[]) { - static szSequence[32]; - format(szSequence, charsmax(szSequence), "ref_aim_%s", szAnimExt); + if (equal(szAnimExt, NULL_STRING)) return 0; + + static szSequence[32]; format(szSequence, charsmax(szSequence), "ref_aim_%s", szAnimExt); + return GetAnimationIndexBySequence(szSequence); } From dc62542fca1b68ccf2034fa20275e82657511dad Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 11 Mar 2024 06:45:34 +0100 Subject: [PATCH 164/231] fix fire bounding box --- entities/entity_fire.sma | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/entities/entity_fire.sma b/entities/entity_fire.sma index 47e4ac4..c2b435b 100644 --- a/entities/entity_fire.sma +++ b/entities/entity_fire.sma @@ -4,6 +4,7 @@ #include #include #include +#include #include @@ -313,14 +314,16 @@ public plugin_end() { static bool:bIsBspModel; bIsBspModel = bHasModel && szModel[0] == '*'; static bool:bIsSprite; bIsSprite = iModelStrLen > 5 && equal(szModel[iModelStrLen - 5], ".spr"); - static Float:vecMins[3]; - static Float:vecMaxs[3]; + static Float:vecMins[3]; xs_vec_set(vecMins, 0.0, 0.0, 0.0); + static Float:vecMaxs[3]; xs_vec_set(vecMaxs, 0.0, 0.0, 0.0); - if (!bHasModel || bIsBspModel || bIsSprite) { + if (bHasModel && bIsBspModel && bIsSprite) { + GetModelBoundingBox(pAimEnt, vecMins, vecMaxs, Model_CurrentSequence); + } + + if (!xs_vec_distance(vecMins, vecMaxs)) { pev(pAimEnt, pev_mins, vecMins); pev(pAimEnt, pev_maxs, vecMaxs); - } else { - GetModelBoundingBox(pAimEnt, vecMins, vecMaxs, Model_CurrentSequence); } // Add fire borders (useful for fire spread) From 09e0f57a261b7d90f814c507c3fba37feff939f1 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 12 Mar 2024 20:09:02 +0100 Subject: [PATCH 165/231] fix path positions compute --- api/navsystem/api_navsystem.sma | 131 +++++++++++--------------------- 1 file changed, 44 insertions(+), 87 deletions(-) diff --git a/api/navsystem/api_navsystem.sma b/api/navsystem/api_navsystem.sma index 8eafce1..0fe5c5e 100644 --- a/api/navsystem/api_navsystem.sma +++ b/api/navsystem/api_navsystem.sma @@ -311,9 +311,7 @@ public Struct:Native_GetAreaById(iPluginId, iArgc) { } public Struct:Native_GetAreaFromGrid(iPluginId, iArgc) { - static Float:vecPos[3]; - get_array_f(1, vecPos, sizeof(vecPos)); - + static Float:vecPos[3]; get_array_f(1, vecPos, sizeof(vecPos)); new Float:flBeneathLimit = get_param_f(2); return NavAreaGrid_GetNavArea(vecPos, flBeneathLimit); @@ -347,8 +345,7 @@ public Struct:Native_FindFirstAreaInDirection(iPluginId, iArgc) { } public bool:Native_IsAreaVisible(iPluginId, iArgc) { - static Float:vecPos[3]; - get_array_f(1, vecPos, sizeof(vecPos)); + static Float:vecPos[3]; get_array_f(1, vecPos, sizeof(vecPos)); new Struct:sArea = Struct:get_param(2); @@ -356,20 +353,12 @@ public bool:Native_IsAreaVisible(iPluginId, iArgc) { } public Struct:Native_Path_Find(iPluginId, iArgc) { - static Float:vecStart[3]; - get_array_f(1, vecStart, sizeof(vecStart)); - - static Float:vecGoal[3]; - get_array_f(2, vecGoal, sizeof(vecGoal)); - - static szCbFunction[32]; - get_string(3, szCbFunction, charsmax(szCbFunction)); - + static Float:vecStart[3]; get_array_f(1, vecStart, sizeof(vecStart)); + static Float:vecGoal[3]; get_array_f(2, vecGoal, sizeof(vecGoal)); + static szCbFunction[32]; get_string(3, szCbFunction, charsmax(szCbFunction)); new pIgnoreEnt = get_param(4); new iUserToken = get_param(5); - - static szCostFunction[32]; - get_string(6, szCostFunction, charsmax(szCostFunction)); + static szCostFunction[32]; get_string(6, szCostFunction, charsmax(szCostFunction)); new iCostFuncId = equal(szCostFunction, NULL_STRING) ? -1 : get_func_id(szCostFunction, iPluginId); new iCbFuncId = equal(szCbFunction, NULL_STRING) ? -1 : get_func_id(szCbFunction, iPluginId); @@ -391,9 +380,8 @@ public NavTraverseType:Native_Area_GetParentHow(iPluginId, iArgc) { public Native_Area_GetCenter(iPluginId, iArgc) { new Struct:sArea = Struct:get_param(1); + static Float:vecCenter[3]; @NavArea_GetCenter(sArea, vecCenter); - static Float:vecCenter[3]; - @NavArea_GetCenter(sArea, vecCenter); set_array_f(2, vecCenter, sizeof(vecCenter)); } @@ -442,8 +430,7 @@ public bool:Native_Path_IsValid(iPluginId, iArgc) { public Native_Path_Segment_GetPos(iPluginId, iArgc) { new Struct:sSegment = Struct:get_param(1); - static Float:vecPos[3]; - StructGetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); + static Float:vecPos[3]; StructGetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); set_array_f(2, vecPos, sizeof(vecPos)); } @@ -468,9 +455,7 @@ public Native_Area_GetId(iPluginId, iArgc) { public bool:Native_Area_Contains(iPluginId, iArgc) { new Struct:sArea = Struct:get_param(1); - - static Float:vecPoint[3]; - get_array_f(2, vecPoint, sizeof(vecPoint)); + static Float:vecPoint[3]; get_array_f(2, vecPoint, sizeof(vecPoint)); return @NavArea_Contains(sArea, vecPoint); } @@ -484,18 +469,14 @@ public bool:Native_Area_IsCoplanar(iPluginId, iArgc) { public Float:Native_Area_GetZ(iPluginId, iArgc) { new Struct:sArea = Struct:get_param(1); - - static Float:vecPos[3]; - get_array_f(2, vecPos, sizeof(vecPos)); + static Float:vecPos[3]; get_array_f(2, vecPos, sizeof(vecPos)); return @NavArea_GetZ(sArea, vecPos); } public Native_Area_GetClosestPointOnArea(iPluginId, iArgc) { new Struct:sArea = Struct:get_param(1); - - static Float:vecPos[3]; - get_array_f(2, vecPos, sizeof(vecPos)); + static Float:vecPos[3]; get_array_f(2, vecPos, sizeof(vecPos)); static Float:vecClose[3]; @NavArea_GetClosestPointOnArea(sArea, vecPos, vecClose); @@ -505,9 +486,7 @@ public Native_Area_GetClosestPointOnArea(iPluginId, iArgc) { public Float:Native_Area_GetDistanceSquaredToPoint(iPluginId, iArgc) { new Struct:sArea = Struct:get_param(1); - - static Float:vecPoint[3]; - get_array_f(2, vecPoint, sizeof(vecPoint)); + static Float:vecPoint[3]; get_array_f(2, vecPoint, sizeof(vecPoint)); return @NavArea_GetDistanceSquaredToPoint(sArea, vecPoint); } @@ -537,9 +516,7 @@ public bool:Native_Area_IsConnected(iPluginId, iArgc) { public Native_Area_GetCorner(iPluginId, iArgc) { new Struct:sArea = Struct:get_param(1); new NavCornerType:iCorner = NavCornerType:get_param(2); - - static Float:vecPos[3]; - get_array_f(3, vecPos, sizeof(vecPos)); + static Float:vecPos[3]; get_array_f(3, vecPos, sizeof(vecPos)); @NavArea_GetCorner(sArea, iCorner, vecPos); @@ -548,9 +525,7 @@ public Native_Area_GetCorner(iPluginId, iArgc) { public NavDirType:Native_Area_ComputeDirection(iPluginId, iArgc) { new Struct:sArea = Struct:get_param(1); - - static Float:vecPoint[3]; - get_array_f(2, vecPoint, sizeof(vecPoint)); + static Float:vecPoint[3]; get_array_f(2, vecPoint, sizeof(vecPoint)); return @NavArea_ComputeDirection(sArea, vecPoint); } @@ -578,9 +553,7 @@ public bool:Native_Area_IsOverlapping(iPluginId, iArgc) { public bool:Native_Area_IsOverlappingPoint(iPluginId, iArgc) { new Struct:sArea = Struct:get_param(1); - - static Float:vecPoint[3]; - get_array_f(3, vecPoint, sizeof(vecPoint)); + static Float:vecPoint[3]; get_array_f(3, vecPoint, sizeof(vecPoint)); return @NavArea_IsOverlappingPoint(sArea, vecPoint); } @@ -1182,8 +1155,7 @@ Float:@NavArea_GetZ(const &Struct:this, const Float:vecPos[]) { // Return closest point to 'vecPos' on 'area'. // Returned point is in 'vecClose'. @NavArea_GetClosestPointOnArea(const &Struct:this, const Float:vecPos[], Float:vecClose[]) { - static rgExtent[Extent]; - StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); + static rgExtent[Extent]; StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); if (vecPos[0] < rgExtent[Extent_Lo][0]) { if (vecPos[1] < rgExtent[Extent_Lo][1]) { @@ -1370,7 +1342,7 @@ Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { // Compute closest point within the "portal" between to adjacent areas. @NavArea_ComputeClosestPointInPortal(const &Struct:this, Struct:sArea, NavDirType:iDir, const Float:vecFromPos[3], Float:vecClosePos[3]) { - new Float:flMargin = GenerationStepSize / 2.0; + static Float:flMargin; flMargin = GenerationStepSize / 2.0; if (iDir == NORTH || iDir == SOUTH) { if (iDir == NORTH) { @@ -1379,12 +1351,12 @@ Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { vecClosePos[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); } - new Float:flLeft = floatmax( + static Float:flLeft; flLeft = floatmax( Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0), Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) ); - new Float:flRight = floatmin( + static Float:flRight; flRight = floatmin( Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0), Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) ); @@ -1403,8 +1375,8 @@ Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { } // keep margin if against edge - new Float:flLeftMargin = (@NavArea_IsEdge(sArea, WEST)) ? (flLeft + flMargin) : flLeft; - new Float:flRightMargin = (@NavArea_IsEdge(sArea, EAST)) ? (flRight - flMargin) : flRight; + static Float:flLeftMargin; flLeftMargin = (@NavArea_IsEdge(sArea, WEST)) ? (flLeft + flMargin) : flLeft; + static Float:flRightMargin; flRightMargin = (@NavArea_IsEdge(sArea, EAST)) ? (flRight - flMargin) : flRight; // limit x to within portal if (vecFromPos[0] < flLeftMargin) { @@ -1422,12 +1394,12 @@ Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { vecClosePos[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); } - new Float:flTop = floatmax( + static Float:flTop; flTop = floatmax( Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1), Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) ); - new Float:flBottom = floatmin( + static Float:flBottom; flBottom = floatmin( Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1), Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) ); @@ -1446,8 +1418,8 @@ Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { } // keep margin if against edge - new Float:flTopMargin = (@NavArea_IsEdge(sArea, NORTH)) ? (flTop + flMargin) : flTop; - new Float:flBottomMargin = (@NavArea_IsEdge(sArea, SOUTH)) ? (flBottom - flMargin) : flBottom; + static Float:flTopMargin; flTopMargin = (@NavArea_IsEdge(sArea, NORTH)) ? (flTop + flMargin) : flTop; + static Float:flBottomMargin; flBottomMargin = (@NavArea_IsEdge(sArea, SOUTH)) ? (flBottom - flMargin) : flBottom; // limit y to within portal if (vecFromPos[1] < flTopMargin) { @@ -1653,19 +1625,17 @@ bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[3], cons } @NavPath_ComputePathPositions(const &Struct:this) { - if (!StructGetCell(this, NavPath_SegmentCount)) { - return false; - } + if (!StructGetCell(this, NavPath_SegmentCount)) return false; static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); - static Struct:startSegment; startSegment = ArrayGetCell(irgSegments, 0); - static Struct:sStartArea; sStartArea = StructGetCell(startSegment, PathSegment_Area); + static Struct:sStartSegment; sStartSegment = ArrayGetCell(irgSegments, 0); + static Struct:sStartArea; sStartArea = StructGetCell(sStartSegment, PathSegment_Area); // start in first area's center static Float:vecStart[3]; @NavArea_GetCenter(sStartArea, vecStart); - StructSetArray(startSegment, PathSegment_Pos, vecStart, sizeof(vecStart)); - StructSetCell(startSegment, PathSegment_How, NUM_TRAVERSE_TYPES); + StructSetArray(sStartSegment, PathSegment_Pos, vecStart, sizeof(vecStart)); + StructSetCell(sStartSegment, PathSegment_How, NUM_TRAVERSE_TYPES); for (new i = 1; i < StructGetCell(this, NavPath_SegmentCount); i++) { static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); @@ -1688,14 +1658,15 @@ bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[3], cons AddDirectionVector(vecToPos, NavDirType:toHow, flStepInDist); // we need to walk out of "from" area, so keep Z where we can reach it - StructSetCell(sToSegment, PathSegment_Pos, @NavArea_GetZ(sFromArea, vecToPos), 2); + vecToPos[2] = @NavArea_GetZ(sFromArea, vecToPos); + + StructSetArray(sToSegment, PathSegment_Pos, vecToPos, sizeof(vecToPos)); // if this is a "jump down" connection, we must insert an additional point on the path if (!@NavArea_IsConnected(sToArea, sFromArea, NUM_DIRECTIONS)) { // this is a "jump down" link // compute direction of path just prior to "jump down" - static Float:flDir[2]; - DirectionToVector2D(NavDirType:toHow, flDir); + static Float:flDir[2]; DirectionToVector2D(NavDirType:toHow, flDir); // shift top of "jump down" out a bit to "get over the ledge" static const Float:flPushDist = 25.0; @@ -2117,8 +2088,7 @@ Struct:NavAreaGrid_GetNearestNavArea(const Float:vecPos[3], bool:bAnyZ, pIgnoreE for (new i = 0; i < iNavAreaCount; ++i) { new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); - static Float:flAreaPos[3]; - @NavArea_GetClosestPointOnArea(sArea, vecSource, flAreaPos); + static Float:flAreaPos[3]; @NavArea_GetClosestPointOnArea(sArea, vecSource, flAreaPos); new Float:flDistSq = floatpower(xs_vec_distance(flAreaPos, vecSource), 2.0); @@ -2896,18 +2866,14 @@ NavAreaBuildPathFrame() { } NavAreaBuildPathSegments() { - new Struct:sTask = g_rgBuildPathJob[BuildPathJob_Task]; + static Struct:sTask; sTask = g_rgBuildPathJob[BuildPathJob_Task]; + static Struct:sNavPath; sNavPath = StructGetCell(sTask, BuildPathTask_Path); + static Float:vecStart[3]; StructGetArray(sTask, BuildPathTask_StartPos, vecStart, sizeof(vecStart)); + static Float:vecGoal[3]; StructGetArray(sTask, BuildPathTask_GoalPos, vecGoal, sizeof(vecGoal)); - new Struct:sNavPath = StructGetCell(sTask, BuildPathTask_Path); @NavPath_Invalidate(sNavPath); - static Float:vecStart[3]; - StructGetArray(sTask, BuildPathTask_StartPos, vecStart, sizeof(vecStart)); - - static Float:vecGoal[3]; - StructGetArray(sTask, BuildPathTask_GoalPos, vecGoal, sizeof(vecGoal)); - - new iSegmentCount = 0; + static iSegmentCount; iSegmentCount = 0; new Struct:sEffectiveGoalArea = ( g_rgBuildPathJob[BuildPathJob_Successed] @@ -2924,15 +2890,13 @@ NavAreaBuildPathSegments() { // save room for endpoint iSegmentCount = min(iSegmentCount, MAX_PATH_SEGMENTS - 1); - if (iSegmentCount == 0) { - return false; - } + if (iSegmentCount == 0) return false; } else { iSegmentCount = 1; } - new Array:irgSegments = StructGetCell(sNavPath, NavPath_Segments); + static Array:irgSegments; irgSegments = StructGetCell(sNavPath, NavPath_Segments); ArrayResize(irgSegments, iSegmentCount); StructSetCell(sNavPath, NavPath_SegmentCount, iSegmentCount); @@ -2945,10 +2909,6 @@ NavAreaBuildPathSegments() { StructSetCell(sSegment, PathSegment_Area, sArea); StructSetCell(sSegment, PathSegment_How, StructGetCell(sArea, NavArea_ParentHow)); - static Float:vecPos[3]; - @NavArea_GetCenter(sArea, vecPos); - StructSetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); - ArraySetCell(irgSegments, i, sSegment); sArea = StructGetCell(sArea, NavArea_Parent); @@ -2976,11 +2936,8 @@ NavAreaBuildPathSegments() { new Struct:sPrevSegment = ArrayGetCell(irgSegments, i - 1); new Struct:sNextSegment = ArrayGetCell(irgSegments, i); - static Float:vecSrc[3]; - StructGetArray(sPrevSegment, PathSegment_Pos, vecSrc, sizeof(vecSrc)); - - static Float:vecNext[3]; - StructGetArray(sNextSegment, PathSegment_Pos, vecNext, sizeof(vecNext)); + static Float:vecSrc[3]; StructGetArray(sPrevSegment, PathSegment_Pos, vecSrc, sizeof(vecSrc)); + static Float:vecNext[3]; StructGetArray(sNextSegment, PathSegment_Pos, vecNext, sizeof(vecNext)); static irgColor[3]; irgColor[0] = floatround(255.0 * (1.0 - (float(i) / iSegmentCount))); From b10fccf8e4a8ce40b197407e7a84e198dc6af7b9 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 13 Mar 2024 01:09:07 +0100 Subject: [PATCH 166/231] add entity selection api --- api/entity-selection/api_entity_selection.sma | 350 ++++++++++++++++++ .../include/api_entity_selection.inc | 14 + 2 files changed, 364 insertions(+) create mode 100644 api/entity-selection/api_entity_selection.sma create mode 100644 api/entity-selection/include/api_entity_selection.inc diff --git a/api/entity-selection/api_entity_selection.sma b/api/entity-selection/api_entity_selection.sma new file mode 100644 index 0000000..cfb4f2a --- /dev/null +++ b/api/entity-selection/api_entity_selection.sma @@ -0,0 +1,350 @@ +#pragma semicolon 1 + +#include +#include +#include +#include + +const Float:SelectionGroundOffset = 1.0; +new const SelectionColor[3] = {0, 255, 0}; + +new const g_szTrailModel[] = "sprites/zbeam2.spr"; + +new g_rgiSelectionFilterPluginId[MAX_PLAYERS + 1]; +new g_rgiSelectionFilterFunctionId[MAX_PLAYERS + 1]; +new bool:g_rgbSelectionActive[MAX_PLAYERS + 1]; +new Array:g_rgirgSelectionEntities[MAX_PLAYERS + 1]; +new Float:g_rgflSelectionNextDraw[MAX_PLAYERS + 1]; +new Float:g_rgvecSelectionStart[MAX_PLAYERS + 1][3]; +new Float:g_rgvecSelectionEnd[MAX_PLAYERS + 1][3]; + +new g_pTrace; + +new g_iMaxEntities = 0; + +public plugin_precache() { + g_pTrace = create_tr2(); + g_iMaxEntities = global_get(glb_maxEntities); +} + +public plugin_init() { + register_plugin("[API] Entity Selection", "1.0.0", "Hedgehog Fog"); + + RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", .Post = 1); + + register_forward(FM_OnFreeEntPrivateData, "FMHook_OnFreeEntPrivateData"); +} + +public plugin_end() { + free_tr2(g_pTrace); +} + +public plugin_natives() { + register_library("api_entity_selection"); + register_native("EntitySelection_Start", "Native_StartSelection"); + register_native("EntitySelection_End", "Native_EndSelection"); + register_native("EntitySelection_GetEntity", "Native_GetSelectionEntity"); + register_native("EntitySelection_GetSize", "Native_GetSelectionSize"); + register_native("EntitySelection_GetStartPos", "Native_GetStartPos"); + register_native("EntitySelection_GetEndPos", "Native_GetEndPos"); + register_native("EntitySelection_GetCursorPos", "Native_GetSelectionCursorPos"); +} + +/*--------------------------------[ Natives ]--------------------------------*/ + +public Native_StartSelection(iPluginId, iArgc) { + static pPlayer; pPlayer = get_param(1); + static szFilterCallback[64]; get_string(2, szFilterCallback, charsmax(szFilterCallback)); + + static iFunctionId; iFunctionId = get_func_id(szFilterCallback, iPluginId); + if (iFunctionId == -1) { + log_error(AMX_ERR_NATIVE, "Cannot find function ^"%s^" in plugin %d!", szFilterCallback, iPluginId); + return; + } + + if (g_rgiSelectionFilterPluginId[pPlayer] != -1) { + @Player_SelectionRelease(pPlayer); + } + + @Player_SelectionInit(pPlayer, iFunctionId, iPluginId); + @Player_SelectionStart(pPlayer); +} + +public Native_EndSelection(iPluginId, iArgc) { + static pPlayer; pPlayer = get_param(1); + + if (!g_rgbSelectionActive[pPlayer]) { + log_error(AMX_ERR_NATIVE, "Cannot end selection! Selection is not started!"); + return; + } + + @Player_SelectionEnd(pPlayer); +} + +public Native_GetSelectionEntity(iPluginId, iArgc) { + new pPlayer = get_param(1); + new iIndex = get_param(2); + + if (g_rgirgSelectionEntities[pPlayer] == Invalid_Array) return -1; + + return ArrayGetCell(g_rgirgSelectionEntities[pPlayer], iIndex); +} + +public Native_GetSelectionSize(iPluginId, iArgc) { + new pPlayer = get_param(1); + + if (g_rgirgSelectionEntities[pPlayer] == Invalid_Array) return 0; + + return ArraySize(g_rgirgSelectionEntities[pPlayer]); +} + +public Native_GetStartPos(iPluginId, iArgc) { + new pPlayer = get_param(1); + + set_array_f(2, g_rgvecSelectionStart[pPlayer], 3); +} + +public Native_GetEndPos(iPluginId, iArgc) { + new pPlayer = get_param(1); + + set_array_f(2, g_rgvecSelectionEnd[pPlayer], 3); +} + +public Native_GetSelectionCursorPos(iPluginId, iArgc) { + new pPlayer = get_param(1); + + static Float:vecTarget[3]; @Player_GetCursorPosition(pPlayer, vecTarget); + + set_array_f(2, vecTarget, 3); +} + +/*--------------------------------[ Forwards ]--------------------------------*/ + +public client_connect(pPlayer) { + g_rgiSelectionFilterPluginId[pPlayer] = -1; + g_rgiSelectionFilterFunctionId[pPlayer] = -1; + g_rgbSelectionActive[pPlayer] = false; + g_rgirgSelectionEntities[pPlayer] = Invalid_Array; + g_rgflSelectionNextDraw[pPlayer] = 0.0; +} + +public client_disconnected(pPlayer) { + @Player_SelectionRelease(pPlayer); +} + +/*--------------------------------[ Hooks ]--------------------------------*/ + +public HamHook_Player_PostThink_Post(pPlayer) { + if (g_rgbSelectionActive[pPlayer]) { + @Player_SelectionThink(pPlayer); + } +} + +public FMHook_OnFreeEntPrivateData(pEntity) { + if (!pev_valid(pEntity)) return; + + for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { + @Player_RemoveEntityFronSelection(pPlayer, pEntity); + } +} + +/*--------------------------------[ Methods ]--------------------------------*/ + +@Player_SelectionInit(this, iFunctionId, iPluginId) { + if (g_rgiSelectionFilterPluginId[this] != -1) return; + + g_rgiSelectionFilterPluginId[this] = iPluginId; + g_rgiSelectionFilterFunctionId[this] = iFunctionId; + g_rgirgSelectionEntities[this] = ArrayCreate(); +} + +@Player_SelectionRelease(this) { + if (g_rgirgSelectionEntities[this] != Invalid_Array) { + ArrayDestroy(g_rgirgSelectionEntities[this]); + } + + g_rgbSelectionActive[this] = false; + g_rgiSelectionFilterPluginId[this] = -1; + g_rgiSelectionFilterFunctionId[this] = -1; + g_rgirgSelectionEntities[this] = Invalid_Array; +} + +@Player_SelectionStart(this) { + @Player_GetCursorPosition(this, g_rgvecSelectionStart[this]); + + ArrayClear(g_rgirgSelectionEntities[this]); + + g_rgbSelectionActive[this] = true; + g_rgflSelectionNextDraw[this] = get_gametime(); +} + +@Player_SelectionEnd(this) { + if (!g_rgbSelectionActive[this]) return; + + @Player_UpdateEndPosition(this); + + UTIL_NormalizeBox(g_rgvecSelectionStart[this], g_rgvecSelectionEnd[this]); + + g_rgvecSelectionEnd[this][2] = g_rgvecSelectionStart[this][2] + @Player_GetSelectionHeight(this); + + @Player_FindEntitiesInSelection(this); + + new iEntitiesNum = ArraySize(g_rgirgSelectionEntities[this]); + + for (new i = 0; i < iEntitiesNum; ++i) { + static pEntity; pEntity = ArrayGetCell(g_rgirgSelectionEntities[this], i); + @Player_HighlightEntityInSelection(this, pEntity); + } + + g_rgbSelectionActive[this] = false; +} + +@Player_SelectionThink(this) { + if (g_rgflSelectionNextDraw[this] <= get_gametime()) { + @Player_UpdateEndPosition(this); + @Player_DrawSelectionBox(this); + g_rgflSelectionNextDraw[this] = get_gametime() + 0.1; + } +} + +@Player_GetCursorPosition(this, Float:vecOut[3]) { + static Float:vecOrigin[3]; ExecuteHamB(Ham_EyePosition, this, vecOrigin); + + pev(this, pev_v_angle, vecOut); + angle_vector(vecOut, ANGLEVECTOR_FORWARD, vecOut); + xs_vec_add_scaled(vecOrigin, vecOut, 8192.0, vecOut); + + engfunc(EngFunc_TraceLine, vecOrigin, vecOut, DONT_IGNORE_MONSTERS, this, g_pTrace); + + get_tr2(g_pTrace, TR_vecEndPos, vecOut); +} + +Float:@Player_GetSelectionHeight(this) { + return floatmin( + GetHeight(g_rgvecSelectionStart[this]), + GetHeight(g_rgvecSelectionEnd[this]) + ); +} + +@Player_UpdateEndPosition(this) { + @Player_GetCursorPosition(this, g_rgvecSelectionEnd[this]); + g_rgvecSelectionEnd[this][2] = g_rgvecSelectionStart[this][2]; +} + +Array:@Player_FindEntitiesInSelection(this) { + for (new pEntity = 1; pEntity < g_iMaxEntities; ++pEntity) { + if (!pev_valid(pEntity)) continue; + if (!UTIL_IsEntityInBox(pEntity, g_rgvecSelectionStart[this], g_rgvecSelectionEnd[this])) continue; + + callfunc_begin_i(g_rgiSelectionFilterFunctionId[this], g_rgiSelectionFilterPluginId[this]); + callfunc_push_int(this); + callfunc_push_int(pEntity); + static bResult; bResult = callfunc_end(); + + if (bResult) { + ArrayPushCell(g_rgirgSelectionEntities[this], pEntity); + } + } +} + +@Player_HighlightEntityInSelection(this, pEntity) { + static Float:vecOrigin[3]; pev(pEntity, pev_origin, vecOrigin); + static Float:vecMins[3]; pev(pEntity, pev_mins, vecMins); + static Float:vecMaxs[3]; pev(pEntity, pev_maxs, vecMaxs); + static Float:flRadius; flRadius = floatmax(vecMaxs[0] - vecMins[0], vecMaxs[1] - vecMins[1]) / 2; + + // vecOrigin[2] += vecMins[2]; + vecOrigin[2] = g_rgvecSelectionStart[this][2]; + + @Player_HighlightTarget(this, vecOrigin, flRadius); +} + +@Player_RemoveEntityFronSelection(this, pEntity) { + if (g_rgirgSelectionEntities[this] == Invalid_Array) return; + + static iIndex; iIndex = ArrayFindValue(g_rgirgSelectionEntities[this], pEntity); + if (iIndex == -1) return; + + ArrayDeleteItem(g_rgirgSelectionEntities[this], iIndex); +} + +@Player_DrawSelectionBox(this) { + engfunc(EngFunc_MessageBegin, MSG_ONE, SVC_TEMPENTITY, Float:{0.0, 0.0, 0.0}, this); + write_byte(TE_BOX); + engfunc(EngFunc_WriteCoord, g_rgvecSelectionStart[this][0]); + engfunc(EngFunc_WriteCoord, g_rgvecSelectionStart[this][1]); + engfunc(EngFunc_WriteCoord, g_rgvecSelectionStart[this][2] + SelectionGroundOffset); + engfunc(EngFunc_WriteCoord, g_rgvecSelectionEnd[this][0]); + engfunc(EngFunc_WriteCoord, g_rgvecSelectionEnd[this][1]); + engfunc(EngFunc_WriteCoord, g_rgvecSelectionEnd[this][2] + SelectionGroundOffset); + write_short(1); + write_byte(0); + write_byte(255); + write_byte(0); + message_end(); +} + +@Player_HighlightTarget(this, const Float:vecTarget[3], Float:flRadius) { + static iModelIndex; iModelIndex = engfunc(EngFunc_ModelIndex, g_szTrailModel); + + engfunc(EngFunc_MessageBegin, MSG_ONE, SVC_TEMPENTITY, vecTarget, this); + write_byte(TE_BEAMCYLINDER); + engfunc(EngFunc_WriteCoord, vecTarget[0]); + engfunc(EngFunc_WriteCoord, vecTarget[1]); + engfunc(EngFunc_WriteCoord, vecTarget[2] + SelectionGroundOffset); + engfunc(EngFunc_WriteCoord, 0.0); + engfunc(EngFunc_WriteCoord, 0.0); + engfunc(EngFunc_WriteCoord, vecTarget[2] + SelectionGroundOffset + flRadius); + write_short(iModelIndex); + write_byte(0); + write_byte(0); + write_byte(5); + write_byte(8); + write_byte(0); + write_byte(SelectionColor[0]); + write_byte(SelectionColor[1]); + write_byte(SelectionColor[2]); + write_byte(255); + write_byte(0); + message_end(); +} + +/*--------------------------------[ Functions ]--------------------------------*/ + +Float:GetHeight(const Float:vecOrigin[3]) { + static Float:vecTarget[3]; xs_vec_set(vecTarget, vecOrigin[0], vecOrigin[1], vecOrigin[2] + 8192.0); + + engfunc(EngFunc_TraceLine, vecOrigin, vecTarget, IGNORE_MONSTERS, 0, g_pTrace); + + get_tr2(g_pTrace, TR_vecEndPos, vecTarget); + + return vecTarget[2] - vecOrigin[2]; +} + +/*--------------------------------[ Stocks ]--------------------------------*/ + +stock UTIL_IsEntityInBox(pEntity, const Float:vecBoxMin[3], const Float:vecBoxMax[3]) { + static Float:vecAbsMin[3]; pev(pEntity, pev_absmin, vecAbsMin); + static Float:vecAbsMax[3]; pev(pEntity, pev_absmax, vecAbsMax); + + for (new i = 0; i < 3; ++i) { + if (vecAbsMin[i] > vecBoxMax[i]) return false; + if (vecAbsMax[i] < vecBoxMin[i]) return false; + } + + return true; +} + +stock UTIL_NormalizeBox(Float:vecMin[3], Float:vecMax[3]) { + for (new i = 0; i < 3; ++i) { + if (vecMin[i] > vecMax[i]) UTIL_FloatSwap(vecMin[i], vecMax[i]); + } +} + +stock UTIL_FloatSwap(&Float:flValue, &Float:flOther) { + static Float:flTemp; + + flTemp = flValue; + flValue = flOther; + flOther = flTemp; +} diff --git a/api/entity-selection/include/api_entity_selection.inc b/api/entity-selection/include/api_entity_selection.inc new file mode 100644 index 0000000..e674dfa --- /dev/null +++ b/api/entity-selection/include/api_entity_selection.inc @@ -0,0 +1,14 @@ +#if defined _api_entity_selection_included + #endinput +#endif +#define _api_entity_selection_included + +#pragma reqlib api_entity_selection + +native EntitySelection_Start(pPlayer, const szFilterCb[]); +native EntitySelection_End(pPlayer); +native EntitySelection_GetEntity(pPlayer, iIndex); +native EntitySelection_GetSize(pPlayer); +native EntitySelection_GetCursorPos(pPlayer, Float:vecOut[]); +native EntitySelection_GetStartPos(pPlayer, Float:vecOut[]); +native EntitySelection_GetEndPos(pPlayer, Float:vecOut[]); From 97eae5a548cf98c7f67ffa86a5e2df93ca219448 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 13 Mar 2024 01:23:29 +0100 Subject: [PATCH 167/231] add readme --- api/entity-selection/README.md | 116 +++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 api/entity-selection/README.md diff --git a/api/entity-selection/README.md b/api/entity-selection/README.md new file mode 100644 index 0000000..64ec701 --- /dev/null +++ b/api/entity-selection/README.md @@ -0,0 +1,116 @@ +# Entity Selection API +This API provides in-game select entities functionality using a virtual cursor. + +## Making simple strategy system +Here is a simple example of how to make something like an RTS system using the API. + +```cpp +#include +#include +#include +#include + +#include +#include + +#define ENTITY_BASE_MONSTER_CLASS "monster_base" + +new bool:g_rgbPlayerInStrategyMode[MAX_PLAYERS + 1]; + +public plugin_init() { + register_plugin("Simple Strategy System", "1.0.0", "Hedgehog Fog"); + + RegisterHamPlayer(Ham_Player_PreThink, "HamHook_Player_PreThink"); + + register_concmd("hwn_set_control_mode", "Command_SetControlMode"); +} + +public client_connect(pPlayer) { + g_rgbPlayerInStrategyMode[pPlayer] = false; +} + +public Command_SetControlMode(pPlayer, iLevel, iCId) { + g_rgbPlayerInStrategyMode[pPlayer] = !!read_argv_int(1); + + if (g_rgbPlayerInStrategyMode[pPlayer]) { + console_print(pPlayer, "Entered strategy mode!"); + } else { + console_print(pPlayer, "Left strategy mode!"); + } + + return PLUGIN_HANDLED; +} + +public HamHook_Player_PreThink(pPlayer) { + if (g_rgbPlayerInStrategyMode[pPlayer]) { + @Player_StrategyModeThink(pPlayer); + + if (!is_user_alive(pPlayer)) { + // Block observer input + set_member(pPlayer, m_flNextObserverInput, get_gametime() + 1.0); + } + } +} + +@Player_StrategyModeThink(this) { + static iButtons; iButtons = pev(this, pev_button); + static iOldButtons; iOldButtons = pev(this, pev_oldbuttons); + + if (iButtons & IN_ATTACK && ~iOldButtons & IN_ATTACK) { + EntitySelection_Start(this, "Callback_SelectionMonstersFilter"); + } else if (~iButtons & IN_ATTACK && iOldButtons & IN_ATTACK) { + EntitySelection_End(this); + } + + if (~iButtons & IN_ATTACK2 && iOldButtons & IN_ATTACK2) { + static Float:vecTarget[3]; EntitySelection_GetCursorPos(this, vecTarget); + if (@Player_MoveSelectedMonsters(this, vecTarget)) { + DrawMoveTarget(this, vecTarget); + } + } +} + +@Player_MoveSelectedMonsters(this, const Float:vecGoal[3]) { + new iMonstersNum = EntitySelection_GetSize(this); + if (!iMonstersNum) return false; + + for (new i = 0; i < iMonstersNum; ++i) { + new pMonster = EntitySelection_GetEntity(this, i); + + set_pev(pMonster, pev_enemy, 0); + CE_SetMemberVec(pMonster, "vecGoal", vecGoal); + CE_SetMember(pMonster, "flNextEnemyUpdate", get_gametime() + 5.0); + } + + return true; +} + +public bool:Callback_SelectionMonstersFilter(pPlayer, pEntity) { + return CE_IsInstanceOf(pEntity, ENTITY_BASE_MONSTER_CLASS); +} + +DrawMoveTarget(pPlayer, const Float:vecTarget[3]) { + new iModelIndex = engfunc(EngFunc_ModelIndex, "sprites/zbeam2.spr"); + + engfunc(EngFunc_MessageBegin, MSG_ONE, SVC_TEMPENTITY, vecTarget, pPlayer); + write_byte(TE_BEAMCYLINDER); + engfunc(EngFunc_WriteCoord, vecTarget[0]); + engfunc(EngFunc_WriteCoord, vecTarget[1]); + engfunc(EngFunc_WriteCoord, vecTarget[2]); + engfunc(EngFunc_WriteCoord, 0.0); + engfunc(EngFunc_WriteCoord, 0.0); + engfunc(EngFunc_WriteCoord, vecTarget[2] + 32.0); + write_short(iModelIndex); + write_byte(0); + write_byte(0); + write_byte(5); + write_byte(8); + write_byte(0); + write_byte(0); + write_byte(255); + write_byte(0); + write_byte(255); + write_byte(0); + message_end(); +} +``` \ No newline at end of file From ab1d04a551664e96bd265418cd1a3c6e733073ed Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 13 Mar 2024 02:29:13 +0100 Subject: [PATCH 168/231] add animated demonstration --- api/entity-selection/README.md | 2 ++ images/example-entity-selection.gif | Bin 0 -> 5982059 bytes 2 files changed, 2 insertions(+) create mode 100644 images/example-entity-selection.gif diff --git a/api/entity-selection/README.md b/api/entity-selection/README.md index 64ec701..2068f86 100644 --- a/api/entity-selection/README.md +++ b/api/entity-selection/README.md @@ -4,6 +4,8 @@ This API provides in-game select entities functionality using a virtual cursor. ## Making simple strategy system Here is a simple example of how to make something like an RTS system using the API. +![Simple Strategy Mode](../../images/example-entity-selection.gif) + ```cpp #include #include diff --git a/images/example-entity-selection.gif b/images/example-entity-selection.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae0d780e263ccf0021fa828e0639b67e25a5b490 GIT binary patch literal 5982059 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%0D%&pJQ?b6i|8Ht*$r%rVY!cMm~ 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

{H>$}x7Jc6iCS;eA*i&U*Q%`K@ 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

A zyx1sd=>yCxcc;_LnY8V^8Eek5Egw5lPBeeC-jpwwV3Py8`pq~?0V76TOTYzbqLtJA zlj-N2+Ke;vc`6X2p{uQa?>1o@alqf{{^fyYeycR$;N1NV{Dl9sS9~*`irQOg(_XjN z^WBKa+J*z~&lEJ%CFM_>+3$|i2l86_(cS94GJWJ1q@s+e`^xRA*es;`X*{UhWnWJk z64#?l|5UJVf_JoFUIspH-=MHHaP`}ehCF}&Zd#ek$Bm*Q<7;2XiZ3pw@z6TTm06b9 z>dLHKV%4shECeLsK_$dJuZ?>hvS^dL9Bl;LLbtKH^s<6P8Skj)T~qzhbUtV5n4`Lm zS~7lP;}lkYQvFhFIUxIWY#C(kH}<8DdT6V)B=TLaV!whUq0IP$mpjf#L-rall%P^q zLDXEYcNRc&+)I&Xxx*2#Z3<4j^zHV?@47BRsddO~e2JrAXnUz+upUO5RUoXP#tZ`l zv4?@JKe%TB0R-I-%{Ii|>W9~H@Z4FHoS3K`AJ%51w997!$E*?r`TePSs_r~OYj^8YO@ zD9f<-2NyXD46$4Z6MLMo)-8>Pp)+7+GhQ%X#cK4n05S2d^2Hydr0UKE7V$+7)Sd<` z2_+XA-SCIn=kt(GfX{{i7m2mg?y}Takm=s}Ueco1Q64_syh$_6bKniK7T@6tX#KXS zp2rfRW(=qZl^v@63av&&yhAD4c(7}Dqu_~QKX<@-$rBmd_#U_4zuc@B4`1FYgt63p zP)E4)S_&SN^^+{eE%!VSLxD4XZJP|(GXX+m z%ZfvSse)KNS@7?Rg#R9|fa&MQnFV-i)%UM?L0ZNJ4*=+AvIqahoCf2?r=q>6`Ce)R zvuy3M?kce> zELoLN6))1|pYO*v_SoD#y|XYY)${0O|0#q0+Fsiu#F4Q%mBBuJXVbq=p%ML5>?yB4 zayMJ{A^9(iZb4f*4|vY3%QNs8{tF(c6*=p(kS^S}re%7~4}*jnJvohUKS2%vOhTL& zl<+9M;CfpI4i+4L?^<>?VlU9Z|5tI%Crz;zbJG9CFFwgR@H9oT+i?AYs;(7Mh&x#x zwnfH0wN{h4+*QXi5_9@(2C8931st61*k-)JwUKwZ=kmQPlAcXv6k#_XZ)6~@8V=*z z3Isz)@1;RpYhxj9{zH8D$3)_kc8fLe0Y)cHCX8^4BQU*~xLx9@gMDJX^|>NBks_Ty zH7k9EVCrx$Y5)wPFn|UP&S2C>K(X_SgRD3j_~#LZ%=b5d5t{uuEq%e6wEdm+87-K) zWcXr(PdNDA%S20ejac0c*{sHYiCP0JOD}|&t4bt@aY1Q8hmer&Gl1~om2D>55MC(n zyYVM6n~fJuN2M(u4hbHd8WCx@uEpy%z&v&lh;LF#>|=Nc4~f!fSaJWzdrny*yUa*O zSqrvs-HGsPd~e#!ba9(bk9h$^U-#Sq``yc)I8e^bhTE$HjM89qrAZm)MDKcmCZfk{ zpoBh)lfyltdS8u(-GdGT1hZ($`n77YRWK93P5~lJX>5;VY3>tcO86SJ1l!D5wX{3f z6i`xFFiSJoN0F1SsGE(0g$A3~2aUZIJhh0R1?I2+^?Kj38!w+?aYxxf%XE{s3hJ(H z-(lVNCh6qQPY3QsRE8a&P})LB#yf(GmcOy+Q3{P~E??q(jYr!234{&{kPk2DPVI}b zKIMITHqSAn%d1I?d-70I@3H1PawhByG5O2hG~18ROG@bD07E>5de7z@aRRg}u_O8v zFsKfU(g3_?$;==CR*UW-N;Ho zbLNl2TD4@g8d6zzBMNcSS0Pz}fTYr4$wLxKen2t;meWyq^zTAF7g@lD4Rn|tthCL{ zD@vka8474@HY{^i!tRjFo`WQ_i&CY~%#Nb%(!$CQg-Ht_4}>HT1)2E>`6mq)4=7KZ zxEb*iKB_HTO@elUC3CwZs1gxl0TeHSZeD<=al#+WLKE`}*Xnx21xiR%I6bir!j8dS zdPTF~gM!Q@k=c@vjw=L-81SQ*Nv}eF07r8mA^KjMCt&d0m5^Dy;^(zz=TAB10qt+O zP&hyfgf!Br+Ty&AZMMFPtofc0WTDVosX(n*Od0}QHqwuv0kJYHcA?m9=K!kOYsgl* z>GSdA`K#U<0LZf;VgYV|0Cj&P2MvK7mENd8u@A%3u)2#PjWAv*{%<9?jfgw+S&H2X zayc*lq@X)>iM?dj`@9-_IM?0s#PnHV^j4Ci24J8FR_v;>u&B@}2>X2Gx(=Z`;5_D` z2zgap5`L|qM@TaSyU>JA3qpels)>2+6`im;VkJ15E?xqF%Et*IU35HMoK;GoAdH>= zFiMLhL^IF)?(xHx$#=9shippL)|ZfspcWLd+XqmzLWssApNdpff}#^q$ko{^pQxZf9j!fp(UAF(tbdD}(SW}zyB-4Xxz+(=oUY&)!UCF?F#~Tf1lat} zrP@`0KneV|TV$jGsH?>VLjoMX+qz>6VQ7H{3Eeo7?-vY63~<9u{L+@Db6YAc9z$hK}R%)JU*GpQtrYPU^5H+eEc6~KfJF+wfL zlwWzO6WMU{kos@uo(nds>9BM}Q3@Lzqa0_^i(=`}W%NQiM{KHqoMFQ@3v4rKm!_+1 zy?id^&gy|jpi*0yR96=-gG4wNrOE1&%!>j@MM>F3>xbINT;biQOQABmu%5!+T>C$L z+7_z9Q>MyRi^A1>30W$-uv@Zs(j%=0`mzy{#)odkD*&h3RBZYvU-C;PW|nvdXO}PI zSiWkxQw?hJHi2CK1=puuU%w)~A(GrFXMY$sTpGT6G2jBa2hb%4=xH}I1UX10i|cGC zPo}s|h!3MeU3)|~Q$+v$eFisY6~nZ~nOj=-tlCRz68&SzWLp;O752O&nd$fL%pOqz z!Z}#xVn(sJDR1&_3cBX>GCW&Spjl@Pu#(H0#=B(Do7iu3qnHHT%`TZG-r0QtV1U0j z+tF~2+O)m-%*}eCYgEVl15g0H@--bCLN_$syF570@aFpVv?SW@Dd1Z`QqThd%jvZD z#SSAw%Qsz3h%N#krOCMSROvzIxmO~i1;D*#0a^q2mLxOFDI}hY*}$vaaUQX?q$HyU zXd!rDQD*{YoTxz{v-wC`;>t?dxCI85K2($~gZY+#R`OvU3P?HyxC|kQoGnUP?w`YL zIau#6*y0~B3_FMLxXVCqnw2E=6vod&5*3B|>ZBDHigNs+=X5<>cJyHD_$ivGeyKibF_GulkPBgvqlgBw*%!OC2p?I)ow&90$ z2GRaj?n5FAf3QVVyMeIc`3JG#@>_GU26%qstp9Z*Iray~U`3_TV<5=RCdx#qU!{N; zh0wi2Xdx?ir-Lo#H zK|m#{Dxwh>h4iaD-+6ZYJn7jjc3_F2fkS18IV4&MHps5TJrg6hRT;lcWr+@2z@YlZQ2NwgFi!w7r$84`63 zx}MYjZ9~h0g&y)kF@saqrg%FN8<3-@FDDkJ37};Im=q&!l*A+Mrg-B*R%3l!8vo|6 zy@9>@58|KjjW^pmZ;312+#t6Yi&Szw!4GtYX>XuXrCD>S70SWVv|qcw#OCuKa2TQ;$;uY)0!zC+EwfdGvFqZ+Pdeit~-Rya|FNb@h?I)J^u7-gq+cz}IG^n}__uiSjp`uJRc zKbyGR^HHagGHa+<^Mrvkv8)t6bg_P%fE#@k)v^Ttl|X?UxQ9?}MIW;oXkYcYeigoM z6`&c)#v|AZegh)c6y1W~C5dY^#fDc2Nhkr}v)xwFk8a9CW-~8VvR7JQiadu;bg;#~ z2#8>g_{Rt=wzefJo0VP&P2$$&3Rvd^Z+RU>ypFdq3&ky>jwJNGpDAW^A^p^J2mM+Zw>^#eQar+eR{6PU|&qCv9@zs z=3>AQru7L7I;=Fjvxk2IbX)u|AQ`d5Nvow80631g{T> zz{KNE6GT>g0E`2GWeZKU0;@U;;%?#TZL3N)h%CK3p!&aW6?<oKIgZB=2`5Hy;#6MnfUS~nz& z@rO8Rp_Ptvf4e~w)v@Vrg>fkRhk0%FoukqG!h#OiS(n21`S$w6Klx-E^l4a2DF_nA zg}j4Yeh03-J(vIs2ro2KL&9?mwm&cLuEs$MIv9K*OuKP|37^F zJHS{aASbwD!*c-@ZDd_pMPSQtzkDc1%g^zQorE=!a%}m~Box3I@*cKKbJ* z+QBhkjl(*if#Ci;+Toe?al*=XCDV;Qi0-pR-A)RTd7e;-B%AdBP!m9xJfLK`fj2_D zj3VT079c6l=;qfphBTCnfQU~k35w96|5Ycs;Qsh_r7fW1{g4Q)I}e8DJa9$S5)e}O zMVX1>o~yU$tHQb{qb4%p>w9zD<$Jd$dUm%WjTbS}##S$ZqI;XBJLA=bFE1k>zPzyk z;rqI0a`2Hm){q1QcYm~Ak*yQ_PPvYIa?Y%$)H^{ga-^nSR~cJ0WLcUB|Nt0fZS;N_mm?|SzWZfs4LNfVZeF*B=v z4n6q(Zt#nxdq$0uI5YHw|Bo~8n6J$b&+8lS56XBJ_&9~57(?^fIY9Ku<3o3@be()< zK;AH^+7WVF^^#Avw;3|eQws--+y!(nf#V|-;a8PS4j6mX=qFv*_wa$p7*1t4!Fx9A z%?@5FKn21Fiv~?o)pHQ+%2ZXMzK4vVf(9*UnQ+T|b+~>)S(u5siTrQCVvpVa$Qm!M ze#V^Ks)U-YU7$d)G;M&G5C~J9CDKv_tR3E|N+2Gm1M!Nib|W4Sn!96eh~ZXTD@?xQR#CNz6RBC^Mz3XA(^IUfQ_R?j;cD`(5{fwL3EVm#?>|I2ym%Wb z)Xl0^km7xAfZ)~{yrR0GUB(hZBm)>hj@OCR63cyb_y)q38lJ>5e}Xqa3~HYPqkI{U zp~l1vuH<#(V!8z8JI)uO*qYy~$g5_DpsgI-AS=pLsFhEYs47N+@E> z{9Ni&Jt8GGJbkwEerU?6$MdGl>^s-3To$jENW_ccAC&xs#({~fRvyeayh9BoN2;~q zAO0S7ypATM;)^Vz7nS{(^%<2yc#Nb=T!rpn7L&8p()-v{A9yc{0ioXg>a27NK`D0{u_o7})xnnLQ<3eU-vh@Aq~M7&n)-}n{m64i%l zlm=1!nYb+_k8$4}ZV<9{8i*t3nIHSQG(&cda&2J%>q9>u7;6Vw28g7Ge?PzB0HoNC zh@>a;kV#|~3cVHPTV?}71>2Y|>k7YK^BBA91&eqE5H`y8yp)w}YY`Lhr{^_LN$O%4 z_pbCl{Zc~t(ZXhK^b=_kxs5HLy5^=D6&eTLQQ&!Ok91+rqL9T5WZY3WE?bq>HJt$ z95GU2pkstt&+-FFtx7N%(M!CrySwenmxx#{X!r0S5YKoJL&l46`AUbtiCwURQ<)zW z^jKGa1X>rmFbEH!kNjODMA9aDiBtQFru|j%b5AQUjgFSH89akkQ!J02P7rsy%?2IQ zAe2DcJkw;rztfuNy~^&9_lU;&@B-W{`zR&QRTOvp3D|7PaSXTEhhdcbPkPR;&^3Gu zXy}#7IFDQCqckH|cl6rX{LqKsR4!cYvEt?^9mJh4 zL~@c_NTZyU4k>s<5~tar-ap)-hKF%!?lrg7&)~2g5AbT{QbYb2pr@jbvSTqOSF#6s zig;1yI$X>KhoGk0n8=u+UL*a+LZ5{!WBd1-bt}qT?t)6yN*m{<1+ne;lcNIc_sSN^ zfUO>%W97*SLN3#wRVt32m@?_3h3gBbfgX#K2BxPVn}Yu?E}*gS*TP51tbRiPWd(4r!zYmiP9C%34+h)KLX#3eav-Z6e~D02HJQgWD)p z+5-;437jVotGVNJ+GM~=rI-TgLWCdSq7Q1vDtai8P9zY!BYU2oEruWd7l;jPc!ZhQ zUleKHFfFunNc`POnWcs}=*2AGvOunW>Cums)&3XYO znF49)S)ebmg+EQF3@g;%EFC=Sf=Xog-R%C*F@8ge!De5bw7fxi8{GLj3udn&L>_-} z$}Cn6x7X;mgWxpJKL+ESv?}vFF+BJ)EG9dzx7}x2h;CJ?c=rKEE(FB>TLXZc0I5vp z_pJI@NBthh4JOQh9UaIoWTo74N~< z^BX%QX%|`a4v;ga*D0gaD?~tBTwu~Tpu3hJJ2I$mFUx5jMBWhQejDUj5@AE^wN~~z#fm(#2Oivs@LmY_ ztLb%HVCkMl+;^(!b-7J;xZUeA{m_NpN6Qx)cQD5e2+ghu5Iz8da8){8Y`fTJ_j>IU z!^jbTky)}5Vk{zm7LtdAkEC&vvZn#paUM;~r@^%^vjMP1CAL*%lcDE`0dW2UH2pZn zUqxOVtF$jBUJwwq9Q^01UzlDS$r$Paz+K2-Uj%@es;O~h=s43-$^2$l(U?&~#IQ^= zY9X0Ga(0X1BH$S(?%Ou(arruuCf0iB(XLz-Dhh#s9ABKSu*CE(uCpz9Um+TVNg4CB6HVIeysVcPTh{FbOV+&(_VuQARlVSL#>oH!RS>eg+FNQ05 z_1x&Z-tGgCbYXvJhe*)_bnF*-`-hpX?sGENKX4JGgXyrqGTa;H0O{RiWr;u1=N$}o zRsipfh`h)S&N8$&N8}9=8DA2T6hbPQMZ<_aQpx0P(6v5&^jMIqd2H_VAm*&Jpe?B9kG1La+HExr6M;x*xLs@8pRyz66&lE3Lzy7V`G+w514zqH?#yW zcmQb7I`ZUz@bHKCM2_$|K5kKAb!>D~%9p05A?wh?N<^KK&OADSHG%gq;2DBF%Hw`2 zT)=PS3ZL=S%U6GaKAXLsh8!u`-LKNCIP@=rVxLuO-aOSc0TCI}HoZQ_eJc7q7(X@M z(rV<>hS10o-P!C$7>w#6`ftI1iPC^_1I8 zk4&I7B-?B{!wmD(Sjs@h0w9_f=5|6%4dZ34z+_Pjqyr!{03>h7*>be1wi@0lsN?D% z+Y4tmk=0_Dt>Sc>=(v70W2+^p7+_P2GSID}F33K4| zk{~SiWYMm}O#6&>uZ$Brtil`tp#0ThFKI8G3o=!SsBG58`5D@LZ_m&0-6R$jATpkY zZrTHSsFu4)X3}CoE3~PIe5P@UlB8f7Ad1#Eg3fDL5bgQLw>UwCrt^s}G8#e1@k9`K2I zx+p&A^C-UtsL5p>T@nWel%w97E)1-)Xf6jDuEX(ExD;u@e zJ2lMPoRt|Xvi{v?*%-US5A3)YW*jwQ7X`G7!Z_F|)-D#R_WWrFVeS3ch?r(jN&p6X z1}rgP$Jau$*Gyv#09~N6mM{<#YtbXZZE8SxfNICLJDbnKXR9T%tm>vJ@ptSz;vr1^Km2aM*z^JM*wdS+KmGVDweJO?OTDWUSj&( z#Yv|fw{c>VJnz^@Surj`^F^k`qM*%N1(C3*(&<_HQ_|9yk$@PnFeU!uk3Vi66E-^u zC)7vY#rYgvc+608TE8Eyy8!p_K)*WpcDfCdTI6f#uvM@ z1ob3ZFdyQT4E`TBnw_sR-k>gK=W#=^>$*nIy-#EmK>B0FE~6lCPc&vMmHgboJ$%GE z7v$Ww<_2Hm$PoJljJVN^obh{friURW_#}VBh;KZ>Mk%2Dh_bfR@Y$d^d`GkmdwI}E zv`t!@@!a=0G>+8blM$Qumf~WrvGbgB8rLLvL^(4--`-K2tVC*#$V|ed@HH13nAkF) zXE;dR4RUP&sg-NqfF$4K+xSHCS2@HoWukO!w;#T`Eclukz;;p`~FGr3MtiC`k>!7K9BX> zR?Omy-A*rd(nvm=@y(OK2WO^IyhRcFzudQ21v`2_MLiu!)f&a@z)%?0{vd z=Fd7`9rlW?h#JQ_RwmW@w$xr(mz8h08?4;;zfbI6Ud%^&}5ngByd7PSdA0oy^_CPtYEFW z+=Ayrtf#NDYX?>-gzJ(9ZJ!fO=(ijAs0ZBsn-8xaeU)DJ3-K#?Qp}gsWTab-1{;bQ zHQ-ORK|Iy2pG}SzJY>p7*grl-;zdsJn(=y(NrN*zgArGzK`yfyjK{(H#Kl-KtwDH& zA-+Duqg)a|R3LX{3|UFWxPy~r$pFh#|J*$1agmqph%c#wGOqD25eLzr|E^ zD6u{kB>IGW2!v61J)uEZ%Hoy;ySIg$zE5mLj zylH3ouW9TY6_RcMaB@M-+t&LnrXi~jq7g!yc@_hBs00A%a!nB}&iEO3=e_(n6ZxXp z-+uL9-#z~}>MsW)H1vB(-@~|{#v^JWvwOvbO~+zN(zJ55usSx>{{e#V=^)y=3;%Do z8!#K)>ac6sYj};6H{xaaRP0PA61U3OW2oO9c^`|jE+Oq_vB8qCda@kM;5|CM zvS;xf{p6~)(BG#{o?U-#?QqvkY7pvjo9&+Ek~-?^wzHMJ1t$NRp3weEOC|rAS{xS* zjTbBfP-Z=%4%$1zfB*KZkN^ttiYnjdojKUBiE&Mn|CG|v=yV^~H2A*(C?qajd<`;; zG3D48&^<$Kbg{k0f}$cagkX~tCIyTNr74UpL+v;=f^3`H%vzLdG5*wmC@Pi|kRxMt z>4o*qFQg*~$CPnyjQ^DkAj1C|9aQIit$$WxeNA8(X<}R<`^HDG13*>Y@1(t$#wqD| zE&l4#mMZdc!l&b*Z^NSwhF=AMAlNnWV5#%a4Evy;oX$>W+&D9mWW!k!B3)W^lv>LO znxlz_Sm|aG5s*f$B9=3vke+i(ywiTqv!q7t{RF$oyFf>jdQLGM(c~#opDQzJT_3Kg zC3z5+UAeONU|8jA<*(-PZ8XI8zuy1vIM3PY)r5=4j0iEiyEF?n*U8h}eqIilg*c|` zjLn)iucxFtPAZ%|*PT(soV_&F5)HPQ6QOZG=?Ay_odh;Vs9IhS$eeRWF=qUA26{$xL%@;7!*SGEXjxqp_g) zq_nVTlp6@y=O0(?vAHF3nbwC-&TT$HOqYkbm}Q^dT0NAS0vr`N0z#neVXEt|9kR>6 zf#E)=!?`>A4SEgQ7UcV?DZyo-2Sj+Rnr-fTXbN0Fxg&U>z!&)F<`s*aakanxhbsd9 zL4bGhb}6Ed`lBXABXL!CbXjJGVDMh@|i0?`?yRmwLIqATDoi){6nyi6eOob_JkbE7r7G_EHA zA_TMW)Y|O)5zBJv{ye3<*_`UoN3{a>$12u86YwhQekRnFBfOc8zeTea+CI}g31T)k z{M22AKcE*o?c{@3V&)o~WiQ>+eLFV&09&6HbdG8$$jE>Z%RzwCT|Y_{JYHb*hR1Fp zFI-4gD$K6xp`LBcCLI^vSUpi@?ky6cq9xSUa|2^^j9P>`!y}%ORZ*}6RMIOZgs6nv zp}#cLuWy)hFqT7ILmwbFmw*`~q-rmtS^WI!UQ2^<>AdBOv3=8nPg6$w$Eq=LuXO0@ zaiFV5>2H++R-ZyJOwg`d#vfV@si4-2u244_*%EQhv>{)D z{)s$)v1>Q1o6Un*&$Dgkm`pIc&?8*eX0Fr<-Nsp~{r6Jr!;N|(gQr5`pYZ~f#yy8| zB7?&_*~C}>2$QS$$$viuOPINEN}m8*&IDVUd9bAUxfk#X@yfpP)?0HDY+!;A-g0-w zRoB=5as>HC#DyVtD3DCm6Tr=qn8zBPz+KC<2-NjF9sAk*8KU=Brv;p`f9$nitAhUW zPdlrDLfkzqao0^9=Q1&Ll?>wE9{r{H=s9`219DbSf0X4n0Axj>8u`mqLVp1l{J+KlEX94B^^FGVzN1{If%K=z`_1Cz znQspJ^XfXj$o}%SosLpG9j7`yK!j;^NZXl*rXtxHuNegnzs{3|cuL6kn!{|g*5D)b zzz=8d3984kPepK`p7>el@G+6BTn4fOY4@28uFb)2E)>L?C2lIZxyk$Zd&Q^7UH^&OVNk`=GPm$HB~M%-234h zUYHE(R)pnTuMalL+#owap6hJt4RYgb2UxemsoZpbey>9S9vH5QX%gurF5%5tE55{- z?UBUN<0H_UvnDO?^T#$DEr6A_Y?H%$zH5b|D^ZIULB_k#C=lCe;Mg6rz%CMJB7nkl!|^HtMma1(QRYYliQE zENth{=3JmJmvA{UnTqP3zvc8%8*H1d!w+^!tPwsScsdj0)yZrc2$J*b06;1kXb)+Y zvLJ5gr!S8g2(%uFmk~1T$IXX*TwOiwo}U$(tx0bo!+iAuh!qKl%;xSeo$)yJI0CqG zEj~ZuhZrZGv6bBARENH25oXrZrP=4IXqq)I*g61;Lw`uWc@6z^l@>S0aS{H|Udmh- z-Jg8qDXWhM4Si?vQ&qq@ZbCG!fI@m3 z2mo0KfUaCn78kXV3p?$4=N%KbQ2@~xDW39uN*z40Zr`PvpV?KXDsEj`<`LR8r7gL8 z!$&VwIJ4g~GuTdX)E#b;s#BfpC2Dlk=;kbY32qvKx+{k{Q`v3Q%WIghYte~=hMJSt zAlOlj^%u{%T0E;GeU)MzKPO1D_{ZvS-m`BdYOllDC?8jrR*i7}Nx`x&}m&DVDhuvlIo9 zJc}+7m^7(wcnVF5ye%<86BN&6Sw~>AEN*->OHmV+d896*kX^9@#DbJ?A#BwLPXPR* z%G_45>!Z$rAvDWU@A~B}7Ny2>)r4vC3XtoJK}Mh?~JHk<)$m?-#1)r`bP zJ6agYGCC6@{_=&2eAULRonIr$R_Eosf;GP|=oIGt09m3san)i?RQV z`u_5ce$Z~^oYS*r*GGjE2@{uMD59Lpc2|mQm#QoR0A|q?FX9d`lWFSRg!SHuhfso6 zD4GO7l1SmB>G5@8*40-#dzpbv#I#lp*XMvsaD4Qmp1<44S z^0r(T3opvENK7EEe`(bOAh=v0hAG-g0PmxlO=ifgY#?z)hn`U}x<>Gl9P`aafMj!5 zqLA35`tXYm(MNv2tTR$S%?ou$Yhg@Xh5!4%XuY(;i0qAeLQ zdTT9B1G^?US-?Ea#JRtpfGNij(wNfWpsdTda-z4i8(C6~6$mMVv(<6zCO39yGa~}N#fIbaEo3V&vzhS#nHO%PsPCb$QzkbZb zm855<@V5{cAg6a*YBu&qj<%(KXC{AkDycwlwzZX)*Ti>;`t?Wz-~@V^N4+53bVi7R zj2%QMuDqZQ|H3hqC7DuLrpJ=ZO8u?VDb_#cNgPEuD)p~lxaM98q9>5(KI`CagyR}| ziD_zUl%r+!Z1Ay{*5_7P9-AfhF|C?-B$o&HvXqG5$(GBPZAxaZHwlTG6sAooyq_8m zVxb;$P23gSJyED>GM+YTmY-s=!qKb=XlkUjp5u`=D)4s)pdjEVXcpTf{(ttXi-KjR z-eNa>ggb#xoHfqM2#?7qHW}ptG|m2k0|lVwS3_dC1Pcn{y#PDJ#declbh2rh3#HFh zCS^LPQvPTS4lRz!#V}e?DNrexa3?pMh8LXGTp`ufAt=SjvAEP1&ZhkDtIXu z+eclc6p+6hq#~$LhKeGBmS(A-9JmLQ3p-YTUW6DyF312Pv`gnA;-Z-<ovb%E*)=lkgNYCJo#`HMVW&Dg~f2%s_nqIz{ zwe2s527#b|GAZb4@|h2N-Z8t*o`qpI6Ud{OOIxaXO0ra2&_ju7J&=^=qgY#KY#Yt? zHFQtmRrq(4D`}@YM;0LchRLVbxaER2PJq+CZx2k?G0Q1jP&^aUnduf(1F}_tvveR0 z6L(S&yY4)Eod6Pa2yu^0ZO<+ac$Iu;ywpCLMRiINy<#N>E?LZewGg_==t;}!sP8Y6 z9bP#|b6M%iuacPB@)&626Jcah)D$4m-WkjhSWL~E?j(Cf10htV=?#uKQ7BpOM{Ho5 z_RKnnX4m&ptfPh5B@D~cyv^k<*HeJ+2dhm=0Om}vd7qq^1+%*U58@cbs%Vxp{@H37 zXzt0ixc1OAm1mJB4EepD-ZV?<6A-+4!5e{iw(+9XZSYd7QiNEOFX&~K1y`6$={2RR z)im{}%J7C1FC@4D+oM%z&@7Ith-~LhbiB+TjW|9Y+Ju8dQpd=uXIhLI^FMcu}G4Z zpTH>P$X9aLva~Eur@Qo}tURWjNy}~;!LU23}uK~mGydc z{#TRlalR|$Wl3^qb{2Sqi~4e5t*qnMOshArE`V zXkF)Wy@-YV>Twpw+jvMpECQGxyJ%Acj##DmW!+0_8PME&7Qvo1MH%< zT%I+zrJ(EsP~T5Ru4~w7t2Q$dW;X)a|6?}qEj26O$LxC(>15DBrvN61Y^v<*@otcm zsl$+^*lsyQ(gO~daSzBKM>5Nfa$(a?_M4>5Ch7JZ1?;7FlbQ1Sd#@r>o`Zd$P%Z!# z05EJ*fluw)$s(V;sG^vG*31czvac_$0;rJBCRd(O8BWDUk}Rpm&F389yI4`ZHX-tL z`W7zQwk-OJ&Q&BYm1t13(~wb%S;fB&)2XoUFDq5PSPs*pES~^TgP8zCH&b!^1!|)l zE>S`2>cDACXDYwI(MSd!MJ@{=)`C>Kf6gF!x_tzHI?&cJn0tW-VBMkvF4;AqJ-9Vr z6^SY&^Ry$qX1%9mKmOJ6#81b~dZ@HH%&6gY`Yq^4>*9XN{O%)M2Rjiy#c(x(hnJrs zw7hoEv8z_3m^%rpR?pff*O_ZU=2K^-JV!h@Nz1bwTz~niW{J89}WNX@~u-+`fzpLJDa$AcJiK$KNuj<`+ZaJhV@NV<% zI0h`mdM`ZcP-XtHKDqk!9n*l4MLuifRun3f9UhJ>;=yE=DZ_SANpxoNeK=PhHABdM#hc7%NXuP0*3@@?v`^UD(vB{!lUW;aYm zuS%zNj$X<7M$;gu&)jHbkN0f*%V1X z9Zy_IH$><3I?~tQ*#z8m3 z#vP&sMhJp2T|oJdbJkzEbTsCo6?1w*vYt1r9JM9OIWTMX4cBw%Vk9r7bZ2_=DB3yq z2^ebhvI?w|B$V5>JAMB>TO83)ScUf16;|Qwe|-K88@8mBTrk}59lKTgqg6`Y<@xVe zWTR8jt;ift))HyYvmIA(5kE$5{UIHhjy4Utt*|tu0WRF4mRwp9Yw_mJ!ebN3(rgXP z8Z%|&DKsc*ow@=vJ?=gIpk%r_8a&}mz2Aa55)mOzlobdrj9C_B5bL}KZENeCY9z?LPV_KhOx`%fXFmP2ns^>qJ~fC3KTwP(JfjkS?SQjmbTH%}fCgjjBWH zoC--@W@Ek?+#IWON{O$22Yi)pl*NqH`euJ0GLw;%I;I(e^VFA@%owclmv6^J=o1PC=|=SwV27z*^~V+bsBzkk z3{F4DTLyYj~BfF1uLQo0S(NH$))We6zJy)+W zH?9}6@gko^E-D~FY?n7EvC9G$R%AURaz)17OdvNpgle%(Tg50#ZnoD0H=?$9j#AFi zcU6et5k^D+LjkcgYIco1J4_oH%|nRotxI9JfI{@KOX%E*ya_*}(940@jytE6hCDw@ z*k%(olBQ8Oikc2ed-0av`PGO28$rf^HN-4{$X_r)%ek<|>Qe^HDwohm=GJB$&; zn?0G1E0GOf8P;%0VrJl~m9-tghSsHAIhjX$1MowTF|+0fO_moBWZd#%A67$BQp1hwk{ zJ*M$3Q1UO_+LW0dt0#0F&3k2SpfUS9rPBpg^U!BMowqvK&&-G;1Cd5%%_bShChGw@ zPm*}{Jh>VkIgc_Va@eS9UGye{>gTZJY%}Y^Xe^s6L^bH}JLiQX#+bJ)-|5B zs!eP5>lpwfGah`cHX9N&CNzFOj@ZLyJ8u^x?-ujdTmNXO4!{smMvq$IK~O8B(awXhbfB%>@440FGY>nxtk&SW0mY9s6tAUoU_Q*Z<|Q$?tG#N^kPg({80KjrmW5tEs=XUA zWcYw77X-fuK6mZkMT*HImznFhl=bqLHdyJ`3`_hbcvv6B#klZw!$5$DZa(07@I|!5 z8en9+hI@K3$B{q%+jD0}66B9t-anX#blS*{>v9dEiCmk^0V3n|`Lr3qbkNG5PV@`% zyPh;mZJ&=%qJ7xt{*+&v)WAiAlEHq6vyL0yFFPFShxB_C)}1~!_b=7C%BydBeB(UprZvI>+xc%M_RP-AKWbg0rdbqs@+c^Lo4Ml zM_;5{8~!FA)v5wf{@)M|Yp26k(c#7XJtZBa!iCt{S%^U=ObdqF|3xwcF?YHOKzkQ~ zF;3vW{{e3`%Ppy~4DF2FPlvla+!RaR6^l1Z<^*n$ft=-#zQULuLRRkuXcGbKD=Vpe zkf>QmE~bNJLdz6hriQm8sYF!hD>^_ymf|7h%-wmuU|Z&%pP1m@1#u^E>=g++QXLd!V|Wc)VHMy{b2*{4Sh>JN0v zjN7V}o>~w^3u+gvDPW?MTyzN$iorusv#4&)_G@c|A!I0M0S;Mk^UB2U(F4A%1$xp! zPal}=TEyA|HwzG163H^|)9q#Dgx`{yTIx*SvafmfmQm*B;tR zZ@3MGq+bP*vLRg$Hbw$MiF0N3v$J&-JjCo4gAa0vf4ykpoe4{%(}h5t8OrcdbDh3v?r@7%!O zS>P65FO6>-^0Qmp#lLe1dDZV!F*rW9G3_Lxhm1_2BPRnq_>f#q&votQS_{-2zDd8a#;$_>T8!Bflz&Zz+TrI6Jd7I9R`hd$xiWYh zA9+WB8PLia0LW8XB>A$_CKU+kgeF*_465)@J?=mYXBdDyCPG&0n?)_g&uqdsSEwTw z@iGUP52c;gp^D8xLLK4K8y21b-9!ha8NaGHz*GUUa&tkG&Vxb*);|RqPC#sB0o9*_ zcAEybR584j;JS-B8+U3$!A#gLWVHC%svOYh6%Fd+9i|4 zAO8WTXu-~SNQfHv6WKcF0@z+h3RFST;CB1l=x#)YNZ?s9YM!OfFa%FS{P|}t@hrzc zrmG%==F8zlTFB%luU*B^Z7;zkaeH!dqyMflP6L5Q0+KS74I_tRi(VT49MFnx;Uk0a zA*e@;;iYA zlf{aYFZcG4QQzD)uX)^P<%+bH!4K1&YxKB_GGsg*(x8Q1RH8#~Av%~nhvlvT*P0b% zpr;D4HM`=r9Q{NF@6fsI`Zr?JJwz@SIMLC!myR|}cA$4l6sliQircK)X*9DpklF=hhG% zv?4GgABunxpbe;gJGoVbl2phtb>l~QUPz&(nzFSkjfs?p3`hn*oTg%rS^0qLfPwhE zYWI~(yv){Cew`8FJ7DP}w_78#*j5{wp~t;B*?x5K#)1fBl!ZmhL9d0Lb+3b}SR}E~ zVd=rn6!P)i9I$Z)8>MQm@!ge)_pTi-ORI_BMB8=xcgrnY_)0#|4-b!30lB_l=>X6L zU*u8DA4EbU`8%z((0%;>=a?G8Wst|s8F>KGt)vU9fTjfll4T0LbF0ANf4-Lg^EK}_HT{YvCwqFQ18x7kP`GtAC{_-PHT8{< z*)v#R`DY@rr#+GjsV3}NMQA+vxsl)Cs3ub_%fUY-H3lnzd_3x|483+cvW5wZ(!z2% zeNOM-QUT;uKX~mCRA?P4p1x1YtvFC*VgR`Q@fmZCkGv*F|G|XD2_Sd4eV~LsS@(F~ zb_8?v>O>-HQis0HMISnocYt{B#Lt*hGVoC@VnlyHNF83e8)cy~#$CWKe<5yhw-2P@ ztNoB|-2VF&aD!=X+jbf96dxX<0;TDp2TM`)cl$%gutK~yc)e$m+*TarZSN9%a5dv< z0=(d2hcb2VdkxT*>wn-5N|^kws)KKzVqJ?NLAjd2T^3u&!SC zei;MKmkrS9{{C9X+-1nGi`F|G&6dBAZ^ZlXri0hJS~Wy@pMB{0Ds7z?nz7qIxT55~ zt=7|)56*gDMEcE5eUK&$qo6){R52GjC_b}6InRnTxT zXumJmKn{Za)wOPaF_h~Ya`Zu>v>1H4_fi_HX*H~=KW_6*$HrW4-bFkrmlMtvAfg0_ z$vBsE0b)RoZjggRW#JtH#IU}}Mu6zILvdk|9jX&u69|P2^}hG=!??Z0p%Qi2Nsbtb3O#+B)bGpXc*Yf<|$;e@`X)<+oUnVgbXq`>;t#6ugY+=&3`k% z=I__^EpmqpAY(s2+xG0^T{_Us(2yt=B$^L$)lQYm*U>Bn@}5IZtg|QvCxxc(r5pi$ zu{}f9gNpbW(pQ=1FF)j|*Rc!DatJZvZ1xe z>}St9`1=}|(5;U-yi#O8A9GQK5d4dIA0;!$(zvixUa5)k1+)NwG}wRJZ*d59n~#+7 zO$L;a!}4?m9VIg=dyt6VSD8HfWvH5oIj_R>>R1#mqKYXz3UHgyw_dTJUGPKh0U!(b z!VnqwssK#kBhsxsn&>Yyr9z4vwhdq@5W=l(pxx$;jLk2>>z}NY@j?s& zXz%JLDZ04y!r*-mgV&n*J1e0SthfRgn5hRFbj6R>fXD)C5?8#`1^m5^vXTSq=fNsk zNo!Tv1x*fTKhr%vXE1dM|6}{7kUj6wcJ~SyJ7>x3^&8g9->&ESl?pY3*6;*Q;3}g> zNh!@5{>6d0X9Hn<*X5c85X3>3@h``FJmrfm2hc7`?A=Qyu2O((C>WBi zLd4Xe419!QKk_#LrkeZgdnZP9AF*;>-+`nR;YG~?{>h0Pv_YPi^KV20{UE^&eUyrR zb$|6Kx-)Wmb${dUQdMv3 zzw&AUD++#U>iGVl@LAED1eq5ru?#;a0Yl9;cUI7BKHqL2vn3M%0t6xrNnrwJwZc0G z{d^-U0JBbSEspHB@M3@7b>DVHR-WhJNZ*|Xhkb`f)x=y_)=r16!_ucU+qPGjbqxIO(1EuSQeXyg|?4dtct(_2z$HEPVFQar=OT)l-9$W#|#;%6d5$8CynT8JVh zT$4q&RsNWHeSAYH;Z{sSzs$)zos;mo#UzN4Z4sNy)ErED%A7;EH!&g29Cm_pTT%(j zr41g$%oQgsvtAREyoa64H)ISGtu`ntV23mN@v$}=yn&w%XElYmSjLihy)B6aA{PX-n8`76_WnR>6N$WruXRG;GISRenG9 zt7}?33xSnnKn8GzfBH*Zy^r>+<=v&YY6o|)C;*?Q$v)3mTDtxG(UNDHQ z>y%9oG>#Zt*0@~k6rmL#v`>`YYp~L?3(x)cLQj_ZcjafFw-PAn&`^uRy}>x|vbp2L zyfQHEV@ut;<1ru!hZ%qYd;RRSNPh_~KNw_k(P573`R6%_9{KZ`A$z_mg7)J~b7-jG zgV@trA+GucdTX{z-YTtaJ^rc1anL{ITS9b~_JbYV=Ho@YP@knwYAjn}#ugkht|M%bom79r|2)3LRutPOtLF zQh`MbvCVUiD4|E{MH?5Ovvecfh+9x@ND6+L2MfJX75HKnWU*f-^wRTSwt%}Ubzd&` z0$$S$^CJgfZDyhNF^y}-?`#|7!d%9g`RhA@W}7|{oysRW;(aF`-zV3&jIs#E3#7&~ z0P4{R^hwc0!My3VuJ2WF$lp|ptcMeR-Lu}Mv`$T~RyZ;=j@{iKW&NFetx}q8c}Lpp z(9cAql5;F`yKdq8xkz`iFgceAvNASqW3x1goBd4vUP(?am>Eu+lyt?=I@2E{^}kKL zwgjh=6gL7VsXvMDR(WHp5Pl?4#n&+Cf5!YQojHd;bh_HJdR=YajULmEchRnrN43q# zqSa6Mr&qhOQ0oJ7D5LYYB6C-p#QhLkT_Hn#G0kG1GwL-4fW)!~4^3&%5PG>V&z-YS zpGBY3Qf0KGwJ##<#|YB@JxSd~uK7dqAmGibT2m3f%AP?nP@GKVDI_bK1kvrXvM|DQV2tkA-0=r5Upl_50Qrj>XaSBkc$dv6=mN-7$8 zjl1H3h&lYQzrH#wa~yzrA1J;yQMw+ver5H2JfzsJCE!Tm7SoS`V)O(T?yc(KS+`1! zy$J^qJ~~M+L$LB6UrJSv5XS`Y>lOVzKM~ld#|(Sjnk(Bn_k(ldpAq|PU9g2S-S9MR z?86};JR2W%ahV!$CHZ6yEx+mFUHK;e&VGo4ETbWBI@IEu`tFgTX4+0AuzF{<#dYR1 zzSK39LC@~pK?YMdcI3HLfs&reV!L-MOhWb#oVbHXb4M&p1srn2*^Gl7PnRHBn;hf! zk{`lILTO^UyJht_naW8;22}uwxAg`D8Bh;2{-Jf>R#L2XPiX^@Mo zJ1HiT3sJT@K#k3jHx7!V5&vO7=|bP^)2)CfD8T@{DRoH( zHO~il{p7m~*9I_Fq!j4De)aW-%pP3#>_(4_T~_Zl>|$hHN9K|G?TimVSm%+e?sWEF z%L1tCJ;eh5)#tRfy~FrZ(XIY${Y1yawiM7WvJZx%gcMa!p39D z=vRk-lh=3w_RsG3W#5|A7Jj9DeY*YlzhsLAdBEakT%Ev{`8Nm5h-V{hIU?d2I@Gh| zJ_=SdGSjH+uAElm5`s1A)y9NvTHs^ndj66*3$~Jz8GBs@d55}&jx1n;Pe%oOE~=sV z$!3XB`6H15i6?^)>nv5K16?vbTtPXg6o`{e>waOb| z=NwC-nhkfRod6S1u??y<1xs;(oIh$m|2}7ZY8-f;!b2ou94%1^(z8X7WO5avj{L3u za+t~hS)x>jkyJFUFi<9d%S8R(YZ3rgxHgACMUqH8$hH%bNf9TLB+(p53_^s~f!x@@ zFqsh3DGW#>g^Y{BKV4CB8vraY8i-abH35)^4g4PGyLEl!&QYGok9NVIBdVMiV(BK% z#AH#QzvycabybYc?URn6+jeIV}L3TnIuBFDFHt`m>zI{joo zEJAeQUN>eOAif~8Vu)kO2S=80E0i*vFW!uN{b#TcjR5(N1FWQCPbSdFpTx-lI6wzU z+dJ9mWBfJR_ZkOA-|){Jzjj*RQd!Uv8y4i^h;ilF2jCq>_?FTjUO_)~b4J9yTNfbe zlBLF+$-kxV6nl+>LT1EuZuOPSQN|27SPA;tbrw-3bSe{G)Q(_`xJa4smkhM=gx17s zY#h)36Uwq{CZy77Hp9Y44+IT&#g$x1knZT8Q6T1LakyMmIYW!>Yz>Ns@|dP;JWVSPU&ejXAm0bMU>+bBa^w?1^X8-g`6uwvpNmL!`iLq{4iW&dP1-ja!}X2x!+ zI&jF7L3d+g(=o5Ru3zIcuDy%Y&)dYi0Gt9TB8hK{I+X z-!PtqBR7(ZwT}n=CvrJAbmX_0?pyl0 zif`!p2LMxMeN5K*N?GW=0#VE>fNNRf;i1lg?byR)>lN3AB*UHi{J|0P;)`g<^9T_D z*vb2WL57Jp-@W3Us2L&Q?6T?K#_!uoC`iSv%6to}8S%||vzA z5atAEZ!~lRK46CqnmZ#&*TXi*V7wWCdweQ7X*?zgx<&@ukq_RXtS-y__47Sbv^GAL z0SOPO?$4IwFd}DvKN=+mnK*+NtblGzhxJ33!V?^rDoA|4#4OZd$qJe|EUsJe?2{tm-2Hb>}Iw8^6 zoJWA2=Yc+p$WKED-zK-K?x4JNf-x2l!vuaAa<*Ek8D?}%2(f<;kycLkeq#eKF$e3v z2{#YQ78q+#3m8GOBv#e+bF&Qq*?pBSTA(-e`??$>9W-AQc(&F3TvmJj_by%*HZS0s zb5yj?)B3yoX@~w$n|Y9S%J=Kl;Jb9yk9u#Lebh4$XMURb8`Vce*j= zTYmqh%`Ch93<-@c^Iy}Sx?O6zaU9HM!amxxgvUd@ld3}=!erJ56ZLMH%t$u|C~C+6 z@%mu@l?P!Vt4y>&Q!cn6RPv=&^!(19?Q{rJ)w*3<9rPbOOhOsG$o`Di0kUfnI zJ&{gklAy`7z@995Dnf|L7y8Hm7I>h~%;}BuRWhHBNWgtY@ zEmtnxj2Vkxg6|7;IyO}I;4b|>@!S)lk#q=A&w0)i`G(Ka?`5Nhbm-ADNZ(G7RX6ZC zJ$)D-YQ?O#nm?%3i0xk0<((FGDwF*)dZ*_8@LDJGU|Qnh*VYeT_=T~?lQ~o=2RtJK zQ@TL*Wx&lRLP)tL0T~jk|5@yjFx2l>ag*o0tm$v$_#VO_ZirC~GB{)UDOT~1RCN6D zJ4n}YSx(?7La!(Dto0u1+5MTI<2u}?*P@2ZMpvykRt5f-4Su1cSkCC|^nfTk@o|;d zgMZNb(@DSlrq~@8O@-4qxnjqt$cJrhP2+~p@fT-fUHZWj{lM~JisiQ&k}oX*P-Sh^ zVtE3D*>4&<-)vGQppeDk^UbFk2P%@QRx)8WhhT*>upMN`8ZMMA2cc&KEBpKZ77x6+ z{xXvRqAx|P;MxD306m;omBlQTJ>DTVe^opgcK%Z& z>rPeJjNoLtIE>GXZ?0Oa`*mbB*@!>9byna=0-|LG0g5i!$TycQ!IJ?-)w)z;9%Mvv zC+X;oVo=>%hT8E+CB3oy<+a-3v)A)cub*CL4ITNf47KNPu&@QPvR`b@2phJcT>=Ap zGKJ=J25mmnDjwv^Iai*v5{3j>A#Pd=8qH^9E+h$Syz^Vv&<>lturjcEFE|1btN>oy z7X&VTbZtj{-yto)L>D^HJBD3?KQ7qx2wg!*!wxpwFF8c*K2CCFg2o z{Dm{)ApZLE{?hBn0px4G$|E7F7npDQ|5&@&Y$&^{U1f=;?H#d{_&m9Y|LrQYz%Wqa~5KoLvqR~5!L1t zN{v)1)ea7mLnEQ0dnBD}B%$v6-bPNTMs%y(-E&APb+6KWtFPOB`~403?D4)H*Y$io zUqw5nifoOFw@9nasv&48;5DUa+$ z8)R&9OFt5b4Vk>QL17_wax8G%oG*Wx?g2L^xZ}afb!yEhxdi3gO8Ffgqw{ zO?1k0%6P=o8534?P|uk{*Y&=N^brfaD!`kB`#e8(hZHMXothkR8${ z+jCIg*U&63Z8~_!*9T-CbusiBgu3$m%q%UCR{M8A(Pw<8|I@2snMvR9wb@G8P4BMc z6~mMvsOEpaIO{;xe2@&UG9vx#$DL&02ZlQXfMg39;@XkQdnZkbqr8g0JvF$ckcCSj zUqQst(q29yJYx-Xw~wV& zS=_GhDEx~g6*zK*){pO;Vn!H53{BtXUJLOi3t5b zw$MXXlPm!RTy0|c!CYQmP2`^Wn**tIfl%p?u=kLb3Pa|Pv)jCW_vxwKwkY#o5f%-#pX1N|MKbf~8eOCZ6(i03d2YigsZf#M@$*ydXWH7HxG@`-+pV5wh))WS{+v%W z2!ZL6*IvF)2`DbPY7@s+NoNP@F1u$>EskFf78~yFVDA7zY!GD6r+Z)441C(&5!un2 zJ3C*3_bJ?Wll(w%19sb80!aK2SW@Anp-&ftT0u`^*Y}UENM{2|Iz5VRn$%t{Z*{Wo zP)9cl9I|X(*Us^4+K?hchu*gLH5q&B3?o)gA?jk=SkIZmZ<(m49@` zcKA=2Oo*QOpJOaJcE~U5nR*}ZZn$~nW>(t8ndi1Tv0ALzt^Iu4)7aad(%KnR zafspi)mRXAb0cmt%d-_&oa4DVch)>@-C?o0W+hil{Y5l8XgfU3mcukS(1`7Y)qr5q zgVCB&i)+-on@L40?Zb|7GUg-eyU8_k{zHydx?VTcmKgmsay5!lzgSb@Hnb?fxLgZ4 zH)5UBSv}&YDH4cuLqF7@$lg(7!S#vz=nGD-$d^)S^^g=1rFr#0sMF-U%Vt{7e2p!2 zaPb`48TltiggBY+a%x@QP)z`|D>*j8{g31TjO!$BIn=eQh{w=9=k^W7)YP&Kg`Va9GaN??3YZQP06;K~(Kg1{_%{c(+^WQg! zG0AsW9BBwx_6wMhXOmsQ*s^m>DaA|7piPcS}kLX~fnxVO2Kn&EY^n0Qz8 zwT$|JS2OB#!j}y+EUN9^TvIfv7^%A8IQPWb`Duzzm1v2TZa340|D zWalhiOgwG|pj^w=MwgrE5b_!h8X7Jz=_`0dwI@R}+~&xqErZt+zo1eoW(_ZiL1-3N zv_(&7(BM_P4m4R->{0E8BAlZoQ8hC7 z_L^eXWuT6oi4f~cFR2WV#-*-ovP?;TbkdOnk6PxT*PL(IBIKAn=}UM9B|g}Mrnc@e+1n`>Ns%Al-e67hK=^jfK5cN;ODK2Y%4gJ z{-ag|A0^PHR-PU%5|W;3rPL}8(wM7|RlN=MdEtN#7t1jTg3zuNUc!lf;oaNHV2fnV zse(lz>9!iSyZ!PyKk^l9rmT49&gRB#1uT@WY8_?ei-jMqYKP`LyM(~yB~?4jqKl@4 zhrSO&Y{YUq2P>hYqF=&Fr)AccMo|0A9+La~JvchKj(vw5Mgr_p z{-v^71%|KGB_0J7-TjVM*fVQX7drdo|Vxz(ME z$1&=Jo0xC6`T-iR(&m|^*S(c>Xg8C7a_wD>NQe=zUbYA9+cR57rdcD_XDM_7&6-TF zs$ib#5adw_#J2M>Ofz&^hgD+wV!n;up2ZqtM4frK*pGy_%ag~&#U~5fba!yYS&_Jo zg;zZ5(=#LU)IM0NCg>Phu!(= zE7q3w&LU}pJS+UJ;YR^pCo%zO!A-iDdXU+>_Wkrygh;DATLN+ZqqlPG88ec7qw@M^ zi_WQH*j06zJN9pjxTzwy8m7oZW4(o_;C-tKtUYy7n`f<8mbh2hV)lzu%^pewB9C_T z&ejxsBxu=vf@&R1+ido%JJ24}4h$xy9^DceWah#1qiVD2d@qQ7RBpvdxxWi zt|en=LG7%8!>UJs$AxkZaTcdB5x$t0mAbaF<9)m=^`E~jva3~rodMR^>8O(IL($j+ zA~V_BF2p&}?)}e>g3QGM165-T#B>S>-}s`lwVRDhLIjxc*(Fz-RA3hw$i}D5w4oW$ z0Qm?ukC8s>+Q`=={b6Z^bK6(qLWV)z{f+Ve;7ZRPDT17t0Yd5AKx5t*)ZS_lvqTnN zZ{;=S4S|fLs=I|R-=>*%hZu*{fG(5ED_GL7oAFj2SB7QjrYHN%x}rcCPi8EXpl$tH zA|1i$xX40aO+UQwe2r>WX^mXJUcC zTnp~e4C0WN8(G*8+4^wH;HCdnc^S>hAQ$kims?f_KOiVA`V^tz0h@js4`vDV6U#(+ zk@Ryud?Rhg`YQ@?N#rm^ht6@WDZxTX|Bl z#aN?}@*Jb&AdgOOgDZ$f?qbuASGLPQST@l9;@EG*BFP_NkNO=J6%GJU2T%nDO4hLz z766rlm%stnZ%!>*_YkBzao%clGdt(C!z$QLtgvIS(BCH=e3hmWLGUOO*HEorsIT3+ zq=+jw#l^7_`DWA6^OQ|;mE3SCYU6)G8-#+H3E6lpc0F_KZlhKdsu$)JL8z6ZYZ)dF z`6R8%S;>f*jvCF49xT%74>C8JdUV(K@jg9sQl`Spk&ojtb<&x5F8b9Eos%I?ux$RE zh?$ngn@D589`ei{0+3UjI0PD=aArysZEzW2D&2-Z|F|a&-!}xnOJ@k0QC`Ph6N_JC z2N6uvLp|!}*S~VB2ugm}D4w*)d@~h~;_>jAVHEi`bc!gCOh>I`H%6VBYlk(ROFz6NIo)OKG0Y`=cRjc z$;{~CC~-~Z&z*1@ItQDV`(w&HWC#kP&w4eWLMm|EtN6k{4=ogUNClVl&ekpp=#Jp8 zN5EbUh>atcL?XmW+$;YMR&5B!J12KS>zdhswizem& zm&j`{0oi8?9TNbSCJH?hMa)})<4qjd_cdx*;b5Y0&=C8~<7CZKAXnel{^6j&hk|tz zR678xW0>WhT$gShXq(RhMhe0Yfyfm+GYQjjw4#@9jISLEW65pEBKi{6_1To7~;&{?UIG{VrJJi#A_*O)M(k!O#+*6jVOo7zc>Q0rd*Q5BEME zZN%6_M6ch-ba^7f59vXdIB)}+jXU#sH-`FkQ_`C;_6UF`V!7OW8gg79CRJe&F1)t;#+;9%a9g!jX zc>`*m$;0^hkl@*HAePRIy$T3C&VUp&4g!G(rp*`J`H$6`@FtHFl$hgn{PpKruz~L= zO*6XWP4mo@Uaj|n{n%nM*7Hk>WoF=^Dqy>QIaVd#(JQ;z4N&NR?Bk9Zsw^D^*Edwk zjYhR%S?0UO$L2dKX8_FUNhYqAapE=%H*GU^gt6gQ{Dw;YT^U+6>KqPc_{>MzQ^lTD-BSrzkgwKFItcguI$r1j$F8#w?Xh7S#q=}Ce0 zA$$XgAW_GRoG;K#;7R{vt}h(1Fk#si$;^o_9O42zecu8;Q_0ikTk-=uhd@n4VN0zb zE}muUX4k>7CWpw4hxnGY+5MKy=3dtglL5&5n4qB9Uqv?zhZu0~9CoSbg(#(9rR6Rr z*-8n7PhB5z2YJ7*S)Z-blifnSmaHgvY>BBLH-)3f<(q1o=4jQ=0CM6e(^8WM>}YL% zkp`E`KkC!hk7-?#QM|#K=&02IeQ5@^pdU`t>Irf;fewTZ$#qAbTc*8% zi}o0#50?G^lBKNs0ySG}-EtFyNBTc>0zb}n(4 zR>7#XRQNCQnhRA4O-g@9iDLz*b(w`&^-o5=cu%jmur6QV zC{|Fz-~R8kvIetX#VRn!i?Ty?AN(;<^F1)*K@gSxagkb zjQVTXQI9Z7)(#yu(|js?o=G>@#DK7QB%7co{{b*@P}C^Aduas9uE`$<;wJzYdZf-u z#pC1%9C?Nq7}L)U>tK(&#L)~}zxa`U`Bv6v)2Zd!oxg^F9Sl4^DQO$Cg`%&7EtF?2 zj(s-DxeyB0Vfv+{iRMoVJiYw1w(#`XPGIy7?8a9lm#B_k4sMTezxG{QH?mg-4t%di zl*jxBCWnLUWLupI%xuCz)_WyZQ-XELF6<@&I17@#}+4UuLHR!p690=?ZS);Q{jvI{jJUq^wb$ zCrz8wVafK{PYp-k0BBv)l`kY}oyR(+L;d%>!v12E=iBs5x7rRiGKoVB9U91@f%!m6 zIbJt9JP`qd>=@?l#n2Yco`JyK)FnAg3&+ZZLdL|ScNexT46X*?3ZCoEpZTDSG)?lL zFzjfKr`=Y;VMq@zQ2NgiErmFV zuZpT_ue@d6sQ&3s22FoZP|~*kM**1;`4=C)hdB%1rGR4N!MFaD!|SN%B9`69vv>X& zc9=dr_ew#n09`C%Sub8Q$XD1EINhuN>`%QwDMLH$>5{d~?+rk?xr^(Z@vKG$+%nf&6-yJGKUuem1)9Gj&_3wP*KlEG?{`i1X zA)rl-%J#tbh<6Nr#>uIn z3BX+=7_1Q>)HDW-@_FeEz@pLr8TB)X6LNoXMQP<|RziZYj7eYsrws;L?f)Y!M(pQ2 zR&0=`I*!`?Gj&v*ub`HH^=SN|&^bhNH5lUQvHM8{VRgR*>zMEf)3Cx!-fG);q5`0I zb=$k5)rCohF<|3?V&4NfL9f^Ux}z}$HpDnG8q+hyBvAX9N&(~N8yneE|3ZOR+?u~5 z*emcix231$mU5r3thW|_HF0{M>;DsSMCh)3>Q6mwu5IW#5>PuYw_Vv;vtmG5+H6k; zk=d`7aSA=0;s3aKG_SJLBw)RX!a4zfP7_e#1dj8pExG|+P?Q~6yei_t&;Nmh`22aIE9j-F>Q%VST(~uW~3kp>|v(0H%%xwd!-`e{J ze|O%tHgjZ7OO-m9Yt|t@%-K9SrxE-{xSL;b+FWzUF{^g*$?pz+(w))Uzw114E?8V- z2JC*?=ooQ=o@H6OuE|!DF~m+;*oDMVg6s2z=4CFF+ zG&#QyiuDtWssuJeMt*r~&hK$QEsRd(J@$GtoA#LC=9bnkcd6g9%iD6(PaI1l{Fh*R zvuTlVDIa;>uS~zPXZ6cug{Ep{KPcda%J-RtlcQ_>yrhy>%w&{1%Uw z^Z1<}&6e0GFKVlfy+^gU{-g&d$b?hyW8T8J{-s)RQj8lg+b^C8GRbz0ZM?Ove zzAxLd++yuz3i{k1A5zQXJzeYUEoudJe_p!XA1fFqFh*Z_8hIetz!Ns6UOpuR-Zu~No;!r|0YQRQ?E)ux%Ld; zCL*_F)pjs_t;|`mh4I4{%lgU=B2pdh>k;!FZpaIXuRB7_i;sEP`aP~@wbXD&(U`TN zc}x$)FxZjnayGT9=TA`ZMNVL;4q$_|L1G>=_`;ss!*30PjsAnzc$5tnZ^_ts+b1 zaf#!6x^9veUr)j=a+;7MY{giapO~*jgmjYGNxO^wsc+ZRR=|=Or$~#8QooyAz0~($ z)3q_Ucc<7hlQDz8$bf$+P+8=!z;!N?A;f(p=&XyjSc` zUP0{7P!*-6Q_xGpWPC?#2{vD~D=U{JV9?=3qs^r(H3wG=_(l5`S{R?{BMPLCEc*FA zzYmAu20Jc1X%&0hA<(-SYGaB-p8XBE9pxJ(=-8YC(};nHMjYHAisxcCl_J9gRG-TE zvflKiq>%VcShmWjNqs3`N6|f5xLJ+G8c zCOIuSMN^RVH@}csSBG+azXpFgG+{OVBg7;zH0WE)AH88w$k1VR4JBWFIdyT?^e#i8 z=cE;Ol4lV;?43^e&6V%W=M2v-La3PPagVnGLLq3U(`V(cC$Ii(+GPS;rpsZG;uc)A zNPw7%LasJ}?5=p7{Yj73*4B*}-4R1=4&g+$>?Dh`VG#kX$IF5nqk9yG&i53hhPhjZ>S<@)O zzh)S_dKf}9qP^(8rn$-h>Eia+YU-V1xe3Hs@@AhpVCRyv7?~}(f0Am0P8h=S5EG`w z;&>1LkSB*T#O~OHHg^q|l?^Z|En9K9`3L7Trfa3&Z)p-)GtEl;NiGYX&Oonz3EyKF zUH>lS-LCzwbxtPSee|ai;FnK3N9tCFK|*7?0j@%#i>vTy$hr%hgW-H{E$KF8eV-tc z!QR$PcDzitOz+-8x}yy!1ZFrUb~gyWvM>40bMWI594)gwa=$v|LcMgii{FgZ$RoU+ z#vqvVN{W2)@;R&Mby4NMP7JpoAY|iLy$uyq-7Ih^D~l|L(*j~!$;EAJ)o~236n&n$HWoM|AT6_D5#4gad9u)D2#APn5EvGa zg|}a@h4x-@)O`61GNReVthtY6wBg=?CXTL4GQ>E3N*48|#K#c-io5-cTT8-6+rSOO z+aS&`pD7N~sexs(Q^~hJA%oo*zK(yY#Aj0;!EgN>%!uz+q`r*Gm_Fh}`yLA`ZO<*! zjhw@r$RL9*mxvP^m@;afcD^_O`{oTs{5)Sj35n@8QA*n0DoBoA;i9BzOVd`(Jp>bx zqL;sNiuy$=w9%fN`-8X1P6E2_x3{Ojo@R#>mAv^=^*^0aMSzvg-jZxjy8Y*iulH~s zzW3zitq_ z#mwt)m7suI4X_Q2>TZvalt$v4B9H!N9kVdn!PcaAr4Qw(V1{Mn(=e#ZSMI;lJ7z8J z_x;Hv@GGL|DPeH{u+?WA%8$9_aS!5=9gdGUGdo;3+C4z4YOXw)4A##-3~|2w1;qe> z^!IiL*ovIBOuZ%i$`I6k>0fN(&}`hjJ4FV;&Zjn4u#WsD0zsYBT^fVdXko$fC!-2% zXP;XA;Qzw^#q*^jGw15vg$px9E0TDNQY>rlfDLcU>fgxCNilc6r1mY87F@@$pt?Y^>HRGd#40&6qy_^XOjF=9$7p zavY-g&3XjR645!Ea6R=+uXSd|B^dRpu1W>@nu5H|b{%EIJTj40m-md9jF0|J-adzX z8?gUt>OKL_#V_Pf48-4?U7Myv7Vatk*}`efaD6lPK)}!hRRn&l6mu#6BkIcjotS~OncRJWO(DAn5KPlf=4bZ1!A?pT zV#Z{RKkURD$>-_uO7&P;@e{?kD-H4xf?wl&xjl14HE&=d{~i)#RMm{%*{lsG88u%~ zF7z9Ppzvhik%!@1s%EfcCLs@~f1Ur&$flDosFznqji0xV@;-hv$E+0H+fFY+d0cpCi$)FHN2kqn%nI^&Vzs#GQP2EY{9o)G0KC=YWK zMuPjj> zO)pQ7C=Req5pC7yuT~XjMSiu<1VCgqiM?}R2HM#VAh1E8_5x5672HqaQrIH2w{k6H z?OK%ddg+2SLBDyoyy7t|X~Fxwd7zsxC~wim8-Z1m#fV|dD-=X!bp~|GSjIPd$Z6`P zxH6j?J>CT{n2!L}#$H86+vT{wnn?>B(kz8E&mnyPlBPJs?Ht!13xS!Vn_8Jo+yn1d zqs$P%aPf@k(r1YWU!#}LHxvUy71RQg84Da=?ezh1n>l)YCgS?Hi2ND-#nx|RzVQK$ z5%w~^ivNWO#3^i#(d9}OZ`t&bQB*UY^bE&h5|#sbx=^F3!ILlgjTUW<9cR!nY-l3` zSs~GiWp(2iV0{C~xNO}69wH5Z8ewCvlVLSv6)8NU6%IL(D2Jp`D2j$@s~}t*9_wozCtmh)Yb6m8jA*7+RqWuVg^SClD)J(kmny zShfVM0wA#y;Tnq0GJ9&OW?fTW08<68U|W*f(1?4m5*}s*fJ)BLGjVq``A){E$(R(} z8Xw%jC>@vSR?(oz?DdFiXo>dcVqj^E=DZc zQkN=1h$Lt=&C>L_dnI|22JfCZftV-pHiJoC8|NXVyzM}5(6q<*Ev!&#>^En=YW41`c6H)2tg-W-!P zim_B8NRplT0~JgJKrIN* zT?8b@SlXQhl}^#zGx|O_X_13AR-V1*@}AlT{d4;E`* zgZ*X#>>XV{iism-hO3MK(BQ>3iuoIk#Xmrc1vx3km87pnngzPg9CY8IwR!Q0nH)lV z>!vlnSy}~a?V1ml%+5HkQw)gLiF>KwReHf1$F*BA<%iz-O zLh*8_xR-^(|41@$O{}#RbxW))zIqf~x^)!UAS=mn9NrpgIa_3DyEn!5bCBJ>Ssi^j z+*fk8n?Z9))p;D88EWIyovrGs^&eTlWPp#qv*~sU25~@k3&vx4AFDHI_2=wIb0IMm|dnCsUf0Ob@cm)}zn*hy@SAh0IQ-32C0y z+UznsL+o$X=qTL{J>Ujy9AYHig5j+f9qUdhaQ|ykFt?R7D<>^;EEa(zlQA(&R6z(=BklxFwCYP_L6f{6^CX}$FwuGW+uY1j=`X1OStfjs0!Q^QP`l?W34>EWzkE9)!Vz{SyL< ze@yxO(PGsB2C#7_Uh4V0E;Aw3L;WwvOI5u_sU1y$DeI;0gq5$>p)p*T>7u9C$7%*U zQ|m#mdUl`mzI`YtjfLE=YKgfII17IN)2O*>#8UiEwk~V=JnKEi>!ZY&v$shCapGxe zx@7ATDqoBT@2`5ySe(sqnG3S^*-yN5=S1J`#jAIN-E@0X8=52xVhb{g%xo0(=v>gY zF?Md)gAPRKlfWi=&&N}OCKl<}>0>}fBzpI}1QwLBU%xo3vR ztvDd&;kHxEb=yhH6!*kl()4%!=JVP_l;9Je^g&Ki%So@k?@YxnQPT$cIe6OA)xX)B zUrGM1dU`0I5{U^lwg=)Q@N)2$)|L4q)AN$Oe7zUc$crCLq!@e^JZdLX6Lp^RuQvsv zo;N(txtR!f)+!lc0SyZpj32za2H+R6fQ7TIriy7J85^>feJ_d^bw3kn+uGLN=)D%P zvT(!<9M!-w5&$;ngspMP;^PD(=HWAdb#ps5|NSeHDs}!rMkDksv)S8v8J5beK{gPB zwR*FGG9yeb$;8XOo-`DFh7{>d`f#>&=AL={tM|tmcYd7Q@tnfi7ifAY&=dj0tLN#Jdt0l2;V=-_4o@vT7~ z0GD~^S|kvs6};Az>R+58v!`ie(? zb^vm;)vcmGZrWVh8-;)ei5^zK{FblxwzaLt5c93(a?}y`g_*MdkzE^9KA5yB!GNdb zCC5gd7;?b>E9>9=ZXN1MYSE%6V0QG}NlltoBl>8t#_zyI-x&q;$?u~4Oi1;Fs0weJ zJ6kJHv3Xo$?JD3N5x^q)*F|cB?JcFqQx;K?w?lv_#ieL#)JWi1>#$KBvr!wy-~E{2 zTkwW@^loYyTsNX&wU03qP;xGzfo}H=2t8ww_WL;V?%arpMZhyJq<+z6qN9J>>Ix0~ zs4eb7!Mgu#Dz9_fFWJsX{deER*+<{ilbQ?Lo?YB{RAbOrZhLy?!zW*z?)NqJTzok8 z)nLz4-~El!^zqg)&^sMMjZS_3Wy^vHGZ)Ua7>duKPYKtP2lL*hw1Urh%#2j-xskCt z`Frve(Y70hKAm3|%=2#QeV%1P4Y;ybi`hMXaU-(nHz}ZX@04A@E>>}G-Hma7txRMD zm7bj2BZZ4h_PMpQ@UE*`qVn)rP6=VZ;pN&*=IPFl(6Nv&TSCaSbZyraAJL&_fLZ37noF&f}YjMog0NV?Z zGB0?b#w|AkzeVLH#QKOsqC}2*)LA19LLRg;F=PdM+Kg}nR+@y_AS9KqdV!6OP09O> zjyDd?7gfWeS*T=XyNG0YkyC1(I4yfbuuEpYjn_TJfmXV;D&JlSyM3>ST=}qhlLbR$ zSc)+(ECSWK43T5ErT(WZ3UOND7ALu_^+75v{!?v*C*?dCwv~i{pSn!*o{xAf$y~7; z%hv^ONvoPkeU^FZzrJ(6jXD3k%>1I9Tc35A*_fEIr2JauCQ&OwNg)Z!ft<(h1>wWb zDF-6#2Z{I*=Pu{*l6@LT7Jk}&2+~mQIAi`C$$j}UWr(&AQDZ^vSiSqEu<7B~P^Yd0 z9EjZ9$SR|Veeb&P_7;9Q?bs2wJ9(-p4zyW+Uw*VOeqF|E!$9vkuL1oCKy(1cHzAsZ zjSuI+m;&mZ`L zHBTOGN0{0HC|UwwthrR*_d9Rl7v0?EdCUA{-hibKE3Woh`YL<2W^?a7tMKDIlcE^g zy0v&CL^BVF%DCy}xh=tMXCE_fRL+MB5c>b>+GSS3&bWnB^)9pAGUrtvKQ zRVEY<`UT(Gn`wWrgGScmqQ4edCZ0(zbMwBKaaOIodb>-U@;Ss1_N;+6uAHBDpkfnVdyHEgi}ClBceCfkGcmku}v& zzs1lk3_GFuc^-%&;jHs30GnToGKPI;qpWFsc&)VP^%Dt_Lg+K8x+Zp5l0m~l^ibZi z9&9ZIov21t553hVg+2mn3c#e`maCp_Ec;(?Al%>Q*?B8xP)=%@?olP5m`6FtVxPj& zq!8bzQ-$X)Bvp&QmN@&)Q{4nL#Ccxry?I<9gn+`GSDuM1hHfDbE2bNG#a*kyDC5Ouw5 z>b;@g;nB_t3I^4~h8-Gw58}EQB$?smzB~?#CYQR z5pbtkb~D5Jm?^!ggtXM4egE5mUNL;b(&Y&AgI`XE&FkHNNr=qN#uNXH(@raa3MUaN-r^f#lU z#6ok+**fsPa%=l8Fr2#evKvFqKYDe&K{f#HKSj}DZU%FH?18K)nsqmP?jw&%1+I=M zxTFL=o|I>2^xW%l@XDa@uVkU)6cg+HidBTVKtR(s);f;5BaVOW^B0I=>#?(eW30ZwCP|TT<`9arD2L0CAT0L)@(?AzcG+$+ zST%!WX%!X!L3>KT(`i*p?sjTqDKk`!FZhmjhKOO2fSKGU*2*e(3SJ_ZAK4k<0MW>SFR z8t1|rrH66-P!Ng5F{|D1$;9*V9QojZ%58gFHssJ>`4=|t$SDvK{s7>p!OobJ@D|X? zhJK5OcRSno9eA;lX)C%^kqt=sb%T^a>*e1I?X35%SnTJXsuS7`@s)?9k4X!&kIm09 zbp^*1Np0y+&!tbfzqHWcX(4<}A?;3(oxC(udW(yMKLl(ag5((UYc|tn(UZ>F z?gKQ-ZpRX<&MU3q?-{EhY}cT~Wn#uEP$b_L_4Bml#iKUjw;tV}zR>@I?Ni0?1AFcJ z{*Q@dEb-FhzQ)V+uXMs!oBf=8!qN-EvRe0+8eqmiXv8SswxnO1lj_yjn^DAKDyBz< z!j`%?Eb3?&h}!^!5k8x>UISL}{lkh3(ushfIZ)+mvV*xLg4G_nm< z`lhoX2}(UO2X-LV@}eiW_yCM4XH6_y)pzM>VmDA(wxM#{unua|xbK)HwQJlrK#sHK z0v{FlK8d61v{6A{uw60w`7uZ~-cSb?U2Ek3a`_myV6SN5OFULxzyIyG-fr5Ty}a4#PXNLQIBx108uMsz|8^6|>Qf0Avr{ zTx(LzDRbX|M?su18=fOYT%;m*GbIYhQGqt%Ak#6%FKU3{YRc<(@sGN#lGyNDLg;6R zo;}lQ)8$?B@AS<9PS9#&f0bT1&PXH4&eSM?1TMpv0lrulKYW;V<9$rH-qu`vv_>2y zkOl0Q#%y6bq>A--YrWizSgf<3Rr@x7cUbh$u?yq-0D9b*I@swSNy)QnY&p^5*f62C_gBv1lv z0~U?2^ZgKn2*5>C30vp)aWoV3y6Q7u)VfnV%&}qaP4?!lF<1^S3BQS`cfY^a?>H#2lWQ)CA#6T|U3YYYSNjxh< z+##a}qLI8Pq{Ahb9v+fHhfb_uO}U_ztzc6L5Oc`*pc0xkwkPUPoaBSvObskawkL{_ zGZ7CC3QRenEhF>5>n-fb>9Tg?KupEtCRc-GB|Jasutt@&CCVE@fsn|Mvsd)TW`PcL zgpdnUw8FF0UbU8%PQ|RV@4!wB?=F4436FFaV@s zfXsQZ$r=EZT9+P$qwH(<>xqE_(eR!QXcogCVc=c6a=|N)p^u_Tw&{hJBQiIQw`i%A3 zzxd$0dSD|>%?^$V+|9^5ijzKnaor*cd{8UgmE5_6%JF@%$NlF?{aEb(c=yELu|IKy zGkp3d+4`-uL1Guv?aMWi=q^=!(B*c5(`M7}QT$bf?k{TOqg=BfyW%5U48PX4GFB%v*zB`{JG`MQwG>n^IBb9+cgOPbJmh7ypMnuCzP*4l-YR9o1N7 z&jp)D!@2ZdiBgcFJaso0jI42p_W+|#Q8ubUo7JGPE0WEU4y~C9I<^PWc>!j@6U`Uh z-VmI*p-z7XBjvZS-?Id;Siu8NDcng>}3QVkRCghZNHM|X~p9y-cM)oi;^-*TOR-=!HAu3dL z+Co0<-6MSjm7~V?<|dcgqgUG9X!uFj9m!(?>Y3_ z;GNhPQ0~n~8fkhk0IoG_?qI{V*Tej!hO9l1Pz@zzWvelnVUjwx$7I8^CUIGk*_~KVpF_eL{^KE01)%9*w>!F^`vEWIw*@^5URrF+z`;5 z4b2rp8jpf@ND!ygU_DiTI{Owy&mgPrAuKF2gKNo^SL}cOd+8xXjn{2Z_4N%e>=+l) zA1=UlgQ4YD4l-1bVKl_B3v^%r8q{CD;gFq44X|_=0vm90OoQ}(1rDP@hq$l`lZr#! zJ%`xdE{a{ij~N^497s%@_aS4h?3z6whYNt-ef4BZUHXln{j?3+foBH2Phl&kb;Wr> zh%-S=-xHCS=-UnGh6h@kwhl%eC5Sc6x{76sWy@_6P}rQ7nG=kMze6AbvULH&_S;DQyN@( zq^-#Vm(&3huK;74v=VfnjdH*q0Ac|^5i%&!&wFXR_wqMfn-F$fdZ@Q7)eH8Ae)BGF zGF;y6`Fi5bYoGY6-3w$kDX;-$iB^;4^>-8#tTeK%(db$i9=)&K%cd0yGI!8V9 zdrG%n03T*ntsms42iF)_omqs~Rq3--`b5cZo-n0Qm6fUO2I&747Z2VV1)XjjV2MF1 z#hm?je@nz!<;BB2%VkM8&Ne>Kgz=aA|50@B@l5vrAHa7$*=Ek0(>AA^(i{?U*a>rN z4oM}AB&1TQucYi`<~&kVXpSKjQn$KQ+sG*uQn%dd9;qaCtJJNM{r3BF|Lw8Iu4~uc zpV#~OTGHIe0WI%(jfa7Da=`ATup%z(7`q4fYv%jL0}u9tyX%q^x8TRx)iN|FA?qJk zX=+vL{vCz?xKa;!?>JccS#!pUyW@i|=TBensqK{?>o@%1eoi}7A4Wlaovd&4&6h94 z>iYdI)09#X&qz5_Butyq$nvQ1Eg*8|FoGr3;Nn0;G3yr4II4&lA4=A@K=*BsWRXivE0iHBmJYdq(?ku% z_vAwZ(&_&Ns5k-j9OFI;sqq(7T|hARnOMjnMmPWc;&9B1+N0r&sqizX!qI@s zB#kH%%;AmJRonREq+@X$Qbao_Py=^tLFO1P+H!7P`Zxd>x9(BCo@>JDpb{^-3`56!ql4iO8JQ(`cO9;+9^HA%OmT6BR3cRohdogTu1hY&qnv@UerSKZyFpqCdUSu?mbKqHpdZMJA(vPAjZbyHP7czAX{?S) zn1M&;5O5k6^o*CK9 z-F;hdSk_Z+w3bDX{wuc9I{yYAth?Fg^y=$-ib9Lc?6qUHn!Y(%y?%wO7q8tf*1{;8 z1vS|VjuO+8*oFaF_V-$U)67}kJ0eI`noB=9&+|7u@zyb|=7eh(TcPn`W~nb@DlF{5 zP2RY1*J{63MwS)cD9irj zrj0X3m-_0jo2Hl-FlN#gZab8*=;%#-EQKc~wS5Mr7uh}o*6eNv_c+{AvuU{0$zDyj zgDV4tMz`952u%D{xybO~c+$wB2m@W`|p4fYVsdg%-_H?l1o`zgO}9U82F_{=$B+?F4G* zo^JgH*EPL4G42v|7l>J>t-2vcdiDSGZ;LAlIj6BMyuGk9yF0VaZft&DoqHX{TR27C zil~+Tr*DQYsgL za8OeWFdgqv4wU5G-X)sP>c3rJq+5L~YU>H_+VP+HQSuh(hoR8}nX`UrPFV|iX$;Vt zyj(g&$MdjLhSlo68UvMgDFX>MSiRJ@yU_6yF6RZa(&R)J74GNIK^=6(yO(L1xQ@#C zd(uWa42^Htd!5~kcW)}&-)|wROo=7v5Y)j@%ZijEKnTuUHKQY8TV1rT*wa>fBXn1B zT!J7bwFRP0O;yFs{b#;ci(lZ*r;-cYCeF}c_OTfg`KFm^W(ZAnb~o2)HpvW(@T+*v?6XPvYnX-E<{9nnO44q{!A&fKa>)gk#Hi+HKeEi0=z@U~X_+ z0-L*Y5QI~1gV~qYqW!2q6_p~mE+wybNfQ`l$OO6#GN?nPJVbmX9()5%pcj~?=TJq4dg2&_i3pK<)eQP5V$ZffhOtMmNMk;b2M-@5 z3^xRAPazcSSZ+s1c)o}hcLCs{Iz~zHg=Mc6H?Wrm)Ztf+AanEMSxPY3f{9T5_)5Z| zD>v#IFP+qke1fJ-ULa(Yf{jP>3EVV3UMj;LmoSiF6mMPGq2zyl!1enFgz|QJM}=(!h18(|TlR{&i}jpVKX5Kz>Y;3`ll~*Gf|Uv*pikyli9bu-F7T!J7*FJ3(Fl zmM+JZ-O)Oq-hawC>C%IVZ>**_i7waj1ZXvtSOJWKsh>u0qWoq;7C_^;OaUKm$A1ll zL9J7zsQp7Sr^*?2NJa}2|8Y14S02>#zsY z%2T_)>zvf2AYSiO;GnFjkbO6u@G2(``5C;Qgn(Y}V3C!H;^A;iU*K z-6({2w8Cgf4FI>l#qja_&89CQJXbi&+wg)Es*I;mE=4Zt?SAe_75E#1Ju?K)P8K>w z^Cz5rXp%g~ZoXwSe{jB~<__N^$>HZw8NAAS+~_X23JuYf{X2@VVp&9lTWrX0{61^9 zHg1Ox02OLM>q)@m~^Euha7EMIea<`o;(2xjY97 z5KZA*PVxwYx7N=W=%#>l%x>$Vu9|f7yD6sXb}GOxIHVU2JbDqj|04WHlV&|mr!+Tn z(x{&YKPk)AI8QK45b0TCQpJstWrKbhNP~APQ%i+6ftpA->w77%!%m}O^%6vAJ z$z3M-)}4qSc*M1#lJ}#4-=kbZwr;OAcrzPAKwkwN0UCDKX^}u_Kr2unvUgIvp43RH z#9E65E~A2+CGigm2;B^{ma3oMO5_yqt{}W~TJZ|4+{F#NIa)}Q8a$gEq>UoIB#;m{ zFc$Bv3E;1=S??q~JyxYlJ2*g6;M~npBa~{A&MW%Dw;|V3?!ZAiDR1sp_B{BuHK~z$ z&Uq9eVgIppR;*zy)e{p^+=15|`Tve;zL-bUuH@QxBQ7_Ct=YvDliFrXhh~j9$aB}H& z4wgV~Tttj9+}d*Q%)+mZxk$ehg?P}ZRDPSS(yX4u?Z^)?Qqe-FfuDh%v~M0>(a zZdeBagmJRcxRu;J2%sxPxS<)c5dmZjLU(0&__Yh&y2WQt@UXH*c?J*7;j7rZ#vgWA zD(~CSCADix85Ovv*@S=DRAmk9p1shf;P0rru1vAj?Q3K>xk{{g2Jsm5ku7Kz-x*P% zG04>xTTW6e*J?NZ8a50n1DY3J%1-N6QHQy~+q*O~cxt@tDMQyjZ7}s>VFNC&DDDyaJFe&&)$^)?d%!pi+@s@*pk=y_Trw%e>~#m6r7p6>-k^_PvYC;7hZ zU=nMS(Q2-Nc+BJ{(3}IZpFD4r)H>S=zV;pzfJBPwN4N2>JQG_;sI?Lj)l(*jx20rJ z+E1~X?r2d43oojiaF2z-f4KLaXt%-|RXt)>?TK&S_p`|WY1{~A9w9-phK=LY{W=_o z29?j|K*E@&*MC_{=+z!^B9$PMX}eOL4G;>3p^4N^V@CBWIpnIj_WHw*W5f?6!w(`T z!swm{o7`b0>XJ#0fPvuQB>eU6WkKx_Yo+0oc#JyS*li)mrU3nRDGKIM;o2Cuu144l z_nZNTnsM*OPY+n`5W#XEo4mzoT7R5 z&3V|BYpv}Ty({o*x6AV)cBqrdR+92YH0a5<9R*a^cS}=cCc>}~2u*#|-H{u)wJE`) zJ;8$k0#b(ha!*mT{`_GDdm%|PY=XuyHWdaVH*chr(6HB(2w^@7tiqCYFwkzdFUFxOgi@cJO zwoT0&^zy;K6&8eOqWZ?UBdFeevS$6(+M-<;?+d{G4D^Eqbcv%zr?^mDN}dqcH|L>m zsDITmNms1}C&B#6+C89nLzI#`oI^05u8HHhg1$)6gZH(&BfyvjW_&(6Lw`qrYkMBS z?AFe;fa`hGFcQ1AJDw!L$-<6}cueG;V!hoPn7CK}74S;#-f;=Wu~c=p4V2c3hS{sgn--Pu2y!-@Gu??Pg=1z-y3i zzy_&<6&l?US7wT$e_pvKE+lyuSuUM*mdb3FEsok<(*%HUfq!&FUN?zq@QM!mqLtvx zzUuYV?(49asv!19$9Dx<=mJ25luDa}poU2>l5a;~OWO?5FP7Z8JNXteqFO3W`z(H# zA#ilV&@%SW#5W)R!j}vUF-mz}V(^dnuEJ^lzwt4R8GKdJW`S2|og)tN2UYjan4%$S z0dSe8ZUGG2O7%>l{xGr|K29}==6BptxAEn|r)|2^b)(g(q5CeTa<+C-he$^f<9W7uZhOWUU$BtUieGi~fe$wP$m3i02F2Dc?r zyr}@<{tWga_w>rHgjczHrw(Q%89hXoCSybPe}5Z$)+j#yS*D~^-eR@evIE{f z9Rxd#!Qx12G5jA1-Nd9t6xemf>PK$)bhRl@h~o-jRyB$3IgTx5LD8F!*MW>Qpr@i> z^uFfzE!vTNT61KbyPI?J%J`TSzA+bK5eHEPOCihVq{~T`&sn_IdEif*gV8?$zxi?! zi+3v;-N6FxwgHAu@h<_cN3}L;&l0P@5xrM(yXtnvp8@}9L)le=ZnAB^bmW^#p3FpS zuqP#BM?LjdzuX(-f4e<)i39qMx^{Z#o>LNElY2PjJuiC&B_Xv5W#(O^wqx%FPv^mm z{ro@l-2eQPQnDWuc08hO6b&jXTsm6k{0gr^c3lUt&r1ru#TWb}5Kr;`T!KDf0o_k6 zs&Oj{^jFiyMa|m{W8zU)D|wp7CJZYTHTmd?`60yY(>H!Mo$-;~t&O(QbN?y;zF)d^ z<3T^E%ZQ(?HjdVzpPL* zI2_r^#j`i{+Sckndk0S7a3|og-CDbFBE6^3HB8Hd`(x|#XcD9Ozh_LpX#hiF&2od5 ze%U>jEZCdlXnDJ16B26CekK9|)OUl$rPdgebxwa07Pbm89A03wU?TwHwAnh4b=M_{ zA2?+D`)5O`6;Ca6>kBEJHz2M_5Qt-wQC1U={yBR3whWio=+lkNz#f| zvYlj$RLM0O)zgz*h&#+bmlbgH5&xgdB`(e2;z^&_?MARp-SX{5yOJ|&Y!LSCHeY{S zsr{?GapTMEZk|UoqP>M@r4-N*ZV`7sB}9!x?tQlRLSZtW;+$@@_W~NC^&cvaf{xqD zZQpmj#xqm(_CW!BL#$l*`K?}?|Djl~BbS7`bj}4DI8jd|yczyxJ9mYB-C@_$a~~ex z&#nY)AB>aJNh)S7oz|NEHGEx_QTpni>F*I{eziw(TFXCdzZR%JX@B?Jm8p)Z+r>F| z%I);bG%jbE@GbP8wlH$lKI&_xAHgny52>ArAJ8T`l$Xzwz&Yr3p*7O6diCo5dR1cT z_H>v-KGA9Iw@kYMBC!wlNJ|<|fT7R?Zz;mdJV!zbeLSKpO$bC|6n)SPunrl zF-LD(%;$b1W9evL97U1gcT$xQ*Pj(qIR-Z*O=%5isyMs{nm*#V9KHB1i{9AUW217P zja5re;63gl`k~STHiA8g_I0}nhuuDNh~JfhC*Hr7Z)keMe%F_HEsvT@YEKPEJgHS7 zmNmUW+9Dhcsr4K@h~Yb`ab+iw#0}c5lqlFy+FT zIvbm%3ZykB&R4tkSjPZzmvy+mp-R~HRl^HCBEaum#l1Y`SuWd#@f+mq)Q<02l50?< zGC7*sHKOhdkv0#IvL@qTI91`I|1$!6v;$?hwEnW*;o#3(;FqpS6gtT+9sJVd`LWz- zZ71xezLV^GxxK2?&(rz_sB?ZeyHxV*TWiybep1jOUi{%iM5W4?z@F&HJxwX3C~yZk zr4N#}G$`dhiQLo+WofFX5Z$ziFn_{c*`p=XG-?>bVDzsg+OemlIFlzkMb&+yiECir zAXU2j=rY+TESGo;U+PUvZji$-{RB*HX|BQMH&e4_>q}_gr=OVqTq1hGEU64k!&8ZbN>H1gvcP6j6PV&FJ2?7Tu^K(*p^#uvXG=M$dSe;M~|R70Xa1v zufn!C3Cudd@Xh74O!mCuC|kA>%>*P`SJHIGS=HK<0n~4r+$S{+JXJM>*yUDZoC<-U z)vJzn-CH!v)odnp#wS=Qhp*8ds@qF6+B!lj%9cPzlhjN*_8Zh%huFJk5Xq(sa8kgZ z9*b}&v73hpZUUN9$VpwRR8*i6XfUcoZow&zR>|DtvZUm)B&MNLx}%S*7M&jrF(^Lc zv5u3JrAkvgj1`*QpC@Bj9*=!y{lJDJmo<)YOkyLQ+s`$U>P!KO2P5j%RrIVUEs1V8 z%N{6cB5Rng-;F7*sCH1Le}o@tEYV)yK;i4|UZQT=%!X1T zYf-Bg6uK+NF7Zyt;GqDZLkSq z>@uSQQGanCt0PA}r`|#Zb~;HDx);_`hfc08V4+UjfLEZA;9Z@u$fQK#rj_uGC^cZ4 z5hXA}AB8Rsv2loLvdid<`;Xga@O|7I;SV%Q?-m`Y-dncpv4>tbfAMj{4`HTR9<~Ty z$l1Y%5+X%vq!;HM@t0ICZKhoYYNc3|Unb1GC*sW72_ray^B@^*x&(mVxlLL(!c_~c zSc7g-jc3t3F_Q{5#6=ogbx%5O8{cwzWE8S2>GxY5lZ{CMhNk5$VChUjmFZE-$K5UH zV@cy?`eZ!Mcx(7s`oy+hbJi?c{+8N>h)alP_x;vQwINIWJ<;*cf&&`b^i&g(jhM35 z$Zz#m*P8w9l4#;=3d87lNKRO|+|G7hi7=X!*(8K1^qpo6H+be?Gee-s)w76>dl0i? zYEHx|W6~pf(WdOkS#u#k+a2$>vFZ_`T1YpFL2$yaEg+Eo~WpZVpmqtzfWggZ-dF(fClqRcfOdE z?01n09(OulnzrD9P-jkL`N+VVtY<*a2#uIXs?ecwB<*oqr^@Zo(|u*YjSY!W#=ZFO z_cR<2;tb0iIY|;eVJMoivg%)WiE?*!B+kirP_4_33SBM#K-Sh@#ew#GbxRT_FW3J4 zrD;rx(O52PM5Ull_MA~dbas(Da5*d|IL$*nB-K2 zzL}PW7O+-;5ptpa-NT%SxU1~ob0SGbob`p368Jno@2_{ywT?&y3}KzlI8pyP#!h4V zB;Br7s;}L%6}es6=aWj^N1%uGfDEnzO$&J?!73nf>0#{Xh`u!sH7)yMFUKy*j0$-g zX*6O|e@JItD@NgM2Yz)oZ0>qmEnhw%T zsyX_Fa_k^XO{C&is6jm(atg`flPpG!X|Bk$3xSdt8lHePj3neI1RQpeTR?f3H7cAf zgL0o1N@?qklh+-Tqf=G0iBzP+4!_fja2?#FcF#pzWKlNLKWI5uuUsDd9(u^7-}X+x z>2k9Eq}&uC;&>WHpU7{_dUnZEPyM%{)&&K?Fq@5WwQTn1Z>CIL$WnmNGik?V7vT;Y zJ$e_|tLvG!%dlq;!$Z<*6%Dw#3T`{Vh1!ROp?e+iP^TC$X;87Um3}=k%+k0Q7F>X3 z0}1W=VOe7~lk|-f&m7VE$-4v&LWO+{JxIvB>NS_x0W<>eZv{t@sI%}9uF-0*^BT9p zji)VD?}p{wk9(Y8&w9~EbG0;wQFvyl+fHYc6O8*ajs1yfz~p)P;X(s_+K;0vfu<|eGdXg-Zkb*dVzi4%0I-au-1B<@h)G%o8jeb! zX@FiF9ie8=Y3t90)p(j$7Kz}>xb&BE$fY7JQrWpxz%vR>QzC;(sCKt$njCKIAXR^r z!O3F%^IJd~1qy5B>keYyO8fZ;(fwN1qvS!iWAVF~@do{Gj7Ffap8$`>#{}lfO$tTl()>@Y=2lMU z?K(#@`AieF4*)O_sma;8_Y5h1Dmo;PS$H-KXsB*xzOroEEXiNIY2G*lhPtazG~w`X z`%$_~;3=G9Qbs{{d)!sB^;m0p35FX1 zT+D$bj8vi005~cSmRjVTQ;4$Ad}pb-+|1SKDLNm3#)*-H&ksI`!wtDIXt&8kvJE_j zigej^eua~LjE7mxwK_&6RPt=0yqzxF12FmA#pQ z^X%$nj4-?#80rlNa5NY924EpmSO~df3V#oczUMcSUH%Vj@ItpxBi{XaPaoT%oge!K zL;~>dNI|wSj9d0O4v`AyD*B!fen=!8+Dp;`pKZu-NO94eM|4!f92vMxL)4X;k#N5GosPG2Mbmc4kU94p`Qt2|OC zi<&6InC+tCmT0psymG>HbucVu8lJ=a_DXvS5vhgsB9Hah7pJd?g$^2r*M^bzHo{}}>}AT({dH+WQ{=EHbI zPApssxbKpCU{ZViG2>J~oeAsp2dbQq@i?~)uy$b=6DilB1|&P7*(RpC<+Ojky?8H` z>l7l^P=2UU?$#r;Gb0GI&m(Rp0H!VqqXz63b;;8qUHwuxq9AoS9U|BRQ4(=-r;V#HgCsBBcO!xcSFt<$hq@gyUNvKKsK zmr84g8o?hB!^P`D1HVTpUi_lKJvOMEoWONEkbWa`Jh$@ZKI7?xEC`Lb z2nG<&s(*LG^@ba=^q>!F8qgA{Zs2AVk?n&j*1Qx>4jd4n!Y`ue&5M`G`DL3nVh03~ z{u@2p7G1i4+Ro*;9iMEyJ}N+FCbU zdD+*~#|*+N45sB`kisNdX2_Mhm2NOeKeK;@rP=52`d~m$Nt^Bn-R9~?uowOLsAv!A zKbYlL$U^k&|F#E8r5_o zzGjH3GYEXK;9L4W^hJW`^x!Tt&D?85*jg0qR6;=9C>I_h-BDBLww?!-Ks|@mm^Tva;v+sF2X|wnVD6yDlk)p(=@kGJfajd8N`f|DD zk9@=aiVI#4ZxwOp3z6Xlhs(=~aNG5nu&$@_26P|bW?z`e){pCV1l_Nx8{P8wf0EDN zV(V~y?5{Pgga4JSPq68l?6QYW{xtH}GWwsYWm72tVSz1O1-$;XbMMNNSgIy*_uz8kbBI$om0c_@uHWX-4Gq2 zPx|oQBHeJAusU6;1L%XBvs3Ut;Ek$a9g^MS%H+;Bg{2P1rD-Re6Vax`oj)h@boQ0h zxMYn$UUXWD&y*)GuRg7RH=@5eYdm3Sd`^negKVi{$1Mp<4Q*4@t>}A|a)(_~(r>NH zp(bvAp-IhS55#?SCl@D&Kz*^%Cx0!!=r#C$X?xbn+RW4cw!HG`-2b_>sNj0+-R!0L z2aN_%uXblaF-{g&b154fmz0XM{ z4aWZV(PCrN*nRT~3GlHtU_2NvBG~ zk!55XGWys8#2P}vGuR`Pe|rbcZc-gOp0VWkHV}oS3#C3c5Cw&9#}g7HJVma_HN3f) zaIISbH&}Zi&;53MG9F7jhkxz0GWE9{O7v9M;5e4EfH_w8=rg(N6P0OscIPJLJu2@N zu7JQ+D)}0o)OIfeVMcsGw%d~O5@D?rDE`t(G1su-6lz_zKP{QDB2-d&c}`8tS|Mly zKruv2SOpdkW6QNQti=ob0$q>xc!?<$=OjS0=he=uQw9y~Jg1~12p1{fdz&CLeAv2W ziFpCVU9ku4GViuTTv@`+5ot@Z*BH$hw|b%Gu-z8{=`EFkaOlP_#46Bkf11JU(G1npvF97N?5raZr#r(qp zMt|!%O5Yl)phhvz+t=BRs`0-uw08bo{6p;1)UE;6*FxtpR>9@!|0(nQt3B-}sc`*f zs%3dZItT1(`$aw5rQ+Nl;4CB@$e%I7r*ALKr;o}d+wnFI71`HrTO~5qR_eW8>4YujV$eecLa-U zrRun-1RzRg7dg2mZYz$_27#0OJnY=acL5=sNja#SSVj{Oywl>fy!cXb&L6j_CpECt zm6_bZ&Pra8#oi39b@s(0PkK6oDuKcF?Gzg^{?Ur&-;sxgpL^=L$doW^&$BaVub(V) z4900inPcG4eg^KmC~d!Mxg<4*GJa9QO5DRQ)R*|01?6EqSl_tCe#_GOlC@I_8^BcS zUQG|2nX|nd9O?!(?54Qh`;0QrsANplsC$kPGyePQd(8s>(^P{Z7?qM=Kk1k2u6xZl zxIIdL&9N@k|$W`txN~@_CU`TQ972+3; z;-iJ^taqB7gHSWH79STqyScD^2V%z(h~zRuZ88*)(k!Kx-GGWabpqTq2_knw3j6hg z)+u%Y!;oaC3O}m1#*?iZEfa4+X;lYO`4(azl%S+);+BC4m;e|@TL-}><-Y#?j<~m- zK{&VxTu8xHpcfeCKPj+vG1SoLcE)LuO`QpC&dMxaq0+3p3@^{(vZ$;ldg`E>`_emb zFkshN#JtVBtxyC}3V`#|L`{>_lf=mqy+AhKzWDQcJPKo5x_Nc6<@pWpF_bcwE*wsolchT2LX#H+JatNyTPiM1N~wZDx$gFFCKb#-vxp)^HK{@few=*@bE*@k~DYgtY#rGB_!kkM+{rZcl-M0?} zMp4GA7WY_Q^!KKQaXkmkbg2)0ZLumEG<4X^y=Ux^57&8U&nm-c3IQd>A1&M-3GxVj z2(_TZi6aKnj9S zYaOr9zk3fQ_i_T!Zy+k1XIys3OQ1p21^%+k-|KrsNuxTm=$HB|t4mk1_4dyzc2ptz z%@3JR*-hfFT1YkHr@!RCot75QNU&dCG<2)Kb)nM9H~!Bu^!Krn(>D6VQ;r2XpX;vQ za9Lb`BN2bk@M-jkHdoFmBwFWVtz&_^m4ifHnaJMRF|yj5P%5`iAU!QkKG~LFY5r*Q zD;kzQSEu8_?X#zUcHR~9ns_$D!h)oA{ta~?`BgWJbWS9G?PR7~XFp}VS<5*XP^TT< zOx11rUb2l+w>beI(0R-8f!-5hg;TY^@hgy~Bg^BNVz557dJcEqHikGietHgdhg7Td zu~zbo)Ta@jPN?R<25Ba@%+9P&9imp>aqdNTx!+p9d>Kq+0WqQcca>E$#8XlM!Rcpt z$>Lu@fF>G}%Jt|Nl7eTK%Ot6><{^8zAYJPG$Dajz?4EH@5%V-;(vr|>&|1R-dIR1~ zg&W3jcct8jRY|tHM*L2`I+sZY?VR1@{kwN$!*)o;<&^(vgv-FhU>*3R>#|1YM?qt} zv_%=5``fqYqiF`67^9%U^k0PqZ=3<;$Sl*FZlX^z!WY9$XFiVM4$xhJ=oD_w-4mnt z)^6tI{F~o*df9UQcgl#?-wORdCazGnB|N%t?bsPQFiL{Tv4m4tOq` zeat(Xy+L*11p3D7mEwZC`f8>*#PiD-ib>_87Q8_gb+3n>8w*N{d0HMby7b!Q3p0ie zGsN^6d>Ocm6yRP5_K3Iovt5K~^4rw>aKA{VJ^0}CL9;a5r1{{SmKteh{yu0F0Mf}N zrN|(DGKfX|)j}$4Dv@-DW4j}bq!y34EgE6~Oo4yX zN^m%P7ikf!Ru$WE*gI16cMk3Xb-7RpN7ZR8aBZ_@V``Md_BVo5#ff|ns*)b;#91fh z_*sQmyC_dkWVR_v*f|g?o`i&Tz*ke%2T{;ak|>JGj2*&`kf4ExQf`(-4Zw$@pdP&QVccV2(E<#{jMjSF*W zfIO#Y1ln3!4Bub%%dif)W*yR=1m8)OLfDT{d*IY_GGw3<#O8Xh?!VLy^$r{c&oK}q z94N{W-7ke_a^a_`%(jICObf-Z06d$J&X+-tQxCNJGJ29LUD^(?xl9fmiV_F9I)wgo zLQZr3f4e+Gss2WxZ*kD&Tv&|k8-3rdI+TBZJ{@a8JJ=Uy-Dj~##r7u(B*|#A-ac)4 zxHd0rvBlpBq-jXL->!^-F?V@Ok--XjD%AXfjX8g~HQo0zuA$W_S zR}b0w=Kmatb59Vc=)gOE;cnM>T6l6Py*5eB0y4k2f05~jlMMiJb$S%CHly)LiCwGJ zq0H#f<+vsp=DFZd4Hql6bxQHI-fH3N5DyRM=sx9snYwIGBPqnr)D-Kgb|o=5UPFjT zr@!-Eqg}|i$!&rj79${4oOh@F5#IC2;Y4_R{!F>_FiQzlTXC>?!)<+4ii0Od!K`7} z;V5W&VgsZKaC|(Ur&0&_Y8t?4#n+s;NZnd=l*7mJ2Jr9|h~Z_3WL(JIx1;&U@zyu2 zYh2&Q9CTVhTetE+meTUOmHBZd&ahVNoOAOMz~gDb*eeddo$9z3K)*n`7`c_aTHt(L znrWSLZUP+fYCkR0S<4W(DJ&vlLJ8=&rR*40W*Zr?a`x6I~p`?bInLF?|^#-<`&I$Xnj2X4^nv=Q- zIBD$%cf>ri7%|_zW*3tMdh_bwNkhFi-Xun3LTYCoxQg2XiXg`h-8VZZ)SkQBM8&!u ze0{AnvJI*+OVVI-TO=(Fp1wO2NX6=hk8L@;vVHdz7FBOiP}m<4&Ky*R3>7PdcXB>9 zanMalP@odsLnlM>>t^#UV8SY;OHh@PC{)J2WCXT6bNx)xO4Et{63Krn3s3jetl|U@ z_c9aaK=GWb^C_uGe;sQ6Ze|75e6`V3ByaJg~|JM68f<*<)3Bx>%y?pM%hfE8aF=^nydv_nLW!aCKT zpn5JyB`+4beaq8ib5g_U{Rjkjb~t)7DfDkq5WCLvv2W?4dRE#sbQ{M>)myv}sP-*5 zxCbPp;nDH%2jsQ}aOc4fI7_FsJ!zMiOuX28UI3$Xd>VcGbw{24n9|#7F#HHA;I)*s z#@tb{qsc7iZ|HLe&TcXzs_+BTKN{DJoM|>dx&@= zQK51^KCU2MzM?5m5s)|)EQ-fPGPX1&w38)%+LjSCgEZY_&a!SO`K8+5b|C9H z%wVUaZnm^?(Q89VT$${no(TBI9V;im%s+hx0CqrhA4jg@s^J-DaB> zkQX`7UB0HRwLnks`y;aCw>bHGZYZeN?K z7M3bQr^=8ArJYYm7*U-@D&Y8zPlp3HZdDIGT~JzEmBh--8y}jk^K3Lym1yy_?dV;jfzREsb&=X$Q>foY zYxPf9YOAI7wVhuM>h3xZ8{ukpQ+X;_T*gNd=AaC=Hgol_lWkkLnpe#3kbl8MvyiMb zn>(`gJf$Y)B57&|bepvEWP-*|AaRzSKOf%-O7uxSu>N~voD$JBI_QLc{nxmo{ld&I zm#p80cI5x!P4hpJwtb*OGjCEp@HejTHc#>fHkdSXQ2=>;NfQQ-n|T#-78TGCXN<$+ z+?Ys$`1Qv4jK=LwuH5fL0PkgjvDPFPF)uh29)Hv!p7y0H^N$qwk9Mu2+#tmRFWfvR zk!$xn?*Is*aN;`Vz|%Q>o{j2@SWqWu$rAvGcH&a$?UJ;q}9mCT}SXAb7K-AZyNfX-YYSvzKAA{&9280{Tp|( z%_tA8%v<-tOn;+{bKV!{9B9Q0k2v%352B9$cRV6NYxn`&d+>Xp(r1KWpA5jD3@$mn z3rM7DF3Aqp08%a=bKNQopQzVL--|rXy6mlFu{o7*TCuJUN4eCHLzltDsfVAQxiA(; zPC%E$aOt@VYtWT5ECOm=*1$pSo`E z4e{-)qch3Z$ObC5HnK;=s+i8Ti$e@@w^S|@pN~hTjD`Ma6Z?u=Ru1NND=iYKSU1b+ zk1>N2$L`}2)<1h}n-R+5&-qU1?JSfWpd`UO=@|$Vf;6X9`Y9w{acx+}eBSBFc_&?) zv3`5Rs|i5Q1VDEff&Y)9`~FLE?c)H>1_1^4LdA`yh8s6HapS18wA^XK(9Eo?SSp$( zZY?Vum6jEGtfOWfaAH}ZS=q)>Y1s+O$~qPg&oBG|aKEmL`#avBn?djRXCg0=pli!Y zzq+?Zm{{~av%a!G^*6JANk-3+75q7r2mqTfKvc65Z-UzVSo6Q{62e$ZWH`TD_?0@c z&%d(s*rayU`>7547HfpL*pRU8{KuxBi;$VQ-}reM_$K0_Qpm+6(}-i!fyb?@BA0_U z!0#4*8@FIEPQATk|98+;!qZ$@62tny6E+z(mDMU=u)eovIIve*`p4wSYm=XUTz_TS z{&d<+oTF?PX4=C@JBCflk@F{2^zeU1PCvcMCl`R^ReD|NZn(WDe&x+WH z%GYkbR2O_p^{)DxvE|Vh-0Q71O#I6`%2)S~^X?}+J!$YL-&XrU>eC)ze{JZP0l9e3 z?Li2FX6~0Jo{=i*uLfA{&7MCG20mRwrYob6LBLhCK^ySo5W?O`}l zV*kt@rRQFbgm1z@IJJXxh~%^zO6Tk?tT9kD#ajD|&= zaSG2wWKH=OmEE*-n(j>=DZ|@Y<^E_)IUg#oK>zi%kyiS&7tYy${`j#hHnQ;K9U|A=Js=No*tmP~{Id;2M|UTA!^vJaS?c z_+;ndLaohla+y6<@9^+}QLPFqi$rDGT86*w<2uVTs@4FdfCIsSTl|y{9T|eu~T}D0&KFtn6XT7l%6jPYZTc&wDR(rh(o?>e8tHXpRM*mL zb-k@Bkd?jq&|f*36XlOGcA~YE$W5Fu{zbm4DxO~_Oe;OVFM!LS`nVO0TEk-XJ@Z&j zZkSzpFNbPQMNcZYfF5M2&ExgIY9c6!G2wQ_0;JfWIO)q>pJJ!S)5e<+qLGunh*>7w zZryQIf6F=>Zn$s#uVFRsW#Xt#Bm@3TGCEjh}82!O0B8 zkSLB$2SRbgVqdtGrz$6&QY(TW6>cTWV7qM>+|Wa@Y>agzM!|X_6~HSTH$h~h4Vshu zaVcRG5Ik~~&(Yi%_e=ygqw&AO<6;j|j_ve}8!d2{V1STugoW!vLHC4^yYkuf82Ep>I}p}zMTG4QqBG8wF$ z$7cq{ZCj;*Fx;=?6u7SJ<%p8ey3|1_Mx0zM&7-ey3|Uh9QB4-&%V_V*xyhe56X^C@ zdI^o|J>wSl{?pP5o4#{q(pQq?up_ihCW0G?u@HnK!2X4Dxz{|SOI=L+vAE%Hk?Ln1vmDo#tjU-?ZuzaOFg zJ{OS2)9nt<81kf_p{#Kf>>^;Q;*2%q2&k!@s5)W2O>H9uqVULzU3iz&F48tRGg#&F z<9N1ZUk5BIt)(j>Z%&hkuQ#>;!iY&HRDPY-Qie2mJoaRwGS`AW^x`>|v}JUJbR3GQLUu0Txn|Y^>5#qhqirDAI*cFo*d- z7|s+-B7jOm5N!1f0O)v*Fhp0VJ?~Cq*$(g_=6DKxJK%4tTJp{u8plLHH@YL1!t=*L z$a(=dROM5-oDuh_{X6?&vRX<{%nN9tfb&;6MP=U%MJa<3Skw7#Z;P3s*2`ijT%?Ev z2jFl;JdmADYryuZ(>UBSw&8#jD)eI(@mIlbRJ$P?1uWfDv{8o#a>Z(VBlzj-nG#0{ zA5$$E(wilf*dpwjLu;6*#qY&V0w^L>|2f=_4x}%&U^audTj{dRr>5WSrH6Km38X!j z7L!#ESwA{8T5@Muq(nm|$21MEdL5;&hRKC7Ub5>LS#nQguDevOcfRVx9<$>rA}-%L zSCtZ8Mysl}YB38ChK3)Y4GY=u&`c0qP)mFB7_TCqr!e95La1H=1I){bQ}4z{I7t|= zNaBe!Cl1R3@@db}W|0qdSVv`52-cVpsl5AHsV$R|f*Vin+d(WMnN`C((s0P)(XrgV z6?kLC)?{fh%ZU4K?~5vt-K%$=#~w_T&g9Z$q<0DU*qV)vdHUEFO2c&BoNX18x1Cn!x|>@t=HZW;?{MxM?}`k2 zc{-DN<)X#sy=5_nte3t&akcQCoWH=?B`@(^c;B&pKlK=B{EbicC0_7kB+c#l z&%ZBEv1j6M@yGa5+n0887p7E|#=PW0oI~vC7~ZUzi_Taxv%D!QjRdrS$w_l6XL|h* zHh|KQW`goI>X2^S#Z$-mE!;~V+3w$X9y=?FQa(>R>9YCmNn8I#k3@myPCc7}Ig1X` zhgjQomBdfqyk2><7Hs6SK!ZV(>odhwx|u-(1_gXb^LGF;&?T|ykQ9_m1C3#SOza%2 z*vRe5$J`v^=n;)!#(%cFem)L)Ubk&{^M7N862ivOunMJ|g6D(HKbX1+BDlHC1Rf$} z;wNSwN0>g$fB9~o6KBuVsWxzee72GAT^ofd+Q>u~n@9JsS5A&aHcZR(+?fxcRbN<>}FY|1543mKnxE40X}u(L9bH7 zXe4M)k+%&?C9=0wnzBPaU=@Z7*f;JArx9-`ZY{*AfFYBzn0ni!o3(p^J3UZVN>1Y0 z$8i9b?j7jU2gPbB8@;12(SSxfs-+jNMl^}JDOLog>@8dJHMlEyh!?;R{q@irF*)-Z9qtTB%wT|?wrXiJfcxw46f$slC{kNOy0uEYrwJEXMC1##GNh1AvyeOq zVh*B55kPNH60(y>Mttl>9;7o(JBLp)5P~<}w7)*2XT~+Dj)gf0Ol=z@Q1kfP7ZEx9 z>@0kiLTtIF;iQ-A5zccxVru_*!6W=H10QT^FgC$D2{HqOhO&a|O^;-mSW3T|duv(l zO|gJ$$St=0eZcC575$6Fi~UiBtyZV2t)eZ`u@oOwW6Wj?t8H2_c|qjwZTUO2e4>l3 zY`;Y_TJwLBQL%JHEDzq#gNqsH25g!A3Z{gv7%PIs;y3AIkq;%Co)XatRjs+BJ-gya-nu~msF0e zFP`+)7k;D$pP823W$uz!Qy8D*)Hb4%Cvws7^QS_#Q1Ez)%r+GZOE=s2ViQc7R$gg z`ATd^bIw;}d8r1M(O}sNxzz&rpQ#`_8LUEJTOcq^7jk@va0=Fc8y94ShnW3+l-nx-diJ_v46g-$lf9SJy~>Xzbz^FmlX87dc`I$7wyh?H`o zb(0X0B!u}TAxw!N9vvy?p@xKrGYXoMud#9XP=gFvj+dh@3PBh=lqXT@mLadv;5k?l zg%9z~JL99_Pg;fe_?Mpv0Dsja)n{li_Xk{m@AtCP?U@y62&_F%F|2OErcS#hEbjj{ z8kADw-?%@^r`CPoZ)n~u>`jTeLdl#lKUP$u|N9%pN-MmGK>Oz)G4hx?-Y_b4Ga?;zh!3s#l-nWD%{i&Jo>}Ykp?PPPpOy$p65WX-K?-! za|%}4cN$o^yOwoS3Nn{M(jUbcJOx^PciLVMY{UQt&D*~%PSzLvj_;EeuF* z)@|DCa%%Of${`7ii$$7q6#b^M9u|VmfRr#0enOZ#8K&T&Zdp;(dQMw0m5POkw8u(~ zGPtn}U`$iGCQ)jaA?Z#CxzPOkf>suh6)%Kao7h`*U)k59)dn@nT`|0%syM5*?z^s~ z{|F-IY2`7KBcs9eB-s9BSk{VN3&fQ?XZU;2{PnLZ|5|VCPK7Onn7zCXKgKh3#u}hU zw2k!4(7!O24BZB&yy7-F#4-kUX9Y9y2zqghug3uD(BKD%26DPlH?SLnf^P^do{ERn zwjk(q&;cp@7aV%N7V_7o<61AE3gb~I0=m-Rb5Z{CBzPjR_TE!(BB%tNlh-XZ7@GiCX^|KU~2j5+NCx+85u$sh1JejP5c4JZ^&$8-Hxe3#|+R zB41xSUjo@6!yL^k3gp1{R6$qn!V{Aq&U8a%F7$}mkqRczk^#*Y8m8))J-eP(bR+v!XstR!; zd?I2Ncyf3H7TLl;+5$Jpg@}4GtQY{6^DpZIHn}qprnM-wG*lN)t&gG6C>dyAY}Uks z&o zl3wM$hvJb@1=0}4SI;`-(@k=*;BJrcc9HAH&~{LEq*DTC>{TX{D53r{19C5%_Xvx*x=X zVV;qrm1Gk!7X_>4MI_^nxQ<3_H;zcC^01Nu(}3~w-KGe)LJA`|a$bvC3krM=&KAHA zRdr*(nw6`1=XP5Ly-Ve}N2ScAGEEMg^DH^-5dDJPLGSi4-Gp)76tlvPNqLw0cPRJF zbDy}IG1Z`Zxno?rI;*pT$Ud1`D;HrfjJOd3<VFMUV8kz4 zAV0r5;)pr-ukUl6-{wf(nzJeU1&}d6OT6dm+^%swYJS)OyRQPc_0)n>Pbwog73@OR zhgwZ986SxgIi}Nz&%c4C?RAlCsC*coYwD^JurZtHq*PQDmsGs@5%Bio9MfurzIxqN z9exH#%2S|Y3A+^+dIw5!0VMM9)4o=%V4lYqif#0TX%_n_B1QfajQp)R(dl0 zgjDN&uYofb{EuV)$N98!H}BRk3ybsEXG3>=%$tsub`*_URDG~46Z_a5=+wNPp35SX z58i8k9^G{5Ie#m;HNFYVQ9jQa=%g#{C2sQLUv?KF6#1Xv1|lTD{C+17wIK)H0zepF zhwZ>ZU4RIENmr0et@s_HMheTuYVGG|rRHo!sgf?uDpbw0WTzdO^!5tD%#a26OEvz; z{)&B&LXYnKBQ;RRIM8IY*f_;`&+NvmPWyj>Ac`O`wH>~VGWzA#Kg;E?c@Sy0fAx!k zlW`_f<`OW_G2W5^Oc~ONZNu(1b8uVVb>!RMkZ&m)MAR@xYNlr4JtwCk6T%Utwqbau=tzgaTZ~35aQKK08@G+;+BF<3&8;}RA8N>WL*Zvd06;f}3eU%mb-lM;`hxl4V)x27 z5@z(ToM_8ScT%nc$rY|!tD`Db4zvK<_ZRz18q3#S@B4MsapQN4PH<{hol}fD{0Kh8 z`pslM;OG_zar59?D+Lu1?;!1l;(0);3qxe-jY7)ENSYSvr(NO{oQ*BYr5`SOT@&la zv0n$q0C2%cdmV`Su*K=Deu$iIZ}uL%g@+iu39aTUT~v49JG*~h`%pZds4a9kb`+ZK zw1ZmfiX4ExY!avD!S;#vrAiRq9lRXC(z}{PN`|-2H}mpcjmD1;R*!f5t9}>vt%RVUHXqZo!RIL43bCS6Rqeyy7nA0iU)W$(q(qn_BRc7bG#MtAu9Q~{Wy)UMU?Hj4 z4O|A~Qm*ojZ^*q#azqdxydw#r%7JLnVh>`G#n=a7KtzrJv7$+$uVU6v)zT(6(Wv{+ z4YrqR{%LaD@$`$^%V@h!$E~SdSVoP<3nN?M81M)*UWNdzeR26b6?D;gq>s7Pi4Fu* z%^5XVCiEf>`34z_jyvIyIcjOeO*USC>Ijqb0hMTtj0y6}5ZcH|F3~A8;h+qRt+%}9pq{2LsnpvmafsBKf-8OKncdEkw{sY9V=I}-pLRo&qHcY$r&aAE2`Wkhfts1 z8Q_x%G*X-F`7GDsL^CODjW=z|JyA`}(O6k$f&!Xu8f5DGFXt(%af*2xZd~Jw?vIq~ zmRi{rV5_IumG-HNBbRr6-r;rV%ZJIDpoeE~zmxO*8nh$(a}UY8cUEe@dY#k!m0m1& zJ+u9Gf&ATl_K$04*7IerM=E!C8xH)It^YSR{?G5{hc4bJ_4@p${83cE*Q(8FT=g`Md^^cx>*BF}H>0h=nPPm}qcak{_G5}y^=8!T4egrk-@n zq{=CX@jr)_@sFF^!Qp%cpw)ilu3$(>g{&B&)6>hX24f<8sfd!R)72{GF>3^4;vs^~ z1?}MiV=$VumWi_bW2IhUSwze`Z)+A3a?N3Qeb&f^u1Jg5NK2YCx=mZ;vbID?0bDk# zG4;m90&H7};W4V_!_igCw>z*4d{VNn)0r`Y2)zl6&n>{ZFo$y;l`c2;`*$pN8K=A~OIZOP^c2=)}Q z?Xm8k())KEr`+e;E$F|6;7aJOR`U$g;fuG9_naUOzK^&t=5YvJ3pe^m2gx^jzUw$G zyZw!SB;t0>{oOmgeeKT z3sjA!yj3$R7A|o$O8BgbSO*HEDufqot{n)dVkx_%EwxwE+QrFZ$K92n*dRr@SA!%Z zr}B>fiu12=GxQO+Gu7@Z$68*o36An=*GMUGT@bTobQx4ccYP)`(|mktIvT^ypJ^$z z`O}nK>iPg-V(axzx&?vxQwUNv_oB&+>bh2&PZDC*)NO9Ni=`m7tLIudqDF(Ocuz=t zN{RWv0?5IR0Vs{rJ;hh&^1qm9p*;R1&#|{W4F6{IAxhl(!}Tgz9-}r)W~sG*gvY5q z^}*hRmXLk%|rxg3=3CRa3*r&i}aII`}5pucaXxxd$XYOOd%N7e$sXkNtDpVWljHWCSUE*^ zILEjBM8V`r9KdCie;7mF1-3<75$nHZzD+G(Bv(lAsiNhNFB^$I>(7 zG=%A^eK(22Sx<$=)864>Rj~aR(wk1`aNI`v!ggJl%{dGJA#Q>=8@A^p8W1RdBfo<3 z6Y-!45OepM#M%^rMrPljk{1B@X}OChe00Wc?Q z^(#^`%n%o*+};Y*oR%^Y8AFD1Qpk-i0K%09!S&PN#dD7?SY82c;uBB5%44&;D@B zUy_o%0l%^O^OIgrno4p%RN)pmL0M(B5BD~V8nurMdCH_)b1Nz0E6+UrW@{G0Z&3&e5-^}xGSn)Lj4bXQGICEo zkucDz-lzk$vYCbP^!BS(EDp)Cxiy63C9~eDsTwp3W;OQ?9YMXPSucTj$g-Um+rb&} zrshtoOcg8X;OBR;e=OwWFqM5eL+;mVPaoGv3+|1FXct>TiVAj_f149R6Ql~)?F1NS zgKl39@&eTZZ0zGH>ctRxQ@v2i(jbYDn`c-}X?09Qp78$RswYs6YTy7e~=-kvU7~xUVLz`c(r`z)bZX7@eg8d-||n4VrDDx^Mg6X z{6X=}TGtwf3B=@5(rQv}&6R2l11ibkkN|CT1=tT z%!soOo*Fmklj51DgL#!YtUDAuDl4v0OlbGE#Y9CkKn!_`ieeiX>%O(Mt8u@%g~}CV3XVSIw+RR(q>GOzMafuZVU*)LubN=0`RX3T*|I@7 z=md(&yI{V?*sLRDAQjv4k6wPhn~m^Gu9jiSGW^k-#VDls#+}S;W0g1p@_MY!@YxBz zlE-4S$vYYgPiiTZD}usQcEAD{DAdTm(M=ku|2VFvDuvR|uG!_kMK!#Buo18YPWWt{ z@+>>+M)o;FWzc>9J`r5r`zCHcP_DY4kw}#Lw^wayrtvtHT?y6fQxX(5J zG{$!dbHU!OeaUs93|=@>a;O)Ba)U(3PVXia)5wso?kq(sQ`Jfo+HpD*Q4~U=sJlV@ zg!;c7IKS^gQwoZrbc(bmAYP43Cps?iBU@z~5GxdLb*^Y)S(;Sf#eSgTpO-U~!k(N1 zB~5Ke?`GQyn2rKAJ`SiKchO0r;SFRS?-k6DEFE65oFwY|b9M0C3Ow1jEDPOCyr7u+ z!p1RCUp;bjL0B$8xtD1tV759i)dfImas#FSSoVuy#$}piYUC3>KA3*&n8+5UF zdj>oE1M9f#QWWH}K4DnD19+>O?L-KOjs;%3#MB1>Rp{2&pWgyk0|_){s}%V1KcFkN zT!qR?8SpYB0KJDjG-=G!(Lm)6rn^pnrVtRZ$`8`O-^SK#K%q?qR)Un#4w<#SgrPpu z^?)_HGZv^%v_${KRA^W`Y6hKpfgXZkcN(ui@ro$_dPyHYVn+kwdoL1}+4^xzcWfhx z$hBFlzxiKDPY5z@#W_C)yPIvg>ygTydzDYrDp!(B8{8_FWf;;2m8Phs74FHx|1b!& z-a^vVg%7T%yvpy~N>F?|*}8qMo4l5E>d*}Q_#*rWx8zzBDVEk7LV^VHL1tu@#;RSQ z01|^Nx?|5VC9}vxNQe*;2H;%j;v5$j{dq3h(ik%1!44p(J4C5D2UoKt;GQ&P)6+ny z(iLuFd5^HsA?NIdL)==zSxY*?vV~bU)9RCardr3)jtW#!?B&x-^@b`e8`%MLLrbDM z7SGkC`jv_SDzx(UB&%2d)dx+V*eNdrx(Zm@1f(Wm*iHbp;r^v3WEjnW?Fo3-0%YL_ zV>=I|+t+fNxKb?J!Y$Nu<2*=(%h37&&?K^q1hsiKWzSAK7?J~@{pY`dVfdz(vF#`G zY4Z)?BS!5MLj?;KVZi}98|+?y-H!lMtS)8d=xEUDPVx8~?*TM;?3Tv5tn011Ja!GW z$KmH~t0My>u9hM_g@kQ%Ac4&${B%+-k%+9&i2wCzladkJMn+<5U{M>^}0aKe&}Y2|T2y-sP(C#)Zo70^uNYfPQ`3WXI_ExANj-a@d%|1R8GMH8grzd~TnwF83i@cAABA2`9i9fW3<=CF$)l!e z-X%X7C?V*4H_K4Wa%==%M1T$jYbM_6PPwIXZr62i8F=Xg``>x>@64Ps^$qsfU0inUyjD zHE&zf9@F54EX-0|+YHk5BX&IK%gGgL)1eucL(=g;B+rvI{-W$E(#G@`LJ!s){C-dm zt~B+7QF3k-UOS&RI?Tr6Y zFx+bj8bI$g(!-nBY^3&V*g6a+Q+i!*#Fd$#CGbaV9vZ?FRBp^ zRX^jiJw_^Ol879MHixVB63cQ~7`o-Gh`l(dYKzu?d^I@vgDRp zb|rys(b<^ZvuOS;Vh7LyyZv@==e`t=Y%BC_iPC{!O>}0@mY=|Upq4A&-$wYVn#KC2 zxt$K!MC-}t7qH|`l(Iaa3cWB8$Evm4%mZ%DNQ8q(QuqNnk0 zNb0ks4`D94jjW#NhFOm~t090|b)6v+Iae;e!86$eWTE9UfUq5S4@bL<_Z+5b5y!jZ zLmgi(N0PAl<#v}#YlgX67Oubt8sp%r^(b=^wi;b;ko-N zh8ZPUfFk82NTL`ja0C6LR3tz{se;o9q~Zh`=}I;mCov}@n4Z$&JaNgPq!P4@?Tv-p zuI4;k0z>{VS zP2R~DXXxc8`UJ$7I{lZ%x|(x4#1(oq-oF z{`1N=_-yAt^^+&f@ro2wmHI*p%^s6C8Zs9>4_|`Rubte0={3^ueNzpD|(Uwfu6>nJl;^|y}ZZif!OrD91_J~ahfX4#oCxO2cN{b4oe&CJnPr^0!-UB4i%B#mfh%|o`4nJ$ z@$1b?%W7)?d&O+&VB^s+wl}>l?a`_oqf~=6T0Q6Y!wJM_defz6HCv?h?xjs#%BWtF zRexDPz4hhp4_)dym+kP{@!1|t^oH(V@a%~DZ)5Y@pR?T=pop;ieTAd@8Z1GZJ5Q@! z)UK8&%KjO(oyU3k{qkSm4t*dHB&(Bp5D$PlL8r@Tk>y3`aE#l*xOm~%r>9(k_0PWU zFR|fhlCtFt{3tf-5Dim15*3u&=Kia-{!sD~BWlm-D|6?OsBd)=K001Zs59 zl(AOsN-6sBiS#yg1tT1Q08Ks%wd>$N;2|PlsB^i0o#Aumi0Y9|z_e4&0g5;HjUj1# z^4w4fit>F)u_=G{_Tkm#$u>nc{q5tQ{&>||ZajPYxcbM(Uo$6P2OW~n9pb?Ez4kne zSsJ;lyYF@QDLeV61wwVIXTw*L%G;k;4LmD8@vg4J9hW4n{^y_kRkDA(SL15ZbM)3n zZ^N6H#EEiW4mavz>f=j^w=R6#dNqNkQx*Cn`}M7Z!R!a8U0@gkucNSsZbK^*&BKS$ z50~0@qDqca9;9WlMjq&5og@=g)7*zROB`vUQPm8A#X9d1z;fB$HMYeMo6njSsQznf zo?%m6n|UJZ+0Nq7*C|IP=iIiD86<^|YN&{Knx;h=K+7<3b9}<2DYOJF_omOBF=m%9 zh214qT{pP*&nF*m@tOo^T(-1yd>Hn5_1c}1F+ zD2#$>WpgQ@672yV=Wv)#%b=1oam7#fNG%hD2{to^VT{%pQ1$$zH9mT!E;$J2<-i<~ zGk=~BGDTwksE=`$K5>na1{$T=##<+8 z$(w4`Ba?#7qtAOsxnn#-SK4D+T(4+UMn=kx2|UMwJ)30!xA)+>K-!%Y=5Y{ z=dsoXd5B+`4nS0bjfmY6W@1W#tM;s3+M4PHf@zKBVM%tF+|(vpjD zi+2_IQ+LmN_v?!*w=afU0j~S1lhHpoH*iXd3C$C$lT=eSf&w-;<&HI ze!7_mjM*qQhEEijr4;L4+)MelT(-UVYsKnyOR&24ozehpTe0WT?+C7(d-V7sM61>$rZs*DO9KfHVmf1hl>me=qMXqNBz-tzAwJ->IG z8yZp#{m_^-EH?1qwbO*;5xO>hVEM%)4VEc zxX)Ct?tsr#Qgg%X&Rzq6^Rn#e60DgkL-CBWLrnlmG@6bm&fT~=&Zuf67CCT%p z_Rvg`dhHdJ#14^CtPE3io{;IY$UxfUfh?0P<<zlcxR?m@)9_vM#0EHg{DyV@?WEG2uoQu9HU5^ zH~afPYPf%OT}kt`BMM9Smv$c8}VIE(Y>T*hK{GWSp7k>f7Z9P@hH|ZptBdZKt6(#2p=X@l1h~_UoD^&)> zX7J9cRXLn&ntbb1#wj{qM{dN)dl_0;Lg=ndAC+F5($dQ=E4HL_IC6>Ba8DU*my!sK zpJ7E(36S>#CsBFgEtm^3N6onRu&qm#>>m;Ti3A$lG z=!JRihvU5q#jKH4$c+!s6GDit@>MSf;pwB^8~$ET+V7h;qJk`dxO_^Af$0j#5F*bs zVA*)@-cXk2T$1UXE0bRBkf~#*>d)mqb|@!^Ur3h)aBt8-pH9z*PIUS=K%{P2hA6HUbRS*Jr4L@Gy5Wa zY)Ni(zWr3)JW*;SY695{$%3Jkl`OnfHL_R>@1{O z(`lG}Z@NY0h%8O}PYXyR@K9PfLKoJ7*cEz^0@dpP24%}CX%F?P^a`rcQx_D5;&?!e zMvLVSMg5CumW(+@G^^Ddud>sbx@&sGVRyzWsD36HjJv+79QeJ`>ncX=Q%y9M3J+(4KrFq*NBDnYO+vjQ@Srw~kd@GK&uE3dFf83CH z=_;t^Yt?k2Qdg8rtxlls{hHu+?xceh=IGU*w)yOOWu}06K*Iw+*)wVzB6`eoDfD)pW6H z5Ot~e$;#sQv4fG7#9@+8bVZKO9AeV4K!<{j4oNA)!W^t#(xrOHjb9|1oh@k zo@5ApmdW=RjE0pLKr0?zpFfGSJ8NdyaIFrh%HDmA!`OB%|}q17*y zwFLJht5oGA08FSh>rBz|1S%5q>KP1;79kp<314MslB?7P!pBz``isE)3C1%%WBE5* zeSJg`Agp4;R9^+2hHSF`Dby5;(0pM!^_(s}QLA^Z&!%2ir&TxXMM^kRQ>=vS+J;L9 zTK*a8(=fTE=n~+=@2vYV*THZdU3(C-e>lo+I~h`IAa}|TX6BvI1&H9{?RUh6{QyxW zC&+0tENDWg3Zn>lbDAW{$DUf@9tw7~_Rk2VAFpgbnBtZK$4c3sJ2=!rNMJkC%b;CB zRCyv60w9gUiI6rN(s#1Vdy;dvX*e?W?)dNF)jgG0IAthMfRb83z+{5=4dhQmfPclq zSO$`-R22Fogz{_mrSLoXY$aXq8|q$qUc>I9gQuk(`%`65gBIU(&Pk90ddg zm1yJ!zUHDpsiOJb^m4fTSs`Fs&bZc|`f{Dt=q1xz*m)~E*l*nuq1h`R{^NDGQ6F^i zC>>JufEg({ca!{x=)!z`UMYnTzxlRECGJ7q1Y*JKO)o?dJxJj_pGPMEpo==yp41a@ zqK91OgN6Idm*Ga6F0c|Z)CW{(9wOlfeLnuSrYJRzo+TFy}} zTA&U%A$%o4(mih~K4d&vK)l9lSNl`64Y%%#+n|HEk=$9aQxH!6(7R~DlZpsuD9ZYzr+Nr z`FGMfiuV@DFY_>03IlGOY-fgyh@D3!aw1DU4O4F<9gDu)2`MUy(An-^+l>$Pq<6r& zgt`pVH;AxCj*>5(jFbez0E!f`u}qR^qOrK@RIxfQk@%^$swMPwEKIo_aHF|&3}2i( zedh1X6E_QJLx|DM$@k)zng%npn~NfKdgUuE|C-Narnnf@R z(;3f7MH;I@6dw@%$4|XrzG1+~)jj2&rzWh{!1-MYtw?D{F7`CO!Z8<8S76%Tb^4ht zNN#`i#j|2l0+hK7RkAD&uHpk`RK`G)5;eLACovdWjJ<6GR9zC~cN=1tnI^PSvV$4L zmlHw82`(VJ&+3Tn(*p8v6J9f6%l<70=nw4fwlx1MvF*y68)L8wmmt@AS!oxYBE3Hq z1*imUmJU-A116H84<29b_MiU47=&e#^*R_evG?g_+UneG5Pt@mYpq^OhR^`ew6LQj zljwK_3oVAGF=7v8O?Jbby~oadq2h)|NnB8Cj%!+o79>R-Q>=i$bsHeA2FH;YDaO_Wz(&ADHCMH+bfJ$+)>+>MChc%Z7r1k z#V0;uVXKbR?~iu7##`iSyb+-)5DLE|~ndEli0AT0Lf{;@%(*PAQj1!P4(bYZ*EOP-=jl)d(;s z51@Ty^Wm-_g0c3+ezgaSaGkf|g&nJvc>w6kaC_|-^&WvyOLRUd*mhRA9}Q2zj;7#8 zKLUd4q_XGzouA1MjW0rE+aX7v#qe#~{qrz~f7#J$Yr-UUkv-r`wRfZG4?jkK>^-UR zYk|XY9${I0W=F?;b%I8`ZvOXVZTv;#m(8_u|IUQ+pAS7GEEw*Ea-*U}81c^eRUYAq z&azOWmvT-i!`6XGaxVhKi12f#$oXOX<`uzlWPX3t>Qh1Iit6ptaRbExqvmUe#P@|cu zBxC4vfC^{$h%jX)N_dilcx<-%YT3SmZf)d#zmSgzLPz{~i-1YdhZ2OG`3cU;F%0*E zjq^AgF^(b7dKN``m7;}Qk$j-Mj+8;k!*9{m`PhSeC|iFD@=gk9=WN-J|7+@ELMU$4 zX2kSIa}2JC?L2*V9Cw~D-AS(uDgWq4?(>Y#49AcB`})Bzjk0*3>BNSaM2H5wA5!v; zX~Zd4#wRG7eL|)+ok*i#3Q5i&N}$i_!_S@>pJ6Divk$)w*IT62uEeVsZB=e$z#186 zM9d;G^KvIZL%f}*Dj{vJ#?sp0!JDe4jH;hl8=-v-W)6klezVzGZ;GIM>^(}@&Q!<0 z#YlfB6_T}Z=Twsd8!o^T&mc+?{>HbG0~*RxpxZ7h;jTOe;-r5U;oWg-Or!O_j^E&O zN?a4M>fHK}_$681N8G$L%~U3fs@K7TE6?An?!xtoO+v20GOOBSk6U z5FdyW>M}1GS4T?!>a93^dDDyD3bgl@psqJx*k)ASTJC|g9?=TW2(JoMg6&PC=;=)L z!Et}IGJw?cJDiS960+X#+|CEW4_#xQ`xJMC zGE#?<_+=RrW?FFJ)5phLT|PkAr8=t_(KBSC&M7@CR@SPmdlzv9gE!t%d~Z6W1uv9r zeNKy08kOTT#3|F~Z*!y8Rn)U*a_d9XI&-w{2kgOfqSMcj5Z%!%G%q! znxQMBr`4ZDnQkue`MN<=qTME*SP;LQDY3pWmfl!_4`f(-iL(mgkrGDE0%`#N_Qe&N z)#wLB)Ifa8U+lD?`uu`madyyxorxcAxUa_JK+*V4=&;pdDH9X63ql_LPdifj&mq}! zkt6Bz8=nFsJh0rga&F-8cfG0Iam2YnmgZ7?vo^+%!dAva`}cLHc$6S9^=XKzIS)2c zZaG)jSXr;Ew{uO%1iytKHSifktNDx&_=cDe|4%Jx#p)JuA3DVNd8GzRtB7gF+}O!- zi~N2?<+5$mhmcs_vp3T}AW>7^pVt`!gYum6mur7g*eHW*nG(-KzB{W7hY#ybRdoeb z8aO(a3zyW!RP^k)Ui+R^v%m&U+gJsAtKaT8<&g94Qrsj&41a+uzbh4`hG723(Rs%; zb-wTaoa_Y&5FlZO9b_1m1OZ9H49frxkYN}iDr!(vRFsniVMzo;P}Bg5SVx1CD%yl4 zTEvKGv0@FN7Om|ksI{@BX!^rh!* zs3hFXo?a4LgeSKLB%f&I!p~M}d^agB33j~gDZ3+E~M zez52|Tdy4tHUD$;R{b06*?pi7LijPSMMgZ@+S6s)SvTe4<6@Xioe3j!Xo@2&19@u9 zUGFt`xXIVF-_Q8hrO&`g5J`l$dYri$V_FRFzz$tGC_=pq#5DF;tf86L99TLUd%EmR z$9e97`3q=nePHU<2OeFQjO~NwMYN+wQ#(4|&nw=%Q(_aJrjRVli&HdebBk#Hb3csI zT%A79AJxa?#XYRTh&&%OgxzlH3C?AZGT2%o1})A%oZWOvLT}@jnH_+1q95MFYl!!2p*tKgwKc z6Qx@hyaUp&xzu}~(8q32EzQh1{-KXsF?B0l>QbL&xW-Qk4Pfd$@C!h~AYsd^pjo&{ zvR;j`2?Ia`RTPvL>@^hEDJD|BJYE5v?^*GD{Y%)*TGJU7=_Y@pc-HY?h0?kv;LH5p z;r`n?_>tSbj8p-(#H(%eQi3|sB`T73LUs;d6Vx~Knm}p4fQMN;$J)@%F9G_CJ+0IviyDlB(PPhTZOTVEoO~N6eRPqdP>Vr{WZ4BmD<= z)F%G&baylBJ2da%#rC*y|Dg33&I)HGakNSU#&P~rxaaCBdEf|8+`wGLQdhp-IXYkx za;eM-@3oSVOyp_+b*1gn51^C~Z=9;z9R7Z$(*GT^>-NuludX_qRjOZqVeaSwr8YTU zgGa(|GT}-UMEPG`z|GctQx6DmHvIWm5wY0ufnXq+d>Q&#?!(N*oBZ(F>I+g5vKR^d zoU1iCY#mOxiWF{ADPCNH`b`(}%XW=&(1*2^-V6;kxfOn7hw^TP3Uw&h2*{lMP3=Dg zU}!xKq;Z8T91#;Z>m?>_mxF(>8v=rdIxK8D!^fi@9|~%AwqO@Y=Z+bjZQ3z?a)B86 z{IPh2mUh4qugus&WMjL@(}(piQYvleIuyu`c>%`D3xyccz;w zWo+BA`uM#rS-;B963b~9xL5NV!}Kk;DoIxoKJ~=L&3C(cTpoAp-re-p_59Hzt;y~- z)lb`33>xy|q{U$JR%-ru&$A7|dOwxi+E0&9JybIp^(R|qt8mH)9?Bt{@mLi~ z6C9eKt1~%ZokVDX;C6I2q3N$skMH~{gXyoo0{Jnv^SVmEx-%9#c|XF&JA^;KpRxL) zsj488{Qp`+!yhXL|L9mPvMA>R@B?B)5Mvoj>GW_3?5D2uGu<#ID)Id)GGAoX+B0&j zKHUFt34C1n9GCd-I|X_Nv2(M~YwHcYX?I`Y#u(}RC})|x0S(PX}2ADym__#&t@ zLRzs0NJ*^W*i|cW*9lv`tfO{VlK`i02qY3P0N#M{rv-HYfH45EaSW$r76dfXCaQ?d z9{3SuY7KU!xACTQPD3g z|6q$NES#gp$VnXclsik7)9}p*ibLA$^;X^N>mS2wzj&K}sl2GDIC0N?SDLfNCdlyo zdQtA4KYsMgnZELE{rr=zieAB~`eTnWd^V5N%zTP|)OI0Vnpkbt;r{%`9WSn0dc|yM z^v`T!S}q%UpW?J!k?ZNzUHJK3s(k0Bt{8$Qc6z4s)ldkElz^jKJzq9tsd{i95 zxj6EZOY+u_?%m|>s%L)r@963Q*Myde^)23Q79%Fai%D0{8ZJCVK8y(2p;=Asx}VhQ zsWV8a7VloShvZEcwE4|NRy+8n|Ml23^b2stGE2}aM$?Mb5<&oCA!cuaF^JDxgc04R ztPcxDIh6G;j94WroFsVPHSe(b0-ZL{}I#G3cveSbb%2vP6zxVEy`O{ z-eUxcR5Zn$VC;08MC&vWWV`w>w8!=eJrMIvWgR8X>5gU=3;L|dhP`z<{G5;aImuHdS-JH&Oupy@)&oXF| zkyhh!E^!yytu@TQ8q-AP{Oov-{`7^T!je<%|6*}>tZ>mPpESERy=R+##+~oenRh ziu5CP2Nc3e3(ry>>|VGW0#RZ846#K32c7Mh`QnL8BzM<=AZFbQ;yD$qW~EBIUX>?P zx_@dwhq1^nr?{7+X3$LejAJB88kFjU-8KeW7YhwuPUJzy!uaW!xVS(D4?qz3nCE3N z{u@XTCJwRIC2j<7h=FRd6)?-gtZ4WCx0kIUAThKgvmZ!z zmfKLCGmc}g13o@e!V-EeE=@2%zEVW-NN2^YIMHc!u1w-tK2w|C>TJ<6Iz*n-h+-)& zwhwug0m**Y_|aKnMGwKPQw~o^A0VaB5srsaWc0EbVgn87y)=W*?0aWvpu_}3Q88v^ zjpqCM;GS_$@UIDTj{8&yx7mTppg1o%zkwz1cb)n$~PXCXGeoCnbj9)aPXHlFv2L!Yn^Mp z)eUDjfiHc5Ig4;M>B$XL>4*q~3h`X~zy`(=rm6f8$B6c;Gn28}Q%tJ736A@|RdJ@(W(GaXHeD``40FacF^7G2q!9kK$}<po%~KMO$kWRTT;+gUJCB%toh_SU#{YIb=kOpH@i+bJ-&q z%19f?NZ+3>dQ=z}={RBJ53x4m4=^JgrxUBZPYdy$0**}`Pi#@7Lb&$`%@i7>WxE2! zgW%*#`NslPZKkEX0Q=LVZL3}$L6zqm4cNjG`yt+&3`jZDuNtYl(Z1r=DZVJx3Te9K zCIKAt*1f79JwNWofeyXVgRW4xKyALkP z#dZ~ws(WNA%sn_<$YVV;7zB|I4|<`!>N?C4e;r)=6*#(_clnqP6Hk;JYbm$)2I$vaxs!%$ansL{xa5;+3 zx$U`Qp}|Nm&p%5+1q3eE&}BfNS?yb&(2up;GNHMY2lv<@7jKLg!qRvW+dlLg9|Suz zamC-@78=5PjT3gR9d>z(Gs4&C`AMe_q9@;dimq3igp&sMPqXNecQFrB#$mV#9Wmt2 z9|(g|h+?Wh5@H6mf+xhaGvL=+_^6VB2}f>F73@tBcq-?zp>qe5=>nBQH>@!)K7 z-I(e$_70R>L)^RRWOsG*;{80fGGg0RaNwxwaHvyopqnP zQJb*%l>Yn{vPZl+g9d-L;Jn2d%^>YmaX>PSYzhJEguu5#liFj1=McE6EVC0px4Yr4 zY15sYutt^isjK)%4QJIGfXdt8)4ajT51?pCf4k$Hj$>n7y$T?l+wq7r9q5yS%vHhH z@lbEp6ufuB)I(VZY1lm)Ky?+>tj*arle3iplK6IMo3Y_(gd2>~aUNlQtucbn8V__a zZb5h{34eo6xTQd~sd9w6Qcf%u`WxM@#Z)Ny6%f1`z;7gRuPO+GKyHh`7TAripyAIm zaA$c0B@cHk3deg2^VT5;Mp0u7>~#>IqC-}xP#d*KXE|Ihhdc3LM$dkPj`%hOK3n3H zSeTNnL}vo9=oUoc3S`c1)F(ew$L16^%5l-fo~r}%6lLo)$Q3#x83>g@Tb-zBNLQfQ zN_Q(M%$^6&mZMgvK(ZY4QovB(;Dt9}dzJ3ZzXc`9!;X$5@fd~6fK{0q^iCx_O^yr} z>^Rj8^M_!YyIs9Bi0ml3r)K|Zc|!_kTP=jr8%8&8QMg*|fyL)bch`z$b=s@-|#?qDv@3)3MKFJo+tVQmu? zqMa-efA>1Gc`!S^Foq8=ya0QXxX|2pg^(H zpiB>t0NHx45*l`0vzdW!a+qX(O>P#;Lwod!ISUrcp8!wz0=0%iy(Px~4OlgiuL0@WWk(SF%QjRa!J+(8jK`}xkD~fDrE_= zCPzkP_cYXY9zN|jwhF-a830Nf2{R7ijlzF;clIei+!02?^d7rrfZMDg46173D2Dqr zsyG=3fa zlLzJy?eL@BNGbV9;c8j!?zcfgmBkEV6Qn2<3=OB+wu8+;aPo_BuIL4w6 zdQsvTVE8L_1+pUGufxFF!x`6I-b6Zn>D|2j=|PhLgd-`-O#o)m5dA+R3N=N~CY{Tl z?LT|1Fvu0OhrrWoBfCXA-|{VA%P-P390Ls`Yk_Wafgiv9+Ex5Df4r+7qJI{RH8aD? zNexu<2q$p)7m`4UHwVn)r`oPTxMaWV9W0os+|gbRuFXZiM-+Ufw*$@CaGiysCtLFu zW(UtElm_$Bg1&RewEI}%wE%;buy;LvSRlK>irEO^UdXM-Aza*g!p@->&MoSFKb!%= z_O7u$k+QK@gTJN4!Ef50o(XKxp__ELKD`lfZ^DHK>6anBd7zU3|4hl>XV3<2q#+^3 znKRA1d4-k(ZmXXkMTz+*w$At7w|2=tq>&||Q84Ln{4H&eOJ7SImvViv+z=aDw0 zsXznmc=tcFxuNiim~sa>Y`hX_(5158U1&^&y$*&KzAJlFkdnX72m^Es*pxDd67L-j zo;{vsw;y(XU32aQdrvuRm3CYChoD;d=C37=2D#+{Mys2)jHYp2X5+S{aZTmbe9t_` zf_Ue~!PN0LK{=m^KVMIiKS#5*tDMa}W)@PDL}_KulK3Bv!q06>R^2Y|L@aJDT%2k7 z-`_O42EoI^0{E!a#tm4QLRTRcL6||Awrqjut|bLEo9l0yzzi@+Fax+8v~vJY2I00# z@O?m>kdM8k+#9rrY%=TJwjQ^~4B4Q?xDUd-0gO_MJO|)UJ;7t=a9z6Wc4eJ6A5#Hg z&uTF$Kf=#OaIzMe!ipW&C!ABN4LVGY&d&hUNOkBGjd6t{KsPvVWK}lQAm$b<=-~(D zsE&Q8wR=!pH+r}nR=*7XTDafSz&m`>1y%U;M$9|#;5#sXokMhGz16t}J3hQtg$~vc z&lk$Gf%1ztVJv>3m!d1VW~((0X`>@9lOG&g0}p0xoo-6rVgx>9o&WN8Y9fnXMA}Bv z?8i1XTq(57$+sVBi+;YjxcO&#=yOCcgvwN*4Ybw_?zVK-tmL0=|D5Rjs@U?vOZ1y| zl-~=?A#G5w9JOx?+|6@$_FmXnDSW;xEXU$}0tuDL8+A~0%#_IgymX7Dgs~yHoem6= z!vf_8t=6Jf0I(!2f+k1)ttbB7RTb=)ey03lTZZW#2H=xxY0^P5(Sa=)$n_GOgD}I9 zZQcTr$p8T70T&IOk!Bi>sUY1|XW}A2ppN54wwf=8RGz`0HP3g|^BaYO!F!bGwSwRp z2w$Q=88IKNz{r{;m=6ov1L3Fs!h|YNDUg+%f*)p?ywVcf1NQ6|+8OwS>_1|+m18z4 z8QUjg##l9HI;ec_4yio0^ZL*&EndmMHYozyNk~f)(k2V{2*4L^#t-YMLLSCRg{sg5 z?9=Y+TZ1_(-{=On(UrLKqsup6MQ&j^|Ez|GF_IRFRxA&KXR2Ik6IQ1gPdX56ZEkY@ z+T>jRYF`a}T(X>NiJ{IryTRb3x~(pmTa_cxr~J(kIH;)*J)Fx~&n_e2L2iYGp}s8Gw@BEJ$CyX=vVKO`2RM(WM~zoA!snYX>q*}^YSZYytT=9t z-b)JR4m-WCLf?E^v~8qfai2T(>gHX~3;(?4yp6N%`I82AJUwLCb=k_hFiWR0OQ-4p zOvy+yTLlJci%a0VWF9PZ4`_S4uvDA4!fk!|yCAbhkSYL4M*&YEu!3i5_g`xp0Qi)= zc`|EsssW1ksB{+Mu-2@T_SVJEs}VAGuh6gMgeNM_%5*kaP6&s(mV- zd}|TmAyzAK z5+)VsfCOlVcbG~6dVLnItL$114cw+&U)AoKECBtUJ8~761At>1AF<{ixZ8fY`viQq z60=(aPhy>qFI@30zrc-wG*XkyuJ)l3YZFJ{jyjmV4xFxng&w0V_kUHQqag#~CAaB7 zkSAT~N*7f8?E)X#gW8-|*zsGEBZFs5W#DSSOLzaQ3Wzvs?~uU{{a+8d@n0e^WZC}| zvtA(lUo2glzy8+(^g(EK@!L%*mB-~rWO3HX~S+S#}TlPpNW;u-E7vmd;5+)dHIUsHu`FE#mZj+kTrqfBRGdo z7%&v8sy_Os2B7o1)r)Fj*Z8R`}nb`|N zQ{-UleK=JM#4|A4ob7A!R~TrhG7X02jC$J!H)wx1!`JwzDBbcJs46>kxAmUf=ND55 zz1k`QknPN1OzQl5G}zxZ;kF7eEt(kkbNo#+<#%-3BlO-&+k)cz6bCZj!huemB5w($zinBc`Ee4 zjV;!=%?AWWHk6>aSJxZ($s7NH0SmLkWH-+xB-S4;X>z144flTHjMWm;uPOxQZ(dV9 z0>YLeow^d6!~v%j*sB^Wj%GN__@)61s{BissFJJ0+(-WDOE0QFKR$0pU$>N0J`=;m zlGp``q6tK^47@XJf^!ycmVAg3(*~G$SYG|VJKJKr>5H|D@_|yc zsWUH*#%?~lEPYXib6@ttH>GVXRD-% zYo{(~=HeD+4I=xiarsh$)m0b#RKdUZYdn|U&mc*Oo%vYw0_ly(#Fti=<*$@77ra-q zfUO|-({pR=vw-brM+kt`IulN*}1AiufFq``1xt@sAqKU|sK0 z8z}qrDh(^8E`5W<=7n)=na?<*tGf7_F+Ffk_yA#j{GRPTV&aBRwY7d%%8Zz79c9jB z<-J)B(RU2UBldP47(Eie)X}bcu;%ueg-KcOpseA4*X~H>qhBeXC#ab^%w`$zFPJ_HH(r%7*))#%QpXkY8qSVJ$SDItI%piI_y+;w0xKzduVd zTShxIl)i&1ZA#U>8EU5F)*+AQ?eH8SC(xZbq_Mv;-o|d+@$J5K@}x4Vo|Cu`EeYzB zygkEp@N>m^5~#z+at;XJHl*_Qzde&F>s@+K$oE8~q`7+zA51NNP}!EUq$p?%f@QeW zM0Cz0+}(v(yV6<5t}?01l2#Tgm^E3&lHs!;FD9!46$!zuy0s{WQpkW_PLrFrD@E>S zolK-5gS0OS^s2KRc%B@zy2NiL4%MK)|E9vP;84S-oJ<5gk%Y%`Sjhzz(qFH}9iBkQ zW^h?_hRAFci!)(V&-yc9o42ya_^k@m@=I_>yxW0g}G3e1h->wwS(SLJ%jX?o8rIdKx2lk{b z`K6tF1!8i>Q83T3ckMk>fXKJL!z9{$b*YAhu>|J&Sh&s|^p{tKw@oGElmCAU4sA+j zyJ!>xZdq(nK2Kw7{zMkF7%6Ql6Iz=ZC1K42v+B|v- zd8{aAIc}jU_Bzq(*MrD_=9!80M%lZ8FEr*EN?D~nk^2~v5%h(I&`DoHa-Z6&*vN26 ze~a242(vP#uX!;_otrx%4KA+vtsYrUW;L2Y+6O>NcYd-g+}Igj@A}>WQTsj)L?rX!E=zN_gH+vSzxRpa<98{ck79e)dqn#j~UJfb44chENeHt_fD zU_}?!G&DP$gbG~8h3|~sBCeQLiT0Jdllg#jW#G)yRZ(WjrQo}pU)GHa0?JsvlMOJ4H;9~U&7mIT)3 z6%0~yv=^+4tMInNomNT)(#^D^i=_!%&G=6G$1m$K=Fh6lPpLjw1469f*%tGrB2++D z2|7_ffZr!Gf(+I3T={@?Gf9Yu0%+K>T*M!rVQw)`YGb2jR(H{(DX&&{EA5Nc=zR|5e|SDfVDh8J>u#oU;|9p_e5q+E4I4%p%#>(BgBI68+>8pTLbp+T+6YUt!j*YIL5)c7K;5`1^17EjLAq$yqz_iTbL$58K)*0`Yj* zfp~O|NMuS&L9vQBah>l@G~PuPR_(N*Be_sGqv6^SH8Y^#XDa9^o~GIDDy^#I985CC9)N|CEl)H*Np z(bNPMiMq>bD>UNZDbRG(vUyJU; z=jEFw1{?vH#a7X-ht4i5g|8C24BIBU=qrU4=|ZwX=ykR0jm#%d^nLJkw~M-S^i&s1 zrqK5TEFvATN;lxOSY^(sUD*TI-R`7L+`9QMU_!aF^M%L=Y)NzO4x}KQ5N`SY?%^72 zKFrn8-|6KP^-OMC^dg6qdMBbrIY48E7`>nqLud3LiRS)w>-TJmWI!fXOr7(kj0ArN z(v>w{M(7IUWPYL_Gw*(p-#?lFIE5N38o)+y#BH1HtshL$Ww4ZVW1)MsKwri0Ilu2a zBR%AiGdq=4E-ek%vGUQPj1Y0LG!yx{N>fyl(0OU_56DCaxshL)+k?23Cp2kaWi~3T zdn3tAXT>sU`VNVF;W8NjZB*g_rZtITEtS_h(&2}G7n0+}&loMiBv?yFUA(8zK>!bF zWe#HCZh()U#^0_TX2TLw%kUm$Fw<6HNP5feHgPkC)5a#WEnx3!>ip%PXg5ft;N=NN z%C^8x(FsovRG(DCHg5@i)NDc^!F)%3sC_0KTEe3~Xa7KPT^Vep(b}%8d7%2i;LnE< zm|$?Lo!!taYv}v34~depBwzaRfijVYMvRCQR{-@MdVIKQyaFJsOn16d_Nclk`Hn(J zn}Ts~Q&oL1A|FRA!khLnt$8ifR%U-!O8|q=K3{+G=-EPb-SK(si#|dF9oSM3_C{a1 zQvf``AA$9aAm%~Sz9Xgn=PQ&)4tGH@qydTyK6&wcc3fpN1gAjo=rW)zv687d($5Zv zn3CG6ARC&vrVPZzSv5YOUyPH)>5kWbNLfV}1~Db>A;{D|X?HPd6A!f!BPqBDk@O-S zT}omt`|yKwZofIP1J&kzG`8r+Jl^S89{fTLGL0@d{sn1BXa2}4a(rn9dS;8wv`sA4 z^`dLiTugHcO}d_?$kn6sFc((}ZzMDAJuyOh5g5ck)-{W`Ok^G%l_x;hQIHWG2tUnZ zk961{i!GyLLwGHekF~z4zvVe9I^h}O#;6Zrm|SZX+m^zE=Y?Khs6VQj`?Chz+Lb$4ORuKZAcyH=FlC=7Rd0;u<3a;*_o>a~HOu zR{ZN!C{+eG_FFwvmafahHztqq*~j+fE?@uGqSmjna+`90kADj#94syID*&H@pd zpUKuBR?P*Q@xikX&!jS?)RM|{keRMPSX3jE1uVK#+R?hBT+GcB zidTG}r@y6;8yCU8mX%&MVTZZCJRQEySY?+XvIi|zghk7NGy|bDN;{Bj2RSbjHgka4D$)P1qksfh)5Hf$BFJGz>VmZYOa!V z8+3yP9LmV;&^eD*QKCAyG9KnKsvxjB%||g3((&C?XB&Clvp8&f8O~iMZ2ec5-vJVJ zN$m<~!oMu-M?@9;+SJoJ4 zp%5T|ocsHJYdvz^3G^aKuaKVo0l^M6BEGAy-1h-y0l_DmfPSZj{`bVqHZboVc!&&g z(;r83CAaD&aq~S<$~X0?w+K3aR2g8#kY<)~Gp0@%m(}~sHLmX`IHcw`MYJ?oAUoyl z2bZ^Pl2e(#OJ13AUqxrxX_|r*61K&wiX!33_EkX&h)zcq(oiSNZ*u1m>4NV#cO2HP zI+{YSl zw$)I4>3zPWC{`Bef)I@x8D2nC(8~7~P?r$|)eH#TA-M5t>>|Upj1!zcB$~k|Ku6-zy}DtqUEVYF@8>sN#Yj2pX$=V?{qbRai*!wZP9WGTlK-{kF$7K zeJbQQQwa~=07|xqRtNrM8SnRNW7~HstcCet&pV9Q80^s~*2`NQ5+6gSh-_#u7drY4 z@5oL7d@y(7wB^+bjQ_(qVB;PkzQ`7*1>7(wZkgDe>Cv-|a7KCcAm^?x1e!o%6ir;A ztel7pPbmtp=n;lb!EtmjNuMHFW1Pz)k{GKDtF|GyG$E!4G^eKpY0u<-6$M;AHN73g zrmtD;b+JO<__rrAfq_VvM+A`^i&jYK?6i1DnoP6Egpi2}1gSsOm~FCLW$`#$Y==R7 zwaT{AR|S<_=UU#Zn17nfl1Q;)dE=t?=$vP&GERrcqlg zH1Qd-BGbWkJ?7zj`ogpN13$QBeS^G2ptAz!r0NSPviccwyc?4-RaSHJGZs8*VlqPg zQp&U;`CMC5OB@9TUkbYw1jA_t-W`W^S6S`|x%@&U`gtC>%8aaM$u{jjcZ*h!{e3E0 zd-=o*+3qJb-?QpL_TyVxACLKx_2J@P7Uru6|7UUf{dV}po-dJ`seejphHTh>g-jQzLy=6xR+9@OfA!d)Hr_REfmSdYURbWz+`H0&@ z(5Pg&V&_IokReLlbZQx5BSjj@I-NpVlP*gOOL=S9i(vd94qiC(@uyXVy0pk2^e^nC zEDXYF>auqqeo#+2%xwwAh{t~DsnAZkVd}5JS3?=FFa~9Hy$Mx^aioZI4Yh7M;QP;D zPuf2l8tPy0Lc8Zy{*eXS;AiDa4+}}Z^LWke6BlHT^H8x9iTjXngWg}E_aU|l-Sxts zN!7bIg}Qzq+^iD^^jp6Y9KX_Z%N;mKh90Lxw~q7hqR27$gWJN$Rtg8iwVHe@6}qv+ zzkj?f=iXAjJbv@Psv2DDhFiF>`D+#Quz#*wI_l9wf^$BC(EPUKJ5ZZk4L^dV$`_iw z=r)EUX2FiEx{S8uhE~fKrS_+?b(g|Jg#82=@fCUlTX z_$oLt?que9NM|Gk>A`4y)#SE6d}Tr#UhMSX{R~alPjY|UjhZ-}>BTrp4e?mDF-G+vp;f_{I&y84}Nk<^XZK8d;9zA zuGHQd_3h#6rpu{a@hJqgmUxb9C_ifMwD8(`c`?uPj%8dDdAYEEw0}<4>QnfLnS}ci zoz%gx^GkAmTb#PwE@esDK6Gir^7Y>@CH*spu{h_tws=yZe*5~QPo~v>k%Ll{iNPsw z0AoH`lyWAzXo}pnjJNw3{%QBTJ4%pO z_!le|!JhcfT zDzv7xTu*aJZgY%yICQ+j9&Zs4koB?58G#`sGM-4No@e=Ji`$PhQKVw05jNH+L{wYt zHs--aP!oeAQ4V_ENfL+rm1xq0U9h%Zt?8(8Ff9H>v_I?v%W*s)fGSCL7~u$#Ry;FQ zeIr*Gy)uhb#%r1LLjvqiv&6v8kLGoB zfy}(#_0C7<2i}oAs&ytcqYTjDM3MP}3yA2>nhW)3|7p13bDjSX5t5!-=ht195=U!J zlqC3URWb%JTY0b+&-SsX373W*zqR<0mC;;JC3&tcNgB2b@7<&$M`NnW)iD`Lva@K7 zce**o_MtxSfm2mkFDiamu&c^zLr^3k8!A0J;;NK)TKJ76`d7Q`3!9Z?jxiz=mv>P< zJ*0QpnU9`dR;ori_>8CIw^ZL4iFPi2&qn8ZO$bM73?fbLIdeZRBeW&|L~dpAjXhRF zRy@{|X#1EUr}lC77{kUYW6>&W%jQJCXdIczV52@&KOeGk%YsBZlM$ezJaR;cl(2UR z*x0OXo2%>%%Ip|);>TR{;ZJ@GgFA}t!{LuNuetRSO{a&5EuQ>0cbed6d^jx4C@@7! zh~Fa7{!{EM*{PCV*>S_XeyC8o{j{@nn#0Z6hy(g_Rip!7W+WzCGYCWhRyA{ zSLYoByxX~6yLw%YWo2=vpE!=iUZW=IZ|aE#%;@J8Z@=^w!mwo4Z@^2m?(QkmxI+;7 zNtC}3Uy5+y;tYv8BGN1>Et#Q)G|(YKP28>vu4>n=xWJ_n&xo;3Q+Eny?+1n$^AR8# zWJ3`nDy!9(;w=okXg1%i+FHgU-RNQAP0jH6Jh5}Pk*boIf|u4o$j>+lH!&Btl{`p3 zCum9Uw8W&fpLOmnLIt&gwdpF62cZjL%1o)r?ikK$Rz~4rPQJ!5drk{oV$;vB$x9Sb z&gx@>T2pF57rXL~%uCm`F5vRk}9S>TWHHDT@bM?OzFGZcHKS012^mT)T25 zy%L`jKS*7-;-t%E*`_Q1#yXoj$tqOu923eo_Fn2!or!Kuo(* zI&889b!4{)s^e7}TwQaq#Ud4A+Qrf3ENINf9MCPz#FGHFskKceHeM&Jprg0sdJRrB z?+gCYJR``xYJ)2afDebLH;^L_w48s zZ1JDn1(g**(aJ*k;G^c7OloTyD#okI5hjN!ioOSSZAb$E7GP8v!Tx6}##;d((b#hR zPL8m~MT0~pKzS>R3H+!92uu|!LIywU?sg&CEt1@*gA)=-V%I*lDY*~Ea2;)lGv-TK zY#*i}GTbVy!kn#INNh6R3~$rYN$wU@1_)*@EsyfExHBMiD?e)DJgX$R=wMjq#^~nB zPU>*qu+P?%+Eg;kqP0wN6K5ukNF1Ck3+V`` zBgO?{TS^B$ULZnCY7(w5s8Gv#*w%*uskdSRm6@)le&mU5rd23IQo34daC&HdMuA$P zzc2bWfwVRHIL=J4YK^^IYNj3@L`t@qP|a27-olrSa%{FjApWO)_pK`jWZMKP+rHLO z1Is`98Xs-jGlBJDM9S}GZG7=XZJJEkS%6x2?f?7CJ=x+;n@e)Z9ZL!(I4;tH$GzsG ztl$3Ee^twV-&PeJmq+4IK1b+z@2HReMy%*bDt|G1%}7E(`rH({DsKTg9|%CvR1q-k zmMo6SVg?#PkQqY1)*914LdnR$+#?m`T|^{r8S*NvGCZ#H;v#+|VsEd^LI$&OtlBke zqwWDmEBdsK+f>fptj7pd#gBW_}420!*ur)O#H`Cl90siCnx)Cr#?A? zxfY!@JzAIZMdWi=Ywh_b@0ZXzSpD8C-{CAaVLhK?!ch#`O8D7J?e84VWQd5#pHX32 zyJRB)eB2;JhXuY1Y(%`F)a^rtO|y{qG6pEnkt#p$Tr@cG(pzJR)28;mf-QVo~9ZnEGn0?i>2>L&$c24rb@=AChMw zTDy0v)2b)=Fsmbl*Pp1)pNkMoPaBT4fYebZe9ktWtjPMLUlyDB%52Oui}jb6GWyT5 zA_+}q8rSo`=>+VvK|&5gir@Yeo>e9$dOtYO6Uz7y>hYgt3ysV5ox!aafWKFmO1`#! zMqmC0kaUp&ce_+YpmCYvl;J0QwSZ#jezGMXM6k4zBYn{7zQ5+xmQDhuJ5M^roS;#z#b;&a7yB^r}%P_W5dO=y^UIuXke}(F%*{6&d-}I7a17yl;TW_^#8H*@U+m5jvrExe)V{JLQOiB1@GVUkujV_Ck zHcFYp6zEvWt`M>!dh1wjm3-x}T|4+ByYm=EZHE9Sg(`w3=}OXZwDJKgOVv>NG@{uU z%MPN?LU~XgN&l~(cib2H`V0My`VpC0N56zKqmBHb}_P5 z@;ZW`0_<2Pi*4c#7krIUffAu#6wEhC#rp$TG}_8B>Pv^<3|G~Q0t{fIcHluvQStx9 z;gDmM_{{6rR~vlt@Jb}%L45YG$a4{nD-`>eN2g7%Ti$OQtL4y! zIPUtIYm1S&9p^X{yf;(4PBY}g6#Ex#x+y>oE~-68VQ%~Z&vcku`*Y7y(Q@7ZT_xIh zSlB--a?wf#*Wf+Lb@nCG5o-WbXdM|b9q}e1sM*Yw$+25yco%^XStwXUqfJ~6;U#LT zFd?70k?spR^n-VM9W=uZPfYBexD9Mcd{vmpolMDo?=3`sX$%rC_iCv!hi8~ChK z`w97W3Klv_1w^qzJ0N%z1{dgG?lO3G1_!!77g7#|7yqsHwJzFZxD$vMKg)*1#NayY90!F zRD7Q>HEpUJv(>z_1tu)pQGa|>QCvC2*HK1myQL0-S^=~9`^=E>xykH^|FR~Zo%-ws z+p#NKwlw;9lhE!`qo5~sWuXc^c0Od2!6M5KM8T2i;AQSW1j6VN8pIYr6dj9F^azm!BBBQoE4Bqk-lgowv%*afCxW}aE?&JVwL0aza01Gwy#hNhQAoEap-UOt`c&4=deLUn$e?x(aS`tG#2hPUQTo(R3xu{&uWEo- zkN<#(L)|{n#_%7eym;iDEy+AH@OAxj`}hBe(S5A(VfRmNj@3ulIx1>>lkv5WwR-aa zB&$yGjNc-_jKD_st7gwSc%Nu$pjXxa&rBy@eS8mE%Zs)QfqTev&lD=8Ue!R0yZaZ* z{+?LsR2*UH@%X|O9Ne^-Z zXoF)t=3N;&K( z7#O%KQZdE^y=DQ57D}R8ULdsm!rJo#NaP*2q%r3$Rb)c-2tjXpr2Q%06(qWXDdumnQ4mTKYf=PZCs~A|Skct^R@YH~ z7#k-Tv6942cGNrmsWNS^RN)3p>ElF(dagOHMoWKxL;3koB@qLAAM)wvyDVbs_8($o zURz46+SPWY^MrZ!Y)+bYL`_LF?oc?y zei1T5`(2;q4P)3>KO4?d`4os2{#ok{tTS;-;4T_o+Qbdrx+~3mE~li!+NVxh>r^hv zVH<(Q<}5;0AC>hf(`xS%$MopoL?br1!%eH&@}K&Oq$PI=%&7)YUvSIpV5Vda<_*iV zT%A7>J$kBkG{ZeUY(QNH`*BSqC57WoQrHfG<5IOLUHvo>e6+%`7(rEF&1+o?=C6;k z?h)*D)Mh9-H_-eT-%wI#ipGr__#)w-<8L%d{BfyFO4AsPXqi!eK7BWUtVw5u9l4p>d9u-+^FTAQ}w zLF|_-Ou|CU0lG=h$gEX!qfl?i`4~RF{Hg`_5A@g$@Wkm>#Z1NiRun;AwfbDwK-&E4jHZ!VQvnoCHI zrX-cJ8|G3*5>ky+Dlxk0=4@^u)kvkw>5M3q&Ud;Ub!5N&{@$OT?eqEU^?tq{&!#~r zi32BB7L0GC1#rv){2iws+Xsvz*>IGkxi?jOwMUDAxn#LI0N(FM1NfV+)RRg4^~Fic z|0FprokaZxUugEDL~!-o{86{fZ&04$K1=CFP~=2-54rR_EPDO)0M+eNNUpxaDt9Yp z%fN4$of$OeH&;*aDzx6ON(BZ-&>=-K#5@2U05qTe*jKNA|Aim1QpLGRoxB+U>~{u7 zct)t7oFpY3re<=S&rp&Xc&d!t$7t}48=JN{_&L+|EkpS`Id9+-xd>ob{PVTz$Vcqo zSuO0RWA1-gY^zl-29Gl|+ojVAVv-sCr@6HF3&6$T4Mxexbq0#M&gMV+>-G298VI8p z*Xz}EY%X`i`Zw`S$a`c5oqXaGYfG?#mVykppO+lsVlLz?2JsZZo{Sp?w9%Tr7y{%* z_G^#XqK7zJS&o>Lgt5zQnOOb&>+$xVHf1}B@r0A&|d1R^am4(@@pIz|3 zkAPrbfPb05jgk;Swr57Pmgw3UoM|_yPq%6t_%25avpYPMd-|A(t8wtxpEn4Yi<;Dj z#Y0&Ox%bz*;^BgdY_TRvDV;4|ZZUs^r#{3vQ(a;f_Xa%{Ed?cZ|KnSYEfxpYaiqG* z!h+s7SO(pC@5s?b_d|Ui&Z)Bdiyf7B)nW2_-D|0!uV3%hWfNISBb2?6Ubo9x>3=Tk>`zOw zuk%XkQM=cKbkLc#3bT&ZO5&ydUxJwJa8w9eiVnZ~>rzA7wYiKpB{@wu8&fKm1D&=t zw+1O9K&tAAz;A(=A+*iRrhpKzkWnDfnRpid&J6$@(p|yukh=3CJ}l}# z@!9^~GX&n_sSUR2_`taiJlb|KV3v>bS^Ui;hEZF~ySBcb^V;-%k$@&Nt)%Yz>!#}U zvXQOfZ%()ec4DB~@zM3Vipk|w1qlD>wPS?WaPC00`=gZ$9v)L6;F_>Ox7pH>o)yME z*M0T*WfqD53Vw-a4^=G=`o8;W*UI^eH3C#Qp9Yw4SQ^_(OuSyX1k^D)Q$0Z@q& zh+zSMDy9$#rwLiv8Sy?Vqrr8hT!b43M56n3GnT7q*I6?qGJzNcg7e!%^;psw|`swHpOPr{8y)xHR|*cegfjB2TO%}vak9V zE;3ynRGhaRdW?Hoea7V~<@Blx8Z=l5fa-}lEvejqECdM7k?<_H&l&}(_p1@-yi2vM zu?ZBa%Xh$ex0zPlUiG4H4il`^qJTM1a$r$XE}Bh&QV5SL$5~~&T!D}PXMe1-n8)** zg{b7&ItmuVbcJy?XmNn?ue8)sV09K=I>=D%Wb^oXsbOJPxRE;nrS|h1VeyTp%r1>h zy=hG*1@B3*2tLcoazZXp}WKNYSo^QAn4N5a@u% zPo~l5&@}$vlmP%m&c|m^La@>h5RA^Z2Xno&{cR^t1h* zKhj@0TN&)tMmi@RiAP1BfnDPen~DT_A(Rs(LJEPkav!!*go>(8Bi6V<&Gj`Lw_wtV zC6fOcMNIOj9kUv76+E3^F)HCE?K%8DS^B|0_^(q0y*iwHfoXMNd7{~f^C@zWCH)2~ z`gR(rbhH-VKqz0JrovMd45Wt~X!#B3`}&1!U5f~0F9#IhHr4sYiaNRgqb3ZT&v3o}0( zqus3FJA}xQ48&AJo3n@gAr|b(RsKJR32+PXt-T3=0eI&(zGHGItmBQwypO`dwty3P z=Pg%jNL=o&a#MQG>RUe7ex+{UFb>}`^%wkGIq389j76k&fQj~za)T8BzJf4R_ct4A zSd)tEH=D$Le3EYA{}YwbI1Ia@0nv-03|oW(B+g%sgg{vFjozO(&^`U(w8eEYb)chP z1N-y`lcYBaAf1;8gP4HVr^#WO`{$5vh)}&h0cFt{=56mmPr9SEi!-vPcE7+g+n5|&shKU;nKZDcoglo zK5fxIA-}ZB&pOG(ye19?dy_q6&R;Bll zB}6z=Wb!%CYU9#-;>j)&+?KvEG{12QJwPebx>$bb^I(mBGbb`fj2^`Yd@J9#Hhb_e zt6NaH(YAZ)2210S^xt1}eBX|*6PY+g`j?f?L)GQHJP$B1(KcB8{QqECBj} zWE=nlk^%>eulA>c^Z}5Vw7*R#3KM|h@S-`-n4D&fo|B@?xCsYLtcIX^Lr^kj&WJOs za~h!@{lwGgiKlIB`#}q943?x#XHBLX(52nT&8n2?7Rz)ajMYnNca{cHrz!Sp#x)b4 zSV0Q38&Es`=tAWPu}$3X#wD?g{|OKira466Ke#q=t#ujEqLna1K?NxYZ5(1VccG(o zi8v_B;geHlar)drHXvio7^Tl$5bdOerK0CqxJ;HuRH;W=wb#%f29`>Aw4_GwVI5Xj zYxdW73ZqQcaKJ|L#vHFpgBI2_^2KzGv?^St)Z$sLm&*0A#mYp{N~a#bc4LOv*i44B zr<=aUB06_?g>}Cuu6aB!_FrrDf-JO;r=#6i%o{z*H|lOqDLi1@1QQ9Z1~e930Ml5J z&hybs^|q74*Ue_=FYn>kGD10Y-)~}kFF2@qeRQS*o_F84NxV=0OITq$W?Q9Cv1hS=i=JwhT@ z7I){o&JQ$PZ@_24GG+KLbbi0FZb(QOIisvlxeiB#$GtYHU*kFi=W_;8(TlSE^B1G)rdcO&+nb1eyeWW zJ1qyfqvt7Yfk5Vdjc<} z_+skWix#^UDNvP{ls-CQ(ZB)GDQJO}e`ovCn1~Q277>O0O@u-OmwbM8KVB;riv}?h zZ#RyVX?EcfaiKo(Mc##^^Bf43(+(S2&gS4wa~@s829N!3 zKZgVJ0zhEfVN3;FE}(m{9_8}9P&FO}wTQQzL#MxZeHjTzx}TSrrDG<;BN(Jk1B;UBG|p=K1Yz4KsAu%;*Kk|>6+jP$cCJi)C1tF$4m5^qn1g09 za7SY-D;r4@!nUt5mPivKHr>s^`15#Im7y`F%MK?NE0^A(IxzUM&X+_WzBv~I0ph!) z`E=Xy5oy{!1+$~;7NHt41;3}S_0n-M8E`K} zat0t+_1;1SL})(`^#ug~JN|vNug$cypZ$NKl;35Ef~2On9yO zLoq}m3+bgWbCV|YGoZIAo1Lk;h|BoR6f8T82ulSuh$~JDE9&Pq?LkvHKs`>X)&L7- z2qYk24o84GOB-zZd3wEEy&TzmbE|I4tacty8?HG;u?up)M~5`ablQS)%J#}a&ifoK zD{DGNX1_HO#x5O@CH#FeW{HKbpKR&naIAlL&t)aGb($ZfK&Lm4y>?}G@MHfRFDG_zMpPv@zEbbXm`UieE2IJ|F0=NX0$>zdVpq>Kk z%rccalBrMid8q(D9dmmQ2-d0}CdRGF^mwyImja1qGFYw{T?W8u8-t7KnnQtFc~zDv z-;KnKxjH{B=Tw^lC(YZBNFUSZBU-hq84jmf(U047S*e_dJR4T4r<;k@!2PIPF5G_1XS zA7cJdbNOoCg?*zv1s0Xz)fe)2cN=`?ywbP)m!k;doqT5a5+8=uZ_e7s zDsGT^fnO9ovn_GmKlxIVt=S@OjRWx>ES;!uzH2B-Z8cjtVU(2S2q}GDYV;)F!Ci3p( zuDA~6sjrNC)2zs&RW~zl3hTgsY~U zx35HqrHJI1peXTq(QkM)<=N0xH^9g4DFE)a6rlh_{zBmtfS{uJi`5+a&#b_y+*1lM zP6$Sgb53~-VZv@b_modPmg@N!>(|ZDGtB#q6ZE`57#w(Xyc)xpHLr6&R zywUFY@aZu8e026UI+AHtzL_4B!pSsYp_@Z>K8wHV$#AO`Q{MqIRc9XeN^#0d&2s?7 z1D4OxFmMhlWJrq5@q{WT&2_@Tw^?|c^*Mk^xV96M+0wC$AIIw&G226rL4`vW2_L6F zOf8%VqD0+5!NB*$L`F4uwXxmS~~&Bjc>)R^d5!N!A6Q&e;4s7Iefq4)x3~ zvx_DBl^*7FkMI@mFr*AdnNQxDdf@O8Y&Mgn(6GoRu$d0RkA&ly-Vt^ETR}LW<)B`{l z^}ktZX!|BFm(|B-4-rtlv}HVD`>K2h6E&fspH)DLS%h3E=29|3H7uttv!OtVZ%ci8bjKCUd#ADE!IrE49su?P%I+6chuK;bm%^%P+421i_FR& zM7h3JZq(es)_@>(8Y<2kQjHO+Q66^a8;|HF25V#kSaLahev*q$Qjbw1rpw=$cLpSj z!Gt^x+`AoUdQdW`n=3C}H$#U}7wPZ}t#UUS5N!$MY9^-fZ9Am_2_b`crj&2CxD&rs z!VSt%JB;crdY@ZH8mBl7&Ykp<4gSWV_I||b*WE&O9U3-QIjr~Ewt54{pXegdB&pWG zrCYOk*eMpgI%B(|s!xW!maUdwxfn9{ZMS+;pZ*4KoH=8px1#>mAzDkAqB%9G14n)5#75RTr$2IZ>MOVvVS@%t@#kZb-fwz>9uio4!`Y6v}O09t-80rEqzTuj&PeFV(CIf6LYQy|E zdQc_*5W8Upepp?n=}aF?ys@F&eMp3)(w|*!qz&$T$m&(AtZ+5lr=Ie`lGHM%-hbQ@ zGZ{*w^>~1Z3*2e41CkkIq|>KRFKTDQBB}mx9}ZOaqYW;e^E~4*4gSY(3NCY03Wa3G zxo0qv9EGVn9?)yuTY%{2b=4Wp)stT07%O z4~y;aZr?GXzwf)&^&I&xEKTQRy}+eTW1N{I1{8Yhjt4{^MK1xRy%9l10jY583=q0~ zhQE$VgSBd1Injb_-obHj-Ut|UY8I9{^m5U$^tbC?td!@(rMo0gw~_BGV_)Stq~{I{ zkX|7L=5EWvnQ5Np{R&HSYeMOr-wf>w;sDZJNtwO`sMWYKpc5|#ea@aAJ0=2sn0t$O zQQJn^CmphK_7J~!PA3ocQ3b+DbPQq8XQFY48#Y_&SwBFZW)B(Y&sPSM{E&XkUGVb? z2=LMD#hm>g_184KylwTSWS{<0#qL{xJZl~nz#x|4l5rpQ3(JHvl{9I@H5XS6;jZy4AO;cmM3z%3IyqlEp z^ZULhZfYJcfUn6QWyOjc&kVX`FRs`)Ne)*0c8$I93s6~^uzOuwUpLj&sxm{muphr{no7!&Rh7t|L$B4E?5ZiV_X;h0J z#5lXgJc^47>6jf?#q(z$#v&pXb+zxYhZd6^GN*KTjIKq|d~<4aCaX)A#UG|7t79XK zY+|$!WOZP+I#j_T-YZ%(O=|`{s$^h-84PU!v%e%g$<*xQAjK>{M|rLlzhiO9cVcM0 zW~F(DDjul!h$$<_q-pTwqq=47LPu#W&M&_0w#(eH`KC|C4^U4D8#!t~G|*b2Wh3{` zlBhs6*WfNRG8q7`W5QXf+A6x)0nwq_AhTB+5T8%ve7t{1BNf6{+K_#RQiC0r=D!L|GjgZqdgG2%Aqls*$ zdZ-5aSO^*>T5YT)3JYL|ls*e|^vZSgHKlscv+a%op25`ln}S5J9r>+5G7G%Gf?ESv zV*sZ*0%nW?v0;LhCMbJ4@U$2etf{A>M+96=_1#lgD_&PlP(`JRBd&$4>)}LRr(+Ln z!EF5M{5}rjwiz>BD#c}$6)P+;&bDDVKX^DF#Ad~y3%kA--Qz8`jw;yJ&@ii@yFpn6Q&l!^E$%(3j}c$Q7{1AMS&PnAnyjDI_2yfJk4+Y-j=fVKoJw_02ZDEhF)0wI+=C^kqZ=O_!RB(y z-4wVN<-~e9;W_W{Zeq@hInXYedYEsc$FTUxufNorUmDu@*^fk#0u3l&s|$7kwRS!` z?0!qgjn!qy&e*`(&zv;D~56XM?y@9}M_Qem3}c~}8|MgZbjjubwS%*54kfRiljq!M2}*>Xq>bQObKDaariu$f)y zuj#Be>3nk1+3#%S2m$#MxUrsv%Gnojy%pwOmiE^-e5Pjg(*V~;l$H(8i* z0J=qi9#-g|Q{ty)ko^=Dx}J$Bmm~RE2$5L4Q;GjEz2T7qvW1T7-WPrIIr;`2)y_t} zT|w#GcGt^~HhhU`ryNkPE}o+otLWH0g>caxxEl@CP00M8224eBxM)t_ZoC!mz$m65 zADDRImkEV5M6r51UL0@2DzS*=!RW zJ^3N?@Wf@JBa3IsC^MggZkO-2K^)R{V|c<*Kelf>@lCsqg4`f-P$>Z+U@GJgLWq8)VsgX|#^DOlr*CA8s!1o`}{StR)?KA(| z5&42ty}KOEB_LGn>IN2axfVN4N8JRV^=gg22~eLhkY&M0^+2PEiEN_x)F=_TEW|w3 z_5dJo4+S1c^S|W+hh*5R#5N&27<3WrVxaaG;2%!n ztp>p4EXgJ{hEyPO+T2Fx;yrlh7O9P#n`vTnP90v~2(9jnF;-iCY zmVuEhi@F~>+Jm&;O~qDxkCPpXZ?!o7#$&yc!tzYnVHI=dl{?9?&BrdB%a0&{jhHQO z+fo8u{GWZdeKQW(OV9gMXLId~osFBn+Ku(4Yi}3r{$~nObU8)Ta3V?srAh+y{t-E3xtZdAsp}=4-?R9@<;Q1hJx3jOiQLD=h3Q$)3Vx z?KUOyu(Yd=-hyXgJL4SgNXRDGKN1RvB znZ=enpS%7_jm$W!F|9z~BpAI6*cW#d*2F=d$U^qATze&hTEFm~5l9rz^%xx)7mGN~ zMwPP=wuvYm4@~}MR2LhytrIh-MBxKbDi*q10gYC|tNc+r^`RW)zH{Qin{v!w%C>GP z#-$m%YqL?U6SBk=70m>4Y3BA4FmqZhJtysTBh+5YE(+ z({4MGvAL!Kz@YnXNCk_YLa0n_!9YTDr$+3!$>88AJD!P;BCaOWeoPPIvqSq-r-o+i zSS-&%joK=EdGX>rO9xOPk)2T+Pmx1*OZo~4)~Akp(HRyGO79%=)5u!(KjB#VVa_t8 zHzW!`od1De`C+}V)8bg5MQ3qd#~mn1W72m1iX(IEB@c+!NOaXrSPIfs?e>(_9Ya-b zd&SyzjkRq|F|`_q*g(LvaSF)QPPDgE?!O&><-lDea19CguMej#t%O7W+k1K$Jqf^! z5T-YOjXW56qmmZ4#mjZ)64ys;ac!AbKeSj?c7vID- z=m%WSeu(^8+gr*)c>aeE+=+e&$imOnG~RDp2QvQS^}&r6&@v8K#Y99ajN1X|ap{>C zbnH{WL0IqoJ@2x9 zRRC|UHm~|(W-?`cglBHWg9m-ts(ChQw&)P=f7H zM~22^gycf>Zh(#$vYrlnN_@39+k#5`qj_m8I_4pjXYT3(({zH}i?sr^ru1yG^@o~w zZ-@Qi4i5UVeyL2g)lo@0a?ws-0Sw^M9_d5$HrP;R&mO**lo4%p$Il{L3Z1vGNrF23 z*1TxIwIIpvWe~0M6?XYj(YAB&Cf%D(Y?zRk60KqN=!<^_kZ5zF`CJ0|ycOYsV?vTk z!Zj9FMVY@MuISqz+IuZ@X*~3AMFHjq{u!ZQ)6Jm63jh1ZouLm-$t9JI(RvpU*hw+6 zfd=9djO^r~kYJF>I`kt2I(_izoyK%euXGis>SY|Ji8Z7mpaSm>^#jm|OGV4e&B&^a3-QILu3SIM0hf$i-zPQjRDh}zZ4+3~(QxfB1*}*B`~D1kcP<#vM);4LCh zGU2s~11G)rWPZW#Zi|iYH9NvP>`ch}^KQWFaK%=!^~CSKSVF*NMX6n!&F?36OEgbFZ~p#rFA3}V!=rO&o)NV>D!~NO)Ynd-<6>MvYUK&7Q`(rWWN2tJItKch$7TN zb?(^)Z2h|1Mh$n{OCZUB+KnQRAK|70eJf}UUnsrjssriy0{(ceQJ*8f@YCA1T-6ZI z!p>9Xe;%Luu~)dO7PBWG%(wu|V9J`Q1rF)K{RwbaF_0ui7RhxltCdZ|fm(`lSIECI z0?bqn^4weVoZG`>V_CoE&@lhQ4{h^$p+NHzmWS_$TBhPB-r36Wy8;C#8rEb7RgZ)CA43T zkw^x6W3x(_M;|E=UF?w|0D2z*t?{3I)u}&4>`zz z#`b~JMTk>g)atsiJCT;L%_h+x^TaP^zfB<*VzeWTtb754&1)+2P?NX!|HPQDEf+1% z4q_-tEiBot6BMVym7)RYw(hj-cTzdAVF=;V~mPH-FG5R2tP~v6Z6b&_yA&9^o` zt9z0zX)z_M%tZ=%+Bh&z4+9*zCRo0Xelz*-%Q>a_oSfbx#R_Qx~0G3my`%Ezo z6N>a242L!-w4dU%RoT<_45Do68V69ueSkTb$L7(UrIbanzlrhb5L2wrl-$3@ZH{xc z%67ibxyr)K<85_G)L$l5B|hp6Caq>k8()R*q|H6nduBabT5>*wSFV?%uJ>~kuiO_V z-P0R7YTHX2JZeW&Tc>bp2)9g&qi(XLj;o88oaphgqa{<4K^$c>?QM)&x_xV8Ebj=d z@#z!K8aemL-x{4+9NmI1dHDS~LN{*Z0*rs;icIKzn+fFW%~2X3>p8m_3$*~BriGe0 zD{#5GQP4Ca@P{(J#?kqqGurbb&977wFkBr+6-zrSwAS2jz%b5=cxc9v6?i4Hkt@s+i<6L_8-4o@^SGK#4;X-1uH)pU0upZJIOHZ{D^!R9|o7M{v+_wXvQFcNyq_>Y(x& zfuIdJKkqk|bS%F*f~*5o>d^$h59qCE>&n;R==gVb*Q0)`k`Iqx3+Rt6g)K4-juUe^rSY%?PoAV zBP8|R@h2zuOHQN|oE9`@TF4lY{-~dpC_s=gW{+rEGlmWGo@qti%;#x-Ylm-$VDMr^ zTkfv)@LP*mNcyb`G|}A31Ca{bO&w$(CI~2A420(lBc=H5$&x+*f7`N*IG_OH+!*F; zIRMp5E8QB&HRgtLRfJ}VmM$jTDR?y)8K!`s%oL!2RW(MSprCS; zQhS)RkeJDW85gl&LK!G0gQESAJnt}&I&d|U$#bKc;1aDEse&&qal`X)gHiR4%d?j2 zTaUTFia%L!qX+G~!cfcBWd*Mrs@G*a#P3y4cc|>rO&xw(mm4?E65gLK3Gmab_1s8K zRH@e^m;*$VV~|B64V^wQK-y&kv-i8;l(~}T=lUzy&MhCEL*?teSb^hgCy^l`K!V6^ zxVCr}Y87G?Dp4AlADF}>0sMUHsRDCqPZ^cft#d=9VXnW7SRc_ws-b)|5C!|v@3!f6 zuYhq=C(aS{c@Zkn8@_s6w?)Jw?PCY7Z+1pSMWhjrDhCYaNM&wnXSQN$P~T#QsBg5j zw*1#D`HkpgM+lT(6#tg>hS_~V%*Clgjp!gHh_<@DmNCN%oZmejc7DOyS#GIR>FLq|z>rHDFd3twus7mhduQTZm0rhMHM821nXvaVY^pgQ4pxlS;Agmtd% zs`(1%Xr%6h@4L}03Roa@i`-}Eby?EHo@!GGba=krd6lR~3^+jO%uet>jY zxm#1zju~&t;ouGsDn<#BuAViCkPqr+?z!}b=&k0n#u49o|ElYs+uZh7;f$NVwrpJ* z(EHHd3>(_d4ImvoBTT|O&s{tnvTCYV8#`VT{|l$A!FQ2LSFmdi_48Q7bmGv9==>YTd;_~yXj5)!;f>aNwzV&Ihm!{=0+Rkai1i8`9>N4UT>A*Ui2@;_*tD9x z#yhqmHjk=nsgFLD+Ncl%w-=w5cSGM9Rk?vPFJ(e3+tpFwpyQHZPoa;kACVtFM7iAn zTRjbYyWrtJGQ}qUGZJRr{@wIE`v=(6c~)Jy!K(~wmOGkyJ@|VEg-lWtxIY_=YcQ|C z`a*3NEx_l^RuAfpK1+noWI?vWRW4Teqh=jt>1AO0m@lXaR^bAK=+Ah-dC+G10AtB# z-zGh?LCcJurMMS!=PQma*UYyRxy!8{+1EwmbUoj%J1ogJnE6nyM#S`_@x!kU_ZXhq z-E`ORCh#UA*nMJ+cX;Bs!n9(toXI5lz~pgwf$-B{fzOI`%d-I zK!a~W(jarhCMq9gC6N(3m_hc3c94KVH5(Mo#6Q4uzAGc1gL8&7o?4Vwkk=1AViIus|na+MTez}@Ao zdzle;Cgt$`$gWca!3Pwo+RgONRFi|KKIQ8PaU;*Lh)brok`x@N6l0-4@i}(KvWpbjb>LkQ%B9nB;>(Cfy-!F z?o162C7_AbfEt%R3Ym;8dm|&{kgrC$l{(ykK6@g{D}uQSLH=xmc&SE|8#G1&`I#?D z6`sm-D~--pV|N075sykEhOLx`itYzrQtnp*ZH{d$TN@?#M4O~Yohri~5)V!xv8sS7#K19sx@+!k-`Qhne< z5^vcpf_HeH_<TbhP| zY$!lt5f>-tq<;w0%GRz?o~5VB&L#i{K)~Aqo+i0r_r<0XNqB43Z?kbfUzcqx>e;nY{$7YH=mjn-!O;>f65%-N9yFl-8+y0qE7@zTwJduS7N+C@ z_d~*HWd%D0!L%~NcyL_28`+qvtaTyvTg`Bm9>fhu4G7haXgZ(gtB~c*;S~eACnqN%I zlGrg$`%9w%$DBfsr3gnG^h?!tpMmmvyIFhets|!2XdR1YUAk_Z4`7du6PAl$kB3!=DA#s4$>M6`5^6(0dqx#p} zxc)JVcVXuG70Q*y5THG!FY=bQb06(6gMVm$1^)Jtb2B;)<5z3wJXgwQ{=gBl+PxXt`h==zX}GdyoTNHZsU}t z6}L3}hEIGb%PxXw#DhQW04A&41aySJeFYYafFvtRVaE58sIV-_MXH83_Gftx&D(#4 z?@77$>P~5$2{efeOA;AwAs@>j#N>n+u4jUI?E<2E>6_(|DVwq_!}c2x>ROy zXev~3nn0~HKSV%$fTnenm5@u#y)|P^V}nDEIp;%ofL5RQvq2KORyn3q<8*xoLGD2hj)EI?ik0*jh+T9x~Tk%FQZi zFNKX;n4ha^+(rRH9`Zg%%%Ql`_zmhnZ%(C1@}^vjQ1ibV;(3;$!LwxW>=&*3V`Bf`XU?UwGes{aWXdSrVf>xT@{eX;J)fZhb~_>Ab>oiNL&cFfg?*M zB4;{VudKw46)^y=eDfLZAL97L8K~yj)V!BvJ3*yM#W>9>n6eL;0=a-7L$VQ$LyUxm z(w5_UYgUA?O?@rUu`(C6yv%`yv$*u^UgT$(eE%tA&twV}M#_ib7^Mym%62l#a+s4P zG)No=5=Vw5WIJ6+3`rxGZJ|JK-Me2Be~LbXBNlwky2{sI|!R&Q_OYaY!A&b&EVjK_qsCvu+firFKIlz^nB) zeRka5*2OLGd#4r84f_CE!?b8hxMjfi_L8;>9pH8HOe*EZ@*LRXw_e=wBdV`vUHPCb zd7FwgKwWQ7Ffzi5TXi;Gid9qFp#%s)dik}O?-2stzvK2gMAJr%%meA5wbeeakHY4T zhdLpkzeOj)-TkiTG?+q~dL#HA@#g|V`Nw*=7Jb}JJzyUt-}437Mzyl0T!Z-36fjNW^7UTyH|ksnOC{^MRNI1PUQ#PYi!;Mq;x*JG;hwru*>s( zNZGw7oP(N{zCw;Axwqat$S57(5ZEHq3|jvI|9roI9?z$fN441^-Y*beC~=5Ah8 z&gG~?SHEU(Xb9vqrn+5dm+)4P1md3ZA$7C)M78D4L`Ju88x?1r*nFb{Ts8UrCcAy+ zKx>!mi4)Bj`^jAD#=i#YGdOWQ3bnh7|51Focbs7TI#|dZyI*a(W1oLuo#CpHw z|J2!~&}$lBw*x^TV*&3th!qY=$sq?h=%<{#ertA9yXQ^?F6A!w;D7LFAplDl zQQ!YYQ(t6EH{B>JW6`>P8N*`f8tUJawu%PbPKTy1mZ@J(B81Rwqh*e^`FxvfG zH|X}ovb>e@or`6cx4sQs;YanAY7BoHf2NxxDoyTtnNB(L(6E%y0a3r7BvHPHN}x&f z`Dm*5y3*3vGms~o|9=$S`y1=aJqDD8}N0*~gAL*uZWZ(DqAJ{K@ zUtjO%>+vM_c`8gjX>|KUMiK<4|Ba=6Yr=By1V!yFKde2I{?w$^OwqXN49Wl`EiG&r z9a0gP1MTzYx<3>hpSbEeSGC@`$fFLrZ#h(fG8O+&hBSd2#Sh!(U%s-zKnjX3>YsqA z<>ycP7MWh)6pl8lT)>%6Bsb($0Ow6qrPG;!FG|J;KuBLq^C<~7g-*JN(X73Qn*nLX zIj+2_7kSVUizbBRWCc^eR8L73r6fjP40eC!9t8J0?h*Sx!`MF%5tP`o1K%R@z84M^N8}YJ z4`q2wTCP(`mi@nUUt|#bcX95CH9f$yHx+ey^9Std=ph) zi2DQrrwkelurqbJj?j=0ye+?;xRBl-MqTC+kg6l5R@4-l$B1NKfvp*)!~TVdgZ42E zHJp0Up1F%L(Ut3UKst3`rRB-J|4vU{maimx7R-G6Hc@=<@50Ox_WR3mEBk3N98u>q zqspp#-^9r$O)FNO3J`D;N9XR11P4U>w&b}N-zE?XEjSZ~ZKcO7@S~~j%O+J2gzK)E zx~|OzLx-JhauS81g9PS!`NGF0UQiXgXr?X`#fYqT)e|r1=M`-u2MQCnJP>GL!(qCe zI!;YS`T!why^l9|uJLx5?TU{rnN60$`pes%?H@fjAUb62kuml(^xVh46P_LX9T|F# z>bmvO!EMhrzutJV(1-DaD6v;BOx<3hrJ|~&Xh;!_rRuOLb3D@Se%p1#w>iqiCW;^C za&uu*nVm#8Uga^&-ci29CJqw0hUs)Ddd=hHLy>ML-WWyL)h@igyoD%8Q zhg((Ux>1&bvZ$p1E%33y*`=hgYDlE#wT1h4ScgE;GMCZ?_uJMZy;DPs=E^C#?S=UJ zSkJ#I=OUJj_BXXPZ1c-OI@Udp9kMJW#k~vMzG$3AljwEsVYYe{#L?=|P01}vWM%Ao zi$7c@`%Ko%>mEqSv&!^j`YEYIL1s0vb(SWIBdfe^{ z7?U*L33L^F6NC_WsIf2Pb;<6721J)m6|AlD65NyrsIinI8zczR#(ah5iaV>(`SRHS zwS<__GVgICk3f3+8?D|W|>w;qTeK`E}WWGM@>&kp(|7kFNe-ER~n$psUX6ZYOemVWU5VVJl zJ`35ys@KKcaotD+V#TArtL~s|_$g&eo}}i4(b|WmD_n+^2ZLy(sd3Ssea!oZD<8*y zz2}}4pAzZdWRo=Nb*nUI*zQ(*PL$h7e9%bX=|r0fdI``R#t`Q=F^-R>zQ%Z7^UYas z6z6?GI?~Rf@3=Nc%@Mrx#Mi_1Ev!`-moz_{*rIyafyJ64CglS^%N$OFfJ?9AQiuhV z{tjkcNdPXzb>GlY*dHdA1|q%KJ9KqAt^nYNNBRlucnV9Z~WLF)=0!aRdh zvFT!5L@LclN0E4O*$`?dq}bOVjE|s~-)-oGw{j+}owUPY!?dC`d&Jm^PH5O&ZE0b~ zEnKJqyh6O{_`Mdj!Rp%(B7lvuKY(FLx;`Fa?8uF2p<#sx56=!WwyA4FaC+2cZv@2* zr2rA#Bf;8pz;<#qCQ2a@c7voqW)|nX2?Vp^BA;GqMaQtAsDMK*=KhU9f>ey&;$hTz zMFfxT98G3=$S<}uBG!jRIDUm6n{Ef$dvS(<#!$$VfCDuQA3~OIvRpPR#2S+9lC(U< z`&6*6e*L8w-CBB2VN{>_vrd9;{BqUL=gPqS^Y`#qD&U}<}NxluR*F)2k2(1U4`C?zlNmhYg~$u9@eQ=xgM zeFq(5V$n%T9{DC`yvmP@iIZtU*WVua%;c8EB=Rt)DJAq;dPN|vkF2kQIc{*rC0;p0 zx(T#+VJ6#JQy|8*Ky-B?xH6nbBucwrj6?<0@r}T!JFl4UOp{`8Tf|#FV18345h2r! znHAH+f4(e6_+KTIxy1Z7`S6+D^B+7p>c*vVl*N&%+Tpo8`kTJ z3a2O6^RhKKDGRwgi@S_lfg;PAFOBa9L2vLRK{2~ZuKTJ}PT7zt$6AjXZrO@nGjH;E zxTK_TM3S)bIQKegN5|n2HTwMABNG@G>DB;-@e*YNv*k~2jC{C}EXEn9uprDKFp8H4 zu?RmD8Bor-3973k+upAb$WuP&XFzm}@kO#w4S3C2&$I4Qe-S zj`F_jG~UsG#2|UsE}<4h(jjoHU?Te--6Cyq1uB?RlEmyYI?W$+uN|v0``v8*qP@hU z0LV8|rtXz;imRQn|B6$jP_DO^M3rV&a7a_wm2rbVYQge2;wDnaHiV-*8ylyZG7$F^ z(^>97B^boGT0G!f$E}Px0O^RGUqR|sLIFnxVuAuY4*FFFF7$O2*Y#U|)}Ho>))-!W z2~GY!dm!YS#K6Z`*1CAjpEi0#u-!x(SP(gtq& z%B`z0GDQ+yG`T7rHDShic-V5D*7Hva57|_rhr9HP`_1aW`0KOIrPD5*Y3O0zlo(z# z5n(g-l4or`RvMxe_WpO0OSWGM^#q-Bj+u$SHFfohESvi@4=^o!TSMZ<1~NBQgyH%J zWTP~gZNd=5@+C-87^Q?WfbrmS1%%KrgBCqg?=$HXTj_)t5=deh=Y7=lqX}#W5OKD8 zb{QPlI4zxqs^5JtS^IGFtH2tdMP&X{%9n&1Q@0@M{+sYyO*+jx$0F*8z{2P#EzzpI z6ImeY>UuGp#1eyr2G34z%lkU_>C&JZm&jA_) zeDH(W6=XMMP2V*-Bx*+iN=Uk1IdykKUWvPlp%h8gn7^7vIJF4Ml2vXN_wq{SZe&+I z*_?te?d&&&Tv{F!-_#OfiCD4Y3#R$x6yfxI>8S{J^hVGW;UsW4*2h+5<-Rs)%@{O= z?DGdI-t4r5b5DTb^;1SW_xx3{X*(Ai35niUALyHwm`6t&4@ok9tJZtbSIX6a zOoCi3_n*)1SZB#D8)z+4uu=JQCoEycBK3F@a0?% zzCneK$1ZI!es|)2_3xs6xhEMJDm=BCIU_}gREK{D)zZU0I-*#4n!{cw7A1%x;<@?; zmFPA&Jm)%4icpo}4+}w+Fd%Ia1JC2y>t4B!Xgrxkra1ExhV>`cLr?nGo5D2mcCKC@ zO>$xe@m<%tad-|7P644lS5o;Bn35g^P_Pj9L_$e!kPogeI#!ynQ|i)i%B6?o@@*~H zyN>~rnqE-_cB)O=C8l9wSTL9V9PRlW{97(IB}vVnt2->qZRH@STxHM$CP($t3Ti^8 zVTHfTV|*oM;@GS#teFsGI0h%?;!)o@=vvMSZK&bu5OcsvYyn%dgApBK%NB{%09V)n z!Vgi(B&xu=k}ZiVEUBd!cAHrTe>F~OP*So%1*Sew5%PjbUxKMK63da|7#Ar6r%8M{ zjOh>I_7{ir54yr7yP_sG^bfA?3AIj!uidf&1}?>18Mn$n>i>Mv8pRATt;GV^;~knM zyyyQpPeiX6$5P`tTmm2Duxs2*v+ilELSQblq)6P7f_Fbx#Nae$ocrtY;B0ltE)Y_* z0NWTh5YeK>ULDKRsAQ@R+{uy~0+yr9$ig1h|FtbDx?{(KPHy z@?0o7x+tMP*yzQ0>OAqvne{N*FlhC4o_@(U>B;ZX`fnTc?hl!`)oVx(198x^COlH` zW&@eZJQ$2XNJ*8zny$tJk^1$l9%qBNj;?u8}zlK*_ z?jByhnY>|4jR%O>0?@7RY9yeO3P6480ZQmqT^Fj6 zY|!S!7la&e;TWjbAFRJNHnK8!v^${E03MQjwS1s*Gz~UzyABz1rQEEg>Z!l_qW}7H zsD1=IgggO`sk^mOfqTq|<+p(FVUNx~cn17$i05^LY}JM~zET&zI^qu<=nnN8T8FU&sn{-_*~=c-+Im+>M7DNg4K*%4I>P!Z2cU8c=#Elv5ex;NgDG!2})a!y27Cab5U0w zMj4drO>;vonM9zjB*CwUEfR+@Va3KcT>PwZ{b=eS4vsh4x zCV^`b94rt%H|wYNF0C?dR1Ky|@(szv=b_|EEJh}L(2n_I&m*#UAj?0>cm(u9GMYPk zqMHZr6(+2IUuiW49&(Q!vTWp#?ohR0{0KriE+#%7P9F$KTU{*T97?9Fy1=Sv?KCu= z;R<)Dt)7eV3&Dh5v8uZg*&{I-65|)4_cyD+qNayeRd5|xB#cb{HGIG9k=4ksjkeh6 zK2SlbzD>*ER}!x;6z$=s-^_)FbW|DtEf4AQ^nN6Wdy;4$K=q z)62!S;;fd!kQe)jgU;|&Q0Aq zRqc3hM6e=Mt0V4AiN-dLo3&ZS_o{o7hucs*o7o+atJW?58=TfVZ1D!0eu660CNJOg z?DRBv&#zGGkQz5Hrp-wHPT?X1m~_jJ>avq~U+(qoV5=b(d_+Q75aUbKB#r|#@dRX{ z2pJ_d?uh6cN$x=1p~BRJ3H8>oavEFO+AE1(6VY2BqBuFf+E%_xWMLU*sTw`on|sFy z6gdp4=vjJ4y$3rg9A3Y7$nj zxjawhoO9UW=o+5K9Udu+`*lL|Z(RgB?tx#qql zF(R&QuNuNpS@f$(46YG~#RKk$S2+|N1Rf>kz#b2+UYgOkG;N>dHQ~ReW5rgr5=&)8 zUP~1fwe708)gNftw&!_7|AdSCRgW8vq?lC5UzHpGDwjJ4V|N}od(adk3R)^L*0HvE zkdoHSOBl64B{HOJizYBwvt{MofZ`zAbOYN8DRrUmf!sfyu)GK|Ct{TxdgHp(m1N5+;Wv= zJ6PG3dJ+Pp=g&~e?4+-<(g*o3tLsj6JksY zx$Fywz!(o~z^x68YO5Y?iKlc-d#0>)CKJhzP^Gwj?qmO`KXkC`u;@@{qt2cw(>>9u z_KqG^NwUkAJ~sZDE8g@0{IR0aIGLks93RgLz1a&8dZ02#XGAiGm@#sl8A7f+iC4n5 znn^I!BQB1?t25##I*A2Hf*~Hf9Du{88Zm8}83mW_5*N)>kwbQ|Yo?<%HgZLytF2<; z!r=aMxdZwi+XtzMxL)|cgzj121B=3)yMa^IDBX@JY&RchnN8Wb8kU+ zej=1fJjRgkdT797we$QBZ(9>(z~($DZ+q?2F12ouAN_spQ={hEWw04*^{Mk$?dgrT`Ccxjmo_x>8i#9M$27*oHYIk!GiuKZ^`E1Qtdg6X{>0fesYa=s{w(=eyCrUDv%+PHNzzhYESJ`L_y4 z715lhpI*5CHSxe9*BS|1I49wiVol@QRSlCN2aFu=j*R{H$K7KARphZfb297+TFhYO zmrF&1hiK^y;+`o(tK}Dg#FS<=2Bnu_Cu05$zH5VwH1kZm z+aOtxu`JnEGSv3J@^+;Vtak0#Gu4mQ`2aPzw>^RoQ^P77|7ABOUL*8f^4Fz=#Y`g1 z;oXFd+-xyBrPRl0PjjgmutQ;hNuU3C_3v8I)F~j(@%ifbx9K7SIuNxy_3^@g$ib!m zwj1J?lPCMCeMd5EP{gyxt2zt$$6x!oJuSjl4Q@ETsb*=~1Xgaw2Q|rz&O&(?oew|L z^GXaL1)W8N{fbF$4(C_8`PS|yX{Kv;#U3OEE-3m5ct%a|A+C*CQ26SEF&M>868rYl zAB$)Q^JV-mZyVDVm$sV4yX?_{86J*K7V8X_!VU*PmJS?^$KM!i+Ma7>PdXE`wDn-k z;`Qmet+h#aY$I}(_7gYrxH7n-L6U7_cu6ecQ23%e(aVL(?(rGL;rp3*Sr9}cq{gvG9*?{rYi^}J0L0d<4s z2EN^Q*M2mwR81k>JMt!r4LUn*tCmV>xc)g=n7Y{Vx#;yr^LQ4dntfxasf<)Rky1H! z;sUt5BKzHFb;viB#s3O(_g^|-sb6~I&lel1EeB``ioMrNPwbxhG-nmr*BdYcg2+5? zw9~7X3$Qk*tADa=@YR>wxzMMR?S1bHmB9M-_KYVbM+&E3h1Rb8)~l!Av#^;CGF~>YI4T!est7q7=a8(5{v| z)FBdkaF`y26jva?BupR72++a^S{-sTpHNlZtzY)Cj*jO~1evXMymWjs7_XPdQHS|R zTL7B%VFr;C`0lnt95`RhyHEXjz)uA}YN}bcm%@&=t(D}zJ~n#SBk5!SZi*KX7q{nI zD4htntwkUyHUl{H!Y(5|ta@&x6M2vp#2o*5u}L2Bj>~fp-e8BuSWD|JY*8YYYl8@# z#L{=kU#&O$0yX6-@Y{)jrle*tezuKzH!XLRCsf%ifXO;vC%>Jf^@55LpIPlkZ%pU=Gfq9l~%=hMEuZ%|U&bj|t z8-lpDHiqbErlXNQ?3_Jro)DxDd2OwlfU|;-CAHbY?9u?Eg^%7mtu*fP4RNR*LkE$txH#Wbl!#Tf zF6^!SXQyChavsjbqq$;q;*sm;VX0vy4H?_H#^9#5GVPnjFiW(Flst)9;hSP4LUW_m z@=+1g8Sqx-n0cw#C^UaREp@1MaBfdPh8ElZW zN`jkGz-cpA^f=SS(y6v2XcL#~(Q&!YP5s2&jUTpDD!iA!16aOfzgwaQMF}F_Fpj^U zMC*f3VMy16c01Kg{b*6>fL6kqro-7i8VZ9Uw~SK3BPo4mwZuAi7dm=7lM7>-3P4{u zxb0z(-0jM%-_6wS>SvLgrj@0GuzR82Ih9sVjiUm0aEHX%cqI8U#qRsGyL-K%WxZAw z<~CjTVTU{QWG0LTQV*=Zyybov9-gz%Y|_41>ea45hBMzId^#m-?)^*fM`6zEeIEoi z8R7-OuPwC1V&>;mY`mkb#ohT^?KwFb{`?g2L|p=NOR-aY>LVNdG$M7CP|m|Oo44zI z5l*7{%B@39#&xIxuN#JLNwOx{VKL02orAEP76V>})UMtgcYhHIq+@w@x$S*tfHD1z z&4aF?jU~)V4$@{wO>g0Y$*dyEAyL2e=ffAy`)Y{3ogA9?ImDp~B^W%4CgHJ7qCkNO4`Z%u(t(bxQCZNyzgL!G9d8O|%r8ml}6~rdPIKuK2U_ zhud?Vb>Sa8@|A96&+f^8_NmNR|8=6mzctpf1tJ?65jN6F&wF&7p)Z!HEQwwlcKXmD zI5zPizWIE%wJ(^!JPLEE1KnNHDZSNCEg7Am;UYO|*qB4T-`MVt)TpNe& z0fL5t5OIbGzh><8XBeAP&lkW2!#MNXX)FhWDW$;=6`{-C=oa+ojIMr*7{#kZ)z+jaE$VhnPLI4UI1r+cg!ot{Rh*1-`x*@h1KhhLjFLt zq2Up2CX-@Raugz!hTfppSwB}|Qgl!cC9(sQu}cR5CM%2JpBg37S0(iR0IgFZ!<5M9 zoSaG>ECp>afA=n_w2wB3TU4JM0i}yCp>uAf&*-ehvbOTULxV*bNWOIrNhg(p0++KwbKgl;L~%ukkP;LgS$7RQd~=y@$nUxftcN?T+&F_>2bDqxWu_B{7bRnz{n$9mv=XgP%Dc*DnOpi zK^6eoF_^GrQ%Lb=>$7v#=Gg{`rAu-mf^5%(aX|1iP>vr6uC(R6dlP+-PFPeEh+4wJ zX#$K}M9*+wErpVx$<_Mk63SCwz)}B=)guS&!eYU32Ngb2sX_Ke} zT#M~+TaOe|J{Q^VY8rZnXwa14_A$XD5^3b=;3TXda>)=n@g@kf#Cc6E|2k86r2uS< znj+;)ns1ph=@J5fFkyNCDBncBH1XLhA*JYnC(X~-lkXdB_FOy5#K7DzPBbJAY>c5} zAd#3HkdX@*Zz3d!L1BZh5e*=el9OF2_~g`ww?7Sy7|hK;?wD`eG#J#Eb9Onfpl>s* zI=G#n6zsY1&%xnaxvAs0`r9dI-$6OL`~;ecirgf+ja%Dcx#l!lsoP3%I6EKS7w3XU zT{PG}Xj?Rf`}Qt>(Dn|A9ySbuG277IS$zhlQ}^qXsso5PF?6CDRT++odxPV3q;|ET zw~$~SAh_EcEKA9IbO?;oS(9|uG>|AnIbfqq%my8DyAGBrMlY(DrixKY z&^D`0hB@N~oc{@H`;KhT!`c&+Z3toO?7N2Cl2$9*?LRcaoQNe)2agOF<>#lZczUrf zHKOfh0wO_~;j|5Ie+k~TaytK_Np`XFC8gN?e&r6 zy|>Y{NoAPaXv&{ASQJaLl_XyMzi_%VA&{$qA-PDHH| z3QH3&t!?I|4)UC~A^lZwe=)>Y=MhJPznsTh5brFvHDI@)hZDAkBH|7!ksq=l2D&g) z&XEuSQrCgGk_zuq1&L%Kx(cy>FDP!bL0(D<{Q{MB3&;=dh(O2h6P=Z&thA9P0j(YDlz)wnyv zTC53N^S+-rXZVSZt<`A*6f>z5dz)OsB#PCE8{*k!Yp|Rv#leeC3 zAKG|5l#cP6BskFs@8yEeUamRf_5CTOdwU3Vx6##Yzx~pD+iZ_aiMglWTaTa4ywa9h z$x+RyG9t&3ZmOzPN?77AWj!a%3A%UAuX7z@YsBEbN~OV!{zfJjlyc;BdTLI6w|#$0 z_%>}@=CFY9GzPwajUt10d`9m~K(^VW`OoOubKLtgO6#uJ59EyD#Jb!Y9QZri+~oAj zUS|u$s=s3d12HdfJETU4k z_=^WOMdhT<-S}M(V%4D;cXUWrO&nT6oTIJefRC9s5`L@-XEz$cfRhs?VSp!;LenlE zlSQzt0^C(CB-=}Ea9|@EaGAVg6wETN)*oJdW75b;h(9@LL==*Bre+Nbh}$6g1jvv< zC%R3dawQH5ZfQW|^ZK_W)}&Fc0Lr5qFY2%fL&deiD-jAjgiA*4x>)CrGkO5Xw{o(ui3sVMuYJ*9B_{=QfB^=5Bx{;xSvmC;;oaqOB;V7if`-nSc4~AZKgq>h+tJ%;X~KIS4AuPxc0o;tj~ps+Px}X`_Xk2_S1hHm@tQ zZ-9b5Xpmh>I86zQART%kz=Vk*YdN{&d06{0*4l5p*YPX2HixwC!F{f+f2B0!vE%=~ zZg}>x-);eNWKZ;0-pCf{lJ2OGP5aUB`k)t-!RTf`bTe<*Y;)g>>vuSL@U<%e_&aSI zkqyS1&vvjS9}Jlkt)qEx6~k@z$h+p<9bhf z3>ev@Gi+#G?+(Jva{h6F-p?!gB8YbK z+xyr3;R?_EnS~&Urc@bP_Rja$Em=4e=7$WvO`|Q29($c#eX?-f;_qceKS!FDqOOf3wWP;bm!a&7Waboq_z^7S>)TVUtGb*l{fdXRjY(%}-wr>tJV*~} ztj_%N$CAgFBgvFvzy6Fza<9g;-xeF$*!>6gLk~Ta#QZG zhI6GrJ^ULL&*5~hN0isYf{AE{-3=+X8Cw%I8dMfl8txeDJC1c6Ar{?suJ)a~r)ReM zc9ocN7VqC-_}%ar4y4D=t|Zk8fDCEjb8rbI*`E%>J1%_fKa#JlftcrNXJtpNvTg%g zJn=F(8HjIbk<<}>>*n16t6-|12B%r`roRjtq+n_QwSK{~4{1Gef?^X(CGq@*gHLN6qXKIUjWO(w8z@UF z(Jai=Q3Mp)tr7uvBD*rX7|CWF93m|j)WG0NdcGW>tWs!I`amL+#iao8I9Mk&k5hVh zpGeKctji}loAN66Z0R_$csb0vEnrfDOvW)hZu9!jnp!H4MIg;T-WY-7^QSL;2GrCC zvOdqOv9~u?0z*_{l2R+#upg+^V#tDLztQTImx688?3@N>y~uJ@)U6n^Np08k;2n&=7gR%sW!#%Eb6K8 z-RMf4@Z!I2m6BT~k=jUTU2-nWHAe5U9zl*$Uhg;9oqr0s3uMm)=2w5HRt@yC4`PE| z;Gty?2shuBFnT$-#A(j)fYu`fmtaI%2JiAB*x2P;6fsX3bQb7PTipo88=Z+FcL|X8 zSwcg7USFV5jb|;e*S=ZaXU1WvynjPunJUtF>Rge%d=^R>5+jY_hs;vBOPDpJh=A`! zzO0Xld%$Wk=Q5nwOT#)UC1&Fsq+5>|D8XGpXwxD5ZV0R4JH!x*6694W@s0sWsk>;k zKFO2TKmI*M!2Jp|b&=HQ^}f157&rVcS`Mx(Lk50Dll!=+H_WcnfC;`OK8!g`EBh^_ zM_h916Fp9!xQhHnS?a3gppdy_;%!CgX~QNTABBuDC`SDJZA&?bDzQh<%Pxf2W;LM( z-58U|cxtmbFk&)m0hRotlp6ZYYwT(z<;e{;q&L4-*e|4=SoK_E^v@oJ+oSs@-%%$i zM=2URz66Y=N(@KF1`0?}`Dzgt&gp;Q~V&D3?w_PZZzq^}-;a9gf;sZUG@3lo7BDmNM|X^a!qcF@G~ zn~rCmtdn~t$u9;F58-Nc*7xhBlne6*Xg#;fJnLv{IhX(5)EKfdW7^2vd`wgIKC>io z9!a!2CU*zkqtbzm6|ooBAq9ovG|5dUq=A5b>CAiAQZsWnrZNDw@AV z9GWHk8i5#1`E@H^l1)sMUTuozo3#&1Fmi! z{f>*-=%j^4VkcAUmA#_8kX>Z7fe2>AxR)Kcn@geE6??QeK*$1M?kfOeZ*rEeAwt`p z+YUJAk6}MXOG(k?JX(+G1BU_m-rYSxsKqa04A5+rP^UTjh*WlN&<>Z z_tV^^hP$w?CKO?G{*&`uShGX;h8(w34}va_bOt(zfX=lcPKKwpNbe%!W?b+Ky5UqL zJvKzk2&#!No6$LQD<^3cb+Z=c!Xfvb@-#&iv@rZviO;+aebohw@w54C|9mUr$_CfW zSc^Lky36Qi{z?K?m84jK5_;x@;L>HHCT)^&)#n$<*#4o*0p`1L;WU_P>FIE&K~@+@ z3^Ho#gkpL?gzef6?SI+Yn{Cdn2-L7X;`U7;WLkg}c0qTA+pHnKtAE`8W8@|0 zyuqXA&s?g-;C+iwL#O=)w%>MD0(Wxq^&XiWkzTPWS>Km+eZJINQL}sfLeVW**nr)l zdxiQC7b%-x;c=m{B3@gEXFa-G&_-3p3^kc`)$#ZGfy;ysMv1`YsNHr+*|D2bCJ!@8 zN=q)4cwgqgL}V_hX%@MzS8Dc<0yk)4m8C57ne6-g)p3z1T>`KP`n-NdH5;?0M>=xx zo}-xuz0_(V#3PeavB9cnUvCRNy&$|VGc5y((!YjpW9%4Vj* zGZiw+Ewcn)P9xe`b(G}_Q=l`^S+&t=R@_Do&KAG`TXe4g8F(K?QxqDe zg;&=kB`MbOLGU}?p6o*i8&4EH9--&6P?;(*fSNiJdCr|gr&&T10tuj_>t_j0e5ey` zCr!*wBf6D?;7(fjdI8Ky1aaYIR547hLhWZ^+jSKy1gMg)gm?kiMS&ig#X)wW{f}VMUgr(z zb{DP415%rMJ#fSd@K0G*QU~8U8upq9^`a4)C5{p6_MB$nMnyiSS=cTmu1|pK>_l{l zFfH26U9*^Ge%igSgbNPfr2@1qXZhZ=y>&zgjtIZN$2GGsyF+pPv&f~&Rh&8GA&_0Q zw%|Vsyy^#tE(Ws%@FW&R{DokgP02SjJMzVFhlDIvdwSBg00L|jKZv9zCaN|fYaEQ| zlxL?Y=_+In$XF|7?-C$FL2h9i1jB-9mTUuJ)8lA6}3gzLe3P5F4(^MVI7g=DsGwUOl)&jUilmKyjnI`U>FqHHIEyXqiKcyMHnu<{zX zB_n*_EPJ&NYP}9wM2znA^}bMpy(LEdszGOoVDVZ+dnfj&7?r9*ZM*Ni<0tN(2-gnq z5Pa()opse|ytEXjqi>pZMDJn2$O`0t$B=(2u}5{4l_1orH0)tP>_!pH>^ouAu9%Bj z^itxcGfMmuE*kKRO0?)kUF`ZFm~PPlt34?a0eXc196O$_zo_&NOF=EQVerPW7iI|? zS&)r1h>0K`Sq7~Zqs1(=hY5r}3j)Z%l@DNW^~N+7YL}RuNfiA2NtjA6w25{0G;@s4 zfSHTR*7KoWT6q0KxnA{0WnM^S9bzvZ$>+c#D6Vo3EgqtD#>s&Ss|55w_noLCcCPJ@jkVUfufZAL= zR1~Uf{r!`WFdqi!ZV?mv4{Bvzovm}%Al97_lZn=FosoVPvYaU3s7hl*=9w(yk2Mb7 zBE%C@n3n+Nc%*H=ug8if@`kmMF)c~@%})D|#uc4J7jJzNyyEtnAGhRbvxKevEv4lW zFS%ea3|P%H_~}N2b_5L-R+BOuAnQ_R$Ki*H~;=;Vra9`w+d=v!(kx z!T;7`hefDk3iJ^ULZFH~%EE$nqASI)%1*36j2g;A9aZdp)1LZ5iG>v7UM*D??nd8W zVV^20Eckiv!V%jJVXIfbv&5)6Vn7|ouS5g`#JFyS-*o}DPUkc6i||;0Rm>u<(Hcuc z`2i8Qj{CS45Gt+{?8k!G5Ftjh$XX5#K%B*jWpONYm&%s!fiBU(H>w~;M0li44V~}5 zbR6wVgXoEA4n(BBjbVRe^OB=K0wX&!>)wG6kiyq+JZ&GlIEkS7v98@lNNW*zvj{Gh zMt=T^*v5#Ex{Dkx1t!oC3_hf}0zS~@$kD+*8NsIBf_d6?$31ek#z8j=miT=ObGnZr zN_Z!)z+Mf)TT|_fTTB#XKaKr3o6Y8W8e}H^ctO?)?^F{FLZ#gG(!%W&XW{P=N;?`BrkaZ7`8LIHvpzvlc zQ_tcYO$!4w&=T0+4t<#}T;Zqxa{SVhiZwZ9x-9!^*UP>m!hXVVbVtigc2?Ky^t$YJ z*`NANolul4tXabO@86#IYuF+k5@dlxM0$_+vwb)St2-wTgAn7{s36YCBA>i?mhy}! z&n_RJ`noKLmDQ%38bv4dvsNz0E9ET6bpigaZ&lGzOd|(=SOhB+&`Ut5=~(m$0s5g1 zdrN@5&c{dFW8Z%ntOKF%DgDVFINHCMqy*X%Lr9K2c!LVkz_$$@Up488KA{>KEs3WwTClaawXF>j04~=5X=2=lkU48% zFVYa08qfM)?v8cv0xfc#NC3FoYr3mWcIRmwIpFR2;?hAs_sN5@ z@=he#9-S*Df1H86g_z#-*uI1v?5uMBQM}~iK~HH)K(fg6oKd?I+f(N5d5(u%r$8)W z>_3`;3}wlL!yBV#CDn#T=b9)7C(mp)k@<+ACnEZG>X4AVQANb^F;;XF$U??P9#&Yt zT?#ugOAv6Zi+>Utbtj z!~>6#DW|Iy&{9Y_4cYeKdP9P$z69AM zyI$QARJTj>&4x*3ZTFl_uoJlqL13z7_Qlv+E6YTJY;P7j7)Ux=9e~OWpq=;p7 zo+lsTG!y=CF05{^U0)nAtIH9)fB>M>8D9B50TO=%G4kzVO0(&oo!C{k`tpAF2l->e zIB=JDyTgE)RCMLx&WcI}W=I8`ba3c+m`w1**3cl z)21shggK8l{w zAkDkeRyAuGKl2o1CG^1tj0q7E2SRo4uIW1OfBEM!iB`VoTry)`?fR$L0m@rr{Vg+|D)*4|B_7KHq5?>Y;K?? z;EHRwWNspZROOuzU5}q1Qi*MN~05yVG8cAsxfMNB_EbanlKJ#i2c| zCRV(0Cy5!E?nw=`X{dj*!2CQnYZDm3HjQeV-E ziLkrsOnA!8CDI7iO89NOt~Bh~4vQ#ze0YNuqCV?*ik|(pufDcQe#kwzGMigrwD7p(m0MlMzdxfAJW1(Md}w1O;CPWs{S%D_TDp>d3#iV0c!o;GS8_5(1BptUXtt6^wz zda*v&*wG%dt3cpdOEDm~$~z27MR@pWGwRO`GD7RBR-a`UJv#Dz=avmi#Tj-Urvd*U zu?e`L3L_drVPqG_Rv7tZ$#_!AwNI|)1pTT2D|Yi+<|8MXzUsi&G{r+(e7?5S8hN}S zZY?L7SAdOfa~lOey0ruTCjWMg_ykE6(=gB7E^{&}W-u`KE0?;p!@-{6cD!$U2n;bEdZg&s6>M_w#6GX?HbDA#_|@mt$;{d-&(nv% zrr8NGKlo4m8d*mv%2&b3K`>BxUgl5W+6|_HdxrFA{#0E6amA^1dl+?=8DDt5zh=9~ zw5+-`$fv)CD&yKWCb4g1sgv}pOvh#nsny|A>E1ACb5L!Ls4{6_*U^L9BeJs8DYc~4 zGrOg?r1&t)E-%w<`_I2=iAEzGnxfnK9Gep3&Ksb&`|;jQacE#?W8CWPffKnA)bP!5 zp0_0=?GaD!iR6g$QsTCV+liH>mc|f@4gUPP7@^5FV7;x4unN)RLr=? zNuKZ)ph)Vk(IIm+u(7^a$%IBgb+@&ZIH5tf;|$31u0I zh+QyBI5Ijc`ls4H@7wfH_5u)-rSRJTx%cxDqb&1AE++7#DB}*_y^X6tGFpHJ)p+a6 zc>y+dL50C=HP@R0nCW-lJ|=m+A_kW$AQt5ec>02X_Xz-rjRdR58h{wS0d1<;g1mo# zM7q^iX2BV{|8)U^N@LKR*~ZVckFTCZ*6f~|#60}EfVIv58riyn&1W;NPX9jb5~pi6 zVYIfHZ#@^F=Rhpz&KJWw|3OVof)CzoJax+1b!&**U0hi)OtfP^EG`FxI(^&c|H-A5 zIkI&Y1C(*REwf`m1d}Zw<2!{GSz3mbj4SkA5uuOeIFY7Efrd*t{9~&IdZ)s8SLaZq zdJfm%djcLYpfGmy!h1zD!PitHqI!%Z9;*cvX|vOWGofJ)y@jaAnA^B32b$LQ)^CUb z=x6@-rcpvg8)CPn9VX|LBjAbxc zFbwlVP2~+%==Ou_z?Zh`Kz=JalLU(FoB>rEQk)VC`O9}WSdnL-))rx|iPkSs%b4`} z=l3ZPkLrX#{}m=D=Y!YLRwlxlAy|WR0=sEd2xqzK+D)#=w->e+>VM~MI$h$Lri2!^ z2+g|r4c>?@$cCUOWZY%<`|ouiDU#(e~bM6tkD6p=kbg-Bupk(NgaY;?{Y zL1<dBIpCM%tz3v*ZGo{#N|U0RKJuxy zKEb!2c~)QuNmB~Y!6cALR>C9a{kjnE%o$U~+^B2B*Se2p@5uL-;oiNf>h$Ui!iXQt zvv;~YaG(Nex4<&$z#(E@Ok-+kP`8C82K3|DbYCKR72rzO2S&B zyHCUOiB>^whP#dB9lO*2$Q8P&;QJ1P_be=6$%PQ^r8`4#{{G8N+m+z{lm+Z>bC*B5 zp`E8l>Yp<0aB@QvtOzh1IJi6Cor3li3v+eFv9iy4;yrXHPt+%<@doQ6=mgZee4Y~2{(xcWYq|Z(i|3>p zaduzna9J}Cn{aZN@@|8~dEg{CPBWaP52ny9=9O#9YeKDARl=LHEDX)S>&)U(qB!0o zjiIvg@A=@UStdBCr@$&GDd1p73-0t;*30Lz%Aon}22g8Q-Qn>=F8wU4zWhJD3*(X7 zX9X5dv|`_e>9fCor;%>@fe0~49YPyBi^##9w4NknB**rA*&xI=Vgc&h4?HrCfObgh ztM-an@Bn_;Mo-WGoz8wsZdo3u%?4Fx&p$iYl0Q<}J6#zV10qoQH4vMHGT+fA(|*}f zh~MaWTG%wElVNIYswiXj1ZMB#0AaZriAjzeW&&hczN1^yMigk9O`na}X% z05Kfk>Pde?FVT)K#3r@713JTrV#t7~G*aZ_hccrJH}r_yLH0C0ID{|4iA5eVfuRp* zrU9SmqmVRP_P>G-(?Xs2}mQ_1@eW2AO=N?KI$zb(?JxR zon4Qhv6XbgBD-a42F8I6aGFM`AQpnt#CN}k#F8M0y;043+T8{dE;)~hUO zEdK%Xz&@~D#Ur=--fOQLN+d(FYT9{5!Sr=**lvE zWhlkg2mxNnhb#I2@L(Cmk_4s8#(a582_&vn9Bd_uz(L3wu)kktuue$w0|(}#DLp^d zAxVz?6+h=tixnNEgPquiwY=M|OLyFsT-weX5=tDR{(oRjh+dnbs3rON650@Z3Zj2gRyl)?o3@D@_XypZ(2v;YKrQ$R-NBC1>284fE%VW@ z0tg)fx&O%sA_V?BSpBunh6SusAyG0BSqX5|3}GXIKE=neGO$~@;3cu@EZu0=5yvZ< zv^CE6iWt~1Q_z? zKR-H^L;*)oz+SkGIE64p4Q9zfNs$KYk=`qBE@EpxY^w~$%K?wuvF)||APV6L?{cXc ze1Ij!_>0*xs5TR5-y_~c7vna--Xm>1J;lZvpszYGVgYQ=ZK5|yb~7NM<)@v0jEtc} zqKq0h03q9Q1`-EF$wXK-u{X_t=fVG4pCQdg+@={IwQ_!`3_vf2ZsSCq8ESk@glb#F zhUXbigErm0?cVQ}k2KUng$_jU21T5v;WX?!b++z8|VGf94bDRYdN!-QjLma4%o#{0LtaTWXTo@A^uWojjiY{s&ask2%ra z{UJ91_ui_16iqr{IA-79VJ@gJ2JYh97aiDs(PaZHrssMsuo@%hduT;IN`T=gI`{YW zqA&%*)v))7R2FDlQ>}{tVGGGoh=@*zb>Z z%$Az8Z)Jjo>M)HsVnLAh_tnXK18$0V%R(+qd<@ zLyF6O*h_$#EKG&E*&@L2C-&=(zLV)oTu|T&0JVI4{vUx&OMq*!z=rXYm$JG3WM$gN z>NG*^;)_bOA(~b0xIFbF(ejB=KDw*t&*m>ch3=;0!hJWbd0!RS=4PzWIr{;pri^HO z=6|C8XUEUdfOV~+u;Lp7vKrU9>uZXy3N^1C)XnK$>+5gd+>pQ1H1da&xYk53VSqs& z%5P(Mb>^iY8;B3cQ=~mnU1S$r2;f}lvbYqWmy~KHU?isAK^!Z0vR8xS%L8Tiz=J0x zcBdt3o}?5&NSDF($zZ#*kSw;7OFus-QfeOs;~@wSww?OrZ2XN-N%wbn7^9)0A<#Kg zdbCeW?GYd8b#fuDabZuf4Ha^}*!2c14`33emSp!g)tENM_w#8j5ChITu{!0t1jMO!X2X}QkG z6`HAqRs+m;fUwvXMnG{FlVKTEEHs+~GyWJEND(-$l$im9sY$^4OQ7{K3z}}UoZtPQ zi^!u#a4G-a4+fekNAQ8J2Okv)hXlfv(2LbNkxxI8HXvf^Sf=dIsHXSWzRhNS0@v39 z3kK`&(H4t2e(m`OpNl}NuC?+QQJ=Ta%=#=@12Cgd+i7uoGMTHj3>ZXhdi zKRC2_AmTposLyG)NpD$N(OL$;+)o%CN%`uZmcWU0|FWUpJ}p5l4$TKG$-qz5<-gGF zvH1ce{^gxwly;#C>r$Tfzw*a&)bYUV^Ev)P&S2X$5?0pA>hMFimA}-YPRP1ViFNB4 zwI}KwXAvg{QU>!5w_0jG`T>w-k6ve;|1nLG7$75Ex>Nmj2WZKx%0ee-I=|U;4vBxj zZ+grBJxkcQV07s)s)JEyfHB^*tr#o-ic4=&{5C%s5?0|(K077wbOFn#>+j`U{0X7A zOF3M}-P@A9O?Z1saPk>K1VCxuVJ?x3yZrYdgKH-Hubw$;~D{_)y2`7P_ehh5DPb!#t!{pl8a&O3q?)?Bxrvt;5^e*pScA@Tdp{dohj zZweA3yA&HK@eY2KqJ?NZ8+PE}1$N$4l3);w!$^SGdqFn0r0Hq8X16 z+6`uQpMqk6zwD%VZT$_hX)wZ>cxA(FNuNs*_As=v^7PjmqP1K>$Q&eweuk$Jpz_7_ zy)cJI=X2*I8ylg{3_jcdgqA@!;S<&Q$7D14f`U71^nOpYi z_y0A_j5eXY?)xbgHzR6HH-D8M{(v>M3^=ls&m5L)B1`pi`6;9i_7?S<{n7?yAmeaH zuiz5K;$|4CiX|?N#Al6#I8hi7WCGz{Yyc}E-!P;1R5|P`Ssu(_mq%6Ge9Kn|7XL(> za{B4FL9?J53Z-~qS*8eun+7$m*u{5@RM~h7_q0;QRj0$ZMX$IH+t;3Uhk18LE?Pik z4$1fT?D|@KzqNXE#G^sR_(U~^oDFCdH2s66wEo!wWEI~fZP+>c#^!q+xJKvWS4@BY z$@uh7DYN-|Z#2XWH&Q<>P3IgpnsnWl|J>8$ufWP%hUUJr9lTs$?N<~(qWW+)rrnE7 zL!Sl?eLC*XygyOk9xAnO*fS)vm(PE|(hUA~fSGvDWu)s#+BlY%gbp**D1t8l$Db3uFqa~u6JdaXX6btmNFt%u0&6LB9N z(9X6eR9aUS77W`|u6U0T1ABaXQND)7Dts#)9||L(^~Xn16d&G3oG-egfl<_nhlFlJ zC;VaV%DygHgYK$_kzH57BdC<>)L|qsCtrwi$pL_H>(y6T#_L{a!YzFJaAD@__wYh- zuCu83#`-<=W9HiiPD)Adv+E@$`oTMJ^1HTr$&Hs&Y!A~->n;h=Aur?t*!muJ=nj2} zOibJ*SPoXQCZA9%VCxom(p%1&1&HNk=d1`z-RrK!#Ki}qGb^Epxgn0-y^zDW%M-pYOM;E&#Pp_05Btj&%Oj~ZjiO0 z7HA!aHz6`cg00tyBwGole88VdPz=C=ft)Kg^^6oC zIa(p{#F5dE08b<%W+>qt0)jZLBn39{kb13(klO{M8GKHq@j|QR2H;r+5Vdno6k7BO zzo8@+>zE?8IZY=7$ftLt25|T4B3QmO3ugzR;C>Vc#mDeFYL>}y zf8wFnsMbYTF;$v zuLXfc8lxWV41~i%i5blbv{ych%;$sJyHuFNv!Uk40MN1~<+_x}J0X4tn!dMOMu+Ga zupk|n5?PPz{rxPd$PNFpPLGmt$DrB(}(3+Jjgo6$ZY5z>BPDz zFrh5N{v;pZ?tmDwo{^iFt|(97H>H|oFoZTSDwMAV01d!hN_5N$IuHm(6y;0S2TY?o zl=mllCLLqzK*D_bs9AaD89sD8rh&_j0 zk=s6F*4bj}P3N57#LFO*-GRD*sCU=93D%|bvyew{E#=?kV1vhXOE+C&p^e5gw~K7j z9m^dIg;ZhjuoYwx8>CZE6vod9$7Q`ngG#uER%Iflz`eOVCvSu!JbkzR;@KDRcKXXR zdw1%Z*UWuHr7bE$a%Y6IMUsJiM3MDH{;4FFf*VEiD)TnRb22v!u~}_llCBY0tc0$k zQ9RfNWs>|Y1d+1x9_>K~ljtfmjhlyy<{FkvDs+ZUWiyfw#LX#eSqqicr(`3PS&0F( z2Q+c{a>iB1#E{i@xs0>2j{sE#f_Ja@tDgaE$2dcb0(?Aw7A%(*!;rcO}X z^KgQgWIOIevw*g!VoZv;5^~c=$c8z=cF;$xLu2E*YA} zF}+P0f%#rX@(|#{!-G9|(0Hg7&cN{_Nk|fx{6NtRi;_Io?XQAQFkbRuK?oqEq$kBm z!S@gxRA9~$v@bi0MB~ro-mZo}R})GoF2~*;@~Dk8&utL>!CfEM(~5ilX>G6M1#ba0 z`157X@Bz;WSg`qi!n=+WW}QYbdXFmP-4>C@GH`m`@?RlgJb7se3yk?%M&CQj-kv5z zUwA$ue>zba#NnDe(OG+Czyr6BtUh>&8+V%0eT$t{S)GX-ZQpg#sP^=Yvqf<)!8k=1 z+bGoH#G87mjm&5VM~PGDd%`@XlHM(aW`ME9eCTC8ddD315Ve0@A9b>#FQemPndR6i zHOpy5VE5uSjV^YL86tC{S9Qwnh_&tW@q-A+e^A`jI>0%B_K8>F{%ktsKFZp2$UMUNzZcW-2h9x$MO*p*L$>Zo8Gza8kTC+QLI89*eEneqc9Wsej$(Vpp-lkeG!d6CZBaBf%6A%>?0mOCy z4Yjdk9T0z*fouo%sv}6L&_63Q*QUqJHGKGNeN^>W{O{tFr4x8AAD$*i(@2hZj+(n| zHy&Z2!>Z#-82+*G@QERh;y5o#Ihih|uZVomZH)`8a(-=C%`+$Z4=%W=GnZQFVF=e3 zn6;6nG#n@-8u9U;^bM=S4ir%*bvDs+#6fLp+iq!x6ME!7_%~??FJ^gAfE1t9^X{oM zfDoFb450wcWWb1E5tYMmD2ZB@pXuWb(FTRC)~HY-%UjHXt^h;PB6oc?2owuqZ;f76 zBOPT!^dyl1x(MA~35$L{kcV?@A6j#ZL8QPD+=teTNy{-M{sZ1b`G*5bY|vgg{;@G3 zNDzsGCRa0UeLyvmt^0{1A-7a%4O-vDjk)WXCJXUR%#i~%BUYV!+qVuDyQF&n;r>To zrve^cQ;2O40;55Ooe!u`0L2R?@5=A&?U&^G5yjt6WY$039wXq_^Ud-BqiiT#{IGO| zft+oG^G6%6!V~0@-98djUz$bQS@@tbJ}1H$l#t>Bt#@$D$bIVT9IoX)(OQq8eFWBO z!5SYGmncSVu&AzKrXcX4=P!UWoi^Y(`Mi2xtLvPKjd-S(Gp_b4t(U9z(yG3}F5AY0FxEv)u|43K}9?o5^P% zyT%CJ3x!m)sI>^3kil}A6@EdB)&`wy=@GZxxgD~?G#yk~m)}G0c}|iuOv+UfW0LsB zICe!u<^o}z&od2bYg?C*hW?=`on2JTN|9(t%UOHeU+j!Bu#&FKnAy8Z|#|g?qYd*QoEok#k>_MA^u1Bk;_1W7wV(bN#8K2KJg2+-*w=$OX4X4fBJx)Y?A?13mc59!sFG zDi+*6&#GiJORndTr%xwF4T{-rX|y83Z~(A5fR#*uu?AYnhn!20t*1ehJpg-v(2gFu zuH4L#$U?keu0?EHpB9>4Gi0y+$KI{E?_lWqc2LKHy_>cox)5X^^ZddeOoKA$31Y~E zzx7z>=vV?j<0ybFgWt?LZDub(5d~(q$B3%?9n{6-Xp-aqjoCpoFhPTUTdv#%90j(w{a$s zBm8ZUxHtM6I$OiUV@)bCjq^XqfXJ2G)r_4@e3N#ubtm*Dft0-=K4VP4bQ>Zq^XJn6 z7YP<2_nzWmQ0?!!13kxcjvjv>Ko4zdv3@N7WV^ApK$6Yhy1!{_+W!0t!9YsED1~b#1PL491izHeOKOmup zp8vZOUlfTP_9`E)lwn#6?*A3p>BFXlYHHuD^gX=LD$?E$zBV6F^n=S>&Ih;D>IQ_} z0PrcnQjBBSXioczEf>lyZHYsqZ;{W2$p6ZJqW1Gmi7Y3B4NT3VE&XZlH+1C_Yn?u6 zc!fJepH-&T57DfLU9})s4X8DP{dl5SU(FW-%RcD0pLrz0`4m60gB?e1_HSWZrMIim#F7qsLdc;KP(uo4W$T>#~r_(JvngE9>5DxoF zcIOk`O6V^&Vfg7kEPjn4`+(LAR^RPhvMq@X)yvB92!vHgu8tTw5_?8DC^sBC~~IdJkwgsv@U;YWV)L$ z54qm+KBS!wYXNKvOCgOx4o(c%_zXn@CX3dyED_9K^uLT0g?`j_^4ISzM zSH-uFAe^4U0aQyBI+E_qL5ClDvaRwHaJ%D>nfl6x#mV?4i+WG-?x39x_4odZZmnxJ zfvW`xK}@^$jN(E!)suvh0SRLQeb7aV)b*L~E};MROTJUpTublm$Q7B|`?#6liQ%!Wv`k(WOL_ z5&#UhRMOXdbcb>sOkm^l=>jL-KV{gr|E1xk(Q9Q-u#_}c4*q*_$crCZK9*jdnj`A8 zyZh_BnP7y8Fsh%dMfN+PCybCI-QU!ZfZ)U`H_Phpqs49Ls|! z?0o9{<%KZ$dnhzvuS+QFCzZgVed4_7U2`{K(k+3_AanV+5%bK2bbx27ChXVQr*Lo{f0e_`SL}t0=k5Rkl$FXTdSlC14ZnXHuXh@jU1mNj! z&_~@99P=5q)&k83rH7`aX8LBq^_sBiar2loaoxp{DEmjgz&=Cx8N2sUxZily^SkCa z)tpMOEla%h{Rrj_wh7>W12P`xuzxA=TDpX=vVg_&NauK2?qVL z+W8S@%MIAIy!0#~d$+M)<>x{q!Tx>>&B-SpFg+3lLtDnJ{OvU&-XYlaaAkR6y6mx! zs9c-%hrTP$`1cSwM6k!nFgmkxIN!qNOfK#?S&Tg3@z0+he3N8*7%WMk8Cy3fXdJ6F z^Wr^hFa3Jqr4^Nx7hKWk7}K(zcUM{e@!I?upS(V~$+*?Nu}$F=@Il@zdFv_@*1BCb zXm0^tFI#9x@<8qo855)4w3ON}k2fR+T-Bd$QJSvGYKV&?MVMz8yy4&=- zaeL+=jmhN(DS8wI2r-F?ph^gvSlsF3iK*hnGYR`w{)&uQjqfLr|IkF1uYVaC+Q2lo zio&{ODSM?G-cjC>O})x>aMNrA2!cI5ID;aWEN^_^@N#*h%;9+C2o!rErxPDyqRP}) zlon}uNb;C+7>*6fpRO!j{{6}WPsHm-4;(HamMT5Rw1Nj~Ugi{5$8P!OFsq9e5{_3XSm}l*dsnx4b$-dea|T>y@RJi^weu!E+yp`zx~3wH6T!b4Lp{axH zt>YtXCpL%%+*=S|$;DR;6&F)s(cw7LW0ds>r&}2TwO$kI3?nDTmvee!R`IU2%|Wv1 zaLZl3=l3?ozW7!q3!1Up7?K6a*wG674Rg;C^Lc+)fKe82XL}}lT5=K-7TARurRNUbTIWTMWq4T#sNS}W5qG0&v{ZWO^?2Os+mUetMKSz%+(^re zv4`*W>RPAc#LzmYmeq|?kCnk`F*&QHQHWs!KuOiXgvbZ6i-WcgJ$k7_d&kR)SdEe(CfQG5Vox%W@5L+>BFkxVPa`%CL-z2h5|jQt5S-7y5o4Nw;Z_Ab@PvYzKj9%;Pg=h@X z%jogc5cXz{_P66qyDfSXqV4}sAlgtf*!+L2(e$fgw=4lNME>WF)&+M*;x+V1YD>f{ zeag+?>#CU(nJ{!G+}n92;d@diXBWWDDfd!uJr1=q|4@I%RBTk3rp}(_!lcirm|0;4 z&TR&m232gQepILMRMH*poxv8uu>qvRa8`eR*KPi<@ToADvF=TKagXx$ z+F4Q6GPqY?&A#Up&4D{GOscNN{3igMDx*VK6Eh}fdhUC_&5i{|4O+Dv+e$LJpZ0mRnoDiqH>^g(O|?h(5Xy=|IFrKak1BC-oK$ z3!txKSw`LSj~_M3AU19jFqb)Hhyko_VvO zjlJd;V#){=obvhy-;N9Ymu0=bez;@O)GxX!%x>St_z-dwQSb!w;lDar4KB=yynscia_pKKpOsBHpvnsHWdiLSmbNMI-=wfyX_ ze=AN+JS6oLcNCL^!mme_&`c$Zy-EIu*28UAOs4QUa;E7Szkz44`Q@MA4d4AUdY|5} z&S#J+Uy)`0HUN-#e_X%k|y;DUOd3g&$N77JRYP|)fNm0k0&7lbOS2hzVcUX zqE}tV_P?)5N~<+P(->`lcjyN8t>UbKCQ4CBLnhQ_zYdD1?D{J9EurZ-nZ&*4P-S$x(3npgwRc>s zW6ur|2=rd(WB{m-PHnn+n`J#$1+`lyxzf}_M!#PrQCcn|xifneuPa^jPQ+x~KDo=~ z5ug_j!yauNpt;1B{ z#Jor;yzJS}e`ss|?FYD@v>eI5wD3^zu!YNO2T0p=PeD>-ur79F(-sB*(kJ1nC8_fa z*s5S#^j(=yg1pZ)a*M#i#*m%4ctoU$IdeH1z+RRklOi=49Yu;PJmgh zg1}N(_LLRTd7Y~Y0&Z>8{;Z`Z3`lwncvYdH=|F>{JAB#IGdtssxWHCbsA44;b-yg5 zBQ={3&H*5T`C!x=a=9k%J{OPMyKMf}kQC(2b@FoL)EpyYKlzWVAbQ(7Cm+y{LODEI z4nLyYc4R0mVHfv}j!qbg8LZSxR)m;I3a-)E|2m)NU9`Ktb~o;;5`6xS9l0ATRB|+3 zT%9{d2wfJ+2S5fI(hTrzWQH1T>1j+4;s~<1ld1vl|We3-^O+ad)T2yBdSUPfLr-{_C zQeMPSrWF~pXQO8)01ASO;$EqAg;}UWcz^0N;*q zWEx}Jo(?xeH+^HrG8-BLdYkm*0lbKBSJ=fn21;2~c~CbU6*@SIHOK`okI@`y&rfLe zzSLQx%d>auyI*Izgk#$Ql_k)ZJ`PY1K(a5L6Rd-DXL}Ps#!HmC!q>(SMf?Iok6Qv5 zzj%P`iAMOoHa^a%K)nTVYm9V=>Um?}87Vssdi`aX1OZL&Tj=J5WADpLE>jqfH_pf+ znmhoKK@<$Q(tAu2Oz)1j1CkV4g zn0r|V&QPKnbWTURVZtu-L#~nKk4DuLn`s(Y3WIbAcjY)3m%k=+!L>;;y9q87VQbeH zjm-hXo@{_+W&b!qF-8xeymZagtQmV5HhRd;c4+M?&vsDROScWPQ1ER+(9U!cpAN9m_>KuWe3b%8?H#Hs?pt z*)wD=-y_x5aj&TNtMYvNo#d}v++~Wfxngo*28o_CF6nj;=BGZCug~IQdya3LGtbFW zdgtmOs2bRyJoi^ie=AnbfED%X9hR?oa5B6zI%vg)_6};@3P0q;y_XY}*a=4Q z+pTUcmyy15<5htLK)jnF7%qQnJtDvr0?mG}$m`}=zf{;PFv&{-o4M&^=nOg9+lFuE z^Do<{{;^HTr!`ujl~Q2V9?Cefckf812@yz;Q7vkbfm1p{+pf^nX_ng}Yf7ouuL317 z4J+gW7p94Y)21Ka5^EP&>>rJK6OD;S+5+TJ+ z&h%~@d<~BqO|{&;OApi=^hxpKI&$P|RPJkj!W?R5V2c|xcD!t54pKX^J0q!wlD#7_ zU=$whfCs!!S^$Wb;hPUOZI(g7%1GE}$x6p)Q!u4^?rz#=K(?5BX$86qBJ?r^{xH)) z&wCAs%FGDjUMhz|ZL$Y)K}I*_lka=@mH(1oJlHx@yme-9D`p3}q?`U9B=MctX9nOp z!iUpz&;|fzuMYN3{$SY`aC_}kLRW@c20Wnq$Aq^pVv16mToAOb+(Lw=5CLv`1I~39 zB}Lk0u&Qgv;*`RDGS!B!*`#9TRz1&hX}I-sx7kC%no2YBJkMr9b?h%DWr@zwD->2Y zk4-ae=2iNRMWAAlX9FNw!JJBVO}C8*%wB~0{i`G#^e`&~l75Zw+qlo{;IyG8C%zYF zaawS2YuT9#OuqxXk1jl7fWWjNCcJVMAuR~Eo+d{EH{~lOWmGGcst|LHfSESZ%B^a7 zOCH!mN)w#gEm%-i9HBFuln9|5@{qLiYNW3h1vW5;+PM3=4sRE?1N`^Afiro3slbRv z2P7hmj^%q-?s#SxIy<^DDLWEUp-Hyc=q70FpA;Scr{-D0g{GbiSpxPYV>1MpkZZd6 z8yu#BY}xN1E&>=Q0Fr4!x4)Fgga+GH)lLQOKwjMWaxyfy1^ksJB zmV<(Qv)QD=U2inmCaFB@4?vp*0mka44Lz0e=0Am902XR%v&yuYV%qpj*?1hWNxEh8 zj%uSde9x-$t1HZi3gbd~yVwNpp*Ub2_HQAzeZK%@`;LecK+*R8$z{Z2w?@->f*%Zo zS%pbDvm+gdD>T#@r^x^yTslp5RGG7Mn4IyjI4Y!5Zi1%5aXh^_OGRv)oXFovutxQq zx^yO;_i^kdtlO6H@%61$lu-Zx96*6ZV}Nf*!6Yxl6IZK(SU2SFQ$nfH;eVb(GM??N zbiY)^m5nw%xyOTKT#q~pycm&UDQlcbn3*cLMTh=4H{fgqOSzDJeZJZ!^?!g*48ojJ z)2;&vxnzrs`eU|IB@JBVZZykHZ|ZRqK&ypP?eRQb!}Y7zKREm}boK9%ft*a={Sp81 z85M6B_CfhZIlJ*s{*lQz{n%|xF}Y{_9HrIi`4LVj93+j z*zRV|x9*ISK1+GIZ`y2j>cBLBf$5GxyK;`alajp&niPcjodarAUG2zu@%tLXCvK@+un7*<=#lRjpY{u0)P7cfE z@B3Sh@!JYcb6h->3*E|ZESLD4mVVgyql;zUvucWSt{k|50!^^+HUFXT0RZtPhnsQI z{hQ96|Cy|`HO|T&ct|No)`jpwv9;1NhFp&w>B{+>frl}%Ib`1>4#w)ucGAt1347yN z^QdHHeAxpeMdX|aa$mCcF(o4=atFE{jHhNkTKu`F8gl6<`c@+4%*}i_rF>H3>Zs)u4;TQgHQHj{@+tFTjvYaSK3KfSbjeE)09BDbb_-s9EDV>=M_Kb7+L*MlIppSZ^8rMDAa-o_c3 zpKChx&i?hE&VMRgn4ql4tv&3^S?7+8s%6x`lq4;8$lkuPlygUW=%JVTxclP10AM@| zOMxsxj42Zu4T;&gFk*dRVCexoM6OZ6y-N&Qb|1|G(|Z4erp#vf9&RM$XnsA&7`kc) zF=okCqaiydm~hJj?Ve!V{ubVtt;fo%A*g+m42aq+SCmy8QL0BxoNvvJn4}>F!f_No zCVb6$+a)nv&(~TcWw#d#GY#MsOw&+#*9nt~1-?FfC`_K0SB#Cra_9lUlkLLloZ*c%TsA#&Nn zQJk!L2{th7An^Yvy4QH7`~MH%J8!nJF^4(N`IzRAki+IU=aDp}nq!EXLz0r6Fo&39 zDr({?idyMFscUnnDQcwBd896t`c0`M*?<2#yS00Je7AkxpV#~Of|GLq{yG~Z%m8de z%jLH|>n6k_XlJ%?#2{=sp-k79DrKRa$I5)KSrfA-;nu_I#zjsH=3vvEy^cfLIRM9@ z&2g((xOP~JA8MUISz+z|ae(v4`$ylFNUz+Pl$ykfC%MxJjKB5xT?qJ3jOWoGx26-8 zr0vIs{ufqXwoxGTmH5PDDu*hqA9Kci?g`&LwovPU$&PBE{kowjM>$76L|nTIqv<4v(gqLajXj(WB{YF5GRlm$+=6 z$&crPLAY*=HMocd_{_l|RP!{{H_&P!m_&o*K%7wuf8TAOc4-=IAoWJ zVbh2P!U8(idpV_?`UzfNwVOLXj2=j2K{XGJ)%wCL%x7RY>%-E=21OFeMN*}8=Ub8- zm{3}^-}28}G}uEdzNBzle00QQ+j1oQX;T7LNMOnY4Uq|p9yf~$hsju&AuZ7l9(53V zDJQw@EeHPhX27@HdGc-Z!kGR5gX|WiOpv&D@w2WXUQpYK$`he;luMRODFhmhA*tGk zQB`yC`ZEppwmjQ>(_q3V?A5d3QxwO8_|(KhA5n=imQKO2 znbA-A)`V5xngZ%rLY6N4w(Dh<>byWzf-T*h`LpIx$Aa^zwsFUt?@lMn&nEZ&9<$g9 z!3jC4<-l1?J8jm%wMVEhfmJ_^C8YyLu4HvqM>w^y_PqJdQeY0$!m%g zga&xLkP9A_fnTtBZ2&z9GagWj4V@-eNaYy4sm`#V!a=n5M48ki z4bydh>MVNjj7~NSw&ym=d=?Uh4^AZ+uLvIu z>+R98a8fs3mY+#P_67_Oo2_pd58Y&YeT3U`}YRh5>eyPvsB}$nUIrR$d`b;=t;opRu%QMv+5)JRUm@SDP0BO`0l;rsVf=T%C zP5o)5c^v0c#mlp(&gFZ~_KN^l!aH4_RP1x-ss7{nL2Vv$Sno=5smrPiOj^EYG|M;p z2MIhc^3|c7lY))HfF?E+){z4Eh1@erjDmQfa_%=vEtv^=vxm23n^UPFl>k-X{Wcr^ zC@pPPEF;U6L-sVRsR=@ClWRdRd?Vx-+q7+aG&N+JrVKR>%z%t2UD%zoRI67Tg5m~0 zYTT8d({)J@{-^93Ym%{H=LBK#L&zj!#23 z$p-7zSZ6Z!7xyyE7G&};@QiWL}O+NP`|3d*%{%H-<1xEXRu$| zk5n;*RqfZbB}2AZ9KFZ!vl{)Bqr}4c%02V5THQ?5-C_ABjwwOaOMOXJ*UhT;#(&c~ zaXDZ^pfa{hpH-`O8`+;pt|}(JGp6{l_jW%m4~c(=)uIpi+{{MD00!Un(}#2Re7|QV z1Z4UL01Z~9B@TJeu%G&wdMmDb>}WH_iPJT>SY=}xaRgyS0&22Fz%`JoZG4aT;t~4$ zj8*}RO7zuh;j=6y`wpjf*5T%EJZj%aHi;AZ8Oi`<4stQNz9K5L8)WZo4?+-_!Og#p z!<40LXig7H{im>uEx)+W>^J<`{+(qs+vLL2p?=uHZ#7rWnM5VKDpq}D@|qSu;=jYT z^`sMdr2!p4glIBSZ-sb(1!y{8)FR#4*P9E&}?8rJm@$YIcmXgpbwr+x6V41v02Hr=6**785--AitOe0H^6{1A1=(YU{>ADVZ)z?Y<#8d3i03vQPW<`im2ryP%7@*&_(nW2oo8!w;qGMMb zJr@rg@@KXYzhLpv5R6wa<|7F;K+w-#!c+}AQb>p{p$d_M9@($**Al(KPme1=y^yJz z=Bhf?m-rN@&S#@7=baCTf|*Jmx?H7|q4$KUdVm2B&xJJ7^{&VJA+*66{vyWx zj+1+&1{Lh&0}C`JGS)>TnC=JJ%$bIco`L5w?I&*-%N=P}wYIqdZf!|6xk4ynDFwtL z+-|@Q95(??U`=PeRQ8*tZZtbpPX$kyDyfIQa!-P^aOE;|Wv)o3VqsScHD&_W3tYWq z5ZVmY{cO>hIGFGoZ=V!#f(e(Udm3YnyK=U|l6`Sb>!O}%1m7#Q62fuuZ-uJFdAJ5+gkZOWh|S z)}l?*{vNXQi0U&5$L0<;M;R)zOe4#I*_8*BvM|D-vTlh0bf1Fp6^XD3rK0pffW)|j!NN; zXOH54gBM)Ff3l$YeB1Q=W~KVL0SlgT0sl(cZ*#viH^q3$r5!qihjMi2xpfTztS?fv zc+G&8{dvh$_Px9d>#KXzAxGN+|#7W zF;s@H=n5#D4`UqD-1jTjF)<~!$+V!U=(VO<96K^J(em6hHO|*Ion*gVgo}_udLO{U zsh;hoW{RYgbP+CHX1ZMpjwM2IcCcVUkpl^=5GI(*fd))ywiL>s`;4*8dwUUiLXDp@ zT5T_(da_+QCMt&nppEdtosJNH0nk*Tc{3~u?0yau4==px(r)@Oz%)*Wbg1qpV6Q?R z_e~nm{G<*$uY)b>Ngkw1;o%n)t zZNjrB59?h^Kr#8?>?BAf4qnFq|9z>ok*O8w`Jnn4G@YS-gs-`SuW@Axx{(UDm@(Rq zE!>C&T97@jTmV{O3vZr;_OD`Wg&;L8$m8z+w}SHtX0tEhDd!Gbg7(wDjpvKtTdsk2 zGr;1X;DJ}(vfr@hdtgC|{~&K(c|Qx&q6FB&C-P;hg-o3S>N(@r2MA{Zfx3hmc($@Z z0T}xX`nwV8%7l$2!f$nJemo4DJ%pVZ&^UI`0)83f%NW1sJo)D`bZocjG4}_%4uFG> z{Ts*6wOa%p$33>2famjppT~T{1RJyY5C{EUSt2RxJIEh2ynUmF-Qq+gNozb2{Cv#l zuoP-60J@*crS;@y2SKv8j&FUfwE;WgN(aa82CF83qy4wdK3%_Y)IZK3YXuv~N(fLI zS-c7DXn*42guUDH@XLe_wcfbIC2cR2YumV4|4AKx{KQ0kbh0-?AIxNPrLZdM^P2!f zmgxF1!FE61h7QFd@+P6FeU1Q6_wFM<(JP138kd(kRci9BNbw zs2B5)B?A&wAi_ijg&qY348W}fpi800l`J}5j!~}j`4b_h;c&g}SALR@j~Wz)NrCYb z`+e+9;u~S%0@u|o;@NJX{27GKCjA&Nej9{caY38_;l9M>!zNDO`&AT~0K+!qUP4)? ziF|fbZ!f;|P8R{=1cfzVJLbsYIBdaNtAgImSPLRy)!8e`3if6k7~n+nlu2#r|4RL^ zy(g)SClCKOW&ie`&$}GYfdW{xqt|M=XOYb7Rn>9R$u?^O_|#1^g$Zu^&!Pw*#12~k zRk(tK39y3iAW!U+t{miBMlbyCVJiUfeksGLAaoo2V+-u{gQ?$JU{0jjo8N|=(eVB9 ze1HCvY^m#+bD*F_48Z8X4nT*G-QK<7I!5U_-$+;U*Ev?Qrhj0w_Ri>>H}Bw)uc|$+ z|H9aY9MV2oixCJ_GW8qjFZP{!bxgK+t+5qpB0`*MQ(d2n4!3c>#7CZ2MeK5>kn2&$ zlJ(m8`)-pzk7Gevq77H5PCU`EsCNC{%es$d%IV3uePxQ(c+;V#Y*(mTE^R-usv?FLZ74S9k5&STJ%vA`#9uHUjE8PhA+Vuy+ zDh5YGIyyG!9D9;kAkNGI?hVt|8HdduY@>PF2Al}kR(`SF|G{q$g$jm$u|vZR^H`{I zbBmK|TSFD;d0)!HF)T8RjyOh&AAHl`n#Oq{%^|hxKOyW;J7=JpupYW61Cn()m zqZ8RLZ!T^K5038_!93`w*~@3MUtq70R1l7N?(hRt;j2Rg*v$W6u_AC(?adt%`R}uQ z44!PlWr5#3(xOED8%T#QeNN|_g{}_+s_ht$L}Q(t0CAVuk94iJYwUG@OqA$)6|Qsu zfwOOq6BKUAzu_IhCj##?aWe5Y)3p4g!;Vkbs08zf<1VR+wc`oP>t~L)Z@<2pbU|tY zuOv@G`WXpON^sGVgPy-jW|Mt*)oLdYUZHLmn~}Ex1o7WWh#Lc3KIoFr;+0Y*C7boD z@G+SiD2*oVr7%tE_3pGYn=#m4&T{hNyWNq7o01+kaNk*}HJnKuGcN(3i!ihLrUQ>a*&xKP&m=D?w!pJs-PFsB9zpZ(W!ZZ~Gv%E4#jLzOqy-tNEt z{D0ebzf?0C$X_ep?G1eQd+({j$pmiWp6cI0CtU&L+0&t}6bofPUcb4Hf1VVm;?H*v zJO;be|KaqWoPL<@^_`dhsn5vl`p}qk@uM<`IDLO)Wb00aV=~y!V_?qM&lUY%VsMQd zH5%hP0j!OW7=>a<)htNaCJ%CnhC?3!UFo#e)n17cir8f~!wj=ZBey;guUJN8cRcA6 z452G0DJ%{qV_977HSP3H#Y8V!8BwglRulSWg&dC|2*||5i}xuBrCiCSKPI%0_EZu` z5&%@yg$aVH`8MvsZo1;uR_Y;JmT`14irT`}JQ=2{CTneEp4HkxcBR#k_p`<>OWzu+ zHKPUX7%%Da?%Lv|rI`62p*-I~wmzdWr5XEt} z9^!D^|9ADmxl>=h?)jhbVfjRm@xj?zt53z#oWf0?uT%$-{#@++ntuJK{z>ni-|g!^ zAH1?1W3+=7Ro6)EBtg^z`9gx0uW#^sW3_eC1WxG1sBfn;3nZq)7b@ws0Z*5Qi>^k{@x0eb>yrTH2$v^#i!MO26Ms4~zEAWr{6m}9+e_?+1>dDAk z1ZZBX+^Ym-KTBWNn~5;xX?Y80ihJxW!MXz0u~;Sx{R)6ICbIF}M5soA;0Or|x~%Lh z_hOKD-d=gqd;TA|Z@Aqy#r#k&%n^}h_@A5WJXvUGYLo|`+{pjAH~ zRcnz@Vf0G?LJzOor1&AJ_L}@zb0H<#IO^rY0}cmU7ihal(AmhM500*X5!P8?jrY^b z^~QySc>_UT;D&Gfve5Zi;~1rD=rGJH?l{As^g$|VOEpQtG{$D+2q!;Jbq9S`>w{NC(R3b-xljrDX|GJwXoB_&44tb4nvr5=0 zUj&XQXBjgA4jIRRK~H!W_Z?4w={AR?3+1{*#~I^nk?&9{m95*-7Fvh}A+8hPc1r^I zc#cA>mWt&bdEP}EulR%sro=e7B&tsoYVZDl)$}T;I=3Fn!7I1jHT+90Qb8Xv_xaL8 ztO}Y7Pg|(u7Ch3Z2=9icu%dwB0`>c}$}~vZil_vcvD7u6IEV>xhT5(Ap&j~-u~dMR zkeQ$sVJ-G^xd|lz+R$Eqfw(X`aCra}nj!>eTqeM)*ZfR;r?<8}B!W9v0f>|Aow#it z;D-AIM6OI1r?*lw+3@o!VMBfTp%qqNI^1*i_q~FPfg29fCexP+EDloB311(!?}2)} z_k6)J`rEB)bpBQ3^hLkmLNw240Z`(aL*|8cfONa?8d@)u^~zFb-$;*AS4CcS)!i-N z0Jvp*^+jNLMq0aGy@aFol~|R4HPd;PM|B`BBK^~>DUZjX=DwF7CUJeWKl`gYaMe>*|X=lnb5dmQYr3{Mol5=s#r;G>NpNv}P$?CHsBQ|Fto z9wjBbkJ?*|5oiAQV!^>0{CTI?S6j4ZQLA~il3Ga{HZa$KpI;TJ26r}M-Uz`M-pm;v zKF6>bukNxidZ2Ko3RiUPoU6_YUQierT4cf9-H4@W#rum$O8?0@xeaCou(=7~#1op^ zw%`2`^N%N=ZLutZCoPx3NmvMBOmw-rBqS!8_~L<6!r2{HGjZmzptmV)+YRxRhL&K+ zl-T)f0e>hGi%#glseY`SNa!~$ovauG3QI}rN3T$DC#XWT%JC+>Ede5 zp>4lUE4r;R!!LX-r2Vdr&6~w{2~Te9ZmV>qCMer>r9OaKc%UXNSna&JllSh*(C%vW zmJ5MZ20#Q#_SJZZ+45hkj=Sv+kUBFh)gh0M(lj>JeAety8EuauwSaK$Oo%=@;nCj@ zzAg3(gJ)Anp6kxbpq_M4M#p&zd*TTAX8skk{a!bT@T{mFQa@mu~&h-;F9wo7d{|rphLD!_6 ze`nOLepLICSb1KhM&8`P`fmR945q8L?57B>_)0w4-35o#!fUqwvm&bg^hvE>eSJ?? zO}5Z#N1u{sg6)&S5?1&zJSm5z(oC?QWe}_C4Qop z<7Qn+!GS`Sn8lqaB!RW{pue*as449#Mxfm#?DL4OQMn6ef}=@1f9gKqUg4=OIvcvG z$`k$j`=qPqvhs2XT#AJ#$OT}}Gzgi(-B{pH7I8NAv3Eiox_IDI8TPu&fnBwM8B=#H z@Epg2;f%xJ41KWug}{t><>OHnv|1L{arbI@5P4Zy=*+R3X4xTvjQc>Ic(785KEGV1 z#;>yHb0#u2-7Bp4^qHqS%`%kp%H!A@<#!DktOVc&TITum#~i{mE3%!bOJ}Q*2sJsN zQ4t%Dufk9RjFwrKcuH*+Yy|*nHV4}?G~cZtEx@=R->*EXME}KNt|n9#;l-b>m`C0h zZ%HJ7W1d*V_Z8DF{h`!+#aiGO^r#*WjN;c9@M;wFvhZo{Jrl?dg0J$dilTF=0L#$? zb!|UOg*g74ZdWV95wcwb33G$e^z#&vM8`lnSGCO-7iUNjLj0JuF!z!q zBG;gkyPgOMMF4Hm&eE@xga|p0hCq%omfG@Yd;`##!*QSiohckkfOBQqQHMf~Re@v! zM`dQYNm{RFO|ST2a-zGFGfz7)FF|TCK{XScGZc;ygH2=r|5;(G6|l_d&P|;_y!4EJ zm`*e0x}$n^vGUKDHP2pB5zPWoCIO%5DEb&^1M+(1$162yh&$3svKz;n&%J}KcHwga z8Emw`sJ}q-6CJNPulzx6^CnfgP*GP2CU>T_oTAOnNF(--cDg7(p)HjPC6F89-uz)Z z$y<8#jH6bRXU7Od?XRcnU?+=R(6}#7O9_5xXN!ZPecCPg!qzR$(>jfiA(K-m^;?) z_oz+kRL3R2!sM2Q0EqI4PQqG+Fta8nw(Ky98o(!Fl|Eqm5|rn!V<**Bp0x@i4&g^82!sy=obb>0ej&erWj z{k_F(uVUc~8YKlGe2qt~8Jo(SaJqexGAY8M^H#An%Lw}j!vH@#F|eq4+i4lS&o9U_ z%}F<{vwaK{w#SEQd;GBsSUv|l`i*7bcD*zKwD{XLt*hxJ>fel7uD_JyZp}gg&TH^l z`hN#>dAA5eu)Dy;d^2J(+goF$J0h;K6rlC|1in;w)xCh%v#pXdVSQbKc=5oicUm*h z^M1`I=G-LBiqYLv5%Awf%^K>zk4`qfJpm5&LkzF<99_9qvjo(m0P!Ir%jwhAzV{S1 zMt{Q|UTb~PWz88Sm6v{V;_`xi5ipB{8b$GR*%85sBI{S4t&gvYHx~)Y6f(8gGv>Xc zHJ=3`zCTC?t7=~}PImvsTwkt%m_V}JV1Xo<+0rFd5}Vowp)iNGZL2LNmBPw}dkCdb zeU^u2^fZI`B9vAseXEDLDEK(I-cmk@SpJ+wEyU0+n^uqFj$! zF*IM{Mdj`BMV79&Mi`JZeD{!p#p!g3F9^(XEHcWzs zHA{#3wjlwP`yBK|6S;}PQONbV7xcIRdrm)bl&^O3zisYg4}L~qjm-tt686xS(DXG>M% zn*p8k32w^DcJXWTLyWnh*3Eujst?jG^^~vwODBJ&SN6tZ43kkB4Pu=R@^$<_KwZ8v zYO#$19ZQBL&`UhiII5(xk^8aU-LM3b`pG{nr~Z^-lDG$bxn?wv!G41=ci46S*Ojtk zTOheIL zmy{3K7vUU!w*e*kO*gFt1qr+`@-a8J5clN`)P7gxx8UNcYinJ_q%Bw#biM-FD z@|eG(Y|FDc12aLL{z3NC%I0y(!4dXTUz?&(_LW(dc>zJi7HGFTAi_H^Sxo~Wy=fER zkamvFPVR6$#U2rG&Yn|BN7a~`?ol~!9Ad2}0DFrh&t^G?OyUlD^ohdpV*t=U*2!kg&(p+`RT~WnK%;=A zXxiXlF?7QLJHq_}nxeCZmvvYl?cZf|XQFx}fU4aGIU744U;14peqF}CeW z8~ArZhJf7L>NmGa+`S<;A84LStz(Dq4E7osQh0`M)}|!ob(;}ZenNmNALJ^jed5LS zlLfUT_lRU(MPGo>uYj}VNJ|kf4W-o_55n}>6)D}kgaKX~V6=IZ=y*eyG~Z~$slWfy ziS7wrVA(8ROMk#VKGmhkDA!pA{NjlAzX8`yPPcD^lx*lZ$LO3K+_<`~N1+x0)R6$1 z3V;Vc-eVpFc~Q85Y21x{I%VjJ^u-r$ccR`$|LaA(ttQuYCn3B9;K+j<#sJ7cuJWTE z>`q6NlfWhg!%8SO(_i9<2s-=-ti9*h+pWvzWZ6x-t^@Zw zKj&JENWW<^f7{w#vi_TUMU8YpXIXpd(*TCbQmC9N?qlgSSHLrxxQEYAu2eNS;ckGc zE}ilJBJ7|<=zHz2;cj-LeC?Qub^Ar?3)}5>_0_AeNc}~CMa}k0^QQV^0hoNij@ao- z6SpC#=`YWY`kuH2+efO6fpS%qCsGo~5b(c{d9M8!l+HE?q`52Z{4UdfJVhlz4^6^i z5Wv^2wctNfubWB|BvYE9`F=!*tK1{)F4qsiEqDdeB$Rj1P-;{V;tUgoXW`v$VMOfq zrgc^YYS6No=Y` z7av?cgWJDarprV%oSU_$v-d_luR8*)Xkc{<8#U&cXel8-0Ws{+G`}gwEaO|iG)VZt z{vA?pc=J8}eKtx2um@C~$wd73j@|ax%Slh|0IrfJbfKqn(UX;g4`_Pu$uyHD)^ihE z<3lcGb`JdOgxOB0y~8<|`r8?{R`P9_#ue_0ts;YkP{V8Cv0!2WYp?q-e~_WNZ0vQv z!lB^QwaSXj%I2 z#P=gS9IFKPoJ&bF7&5GXenKI6v;TR%TLp ztf>E)CY6oa3dB)a`dAdRfPMF&&!+so4#ecWhZS0iwdc!Q-v#Pm2{-e8p9A_Uo0B5a zsE(KKBC!hQ^n4NwQB&+$=kog*HpEb27D(C_)gd{0+G~FdLpY-hoa))`g#c^KgZag& zSMn~iKu`lWJ(q!1bt|=c9bJb3YjOgNrxmx>=2(CB5y7iyr6s#Am2c?m%A|byMjr7A z*#BwuLjB^~a$L&7RPYdMs6=!7l~>b)C6)E-isq-?&8~(fZaVztRB#epwbdnJg`zPG z9ry8wJjM8ZfT^fvB4flqAxz3G%oz>uT3xywW`4~kNjS=G^hn_Lb&Dq{C5Qoy?d$5S5p zz`lN``Y5DkH7xX`-y@DrAMyskL(bAMMmx$1B#j)ZLah&d$O*IJ#n++Cf{16( zmZdRuY1ZeM38NZGk_j*-mM`V}<4_>wXjm*!ePNh!0A!D1sqLOmZYFRLy?uU04@(jd zhGH(kW`=!yB!zc%odt3X%z`!yR8@=-hq6LCk=5AK|S4T?RHf~ zV{Ji$5#}W@JqvjDUDI2q5;8=xD+49cn|A}gb#?BX8PeR_mjK1+GWfnpDJ{fC)YgIQ z0Iai{`ghTG`eLMR%KRq|YPY?zaWrf-cM)T}iYq&k^k93S0nP0%Tg%B_=faDmW8z`V zcbh~w&PgIAW6xG2OiQp&zemok(@Trw861(&y^bq5k3MM4zWZJFbNF$Dr|n=;B)7JA zS|Ka{Ci%|ywD~k$r`qxW-!S??Ex$2l6yi7KLrD7e=v3q3Y|6^Lmb%JQ3ex1LPv{vo!tBVIU86Rw z10Xbu#>OI@*~KCmv_6M(t4_{3Mg@Sas6b7lL|gAA7{Yjdt6uUqu(iQCn8`<9y~IR# z)hY+0{rOQWTg0Nht^^y){y*YhViPuFY(ZgZToI5p@g*uWzSt*53iZLap(^IXb&t@w z#+sj@4?eN__c}Fd$Ys#=q?T}RK1+wkf*VWqk#0f|Vb#pWCG&YatX9!#>B4e8A`OKT zSZo>$;jci3oq zz)7%rnNcF4kQ=eT4Hw0c^_vuCJ~R?Oi1J+d&6kX;oxWUIwy?%B)gAW>y#Bq+XNje1 zJ~x9Wo`=;pbJ4L^$?zD`APk^hk(B0F@Zgi&gAoXAi9H;95)wH~FDdpEvUt5@)tdqkwnGFq zAf3GE(WxDBB?q&EkO)hb8}K_tF!qD(w>$wo77So@U{a;g)QOU7(h^LiY{=-ucK9ai zL=P9U6usm?$tT+IF5f?8IB(r!OWOX1Qi2*C{7^f z)Rmu&c{f|-*oK9B31*0Qhm*EYwy!&I&@uMw%y#AFqvIb&sn@>Sdv?~QbG??uJxVK6 z_XM@SAQ9o)@VM-#e@w)IQ+-CqHn)1pC*0M>)dcHL-1Gc7YO2%fl(Sec;qxJ?2K|xK zb|dMYTOY7u>%3_}6?51wXAwg(NC0aKnc<4Iqe<~>^#G7^gq{sCEYPGf5n`Bawu&Jk zAv9Vlh7l5Y5iO=i?lJwLr{c>q=GdWCM1O0CwxfIEeYNjd*Q-USBLfL58kd;EI!|RB z3z~_FB>_~N{G-NvPR`n-)PmdlWHto81yqyT15YCn8R9aP+vg)D9@^f}g(MvF^B2RT z>7SZe1hC(#=&9y35b4imb9r@May8&8L2DcE4d24`yeJ#k!63!bFu1VLi%VpBEFA_UdCP2SX$lrYa%gm6Wu>;pYycuf2(smqAJj}$uV#WwWe@E^o&uQolmmZL_^pB3)HY%rzRaci$FJiV{$iwO& zxS0YLwm^iMWMVzVZtDJdj1s1VrE89Y&xNWaleL+oo|f8e-AXqNXrcntYp6&A(6>xO z4Dx`*F<7lcf83Y|hX9Te9;#4cHM&Sy2TNcvs>n_ztZz&D>nD0fQHCV35ru8uM=SBK z=5Zf-^y9zI`?;qhs{YbEdNx06HGJ7RS$S2$0yKEGM3k@6Dwb%b4~ITWIA7-ds-<|( zjv<#!kk*o+27v|51kBl-vcD?!iTAV4^R><-{cH$69Wy8}0cxeigk4qu^@+a6Oa^U; zk2WmNuKy5c4R};%A1t5qZ5as;D^j9{k-q?glMEnYfT`~$^&zstr?K5>BiJ`aPcyd} zXNuutW#~Eh>T_jHrlEEwv@_UP2O$zv zE|#r=kuK_32@6MmdmT^KmH@Zf8~UfR&i_C{-2yQUT1rJjE1vv_`9N)%xtC%7Z$IHO zc4CGp>Rk|_U04I$aU(eif~_6s<7zF5VtY0KSh1`h; zz(p_AIt)~+SOfs=5n$S9paYGV@S}^T$KW`B^u7kbP_r1jVS1NZ?L-O*PSD@=?dS^$ zQauZbqwM%^erWo+AA1h>Us`LWBVtn*&f{-0mxrht=5UBSa#n=t&H5_csgJVFmv5B`wl>JXSFIzG=-i(#)*imnKZ*}!0%P;4DCWuG^7 z%n+z?_|dxaH6~QDpabMY;MBkOwFN|4SP%Kd588WjP8)L89WHNs4?=MPtadoeR|G5yS91vEX7N*BV&@5p_l0M z&*K*(Ll)P;p3Rg^fd9hB{_L9EYpZjHA zVbZ~NAlCdZ227YISz8ZLy})KvvIAkrnK0)YwnwiK~wOlf5 z%KzTqzobh876xskq{1jT9ca)g3N5H5hoC}|nQ#R8GNaUgnmgL0{ALNi}i#3>x zFDTRZ3edA>8!lIFCZ*{%#2PHYjOSVVxEfYlg7mV)giNt+>qPu&s9ubcQn`0szLPS& zbs&$rZy_44u3-UW8KQmlnAl?McGXwAppD0ZxPjW;Ox*~6?i3)s3oz^Q)bG_6SM@-R zEdd9gup;`@c}oc|Qa-R69{1d>e>Sc*&1$WTtFG+XvEVORpgb%?BrXL~DwWsOlGc4^ zD8gz(5690o;dY+1&wuWMYYz@t3fT@^Hnbb4KTp!Hx}dh|XVI;)&IyFi1fb9gap2z} zbrQ%nZ;%MUe2)P;84MY6LAJvUY67+z@sXo+k9e|1la4W0dWT%*$&Uc#3`L*GViL)P zs~2&)WDS})(GWU59irR$1UDeYBm>|z? zqavkMQ)|q%MXzDftzV%VVSI% z!KiHcy=<*#SLlsVKQ1=zga2l2w7IXnY&X`e@=C_i=TbTFYDTsMkn<| zZ^_&oi64IVlw!QrJncm(;ZoeQA{JcMdn%9Zc;3$smd}5ia7hvAfs~{DyozRuuNU{q zB!#>D*eC4s)f0%-JDiVWLz@P`?$|+#FkO^&q<%a|pWthaR}SFcU}>WWndve7pb3Dz zil|w?rqsuLZP8*dzeX*7sBSgp&L47#=TDwN*IkRE_Ojt=#*HI!p`k>uf`dLc>dnmL zQPe;K5IOh2N2-5hDHE0q&^rY%zc=i{N>I%#*?SnUszQF6!%d%8wwn37-VO;~cpI0! zS(R2N#RJv1w5f|sD8oqYezA0?URrq0on0-7doG|wNQ|S$YmG~<6_XeyC?tU z!eA;uLjemuSG9khj19ZHbFog^%rabNA=crL*uBMK*33#}x`BbACuHx-Dsd)x|Lwck zhV@fd%Jjd#f$V23HaZz;l?HahOUn5RC%(Lh*j#-4n{ETGCsty!|Djh(HD>|*Ggjg) ztM`^so*!@JF)l60HkW!rvYsmNX3=}hV0ks;Jkl}5HPgJz=slZg7xq2$^9~zohy&=7 zKyWhjJ%rm8@}U1kjI2Td7dhfxEZ66ReU8tiZH35V+}<)6G0X!`NKfkYJv09LJ# zOl4w?g~_q^lTSr0J*z{wRkO{HSg0HgtK0Wiy!_!r>$9*fhcW>s2D(8YogR# z-Z32Hnc?m4_a~L>GhEK_boUg&D85l9gKtx600%ywFknGwqOfciEv~Qa7<)B-$R`FY zpBr4K=X=NqEMMg~-XClO5RZlVsvQ>l>IQq`d3=t2ePn=JC7^=`u5;-(Q=o+RZT6D@w<@1ojxHb;3NV zXceSW!#t#V_w=?BjY^AA@@;Nt*|f(-rtih!>i~bOl|rsH{A-`$t@oiH z^B@20ezcR!Q_PP3IT!hsT!chD<>3Eke7pD?vEr&#-Kl#e-#{sLaNnOt&&N=E2g2ikuKaNT0&_J&MJMZCD{4TSkt^-D>h1(%P`IYJW=i5WZEp+9Dd~s`sD&ItI`?g>F)E->HW<}@AU`?N;_`RY@(fS!ytN{xaphcV{+okAhPJNL zf(!A9M|_G|Z0tB+r>^+N(7_0(yEJ;aZ2 z@Wy(>I@!!=!dkYt#857JchutI@@^F!hvkiL?X=y^Nfv?Gc`@G#C}X-iqiCu(MyZ<_9Vj2@3!_U)g2Sf8f&@%On9jH<;dW3 z$N6m>wfxjDsD9^J7TDstM7E&oEdW3XJD1D23QQs6T@{NdI)kpbhlSKwaT#aEhHqf! zkS2X1KmJBJ{zaLcoHBRR@h)w4M)!npq0Bh?5DnqNMu1dJj_{HyS+-xFm2G@O97207 zEtlf^puS@8|3BWMl;&Tb@p74s^{a);qH7iy#zB2RrlN zPknv7=@q=rk0gVVts4%tRbf&2oSxF6fP|r{h~N=pzZK+Vc2!N-cR!PF%&mG@CeU-; zK&6)A)i(z~?o1xWh6%&b=IJF}>u)q}(ndF*;wi1Y|Kw@OObx`#VwcbLI@w(@UJtm&tt6*F_B#<14EmnT;L;j7-NOcB^ z(SdCFvdKKyWJytPRB#p(BTqJnoP$n$i1k!+yiKuK^PQ-GycDZcTmvQuMG$)wMlnXD zuf9YpI$%Z5mWe$Hi7bxIngm2(K67`I_Bc+7cFBBnWXcPIdu7{G&{jS#-1D*RZ5m)x6bf8Q0D8^3n&pOsu1aW|39hp(>oBPH()~-y3auR$WM!kColP z{*OiqUZ^b_D@y2%gb25%68MqF7qZ*HDn34U-HFqMI{FKUF7c?f++Vd@g5VE!jRfvm zIuSNbQR$QH-FY&-{N`;1apEJJ@2pWmVcu!ibc%o9GRkr&Ml6+HUIL<$~* zwUWg*EIUtPj*io{Zos*kYuhqL?nRCc$b^X3J-uje9}kp^;HqBnJXBLeL-wYbMl zB6HsO$#6vxlgy-aAp=g6(mo_vY&6-V+wXo8|;5r zsiD{)C|XESM5K82dS>-j$kta9j{nIl_JEjFHYY+tp+`RY+8Eprtltrz}x47JEapu^s@36(HFiNYQxwi*c{7 z_o)dYw>S}1C{nB*}Q{D>fm2)=2tPWTCalZ~+II=D*$ z#b~mN2}@s_{Zz zZ+9nMe|i;8_+nwS)SfE!``J~aQudd-iW(KIqgWC*=${c_~ zi6x&DVJ8_IQ|y!}Vq+7Hbni>^fM9vm1mV-}E%1UC)1dwUlmwuZ@o^;tjH0{=ES3bm zXoVHiysSPz0!55x<5U50AnYq7rqymNZZzoF{jf&nAAOh0g{K;Z=#74{}T$?!D#u3L9Je6Iv%i&scx@7kD$`q7Xs@7@I_ zz+-5>;Y7t(A~=ny;I}n%R|0N8kfW56y6$u8a>Br}NRd#f&~MUY%fUQgVpnO1BK#y8){F@kApIemlfiB?ZwOqJ(Z|?_h!(x2t*iT|^GeN( zo4%1Q_FV`Wa`KGR$P3mw5I5su@{>lF$2c=CiiWZl-1cNB?-h_Etki!8)CQ2$Px+{w zjC~^dkDwH5K_{u4sj$p0wpuR5{qxW&qgiXsOl4QI6@c@X7z+l>W4^HIuZ@JndF(TC zYm)@!RCL5I37xfYmG&vC|Fc!kJM<4WQmr-3B$zzP=!h)IXlOrp#yiDgILT@PIS&K7 z5!(%0?}0jyphU}(y{%_Nun?xg3%11(Q3KzqxnZ~+6nGAMQNB<+o;Vio_95kkk5VrU z5kfqThwPs$6bJ#H6aY9o)w);UnZra4F%?eH5IfrcR}U)}kjFvq66?v=IxU(h)e60^ z?0#~V(D%qIf#+#-#+j+iSAzTX9fxJ_*r_Ain8|>ouUkI45O>oQnB57xA@iQ#ciCAB zD6M&dRxI);{MxCaFAz?PA^8{@qtKaX^G}Vx0)|f&^|R5wAu|vrTM!5rtcsA4VdNoy zGS@6z|1Qxj=n;ZGU7Fg}6q@(tqW+GD`n{6|A~WsX1xBNjI}TR3HscJ#pq$%&5fp@J z8rN8kX`Y2@X2f1@7{|^r3o-`XpIWQ_zNU90h@1c{xZJEY3BsFvDybRwI4A(Ih))5W zO@SV8bS$bJ;FL9-Ne{aY@UE%fdZbNhgdU3M7hp0z?wd3QI|0f7rM0si$lepVEgv8{ zLU03iN@#8rFM%+K%d*5pbO=fSXiKFC{ij4qC&%Ea7tyvExmoe83q-I!5ll@%x`>vh zV2DLgtnh;M8?*wOe3*!d&&8$Mu%a~%8RN8)dPf)LeRI2o+wW2n*@eMCRcX-jCxo^F1N(XK5& z(+Vz9d|YMwK$i;RxU>b`)S=u74r-3BezJM@2N14}ZLu8pB%~O(v{`kHd&O2EdP!eB z4d^~R^zR0zZzC43V+;QxP;{E#*(-rMO>ES>_dGoj8v5yOX%f1Stl*phYhaxszH2%p zhzsjDI!D&mHdbgLCZCbqbFyabnnNB3@F_&ZJAhS%@WgSzhaHBBTq3kd5Ozu7Mb0Gd z4eit<0P;Z8SX_4QP`fnkFf76Ipc%R9S!aU=t0S@!IVpu^vpxCSUgfYMIe^O2cF*e; zCsH5hCIS?eMXiFQ?H4{zoE$slw-;?#X!U_T;X=kaknhspD^mQ%rNld{UALC(_UwFL zAOn{+QWHmtw+4G&<-4b$&s@aeJ;J)sySo#Xhiu`$eDBr3#?^Qwl?EM?g|*9=vY87> zAo%qqChn#Qq8G66^#t+ci?xd*TRgJ4C%gmADr zS;v2Fw!BL6&@Gb>!9}Kxdsq)*(Pu7e%rg~93adzj74vyubt`3(WWyl64XO|`af>Ai zX&1`(cN`rLM6`{rJfQ7;zEs^VQoMQ(-7doV)~smHc(O_?fnQX%UC>(9d36J!EZ1Rr9JjP37oQWLIgPy!8Z#JJx1J`GQH(e+SD>y$EMjQ^RMNL%XFqkb|p0Rk2g;4&weMsNZHw5 z-=W7p#7-u|65oLnQk-^lEHD1oY?XQq--FRZ$q?z;&r%e5#)sZjw9o{6y(9M$1lBc% zCteh%IiRpK;;9$wQs(#;_DCIk-J^)uG(7aqsQ~;SMqjLh_U+& zGlDn>`th^_dhgzwsEtp%6xUb8{gfylI|!ZW?g=-s-2SRrRgc{#1H^)}1d4nQb;hN_ zbsLr6|LQ%bnV$q|CY+Fe;iHS^2^v{3mp$b4@+RzBJ`t$Ai-Y@z_IfgK^OF*ok$0=@ z){5mbFwQq6Yw6H_fs)uiQ>?{Mf%&MRAYX=ILtq6Iq*L*{C=D=pQ-Ca9BzzRXTJWee zN#K5g3mS@g&Uff|txk%zNm%QTer9KF3$|{lpU9Gh?ZAx)_A^}`Y$t+LMn~^Z#eYOf zjD#iFbmL43Y?Wwj-QB45#(JhCbqC*(LIkyZy?Zxi{BR2_4d6O6{4OlyUWCX24MlK& z!|LDor!k=>Jx}(zl8Adci9;mf+mLrf16zZ3kmJ51EC>F(sD9-q$?5#`)t#59$q{YS zx%Uqn3!iI^q4W~DniG>d@2G2!KL=$k;Q4Y8xw&x@u!v78AT~E%X~BzeSmS2p(YJ(G z(<0<9ZF=+WN=)4DX64@tO2k1^ITtJ+`LYA=c6%J!*paMj==xxxFY zyJVZXGlGxaXAD*ny?~W|C<)!WXQ%OIHgWgl$W@m1UOQ{#DlF%ylyFf1w-OBwfET_< z;aW*2lZmO+LQEnN%$9hB>D^LmT~35wJ+-yw7(9o1XaoYx@kvuM@k7Q4z)D-u41x8o zSHw&0TkgvrpNIzo&{uyzd1sU0N4Ju_wqqH4cke2nJ+>7S{=V*bSDG(n&##n-!>p-+ z*1cDg4hfSLx-Abs!GG{1e|9r6pzm>V4q_X}9rwGN=RfrQ_)2h=zB*~aQ8P|`?;fr5 zsTW^7CO`S9<+|_XbHCYS?%A8-~)hh2?$(+c67gB`dfuO50W(rG=1N{ zc6Ul1U>%`%RA9AC&p9CV$NZ64j|cLVdEP_?#^j6xaN2XCLPAPccQ z?~#OSyhi9Xd36tRSN6g(kXtcWU3JgbHLHo0V!Jd^U6H(D`SIK0IjoWEj>8fT=&rkp zx?h9iw|Ev@#r@{~>2LX9Mc15`x);T;grlxyYL6)Y3~y0$bk3#}XzmpCghm8R0iMGN z>(yb0Woa^(O67gi3YQ;q@iXqG8*f_5S0%iM z?!W83g35jmBtJaiIvHP8@n<0_jCt#JK59*S|sFF~Rn$q7qu#mr^!h$<*De?El**^@epdTps{E|#C?QD0;(9M{ZBHT|W!SME zdctE2-FCw6zAOejVbmQaE{SZZ52R}ucbqWUMh!AO3ZRacy zdX3Rm2|FrF7%b{fnX}%(VYwuQ!YRn=Z_~NaXmgi zanDF_-%vCpb`&K`BVE?3vW*+_r%8K0_K5;w? zrAxeyFDQL|sL4ZDjsBY`i!W3@)Bqe(2rpitWA@K6iU_Q%=4Zn@%P$U&;6l?rk5D~V zC_7C46&EOOUPl$+Xg+@iLw>6~H8^SYEb>U1mA+}Ko7qgC!O68*lUCQ&af62^ebjzc zELnO-Rn%O46lh!br9J@=Xn|5HrTy3xysfnE2wF`V5(r z4L?LFw2z5Jl75e=UZxZpQCLW#2NHl;0!x@4`x1SoV)(VE_D5ZSnH9?yh4?@jYM|Y` zeWo_kWkgw%8M`S*-udJL2w0XRL66GQ93Vm}r{pKS@-1`u)R)1m2Rhtj5Zct5PszHw zW787bmrA^=H6B@@$1W6RF>+UlDq^Dx`wQAH zzE`wbnbtXpv(s@xaDQISTUh)qag>WjXKa5V!K)FabI0>`s66HjZnx@WDxvTXAwEqZDSyh(e-434llr`I;T^o4t?d|Cg zj1H$9i>{0{hncFXHbc9EDcPc19kmPAMz2?F{26AC>Ln{Dt+q@Y-dKl!&DtsscM)N_ zm^>wHdP!dL8?7z}m_9Kb;Uk>KmeWA08k}Oq@fLiq31R&~1U~|6s9qj9F0U>Y`_0qz z_X+EZiA)6?T&R@fqYi+S_d6%L#s z+Mq&o0$G!5*oF3V+{axB1_w_n`MOhmo%3uB!2jDnSnoV@QX>XqheYb#@k}mE|A{#= zHN0(nTc}&#)rV%^tFu9_%C!)`itO74x>_13CY}7!uqC?oxX)c9G$&uKXTs~oA^35A zQ63S9mu07H&R8jpx0qBj=Ew*{jf}29zz~SER%B#Bva)K6HH=t#sG+sQGg@!O^^EWg zwX^uhE#sM;Au9H9A>B!1vlvs@Lwj3I5&u=G2{~(v6$pN zAE%Qk!{zH>g;*$8Gg$&8EDIpAwdTEvd|*(h2n=kHy8t5Ib}|S4KqpP(1@lbMO(`Lx zoTr({=jPo$472;>AEBS$M7_GQQ(M0^NXwGueqb722LT0btl{nxwa5ux_YQnu7lEIA zWydFb8MJ>(5*qdo1TO=~yFXXkI#qjwvxfZ>eOk=JzAB!QN6TMd7UvHCQj9+~tnp5g zpMAjzN@od_W&O;;am`z3>XHablQy`I*`GP*HHm2==HHktOD9hGlQ`H$y{>UXM=s9o zsBPP+|M~d1Q#(%Vs=4|2#QsAq&w~q|cbzv4_~7@M*;#Zj$+&=;b=Yv%qtnlDS*F+C z=%$2N7rzglKYW{q-AV-eRHolaTKa%57I2N`XoY!vATB`wQt;=NZngYH7>P8s_OA-o zc|n59OTL765QL}B5dOyB)9DU++SO8FQ8Epw)t!lVy6DxF7r3auN_kglE4*zypJ1kb z4yq&|_lDdBMQ?aW^YW8nnQIzJKS1VWmfVlPmI>}WI>&Krerl4;;MNF6jF?T;n^MI= zh;1@Z_%~)TSwvS%WlhS(nmqFGGmTA)%J;LU=n-BX+SV5~{mkB46d@f9am!&jyJ8lJ3LK27(Gu2XF``Zd&_8`_7%({TQ7&6XlXP2 zKo6vB6?2A(KL#)#AB5K8;4%s9Efsn){{Y%ho&Q)fo#+!N#Fa5&A(cQ4(XO2we}94P zhiPS5k-BHJC*vNM7`jo&5CgTv z81y(ZB+_Vaud!x-)_)YEQJXk|TGo3SR3?(gLJCLtC`dYTe{!LmempLfVK`KX1rzy@ zrTCbM$KX)?atBR{nZoXo-yHgc1JjtMb$HY%Ea4DM^B+6A-wR3BH8>lbxn~bc6Br%e zs_|(Wo+;hIOg9e@nFU#^+03$VLz)Q??F)s`dk2qK&wGD@LvpR*L?N_HO1Q&GdHcjB zP^|KLI%UqPc^sT8dD!!=;OJvdPWzXOWG&1gOzgV=$i z+;HG@2KZeh%!Ch(PghYU(;RSm7YZpeTz{7pf5q$SZ+a>Mh0zq-@P9XhqgCK8VsNYo z+>r0pXbAHbfYNbr|8GDSXe~7}<+OSx5o$lS6q_ z-N-_nV&anwATdHn(}xuFsvm3-9Kk-&^ptSE1Rl>gBe6@2?@!z&z|WKMhVnnIHGYxG zq)M=tBgs>H$lr$I?Q0!S+Y=rwk-2+_j?a03ACMqB7-0)9I}FqlLG|Q> zF&mism@c%2!<^v5J!;KBHT_CNHh`e8l@cdN-Oq#;ZjV&{puFJ2{|B;Jz@a$cbZRTJ zGvpkFfRiu?jS$OY5Op(B-sXAh%Z@tNz2M|w<)j*%n-n8%FMZjg$!pgHt~qRGf}z|L zt6a4(LM~M?*I+9(g&hTO6)x#KE5&YtT8|9m7|v?ooRg49m6UxlZH?R{c!? zlyinhWg>9y6W@U5ln_qJjd|}w#B=UU`YRmiKTz9)9k9tg@Ud`TAQiUXkWV%Ax?`+; zqCaA47N~Bhz8$DTj<1LmLyS`47lxp!K5!ldt|JC3)&WiU5MS%GQSUO|5C8sCdR9@g z9>Xp~l61!*BC?DP(&K}A2cc#BL{J3nr5((SqqeC!H#~M*WftspWo};WWp^x0v&)dYdDjRew8-?A-pl9d%#ThAwW413i-xciIV7^ixFeh6@%^M62^PK(g4H z#oSywc>HZID3hZmh=pI+yZLPfCAAeaJZtaGbod`tIU^R%Bi=N|$;_PN@mDvWWC5UN z4Ddk#!dql<=eaymA*zV3*s~hVDAfCB^{$Nio<3`@^2ldMT4k^5*f6rc})w35WblOIy(sdXI594fH8eMVBoq>^u6Y3v_Xw!U=_o^eu*Fpt%BsxdpO{S;hZ$BT6!KjCeD7 z-Yf;6mB=4H7iMWHg7(awmIruK=YcYY<(&(cTp6GS75mYUJKiZej zUS|!qML9Wf4OfU5DYIsKuagBg^TM#94?b&0rx9aF*3P^!>R-eNst?Lsc4kBvC2fmi z-f-FHuXK)u?BHWF$`A!~SQ_(CF&na#g*0YCocJC6%+3>Wh%hDs!$9m6V`~LqHTkPu zCZg&Orj?1PA?6WovCKVu$D6mA%!l2@=>|Ryw+;hs!l|9hPw^ZHi;?2!s*p`zRY#3g z!_tAaSe-p>TjP4X-35r)ewAd3?gS1W!`{@BGgV5e_Mi#PW4zV#{m)id{vVz{M!g*;{JP*VI<_*fik8rt;^%GC);q&la^7tzSp=Zq#`%1>ZUI{eHFwq%pX~ zA`Py38^O1`Jbe*aMhTaDzh)%-2|mKACz?Tk9fFz#YgUXytg+sY&B1#_o^p(q zUkUUTS4XnE9R@I=Q5drs{mpgE9vfz8!)Rxp!L}}EyAFfx3I^WJwL!PyHoRQo?!_6a zWtsml+8)BV(`v*RGjgai%$OWYt5OoM(O-rUM@k`vs&&e>b+kf=egPzR!A&M4hf(&V z31N5Njt5*Vu2h} zDFpK9Y_T19$au^49$BjB?U{rYfT|H(V^q+AG?#fGALN!#z2nlO3kxTvYc&4FT4dV0!EF|Q-8TVN>D+-D-%=UuX^qEe>2dLQLTthf%5+0OTI`$N z%o8t3;D}aCP?!GpZMFVX1G_rr1sg*Thx1o5Gr>PHw#8vq#Brd5MjD64VBhlzc8uM4 zqiAQNocpr&FSgEo1_f~+0;OV<-65n8`@Kpn@~AH~jB%*o7ba>ev`%bN`V}RUyx&cP z%1!uQ08)(w*A@ahh?D#>WF7;tO)B{DZ}tPyy&x>%hX+1?>qSUkw4-tW<%VTqqH0{Q z=4i9|9}n<64&suf+?EiKiG>^vz9X>!-?lB)xsG#D>0W8Z8_b81Nsup<8h^L>z1oM@ zVXI(2?J$u>ZE8CgLkq|NKrXAQE$^vzC!W)I4ipA^pT@x-pH<1t`rMpkBR74B<E`I7(t| z&wy_~q321j-Eol_5Q%x8FuKiglnS~Q{`G3wC8lLRbF!7;Gt|EKIO7|?cHdK@oZCiM zhu>K}sWmLjB(yu*+GBq3mG+5H$Ikp?9E;q?LU^(eX+JSVI&L2`6>k8#3R#d4BD9(j zTF3+zUjTQAJKJ24@-pKw0X13T)89suF%uyPG(zM##G(&$HW7BULfQj$t+A;FCYJs< zV|n1fdL~ql;yaEokCA9Q?63-;c(%U>IZw74lk~68(yR^~s7*+0{GpPRFY|ZC&RVfk z0a`%gbnkT02|(61=RJu!LP$Jo%jwE_?XO2vPi*c;fV*qKOBpa4e<7L~KwSmeFfE@L z_S}F|6gtdxumbtmC%`~6C0JLaD^A3EqO)OZhpGTQNfjEJ1j^C1vBjb6TIA^lnOOo#@}{eSiyDnIHB)HsisV`@`84bH z;i5P9|EwQ)l{_MSH=XP9Ti2Xk92to?_<^8GO(9YwOuo$xUro`q=FwU*b<` z+yU9%bGJyJ%+$mv{z?{jVt$Ul0lC>GOD537M3#P;MSbz`NsNonJb{!fqI9WPjSD-- zhgzCloO1AVGcE4g`}3!B_}vhVU=bVC#hB}?kmJ+vEw*a@^XHYQOA@%nasJ@A!LRCh zg1mSo9wPsV2NmQ^)erLWE=wg~gD|nA(CMF=W&wr)kkJvgy|no$VG3)(nABH>vkQsOI#RuU1oDW7(wqiujSgp4t=;FTCpt!)h@vgh=Rbw~Ma zm98pxK~4Q%d&lIx$LaUya){sjd#^tmf}iV?{+@i+|IdOsMffhnyeV77#-Dok)s~CG z(Kh{0Hun%0e)is*T<|v&!}OMS9Ur7$YRZ)NSGkH*-?vqyWKU2@o<=hWCnpQ@OFgmE zZ|lnxrw6fi86P0kepyVClfT9hx$k;0RCZ%z%Vcz0rR@MVDB#z#PfKH8S-Qc=zy5g> z*MWYW90xN@8mCvdsl7PZ5qgfvclqfCA|Wj5nd!zBlS1B{X3h(2SAZ)mzJnan#!+zc zpXDiFXWKoC+l`!7q1L;`C4#&Mhv;7%59tIUHa}!7oVRnPk>(7~QZpXg$b7%TRX`n* z35;8^ei?omONSX4zwGwi5VCqFFu#ZCg$lHFc)raUfdqtYm|G~fStx!}l&5B$a?-Mf zpIR}uInPze!pTHAROBo1@U^&H5g%-k_>7(kK1}ya+U)yw*x9ws%0S7nSK^8HJwDD3 z#EQ42lhJR5p3Q?i$(?`m-ce+))D|TIO%}il|aMZTKF*5n7A>JtN8B^{ z%(1P%;$GjUlV~n$Kyx)PwM^iN@~XA9oec;pI~rX988HPTNl;q{Lo;^~2VGN;gVUUG zk71iz$q!AuqJ~b%N@w6s4)fldi#e5TacvG4QJLB$FHbuGZosc0!yQkb#T=4y_3}Az zSH{p{Lq2Hy{C{X-v9h8A14On3B4iRk5S!|=QF9+@BTv8DDNuVUfOO_o6PhY8H1=pfrQv=uc#KcfzeSL-kEpYDcf$)eGS$1a=fWVwJpY51E$0pJu4_rR|M=7P1Yw z&*Ai#jyJVsP(92YtTkQ#ZnueHSweg1l}o7Q0?@s!=6b9WPaQ6`YyeMrhJtXb zw^LvwTlOqt^KIrximyKSEivvfqW;E1qeYkY{%^R*m<>QAMtWR8Be<9>3D{T2ZPnS_ zh7fl{R4#$51Z=Xw2&wm|&{I8CiZPLoZFSht)dj*Gzkhq+SYkGAqX+Kb|B*lz1KuS7 zUS4nZMH?;A@K)3=ty$v#4*ma0zO=#^0_@lLOb?5D9u3@fHzeQ_NBJTj@>llmy6JD| zBSj7BZeuACtQrig*Jts+@2C&TVNUNS?Jcxfy^MLNPf__O#W>6YmAok+6@fUxS?Yla zba+C{{kf<-%Z%*2ANpf|F3g}olBp+UALJ-NRhL`!J{K27gEG~Qz9_h`xbPw1F84BO zRAtk#(+ZK@n?vu3wiSLgQ%L!;{nX4z7S&`H-Rc{^iSyQ6&;Eph%jjUSKa-2EmBY-( zl~LY0K%Dxcxu~wl5{3rdOpW~=mqCPj#=KXR5eqG+98f-yaY}xXBl<(brZd2j>FltI zobhipCu2NL99SDud&Pp1r#P4>)}Y1%iR-U6gsW+%k$T$OTPM>WIo)oN`#l% zd%(ia3_h(gY}TA>PRWpfPjxpGwD0_qrnv^d(&72)Q{O-`)~vg&fSU&(@uMPlD^K0w z=_X_ylLMnruBg4-W!&dK{|SHC(XhUy6ApX<9Fj-S+6! zAk;s};K0VcidKixyln8FK6i|ilgB6_1eYk@0;o7>cbw%MDU}}s zIcft<%=tX)IUrgL&}27|O?d{^VCQ1+h6H09?07w%`}kLpq-WFn=D~c2Dv5{6L}hUv zyAmx#s5)>Q9gQoh4b{?tM$92g4W2oITP!OEj88W>#-5k!qg$Sq_LwRcm=y21$u<>n z)!BLl$tY3gB@0%U(pnK30b0wgCID5!RvOnSC0k6v{v}|=YW}NWgY}8wE1G97$*I!h z5_^fW#Zu!jPhk6!RetBqE0w_XO87{w!10#Cfmqv-wNlnJ9QnHo6;duN?&}5E3L_PI zS!UwUW(Vi8X{Ku*O>tVF?)BU(mxLCJ)sI!8XO`f3OGU>bHOvMI5*?sEo%x}A_09Mw zFJXSg=?i&2nw}0^0{}12A-@Kg@7oE{|6R272k!4+;V;bpF~@t}-J9SGc1BpaI@K4VE5uTE&bWFZ7v`S7$Q0IZPn zECr;U+@LDqCRCPMnkc+k7+0Cst;hl?7PBcIxFro&teiP3ImQ1kcdo&iAwZJ>pz0FW z=ueRqpjw$(V_6P%(BNv%jcC{VX!Zg9y1)%Js3&JOX?Loig%i~-z%ze}3?-cPZlFz> zqXDC-`wvGCuubC#@U915k#Y~>3`C3Ax{uht!9Y|A&$W{*w-J2PC-my&<|t6LlT#)H zYDW7t+5$UVglBI9n-YBPe+0XA%3*`+<$jZ{d~0_fFgBU%(!;Tl@Y>3K6_>a(s7o_W z=d6U_C$cIkF%r1nOc_!}^>b_-vO$LvoD~-pKgBM*t8VGtX?9VL6wcHs3LrviIQcOGCC{Z%&$Xf?G{l@< zxYxm3Zr{G@%l9J|#E-Q2`9PzEC!Lq_mu&JkM{>Qe6;hwh6{!+X({2}?chvc;CZ)tC z8|zzzYWP(0>PYEoc5QWOe*%)*Ptx7&QM$5r`Wr)AshP9oBLnji=`^DH=4m737koF0 zt4YMaKV5C`3t-LycV% zR89U|>GC{bGga@&gx)-|seM8>%c=S=9nZe>OC%gA-ozZBcgN+C{-vS#D3r1EvIPtAAHFHviHsG|kN#oX9|b3W(k1hO z&JH}kkBvko_Vct(?8LyU$~H>@KWUPL;X@NKQfZ^IdMq*C3s?I6fCNgUnjG z)f6+zhKY60T@)L>mf^Wu#PXMZq5#bnw0I639#bBWPr3on;LbOXW!D{9yL&vlD2pif zZZCxLpYj3%a=kw&;@YH-FUT6p zlhV&0&Bg2V@UD~$xLDx5_MNx8%5_cFlbq)21c2^ys>;DYpSKk>lv)w(231&P4CLV1 z^732-Iqj^qh$pUW`+mBlT%l1j&7+_m`1~}_O*SXr>jRa>H@s>_nQK&`b#u4N{y{hW_iP#xt%_#*>S2dneLXDJ zbWEaZwb(rUyxuL5n$mMiwIwu;G0V`FNfShhEJ-MJDcgv}$rHQ(QvP4lz4HwS z)Sp}t?jXaP1M)u(G>;szmvHqJHgzra60(8BFOSN~kSl(m^bFClR@JIMa35f&<&qov zG|+L5r}BaqR|>p5C)71T8pbwijZ|fqmgrZb{+fdAB~Q^rAc_dg=>z`W*2;$_G+fFK4)sGJf6>wP)tc;>FVB=aB;%ic zX&KM)Ps@sDmVE~=A#`0SO*VkiAEFy_@43PTY0v*`Y`I`cS*U*`mq7bo-!X0BD)dVO z&Q=L-Vr{RR1ct4vjRO=U8>MfLn(2gGeeh@3V;bo$?J94uPWxt^Z?)~)?Yp{5N$()9 z(*aOAjT`0w{f&n1q`{)I3ljOL+@|+2J_R`k^PQ9B>3Y#Xc2Ty;Qr^-@SH9NkUnd=D zPo>4EYa0N~fu{SoHe*JKuhZP%;4?>Iq-q~`RLAnn%l-)Kl5Ky_ZJ{*rEP;WFJJpW( zZ~Rh1UUDR|xuklPyMF=2OPp=jI`nT0^qprb3GUrD1sV~D4OzUXp2h<=0c7INK2_ck z*-)C&l7piNq%r`|9QQOa?QLX%T(KimpFR4Q+7_wchZ}I!VyZ!Bv5HsB?fBtaqqz8% zZRh?1{_)30Jl3fx3-R{7r#!b{e4~k3GGK-?v2f6-`g0~+QwPyJ;L=b%qT1A6JV0>J zb}u^hDvIDgk14=*e!6-6yw3{%GSZpC756+VDOS08m5Zm`KDOr7FD5EJJJm1Tnet2R z7NVSye^9AcA!c{o%YEpbi{E{od+~fvEFCZE9YBxD&-E5uI`Jp2QWPS?u3nrh@5+H6 zBFd*8Iopbpyb;i~{e`Img{hse5wkKoabfy+(cn0G+5v7xh`)a{G z|5SAiU{cI;a@Z5}>VvV^5~JjMMpt6N9_u&oE3>$CEPw3F)2*aWMl(A(GgSLm9+$>e z&ktzl+Xxr_{w^Z%d)pB_yaZt6z>`D4_LOh^`7iOpc;9I@+94Is;<+a4oJ?pa{g-zu zrK;=hWrx!>U0!5`3ltL*o-JdRn%#RAGAUnBi3eU*uJ5rfVm6|c-IJBts~<6wun8CcJBJVSB9)p_^2=> z{jBhDyWr+2#tVhOWn$tn^z##NM21`W{Gi6`a*zC2?CHD#*vYI$Q+FKMM=8EgC3x1flnRiFJ9KIbZE%)={uv{R# z$imczFZrK!_6G9i0{G!6&47*Ao;UE5Rd}5o6JHW|TLVUex}H1uW_OXHd&1GRI$(jO zqwI|Q!%jIIg5_lQ_-{StU&5h4lzz^+3pYIf2>QTf5@< zxkUS*gz}3+ADvMm+&pAG)XKZBr1?Y3ntNT|A!Ys-_bb9UP{&x;$@b2zZ=OYUk#^4M z8K=l_6?%xnQ~fu4G_Td>w$N6T@2NeEnxv#tsDydm;4 z2+RDwQejvI38q({sGm+~3JKJlQOjKIDb`C`T1mntFOlGcT=_l{s=ix18}IO4fQR$a z0YhkYvEiu$&V!3O{w|h}!$O0*#9K7IT`K8Fn+9t*mcWS8QcF9=_&5E;U!FQ@tm|MM z+Aa$R_uV7qdoW!+4r=w)-wA`OY%)|U(hird4#!{ZDzHFRTlZ|$x%^?zrN~bF_k6g= zRB&N5qqzhW=>KRv{D!)qwX>5kKnqh&J#ahnP$@}F#!ONM%~KTl_yo;BPClDqv}@*71|zP zM^MMyS1PddqZ<(QGI5WIZp)_bqSu^9gE!k^Sknke;KydTqD}Iz-^7HcES_Sm?{=Qz zrbyDbhH0BP40%6O3XJGO!z;zuXtl{BFZOG-2T~_j z@t{FT+&SGJQgwU+kxY}&jx5Laeye})0^}BDeh+vJD%1MjS^rlTUuw_F@$Y{4BQ-us&^ zfpyY2J3UWx;7w8u4aWZMfn8;YH&WizdaFEk3;aKZ&itS02ae;rFT*y*+;h*F`-*Jt z+uXNYNupd8U3NI;%G^iPoT*euqH}XKMU5yrz9C9CrBY;H`wKolY>&r2ulMWqd`fSp zGR^0rjCZAigKIH6v~VJL=H=K{pYs**lN@wJN5^5s=lCucswpqVE^%?J0v#1)d_-CL zwg#)_uC;!M$k4LXUqQZ4vKK;L5FtSY>_7&TU44aVjAdQ(JRQ^sDVT&g&=3NYNg!JLWMLZk+QR?Ya667*=snW1NdVim=1bXdp2G0FoXB z@{Ff>t&Eh@B9uR*Mtzh&yse5fiyjn4NCxJy!)dVnD_}GW0|vfWwuqT4N-gZDe#_yY zOZ+CfU7A^H4H{tof}yx-M!V6Lebey;pm-!ss`f?GU`f+NXmgBoxszjv^#Q}p!WqJ+ zkWoEbq86(6vb?5AV$Hy&GqSo+UD9HK_jVJGNO?Q1qt+aKG0yOwTg;AwO9T-@5)WB! z8Xiz_Q8WOv>u;|({>Xtl{2o)0{oywP9?36VD_h+6l-Z05Fgzg1c=@!x-KmShzaD*X zy_DP6t zkWzt=kba6pgK4F1E9I2e3P^IenOn83+MFIrvGhjGn7o>YXm0>cmNw>EO)n^EZsfyW zG#>h^&O<$0pc8(PZQcL8fa%P08w7ow}?j=eDRjeI4qOBW>)xS}Vb z2I29`(UMUBFqTUb{l!6mLY0w9^K=0IDq|jbcJbd=(5jmL*G9N_=8sPd)JL){Tjx~> zIf&PucLi8}kPMcm`eGJyzKW9<&`ltE&6ek9E7BG$o_13KR(9uURp_fPk^M@(#)SE% zIYnPd!E>wDcS0ct{>0+Z_16V`ffmls?6$i_q}H?a7oPWVS=EeyVIMUpc=QYsqgyp9qF1HE`+1x(pGMSvvVD8^3vOK}j)% zespFqvOPW;)}3)CWQmxnIk`m(~6+F$C^mMiXr{|F2(z|oDrkg~?gXuAZSGJ__x9i>q`G8H@ z2%0S!PlG07puQ(*^#&AOn>@QV_jvg^_Z$!1H8Rcvh+QkqrHI7cA>(%Xej~X1UE&^H zrNYB&?kwn>cpUdW+r5iVL$!+pe;y9gtrYcgf~SzBIK1yJjv;Y885#geqbcgz`QDJ; zJjq3xoM}NYzLoG)w!nv5D*+)hA`j=`E8xtf2a-+rNshD45_+;Wz-FG=SO=GKL_F@A zIo&&V0#hDO@o5_a=hMz*g?lm$p6&hV5^FQ@HXyRS5mCr3k-t%_koDhF2hk}ie>p;N z>EfhX;^O|c3GzIp+&WLeg13GbsOW)b5UUoGM$pq^;u&LFC9uOC1$A}w)JnR1<4B+^UrPFOp+c7;W{LfVLl zKD6AyVcPv}g0D67L@GA}3DnXXiQoqziFp7o-tJ#q5f5P6ysuy8bowf+ZI-TI#g+OD zl$xIkX=Ur(bqFBlXPp8Z=8&cM^tu5c%7p&i6X?56!|O8SY8|P3ifN&PPL?ZGP5Bdk z#HDt`cXiZdb+o3z(RZADFvsm+92d%#I5DEOo&?2M=hZpX`EhbF0y1-fhwF`r*y-Ig z_)}N{4a)GKsj1)>=O^=7+!E#;&qB#_Dqa(zN1sJc%yCj(3fI+zY(%`;_Of-7tfte{ZqA^n zHBXKYjGLy(xPTN=xX@meQ4XbQm~tq2H0+h6cP(XpxZc+q!?-&fP$-r@&Qtk3CU=K& zL)rBlvBG$tgW*WL(MWt!ATk&Mjhh8xR_JPcucV|idfG~dx!xhKX6=pus8fI=wKeco zGDdgC*5gfJ)F@nyLSWGmZX=Nhg8d(&L`H$3)?0}sOp(o*koogz$XuFxKZtS;E6j$gwa_Uw?z)Jbc{9edTT&`bczb^Z2;#%>#ZG~ zt~`W?E5PGm{=IqcXn-#h^sgR;JN`=QPoU5zPfS#;AkNGypmh{(@xZGg&!#f^cyF6@ zfsZ6l`4l8F-`^+fUR~MM;uT~h(Xsx*K9|-B=IejU&xnY~z-rnnpQtR)CClaopJv%; zJ|~)WB863G!Bbjf)(US&p7yb8gC8ZIw7|A5Jn0~tX@&y!uzW;?|ELSpeMcRs@ z^r6-}ASb>G!jlRnZekpLKXQa3(eTV$-t`!7(aa)3FeO^>H0UtPT9keiy17~e zv~seu$}7Dg2%RMYD7nycPMuCL1o}BN129lYxnrZ%S(fAV_nQG;8 zRV|L5aUUiNGa_XgwUk|5=msUSGV$*X;|u$>8b&X|{C#h2$<@`?uM%$reoD?u^9V|UVC%w*j}>^0giAB5d1b5Y&vzc%&L{u( zk*?+I=Q3R1`0i(eL5!13lD~f@j2oc_QJ5upvCj;+!`WbQKiE0rWIx&~CrY)|Ww4p2ja=??`k)$|AXW+4xEflse`oOty*+kl_F0{(Zaj(8C*@%nIUR`sJw7W2-e z@{t#EqRk-zvd>9~3B|xkix;`!E(P-C5s^~y%826--$H(gnpbm+P07;)S$#B6v>2HG z!gW9KlMp_eb4rgvrIH~jw3W}nA*30!08>9qh8t8#u-(4Z70IjuEBMlz4UY34>Ee

a-jcp50W{tTye#)D6vydeAb-4nT|%R?8jkhVcYiogxY;vNk&-_ z>IEH}KyJU2gBDCjZM|WJ#${+k@yC2flDr z%=1+LxZIjg>zw+Ougb~?_24tBM>9zkcY+BY7w?&x=JTu$>ZVToeYHJWNK1!^&?s`8g1LduocWINquTIOJ=HDytv1 zD5yYO{p#Y{OmeLt6z+!_^=8(>3=?%!w1X{pL)E~O>e5yUMa%1v-wud-$mBcCkX3}5 z!BK$w31r=5kF5^}t$&KU^8Gr$zK4c$eP&#xW@)et0D{4h+wdB>2oS$RyH3c>r$gnr z6ks7wq^pQ|E?ksAzt=h4Ly)<1NxUfFNjwYcaU|AtHo>i=hq<~ zG;;1R4Y?GRa0+^SZwQ2<@gXR}gF?6iaC#f|$7~eIdV7O5Ydg$!2`|o~Lqn%W2E;~f zr)l|P6p5U12Q%IcPh=`J$2f4;CK|tsMLiOrI{_SR@Dk4gi0%YTnPeR+I6(Iz^L4=@;V#4c~8+tsGgTXQ2Rs599?l1=3(TD>CdC? zevsNlkj$V1M+ikEz-p^$bfZUZiL2KW;D+@BG z&z)kyPi)D==ua%koRhg*rWC4`Q|S^1osvFqG5Xx~TnsDf>r8Y{`V?WJ?%aP7FB4l_Fg}2*R`=*Ol$@(c!;8YkgGe9EBXZ(a{WAZ z$wG1(Ff(GcIr7(jVoJP|c0zgCRxQJ{N?kYM}CcRC7lixVr zsZv%xY63Y%r}x5Gtl zWm#WM56|UTXP#}*cI97xtF0WXGvCL>Y|{Q%pjlj z$f5d>w$D2QZ~Hy-b+hP_nb^sHq1C3h=l+HIMBbe{L1Gb1rD~d8F8IVK?c;yA@u1)& zt6u-V#Vo1GjpBp5CMJASqBY(<3r>l<$P$)XlqgSlT9N4;EkGcBByu>^;TG^1Q`7Z; z7e*fL+t&kq;RqiFXx9Kay;BD`Q1cJ7?mO4K;5^SdAo&lC{#I#M06P0V&`@PqOIy`g zBdKbg;;T_?)>nPhX4zJk&it+TpMaZc`ZB;!?Sv`Cg_QY2cT{{h)sLU!pEJKr;}9z8 zD#Th(nWBL%N%t8__dUn_5sH}JpwzEXRvtkDKyob;Ic#y_jG{9x=W@)-d*HJpB~_4z zS-~Zv-aT=Wx5GHc9q0e-${AFGetE-dF>RR2Ld8Mm3RCnP?3q z!sDIJ$%Kr};s3Tak1eBQt#pM?8V>Y4J=16r-y?|G@7;bUbM50~%kOK7ekV3QV*g!O zKW}~6?Sp!R)y%oc%%O&F z*e{*nq`Nnae*6cO&oq3Roq`=YVg4;8Y(%JWpZWe++FXYDtu6bv*Nb4Hrc`0n_a~yI z(uX?P9J0z8j4V_*bCFH~OR730c2J{Ry%aRP7ReWR&k&Mtw6{%#$xAsfJoVNz^0k`R zSAE;K`By4`-$+=UTG?_JdV9}jALa0A->-?t?>^AacToK?c3<+i05e!%ynTS7ZalSO zmn&P$rsU}b&I5A9$(Tcw=fdN)3{@Ee4kx!TvUYK2jgE;c!WFahO;m3oO7>VRl7?;? z-MXx7V)4r$woQ{m0-sr&&+Hhm7+#srJ;O+0i0D7uaK7=kb3+rY_$vimq{Qh^9sN3- zxo}=_yKeD3;n50dMDlj+wLKQ0pPON##fUV@bg)0KSE3kmRYcWf<3aCJDsu?k7swwx zqeLybO4MHwye-~N`uMhZX9+QMhIlsi>CM0?-u})@fVV}8CpL~hG<@*iUpK8Q9Xn*D zmN?vH?aQN~I#>LKFVH==6;F6Pzq!>ser@99GQNxV>TKe<_UX`0#rv{vZ*&H?H16+t zI6HOW;xQHbqL*WPF260d6yDi{TdmZ`mgM8M7Z%QoM^fY18mBLpdVk7^{RF|^BA8gd z-{$E@?UDAED3r(?5_8_I`$g=`21b4wy=Q7ev#3y~x*!Jfr~iq$>4Rc$$yU$CgDG8$ z*^7eT+pa@rs*h{|+LY=6cI|m_c6vyi;S}?NGv%4eOzCnL6&A5)hZ>6UA}8&0*HasfjMJ(?$al?>h6)g#KgZnaV3FWyr|dPv$1obM?()?dF^q1Vropk z#PZhdraZZa{XE$ATTH(2H2`YH8rn%USaQ^1m~eHksJ0yze)N6zE;$LxtS^ieMb$7M zFhrBcs?Hh{jCtJAWGoNR&pRj00_O7!1PVqA&k!Mm4DY|PpF;;sk2!^ z6oMD%!92ztdib3YgdgTQD!LoGZERDlyLA0BUA5eQ0Aj6!q3#-AW)=M!EU!$EAL%57 zpnLB;m%2qN)#|(T=;t=h>u1C@!`BjuR_F238%^r^>(}2%9b$V6+scT{EoYcrFj(~7 zLCb%i_wEs0>8qI`X8#$E5~2wCHc5|R21L6GSP0nQp;|ssURdNq?u|B%CGjm#qeYOYAWbCp8%O*Fn15+;RDK`&8W9Gq7 z;Got`THrL1irqDoAWUM971aJLck_tZ`9=hx8o#5Jd+kLncH+(yF3r1YEVUu(kubMs zw+xF+1^|@*K%h{7aL0JK^O*;(0ssghK=@Bid37&@E`dVj5Ha-g+0ByMv1;ATBSi$f z*~SGIPFs-ycQwU+5LjAF^1Bp%u{?Ox7bK#!w0=#llhK;wnggw9dvcyMG+y`PN#U>- z-bXTHt@PrcqEut>`r6@Qacj^UUEtqu&J~4W5gVDRf)PS)7*A@w%?ovp%drG<1KknjeNq2O)R4XTeYhLh_mci?KPa{|b`wVZ z9QCwmTPiFbL1g%)6gCt^w;KqhY8TH>XO};^ZlddBGx`Ji(-*&D(K3GtO3w(Gb-3?f za(otFOM_PNYRCs>%n1y9qbXb(Kahfh3h%5^oPuBfeiEdmWhZcyL-vMHnlsu3EWA%( zBU!}(3>Hy!!#%Xud6p3C7}-S~vmL^l6i6S-^l|aNsjFG0E_mJ1N|sL4^pQ@Diq5ms zv>cE;CSx&7O}x4`ctJ|78T=Lr)C9EW57(m8gth#W^sSj=!cd3R0# zyH>iYtPBpaDVu3nL1ys$aJ>9RyJOp`;2?zLy1;yl1UXA?Zk>|R!6x5Ybc%DK3gVkN z3|@YScFuHpSG-V?uLR1a3R2Af{dk~MDrtw*0+skujfJniyLIvd)kYPC4i6&;IAr-G z&K+^d&hZFp7^;wgs2sJ$Y)j;jk8b^FxATx(zv77Ta@~9OJ(LfXMP(UWB|i`JXTr1z zlaA7I=eqS3)&tdYn!d$L<~wY^F4A)nyZ`q|lJ0;Alq<{t%5hUNYbU`VUiG;7?X3#> zMN}DOXBAp`GPbQwGUuUgd7MfCL=WL0pp5-Wnv{liH~C)0^O`H9eU|3aOMZvY_qnkq zF<)&7JLrGZ-bOZ-gG$xI`Y^OjhC+TnzWI#dfNuz>@}%n^X|$@cH^?}G!5Ta69Oy~nP^A@`Z!3twQ1jB4`oMHd_$?0h>fZHhj5YVp z7c*#}yF;9gqEJ`yN-2*tvl2OEgz3#S!B?b-3vf`4uRUf-a|ewz;6-qBrUge;ijwPC zyDR~ZQkD@X3?{lrpT)Adt~+L8sdX2JILk$)J3EqPb-O}WguC*H&b|Z3S8a;W?7~g0 za7rz^|GdS5wfB~@Xg!Ugm6z;ZW@nF5sk)ZE^av3x(jaHpe4p{^yGn@Q{0qtQetqqw z8oaWbV|!iMK-P5?n|ZrGTs7z1N&s}~x{LIFs#Y<3LGC5hMFAuby09Bv&eyq>snNfS zig3y5VqFWi?W+tNzvt*xDr;9J2}9;D1wZIlA?8;mm+?u-*3)&M%X!ykoioulb?`@^z}z`v7zXoa zc^q85hqpkBQuJ8n_dy1AQ?A6up*Ncb@7l7d9YkCbD@f#f35(eQ!464O#wU&+pRgaGVX zXYS z1CNOza}V?{N=p74(>eYF+Jqdw_jO-E23`dgvE2d=`^!cDy6y4^HQa|AV51ZLu44iR;}SrGP6t3taR z@T6Xq38JgH*;V3vwBi7GWQRjkF#J*gY4DF{PkC9@Rq6hwyQgmgqMjsBwFuh=sP_$HwDm(gu}mLi>oOHS7p|5>i4g_lgfMaIDTSX zWwx=QOwVqh$b$ofk2y#$KB!_6i3A~=JWgE*^cnU5i3N_An|l`cCCQq9U|jHlOaXQG zF2Rr1mQNcEHl4NeCYsR1F;~GnqiexNbo*HXZmksELMg`iG-uc58`zgbqhpc=)6?bj z=v|t9(sOQ!$*}~{h>Ct=FIS+xzgVB$Ur-S!BOW6F`j8ltH`gwZ!~5#6{!IZ_H+%0u zn_-FtQU7Tn?K}gtv0C19Z=iM4o8gIPH+cGO=sj!1?X@eX?8_$u4}xO$06>2yi^g$T zPh~Jq;U9r{$2Ig2gHxR0k0h+&4!5;|JoV{H5h7H1ndP*TYB&~C`47UI%IuDI%Y;V} zyK+@|i8YdYPhM`7xomR0`cXjI4`41>C*_fs;o^*JM!+zLe$n9^;;Fvlne^vY??oHB zo~fyPS2{9v=*RfBxE$bw$dldPW3F3}P2~-xyziMFmj{~hvrT-|hjLg{%FklSP-WnT zGw5n#d2KZ1%g!_%C$dwKtDS!x--aP1_cr*TFZ|~w{;yo0cHcCtbsc1R(6N=o-V=0K z#EWZG`>P_^b+Y{@bSKfJm7JR9I%*8Z05CZfx5L+YxIr%#TM<-x< z4@<8Bi+v7eUf9#qhS>r`!x$jQZ}BQdL{fklGUXJ=2LK@h1%cSv8xS5KNf!$on}_Ya zfN4$vmH9ypi5M&`&OHq-1Sr^~W&0u|F)H}qpp-nOX0yMPYxD`DJeWMj5tZtsl%m{m z3>#H`BD5-P4= z4+U+C2oM5%yKx{q7j_{9xBo0{*jsC4z{E<>qOI}OYN zjfI;8jQ%G05s`29%VCv)jrI`2b?_Yx&5$OwNDRWfOy_OzndMsj#55;8J}zvEh8LC< zORwQy#+pK&Tka%$WSXHRv{0L88x;d}Tif&JJHALFW~S0cx(p_AGf&t>M?h=Zr~L6RUg!f5umEWqL6J-b8cM+r6=ic{wuh~p^ zYc4%FAN#ziR;P)c4p6$3<^Lul{I-LWZA!H;O6*TL0GI;EC1GI((!a}OgaA+p2bE_C zyp%5&%+9f|sp(ETJd70)QbkJ1Iya)!^0jgg4J)4L!5vx9Z!|q26wc%q{fYK#SBgs0 zG!g*Q)WBuU72=~i69=XLS_$&=QY0<}0;@UsUFwyEm&hW)d$s=l11D&q(ziw6&q>Fp z!-eJF!5h=b-mPaLRHhU?qP~ly#|B-lf;EOHRQhA;=aGAUAa-eCG(+9m1tLB~%ucfX zc-1YDibxd5Rj}3OJ{UYnFVZaorMDfh&6F8TU~#?SXUXzqZ)ZLaR&V+O2Fgagf)%L`DtBsh8IFk=ya3Q)0GD< z?6WI$4}M0rR0lg1;4-A@i$bt-$Bs(`D?!2eLK+ONg^f{z#8d|CbRO(db}`(Fc9uX9 zg$BtF>5v?MnK(Frss-OUDA7CdSRlITxZ)}dyHJ4R=_=J>-!1}W+A(GG$kVRPB^abB zE|*l_Xf-WAzR)}@2tHeVEYfrb|3URtKBtxHLL!3w+m5Qwd%98F@ZB~QX`15_=0Nj$ zQ$`(L86LpLp%^C*FS4zmgtIb4Z$aB$l>P@&#FV{lh0%#Z008F?$PI3~R}c|Il}`L4 z9^8aX1fLJ|hh_Ycy2RC(55=AyP|*`!!rY)@^*Au~sM;}*LIuXBpMriDin->1zE-*S zD2CjHP4k!W(_H{43V^%1O0@;*Tj_f|iGH+buosH=xtTMNl9BOak$rM zTckvDLdzUOv1%WYWgOHiSsgkJJJJHvBVJva6>)8sJ}hYbEukOrH^6k1C?nXTL<5nc z_D}mNT4rKJ{9q#XyBUAYuI86^`5tHSG@euNb1aT@llhg8Uc?b#OO@26FzngJr#shBRFQwWuNOXf6FYzMjip8l4OVjPga#D|HhId}Vn0+pg9z2(Db1y_A z;?<`3gTLYnw*mjXR5b=OCD z{Z!pr0HQ^JZsA;YAA;UTX$k`GCYNK)s9^mOpxgk|av8E%85&j&J=Angng{e;1-lhu z+nyPh3wg@wzwyU>9b*md&doNKRcWSdir=|_dsS;80%4!k#vCggh63*aIq4!hTZe88 zH1)J}S)>f0Knr-4QFg!fw%Sw{w$cC^b<*D6Kl|oFj`c8lfUSe`Q(&oJymU_qFY0*{ z3GcKp4`qS&7~qHHMEWpLef26h#6X{O5=t@12NHtKz_lNNIZe*H1mI`^SOy?-HblX5 zo-{S6xOs$g=IoW&1yhe;Ohf;8_$1`)+^s^Ld!W>w*?j}~{;`(2SQ(6HO3G;-C!NqV z(3=z-J%8OI2lXFI?t%%o**|#3hXYL?mo8(EG;e0K^Mxm& zsmg>r70B0zMA&8Nb#pkulVI0X1gU7?tJk`5MZmE8D3Oe2Zr*FmMYfYG= z>*6Ob6K0FX(&G}fc{{TWl166<3J8QWb|PsJt|!5#F+i;pAh{ZVWIw!Cgd5^(={BLH zeMUe)^d;(bcl#{yTqGIT*h1|UlF{k^K$gad{f2iDg|Cw{%nw8piiEK{L?-BNHm2uF z=EWf8Y?#K;RSkI+$gj7+{bl}sPPdUc`KU=t%roP%s@77OqC?T=3g*FrcT_*Xl-skj zaKX!n2o{2fyxH2x=|sJb7t60d{{1$5Z1ts#@+%!mvrHdsJmwru%C_})5RLahkqP( z$`aULevnIh{B%=q> zTMx=v97Wi}5lj_13UFBL;a!=R!YH$uBZ1b}Q;6h1RaN998#Wz@E!Y;nyee{^gSu=0 z8~h+~gV+n|mN)y_p%wl1E(T>`o*OQJ+s=U9Xwa}lfLPZB&?I1oA9TlgX440@&j3sm z+zRN2e(h0L-`~|-_r~1LDZot2@Li&n>uytF4OWXyfxr+ei4sE@v^ zkK?tBH&c)g65eD3^QA`j}Oa)V!n%DwJERiynf#2ASLF3HK(v6^XR7^CIt)V8|-FM6POT%=rTZ= z7$UVz4&RO9mKywUI|iLDx19$mYYM9Y`vYR#R*5ETn3@Inga$Y)1x7c~KV+f={qaF7 z6&hR@rQKcF)gCRZ`JVE&6*UP2lr6lm)d7osG~5u6E|(VWIFO@P?d=Nj54I%M4?j3t z2)?!zmbS(yIs%*b0P%>*OB=9nbj0G=wdGfZoZG= z71%s34$P3fEPcUQ80BL`fYMoHZ}`WJpogD=d-grLRG0SdjpOxwOt#}}b#p~_I@-+e zsX7QIqlF_->r7nSj6Js}JrAU;a&P7flk3*LC5LNLWG^eY9Ge#}lz_+2&$Bzx1IX+C zYX833J7~amr@XTkq&wa=5uW3lz2GId*%ZjU{L<0)1dTZ(jP}YbC{|Y8Ry2`uv#cIILzQ)Af=HKSe$bgaBHsOqR;Af@on05^rT@9%n zw`!N}uCAV46zB;VmgED>M+&bTllb}K9<^y*KkIT0-3+O7=$wUn1@`~v| zLv3ss;VuefJZ>cKB57B>`Jn#rwibCfN1lMVO&_EG z5ZC-e+Ek)086$)a%*26jTJZ!=)?`eB)@aeyZJ!oylYUi~AM(Nm9Oa$g{8mZXscmKY zjBn4-89HX;eI5cQn53(Z17e^-5{ogMm(?ySeL3r_%PpmL_A^AH&UeoddbM7(h$YK| z)SUg$h1L5EcZ<^!Y2({9sJCnDfpej({SfD{Fr)@!8^7>Ft|{1v53Z6FZI^HO2qwH?FY@(vNhVq5aVX7e|=LZX0==F|2Tl!W>k0PVs zf6qji^l>|Z!NLPv1pSU2EAPm$)rF<(lP+__KI^Y6J=twn<&ee+?ICAnmyat=`?W&N zlwaRceQk z{&$!Y@zA4vw`h_s`P4&f2|&`*K_%2j{1yhyTy>4o?&pyq@A0jbOBnD6)JkDYW#T$W zD0P$O=xpUvFIA}@(zo$|WIc1Quk$f+cRxt+WQz4b@GfP$dB)*I;>~R9C?Yl!9Pyag zv-pKe40lI}7MWr6$AKOmCJ1=58AhUZ)$rpdm!voeFcUy2vi`(^S0}Lll#GO{YpFUW z%$EK8*ODx>kfMh{`LP8=c{ zOlNe&rQBdSd?;|A=8_?8V>#sLTBJ;S2fDds;?6gvXUE%jz=fmwdzKv*h0U*ZgxEH{ zQ=KZ$*bdujlcU*0BB0BS3=v%fnEhMISFkJ){Tq)l4TxjHwB#K_xyTWjVS?9W>1h>n zNq3Fm@);7z5dQ*;-v)~tl>0b3xw`uw`L492^2ok5>k569hrSL3nd{gAHLX*z<(#)& zVt!NEt#omrfqi8n0JQElZ?_7+(7@Ok$(uAXH}fzKHu1N3 zonY5c*f6XXE614~(KlPj?_1NVJ{B(FXwZeT1&O6d`n)H9^s7$-v=HbV2Lg^EvR`n7 zV?Q>kCK5{BxAhh;0{u+h4#mj@I=GK5BAoRX!Pl$yi4ixr!Yvw9{;Ow`-Ts7PycLFC zb&_nXHpFt;1L`#lS5|Z1K-gIrfiEm9h}ybL*ao}k&Ha~J_zUPO;l&*8R{M}BPfMPr zvPbue?K>@aRDI3ONUm{mP1R(}>&ZrjIrUDNcXB%SC=53)0F0C(540$i13^dHqr(aa zZqT&@Y`*0X;dCdlRZ?s0wy#>w#D?=;ArHCNVn}L;3Ny{a2FF-6#~@vi`_6x#qO+#= ze9~52v)Tt%Mt=c`lDP14Zm29G+L6RpUAL;sGq#8hLb)Oo&UNLQ2#n5d-P*T5j&>#6 zK)F=D_P?A*<(_RvbLt%Q5>puAvSQeuX5FonJerUV#5C}E8p;lKos+B_h@bjv*-!fG zKTAJ2wUpQi@Q6cyOHKDU-US=Nj@-hECJql0M)^+la68dh{!LZo;fJa*YnCAJFI#XO zC}pXh?P#J>3Gq6>I0}H6na;xlHhAKUD7V6$`NW}1tS%L6j1Bu*&|xGaJ|X;->~GeI zbANrE!!0lx#m9p#52zf7Z@`Fc@SU-iYvg)bLo(&MiNqMWatA=aXhJXjY=l_tj4q*b zoTJ7z^yPQO?c3pzg6AZmy};*jnAPC8KfT@-q(9>O!#yY^pN$P=mU3I#HZ6`eeU|S_ zS?NxS?t4;B2k$t}bTQE+@&>J$eO5)tYyieZ*)jLkkL1k6MTdf$3{i|roH+qN)Qd1R z;}DC{Exx5<5aUbLOJAJTP%~4%`J@xh(6!`nz^SC?=oPz~m>r)L?d6*g^(f2>N*6uS z3kLq90X`i;yC5Rxrh*MAPqlxX+BP;zCSi{p)5(Be?Yu<_`>5+pX%dqqaW9b;;Rk+A zh#i;(@nMX~rWIw8lVtv|J1ziuz(@Z`2i@nyas5I;M4iC}guLW%EYsSjLzq%!N^aUk zO?oSLzV?uvSI-YRLcR91fV+JZ`z4!3M%b6`LXx~P?_ba%KJcyxDUTYr58PCfN( zpZ9p=&2zrU_VR98^2rKffzR$Nb)3EEKy6B^tcioFYbVg%XYe32)tP)DE`CIrU5WCM(R+!7c15b_N*P#!Yu!uu zvka;`>!mMy;iF;U23@V}Mm9@S@wmogfrVrXqBh-5l204#5!W#s$T3h?Y0XV0Nib(& zdnn=+E-b!rh0%hw!Zd{!D{|c+&mm!FKAiL5039}6noY|4TR${+xsXm!J+{d@qO9a^ z34FrQkXvGC1{WwrF|v#hB-RxL0E>|8)--_!Ph~(7>ghLW_dMel1j2jc_jj zmhz*}U_QsmP{n)$?zsgYcOA8y-g8W~?&!-}g3Bch_U#Gs4mt%O8r5zkC@x|Zzg?pn z&W~jSWJ^=&l}#Q64Xva?Hu6dxD=QmT{Byfdh9L^YAH-xl&lx36@!=wL)k2OjP}@_N}E2w6-x_dfxO-odho7Z2GE0PSq4ZW8sZ>xd4lsQHQPfDa zEBQbZXI=Sq0KE}Cn9YHns=L~4f`|`$lz8ybVN_n<0MNA`Nbx{C{e%$qe`aYLsfl-$sgkeyX1PPu z68Rv)kYS-eb{f_W0Z_H{KWk+&nIcKigB8Y}+;yNBM+CzMTuS1kadLm9%cT`oWp@G7 zV)|D3CO3|k29P8dw&31080BY-{Gm^-C%-52bpR1 zE`JUBk8R9M$lD9i_2urm#sXQ5Jl&@!eW8s0?3LoJANQta=?YZWuW?1D4DaiL{*Xps z4#8Bq12Z*`PFEh>mxVAuf;Jjhvk(0TNUDn<+(&Rl1Sw#TYaTO+6Zi`1nqYg7Wvz3a zo)kKL2H;gFfDG8(%%Q^EyK=Jmuy7aBzy?!T@&|ZE`6hgzlB-iKhZbJ=oKnMty#J zO`C6M`9!iHXx9hyb?QCN06mz0XrA)<*vWU8HFn%TClgC6!dnWje7v?!K;VlBt*0Dj;bAU(eetesnJ6l7>Ff z@&sB)q$q|oQJ{~tcci=zYN}q=&CW&EkT6`@0uM5<3jy6 z@}s$GJq9@#1jM)FbsTTDyMrKvTSAvBbDX-s<5pl%4|B1F;^>bCG99nZxC}N~fWU3mvs z)=a_kIeFHmJL0M=3vpcB8<59LE)q$rElk*XDRK%SiQ2D1;bw(F7J(&(llw-%>ne)M zU3a+;c{QFGtxg%PTG5M7tRXu*p_p2l@TA=0+%d;<7pPrr9th13l?Aio^vYp1`fzr_ zopM&onRyAh6yL_Xf;ZOJFKjUA-*d0lGV=eyFS)a^f8pBt1-m1{JbPZ|GQuQO>Q)xD zdTImC>$VEAM4qa=6)whr)B$4imWokh({l;ury7(CEo3y7fZhj0#V|XFxqI{#T0Wcp zT}Rqz^Gq@kPGwKzwz9yYi*XheqND<2$4WZiCG<*M3vIFZV(!)ck@%E65k(O)QAF1X zFR?FA_Z{f{xD_$I{(vV26Wsmr6bkpQm!7~Y>F)50*0@D^BRfgroY1@h1C9gDaj$4VH# zfO1KRp)q5}3_g4M@3W0u6K z;`>q^cEuycTf*IJfUW?ypZ%f+L<|a%H!p3vS4Y1Xw(s>dHy#hq(`` z={&1FJNlu-wRj|$wDb42_}%Ot3zOh#kvFV|^jd)Q3UKuc0<+D1>5mP{a&1o%#gisf zzEm0~mP&55PK7&mL*56)IYJZ=rwfR#fIKy`yT&^6*|p*}v$H*!c{%;LxvxLrOZ25@ zV}v@g{mbE?D4^cC&&l2g%n_N87PE)h^A}r>%QCypFaPH-aK(dQCNhBmm9Ehvv3K95 z4);v&P0>fn@xjc5vsKjGsFV*MX|SKi_iqwiJuki=%gQ^*zx>K;R5t-cP;Y-9@$8oY zdZHi0{3Tfe#@7)LEl!R@99sM|fOMt3JQ#amFucSPo0e6?F#=P7JpoC%C-va0O3#}z zSi2}Oz$g>7(^}M)chJf!P$-J3f?7n;Q3Qm4e_pr?>mc`ATmzHXPummTA=B@FMnTpD zbGDF}vgv}BDj(7*FaPU`I2U85>GJteaWlVGrSmlE!>4Luu*zm#bYWNCVSN|j!Kjg4 zTX1bct@SFif~q-xXDPdb+REhz2yznGkhv-mf5bCoGIZ`pl!7_y#n&}^=XEdF@28u> zph0XLi6v=?pETYHM3@Hsv;x`_KkVLjk?%b}$=pDwU+6CSrFEwIOJxNX`G$}Ml(P*Ulyr!!?73rD%~rRPRgpyLyRn#%Z-EvPEQp$R zf*kilb#Ax7!OHk%Un!{z5`V2#igt9M19HH5!y#L%_+w;A9nGNcqcA6hZl0M|JM(I= z6|ppnzmXsgt625%*^3`gAEIfvhQt$D0i@lTp6%&gh}RlWx=+rV9Xs5 zRaYs~JJa8??|e`Pq5=#GVAlv(XUISV;&wI_AU*qmaHdQq5HCNGspV0kNt&BVIDeR) z`KHUHy))b-|My&++0%V9^jTtE4ZEvK1o=1%x{%eRgg>YS7PfB+E`FY}NI`IRA`cL` z1p(s+z&b8m;D<=c?U~?rKir|0uK6Kdi=Tug42YJ@kv`D{L4u!5xs;lkZ_K(Hk$->T zB>kd(>1Qvhp?h`}CGvAoUN?7dfOm8$77!^L^1_`Ul5mKWwpj}{U#UhCz#5jT+#t8Z zGOTHUSh`27^K*@mDZ)EAPBoMfu$NK1B6ZLuDAZ&!|x_|et5(jfo(nd)utIESHoTf&@ z+7t9hegTfMAwB9jsDV62wyqGwjh1UE976uj(0M;nz5j9C*#`&b*kqh@tYc=Ak+aOG zV{dV6m5`)T&a%lNJGsY9B_X%a_#VfxRY+2)j+y2~DwUkCKjQPl`}KJ~9*>lyg3Fom z5>Iw?$l8V}x1^_k-}|JFVU{v>3pnwU4o4*F|3Rs(6HbVTX;h7&8XLi-!GSQ*fOR%3gNmDHxQue)@c~na8GMeytHgmw{ z`Ij&2lrj}s#{DmMveMoDH&UsQdVIFG--N+al&wZ?$mER4eRO2baqvtUX1Yhxs%2bV zNXcOLFOy(>qWb&XSCJq3^`ZXPZQj_-JG|R@=B(XnoO(qv;FhNNDG9aZEM`PAs-Aq3 zzfp{mHGMG{D048C=b&O4wWpZV%Vy^wCHyEPLK2OlzR(-(lrJnBsYfZ#tUtXZ8oesx z$(qN{u$W}&t6t6V4Q$$EF4pzr)6{Q;*}g%#D7e2KI3PlZuh*&)B2Fy4NQUe7vj}mP zO#w>K3)PfrA!keKqOqR2qEmsPPh)UC9o|4lLiC2yu|o~1#3Ne$rpph zbBGdp884TJSKh36Y^XWk z9-LMcMQU9Oa_x8ceJh_04b4cBhlP+?*@fu@^09y%>`WGS;&;O2VbKfFW&#r-FRFY= ztczj{@64Vwp7DvC2(HrJernRH;w`H9wI;)qbohAZppwvVcxu%lx;4*~M0rph7hvRW z;z%T#3}466Vn^e^chiD>5E2>z*kE5J-*O*9|C*(@Us;;@GhhuVuUMOyP-+g z8h92rcP`6EXi!hN;TgSKEPloL=hN$nhV}1~Crviq!an{b`RjKFkj5ph;L3)=f4}`z zjJx6D6*QQ5M6-aQl+{Hrx`X)%S*Sj2vOk22Z5pw<*hJ{4w9>pyspT{N_!`Jc>?Zles7Ap5NL^j{I8vM>W1_0M-9qPHM!I|WG~^E~0Y9>+3> zCEfv8aMuXg?IM*OVgN&y35xdbM%?>ku_h}2fgqJTkR@KmRR1)IS3b_Mk@Ol#g3)O( zwM~%0IskL9<2iw7l|ANxNd4W*00`+YAJyfQr@FqxE_T-B-z8f!kRuVFOlNX#nK$H; zrG%YLS=$&nSnrS-cUwva2fgD{SON-445EKNq-{ycA z9Ud{KD>p3>rMMr{8b07~Hzi+~iO?w&rfZPc8&d9c1Vf02Ad-H`yK{lkQ2L5yVf@Hj zpC=H7R@aju9Dw9JTHT?7{bhPeCNC51oXO*=WIe(JRkHdN zP0t&-_Ldu)^TJs{r)We?=qMpy@ZbhJgg)U;+vrN0LkLq@Jh@v(;d-(cib$wc(K$)S> z9C16E;yWVqd!@px?7Ao}H!n(}K}|1XRcD(|`>u=;?Y5XegH+cDJ|%_uCxGR$o|C9O zHD0&cGTfzyyuNxP_}z$BGi>8aq6}8)8c{PFzR*utPGU>D3($t!F6k2j=98lST(JY? zQhKp(Qhzw*rO{qG#I&%hm+8mnM_X{yhbZ$WI;rQ(>a?6hW^*T|(UsPNh9Ae-k*Oru z9XLb@(FG7iV|t*81sSyh<`=bXbO4TdPEQH7sH`cv5;?L`cHbsP@ddh|8Nik2J-WB$ z@<3SlH^-a4CnBot%1pKxK{C_XQDshyakpGaC#2wQ2uP_foMqI?g*%z|jGQ>jJe@on z-iO@0E;G7Hk?JC5v45b=;K1u2&%7C>IPkNS%SidhCvcm zl4tz0{fv39V8y}Rn4z&vX!!B4dE^ywIkPYv{(Wl5!7I6t)z>ULk_<5mS!h2Rzu)`h zZ`kj`j0I)@z+l-No|Be}nZT0a+Q|v|hhOQ6eY(BZ02;w+PUV_Wwhas{T`0$jkW;dv zn6y^UL2`t87NTadGn%EYn9Q;aVIZKU$bD+Ri-9DvLSfhlY8_Fz&>C^zVUn;?tZ<## zpQoo?N~g0du9h6LY+@^~?h!o)m`m1Ov;3lGwTEqT`de+rPM)nHC`U>g%J_p=?00c} zTT-s`;mC`$X(RZJ{C_A56+&yiRv}%CBxE8g(TCM|D}$;>8x|i$;6j>;Ots^<@Grn; zmoy`h*wlK&JwL0ESLH8xD&Nr`zJAbtc7g4&%Uo01TOUnKHp^}4nV#j*B*ZjoSUw21 z1{cu4j`4RET&C>=Wdt>wkV~;+iq-d|k-bXtBh;H7j8nm{o~FP8c9tYhwH2toIbB&- zCob+EZu~?erB_b}ES@Z2s;+%tYbCuzzkXA@gfxAcg}kWsTZwc-IJBM((TEa#eTy`Z z{62`$P=U!|4;mQD!7a<$FzT^Li(5TV8s|{keiU`TL3M68VW#y7?VM|3U#|8piqq)qbatPpr_)y9r%# zy(rjrFfGZyeHkE`LlYW092^Rit$L-~OHQ;S5u2ZDu^2mAtTA1%X2^iaG7vIabkPv@ zMwJDLm;IhKC^eb&aqBgtodsJvv}{O*D)J@LeSD1hlICx(qXUme2LCE~*cF5N>0FipnMDV!*F_s+T4?L;;}6^Kif#Okg;K zaB)gIUKy5}r#=H9{OUI%tNhL*o;_Vc4B;85^rO;4?x?cZp=HJ&rrk6_rgotH62W?c z=`Vi=)_cb_-GMrshyde$u{^L?6(73LR(s&#uR7f-!HOVNh_~YvLLa*Ct0oGbG!5jm$v`(!;o&0nLmB zhaI|;mO$SLES8E->h)o9$J$(G>$imUO3WYg_Vl=dYH}@$}1h>N`wGdnCE(HLQy8w7My< zr{Ywq40)}_AUg*(=jIT@=W6j~+S~(tPU;}OusxUMMDy07ioci-WSy=8}q+$KU9K()}BTsU|0>L8+9%xR?m*$mmEr!gR; zi6Fb6X}M1>#77POQj4|duvTh(e3=x-G}>7)S@YVrOmO<)VG-UO_!*DzeNwI@9h@No zX{&C*)z#s>(+-fA&I*-?I0bpMYCsvGa%(|pg5}6);O3v>sQwsYMvMsp2*WO0BOtX1lSEgk8=%{<;O-mQrcNz z6ZG~sp0y$&RUL2z4n5G4RbkIk>vlgm>8K)Gnz1ML8{xuo$zIK5x^4l{Wto8Pr?i%9 zXa^C~Nf9kz({6x9ZasuAzu*Hh+lh6WZ_@8#AIQpcoggqP0O_h=H+a*jwkDe{#mmS2qJ%SOah8GBwm%sQzJ#+VmCmjOG?AC4-staBk` zZ9b<@++>Gj(Zg`Q`+@YC_TD`ZHa1~-HOr^TZ3RO{g8P-+-Qj91apSs*9(L4(s}lSw zd5v*ak9>z5wU4sE`NA+xMaVr^RlHE!&`_vf$WUN$9p<4emVDM6p`tseWnC5K>X*M( zoVH8S>Sf88zah|O976O{!pR>CwOUpA;{?8TxLdo|;-wQJ#JENU-KIbTp%$^Jwa)|S z*YK<;C@;h>?~p6>8qZN|WMp}?(J(kF`Vx#zmZCx5w(i(+TqqiP%qVBoH;0}umZVB{Z=G;R zk0xdi-H^ZrRlWg|XW*lv)U>8$$28v=FwKw%SWbw@kIWCYXFkcJARTJkO#SorpRa)^0p9V~aMdLiCmH7W=k7?%u zWeHOx1CpsrIniMJMJNN@%zLH>mR9M9?+gstu#7Q$g&yIj*UJF(^8_E5J+}1HS zE`ML*n9RIf{;gZRRs51V$Y)b$F$7d1N{ze*Ic4PRc57LlBaMTN6L!BW5&p_O?sr+bIN1tai>GPBW`i0wiWDEWu;#Qf2V$P__@OHlAoq%F7S%l6Y z3kL76#e&mP!~h!nE*b+U^N|RK=z}4q$AxW)Ut?x0$w;BPX?TNz#3!efH!19~WX=he zh#@gUWODU-$zPFU=e`6_ik!;MnXt@hX_|SsWxObzHEBZ*-yPs9lPM#Y%zZkDaMD&H zZ{HEV#TsyyxI`%QMIRkCHXc#k0qO35Oeo30c3MRD7PSeHvu{hHLL|-Y1JVsYrQl#~ zoG(g8N6W5a_7tH~hr#;myx|MH#lPVk#fL$F+cC`=)=O3}6mbM5Q?WS^I-+xm_d%Pd`{3lx9K!~;JGkIRoy>o znzv+&Kyya+i{COLEqBnBF4YLcw*Pgk)h0_0<+UZi(*yYv+}nh$B+vb%tuCJHHE_cQ zF??u)@SyW^N2n8DyF`_gAGH7b%ZS_^rfSH@!8=I!ayNnf-64q{SiJBzLDb!L1QCLl znZQ>>iN0jSo6>+78e?OZbldAS_|SiZ0CR}=fc93xl+!w4Zo}&uORY}s1g$unuhB!I-)p|d?kDFu*MdLfk|K`k7xY%5H# z3&Je}tj0SJobNWRTO({GfSC+)8e_8I%xlQq@K`X!aNJA$=kp&$@Z*UARsCpdG5M$E zi{?ZrLx7C^8CEN7aS#2_iYJ9PeEuA>^}__D!Pib2AjA#0oHt)oBU5Mt)Z1YF5GF`r zwJ+bOuR~u=WrqmdTs|ZKMIj8woAe(=67X)9s z>6&zx$wky`&z9uhA<#fp1}0XMIZ`r=QPI2Rh4DuU2ORh$J57F(eUe)f<6#T0LFbi; zxorTxk7y07a<6vjwjjlAj9Tm7ukXFCLB6s2S$-t<5pL+Bvx{3aJ^uVXQrq2`i$Y$g z2H#wfZ?{8wC}i5<_}Shp1z)Cd$Uver(P(~78xeGL)^R%w5XuK#h-%Zzwl|6+> z{knAT2sm_ZCIk_x1(2(9{wIXn{h9quN2MLC&JP1YJdg7p37PiB{D;B;+a{1@52R&( zj3ird^D__5U|PnuyqRJc#%lI&Xl1~xH_Oc>2lLEia}Mm|hS;{g>_ zl0WOVzB$Q)GTGeXsnxm^7$@>OP9)d*AA-+=?^;r!weaq~@!kga+u=eMibGS)?I)a)5xmPmuj{5Nt>#@$;QDFFRO5 zP@4q&eX`F02Q|=isa(UDIq(ds=|V6XVPF(d)3 zIOr7Nzl!yMF_8!B6AzO{LOI6m@ows94-eWyV$b;v;XtPj7(e&Niv1SPTwnfs$eI#% zKl3|6QdY5~!kjXWRko`r(HN$HtR%^^B~ASaAQOykJjL(Mv98^}O7PLrvU00KY1==S z)a98v9XsoJm*YGeo&EdpeP!{k2GP5O6JyKja2=)QNAWXd!qz9!_HKxY%_D={eIZlQ z7BVFR0n95gZ|2RB`|h9ljg_Bht&DIwyCL{1V_ou}!?|yMtMy&=kDKj;iY8-K$2jeo zxd^wzuS)`5t3Xl`$XG7%!^7zIfiOL9%!eQucB;-$gAwb=jqE-Ho>< z!!*dn$wlEkR!YaPVx#C#r@kSdxknjUj+TFYe5Mqj%5Hww82S+f!Sr#Cq3y_yPEn}Y zM-EHbTqRdLtf=dhR_@rhg8KE;wp319(w6>fdR(&fXl5(^`)DTH^}l~SVN}zGL+k@i zeZMZ1Z2m)0>~Fdpu^E}5IQA%tNm#23_@VApEsWk6U>sP}wMOQ?`Jlc8mBvmoO8ORy zE~TwtkBCX{<{Zv{+%d}CtJmCaUi(s;3RGrKAi zUE&+g*4+{DYq-qx&AtXDA`A91h4}?0yRKw*W`)QPbxfTiu1y@btz%%)pnYPwq_}G~ zs(-5i*1$`0b9`F_A9d{Nbuz`BWU{J@AH4|cjIR1eiN5?A0%L(L$<^Sl5J`=RPa>I| zHD2=cZx_;B=I1#^b|z0TH@joMj>JFo!~eT(%Qx1_vu$t1ot|IAF^{8lNayZ7eCXU4 zHRIp0e52+v)Rgajqc$4*WPJZ_?9GNgp^<$98Mb)6o8Ffg_WO#_#ifL3p(hqQdSw1> z>$%BC@oEoezUDqqsg`bW``tPcdD$oN?&tF12TG#V2?2DYhtDMqhXbBhM}_ZW(!$TW zoM+Ei6CaLeMWg*YeQzPK2fmf?J%rW+D!-An^vMJ?a-4SD(naQceM+_6)?y6bYnJ4va}D(y-+$I<(U) zq>dXyytjupt5*AMo0GIif1Jfw+!A~_2dso%it)PJc&S?|@iJD-)-IZTrI~@;e`wGm z#;e-0HOiIP?VdsVk^gX|L3!9%80HF}%NwX3O(9>`yt9TZu`dS`mH!OOSfdH1LGTnM z`rrO5PLCNfBQBqU&CAQK79 z%s@a&%bFyrMkjp+{tW9kk?epmO-f3=d`pFmG|b zF!~gqR&i*|T;p*dKzVKQUyjokNEB((;R*0r$}ApY<-%0z>Hyx|Z4}LzYmz`T_v-A( zScs_{cbXn9vu?;jdQA^vygi@i)-GQ0!{!-9rExFyjQOH4x`T))WEUNOy>*#pv(I^` zv0ebWz`IF6Lj!zchc6qZ9(!Zm_1usG?IiZ>;(W5O?;NL-L=w%y3TG>zho1O_JNQ4p->GEQZ)&(aE>F1BFUc zA>XkLLVBxjyM3j z&1E<{i&~CERbs1$4WczTkFy>iHk%_eMB{eza&O*1iIEghQET>kSr^&#`6MlIv!u3R z_-aq)+b)=Wx*2|-^R=7ig#n$X1DwC!SPnnzBe~~$B`0+aY`Kd`h^`9v-N;!_X30PQvp%pW ze6oPhoogVhO)ip@mO*f_ZqAj>afV76+T-le%i8DFAec{pXy)jY_Q;d(if_|ohlh0;-;vxMK5-} z4Z^X*^_q zsJK*gRXyV-Vk2K%iZ<5q@Yo{YOxe77`sld&loRz=tLHFkOzJ` z;Mnv%Ia7-g>T^(tkMX^z1(H*e{E-!Nq|@1R=rkNt4c&d^zQSKzU)#)nl-s4#o;fHN zu`{k#Aw{p^8QSM{eFB;;S_S@6(zf6AeQEqjC*|j%P$Ev=_Qz zn&{<>NWO1%Jv%jwzL1%^Xr^uwW;W(l>JXHH_8Rebt;JhkG8|Qda^`8LtQi|P=%zd& z02+b(c&Qn>_)yIWD6Z`Ztrz`qeSHL&(kHcHFuajJ{wFN*CA2|sxIJZaIA)Vj)VOlTmMDMiA|RzGcjT%QlqN}sAT$8d-uKi z&X7Eg^vqHqX{3j>Nkr={Nbh9*tia-lOMTmsXq$d%1n|W!J%C5ldC~#$`cky{B(CDx zwk1i_3oWRjx_59TTd6BtWWG&q-0rgW1fCvZ#7xx~nq^D$KXr0TLO1oBrefm!7L^YU zo}{g+r-(?m3gDKU=>XREgq)Aa`ulA~nrV$NKJ>rCG?ozO*%BqVn(rYtzKS>)>z@t` zs0v@U<`wxwikDIREOoKJ_2mYk@EPNC_)ECMCh`Rhwy)Uce1L3KQ%E9EI@QF?+%QW( zJ12`PVtrAc{jA=_8J?sMdpRfWZDwhO=P%+^FKGNxDOt6gNOe8#9;fQx~!(e zM=rq*FQE{1MBo`XA%M>4itpZJp|b;IDd90)8ryiSg2XHYQ5||iV+$x*OqEH5>ZTmg zo*1rb$FIg|c|dv3!_Ws@M$i?}YQ0qdltfG57to?4M8(9AgL=PuLqi+<5U~iOFm+}Z zt(FBKBbut*idCt`ftl-Hh8V{Y)Qa8yyF#ycEjP`X2B`X0g!(j49o^uxMTiP{kC|rR z@)&!{){kS_NbcUj(FhyHso-(Ma+!YfE?nd!x@%qLEN`6#YC&WHuTVuau%avwn1P0W z{Cdp|C@G8i*G5n~rYkAAK4-q^k+Qk}K!cd+BI2O21|xrcZ9|<=8W=N~v5V9}nCSgU zf$#QPO8~#*kHhIpwQ&R1;gXhNG*}`Y!l7aO7fTC09PNtqdY;){PePg!K^lvtzF(*gPS-_Y>A{5$G~y zp=S~h7HMz=XtC9$>C^r!yAVandZlQb4z;8#JAuaHDt4GK>A*khS1-nc8g-tb5z zKqszF7p*|nYNdtMlxTchQFjVQv%c~XKqu{D@q{nx2G`z%55VI@Buqv25bp%e8psb1 z8WVLqun48j3XZE@`^Wpu5md$G8ZdG*Q~?Km`}^1gTp#i~yg~O#?yh z3J`*i2pj(MM@d=<<{FEf3JRXinL)3W`TxFyOWd*+X@2j8Uxo5KVor#iF%NvkJ6MM~ zSz4ySMQaEJcstc0F`9^#8-rmZYnjG{yrr#H@RoaclFG3K6g1rDI_iihfwyUGjn9)t z${%8Y8&FXpU(~;z)*6$>zmVgYdXgiSN z+NFDOskX4O6x$Ua1ql%7K|UTn<;OYJPW>lpQytL^9U@1rGo#Q1gwpr`f(0I+Eeuk%%t+f30%%~SzHg#EC- z?-v@O1dhuwO1MFlKc#`HJI2+SZ6H^~8c>g&8|HvZ1!C2X`EGoR3j!-)PbG*VDC?8c z7o0I{xJGVmC3g>_56fl7Yb56Z_pPp|KjJ9Ds5ZS=IsP%T!=r}VoMV(N7&=z`2U_#R zr>BX)cYYSsyj3a&mLd?ik$!Rusd%>!?N#DVcSXQG3RjoUpu5u0F)6J{MuUjKv%0x8Bq2b~ZY_)c$o0 zb(1Imlf%y&z(b=@(1@T)Yad|ozh~9gu1)g zxa;9nerj)miA^|cm&=+UVfL^xJm9V)MU-_FA5z(Hu`^tXVu&Ec)-W%Js-tWC&a5aEgOEeow58InWLn?k)yY%RLjw z=g25$#C%bqi-dTWtVKy~R-B_!53feeq31d?bXnqe!`lI8bzcEY4r0<2F=^DCTg5=s zIoKgZg1q8_?B|&AT@3#CqPAp*ChNpyP3^<461Dce2-Wv1Jfz{pA|Ou0B78Zn0=nuJ z4m)^Ocg(qUxD}Ah@MO5b*TQE7CaN0R6+ffOx48GG1Q#O)JnC+Tb0Ao_&$&LP-ElhV zIPtFUA6z#^VKo+gxM50!Ab$`GOXNuf$S_=~f%8A~GL&^*6~)F6xEJs!0>LBrKEuVl z*z=$H)*{M3m96=w|M?<{KST_1fPsZ}B5Lt98k}>-4rid$f{qyd)DElBrHOPN;Hd!z z)aqmmU)>*4U%YvU(Qt(-OB>2Lu^^mocvOT%E}}0UlaM;xr^z@_z(TVO{@`dFQVgfe zYUzb!mu}(Y^U}xxTdHB>B53EkdUq|gE(0xH?~%Aj{%zKk^J-7-T|jHUQPBGY#*m!Y zXL-?9BO}E!b<`O?qsA=`LVoG3yM?<1K64zhMU5OY>h=K zB^TP$tK05-!j;)~k^y2ZIXR!zOK1ii7HJ7FuXq4G`aI)VC$7&QEO9LkZpKJ>%Y{`4 z#3}^m?_w`k2&hr*XLs$og^+>MbvHC8IZuSpJ7aKu~*F`^{KyR|% zHLpE6K&^sN^`jDDc7m!yyyvA#9Qi^gM5J1mmT^_!rPVd{w-LJddWkAY!#U;g8Xf{z z1iB&5zqjh}OWd;rd-t3GNG`Js`B#_0op%r+6=2^|8X2MHR$&~yJW|GEe&3%Rc){Qs zl~05Hu=Bh1QVAdH-&tr(*k(y6=%meOEU(BaMl{kJp%>ARnx%VF;YV7{SFLjN7n`7c zg0s3#fLMV+xX5iG_$Tf-t=F$jufFH_Bz{$6(Tj9Xq<5}zUrW<3{Ug&pQeEMLL+6i{ z|H2t%IjS_^RH!PJ+#D;BLvWN1zfQLuxOmhMTY6Q~?k~!fBDxQjBKz+sX- zR{#F;Xm`mU;zDNaQr$-pV5Ef1D&3)r+{5wze)aKdm1Cx6Kbx;Dz0)+7zhGvhZqo7( zX06_~6|V)4M{9ym+NZV55lz($I4~wK?l=DcPy($9$Q4@ct(OzrOQK?&CWx7mL$> z@5iuTJ~0S@*Cm%~HNMD<-yJnr14mRaJQ#f!{`ft)!m>1vf{SH^7uBS}ch^#YMo-P6 zL^pNgVv(;h?Gc;CJw!~|gZvk}wjk^XdQkW~$@2ACRKGc4x~bZenlE_X_Gaw$filk1 z*_)#Fle8$0W=bW}v@7t7`b`1&ym~52^cex4bFP+deNAwQ;SYbL*`rzS!m#anw)-R~ zmpudBW}Tr=w2nHuK^F*<`@p;3hC(0~TPT9o zBup5=A`EIr5S>xxPaT{+H01Q0+kU(@fqp0z_k#mc#vCv^gh@;!MiV6=Y{E}7^iZs$ zlw+aJH!GUdKRQ>5ie znsVY&IrYPV5J!d3id)Z@Vm$DFeWvVg-%6_|tVeAZUtRBLlvR58y<*JQHq<-LNQm@~ zv$#D2hI@#~Yr@ln+u`bjNTkn)!#9%oo|O3L16LivN@v*#!ZI!s@$t0CQKgifB>*vb z+Yu>a>K;!iOWrjb3V9JvoxDs{TwZ}uSMxoqpnoeTTWS)fKkU0I?KCMrzB?xLK0MzS zt#jf(zWkAF=asWQw)c;-hY8xRns9_5r7awxcb<;)E|H$`C;UN?NhG0~=JZAEzwyt+ zD;{PU-bQ{6cXZq+r|I2+WUZ_?h|91XFN3vQCo|PD&qoq~rL;C;@tc1?U&c7lor-2X zuB{Sev)m@}nxCSIuh{>$HD3BH z1&2R2&QY7|S_Q*nC;CrQqSIMfN?T`N&N}GrH1>;bJPew|OTHT;5b(!$j+A{nn|hOQ z=WhP zbkV?e1uL#`==G)>?l$hl)=BtjsyIPcUUSLex#9Ag4Y=!lnLTRpPsM;}^60aD_E9?n z^N)8q`fYZaC=-HdM@|?N1vmKzEB{n>xU6o!&$lz>+6NQ1Egcd1!NQ%KI}^e=0E1$P zL1B6k1f*Xdm`FV(5rzGU$*P}x^(vvt3Ki*8DXXu0+8&tgY~o1;XTG1483 z^dbu(5u~hH+IVmIHrl&X&7+1}XT2p3QsmSV7sKlqDkJDbCW>GaPP!snfK_Pa!7_=uCf&!X-c~$E#weo z_12|yQyb7e7^L%93j1Q{1e&n}L+*BxuksCvjv?ciH;bt6Q8dv|3gHc0T9H9c3=E|W z5Po#PzI=d)HS7$Fa(&njkWG?e8zhB~;jDaqS2Eayq2tU{oI);_fC>FD(*}B=Jh=+i zyFv)K4rl-UPhCGZc>bU_o1ER5x=tHblxP^rsye3KW;@a=T`FcXJ%lui7;qRliv%x@ z7-;S|i%anUN(+VBlc&5`;2-j#S|;|Zc_GYKFV)=Z!d-DahxUVhN`;Nm@`Lx@AL5&j z7@QkrX8qF+cXQcgB3((44>W@4<{<;9v=H;rEby+t>ap5OP?2Scvqfkn`&_pPZX*|F zpZL*<(b4Vfeqcn^fC5mhm65*83iDAEOZb}N*sR>L zUrWnHqwUUVpAyLe>oVA-+QmaCJT159kwlujN;fTC$vLh|ud^w^I%|ekZ45WG)=? zw{({A{U~qGs|Aj=rZa=n!Xx(!$)x{9`Ht+MH6J{SYNN(4_1QgUrkbca-&X`=8=Mfx z{qs<8K!$)UEv!I4zy72JK~_~jlh0Zv)1}~uQC8Uv^ovf{pot}B(1u*lXA@9m=}%7O zy0pE|yf4x4m0VbPgp`VwyV8s+dwuZQEi)6+2A-z2sU3yBy;*e=p7Jm=*A--mPxQwv zg4G2C^I-UMM(k#jd)Cwg{FNf5hrguKqwc7dc#MG5w*w6J86v@*WW7ye@SN*f>mMSU z*dszRI*}uetOwv@Q+f>PP@~V)gm--b`j`%}TW-DOpp zr)$T;c|p^DHb1g29TwzCWR0D!hu=7(?Stnz%;CGm3>Ug%KagZ}rAgV~W>M42-x8K- zQ_OC@p~P7p#@RkXz?rgO2iP3UdP>R z(U;n}(y2nb#5Z5fG*pI0sICaT5?)0{0>_3Ed9PLmUw~aO7Tcs7dzlccR~#e`bCb5c-m2 zP!yiC$J$(Q!bclQ0U;Wi*ClnTf>pzNktI9Vs03FKd?Jngs-;UDy3zDryz7=b6%7;` z15N%2SXytNYj>ToW<78m5-YL)0&#WTXFw3;e5i+=W0PA?YL?_!mZNjk2IQ)8kWxOd zh>%c^OJYNZzlsn216{ZQ-6<{6edBhOP^?XuU%eY>@rGUe8E?OjX&N@IZaXC}1Q>qj z3y*?3O+wBfoq&ea{{d%7t@gh40B)L@dpB5%t;zi=*6rDCZ=*iLqC2X{q ziKK8c`5glq!hyG?BCSC#XJXS2Z=TsRF9x&a{hE{SE6Fs>~ z4)RGy{&x>n-c*nPFH|1Mu-m{#T|-)YHxtq%IO|dac+-PuctgE*2p*Im?Vv$X zvvU~)kZ#9`oBzU3t%JR@sB-;aT!&#*3-Fxx9w-jYppY%VGD2fWMFjX$nq#sc{r*ZZ ze%(c3lKBv(aD#!Q)~hkLE|#n+mYN|spp)P!`Oy9Z(G_F3VxjFRop66tT&k?o6x}YO zP#l#bH!J~;I8Nw?F3QSAcq3yezW+iE=UtF!5z7;$^3wHD;#0*pO)iTrm=XkF#Xyw$ zBp?6{ZF@l~q66#R1B||@|JP~Y#}3K?`#qXg$X3+4gB7CCc)$ZI(izVZiz&s9?*N}I z&^Nl8WF&;j1Ldy+)fS-Vkq19l2Ak1<1>Js&Lu|QzyFcY6&CI~LCYfcbY=)P&`l!>} zGMls5WIId@VQPQDq=Eq^?EJ|7J6i?MVlJ8jQAmth=(ikNtc<-6azUOB?vK4-rsZmk z+|Pw=1FYeI;JaHUgPUh71Bz`o)LN;2;w6Bz>%~be$SZlsx~P1*t9qYysVq>Z-8*_N zwTd_70ojn;GO=5WLf)cb%2JT0Fovcs$evliBL?vMaQL;ZL#7yTm_I7r7;5`V`c!B5 zk%me+)Pesh!D+t$&M}q1G{CuE=)(fle;0+8sox#Gc9IE5z2IL`z#me!TvVuudMF0! z`BSy!m)ez7q@`@CLx<*(^&;sA=-TyK9k)_p(p8Ki!+gqV0Eg+q?{|(yzIdtAIHe1V zLQYK;Z**!J#3F+OFb3I3f-#IWrA-b*wcRzPVnM1&v28pn;d*eIQ`7xlQua95h2$)_ zV{_#lOK1t?b{x{bOhLR?CaoH|QmtRn1PG<6sgdd*Q#0#+04^+<##_s%G8?$*nEyn) zjUmSesyzH>HL%ilq9)#7Cyj&x7zAV4lL}?^E1hFQ@m#YSRl#Z;6b?+=wNb0z*o^5XEY5=BAs7LC?6=a74-A)!NE-0X^IiF`&&XOaoXTuJrvt1i1KIVYl; zeZXE&q-c%)uc(PoYiSiV?Q5qpB_GStRu2k^9*cNDt=%s${zwOwl95B2NUueGpRGgc zY=Bw>Z2B@e2aKB3IB9ggVHG0V$~1zQc>6=|#GBtSi%_{xDwPya3f;i(<0`#xh3O<~ zurM0PF`8wk?!s)5S?7f(-@pU@Y-qjO1rSgnDVF~1V9>bz1_q>YM?TDKFDt34g3?-x z_e|!hWxhUD=%f`*aoGhoIG~e!G$S|8ApO0dG3)9-MSG0?&;wTKs)0x=-}ZO?SI

5J;Vrvu|OQW*FPCv3mQ5`AFB-efIG(I08y{gUAd|S~A8Vrr6lJ_MB$dE>*B zTpg(&-f!8vVsbA?v8c* z0_qSJHXW=s8)D)R>pA*YE&jMk!j6=3UCE2;!qW0%43$#LWZB~DGF)xNSn%67t~2u| zu96mDinaQuFDRha$-Z*_==B$JC6?}NNMHweaa1Oi1B(+elj&C`kAg*hN!eB-KN-@z z!yzF#*^ZiXem>n$3|I{rwpX51{l2n+vI=?cF9uk65dB(7R7YQ{H^Tf$j>=Qz0F*-4 zqN1tPo2|!+DI+hzcd92zm!&<`HUJ8A!!Qy+0S}UnAiYdSh7EWIbih*BE2WF=?Bhs} z37JIiDB&b{H`zt6D)@G~BWAF29rHkZN>lBWqyCKW!_Ny-!`ND_W616tpyXu-7xR#z z=aqGrKgwTuZK7Ir=2F#ZBO8?i1J8Ts@Lv{7YWEhFpd(%&*H2LU_0+ZgwFf}`Xh|)H z4h1~ti>-;J(Sf9MlQ7eI>-VilVF~1qbM88z!RGh9VhmK_)q~F)U&WI@@>ID@vP|a| z(2i3OfP~$iIq3SOzwc}R)>{0588v$OfAl;FAw?>Q`k4#QLHZc+jWD^@Hp?E!=S?<3 zn)vBSxSzSqvPm3#m;3dKFZnc( z4l(LHQ}nGbuXaXNdT^RhGSGZu$bO3T@GYT#^w)U!^OuMdo7{H%8MT-2ewzuaC!3Uq zF|tN&Cf?UCV=RLfoi`-^GZugOTPn2}=_GA+HUgOB397jPJpZ43OY-U|KP25+Ce8^t z?YsQw)uDZNOkDRJ+~2{z@(ObG%(RfLz;y#pgdnfRxgC|92vBZ&nEw4ey_s<`;m_3OAH@11V7wAhx4L?!NER>gyzCpr#MvI0{ z`X%EX{dcA8@IXKA(BqpXzUDIfE+p_A9rZJ}HIr4J1F9PQIvAd+!F51e0cd^+HECv< z?ARrWIuIs(P~%fEMuj5&&&dapNFi7#sfj~6_R~FRQNMCl-bpe1_yH(5YQaHU!Xm62 zXS~F<4mg<66EM9znrXUgL3o*hew4YnIC?7Z*{TO)BT0;9b%gV@z#KA7g8OJs7LYxM z3UXv|cIiTnSccA|ld2JLe8)Colc`8oaOyd`DJ4eKu)UA4`*Yh#;z~5C;pN$lLcEmP z+Rk|(zYwV${I!NYP#(^vYaTNFRYKq_(*1Ye$iZKD{Cx1e1HG`0bCc?^*ZN1ulspF@8_e?1*?f% z?s@uWg`xG-?F;II$d?<*&!zieouobH@D2{XO(boR8wH1u(9-`RJa@G5Ji(CaMa zVcY_?IM}xh&!qKDJ9NDJzG3KKn{%;pYs*H{8=b$hPo8v*_kbg9*3&x)|6MpUa!t~6 z>ekJ&&`xj!zP31Lci^u_u-hVL{6?kMOzHh&UI^H8CpVAJXI!Y*PxZ>+_vf_q(N>dn>y#Dv-un{}msY8^lJeL|7sexG7e5;M-EzKn`=zggY6Z#_`M`a(V%=3HN?Y=n_YpxC@OUF0OOa8ayYHN*6!TGBD&LY6cbp3lA=Kqfz z`x%q-iL1n7H$~KYPXL-QLNGPI;oRE4x>7fFHmjsJ@18~*g*CcBt%l%eR3m|-gyk9@pYQhO8%Q`pb^ISaccO|sFiZmMNwV*&c^QE z_VVS7Q9{C=f=mQ!1{T#S2B{+rQm|%I(s3Xa~&f*D)t{K5d=sH%mff zm)jLLcXw0-`H1?$ierq^!z#5m0u>&^8^oAUb$mF3!5y4G+-`uKV(?5fLt$qjKOhz{ zb28;m7b`vojzKiU;xT?Y4xYhR-A`48o<+mV*jhDyfzoL>IjPmBnrRoShtXJ2>i}ZD z{DGWK#I+5lS7vb^riss~B<|gv+*q0+fi#%uMHT<<_4|V}7XEcswh3N6dA`lwD`y_0 zdDbDq6TOaaose4>2~!BGE;fEz=6-Ag4DV^6-pBi1rza5H_B;jSf4e%v8)2#xJ~+42 zGdVXMdTX1W&f7CSHDb4C>}!_qZSUIz_l~?XgQjcQ({R#qb}NHasJu52X4ykJZ1d(e zc@P<#kSsRm&Gv-Ta(lcZX(1TRb@R|E<%D^XhhYL{5|qc6;4ODRFiQGdF3PU3S9C(D6IpxK9V#kp_B2599&2dnK zU?pJC#ljg77&h`ebC^`lobN4lv~{9fAzg<9x>F!Q2{1i}L4p=qp#VX10S9ia1`dzw z!LzEU07f!kvxsAi+LG`M1>N|pRvx*H2BM^F7&`(&cvT@P9)3C9on9X~f3n%#a}U=4 zoX$a{`zx%-u`zuPZqdT;&uP)nl7IqMop%(qXo9eWMzFM8($9#AGKrsawCG@2dBW=9 z?$kcZF(%S;eYfo!_HoNP;dREHn3`1`Y}bu?V*l&gSssK{^0El9puMPUjXB^8PvZx*ip$L=hs)5iT)Y zfs-os_gqc#Jo>t1cbvphY@qI*BW-Bon6!@HmSXQ8QZWpZs1Dc3{< zz|hSkwCkK2=fKoZN1KrA%s(T8OGTxP`$4mkCF|W|ME+N_GV7HvLUHX{`Wqj^(UBF9nEZ?E z%D6A!WQ}j2jHvTTwwJK)!~4VTDA6HvFODu&_R~j5_fNkCOH(LFb|6zsona!x=*=&Sy zTIEnKfGHwW8K!E;EYWy)anC7jk2=O(o=5sdWqipTam zlR6!jo&`MdEZ3N+&%X%Mi}6{ceO@gFe!OSnycI>dd6YVSxa+&l^1ICbY#CGPwJ5nN zxl4mz$?vzk#)>UqAEo~IZIH$Cu8Ji{sO@^0^9NQ-LCH~S2m89S>K|+Zy&~Xr>Ekf@ zL|n>HL4F=ONwnSjwEc(@ziBqwY>`4_%HW26ol}Q(r3Bfha|y9Ju2};e6_BSnb=Qw) zcUb_p`!aOOwRj1!MTeRUlv*g-y;i^Q8UXRX zUO*E(Ke+ho#3TJ=}PS$M}gpCJ{K1WM3Sd7Pv7dKdm4bV&4b+ne^l77*_<1fXzk zaL>F}w4WNeMu4t?TZAf|OwYjSdZICK!IuwnP$M$i+!E;Uv%d7zB*ZQiI6TOSp@S!R zTr*ZUje~Fn;ORQ_ZwkUN2h*h>5N3#Z3hG%1*tLm=Q~+pz3s+Gv5QtTJoNVwUa!}8J zc~l6nqc1n;09QKBjDxx>jXYjU-IBAnJF=teg3`I}koufNRp0HwkcRgFnsm z1)+?C?HA%gEHP{K$h8W%BMG(&+SD_F*(1fSNUQvdZ?c=e@^l2YnS_bhf}ZYf_|de*L3f&6WWgS!^~y#(gXN<4TJmarN2bOOv{V#TDOEH!$E0wock z6ZxnOiq)G1=ZY=iO^p^B2smKErU+2#ILrSvE| zJpU^^zaV$v=GEI#=#pcY&3sfCDP_3=#p9GOvM8XF5J9gI27?l9Zx*y#h|2b%+m9AH zEUjmnui58{SffT8Tj%Y-&JDV-09DN`8fZ<22dm-!3Zveyh5^V-T?j6vIrKscdzX3qA^vf>u$-^rA34uopL|v>&bK3xzkU*}S z2Zw;AS^%y9KD=I!WWgS)@b>^Xk_0xmfD{Nc4xXI(WFcSHpuj%wgS+a`3=$Y3L}huS z#45}_iEB3CxVjaariCp~VE3!B?r5-ug!(GB5-Cw<_AaR77k85?x)rqZM(6Z|#Ul>( zflFpeE^eicAmy6eA>otxxRr(*aVsHsvJSb5j(ocu$CvmvvapR>Y@-nOx7Or=j-b6q za16&L(=)fIs}4a?M+Lrz#_%mVOpE@oN)Q`kX?GpKdyz1uIygsw-o%I7LD{i%bfO?( z>qC&L1(yiQWDRc1RA|0&IYa>~6rz&&JHzPq5B=Pt8XOZ@yO{z;yb5jvH7(GBk@+a5 zGNqy)L1V#-wZYllh__A$(-g36`mN*S#G3xxAg8)R<>(*<-32)KyKs#u3btC!PJNxE zFhlI=H~%(`DuIIF{_t-TpeY;vDmBQo9BI3Wp0C=$<1YPJpJDZh`0=GZ$%&d>?`YZ= za7c2j)F5%#_Xh6w<^Sy{!}7}rZ40e_fW3_%6)XS5<7CN@&qyvA? zw`pRQ9ym3;Zixs;7$;HuxIzvpT)!-pg&$Vpcb~^^-h}A*P68AX6V`I9kY`{4Rpx*} z0gN8-ppi^GCs85oo-OX+FbCmG#~J8YbP4u`MTP)CFJ*yo5SnOqu$qP0M%s`mLMxA> zy|l2U0_=)BD=!l2Y6mJ?j|tnSTuFzmoyMHk!iuy${nrnTJn$JLWywgGYf98g4%UQH z*}us)_~NQ$edbkvtcZ{4*Wpicv4NKOM-Z-4Yw}1*81S}kVd3fomURXl=Ii;`;bh;d zdL_pVR-{K$gRnRJvB$enW=&2(2eoeQc9*4U9Cl9WiFYJ zovnXRY>wNC%eh?_89_}wz5;g_LD|3-RKO=@lE7)BVvl%jStehEp z!%N=@*n@!?{kbpB70y54jQB!KH|yA@Yg@Rctb~KUM|E8dz&u_RC9!(xD&$5*?{E-& z$~$QZ&_<5hQW6a^)u6ASEU0Nu^L_M-p+Ku41lQmK=O9zV1Xn8mBhvNDxZHhXJkZQ9 z+;;}pB*f+^(BT|R#0<9Vt=Hv6h<_I1O^ujt-L2+Ss}OQ z12Ehmn6V#R2*Bnkatk>1e>T;DkC4lS@HOhvl}#|7q8>Ke5M!~og@TA(16R00o0auE z0Jb?76`-s)2+%vV=)eNSavgdNf6qc4!fkWT{V}B5vD*u^$kDF)Q|sV`kV~v9wG9r- zI9it#duJyLbBlm9@X-NUgq0ffQz5Ol-h4qtB>6xAB!px$JW0nmP=qXbvnA~0mJU3k z?mc3&8cpjhT@afSpoB48sRk_)T!a3z35D}USdhdY)_VCyjM_V5U&f)nyiXriW6WDe zJrc=PEKjWA+#{w)Qeh^mc8~yK~6tZlr7*n3p@72!I%r@P$c zie0IlAVI@M_HDoVaT*GG=uhage<3eBdCM-T&;H;O|I3%b4^dn)XEbaE__cX|8y#B% z+FM1Bz^7m}NlDk^Cz1Cta;Zt%trM#=c1rb@cT%A1ibL(ooPV;0>{F$Jpr-kv~ zdj?04N{UnbnWbUo=O?>p`!@Yz5qNeBfVHK5exS19l+WC zC+8bx4TE}G;d6`*b0WRnEVaa1<8RUjjvBH~q-Rk8lZR41A2I4%uajPZpy4S-8GmxOV-KjFzZm)jKaBqDuFH zb3XSj6|zqWs_RWn;KP}G6wsP?tHn32C2x(Bv#A9&rz>wmzl+Q^z%VdS`C`z7w-M@dddLBnpe2as%+F5hABU;V=fA3&AiLr?|tKF+_9uPlh{vphyNF8xG=e4o?pC0xzW=%I}IW! z*ET@F{(IDQOD-l!F%x~SDi>Q6ViVr?0;D5dcxx59c^9kxe#H6T+X~zb;gC`5#Zno5 z>VI^i_TPpZ{(WptC})JFm#g=?6s4V6ex=~2jZeg=XDmS#q&@=i{IEz8LGkk77X}BA zOj(zT!e~#!BOAZ#N&%Ev46Rj$Diwy;um(xt#Ck;BOOu<&h9b!CqcC~3oQ%SWBNh*p zYLUg5zOOnuAvxS6>DPu=4y%iXlTG4;6YVis3GS~Qk`guy?ziA6^J;lD!>^mt1(h8N z=7kz@Ls&6}TNUn_ENRRGbFBihcUlmo7~`ZBNU7 zIX*%+UQ%X1xSa&4b_ zh9^g-y#6?)uCnj17-&0{1jE{DPp=ER**zHa(NCc!#!?-R?ha;j7c|9pVF!smLxKou zvJRsJ=d9)Q17y@JarbWzZCU}s&}OAN?;&gAYT4wKJR-JKHzBi(QYhg84S>6;w{7tY zuUI`Pml*a=0E*BLl?;-9`i_WNf7e2#EV?*AW|mZRLN=V!(t3=Rl~dUh+psiinI_n@si9lXwUq|(;ALjXEsj1I>L$DA2G~a-pLPAnrT>Ys}b*#BEZKQIDz4G%jyNyU;=6G2!KcOY4xUC&jo>1){c4g-s-h(HuR| znFBidD&V$7d^5U!gs@ztu`uQi(8rZ{zDk4ZDYSO2QQ-slBC^Nk%K=jWZu4xkNl_cj zd|Zu+n&jmiP>IVLTiKgc{T4symE3lXDL!bNj)+2sT073;GbMxr3YpJbfEyLW`7AYv)x zaADeH?Kxj-TFmMvzrOZ;?}`q&q7UCOf0~#qPy%Fnrg2Vghahk{!#XaQ!C5#Jp|lC7 ziMH{xFD}XxBi0(FJv9f0juGIN(e1jD+)x2}aDLUe#3=%l;9`_e3v-~xegbBZ$bor1 zms;amQ7<;M(T3-hFKC>o`J{1=>(oVf?v6HDWeYRE!;I9&ZNR6GCzZA|BRpNZos+b8 z@mq9K-{$11GBwQNRj$r1j$0Y)C$VmC9$@~O#wE>h5nI0WS@QT`CJSy+CKp@cK=*|z zE-uALPe4GF`P}?ubNd=UeHJu{V6g&2jqRVahB#64q_p(>4$AvH9(QJK? z0eLUWU1C7Y2!M2Dh|v4Q{g#`)i#+wM_|@k`R=*3yi%zQv0ZL662S{T2b)yyzLAdhF zTV><-YJ{C|+aCgnYmEicf0l!u`XsqTMdBPfxt6S9bZC~D!2XJp^{;wNuog5)QfbT@ zhflb5LHLu1mswMa^5dRe#LXlzC1nrl_|PCrUVmHLqeU;GeyXVDNIc3i;ep34;@d8B z(QCI#LLRHJxd`!}s14u^UXAywZ*-AI(!8Iq%0BRDWC zxv{t#+(c+no9)ybDrf;;S$r*#kO#qO;(9_@=^KY#N*G~IaTrAhlqNA87=|O3JZuG= z<&f_59)f3#l6y9$j=}d9lh;uRE=KWLtq@s~$jfLNu?@8qL-xucHz|OBnbURt+QNL_ z$9Bl#ys9!j&%_{DnQmw$ctzf&hF(S1K7^{*k?vacD5XAC-HauyyJoWVerx;W(72a$ zw2T?~-F8}@(kP}G)T_LsG@TrklJfF})OjVBkdm59Yn~0qM<}n5O8&FB*6Hx$1FLd@ zppCj}HoSH~o$fuyA#c?7(}6%t&$+J-3jp5sgGPCA-FtU~o=e;&P#CH%f(;kHFh5)rU5}35V#HVr_7ganB4Cl+NCuomQP8T@qwO&f8BcV4Zdy(wG(l zOD&f9Q%g?`=Fg9}8rq>ar}|H4Qku>iwVRR}lUL_AU$(TC>i+C{8TtAvPZPEX+UMGr z=^aCX*)20KX}?X!9LEv_!5eL_jU^D1)M7#?XC=KI0jJ50tr~|dI=S)C6V+gV6AS2$ zrQfk4McT;$Ny6Cukg3YMBx^(kC~&)tjLY&A?l=49Z~neG-Hg$)ZL z)SRrYgsuN%O5As+67tiZ6R$B3r%xU}_Cw;|{J%r*DC8lJ1rSm{fk-bb&!ov>ndK{$ zQr-|qHj=uT$o%a{zZ2yJou{mqOPI5;g+1_f@fV}z;xNpGGWwpNQnD3{KxIlAo2%n5 zw@F^uR+NGjDws1%{F(_`mcn=4cim3zVGKcL=@&Ehi%$#1HjiQd<%mt$J@*4^N&QEk ziW%t>D!LCW`8(QI1+QB(-+dH#{=CCLuR6LirFL&J$kx&wga0J=iS=X!y=`F zOGmpyb&|c_@G|$>R!9<3=#<{e5Wrw0RXB4}JQ8=*G^njLMnc!gW!{X0%T=ywPxB$% zqN28EKPoJX+dN~AKJ$P($B3wt5c_^Fq7=IDy@L5U%7zB951Kw(3ptRGVQLpo1>!4E zw{e}skq-Yd2@Krp#mu5Ujw9bPua*@8Ulh>JqPpdJ$;Ldg#a4;C9Ac0pj9KQBGtEBZ zlD}izL-^8!*$Ttr_tGSNgQd63JP?t^EVun`XFYKuUFY}mEo${_MFLyOqctSq5&0b1 z-qyq6Y=l2s_Po_TomL(j6JWO$fx1bK?vy37=A{@Np*^zLerYCM7IgwReDZvbF*BzV zmEPh{Af{(RA5{&*Cupg%qJQOo&(@hq;{-yE5U-&gQ-K&1^_~gi`4~DJq); zEAJ`EPB?nHC?H1aH7RPD(A2%N^`2~Dje~#e7o`O6u755v(}_whS@qIt1BEa(tyZfR zdtqQCsHx+T*tJ=7=iEMr*$Toe5O)vW?6}{GC1EoqWdd=#Fwj+nd2&Wv^H|&h3>t`? z`>z8Qi&#k^tfbOR8kcoBDqR{Xhg(fTp_h9?CMC}zTxAa%UTVZ6gs z4qEZ?Zaw&3cGYPma626GTMJ#@apw2*Ih%(Cgq*fsO2Ji}cDnzsa{3i=3ul?oZx9 zCDSdIe3%QSrm=aEs{%Bh)vkWhRdpkcvzM5Do!%_EG6}5vAuC#qul~>GPr8|dw zbpUbp&vnQuUg!hY+{j~|?Y?vm)hW)C1FX`z$~a;&3na)z zB`08LrYLd}e0X5*eMhHNWNF#BB4J2MYCe)OiAYz)#%UKGZj)x{4o5fFC;n&GaT8TE zp0Y$xkK&NY!t?3x|CgkeWt1Y~REYRe^~qplIPK!;QHMGAg{wGYi!@-09{KQ#ENrO$ z^Z`VUvb;cm$}B7|(hnP$WKkK0a%4&t+brdUtW*&mB>yI&rn{Q=KxUnyMJ&m1?mnv+ zSosua#e(t9!F|WY;iGA8Kzl%`|V^;9Y5@@|#{2i(mAJtcS$z&5En{ zU52-}(I=}q#_>S{*x~(Erxdh1wkFltORaQr&mrKIwF#vUe@)d~#%g6ll8h8kQQiLa zwh`0=KGW0SpCgi5B~&_Yq9#VZ=JZk|?yINBitm~ayBi7BiU7w&0@`<;vVg%-jN(YV>ERCEi0Yy1Hkt7T+<1`^QJ}Jb3Z^S@e8Tb(Nibbm*=TVeO!WJUT@* z?TA4QRBxz%*smo%c`q(zJ}xel3bP(}Tqi!;2oOlJ1QPuFY{d!{iYk*_6~VtiqV-vI zjP15qT{LADMNTI@e~$CLUyFMJRLf3(F|D(Nu!6PD+gsMDk=5R;S4p>A0z!2bV!?& z#$rUw@sr7u$TXpB#S+v>F)~w+^bMp4uc-H0$qMM@!QBf}i9Mh2w$aAd#ib_<@%^f|;g^+)yGS0IC_2DZNgnnN?+MFmu~6 zN@;6NIoyObd0&0>^(cM$JD4+lK2tg0WE3#rizsZ9lo?B9Ar2x(rdq4^|N3L=?W!jU zaPcchy*+rT_1Yd9PLkYSA2rbJT61=`%6X9_-g=;H`SLa)ek6uaqYOt~zkc+!OOWS4 ze8c#;4@Vm;cx-6ziKe4P%SHL#9S2Y@ZsWa#Lcnwuy-|)j`ao)WHMipnA0x~#`lu)| zS3T(PNDS(Wy!@Ni#)syc9CL8X4>t(Lj7CYw%`!tCUpk{C`jAE$lOjtcfMa4r@&MzA z#8^K*+96`K5^A6e#q)Do7=?>4|98AlDM z=WjWS19bh$mPnDPh`l|+LMoWBGS|aX|(cn zJ;p^V#QCmzrq(^=5F$Y>+KGzi&@QG3jTkRbTLP=)SGAllp4+qK$uS~|{QXSryhRdj z3?d{35vbDjzGxYJS9rG-csK$REvMD7abnCex>`VushyZS7ODE{PaWVO1aUE!aD%vM zpJkPSyNi}TIJhCD)T(yrzX^tpP8{k`jur4%)p8vrWgoE_4B^+BpZx3MtcfYD)^ZZM zyyDr?^WIN|Ds^G{*-6Qp_L{BkxJ8TcLEmiEQqa2Yd z3r-~^y6j4CW%hfr9>!W%jY+NPEbXYUSVuEf6JNAK^gFXcSn9KpBrBtXxMm2`3<)g1 zW^aM8!VH95GUi&hsf4t4w&JRl_)!vyMh}^r4MEGx6BIx!Jv6qo9IXND$KgLi)`#+8 zAvB2{4W1oKo6mj~{zfwO9$YY6!SPyXt9Y||5V=an`S|OQ4fcXf_Th9zR-7JY(JHlL zA#<6i*Wh`>>V;3=b|d2O(iKn6b2`a~JdkNRL_V!NP9OK6$AUD|tPUs3@7ZGt80>OR8I6;qagq^oYG)VfEBC`<{oTr58( zaw&!9^OCxIcy~`cVT=d)GDVp6;)Xy1Q3-a0TP^cml@0E14?o}?bNP1RkFp-~htbvs z2VnnLjMbXoaJ;7khh__+5NzLIeCL0;bPn3hqPhIb0jdQJ``ZsXMm$hk`K^+dDSHRy z7N$xOiV5ImQ5*G98!_cT4B$NkWjlNgTDUnW$tPBUVD}`VmlNY$;iWTQ=L2#W(VnfK zw{lszM25>AzqR|El5<$SP`FfHjpZR~$r0$=%@M!AE9@YFoc5IWK;PkXykHgI?x@93^B5^+^>)n^g zuJI4Fmz#N}@4;m+nn7w?nR{05J>XYm<(sx;<@c&jcbB@SAN`fMDDrLf5(6&jNYonJ zjx_h27Td&=37@eheucrallLU3T6)q<3pw|3)n1}YW0uDEO$~{-xQ87mS)EX2wuJBY zHaoJi!M$&5ud3l?q}e=MNVwGu5rK2`y?|-$c8Rg@jo&ec|Aa_XSfvd%ule-x*_Sd7 ze*{Q=zRHM!3LWB16J<3HVR?e@n!G5~>|Rl18B?hbFEbdaWXSXpzL+pa9+K`ty{^!0 z3d-u1ZKn$@j9`MnXdN{~uMRiy$kTF7R^)*&lf~?Aq~(JRt&i3@9I8NB`nR>Btrzcz zxDj1Ax8x9s7xC?`RpwlHKVfxaa+Ga;&6ew?N$d^W0{1NXz&bjlEIv8-(_%+%r9Q^%{7hes`<93aq)SJzPpo^#Q&_y` z82`DY#=R?1)W{7vH^a(X#8_AF zthkQ!Wouk<>7<_l7Ct4UaNA8Qk8j;WA6y8>ISiypXl~b7|6xC0g?Ls>pkPa`h5&|91y!o?^hi;e-#dqfVgTW+ zfb0>u#Pm)PQ`}vhH{xNng3dFUgG8wII2dL;+|Qnl;>YG#nm!6gD9Vv5Vs$WaDcs)d zo_sGgo)I!O5%yGtTChWduTx4fxOj%`Df`%591h*XGFk?_S`?yD>G`5TQ}`RkYkr{1@g@xR^AbWT!lo zZF={<#J(#4O}wN=&u`xSOxlE`&kE2VxLisB2QR^b1^VFEglGVY(d8qPA;$0Lh+?T)%llU30w`?LYON z?3FH|i_GMlyaqEiiA$~=GG8#W*6gBSkWt9Pr8M?g+*Z?kw|Q5cPmS7*r--akU#ZdR zHp}Znr=36Oy7zM&O(VATPwT$6=zHd4^Jg_VTlL_}yb07|<}u3p)LRbAx%*?!_8~d^ z`&Ke8)-5i{c0lLgacLCgP}uj+dKHW`^=}}3HX64~fwURuj50VaSao=Bq2N0#4z zYqCxtv1xBL<^GDc)B&%p30~M(H4mM{&o!ZG_O3975wGXp^23}xx<=TCi`j|_nrS6| zdBU^)m0eLr;F(n`+|kP*RQB#!!a^a>`mz9Jq9EQ~(^FzS+fq))Y>VQigO;yH(2Ix} zcjgTN6=}d5b0ZbjpwetTM|eMfYyxE%KdH0@9)h+4<1^UT#$0^xQ(+&*$dKf-$4K=%lZ#3VNZ@CZ^reo(b8*mEMSUJdVkcE~LM zXE>!+i?B~%!NL(a)D9iOGj0OEx~86@P3ixACwGuXZKJ*tUr!kAs|=g%vpfdGC8}Zi z%r040#)yT>@AVlAxkl)!Vc6U7Z&T+b58j`t5x`V+%QT~pY!aK&E^v42=4g^E@n=2|K5mQDsY1uzCg;Q@3@gr zAA7{VkJif}_K0j6hfHfkO)QYoBAOo2gy~IVXEbM+qDoRUac0P3gu9(F+z_nk)@mpK z_fW|lq87ckKDIRB#%n)x>;{c-NB)TrdQHQ~)L6?>0KHDLvpWeZGy+w3`~HaDnYCB^ zk{I%6rPYuo43kR%L{@p+nsd?E($wt`L@Wi${}?6si6*`fnxu=LY<(fh1A~T*2D2;< z3L&~bmr$d}*v)_+cML54qT&C9a}GD!&+NA^<Dar{ zScge49!acg#%@YQn+zr5+JQAw725`$%>_0Fz(A$6KOlhvcyeHK@IOreaEbwX+8}3N zZY2rOJtFuWE@BE|>NUgxZbXEHDd&Z&!5j^jrPiQ0ufqKX=9h>NYGaQfa%u*UlbZYq z4dI%G))LL|>&y5hG472y=-LA!;BDW+IH;f2pzBr8)i*pLdDc z=RhE+yPMMej(Ms3+>HpxPDjeGOe!Ins)M<7f%rK?ztsuw+&Q&161Gw(_Uh?l%v}D|&VneAL=e%sVnS zC#l8#Lnw}RDvWWMJDdO}jwwY}Lx$(!zkz4hiR_<}9&A-3ZEtPWX~*|EeEm&S(7006 z1nwD03^-l6t1zcdkbd~3L*nC?pe+E}asa*YJRy9K8mV2=ov22RuV(r6*$@N{a@ex{ znk6X7l28|m0f11b<}t$k&S{r;h!Fw^I|n&ojF)GT>m)xfzlc#N&bY>9Fyo!3Kx_?X z_~$L_bHMPlh1-C5fn1FlDEePvvY7?UlPX!DdqvjtQA7H?vR*S-5_(6xTYKaRzSvXF zp=Qbc=iOqp*AWk-d3x?Ui4yav{fws?FXjqgzkaVd?z!=aG}colyPq-M=b%$N%tfej zYUcIw^4s@02OD^FKdwoa8n?rw&XeoJd6v7sK{s9azhCef|64W~(Si?9-`AJ}4D5Eb zTepB>jp2Ur0^M*F?kDEo|Dw0gM*nR5yW92%k#@)T(b1Q|(Wo8Ju9uY!53%AM|DYqH zGhUx?UwTL}F0#{eU*>ZxCcDBn4_WW0Ss9VzDiy5@#CCiZLz`s~PL zw@&n;{%`XgM`F&Q&en(uYK$)nh#7KPM2_9eczdAb##q~LUt0ks9{|0eq+k69Otnd- z9Drj0YPWItDZpyKC+0oC(XKs=7@lo2*MZ4HR*9E9x5CHKt)yn8rqAxB`o>eu#Zu-jSov%dDgJ@?t=gfxv$9ng&lR5|Eq;7AwQQ~x zwNt`z_bXOB`)l%#e{R+h8xN_s6@4BiV(){G#}@zct01Vc6vBPUoa9-@{ryFpL|1j1 z3F(a)2M~M!hCU&ww`@9>2CU(+lw7ReO(a9WdU^VN$9k4f8z$#jDdKz>lH(&{hEj~> zfK&q4Zk%fzo_XY*bSv%qR96kk^oH&Yb>B3)5NT#OuSqiG>&G7gmzP-)$K1#96K>WE* z4Ws$}Eq1s+W}a)LrTt}?_fzq_9@t7YEFa+It4e%XaBq^t@zFV(N)2_aak&}Z&6HTM z1AV7J6P9&gnuMJWUgI>Q(KioU1uyex>b7d;DoPt!{x@n$@1zEp%R!TfZ0;fH-5SB* zKmYy>;{X}=)o3;F9kD#xD(UfnyhVNdu-}9KfZr@iA-o(VI+rvl;Go8HcSH<5AFBw} zVD~=#>(Ka(l19;c>7AY4q8I$3(~}3u%-x4e#x@rkP-jasNXl1~p>lh5&NMXa+bFaTBddXhSuYssH>_*lD zv%;3#%|mTC0P-~SA4~~oIlTs^`~u73`W5mluW+0ZaQo)dATHByNBD<_4ish|qJYnu zS%MTR8SP>m0mNi$>@iRDCtrn?@;Y~YzWOK=`b%jU0%2@n9yIuTmTk`9E%G)EMy1Ad zid?8XI{PW@y7&?+>*O}>)v3?@f&E)2rIe&7#{`&ZFwArIdeLQ`qmWnhhsKf5_E7e@ z+rqALs^6*KmWbPxzlfJTJ8$^}EVBkFZjEZZv;nE8X?M-oGimpxZmI z`o=Fd2%<52M1NiN`EP|2ekC!Yf;8kLDy3$a-CCRHZ;={%pc7$2y-VrBMr;Et*{QXP zXUG6 zsfR!QsCd)9=Sx@YE2cd3e1+8r=Vz<>!*#CLtI98v!v~MIvB)Mn*59CE?(8L1$2C7Q zsjYa7gDJ-99`!=BuF9$IgSww>#b)y}J{3Ru7wD};*w6k=Ki(!DJj{C7U|j}%+@E6p zY{lc$4=_&-(DOFw+L{(upqp!)e_(iiz!OsjkA)GVNxH>1Um{YB77)-PhPNb+hrIkD ztdMlvIGs~yBK2JF@Kp?b;XvJ4*N8rk)E$gYF@wRw_i((7mLEAlL-4$4;a)=VHMV3y zaF3;mLs!FwC&VtZyoFDB$xwk~y9ahoS~y?t#W(Um`@N{)o;{@{*{wNIVE($l$ea2s z`8^l}k6F@J>DFre;5DpHQ!SJfohd=xp8>awpuWNKOLr#z@6_hoBVjdS>jZ9zhsMG$ zou&mRz7G9U`)}?}p9!-Me;w%f_DcKP2w2;zvFB*&z}f<8oo)}dJaN-E&B0nID&YZU z$LY&YYeeW4!xvZr^dj*OGUoQ1FwdV{#)D~W$gAOxXKwt{8r^7H_+U_EB>uga+~<0E zHx}ZXOh)f2Ir^sk_L#?oQ>O+AZ0e5ossEUrP3?(?St7fa!|Qs77x^ry6KZO9OXsr6 zG*y2`W4PFa=hTurA(6W$w3`b*LNE6J?~8Bs^oc)~um9Av@&6dQ55FY$HVoj5hYf;= zh!fnnaV2Uhpt(}RnWYtu)XWSU9_yI0+@@&OQM1CCZEV^+;L6Mjt;{x>m6dg9zSil; z%YPv9c?S3Iy1$oDbl}0z6#jOJ!1LlAwE+G>WpHlPgJrh(2Tv&g0T45+ls5n%{mo)D zeb$YR(LSyr{c20j`EAOMV|@w2Rxi*|9VRvlj2 z756&AAU3*H5b=Iy1@>qu(dMLafz!dWDLqTEUte$5HX6A(Lt=B;s7KZr!%@SIbFYt> zxVb#&=bp18n662w(sxQ6+jOk-=+f_FgxUJe(#|Er4hfnoV>#=wJG?e+r9~ZL`o2%h zYkaf*bn5qC*w$pX^jPMK7O!`8C$8;k(f{*xE@?ituTV1a^-b+QbBhD~7SFd4Xk7qS z_A{*F_P)T~{e1Rd+1>4aB4WU!`<1I&eYM1iWA|Z|I4Vcf)*hUF8*4K8*L`+y*gfMp z?O~=bbl{e$5p_XfC32XPi^MRpKmj#5$xnw9vXJQ*5?2?x#5Xgo2Rz3|b-U!wO_p_b z%$9%CR*xV?yzuP>aujAINLgW9 z$X7y*Bt@c{QX*Xdf|8kP5QNb29fUObVq?Z5e4`PgO^n4*wClXgdV9yukqW@0k|x4V zHgoDrQzOf}*V#O_tur{To&nr<3qbhj-R~pzmpcDS+<#blJRD23XqOnoTja2hC)eI8 zZ%ywlfRp3VKgEq<546or`;s3p;N+DSpVNVr4|0U+N`$M;f%N=MZ^$vs%S_V^ytF$t z{$?#hhB4tkZ%X6!+9i!{dcMPd#pNISNluOwcApd=BA!z^9a_5fpG-m=#BBEMb280k;PE}P))SnKy9Bmc(trA?%(E9T`H1pkXU z`H6ms-QOT968FqjxxMZ@ANzNrVTUhCki)6dGt1!#;0zV3tdt3A2ZE?Ogyj~y7j=QW zuBMqIp00PSF#fX&(I;B}vcXzvLKmUX#&c15)30dsP=&(~-BSE=%U?54`(bzo=V^;T ze~7C68K$yp)yg|-?Xvi3D7`>B^cyvcnNe&0qJLof(_^dZY7*{kjj8;8Iozx4XHL

UcR5!*Wa|+?$-W>62^r>C2*ENO>6; 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�CFl;CfNLJi_ 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

=9+8xyR=t#1t5V6*Mm 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

k2&g>Vv=E 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 z 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°&;Q^5zfefvVz{kg}3J?`}kyaoTEY*$cV&NLXQWq=1O z(ZC;pw3Gu*-6-?7&()G(qrHsH!KUoTmM1qXr?VdV)IIbkZur5PBskwM7`RWr!y3R) zW7$azvpcArmh@+xdEw1_O!if}bo@x!hg6e%xm#-E8O|kxg76l-zczIc(1w)(br z-70nWbdJAa?$Q>h?hGY4)ea12YX;55Vi?fL+n7ze932lwZ3D^SbT(rBOEJu}6N8+d ztD$qb&{R7Co(|$4(_HTzKe@eGBz>JcF2n?w0O`dDj*&k=To#kEJ7`k6U0A$FsUfB| zRbY^x>ZGQOK19-#I=EU2HoGqjKb}+UoHc7sVM$1PNp3AGN_b?w|1nJ#vJl>hJCwr= zZBW*f^2D%!<+#C2THPMgE(Brz0=^g!dS%^5990SMu(3bXS~UL8sX3Ewugh)|N!5j- z0P|QB%(f?}=43vk|1hM7sH!U6l0Oj8lv<>|t3v$j8c-+v4DH@-OE}QkVz!`(f3|m4 z?VEw-zZm5qj(5T$?b2NPJE4?@i@3v13w}B4N{-FUn&&EazUGL*elLL1)ek4lq>s;P z6wovK6a$*LAoXyL-M-V!BYy9}{l^Zc8}%#;7Xev0ez6AAp?c*SC#gud!zW$jr~@3B zTA1xCWqQv5gkyA)MM`?}{!1i8z^Rnh*nEh#Z}lTbLOCux?vmla%cI=$@ajHKrY6P*R+ROubUSQMWaczDy+Zr_jg7QqMHR}IiJ#Ot6 zY{&v{b##(}{`U+{kCS2kv(&>yv6&Xyk`w+U3-eE%CB{o5yxXQJHis(CgoF(9&Jvs? zq<y5HX33#q51 zjR;Mpa`v*V9S)6B+l1$Ucn~-$W=Vw-j*zbf)g}mKa2^N@MdHXPad0dY;b+Uv(G*s< zaGJ`G&NQ>8&tSK&hMcl`7l0tS_=J;mGs0W0b1W}?ozK{0)t$QK(kAR4XWFK!r`bA(*z^d3e_dqMSLUT@zsT0?pGFH;$Q|3Bce^&bcWmw5efqk`ed`ag*Fp!f zip;*B)ODJAa29Xe*0J?grex~{`t+qUbQbk<)?{mV-PJ7@vx>Yoz5DA@Ov$}YUJ9$O zW9s6b^T~IA&DaAX+NNv6=YQ|;_i00^4c$h@PFZj4Yya03fj>=4suT9p7Y^6i>@=E{ z-GDtj=c)$Vp}6WhU4N0)4gZf-XGNJCFzb^>bUveJ2lW}S*@1&*eK|vV>Vz&R#?49N zV6R{9l$34(O%3WtE_Vt^%n6X(&+RY`O8OT(J7^fzry`oAi)BdjiWKl5&Ta)XShI05 zr;(_3>hdpipB|mBri_-(X;UsQ4(Ql(*$|{#dqLCbrR}_?j^NeH)N=Fa|C)Jt6P*1hx9sru;VmgsA406Iv=lvE z^9S%vpEeu-xi7u-G8*T4EBq^J$1yft(}Nw5FlyN#jSk;Ax#AXTe=p_ngyWOt>a8Bn z65edLlf=?r(K^MmC{*Cfic2UgU8MPx#^H^tx47cTc8Ps9=6uv(1HUTt~vavF_Y2Mi{4+&em zT$;;1KCe>hukRE6-Q)(FO(t0{k_Qd(U{(V?{sb+bjjy;OnR`!YE0{dp8zfnVPkBfdFBNF~ttOo9=_*kpHoF6!k zY0e;V{aGrq=G3>nL9G#Sv8{G`Qk#PEm=Ary>s~Sl*|p6kA7~?PG!^$4Hwm8?`U=*j zI%zPS3DM$mSvCM%c2dTDI{R zj(?DOHmM>__Y?W~aS| zb=9y|DsLnABU-*B`tEBkr5JRG{-tpsN<3tW}gE_b#rW? z66%KZf&pXD=}Y)ey9oQlP$TV<2{msq_ZSnb<8rgeEhP!@+m(h2;WM?EUJHg%a&%Bm zBk<3rYfxb-DXy1|aEhHouZPHqDWY4xOFV)*=i!BVDa>i&8;;46otRE*EqX7>bqBy@ z-6Bu&SbL*iwZBf9lxGCU5FR41eyo+AUMmIucka1{UnL4h8Ux|SYQy<*`SbggNKZC6 z2K$6ZwA#OY{#S`#lr;84WbDPUolHYt?sSjqY<(l01(Qe!c~&sf55S09F@<*wH%p2s zkm)7>@;lMe&D5SJ@U5g`YWbXXt(a?_!-Ge~@nLJEfoO<=i=uHs>ly$kBnOm9r9gfM zLLnAx-KLj-c68L7-|d_L<8%tdpx`v6(@V@!ComGLK&ElmxcWWmavct?*uhDwv|kse zuk}ADWgbzI8YItWxMNMeL!;7K5YEUCd0|N%47#waSSZT!R*kG-%-KY z(1j+WekIQ49;L_*wm>RHwK`pn8jG|O?5?N5Y$B-@q07a(-J?T(#Zf(>1y^-SP({}7 z!wf_2olZYZ5*Qm*{qA;$i!@4Pn}|6@P7N24`2+0J2c&T6J1U;GT4H!21##=uSZ=z; z_<5A$EF*!%3x(eolgA z*SF(yF7w8(Qc&1mBbe@gFH-Uguo+yD_`V7XTu{P{*x;te!%r^PDF=K+JY1}1WcwxP z44VegjpW2wQeL1u;+#!ZqXg~K505UO4kY{ocEC4S^8bnpURU{r>(8b7a27Rm7P(k^ z;f`t#2h2P*nD71`J%@&OoMyG|8I4Pc`@0%qTg-yN`W z(i%C@)gdZW#|DkvmQ-GT)nw4`l#-I?iW@jgC0&dYP#vfqml~4q(tppk#OEUYO&~O% zzkV8(OjW{&14$b;(#9Kf%9jam%=^6}cd>cpYjm4Ly)%1LPgG%(DSTZ2xld#{2flWt z8M&D>5Py*a*EuD{{2lf1hzeFd)_ezP|oI*N^BtrF8eWxhT|L8bgcE@);ltXnv∨(GX#mv7>0P~_ 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

dmg0F2Of$}bw<23kJ~dh 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

=ma*IW=I1kwyP4Lu{%1lYD)T3~U=4 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

i0S8vQ&DIKrcPwh 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

    aQ><&H5bw{ou>;Kuo&b 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 Cz~! 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%0D5$F`jhg<`*uS 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�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 z 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

    MB2rIQs4{vJf_OP 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

    @56Ktm^AXT32v?jtn=+H9@zG%mVwFA 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�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�c?9uZ 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%0D!UBmmK*9QqimlE|VHz-hiI2KIK`CPy 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

    V^6 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

    fGvLU{?07z@o{K&cidI_&IlG+qUO6XWK8ts@ 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

    XCw;WcT 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� zlR>8UWG!CsD^;&Z*N28UoW{?)>&?y|T{%^jWY*ghWM_bkVf<;rm!LwN&CEM)@e^*n-Itu)$^q$B8!%OwecXsyq?YkXWh z=n_K1O93z{oYm(sLOD?Q#H&t-pl9{cVNN9gslXs~RQGh=^UdoDpDxAc5bdZu{jyQ755lBC?@&Z<9PJ9Xc)c%uQwnH(1+~-S zF_{jcqJTXRHC)>?@=K5IwnXvr&KB6xk1U@1nsG)I(v3p*m#p#K@_=dE>ohE+A`WJ% zF0p9{p7a{V0miK13!#4Dp)rwRbu7sgAx=vR9^X$G1h$k4p)+1LGMrm^O zsBQ{DWCXVu4*DHLI&3&SsH4i)sie)gotPR+|IwZPk2~B&Kb%h|EQwvCNZBVF3XA`h zQH0KK`-2EpKv=TkhiAh1)O|1b!<052v##4Dtmwk_XK+EyvuGDZA|V_Jk(eCmLH2!7 z*&7l?k;|@-D33%=QZBGZFGvkZ(zZS=tDosvv;7@yMnQS%%rX2cZ-MMD_kuU^{cPp_ zt&|UkWZ}*7EI1=#bcul#suD)e{%d$&yq(|@UniLMIt3kgT+f^KuS`W`^qbI=0HF@_ z3G^hZ?Q)RUPau2&W<_B7uO7Ys5un+qFe!>+s@S$xlWZ6P!u;=+(oBY z>XT60jP6sJu_<+k8wJeD;rlZvj~Jc|hygbPHtT)t9*4kfXKCS5@|E2N_hlWTWU?S4 zdpxNf!VkMX!w`9^5P^TQQW|`m_1Rp z&AeTMQJ0PW!ODqTyF^RC`0x8bt5Ya07r$XJVLm89r=s=)Qb2r7N!3LNypFBX@xeYa zE4GB?es$<`$vIV%%WgH$WFvYP28a*>w*FhSY2CXMJR$*SPnh-n$)nszMdwZ>Su^?`!wdyP@R1HDDWli`+rFj(V9B9rX;W8hd?hX@BdR}+x%?W%D0J({ zNQvlo-`!2!7?-$%Y2@{n?ap{O5fVm}r`Gi~EU~C^hh&Ak-h^%qSjMmGRd-5cu96U*BSM`Ib3Yli=%MMh-JxOS zpX~cQlPcLR7WBhIigIRxl4^u z&RZP}JL#S_@`?_~iGxGkMUo~roFW41U8fYo0wKwv0~g0#3H)7oW)QWuD%q1yYf&#K zBB7D#)2o3{sc_-0Fcdtz`@m%Vo0Mlq@emjhJ!bv+Ht5lMBSaABjQNLg#AkpeBpo-< zxuXEd(3|R+p9)Snsw7h}$e#04uzw7HKOylwnTnf~AJXsBDcw_0{$83#m7uf2H^I<6 z7Mk?*s8wtzMr<&+$yZ&6Fl^z~4N^C;*TO%z9L<>Yeh#TQ?JmWts-A$3-EnaUmBrdW z-~YAv+G4HmMc@OXvY25gKckNfJ@a+L4JTkpm+;+~a(F-28}vOAbc_9r z_)Xj!uB>w~eTzPO(AmNJlfh|lc2jk2$)c;-Q#*ZnKH>d-DPUK|USTB{A?pYJ!H^x%+`_3!FZboLC9YyyV(@P!4WepRV zb>}pySu1t^p`77eOu*vrN%s;;_PAr0QFnJ&a1(f)gk%c)T zVi<~BibO(>(3??tE{9c>kWnMl#@5>mEDg?KPwoo9k0$S!Q7*Y9 zvmD|p9F!eFAyWXYpR*AU)Xttp;rwoZ-;C`u$tDCke=MhZPSbH)_l4Zc$6as-nW4W8 zFXRB!C}r5KyDdy2lC=J3W|{)YPM#Csu{w};DI*Df<;19!FR}k+`@3s7T=}hHcf#l8RopMUtXFhj#jL6 z&aZe*2%iZ!@G>0#jh4VGd^wP98{9B^5e{vjcLDAiDxQtn{UG1;1wb)kibZpj$egD; zCg#RYJxe&Quk^)<)+Xs#$=0HqYH2Rf1(BH*f^MQ59t(0W z`Ai|BzTwbWMBibO=W)qQr4H(ufBmY--MdDh=Q7?liMzL?j_h9srSjkcX3oOD*)$cl^F=bdo& zPDf*{0`8(iofYwxL<+>R?&6ku@vEGE^yZjyRCob~HR$rz|7oyZ3-Sl1&o=KPay+ z-wl-;8QPohyL5LmEwFfT`+8=GjCf~f^c+inL~x5fyfeF`q0A-9JerU=tit8A9? zyGNV%cuhjxIpQlfMZui}v|K2n;jcefBTSj%jdXf$Sj&8`BW2wXJAaS>BKs0`fgXy& z#=aV=V)H)mhszA%fhuFYyJi{4lp^@lzyakhWWx>G5>;(xAG(e3KZ?%%pXvVp<2#v+ zVF!mfWhduDV`z?Tb6QS~C_2s|r=%rGa%Crs9OjTlsyT*KqY@qG7*Zkn(A8n6E}fCO z=&JVh{RiH++xv(2`}KM~UysNA4sE6(5CLb>X)5V}oL#>d8KL>y+hKbD<&K)~Njvem zJ@u%%$~|=-4asp`(g1F8D*IR9>q#F(1Q6B$XuVXn9os(V+;4k#wAyA(Jjpfhe)(CW z_wm-(#{m8Y4SvBnUqjpnv)>sZx^A`8fJV&p)I!Vh@pn)9^Ui)6EFROyoTeWhDlhx#k^uLSjb&E7E>5lf8;=+CwIGc4{} zDy*`hb&RrCXCG`fgZTKbPu2Q|gtR|F!@c4y0epATpT)#${e?Js%`|D%A!;;xE825Q z?aDqRfA^orH+6Z+51Vb^;r_ds$f7>s=HN8rVMyaC>on<~zdLf)>-|y6^~kVTvqu)# za<6;&UD5e_Nq+pmgjmv^{u20km%g#Xy=IY*IT2Cus0)tqm0`ahNbnVv-dUYOhw9ma zY}`b{aP&KqgSk$mrdij7u{xi>CVr{E%EKM3anr*@zLY)O{6a}f1w@~?x?d{BX_?=F_54lc`vI`kL`DVe?wZomDm zuzB{5kfHo99>GIm<}Oe?WkD_G8hhX@ zDmH#YFLOI^5(}`pJ`GR{LCX2f9lt9=KV2}nSC+6I{VcNx?FR(3*BTqyJ~gwSZJHYO?25%;S>^VAor8>GCWNWZ*k`fTUp-V z#_@CL+bJ~ssZc>Y%+ORplHcG&4ks5t#Rl0CWarzoh@Ojjf7Xd$p zEp&Xrj4hUax<#;c_tY)*o>hSU#Fv!r{+N<*_KG#JSc>U5va>&oN*83;oDV0w!J^OL z-TvgqIN>TYy!P64Wz=o$56(;`(;Y)U^0Ozls~6cPhT*9M1*JI*p;8`|J)5)Pg%Z~c*Y5p^H=~U0 z`M8qs~pcFPjAno=e?? zHvc6>#KU?uvuK^BGY8=!27*ajEYnKPw=`YNQ@KQJ+c(n>hZZ8do)3t>JN47AJe=H< zFmDMDQUhDX?1KL#zA!f{ zK>2%#r!SrTMLZF{syf2?Q8E)UP;A^<Aq$O+E`eeIuOVwBoSsO7B`R)A$?;0kO z-2MbD`nsiL!?SPm&JfhbmlemdRNCW@(Dv{jo^PET1Na2+@3r z!CdPd&a8DJqtKXX$sCesoXm46ET*wfpR3?NaU90Y-i{n?YHI)@Rrh)cyR`1ZB4y80a$B=a#MXh^QA>|!D{*|0SD;ZyHzerh=e9zBhKPwIDa zX?!ZQ!nu7&^VL`rk5q@tUkLEF$qjv4+k*J}dfYa}2(m1s5w06nwdb({VmHQvGMYnQ zCROpZ*tMQY$;Zw8^6_hnS{mV(p&j#;5N*@^Y3+h-aNKD zRo;j9DMvE9-;~&kE(Y!XsipTPrUCz1^LnVaXW~rdO+jmcb?GD$S5vE%z%dod6qdJP zbSu4zp&i^sp7t1CJ#xr6)^K9LfYccHGH7T!Nw0G1lrLfy& z`QPk}y5Y)%d0N?*QvB)%xUP6ayY0=51AnW779>*Da@!~b%kmIIvoEkOsx+8*U87u-;ElxKe~^XP)BbOK@1$#sJ8@pCbr<|LvQ!8sD5g|QApU}c#NS^iQ5BShP=4ss6pr)IPKr-|%-ZS_? z$CUq$Rr1^Fx~U$RWB+%x8gcI1u+JvDl0XFo=dk>RcjcQ~5qn(2dT~cAtxk}np*4!w zeAY*X1xqVt=uD0ddHtl&%oB~#RNdqf+-d8v|6rl2RGAyqip+R~odEB=Zwo@L0-%3- zWWu&Vm_gm!fa`;Qo4t_3jR0p1PKP?4p$2R=KXSNle{wRqSj>Qw3Xy!)Irk2AM%pjG zt@De(0g{T6w2ux%RziekpFUi7D;4PPMdyX>-umyc0G%K+NC#6nc9A)94y1 zp)2HJadIDR7GTev+x0=K|6-R*wMrrRGKVcct;q%FaJVfb6XFLC{lF%5=PtVO(4cr> zm{J8_yM0uj;L~)xMG}GQRf(Ph>M303o?I?6>KqeTemehsPZv+Ej5Ga!*$&CO48J0! z#JIiBqnhhb!fokd0o#$YD$6)q8EJ0(H zZT<;hjy3ZLee)a(y1=gwWzIWPOW{(V-Gu-jDcgJkFgWI8L6-U!N?p9)m^cCeTdssD zGd_u_7rm;B@LV?gyzeI)Gx6%`5pNa~w{LPBye zV^O*?^bUHQ#B> zxo3JJj$L+V%xpun<|62Ha1atYe9fvii3`w(9Z=0!9Go72CMnL{J7h+hTQQgm^XlNnk{qk@3WxlLvb zu5)}fywJOl#()BE#;Ry4q|iWlrs#l^l;(nsaXL?YGBW7r3b9&YtN(0$7~1dGL4(Ov zP82+V1OlLJ#b)jZc!UJ*z-f%)Xl2F!#ccExwbx5mTq4s{mLi zR^BLVTR<+5uO?#6J?8<3MhI7(KYr}R>^R9@S39g*NwV+3)nUa+oU4Ix^Mpx|=^V4b z?BnOa;Uk41mIk8jLt|#hXdJSTip_8== z8~oOO5Ok9B6lMyN#~vuFsVmUs;w;#peoODExgE<0be`q9HAKy+J%v5Oz=Mlmb2Qix z>54+F*SfVo@71`HB7YB-fHt)cFSpGGmA1`|Wzu{Iqp!R@kT& zS_G*fVwO2fh<2DbvRxUy0B-UMy=8ht=m%p2SpFHX(|&0E)iKED>aXTH*ZwAWjhx;> zcryY$#CpHOC`9uX91=&u&`cMC+%ylnN_=>47g#!y7-CJiF*>m9LtV zM~PyD-eaibGXDEhtNIJcFe9eACd{Kj`|P-O&rVraKj}wD|Fzhbz4Dlp>Qub!AByy9 z&;4w|P1!zI6b}zO|EGu0!q`YIhAy`JYfyJp_+TTA+enI5CA7tRu+zQ}dJ&hy4VO^2 zgKWJk&%^jsrNP6X8{ZfmZ#-Rbaas?ak4@#*AVzjZLw~k9bIq;R$+m3Vn|saGmBM5h z|88c&;KGk8NiH6u%UHF-uK@Dn1iEjNHrus93*{QJEBFqYW*gd`srCINsRU3jKd&Hv z2)S$#Q^0Cb}e*fX`kz5FMRvQooV#;OY;nNb5It-XIn6 z{LHQB^mqS&!UzZOF*kQI?5p>0QK;{`4I-uq!P+`eFL3L%pHuVi!7DhJ)v#Ih7kl?% z^JfnQ!B2$J@sv20tKf&&_`ka1$(6-n@5U_>`Y(_Fgk%xkuyOqAm7bHWBovCTB5a>o3w(3Ilmw(z9KkK358eg z*S{T6n0}w&`EvT-$4vFRiO(`PcYRZwMlwhne$ZcCJG4NiD(g%dCK+J*Jn@Z>ZSjZm zQBSxCi_=RpW;AZ3VYEXoI{uk$b12EO%~X>qe1rSn+gkt&Gd4*4_-G*w9C4U$NC3A@ z+T0MNnZ^{hKQfaIigSYY`PQrZ5Bw3%+h-WqPq4LKge2J1+ppJH-Y8Vkejcp_Y#PC~ zy!ui&{G_#+k@(L)rAaF$!eM)(x3NCy>02i0cHHhEkj8Ra#bTqWKkl7UIKY@*sc8x! zw5_Z;fp%fMRp9KTMviJ3ci?`o{{V8ld<)d%?-b$kWC2W#)uT^z~@ zW72AB^6;J%6&S?|QM7)frL;V-9;IpS<=YJ3v_^PsthBHb4rF6y;l;ZuZ{I#3A$&^M z562ElTZ2ztz(qdnw~$CL?q*6J%iATmVN7&smQX(Pk8U{sFI3Fw4h7ie-035?&6PcX zbyXQtZt*2J+<&5KgnvkR22Z^W&QJ{c5V{Q#nab+3vT_}UFb9h8vb?UPQXLb(=u=Av zdF>v`jAh>xTU}*tMX(09E#6>^KYy|m{N zLS?HW2V9JwrB}`M2C5#i*hcuZ=(lkW&((35_6>0JIU@mO_=3`?431{6Elkk8yu#=# z!KD@4Rjv|V;pn$PD&Em&S`RbbZ(HYHer6aAGT`E{Qk7SOBwbbgEqg7Qg?Qa)a(X{u z3{d7*XDV8;xz}suNx>(5YxF;JSD)|qv*Au#)|F%k_=8k+T|mdxQ6V>!MRVb;dYjSD z%H}TKVn5+H`&!a|HeOG;5KB{8@xUvua4vndn7%R$+R>kQo=A_dJhyS;oZc)VclrM9 zIajIsRDSACU)IA%5ixroM@Eln+HBm_R*VZnG9>OD2oneISf^^-QqImLJGjM8g~{Gu zCRi^1b@S=rC5FmAPmKdvinj-Qx5XAhn_(9=F6G{M!+*oICV2Cc1XB62_Mox0KQ|3Bmnhj^H<%qE zgB8w?&kvR+?9Q-Q+Q<~^D@T5LDVO?&nMFZyk9QLm^QGB32mQm|U&D*4^p!Jk*Y*K# zn8C#r1&1E(-GKgnr+amA^uEpEAHQOvpPE*h7<)3)*0%cQ<|kx^>MZobjUD4-JH6df zi@htA$UimHv9@Yv1Qq_lRj^NBjyriY2QOo6P?D&yBTldDfWJiFa%L(Y#f z1{#P*>L#ezSLAEBL{)}?jysoT84RN!ThlBTwsD-D9S1duEwVE--{ch@Vs@#~NL9#l z>O(wF4C~u$35%M`(>R*=6gQdQ5~4?I`(C0G9T?K9V!H6Z*IF6BV+6EK840->>2Hq< zyaV~jXoK{I*?!%~SZzown%)W06Fr~GGd`SS!4i8GHP_J`vc`61VAD7e(wHReW{Hs% z%GV%BTZN(PJO=C4-;~xv%A(Am5=7PhX%$kF^=m}qqtk!^efp4rx5y{x%?Bnft?Hw% zb(XwG&0tBa?2pw8lxu^7W_1!Y_DEp$-fs&c@@PG3lUIE2*u%jnzduL3f~*7ohdcy| z90w=oGbg?4(N$3&ywe@qdkG-h^(B4jX9G{eiR0hoyUV#^G4Oa2j&MCi`nn}8cdrt=^2F!HKIhWDr}rB~ z9ytzZ%Myh=PGriG5E)tQjjS+A@F#_P;lpQUw*A`nmnyG(bU^2+Qn0r?V0G~$b4|n1 z_v`Kd$oI<(m$GxLIXz&zX`o>)>f3QeU4o?e|>on2X}f;wZ!D-Z8N;ZU_uoqWvaK zobOswn5=z!t(ihZ8hHER^tlQxh9K8x3{UW+&3bONpMkk6Npl(- zxKrW~Lt3URqlijk)nVW}o{Ofu*uN$9APhS)-AtSMFP3z9%a6 zIQo6hngIi1(GZsE)b)4Z!Zm&Do>>j=YU!1|t0igeZFu{|VpiQ8N z(mjP>LIY}?mzCj8vx9L`pz-y&`_ez;O|TDMm2;^%s9UOpv-I_E7uk(01E}oJm{kv| zs2RU|4ZmgeqB3P0Nbf~1l)OBIcr4%4p87zO#tF=Bjy|J}vT#|zi#KoO@Ui_|g8aba z&F5oG2$euJb_?9a5FPL$AqmPkz*HyDfQ_(zjSN^{fMHp^G1XtnnlRX>v@E3-_-Y+t zpEI(WM^Ps2@CJwJhwr&+9CjAQ#TFJsE=LE} zUIn@EpuUSGk3N{g;>pjMyU9>j9FxcIVy2uIKRfp)MmVnmJnQU;stAiCC)PgN!6G)= z9vnBnhJwL9;phl&Z`t=th*iRbs)vk3{ZSi=LDuO_jUgH+xT`ekV(2F14t%f#h#bWc zDPe<_FMpZ>J!Asy7bq19CqHmy`E32vD!8_a9B#FI{?c1-VkW#cs#*=DxZC4%WK{=fPRz;1^JcI@{opY$LM;~Y!IThRX^z&c^0`Vm%<dgGA8IqS{--+u}m`P8CKR^m=e2fAfepW{D`k)Ia)~&)7gA49jzY(-W`q2 zx}EtaR3;#=5jqb+`Sm}V+T>lexIN=liU`MmH_}%Jh=H_+>VE%%ZHDk*Jq0bo<9msj zk%~$%VDBoKU+sN?XBrrBcxNoFFQj zjdB^PwWZVyV{cg?{d$_=PUA0`X+~i|BxM^2gq7Sq)oq^x0#Ep z4&4F07O`f6{F9f?l8R;s``=LB_kA{VfO^29Zrwh$5~ypQls`H~QG8D6q7#u9rc#JK z#k-~OeY`?Q4p1doq*QoB@P1{i}_!bW(xVfG+{TYiOuDlLj6X(P}?9o*9Rtrv7 z+(-SFMyOU(C|DKut<#<-InQj|uqYEAv%a-43=+U;`xHlbCt~q4mJ-nKTt$Pq zC;8Be?F;4R{Y!6c^uZfGiE|wK@#t)LQz)}Bd9YGqgOHqt;r-CC`b5fQBg-TKsM(E%_8aP- z8l&(KOGbE_<8jP5huE&KFh@pJI{nj$+(C147HNlt{?&gIWoL%;mZQ-2s(YZJY9yQn z3gu9`lfu*6{6ENp0pLIH93O4tn%xYIkm5fz;`jD4H0Um?rCu3bsF)+zLB7fq18kYL4+2?X`nxCYdsrCfNO` zLaB2|6db4fInqaATwKYa=GPapWn zvW?%xBqAz6UzYy+N2HQnVoLU&Z??|rfdr-=6#NrLvDfC+BVp*%&LNneW=iCZYd+Ta zQV`xSeoXbh8^wnX`^NzwEDkHG#mICHlgKLmQU~KK;tk}M;bS{I03d7H-uQZu$tINO z4Mq>_u)oJX7OLXQVVPVky1AlLvWBS+#o(PVJO6QDu=E3$Ns}RDfm{`R*hy1Rv71(n zIUMx=D!pe_^jg)KZQ6lk{q2i+Z!1)`^37N@$*tZDP*f#q2JOprWhpAv`eR8qEQK@G z@%q|YXQ0-!%9MATUh9y%E7K2OQ!$kq#Ec_%POF}4Lh0G7QWA;oEZvRLqJNH1<8Y7- zxa^0CdK=g|p1=xFEzq;v^ku2R$xajt$I`OYe&}~d$@XGiR3arUmg@tlL$%aly3W`0E=6*G$2xv2vcm&mE^us<=jjI}3ltrK2>=FY!OsySLv2asq7vzVAy+(w^N6yXkR%Apk`_uwL_h6NTM~^u4<*MgTJL|)-y9EMlMbTNHfm&6SS{)nyt~h)8{5b09chE*TIN~|-2(##+ zL;?u?5nSUp2vlp2Sq7o0VZ^oo!<({XiU6!k*y;is2T@pLRw7!2M$Pj*bw+ z2>D*6tN;|kH;B>;lIs{bk6rFW>W64E6oeqa-GE(Pn#W9Tj%-2C z9_>re-fQ5oYt~`YDP`Jk(gAxQs3pYJ#ZQMWRV@-j(`31m<5v>Kyp+;C3FIEDYLmKF znf?h-J|62-pN}~qYN4X`vsGgS$=up*=XRB#|J|^ixA=bguccO6-H$Smy{bn$V;2C; zjv`K(;p!^y8urlVhajUdx~Afr7G9<)bZ{J7)vV)=Cht*dAd7jQQ+{I(p6wrpmjhtA^dA z0EL8Lu9g%1ue%|aTA!&NJm~D43)J1wcHfikWRPrR(1U!))cNu+Jri}C;hZ(-rg{_s z@d0)k;gq2|_T`k>&FLY{#CBE7f3@PjiNke_Jil%5e{@JhpP1 z55U|{$e^lbDEQxI3DuV3rGeIW_p-`WTm%(2zz>4Di~lSEUp@!Np}c42+L(B-FFCAg z*5T(A^2+WvYh9!I1nPnCc+N)sjVnC zDaS5vT@JwTNU+t#MTa0^$6rc;6;&X@)GlN{5*wjZ5V$lxqE3<#09~?j) z>e+v&DPYf~nq~^GyW0l&>;>{%KFCO{vUSLC0NRP^Mm=`J5QRr`@kjSdZT_NFC%+7R zX+<$0nCgw~aA$#V9H2ARgAMGUA&02>3+sBi_jbOHiMV` zI*g$PUDOk|JL-9$HbUt8WtoK1!Xa^(p)Lzi;j=7L<4tks zoO_>B^9i%)!=C;CeFj^vn;_wgnVNG#J)?-`*I?-YeZ*%Bo24tTK!Hx1JIENf9mENx#o%)hb|{|_9aK%EE$XYO|t&r)jND5+-eOinLB+5>eCQHxLGb8Vtx z4*$Jjvotc>V1p0-kxFsz?$HDdVAeFFN!#B@XV#*#^NRI{vzecRY@e!}kS`(1>4)eQ zy_1%*$S$ey; z1?O{ns+S^v^$I}_C4T`RK2IU@S5TQq)opTz?VXgXpw~8gI?gsvVl2_mLprzKMETH@ zKs}b*l-6GMf6qQM__?H)vKeht`p>RkdM@ZWW7&9Cpv)*MdTdzN zCUB%85#;UbC5COCT#e_$dyJKjCH4{TObW`Cu|pE3IKR*&{$29y`-WP5N5p4rgO_U1 z7)9BMob=*6zOV1ET(hB?w~U+$?vhqH_|*5fLbI`H^SSt%Gy2h!v;&KM_f1S#+7*(; zcYZ><0krn=)j92|z~pH_Z)hTNow(#$HS3ks(_Eq)k6ihh$P}8wtOm2lOsKY9h$CK9 z+xIX#a4@=f3+qr%V~ZOlEwneM#3bfn|JpGFyPivj)b5QxRgD_s55cYcB3$su%>}>G z-e>HGKbe_1tGhdB@qw=yx;=R&Sjl-JNajl#4Y(^8JbM^KvXxxzOyf$}13pLk+v*AjBr@kNx z>fxGFk=+37W;YLd=k+~^T1qVw&?GUf^d?#<0o;`{247mTymcK1m06bqFx zse=WS&%zE#|HIB53=k9-290Q=lP8+8nI|6M+-XVQE^Nv<;YFppUV183ubHktW%mQX zqWx~D(Kw~~%3-0wteO@mg7A)j?qK62vw5Z}wnLi)aj_OwWQ|s!`ldEmjJlowU%je& z20uf(-u{`b$JzagPMT5*7RMTTywTlrkNF1L^Clbm#kF7!eXBkgzXCU;=7P40DyWJZ zsw<|l$+c3%pEbZXesFUO?g8SHc87qU$_p{A7)l_U^8rYaP3Iz`>e0TFswNy$BgycT$KO&bMpL*lw5bpAeTFP!Jv@&{GaTR=2|wt zg9*0%ix(_u;74(R>NbP07=+yfInY5cfxU*?f{spXrZcTK7Bx&@y|p}ZKZI+!bXf3& znyw1G_xk+DGp(QB-!eu8VhD!QSrBW(sJ@t+f$;g2u+!(`bB zqNNK!_^pitg17|Gsb7*GH`iCz=CGzIDu6$9m*usPUJ$L3s7|SwcVP8XG9H5QR%lT7 zXRLS3WBWnCzZbk=9rvW0W|Fr69-I`V+z@ z3ug&B)y!TszRDwUGtQC8(yh+17p7ed6(v^I-Ww1bcd_9Q2~6~#ae+495*FWAsH{~G zz>0wfM?AmfH~FqxB}Qj0H&BOE1GUTBE1ty1KLn{R$JA%v`AWJ6)QB&nn9VW|o9Fe7 z9!J!v9=FY*1i9s-Iu@wd>D{bxkysCdr)?*>a`(9mo?oTJp~E4lJTC+9jKpY>{-{jF!Wjsu9ucdC`jDkM{c1!s z_<}rQNWCE~0HeRlD;?&|zALx4q#EnYACcuuvhe{~Rfii^c!Iy!>d7lR^tk{Cwy5%py3~{&$a$G-WzBIQ+&`jl>CR>Kd-ZYR>G?_$9m8vCcl(GTn>(PQ8+y z@mPx`<}G%_hY3E_YQ|yx)tbh@{T)YZaaFLul!z%=t}s?*R`32NR-Olqp0M!%^TeFo zkpCN}UhmYW>L3Q1N#Ck$pYFwGj#NRGC5qSVWSaSRB~r!+D@Yx5a^8EVw}uD)@_LGR(x;Om>3HW(s|SQ z!=W$h!?Qg4oew64;UmYwC&c!RbbA3-7y`6rew&tRa<~GcPh&QcU+Jfm+=F`$O8JH_ z0BS%Y(?oFqdQzi*Zz8uB;g5q_$1Y?m&OOPZ)s5DlJmwTI$`B!=_wnV^xLrfNSrLq= zhMWe?3&~q;4=98#v0Turp7r1}4!Ws=M#<<}f={@qUf|lNn}~UgO8^0?{|ESZ@{oq_ z+*Qj}4&&mteL-Fwpc6fZVn}N+6VDd*=pCh0Z42^RW973cBd;R4a*Xx>2DI~mV; zY@Go|fk1c=J}`?$kyjNAewPdIDGxa zL+iMkXZ71}^@boP4V!j#__yD5k=U_N7jlX7w?0E5uzA#EqY)(Q!|6t;k`s@1e7d&l zE@(R#8FqUgXScEk=X;xDESC30;Z<6_Q z6p`Knx0{A4-eTIm3IxBQwC)0W0YTP^%L1t^4pUL0aDVLzb0LE_(d_v+u=y%7XBqEh z={ehLzEn-yH0C5&MV8TYkC#?wbHQb>jgNTXCu^s*KWKVL1s1^kIt$ZA?xyMTnqE1g zJX6;O=bk-mm#b)L!izj24HjHIblB>t2VlmId{>t6%^66cESYI^tWOfe7ZZn$YUzem7=ct!|!#1vorPZeLK5&wag4HJ-* zBJd^&sJER@g55rIOKdHm6i_kz7Pi9Af-{rWSeH~S8Lba`%Ax(K??;p?+|2RPsJM+xaD&e zc(F^aSehLHL=J)6ns425ffC+|PW z!!FwndbI(|g-U80vKHNA8dEUWT{EsqBX~IGM!xKfRJ!rPTElVs5?iKrQ#;Rg0qiN3 z8DRCEgmeotKz0`W*$EII@;bfkDyL20*&?`=B+`;z+xxIZZ{8zSdHr(7iH1>%V zTQabQtIl2z|0d|jpB7RTwpmM!&+F9g?34g29=ygl)hMd7cp&WUEgHihQw}fcljgS$ zaP&4HMZ6JdDQRc`+etknqnA!!0&AY&Su)R6ECMbk>G_TiieVRV*rw)oZ3OeaT@(yS z?M$BV5Rzqme^W1)7K zpQ;)sZom7l9`*@5-@Oq>gxPRfb(;MIINi%oZF1dP?;_MN z!{{vW_TmG6#;Mj{u!ncJTC1c73jRGRc;faMKhU*Re#!slYM!o(MouP3_qm0ph?`B`j9bQMsMkhi z@dhpxfJUA~bi<&1h3}3tXVKj|`w;iF&ELn0G_f6el2fPFu23@C1k}sfa)7?q*ary6 zM+Bad6lL@WSy!U=a^+WJ->|YtzZ}`R-fxPeO%q9dGawUL;$-Ab%#Lmz6&&Qei?i&PvqLKvu*CXm1m#KE(2FMf(o^pr1 zID5^2>N(6SI=+Yhw~{8J!Sg9z&-l({5C5>YYwX4meeGAfz=>S39wk=5TKKL zA^3nuCR^XQQ{>+7cY z@5i#UJMinzzIrD^BMA@F1n_jYdVFNp7#v<7oo{R_B2z^kilUN;?YRK&QCxn!jYeb8 z?fdiCwvUxLmfNjGU~%Y1H#ulH1~GUozkR624ky5i_LSR-mI|J&{n{L0MU|{Ar9>^uJsgPiM?%YN$8xkrfep zli%|TjmRaL|uorr$ z%=p58dbuBW2id?(){D(2NM#L#y&4*HB|; z*vVf0!Je`bi@gF->B^i!$N^b2^Ryz0Le~PmlEby88-=W5(lk&@!nO1i=~}=#)c6i^ zkcArmlIZj@6F55yvTWo9mWAdffu17r(RUk67s)$=M8B|SId%K#@+`}pOiMb?p<1Je^sl&nyMRF z(~&85Y47X%#iF|i%ICO8Ti@ocib_uNiguwddcdB~AV-w|vCSuLRSL{Db+Z|>0zJLA zi_N#};wCwZKF#n(c=wdjcv1zMVjyPAM9z`-9MgdKanVQ)LaT!PX@uAi?PR}NU{ z%rHOHoH{#Q)J_IIxHj>c_LgrUxzxu`$RzG>=X)TpX#o}5z@R%jFRs1Ud%N&tfI)*b zRs<%-OlIz^TNABwIQZC7e2mB>B6_W;B<5GqORjpNft_sp}&SU893qreEvgQJEM(?vuH?Dn`ymPHDo1FfIa0qo=d#0owM!!nXvP} zjg?KZ25-~Rpy%&8dG5b@f5>bXeqQ;7<0Wq~){=JjCV&h9j0+u+g!5nTOxT#;S395F z_4(R5n%dov!-KA>sxu~6ig{q{8}VP>X?yY3r28qq;*$=%nsO3d;RhO6lwW3u zw7USuhTDo-+RWsX$wY0@Cv}6>)=6bP57T_RbcCOYu;yzwNN?}b3xatrTC<0IEZPyjNAQ{6bRO;+h$JL%OzZe4gZT46R4GOh4_=V@4d<6E%$x^I-fmiH>18gIX-w=Uw!v8 z@U@?Nn^q^|KMZaDc)3_-<6AHflQHsR3}E-T5UU&UH?SUk4uGYW6xcGq3z7F%k<;&;%ub2Ko}4p2S6&EQu#F)Gk0W7& zoW}jffkX?z3WpDJ5geG8G$g98D)c;>Z+wnW@H_L&8=z2dU$)`QRu3bnc^%r3b zwnO^F50#6}?Jaa$tdE~iK{+(89t3$St8b#NomhPYEm3i;wwM!6li-5Lv%{;RK9;7T zc?jg^f+3VZLUmH@ho#bgFt&u!jBD0|eFh4aRf|aW4g|&5tX=!I`N2Q-J2VI}y~bv* zi}w)k{aJ|r(nq9yFrVvBA_=+=4W7+)360Uyu}h36-4;L6t~{b$`|}3bXRa$JbV@rb zvFU6V`rYD(Yv~7G7yG$vo%|MRQFD1u;BYQ|7O6=j4xd#ZE(Q!TD2bn2UdEd2&@J*^ z35jZN&Q>n8$|qjo-tjmKoE-$v*wUljOJ;cX9=JIZi!%Qcr_R*hW?w+39Gw8Fp`2st0u*77X)xD2 zLLf>ZniQgQpS4b)cL=`&HB{FPi=*r(I5YHE>zV-#VxC;86uQG{nx{hJ5FyH# zyKE@K4nXqMh*+!=(vNV4h3$5hM)mCq;xl%KB7Q*_Up}MrdNl)uan>`y)VV;KTf*l2iVp+~6s^ zR;~i4X2n=Nz4k>0MCm#`6M0hWmkQ8f<&>*;H_6yiw$Ydk}?L+9L zs@w5_DlvfLFY)B!aRd#qq7btiVAmWdV{`Z4e4fSfS$}%VRVK@uU z&Ll~eFu4+)$0`rIx{K`tNaMR%N_`^7t*$gggO_wk3jnOVJB@sK>$SE^fiulIEf3(U zU4A<3^cMUBzad&}?7ev`f-CcXL#UPfN^~labd>n?g7hXPirpK5#ty&Wv%hu?4>yKGs-YxsCUZeLu5nMLNqhgNc_MO!YD!5(s(ZEYSj7$kQW#DAI>qZKqZJksC zz8iy76de#Q>Z*WyZkhLBOF3DEyCwku56DG-<55a7#K# z>6~xBr|C27Wi(mo*hTQ6TT~5;k|p|`L!~+{7qCa412BvPl@Jf6p5ZVDnILSFPVsaH zCn4lJHhqaL#^O=tvH>B3W#DpcSJCqH-x<bcV}qGgcod8(IVYz6^AlL1RbEkgBl5xiuW zue6)G;brCk%L;u|6w*R>dtQ54tRVgxv$(;YmWsA{bO9d(GZF12{pDl9s7bN7i4P>% z%c+aGsv7ST(7?+d0C2FrGd$IO8lU-;U5C&)y{uF%) z+m>9frMrUtFHU01L_vB_T#JE5Cvk=jU@-MV@39i!U^3P>*C$!{9GmEc|sErcJS;4 z=jHN%+Esay)jlpp@9L9=iMWr2d?~mL`}*<;kk}H-a;N1QK27wTth`r&-0L-|{aNDi zJn=^;=3@(kIx&4|#Np)uah%p@-96uHgRmq-KQxzp->GHf63b&hBXXs8{iu?Mhx}i< z6+5(epefWVcf>7CUNB|Z66#eY+$rCYX4z@Foi>uqeQu|?ubw4?e?#)_*JF(=gst2v z4@}UqGHzuM@$^7?AJbu6Xl~uIZws{&CAXY38G`TSEAy}`2aDcWU$V3Q1U~keG2gN} z0WZI7wMowlgc4G#pC_D-jpyt?KLJckYA^8=#=`sujqbn+{g#JzsS%BCA66g=yx(`( z79rA<-cED15JnKN;x`Gh{NzT_bu4Hb&{!4q%Z)OR3ruMG*b>TGD1VZj*}wRlR2O%E zhK1nssB{Gi#qU~I5r^3(JU3@}8oUD2>;^(?t$By$B%jB%6EKw5F^sIMSV;9cNf5G4 zKegRbEPlG#H*w+1(3e1YitK{hJ`lq1E7wFJs%QSQ2hrFUTijL)n~nSF8bLS(d)%#D z8-p?6szR$MXG}IvgSl)0F*qQci}WX5`K$a6wi1#6^bmfp87!TRqlJff6o{&=nRehM?Fa#m1)T{!iLso z&^WGAnALzf$3HK3gCs}QwNcKpVCFlk%GgqBSQ%Kaln&t*gf&|J)QMm}ycQD1m{dLA zKB;vF=-)Kywi>ac-qSt#wHrjxUhc1Y<{Ujw4RiAC8Wc*<9ikfHE>R$}7EkCQ54q+3 zOJ)NCi2n!c-LQc2U3xx|#%c;i*t^%p6AXTZ&<|0q0BN;W+9bq(N3rFvm zk17zDD&oMk#$Ocri$^5+)=bzR&5gB235&JG=J+RdY*&1lu9y%-0e-e&CdF_(1%8oc z1DF=c78;Y1@!&8L2#0Xh#v~eJK#dl4jVWl=81R_Z+j(~M23rvA=nlufdocol=JIu< z!*CYlw-fC`GDiDt6QdVUPSFKE=fGM{(zB?@8mh{21AX$i=bhOfON6J(Y=)Rv>{_#C z**DhW`?-BUL0eNFYZ+N;l}6-pb}j7;a*a569j-w!;7ttQZStWy;;;az%9`Y~1>~6Z zLjYl#Og7pYMf>=3mqf4&aqJO&90y$v+ABfouSzsM3>nFzn5%VQE=O$uSo%kTjxT+- z2n25PL1$FZneW`NLjJ}EpCwRZ@gD;pA-)&^Yo9lC1aI$w-f|6r=TVilXs!0UH)`bj z*QR#44}Hi5Sp4#@J6fiGhpNSYFVTuo=>@9H5hDgF=84aeYJ#5t$F!^y9y#!LxwMx5 zDbQgjtj>`UB8gxvVYTt!J&9Ed|1zIRM&J{3rpo_vBWYTpQ_dMmgnwo9UN2Z4TTR}m zpj&X#X;keqiLrT2*jy7{r1Y9>w|>+}+)1Fus;B=+0Af|L-9@T~P23|eI$*=s``9oT z?yk8lw8tKJ&q1n@yEA^Yl_8Q;QkcC|PvzC2v&^$s%F(nZJwF>k_$lO)y#KG=!h3?-4fLrmRGF~Gq?5aBK~}W0D9$_ z81PhI1XNxtK4Lr0Bn&jzKT$uVRBA)(aT2f_q005N);vI}y{ftDPD%z>0hb6F0;54+ z>G?tFFUmNz)LWf3SO}o$o}_*rmUOT}4TntS8G?4UzKlg?&dKUt5)eJm*T#k3Ou|#P zM6-$WC80zw#KUdRuxc+?zaEHMjz(F(a?8`(Z+}wgU=-1=wa*n&-3rB1=wLbx*5Y1r z?9oN5fsK^5qwPt?r0y|SX<|qlJ&$Bhr(LDfv_Esn)XULW*c*xTc05^22@(xJ`2KKz~o@$mu@}x>?;Ag&zj-)Y6}I8}?dA$KT5%AR&4xtU+GZ zakco+yAFoC2TZ%2`04_waw9-JVWf)}4mBAhi_SEQA{30z7#<6ubG%TmT#8v;xN!$4 zxJ%R9;N`xNWTOgIhyj5Ua0#UFfxts|inhPYeKL3cT5hRQNPA3nfc&Hs&YD0sN>yEt zt94U_<`8hXze;yWo(*%dT)Hn5bD;G7^(ORcWB|j0rP=KJYpzBwz7|b{^;@zQtPQ)G zWemv$Vx&|fq@~?)12SavXyE>yJ^(I@n~h3V%jTRKqutrLKwXw7xlZ0GR6>Qh=a1~E z;tXD!pdNwjyg5aEi;$MK4@zAi>hHb1d!RR{vzvMCi#_gxrym(3EA+na(~jO7%o)8Q zyRYrLk3bw#4q0$pmV|eg)88ZlVi1S`jH0Psv_KzF<-c_k1}9Bb-k98RrT3xc_XZ|n zVm8p9(aTkxC{jKX{5}Aa+(?_Voz`w_J+vxO9R_}ld6U?pzqfT0%ATvwq2_lz4LTh? zNi=vdQ(8{CKLnB%N~Fc}h8lSiQ4Q+-HVw-h48Z*9oe~4J0nFy>Cm51<^fy%ZkOA}U zg|mCCZsOE_Q5P9x1mYUhKszxA0ekFmrZp8)R_;$g^Rh}dZG2smd7~HzRAWG=WK5#Q zPuqi_lb3;nbf9K#>&3{Cuwf&VWK_p$U^P+#3HhJ*XNjsc2J!UMgEjE#;fD-a3jsNH z@E#H?Z&>K|oC|_>TuQIidZJM8Ry_%NSrExWZzKsP+O)>BZw^ZCs#j|db9L4b!{g_a zi15va27KEu-dza_$Ss}w?|6xa*?!=&l16R-Wvfdl&|F-etk+ktYW2thkZdl=UDl&qfW@x0xSte?(&@7`^o@WZx z8dF5&G~|{py4K*jtIp!3uv%Mw!=&<|$>VQhW-+Owx>MYp7TggdoTdFuCyHc1I@ITk{bSd6Q<0BjB}GYNGcy>I9xZbjh&*Fr940lz&FPJ zIHQWhmQ&s0LJxZo=p>?;w8KLNBy_{x*sG0J=tA$0FmmDgy^>MB6d6rR*BU^jmxWD9 z!+qJf!$nbfH5*sRhw?b*G2`$li88+ePse<{UIa^~GT)X3cS7G}CEs=pQ(i{gJPI&+ zMLiHuwKB=|{GU<<(S0#wpl;=flEr+=!`Qs3s=Hd;eshQcedXBbd)Jp1yv8vN$OuYw zMmhaKgm5bQ4EKhF8@Cy9xP15T@90;9B*wr_)>N$ezh$#F!`+aH$d>3yj@DNVC4IT0 znlnTJ@}hsVsmPXZY|Vu^X%A%rVTZmQlN*QD;7o&-j+-0&%p!G3#Vn8KS3 z!sus~qQI)cLxBlp9^&-QA;imyL-~XG>^abD0#0@b>o$y zI5ui4;~Ke~2O_-``6<0b;NL-ZpHYW+;_ms08Q3ErVFDPA_TDKh{}dzLqNr1>ZNsUI zdBeon+nTAm0`7DvkXEELs^N*WA5+SzsCpX{rDh%>@s76d=$%+<_yq;D^u z*tE^xcyqii1eQys<;Bwo7NDq9X$1CWbV*UwSuQ(fJi_&yny|=Sf6BKWo^tIAJ;1XW zN<$6YU+~(M^d`Hh%2THmsEzVe6Aq;l%g#SgKitV;u)KW+<#pDA+eIp!d&|`9fd(Br zuURqm)`rL->;q%tg<_e~hQ53(de~8_ep4D}!d17=Erhh(+C(qN_i5bcx4CtdJK!Dy zO$b8!P`pZi>LCh-X&kXVlLP4R`10IlJiPsbpLUsdcjR}Yz6Lr)q0gS-;;a2pO-Zjj z4aLK|okMHw?~@m~4XoevkRRf;2k6OxPst_c-0B)c%x5ddBW|~QE|wK=96sw`-0xV| zQ2xlt5i)efE`rr}{Y)Jrx8#t#oGM<c{V`Er+NJ}u7eLrNGx==5Tu0OfQv|x~_#0J%y%a50 ziAS~)Eoj+QzJou?y$h?)x$$?3Ytdou8w1$Ic8JLhcSQiUG^)Pz8OOP3?A@+s<2MOF zl-Y?joAAMB-Wsl<(BS*LS#NoxZA1-Cm*vh>3V~aW1>4^b4q2i5wu99KpSU)h3HJvt zJvBP0AIjoidE0X%tI(0rM{8GaiYst7uT=s3%6!G!@(p_Ec(skFg0j_wyiTeOi_l&S*HTZ&xEAA%3 z=0ss4`~+2DnW~jRkv7Glq7VJTx2tG^&#lb@`18dol-MC@pOHXKWY?3P#hOLxZBy_j zHhS`vXM4am8?}3%#+)8?szB#@) z*62a|%W#i*fn&;Af50kavDjGu>>tyGb0_YCZCrdwM$qHsn7=KYpB7&|yFGKPw?_H# zm_%CZdO~et^#?HPw(AuF~Gbs$I=$wzk;(Sz$4P?w-2}2E&_0#oQ;5*dl{^VzYxl|264=XqC zYKi5gO9acH^p^>H|K(kA&N~0y^wsW`m@$w;;hxbqk7=V zT}K@HEArz7ooH#j^%WEK*!~&lkZzEjjehQws*?70>+!$vS`~|h=c?2DNvg0*nIg8q zCDOmpLanNM#YQ@DWp|&*6jzC+Jc0eKca*}#U4q7I54p&7ZgbJ2s|D@v7T-KOzGb0( zH-gMi;2=$0jgQC8+TKk`jWv4+80Kl+zVYYz0qdTkHb52&rY&rYE4jkaS!7x4Uq@~} z{F_3!n2!y4+(e+M{devQY&Wl`t>fzA%?p49oM1?LdjA+y#pV3AGK{TG^RVH96tzV( z$F+S<^q%p}zx;dA!0v`cco62z$t&<}`hHQ}1F%vcS^Xn~S5THeQ&6b`_`$u?-oLox zwQcnJ-Yv!R>X1s)pkC4CWxil{&#@c6XT}6Q)?h>j`C~Q_0qY~4sy;mYfn=3wd%om@ z{r7!Dl^QL>s`l9fisY)*v+a-b-#(bo=3)5{-X|V=s5ZGT{hRPk;2ZR*O~{u)7gj|3Pc*}ieTLf#kk)#RM39WDis-LM zF6kT|BUSsR!1VwzoY;CnGAkrx(V!ITJ~tVgf7+hbn3FzdkO3PlmP<*GY4dIssyL@f zDJfvJLT^>xMcC3A>no%i8Ppn|Zfe0k_YkR<~^l0Q&j{7i4!GAbKqJF;bqWJ6Uyr6S7$F z#2=NKkkYtC+pyG+b3(N#3Cz5grkN%J{(Y7T#l1uz9t0FCbMdUZzl>Zen@6349RaN4XPzJ|E-i`4Y@ z)T-`3-+_TMm&XGP`Z^zp>}XmP?!ChG*IAxehV62`Ppc};*C7XMv{=#~`n!a^R z8H5Td1F2_8uY?_C1uLp}Dyx}9w{{>-x6iz|or>#3gM5#5otV#7Rgj~q46{1U*E)B% zrsB;WLdG-$^0nK8FECqRHF5j=WZ(t!0NHV%?AX2292_F5r6s%_qW8P zN7vPNIZdEXnrTO&rWSnvd^bEGIN)Sp3pU#N_hE`fW%3P9aw)nTUT%Zc)t!OWJZteW zV@W-hw{|LJOCBf?n+gr-+(*3x@=j=K0;k&1FaQt5zD7x< z3UP4U&~A@8J*F)s&CN`pO`!Cu80GHKL93KN zH7tG`k-1c8SeYZh@)=n^T{n5S@|H$etj3$8Ln^y6`%51WL5#6;%Hin@U#r9CxNCJW zg`cR%VLu(z3(ixVSKa^8bWe11>*!nB8LTUi(>fC)kgZpFFYbW&`1I-8nAV5>(~b|j z_kIeRJFt(~aK>LG`$nbWN<3h4PxE96NFnM|P;X6~z7mN*c$^*Xo6doGS;XQpITto) zIauOfz;Ordm_x2a{AyE~*>;I0a~?$R-Zn>n0rdfb55lg?Hfm6h3o^eaZbiovleSJt zk5(JtEFEK$*9gN(K3%-d-+*){~nE&N-3-ZaoY>m<^vyS8p^wPUm8U}sc%F{7M zimB7I=5hO!AErr^q3cdNd^XCWxIXgNp9h(~x*ydH%dh?k2liElTAQ*gEY3m95mMWdCcB{cxT{ z9wA-z@mlAe)p~Fwr5VCQQaVKN9EAkx$~M$zgY{(ws-g`YHh?18<2s0Jfm;owu1u>}?EOo+kC#i6iR21+o(F|ItuwxFCx*8?Dp62T%lHmucsgJ?_!Ie+de zG^f0Un364c`+fJM$!AD;eP3*ScepZC$6`@^MCsfEQjG}CC)1aSGJS~Id_QV~ThtM^ zw_HfB@m@I=i*g!LzQwtl`-Q|2A$bY@Y2&21t4bBIx--Gd|(x;%8W z2;R;{z?y;U3NAn&1jI<35V2^E(Kzcrr&THj!@!j8OTB6`lGnVQ?6J9rQTEXjLAmhu zY+NH~mV%nqJOjP+aN`zE#Z~l0?;S`vPon+-HZLZlNr$hr;j@2 zmxH$UCpWu8jQ*w0?#rDu9cB}SGJ|$8uw#Ox0oVuy19jOrv@oKVs*=nxnwe!jRDcB% z_#(DkvB79fd+obvc{ztNP58x_n@V@z8lOg#$w9DgL*ZTza?T16&bvrspDh zh3KC5KS*ppqVJ=3h|Ek61m11v!cjxT%Rr8?ZHUceSPWL5uKLP;4n}sN204mEN-H8I zLNQ$=LHLRM7KzF-w#tkQ-Xr>Zbq`i!+Vg*7JJ)GAKh)Q=j2iM~$6RW`>8s%(W(-3R zgFGF&E!}RiRX6{?4*ccZjJ@QWPlDikZ(fPrGgxZKo3r;VAgf^IGqYM+CtXg_Cw{8 zLgFX%RJv<#Y+YkQqX+*mtPg|D81=aF6Qw|84uC99XZ%7lEfXb}$^Edy#fG5J6!Gv( zZvlp%iX+4@DmHD)?}PiAA7BRf5jy)Dp%sy_6dnTFzUcX=Uu((2OA&+NWF8S)j8Cw` z%|I3UawK1ZTs5?WH^Y79q&BKbE=AOXgsNT+o}%yN3`0+`S>iaeYU2HhlV&c1RKfA> zzNi!WGvGwgH`boETcWYm5la{yxzddO%qEp%5ShuSHmcU^0mNjHOFcVi*~h+(0}i5E z@-f>CV`s;Pz!)~s1OU|SLupcNBfLNYF`$MTBQ{OPiuIfBFWHs^4J5JfpaaS548F|J zjE?+fnNngJaltV5v|?#ctJ#fHY4T)<8e2_@TmtS-q|7jW==a5ca>Qs|GKnP?<4b2O z1hB@5EyjD%?f>Ol%vfoFQkcvCOQvpGkHNJgjwQ>S^Jh?UBF?+QXtL#^YMC92D&d{D zzg-3z4)W8Knuo;i&N~lJH??v7$l&rU3=%Eav4!Lr&1_ShPw^%$OY!H}2LsiE@s{YK zc({z8dL$!cebhqhc;Xp3vaH`_vMeZ+t+X=W)+Mte%fb~g>1srf*ct>A9itFIMF3R0 z@Z4t!**ezH9sm@w{jELy(}-Wr8Y-WrTKc65)7VO(B9E+5n%ieI>LSdIEZBoNb7!=Q z+!Aq3u|(S43)A-A@hd^N9uu4oN2C#N%AS!lvT0f4Fg@~RG964P{5uVxyh2WFeO5O8 z3`6#@{4BwANkp}KR6cTkQVo?er|PiAJ5P6ZK6gLa>*)>k_sa$3U2nlew;@F$mm>4q zRDgxA1Y$2r&!vK$J{xoZ;wj`fM`W14sPI&?Lkbm~B8L<`BNbh8m{LMe0e4_@Od>G{ zCOvJG0Be(=X4ob&5&D?9VCNUpfgsh?bfxM-%k$%=OlEx|8!%)8)R2H3>xZJ3NgV zOxek!Y?0ZMlxqy#fJS86`Gj6*+T0|`R`xsBB91bK%H`M{W)HHy6$MbiGFifUi;wN+ zkoA}xgq6vgA8{tBCE<2f^uLDpzdc+@LS?8_fH$Uf?0$_MoF3&g!zr1&YR zk7*~|Z;$FoOJJB*fxx;epu9HmB{9%e1_H?p9JL@lbQL2K2qn{xvIq5kRogCA`O5h_ zXb@ftXeGt&BnsyBW8vmsRKHUz)i;xUV~>CTpJgw5T$nsh#gD#`AHPI(=%Gr`PIZLfYRN5Pv4KTtnC zsJz|c;up7l`zeM3O3qB!?#ly9l)7$05i{z67LSqG)(rFW83XgRpJkK!&F~IU`G5#c ztyW1tqWY=Fa<>lxP4`f=yDPXLmo>yMQDMPLcN>}h-H!%EM3w3ogi#Zw`(qV{jVe7Z z?ifM3O3ohQFK*a3Yi_ih+BZJNZV$ThZ5@fSQh0!SE-H0}H0FJHK1#&II*O`^os&l3 zzJ6+Rjw^q5j`(_Y())Rl`MxGuer-r99Y=XyXJ%zA8wEH85w|^|=0BrbY49-wX^iE_ zW@e1it_MxZYt!732b*zHt|MqgBi465I+ z{E&FRo9w)eja&pIxKba9EUksHWTPJ)X5_A(e>GW}_zS5E^z!vZq;-+;;HrxkR#c z-yZb)M+x97$usY78SRTKn}?f_Uok6wSz6tVC6+z|=Mdjk??-^)PM+^cm&(HL8C^#) z9MBIvY|G~tuAwv0l!44xgPB}88_B13{eG|m6z8RHrZi>_^JBy2BzI03V=7h+d?%Dg zUn|SqRSBd<%{d0D*tV9O#(oXGO055Ab324xpojq+69LNsN)ubWAeC<{Ww5#bmK=yM z)i!tyI~>1{Q}KCbR)InwW{rR!Cb2fI`f!TTdFb*Zq(yT=bHcraLMIPuh7tWvS2iUve{h)K^Uw(v6YYnb1iUexeV5y^<8JgGqLThIkyaFK5C&b zm%Od7UM;6*nOI#sXbpy9mZ7S9O|<^*+H*Evqv@BgAo!wH(G}{J&ulDAw^4A^WN1Kn z{ef+V5^-(~96NtbT97%{iwic{$e13+)H<^|XQcLu^04m3S#}Ye5yI|W`kTtL!>l|1 zykR`%rV8694B=7>42TM=00DJ&P^q*;^@H|dlbNCOtjhJ(PS8N0p{XsQ2Dk8+=5ccj z{bFywtWcp!Lth=pO*AC9MDpwRbY*O6%ugRpUaM>Cm}<%W7HzK;|GqZgUFEBGmfZLB zcKp*0i?Styb3-u2*NX_aw`Rc+$LRH99-`5TKu_YYZNB8L>gu937dZ0{UJ%-r*xEke zRcoOT*Tlq5_~}|H-h{Q*|9q!I3wKFwCwZVt^S!F&_nKxL25%@*v|grKD+_IMLr7u(`^&kobh_w$zZM=p0RSmD$qaB5tC_w_Ki8p!NGi54(xvk=kKva)Jh|aEYgSWd{qKu18vVbO@H+ z;%RVz=xm(iGykJfcgHFb!G<+;29meWe;-hXS$<{m;p5^#QQVy+6+L|DzyLc_NPHC^vBRvg1930z zq+-C@P;E;Vkc2<6jxE*;3#%&B$(#!OTkpWy;USR%&o88E$_IlqK0OYoQbbi*Hp4Y} zPTwDa6->E53`tq7RM|H4%U=by&yj<6i!9}W`}Dr=I(xGzPpIaRNw|bQb)~yNWz9Aw zszy;WJx{w5v`jm(33zm3M6qVp4Q^9GFMuOar3SJfmn(u;4kNEcLnyV$sJeEh3 zRtXS9j!mxcZ+PGiTrFOGnfpMmrfMMMLtjk48!`6?_Mxd<&ciBdu;Px!1fjIr^Uowh zbB~FGZV!cFsNFbx?{d@c9?edrWtC{s5B~YJqs#L*>U!QeR)~^vU)u30F zBVlT%02%jo8mjm2efsef2u|!hmHmq%r#x=EWBKzp+8{M$&|ket+@e=DLoLN73Q2lK z+bFA4WsUl4u4d?Tcd*|^^>@2QAu5Ye(1`sUk984oVfoDnLSCyNUmK!wi0lt*G=Xhm zdO^2{X(4yq@0qMoVR{>_>uPL~^Rmc`8yt#J?z_3?;`~N@m99AhfNlzlK?3b++-<>7 z?Zr0qvMN|*Ccw6AjlcE7w<>++K`egbm1eekH{?9O?Sx1{$8mTKVsUY6Z%Pv7e8GQh z9NtF8G6zN?vOo91b@Dd))))2NFC9E<899woQjGC*A<`y97&lJcxl(sb0x^*Qw`yJk z;&p}9`C&5PF{k0f=Db?h1a9OZS_q#9;F}PUTkZq~!8@ES#ITcn5Xc37N!>6Sjg zcN&N(o(O+(4BuJo>?>%5AuUq}up-N`CX1eB^XNC%Shv$hcgXvy$+_2bz7$TQLes$x zI>S1y9}B6<8T;JlODHS{+|7a3eka8&nVy(?%9Re(|rcfspXq(;p+AWP!B>H1W-o&;^e@JAl zclXviB7(j|Cd?2dG%wd-0CfFvjBySSh2F`Hsc|Y+&k(`u*Wg{%Y^aS9so04y@h0{F z7C*`D*K`iY&c|YnnJ=#2z|m3B#7C|+lYXj^FQe~#_-n12>0$fpzP^>+ZFH{>+Iv+A zA0n@1?AjMl9!!qG*b26_d`;D;BFD$&VdVrPa@U)9ve^vC7!5(x0sBx>ea;2T5|~RZ z2U5MHqR?rVWNB>+Hwc;_lHoB*drC%;vDiDu11_R%of;c-LmN%FY$cb(rypzLPdiOM zaq{cET<^y2eUUEOw09dS_Lrm(pZsZ<>w(f+riK(OJ6LdL>37a;Y&@_HuKpaX-rI@) zK*vIk;y2jT$%QrQ@ieGv@JX7v9nPZj{bmav+TO#~g@69Ux$B;%BAc&M_4C;7eK$$A zA6~<2q0`7jTUHiYHQ9jZ@HQIy&|i6``wZ^CJ%>;2;FyD;4cb1NncHjh`RqFV${Srx z>u}9lF(oj#B|rmtRyFYbNoygTj}Nb!Izmk}VM}iy1(FML4T{I_}cl#06rnm-?1|*~ex*KFCTIDRg@7-evXGV5=N( zBXNT7^?`;t+#|SHC;EwOmbNPZq>tQ!h7qm%aJL`xA9QDX11_@NTzY;{(Y$b_6a{5J z_8&xVM?*FN~Edynof+57a_vsYCF=Ec9yj0I} zqePz_0Enp^7=t$t13)x~bQan)Claw?)zqXKXp$t24zRcs8maa*;BpRDkvjwA7nqjT z1n!d2wu-^KtYMOj0@xDl>n@xGN6)8&IkS)?8+arLM0^g-uR7{!1D>14V}fy8Y7D3% z;07EqM-FTR2h8)hz<%I>V}e>RXd9IiTMJ=)1-gmc;Tu8D*u8E%==pCdsW#vM0JIOB z=Pk+mT);AC_&I5@7M5T>*7yTrDCY!~7K_y-2K(@wY7DJEcainoi(ys8NJO~TQZV{p zI%^4*D=chf0*_fkeABnzOu*KH&BJUVez|y?`V#65=$ER^hP4J)U%2_v;QHygI!!Ja z*%qQc%>-`vJzfbM2oh4#ayp?K>{C1I06R9`y$7dYf@99q<1q(d$#T>E{f<_+qr@EW z4mn|~JXT@73*Qa(3j~3mxz+Z9{uJh}Wf*+_3ZqMGjK$f3s&;)4K<8*7ej<2=1R~4A|F>G2Ye%yBY1&mo z)(1rA^R)6aNo^h>J%g%r;Wj%lP2rhnYW0%f=mZNX0EJC#Tbbv=iVa5T#eL`DDxes@ zI6c2%pk@GUlNgi)fKWUuy}`LhZrU7{!F11On2DjRE+eWn*o~UhDYe-a5TwBkPyAp~ zR=;^$J>ID*>`)WjAK=8OIsto(z-8#`3he1MDL;1t z=PIy#6N`QE4RWv*zGVWSf(0Ul06jw-J}_fvAP8g(ix7hBtl^p6pa|i?mxrKLUtuL| z(-QfvLyrlTBdT$;zKxmoja;?4S&-u*NMA@sYaLa{syE?TVg5xn|4XJchS05P!FfTX(q>qbqF3fpLnbT0Bp^M9( z?o}4vw#p!!U39n#aexO8!sAdUBEr~Ksr@b#QIIAdq%97en?Afv4hmcXnx->6PHCoD zTV7^{ABxdT;ur>)K3YJRa6am;f4!q4!ugB1bFd zSHwR&TTk0foA|l=zB+=N;1b>za~rU~HtE?^s0P=i(hfK9l!~8jfK@>svs?rrm$h9k zEASZ+KS3veFEn4Ss$B8L5vaIf@(%UDG-iOo$>54dT)P;YM%0A9f(;Fcg-mq{s97LR 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�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

    O1I4#H)OJ802808o7 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

    )kD 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%0A3_-VCz)~rfaRBmk*MMM+n;Ddv>@+SGzswhjIXmx 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

  1. ;d(*51A&5?u4bNWMYX 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

    jq!E>Fm+*sA}6v?w8L?#D7OuBkjuR(r+SeIU@5a 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 SevKLS+TD9aVlr%gs9axX=eeR^3KxTDhaNnr~Q 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 ^D_pc^MnW&B)x{mm)rcI+B{ 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

    gV;d72|tr(>qrdeq#3#y8~lFsZ6-bTrvc@& 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 Date: Thu, 14 Mar 2024 00:13:14 +0100 Subject: [PATCH 169/231] update selection api --- api/entity-selection/README.md | 129 +++-- api/entity-selection/api_entity_selection.sma | 519 ++++++++++++------ .../include/api_entity_selection.inc | 20 +- 3 files changed, 457 insertions(+), 211 deletions(-) diff --git a/api/entity-selection/README.md b/api/entity-selection/README.md index 2068f86..38e7651 100644 --- a/api/entity-selection/README.md +++ b/api/entity-selection/README.md @@ -11,34 +11,38 @@ Here is a simple example of how to make something like an RTS system using the A #include #include #include +#include #include #include #define ENTITY_BASE_MONSTER_CLASS "monster_base" +new const g_rgiSelectionColor[3] = {255, 0, 0}; + new bool:g_rgbPlayerInStrategyMode[MAX_PLAYERS + 1]; +new Selection:g_rgiPlayerSelection[MAX_PLAYERS + 1]; public plugin_init() { register_plugin("Simple Strategy System", "1.0.0", "Hedgehog Fog"); RegisterHamPlayer(Ham_Player_PreThink, "HamHook_Player_PreThink"); - register_concmd("hwn_set_control_mode", "Command_SetControlMode"); + register_concmd("strategy_mode", "Command_StrategyMode"); } public client_connect(pPlayer) { g_rgbPlayerInStrategyMode[pPlayer] = false; } -public Command_SetControlMode(pPlayer, iLevel, iCId) { - g_rgbPlayerInStrategyMode[pPlayer] = !!read_argv_int(1); - - if (g_rgbPlayerInStrategyMode[pPlayer]) { - console_print(pPlayer, "Entered strategy mode!"); - } else { - console_print(pPlayer, "Left strategy mode!"); - } +public client_disconnected(pPlayer) { + @Player_SetStrategyMode(pPlayer, false); +} + +public Command_StrategyMode(pPlayer) { + new bool:bValue = !!read_argv_int(1); + + @Player_SetStrategyMode(pPlayer, bValue); return PLUGIN_HANDLED; } @@ -46,12 +50,25 @@ public Command_SetControlMode(pPlayer, iLevel, iCId) { public HamHook_Player_PreThink(pPlayer) { if (g_rgbPlayerInStrategyMode[pPlayer]) { @Player_StrategyModeThink(pPlayer); + } +} - if (!is_user_alive(pPlayer)) { - // Block observer input - set_member(pPlayer, m_flNextObserverInput, get_gametime() + 1.0); - } +@Player_SetStrategyMode(this, bool:bValue) { + if (bValue == g_rgbPlayerInStrategyMode[this]) return; + + if (bValue) { + new Selection:iSelection = EntitySelection_Create(this); + EntitySelection_SetFilter(iSelection, "Callback_SelectionMonstersFilter"); + EntitySelection_SetColor(iSelection, g_rgiSelectionColor); + + console_print(this, "Entered strategy mode!"); + } else { + EntitySelection_Destroy(g_rgiPlayerSelection[this]); + + console_print(this, "Left strategy mode!"); } + + g_rgbPlayerInStrategyMode[this] = bValue; } @Player_StrategyModeThink(this) { @@ -59,25 +76,55 @@ public HamHook_Player_PreThink(pPlayer) { static iOldButtons; iOldButtons = pev(this, pev_oldbuttons); if (iButtons & IN_ATTACK && ~iOldButtons & IN_ATTACK) { - EntitySelection_Start(this, "Callback_SelectionMonstersFilter"); + EntitySelection_Start(g_rgiPlayerSelection[this]); } else if (~iButtons & IN_ATTACK && iOldButtons & IN_ATTACK) { - EntitySelection_End(this); + EntitySelection_End(g_rgiPlayerSelection[this]); + @Player_HighlightSelectedMonsters(this); } if (~iButtons & IN_ATTACK2 && iOldButtons & IN_ATTACK2) { - static Float:vecTarget[3]; EntitySelection_GetCursorPos(this, vecTarget); - if (@Player_MoveSelectedMonsters(this, vecTarget)) { - DrawMoveTarget(this, vecTarget); - } + static Float:vecTarget[3]; EntitySelection_GetCursorPos(g_rgiPlayerSelection[this], vecTarget); + + if (@Player_MoveSelectedMonsters(this, vecTarget)) { + @Player_DrawTarget(this, vecTarget, 16.0); + } + } + + // Block observer input for spectators + if (!is_user_alive(this)) { + set_member(this, m_flNextObserverInput, get_gametime() + 1.0); + } +} + +@Player_HighlightSelectedMonsters(this) { + static const Float:flRadiusBorder = 8.0; + static pPlayer; pPlayer = EntitySelection_GetPlayer(g_rgiPlayerSelection[pPlayer]); + static Float:vecSelectionStart[3]; EntitySelection_GetStartPos(g_rgiPlayerSelection[pPlayer], vecSelectionStart); + + new iMonstersNum = EntitySelection_GetSize(g_rgiPlayerSelection[this]); + if (!iMonstersNum) return; + + for (new i = 0; i < iMonstersNum; ++i) { + new pMonster = EntitySelection_GetEntity(g_rgiPlayerSelection[this], i); + + static Float:vecTarget[3]; pev(pMonster, pev_origin, vecTarget); + vecTarget[2] = UTIL_TraceGroundPosition(vecTarget, pMonster) + 1.0; + + static Float:vecMins[3]; pev(pMonster, pev_mins, vecMins); + static Float:vecMaxs[3]; pev(pMonster, pev_maxs, vecMaxs); + static Float:flTargetRadius; flTargetRadius = floatmax(vecMaxs[0] - vecMins[0], vecMaxs[1] - vecMins[1]) / 2; + static Float:flRadius; flRadius = flTargetRadius + flRadiusBorder; + + @Player_DrawTarget(pPlayer, vecTarget, flRadius); } } @Player_MoveSelectedMonsters(this, const Float:vecGoal[3]) { - new iMonstersNum = EntitySelection_GetSize(this); + new iMonstersNum = EntitySelection_GetSize(g_rgiPlayerSelection[this]); if (!iMonstersNum) return false; for (new i = 0; i < iMonstersNum; ++i) { - new pMonster = EntitySelection_GetEntity(this, i); + new pMonster = EntitySelection_GetEntity(g_rgiPlayerSelection[this], i); set_pev(pMonster, pev_enemy, 0); CE_SetMemberVec(pMonster, "vecGoal", vecGoal); @@ -87,32 +134,48 @@ public HamHook_Player_PreThink(pPlayer) { return true; } -public bool:Callback_SelectionMonstersFilter(pPlayer, pEntity) { - return CE_IsInstanceOf(pEntity, ENTITY_BASE_MONSTER_CLASS); -} - -DrawMoveTarget(pPlayer, const Float:vecTarget[3]) { - new iModelIndex = engfunc(EngFunc_ModelIndex, "sprites/zbeam2.spr"); +@Player_DrawTarget(this, const Float:vecTarget[3], Float:flRadius) { + static iModelIndex; iModelIndex = engfunc(EngFunc_ModelIndex, "sprites/zbeam2.spr"); + static const iLifeTime = 5; + static Float:flRadiusRatio; flRadiusRatio = 1.0 / (float(iLifeTime) / 10); - engfunc(EngFunc_MessageBegin, MSG_ONE, SVC_TEMPENTITY, vecTarget, pPlayer); + engfunc(EngFunc_MessageBegin, MSG_ONE, SVC_TEMPENTITY, vecTarget, this); write_byte(TE_BEAMCYLINDER); engfunc(EngFunc_WriteCoord, vecTarget[0]); engfunc(EngFunc_WriteCoord, vecTarget[1]); engfunc(EngFunc_WriteCoord, vecTarget[2]); engfunc(EngFunc_WriteCoord, 0.0); engfunc(EngFunc_WriteCoord, 0.0); - engfunc(EngFunc_WriteCoord, vecTarget[2] + 32.0); + engfunc(EngFunc_WriteCoord, vecTarget[2] + (flRadius * flRadiusRatio)); write_short(iModelIndex); write_byte(0); write_byte(0); - write_byte(5); + write_byte(iLifeTime); write_byte(8); write_byte(0); - write_byte(0); - write_byte(255); - write_byte(0); + write_byte(g_rgiSelectionColor[0]); + write_byte(g_rgiSelectionColor[1]); + write_byte(g_rgiSelectionColor[2]); write_byte(255); write_byte(0); message_end(); } + +public bool:Callback_SelectionMonstersFilter(pPlayer, pEntity) { + return CE_IsInstanceOf(pEntity, ENTITY_BASE_MONSTER_CLASS); +} + +stock Float:UTIL_TraceGroundPosition(const Float:vecOrigin[], pIgnoreEnt) { + static pTrace; pTrace = create_tr2(); + + static Float:vecTarget[3]; xs_vec_set(vecTarget, vecOrigin[0], vecOrigin[1], vecOrigin[2] - 8192.0); + + engfunc(EngFunc_TraceLine, vecOrigin, vecTarget, IGNORE_MONSTERS, pIgnoreEnt, pTrace); + + get_tr2(pTrace, TR_vecEndPos, vecTarget); + + free_tr2(pTrace); + + return vecTarget[2]; +} ``` \ No newline at end of file diff --git a/api/entity-selection/api_entity_selection.sma b/api/entity-selection/api_entity_selection.sma index cfb4f2a..13e8123 100644 --- a/api/entity-selection/api_entity_selection.sma +++ b/api/entity-selection/api_entity_selection.sma @@ -5,26 +5,47 @@ #include #include +#include + +#define MAX_SELECTIONS 256 + +#define NOT_VALID_SELECTION_ERR "Selection %d is not valid selection handle!" + const Float:SelectionGroundOffset = 1.0; -new const SelectionColor[3] = {0, 255, 0}; new const g_szTrailModel[] = "sprites/zbeam2.spr"; -new g_rgiSelectionFilterPluginId[MAX_PLAYERS + 1]; -new g_rgiSelectionFilterFunctionId[MAX_PLAYERS + 1]; -new bool:g_rgbSelectionActive[MAX_PLAYERS + 1]; -new Array:g_rgirgSelectionEntities[MAX_PLAYERS + 1]; -new Float:g_rgflSelectionNextDraw[MAX_PLAYERS + 1]; -new Float:g_rgvecSelectionStart[MAX_PLAYERS + 1][3]; -new Float:g_rgvecSelectionEnd[MAX_PLAYERS + 1][3]; +enum Callback { + Callback_PluginId, + Callback_FunctionId +} + +enum Selection { + Selection_Index, + bool:Selection_Active, + bool:Selection_Free, + Selection_Player, + Selection_FilterCallback[Callback], + Array:Selection_Entities, + Float:Selection_Start[3], + Float:Selection_End[3], + Selection_Color[3], + Selection_Brightness, + Float:Selection_NextDraw +}; new g_pTrace; - new g_iMaxEntities = 0; +new g_rgSelections[MAX_SELECTIONS][Selection]; + public plugin_precache() { g_pTrace = create_tr2(); g_iMaxEntities = global_get(glb_maxEntities); + + for (new iSelection = 0; iSelection < MAX_SELECTIONS; ++iSelection) { + g_rgSelections[iSelection][Selection_Free] = true; + } } public plugin_init() { @@ -37,293 +58,449 @@ public plugin_init() { public plugin_end() { free_tr2(g_pTrace); + + for (new iSelection = 0; iSelection < MAX_SELECTIONS; ++iSelection) { + if (g_rgSelections[iSelection][Selection_Free]) continue; + + @Selection_Free(g_rgSelections[iSelection]); + } } public plugin_natives() { register_library("api_entity_selection"); + register_native("EntitySelection_Create", "Native_CreateSelection"); + register_native("EntitySelection_Destroy", "Native_DestroySelection"); + register_native("EntitySelection_SetFilter", "Native_SetSelectionFilter"); + register_native("EntitySelection_SetColor", "Native_SetSelectionColor"); + register_native("EntitySelection_SetBrightness", "Native_SetSelectionBrightness"); + register_native("EntitySelection_GetPlayer", "Native_GetSelectionPlayer"); register_native("EntitySelection_Start", "Native_StartSelection"); register_native("EntitySelection_End", "Native_EndSelection"); register_native("EntitySelection_GetEntity", "Native_GetSelectionEntity"); register_native("EntitySelection_GetSize", "Native_GetSelectionSize"); - register_native("EntitySelection_GetStartPos", "Native_GetStartPos"); - register_native("EntitySelection_GetEndPos", "Native_GetEndPos"); register_native("EntitySelection_GetCursorPos", "Native_GetSelectionCursorPos"); + register_native("EntitySelection_GetStartPos", "Native_GetSelectionStartPos"); + register_native("EntitySelection_GetEndPos", "Native_GetSelectionEndPos"); } /*--------------------------------[ Natives ]--------------------------------*/ -public Native_StartSelection(iPluginId, iArgc) { +public Native_CreateSelection(iPluginId, iArgc) { static pPlayer; pPlayer = get_param(1); - static szFilterCallback[64]; get_string(2, szFilterCallback, charsmax(szFilterCallback)); - static iFunctionId; iFunctionId = get_func_id(szFilterCallback, iPluginId); + new iSelection = FindFreeSelection(); + if (iSelection == -1) { + log_error(AMX_ERR_NATIVE, "Failed to allocate new selection!"); + return -1; + } + + @Selection_Init(g_rgSelections[iSelection], pPlayer, iSelection); + + return iSelection; +} + +public Native_DestroySelection(iPluginId, iArgc) { + static iSelection; iSelection = get_param_byref(1); + + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return; + } + + @Selection_Free(g_rgSelections[iSelection]); + + set_param_byref(1, -1); +} + +public Native_SetSelectionFilter(iPluginId, iArgc) { + static iSelection; iSelection = get_param_byref(1); + static szCallback[64]; get_string(2, szCallback, charsmax(szCallback)); + + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return; + } + + static iFunctionId; iFunctionId = get_func_id(szCallback, iPluginId); if (iFunctionId == -1) { - log_error(AMX_ERR_NATIVE, "Cannot find function ^"%s^" in plugin %d!", szFilterCallback, iPluginId); + log_error(AMX_ERR_NATIVE, "Cannot find function ^"%s^" in plugin %d!", szCallback, iPluginId); + return; + } + + @Selection_SetFilterFunction(g_rgSelections[iSelection], iFunctionId, iPluginId); +} + +public Native_SetSelectionColor(iPluginId, iArgc) { + static iSelection; iSelection = get_param_byref(1); + static rgiColor[3]; get_array(2, rgiColor, sizeof(rgiColor)); + + @Selection_SetColor(g_rgSelections[iSelection], rgiColor); +} + +public Native_SetSelectionBrightness(iPluginId, iArgc) { + static iSelection; iSelection = get_param_byref(1); + static iBrightness; iBrightness = get_param(2); + + @Selection_SetBrightness(g_rgSelections[iSelection], iBrightness); +} + +public Native_GetSelectionPlayer(iPluginId, iArgc) { + static iSelection; iSelection = get_param_byref(1); + + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return 0; + } + + return g_rgSelections[iSelection][Selection_Player]; +} + +public Native_StartSelection(iPluginId, iArgc) { + static iSelection; iSelection = get_param_byref(1); + + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); return; } - if (g_rgiSelectionFilterPluginId[pPlayer] != -1) { - @Player_SelectionRelease(pPlayer); + if (g_rgSelections[iSelection][Selection_Active]) { + log_error(AMX_ERR_NATIVE, "Cannot start selection! Selection is already started!"); + return; } - @Player_SelectionInit(pPlayer, iFunctionId, iPluginId); - @Player_SelectionStart(pPlayer); + @Selection_Start(g_rgSelections[iSelection]); } public Native_EndSelection(iPluginId, iArgc) { - static pPlayer; pPlayer = get_param(1); + static iSelection; iSelection = get_param_byref(1); + + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return; + } - if (!g_rgbSelectionActive[pPlayer]) { + if (!g_rgSelections[iSelection][Selection_Active]) { log_error(AMX_ERR_NATIVE, "Cannot end selection! Selection is not started!"); return; } - @Player_SelectionEnd(pPlayer); + @Selection_End(g_rgSelections[iSelection]); } public Native_GetSelectionEntity(iPluginId, iArgc) { - new pPlayer = get_param(1); + new iSelection = get_param_byref(1); new iIndex = get_param(2); - if (g_rgirgSelectionEntities[pPlayer] == Invalid_Array) return -1; + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return -1; + } + + if (g_rgSelections[iSelection][Selection_Entities] == Invalid_Array) return -1; - return ArrayGetCell(g_rgirgSelectionEntities[pPlayer], iIndex); + return ArrayGetCell(g_rgSelections[iSelection][Selection_Entities], iIndex); } public Native_GetSelectionSize(iPluginId, iArgc) { - new pPlayer = get_param(1); + new iSelection = get_param_byref(1); - if (g_rgirgSelectionEntities[pPlayer] == Invalid_Array) return 0; + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return 0; + } + + if (g_rgSelections[iSelection][Selection_Entities] == Invalid_Array) return 0; - return ArraySize(g_rgirgSelectionEntities[pPlayer]); + return ArraySize(g_rgSelections[iSelection][Selection_Entities]); } -public Native_GetStartPos(iPluginId, iArgc) { - new pPlayer = get_param(1); - - set_array_f(2, g_rgvecSelectionStart[pPlayer], 3); -} +public Native_GetSelectionStartPos(iPluginId, iArgc) { + new iSelection = get_param_byref(1); -public Native_GetEndPos(iPluginId, iArgc) { - new pPlayer = get_param(1); + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return; + } - set_array_f(2, g_rgvecSelectionEnd[pPlayer], 3); + set_array_f(2, g_rgSelections[iSelection][Selection_Start], 3); } -public Native_GetSelectionCursorPos(iPluginId, iArgc) { - new pPlayer = get_param(1); +public Native_GetSelectionEndPos(iPluginId, iArgc) { + new iSelection = get_param_byref(1); - static Float:vecTarget[3]; @Player_GetCursorPosition(pPlayer, vecTarget); + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return; + } - set_array_f(2, vecTarget, 3); + set_array_f(2, g_rgSelections[iSelection][Selection_End], 3); } -/*--------------------------------[ Forwards ]--------------------------------*/ +public Native_GetSelectionCursorPos(iPluginId, iArgc) { + new iSelection = get_param_byref(1); -public client_connect(pPlayer) { - g_rgiSelectionFilterPluginId[pPlayer] = -1; - g_rgiSelectionFilterFunctionId[pPlayer] = -1; - g_rgbSelectionActive[pPlayer] = false; - g_rgirgSelectionEntities[pPlayer] = Invalid_Array; - g_rgflSelectionNextDraw[pPlayer] = 0.0; -} + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return; + } + + static Float:vecTarget[3]; @Selection_GetCursorPos(g_rgSelections[iSelection], vecTarget); -public client_disconnected(pPlayer) { - @Player_SelectionRelease(pPlayer); + set_array_f(2, vecTarget, 3); } /*--------------------------------[ Hooks ]--------------------------------*/ public HamHook_Player_PostThink_Post(pPlayer) { - if (g_rgbSelectionActive[pPlayer]) { - @Player_SelectionThink(pPlayer); - } + @Player_SelectionsThink(pPlayer); } public FMHook_OnFreeEntPrivateData(pEntity) { if (!pev_valid(pEntity)) return; - for (new pPlayer = 1; pPlayer <= MaxClients; ++pPlayer) { - @Player_RemoveEntityFronSelection(pPlayer, pEntity); + for (new iSelection = 0; iSelection < MAX_SELECTIONS; ++iSelection) { + if (g_rgSelections[iSelection][Selection_Free]) continue; + + @Selection_RemoveEntity(g_rgSelections[iSelection], pEntity); } } /*--------------------------------[ Methods ]--------------------------------*/ -@Player_SelectionInit(this, iFunctionId, iPluginId) { - if (g_rgiSelectionFilterPluginId[this] != -1) return; +@Player_SelectionsThink(this) { + for (new iSelection = 0; iSelection < MAX_SELECTIONS; ++iSelection) { + if (g_rgSelections[iSelection][Selection_Player] != this) continue; + if (!g_rgSelections[iSelection][Selection_Active]) continue; - g_rgiSelectionFilterPluginId[this] = iPluginId; - g_rgiSelectionFilterFunctionId[this] = iFunctionId; - g_rgirgSelectionEntities[this] = ArrayCreate(); + @Selection_Think(g_rgSelections[iSelection]); + } } -@Player_SelectionRelease(this) { - if (g_rgirgSelectionEntities[this] != Invalid_Array) { - ArrayDestroy(g_rgirgSelectionEntities[this]); +bool:@Selection_IsValid(rgSelection[Selection]) { + return !rgSelection[Selection_Free]; +} + +@Selection_Init(rgSelection[Selection], pPlayer, iIndex) { + rgSelection[Selection_Index] = iIndex; + rgSelection[Selection_Active] = false; + rgSelection[Selection_Free] = false; + rgSelection[Selection_Player] = pPlayer; + rgSelection[Selection_FilterCallback][Callback_PluginId] = -1; + rgSelection[Selection_FilterCallback][Callback_FunctionId] = -1; + rgSelection[Selection_Color][0] = 255; + rgSelection[Selection_Color][1] = 255; + rgSelection[Selection_Color][2] = 255; + rgSelection[Selection_Brightness] = 255; + rgSelection[Selection_Entities] = ArrayCreate(); + rgSelection[Selection_NextDraw] = get_gametime(); +} + +@Selection_Free(rgSelection[Selection]) { + if (rgSelection[Selection_Entities] != Invalid_Array) { + ArrayDestroy(rgSelection[Selection_Entities]); } - g_rgbSelectionActive[this] = false; - g_rgiSelectionFilterPluginId[this] = -1; - g_rgiSelectionFilterFunctionId[this] = -1; - g_rgirgSelectionEntities[this] = Invalid_Array; + rgSelection[Selection_Index] = -1; + rgSelection[Selection_Active] = false; + rgSelection[Selection_Free] = true; + rgSelection[Selection_Player] = 0; + rgSelection[Selection_FilterCallback][Callback_PluginId] = -1; + rgSelection[Selection_FilterCallback][Callback_FunctionId] = -1; + rgSelection[Selection_Entities] = Invalid_Array; + rgSelection[Selection_NextDraw] = 0.0; +} + +@Selection_SetFilterFunction(rgSelection[Selection], iFunctionId, iPluginId) { + rgSelection[Selection_FilterCallback][Callback_FunctionId] = iFunctionId; + rgSelection[Selection_FilterCallback][Callback_PluginId] = iPluginId; +} + +@Selection_SetColor(rgSelection[Selection], const rgiColor[3]) { + rgSelection[Selection_Color][0] = rgiColor[0]; + rgSelection[Selection_Color][1] = rgiColor[1]; + rgSelection[Selection_Color][2] = rgiColor[2]; +} + +@Selection_SetBrightness(rgSelection[Selection], iBrightness) { + rgSelection[Selection_Brightness] = iBrightness; } -@Player_SelectionStart(this) { - @Player_GetCursorPosition(this, g_rgvecSelectionStart[this]); +@Selection_Start(rgSelection[Selection]) { + @Selection_GetCursorPos(rgSelection, rgSelection[Selection_Start]); - ArrayClear(g_rgirgSelectionEntities[this]); + ArrayClear(rgSelection[Selection_Entities]); - g_rgbSelectionActive[this] = true; - g_rgflSelectionNextDraw[this] = get_gametime(); + rgSelection[Selection_Active] = true; + rgSelection[Selection_NextDraw] = get_gametime(); } -@Player_SelectionEnd(this) { - if (!g_rgbSelectionActive[this]) return; +@Selection_End(rgSelection[Selection]) { + if (!rgSelection[Selection_Active]) return; - @Player_UpdateEndPosition(this); + @Selection_GetCursorPos(rgSelection, rgSelection[Selection_End]); - UTIL_NormalizeBox(g_rgvecSelectionStart[this], g_rgvecSelectionEnd[this]); + UTIL_NormalizeBox(rgSelection[Selection_Start], rgSelection[Selection_End]); - g_rgvecSelectionEnd[this][2] = g_rgvecSelectionStart[this][2] + @Player_GetSelectionHeight(this); + static Float:flMinz; flMinz = floatmin( + TracePointHeight(rgSelection[Selection_End], -8192.0), + TracePointHeight(rgSelection[Selection_Start], -8192.0) + ); - @Player_FindEntitiesInSelection(this); + static Float:flMaxZ; flMaxZ = floatmax( + TracePointHeight(rgSelection[Selection_End], 8192.0), + TracePointHeight(rgSelection[Selection_Start], 8192.0) + ); - new iEntitiesNum = ArraySize(g_rgirgSelectionEntities[this]); + rgSelection[Selection_Start][2] = flMinz; + rgSelection[Selection_End][2] = flMaxZ; - for (new i = 0; i < iEntitiesNum; ++i) { - static pEntity; pEntity = ArrayGetCell(g_rgirgSelectionEntities[this], i); - @Player_HighlightEntityInSelection(this, pEntity); - } + @Selection_FindEntities(rgSelection); - g_rgbSelectionActive[this] = false; + rgSelection[Selection_Active] = false; } -@Player_SelectionThink(this) { - if (g_rgflSelectionNextDraw[this] <= get_gametime()) { - @Player_UpdateEndPosition(this); - @Player_DrawSelectionBox(this); - g_rgflSelectionNextDraw[this] = get_gametime() + 0.1; +@Selection_Think(rgSelection[Selection]) { + if (rgSelection[Selection_NextDraw] <= get_gametime()) { + @Selection_GetCursorPos(rgSelection, rgSelection[Selection_End]); + @Selection_DrawBox(rgSelection); + rgSelection[Selection_NextDraw] = get_gametime() + 0.1; } } -@Player_GetCursorPosition(this, Float:vecOut[3]) { - static Float:vecOrigin[3]; ExecuteHamB(Ham_EyePosition, this, vecOrigin); +@Selection_GetCursorPos(const rgSelection[Selection], Float:vecOut[]) { + static pPlayer; pPlayer = rgSelection[Selection_Player]; + static Float:vecOrigin[3]; ExecuteHamB(Ham_EyePosition, pPlayer, vecOrigin); - pev(this, pev_v_angle, vecOut); - angle_vector(vecOut, ANGLEVECTOR_FORWARD, vecOut); - xs_vec_add_scaled(vecOrigin, vecOut, 8192.0, vecOut); + static Float:vecForward[3]; + pev(pPlayer, pev_v_angle, vecForward); + angle_vector(vecForward, ANGLEVECTOR_FORWARD, vecForward); - engfunc(EngFunc_TraceLine, vecOrigin, vecOut, DONT_IGNORE_MONSTERS, this, g_pTrace); + xs_vec_add_scaled(vecOrigin, vecForward, 8192.0, vecOut); - get_tr2(g_pTrace, TR_vecEndPos, vecOut); -} - -Float:@Player_GetSelectionHeight(this) { - return floatmin( - GetHeight(g_rgvecSelectionStart[this]), - GetHeight(g_rgvecSelectionEnd[this]) - ); -} + engfunc(EngFunc_TraceLine, vecOrigin, vecOut, DONT_IGNORE_MONSTERS, pPlayer, g_pTrace); -@Player_UpdateEndPosition(this) { - @Player_GetCursorPosition(this, g_rgvecSelectionEnd[this]); - g_rgvecSelectionEnd[this][2] = g_rgvecSelectionStart[this][2]; + get_tr2(g_pTrace, TR_vecEndPos, vecOut); } -Array:@Player_FindEntitiesInSelection(this) { +Array:@Selection_FindEntities(rgSelection[Selection]) { for (new pEntity = 1; pEntity < g_iMaxEntities; ++pEntity) { if (!pev_valid(pEntity)) continue; - if (!UTIL_IsEntityInBox(pEntity, g_rgvecSelectionStart[this], g_rgvecSelectionEnd[this])) continue; + if (!UTIL_IsEntityInBox(pEntity, rgSelection[Selection_Start], rgSelection[Selection_End])) continue; + + static bResult; bResult = true; - callfunc_begin_i(g_rgiSelectionFilterFunctionId[this], g_rgiSelectionFilterPluginId[this]); - callfunc_push_int(this); - callfunc_push_int(pEntity); - static bResult; bResult = callfunc_end(); + if (rgSelection[Selection_FilterCallback][Callback_FunctionId] != -1) { + callfunc_begin_i(rgSelection[Selection_FilterCallback][Callback_FunctionId], rgSelection[Selection_FilterCallback][Callback_PluginId]); + callfunc_push_int(rgSelection[Selection_Index]); + callfunc_push_int(pEntity); + bResult = callfunc_end(); + } if (bResult) { - ArrayPushCell(g_rgirgSelectionEntities[this], pEntity); + ArrayPushCell(rgSelection[Selection_Entities], pEntity); } } } -@Player_HighlightEntityInSelection(this, pEntity) { - static Float:vecOrigin[3]; pev(pEntity, pev_origin, vecOrigin); - static Float:vecMins[3]; pev(pEntity, pev_mins, vecMins); - static Float:vecMaxs[3]; pev(pEntity, pev_maxs, vecMaxs); - static Float:flRadius; flRadius = floatmax(vecMaxs[0] - vecMins[0], vecMaxs[1] - vecMins[1]) / 2; +@Selection_RemoveEntity(rgSelection[Selection], pEntity) { + if (rgSelection[Selection_Entities] == Invalid_Array) return; - // vecOrigin[2] += vecMins[2]; - vecOrigin[2] = g_rgvecSelectionStart[this][2]; + static iIndex; iIndex = ArrayFindValue(rgSelection[Selection_Entities], pEntity); + if (iIndex == -1) return; - @Player_HighlightTarget(this, vecOrigin, flRadius); + ArrayDeleteItem(rgSelection[Selection_Entities], iIndex); } -@Player_RemoveEntityFronSelection(this, pEntity) { - if (g_rgirgSelectionEntities[this] == Invalid_Array) return; +@Selection_DrawBox(rgSelection[Selection]) { + static pPlayer; pPlayer = rgSelection[Selection_Player]; + static iModelIndex; iModelIndex = engfunc(EngFunc_ModelIndex, g_szTrailModel); + static Float:flHeight; flHeight = floatmax(rgSelection[Selection_Start][2], rgSelection[Selection_End][2]) + SelectionGroundOffset; + + for (new i = 0; i < 4; ++i) { + engfunc(EngFunc_MessageBegin, MSG_ONE, SVC_TEMPENTITY, Float:{0.0, 0.0, 0.0}, pPlayer); + write_byte(TE_BEAMPOINTS); + + switch (i) { + case 0: { + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][1]); + } + case 1: { + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][1]); + } + case 2: { + engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][1]); + } + case 3: { + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][1]); + } + } - static iIndex; iIndex = ArrayFindValue(g_rgirgSelectionEntities[this], pEntity); - if (iIndex == -1) return; + engfunc(EngFunc_WriteCoord, flHeight); + + switch (i) { + case 0: { + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][1]); + } + case 1: { + engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][1]); + } + case 2: { + engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][1]); + } + case 3: { + engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][1]); + } + } - ArrayDeleteItem(g_rgirgSelectionEntities[this], iIndex); + engfunc(EngFunc_WriteCoord, flHeight); + + write_short(iModelIndex); + write_byte(0); + write_byte(0); + write_byte(1); + write_byte(16); + write_byte(0); + write_byte(rgSelection[Selection_Color][0]); + write_byte(rgSelection[Selection_Color][1]); + write_byte(rgSelection[Selection_Color][2]); + write_byte(rgSelection[Selection_Brightness]); + write_byte(0); + message_end(); + } } -@Player_DrawSelectionBox(this) { - engfunc(EngFunc_MessageBegin, MSG_ONE, SVC_TEMPENTITY, Float:{0.0, 0.0, 0.0}, this); - write_byte(TE_BOX); - engfunc(EngFunc_WriteCoord, g_rgvecSelectionStart[this][0]); - engfunc(EngFunc_WriteCoord, g_rgvecSelectionStart[this][1]); - engfunc(EngFunc_WriteCoord, g_rgvecSelectionStart[this][2] + SelectionGroundOffset); - engfunc(EngFunc_WriteCoord, g_rgvecSelectionEnd[this][0]); - engfunc(EngFunc_WriteCoord, g_rgvecSelectionEnd[this][1]); - engfunc(EngFunc_WriteCoord, g_rgvecSelectionEnd[this][2] + SelectionGroundOffset); - write_short(1); - write_byte(0); - write_byte(255); - write_byte(0); - message_end(); -} +/*--------------------------------[ Functions ]--------------------------------*/ -@Player_HighlightTarget(this, const Float:vecTarget[3], Float:flRadius) { - static iModelIndex; iModelIndex = engfunc(EngFunc_ModelIndex, g_szTrailModel); +FindFreeSelection() { + for (new i = 0; i < MAX_SELECTIONS; ++i) { + if (g_rgSelections[i][Selection_Free]) return i; + } - engfunc(EngFunc_MessageBegin, MSG_ONE, SVC_TEMPENTITY, vecTarget, this); - write_byte(TE_BEAMCYLINDER); - engfunc(EngFunc_WriteCoord, vecTarget[0]); - engfunc(EngFunc_WriteCoord, vecTarget[1]); - engfunc(EngFunc_WriteCoord, vecTarget[2] + SelectionGroundOffset); - engfunc(EngFunc_WriteCoord, 0.0); - engfunc(EngFunc_WriteCoord, 0.0); - engfunc(EngFunc_WriteCoord, vecTarget[2] + SelectionGroundOffset + flRadius); - write_short(iModelIndex); - write_byte(0); - write_byte(0); - write_byte(5); - write_byte(8); - write_byte(0); - write_byte(SelectionColor[0]); - write_byte(SelectionColor[1]); - write_byte(SelectionColor[2]); - write_byte(255); - write_byte(0); - message_end(); + return -1; } -/*--------------------------------[ Functions ]--------------------------------*/ - -Float:GetHeight(const Float:vecOrigin[3]) { - static Float:vecTarget[3]; xs_vec_set(vecTarget, vecOrigin[0], vecOrigin[1], vecOrigin[2] + 8192.0); +Float:TracePointHeight(const Float:vecOrigin[], Float:flMaxDistance) { + static Float:vecTarget[3]; + xs_vec_set(vecTarget, vecOrigin[0], vecOrigin[1], vecOrigin[2] + flMaxDistance); engfunc(EngFunc_TraceLine, vecOrigin, vecTarget, IGNORE_MONSTERS, 0, g_pTrace); get_tr2(g_pTrace, TR_vecEndPos, vecTarget); - return vecTarget[2] - vecOrigin[2]; + return vecTarget[2]; } /*--------------------------------[ Stocks ]--------------------------------*/ -stock UTIL_IsEntityInBox(pEntity, const Float:vecBoxMin[3], const Float:vecBoxMax[3]) { +stock UTIL_IsEntityInBox(pEntity, const Float:vecBoxMin[], const Float:vecBoxMax[]) { static Float:vecAbsMin[3]; pev(pEntity, pev_absmin, vecAbsMin); static Float:vecAbsMax[3]; pev(pEntity, pev_absmax, vecAbsMax); @@ -335,7 +512,7 @@ stock UTIL_IsEntityInBox(pEntity, const Float:vecBoxMin[3], const Float:vecBoxMa return true; } -stock UTIL_NormalizeBox(Float:vecMin[3], Float:vecMax[3]) { +stock UTIL_NormalizeBox(Float:vecMin[], Float:vecMax[]) { for (new i = 0; i < 3; ++i) { if (vecMin[i] > vecMax[i]) UTIL_FloatSwap(vecMin[i], vecMax[i]); } diff --git a/api/entity-selection/include/api_entity_selection.inc b/api/entity-selection/include/api_entity_selection.inc index e674dfa..7899363 100644 --- a/api/entity-selection/include/api_entity_selection.inc +++ b/api/entity-selection/include/api_entity_selection.inc @@ -5,10 +5,16 @@ #pragma reqlib api_entity_selection -native EntitySelection_Start(pPlayer, const szFilterCb[]); -native EntitySelection_End(pPlayer); -native EntitySelection_GetEntity(pPlayer, iIndex); -native EntitySelection_GetSize(pPlayer); -native EntitySelection_GetCursorPos(pPlayer, Float:vecOut[]); -native EntitySelection_GetStartPos(pPlayer, Float:vecOut[]); -native EntitySelection_GetEndPos(pPlayer, Float:vecOut[]); +native Selection:EntitySelection_Create(pPlayer); +native EntitySelection_Destroy(&Selection:selection); +native EntitySelection_Start(const &Selection:selection); +native EntitySelection_SetFilter(const &Selection:selection, const szCallback[]); +native EntitySelection_SetColor(const &Selection:selection, const rgiColor[3]); +native EntitySelection_SetBrightness(const &Selection:selection, iBrightness); +native EntitySelection_End(const &Selection:selection); +native EntitySelection_GetEntity(const &Selection:selection, iIndex); +native EntitySelection_GetSize(const &Selection:selection); +native EntitySelection_GetPlayer(const &Selection:selection); +native EntitySelection_GetCursorPos(const &Selection:selection, Float:vecOut[]); +native EntitySelection_GetStartPos(const &Selection:selection, Float:vecOut[]); +native EntitySelection_GetEndPos(const &Selection:selection, Float:vecOut[]); From 7b4ed83bd043dc2687bf5b67b2ebd328273bb783 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 14 Mar 2024 00:23:59 +0100 Subject: [PATCH 170/231] update readme --- api/entity-selection/README.md | 58 ++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/api/entity-selection/README.md b/api/entity-selection/README.md index 38e7651..f51ff77 100644 --- a/api/entity-selection/README.md +++ b/api/entity-selection/README.md @@ -6,7 +6,7 @@ Here is a simple example of how to make something like an RTS system using the A ![Simple Strategy Mode](../../images/example-entity-selection.gif) -```cpp +```pawn #include #include #include @@ -18,7 +18,7 @@ Here is a simple example of how to make something like an RTS system using the A #define ENTITY_BASE_MONSTER_CLASS "monster_base" -new const g_rgiSelectionColor[3] = {255, 0, 0}; +new const SelectionColor[3] = {255, 0, 0}; new bool:g_rgbPlayerInStrategyMode[MAX_PLAYERS + 1]; new Selection:g_rgiPlayerSelection[MAX_PLAYERS + 1]; @@ -59,7 +59,7 @@ public HamHook_Player_PreThink(pPlayer) { if (bValue) { new Selection:iSelection = EntitySelection_Create(this); EntitySelection_SetFilter(iSelection, "Callback_SelectionMonstersFilter"); - EntitySelection_SetColor(iSelection, g_rgiSelectionColor); + EntitySelection_SetColor(iSelection, SelectionColor); console_print(this, "Entered strategy mode!"); } else { @@ -97,25 +97,12 @@ public HamHook_Player_PreThink(pPlayer) { } @Player_HighlightSelectedMonsters(this) { - static const Float:flRadiusBorder = 8.0; - static pPlayer; pPlayer = EntitySelection_GetPlayer(g_rgiPlayerSelection[pPlayer]); - static Float:vecSelectionStart[3]; EntitySelection_GetStartPos(g_rgiPlayerSelection[pPlayer], vecSelectionStart); - new iMonstersNum = EntitySelection_GetSize(g_rgiPlayerSelection[this]); if (!iMonstersNum) return; for (new i = 0; i < iMonstersNum; ++i) { new pMonster = EntitySelection_GetEntity(g_rgiPlayerSelection[this], i); - - static Float:vecTarget[3]; pev(pMonster, pev_origin, vecTarget); - vecTarget[2] = UTIL_TraceGroundPosition(vecTarget, pMonster) + 1.0; - - static Float:vecMins[3]; pev(pMonster, pev_mins, vecMins); - static Float:vecMaxs[3]; pev(pMonster, pev_maxs, vecMaxs); - static Float:flTargetRadius; flTargetRadius = floatmax(vecMaxs[0] - vecMins[0], vecMaxs[1] - vecMins[1]) / 2; - static Float:flRadius; flRadius = flTargetRadius + flRadiusBorder; - - @Player_DrawTarget(pPlayer, vecTarget, flRadius); + @Monster_Highlight(pMonster, this); } } @@ -125,10 +112,7 @@ public HamHook_Player_PreThink(pPlayer) { for (new i = 0; i < iMonstersNum; ++i) { new pMonster = EntitySelection_GetEntity(g_rgiPlayerSelection[this], i); - - set_pev(pMonster, pev_enemy, 0); - CE_SetMemberVec(pMonster, "vecGoal", vecGoal); - CE_SetMember(pMonster, "flNextEnemyUpdate", get_gametime() + 5.0); + @Monster_SetGoal(pMonster, vecGoal); } return true; @@ -153,14 +137,40 @@ public HamHook_Player_PreThink(pPlayer) { write_byte(iLifeTime); write_byte(8); write_byte(0); - write_byte(g_rgiSelectionColor[0]); - write_byte(g_rgiSelectionColor[1]); - write_byte(g_rgiSelectionColor[2]); + write_byte(SelectionColor[0]); + write_byte(SelectionColor[1]); + write_byte(SelectionColor[2]); write_byte(255); write_byte(0); message_end(); } +@Monster_SetGoal(this, const Float:vecGoal[3]) { + set_pev(this, pev_enemy, 0); + CE_SetMemberVec(this, "vecGoal", vecGoal); + CE_SetMember(this, "flNextEnemyUpdate", get_gametime() + 5.0); +} + +@Monster_Highlight(this, pPlayer) { + static Float:vecTarget[3]; pev(this, pev_origin, vecTarget); + vecTarget[2] = UTIL_TraceGroundPosition(vecTarget, this) + 1.0; + + static Float:flRadius; flRadius = @Entity_GetSelectionRadius(this); + + @Player_DrawTarget(pPlayer, vecTarget, flRadius); +} + +Float:@Entity_GetSelectionRadius(this) { + static const Float:flRadiusBorder = 8.0; + + static Float:vecMins[3]; pev(this, pev_mins, vecMins); + static Float:vecMaxs[3]; pev(this, pev_maxs, vecMaxs); + static Float:flTargetRadius; flTargetRadius = floatmax(vecMaxs[0] - vecMins[0], vecMaxs[1] - vecMins[1]) / 2; + static Float:flRadius; flRadius = flTargetRadius + flRadiusBorder; + + return flRadius; +} + public bool:Callback_SelectionMonstersFilter(pPlayer, pEntity) { return CE_IsInstanceOf(pEntity, ENTITY_BASE_MONSTER_CLASS); } From c9023c5ea5b51c345bc904c7a02b51b87b5fb722 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 14 Mar 2024 02:29:17 +0100 Subject: [PATCH 171/231] add cursor entity support --- api/entity-selection/api_entity_selection.sma | 44 +++++++++++++++++-- .../include/api_entity_selection.inc | 2 + 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/api/entity-selection/api_entity_selection.sma b/api/entity-selection/api_entity_selection.sma index 13e8123..67e7fcf 100644 --- a/api/entity-selection/api_entity_selection.sma +++ b/api/entity-selection/api_entity_selection.sma @@ -7,6 +7,8 @@ #include +#define IS_PLAYER(%1) (%1 >= 1 && %1 <= MaxClients) + #define MAX_SELECTIONS 256 #define NOT_VALID_SELECTION_ERR "Selection %d is not valid selection handle!" @@ -25,6 +27,7 @@ enum Selection { bool:Selection_Active, bool:Selection_Free, Selection_Player, + Selection_CursorEntity, Selection_FilterCallback[Callback], Array:Selection_Entities, Float:Selection_Start[3], @@ -74,6 +77,8 @@ public plugin_natives() { register_native("EntitySelection_SetColor", "Native_SetSelectionColor"); register_native("EntitySelection_SetBrightness", "Native_SetSelectionBrightness"); register_native("EntitySelection_GetPlayer", "Native_GetSelectionPlayer"); + register_native("EntitySelection_SetCursorEntity", "Native_SetSelectionCursorEntity"); + register_native("EntitySelection_GetCursorEntity", "Native_GetSelectionCursorEntity"); register_native("EntitySelection_Start", "Native_StartSelection"); register_native("EntitySelection_End", "Native_EndSelection"); register_native("EntitySelection_GetEntity", "Native_GetSelectionEntity"); @@ -155,6 +160,29 @@ public Native_GetSelectionPlayer(iPluginId, iArgc) { return g_rgSelections[iSelection][Selection_Player]; } +public Native_GetSelectionCursorEntity(iPluginId, iArgc) { + static iSelection; iSelection = get_param_byref(1); + + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return 0; + } + + return g_rgSelections[iSelection][Selection_CursorEntity]; +} + +public Native_SetSelectionCursorEntity(iPluginId, iArgc) { + static iSelection; iSelection = get_param_byref(1); + static pCursor; pCursor = get_param(2); + + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return; + } + + g_rgSelections[iSelection][Selection_CursorEntity] = pCursor; +} + public Native_StartSelection(iPluginId, iArgc) { static iSelection; iSelection = get_param_byref(1); @@ -285,6 +313,7 @@ bool:@Selection_IsValid(rgSelection[Selection]) { rgSelection[Selection_Active] = false; rgSelection[Selection_Free] = false; rgSelection[Selection_Player] = pPlayer; + rgSelection[Selection_CursorEntity] = pPlayer; rgSelection[Selection_FilterCallback][Callback_PluginId] = -1; rgSelection[Selection_FilterCallback][Callback_FunctionId] = -1; rgSelection[Selection_Color][0] = 255; @@ -304,6 +333,7 @@ bool:@Selection_IsValid(rgSelection[Selection]) { rgSelection[Selection_Active] = false; rgSelection[Selection_Free] = true; rgSelection[Selection_Player] = 0; + rgSelection[Selection_CursorEntity] = 0; rgSelection[Selection_FilterCallback][Callback_PluginId] = -1; rgSelection[Selection_FilterCallback][Callback_FunctionId] = -1; rgSelection[Selection_Entities] = Invalid_Array; @@ -368,16 +398,22 @@ bool:@Selection_IsValid(rgSelection[Selection]) { } @Selection_GetCursorPos(const rgSelection[Selection], Float:vecOut[]) { - static pPlayer; pPlayer = rgSelection[Selection_Player]; - static Float:vecOrigin[3]; ExecuteHamB(Ham_EyePosition, pPlayer, vecOrigin); + static pCursor; pCursor = rgSelection[Selection_CursorEntity]; + static Float:vecOrigin[3]; ExecuteHamB(Ham_EyePosition, pCursor, vecOrigin); static Float:vecForward[3]; - pev(pPlayer, pev_v_angle, vecForward); + + if (IS_PLAYER(pCursor)) { + pev(pCursor, pev_v_angle, vecForward); + } else { + pev(pCursor, pev_angles, vecForward); + } + angle_vector(vecForward, ANGLEVECTOR_FORWARD, vecForward); xs_vec_add_scaled(vecOrigin, vecForward, 8192.0, vecOut); - engfunc(EngFunc_TraceLine, vecOrigin, vecOut, DONT_IGNORE_MONSTERS, pPlayer, g_pTrace); + engfunc(EngFunc_TraceLine, vecOrigin, vecOut, DONT_IGNORE_MONSTERS, pCursor, g_pTrace); get_tr2(g_pTrace, TR_vecEndPos, vecOut); } diff --git a/api/entity-selection/include/api_entity_selection.inc b/api/entity-selection/include/api_entity_selection.inc index 7899363..64d748a 100644 --- a/api/entity-selection/include/api_entity_selection.inc +++ b/api/entity-selection/include/api_entity_selection.inc @@ -15,6 +15,8 @@ native EntitySelection_End(const &Selection:selection); native EntitySelection_GetEntity(const &Selection:selection, iIndex); native EntitySelection_GetSize(const &Selection:selection); native EntitySelection_GetPlayer(const &Selection:selection); +native EntitySelection_SetCursorEntity(const &Selection:selection, pCursor); +native EntitySelection_GetCursorEntity(const &Selection:selection); native EntitySelection_GetCursorPos(const &Selection:selection, Float:vecOut[]); native EntitySelection_GetStartPos(const &Selection:selection, Float:vecOut[]); native EntitySelection_GetEndPos(const &Selection:selection, Float:vecOut[]); From 9306acb4c295d0571735c7328b7258cb02ecef47 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 16 Mar 2024 05:50:54 +0100 Subject: [PATCH 172/231] add SetCursorPos native --- api/entity-selection/api_entity_selection.sma | 81 ++++++++++++------- .../include/api_entity_selection.inc | 1 + 2 files changed, 51 insertions(+), 31 deletions(-) diff --git a/api/entity-selection/api_entity_selection.sma b/api/entity-selection/api_entity_selection.sma index 67e7fcf..609c6bf 100644 --- a/api/entity-selection/api_entity_selection.sma +++ b/api/entity-selection/api_entity_selection.sma @@ -30,6 +30,7 @@ enum Selection { Selection_CursorEntity, Selection_FilterCallback[Callback], Array:Selection_Entities, + Float:Selection_Cursor[3], Float:Selection_Start[3], Float:Selection_End[3], Selection_Color[3], @@ -84,6 +85,7 @@ public plugin_natives() { register_native("EntitySelection_GetEntity", "Native_GetSelectionEntity"); register_native("EntitySelection_GetSize", "Native_GetSelectionSize"); register_native("EntitySelection_GetCursorPos", "Native_GetSelectionCursorPos"); + register_native("EntitySelection_SetCursorPos", "Native_SetSelectionCursorPos"); register_native("EntitySelection_GetStartPos", "Native_GetSelectionStartPos"); register_native("EntitySelection_GetEndPos", "Native_GetSelectionEndPos"); } @@ -216,8 +218,8 @@ public Native_EndSelection(iPluginId, iArgc) { } public Native_GetSelectionEntity(iPluginId, iArgc) { - new iSelection = get_param_byref(1); - new iIndex = get_param(2); + static iSelection; iSelection = get_param_byref(1); + static iIndex; iIndex = get_param(2); if (!@Selection_IsValid(g_rgSelections[iSelection])) { log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); @@ -230,7 +232,7 @@ public Native_GetSelectionEntity(iPluginId, iArgc) { } public Native_GetSelectionSize(iPluginId, iArgc) { - new iSelection = get_param_byref(1); + static iSelection; iSelection = get_param_byref(1); if (!@Selection_IsValid(g_rgSelections[iSelection])) { log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); @@ -243,7 +245,7 @@ public Native_GetSelectionSize(iPluginId, iArgc) { } public Native_GetSelectionStartPos(iPluginId, iArgc) { - new iSelection = get_param_byref(1); + static iSelection; iSelection = get_param_byref(1); if (!@Selection_IsValid(g_rgSelections[iSelection])) { log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); @@ -254,7 +256,7 @@ public Native_GetSelectionStartPos(iPluginId, iArgc) { } public Native_GetSelectionEndPos(iPluginId, iArgc) { - new iSelection = get_param_byref(1); + static iSelection; iSelection = get_param_byref(1); if (!@Selection_IsValid(g_rgSelections[iSelection])) { log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); @@ -265,16 +267,26 @@ public Native_GetSelectionEndPos(iPluginId, iArgc) { } public Native_GetSelectionCursorPos(iPluginId, iArgc) { - new iSelection = get_param_byref(1); + static iSelection; iSelection = get_param_byref(1); if (!@Selection_IsValid(g_rgSelections[iSelection])) { log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); return; } - static Float:vecTarget[3]; @Selection_GetCursorPos(g_rgSelections[iSelection], vecTarget); + set_array_f(2, g_rgSelections[iSelection][Selection_Cursor], 3); +} + +public Native_SetSelectionCursorPos(iPluginId, iArgc) { + static iSelection; iSelection = get_param_byref(1); + static Float:vecOrigin[3]; get_array_f(2, vecOrigin, 3); + + if (!@Selection_IsValid(g_rgSelections[iSelection])) { + log_error(AMX_ERR_NATIVE, NOT_VALID_SELECTION_ERR, iSelection); + return; + } - set_array_f(2, vecTarget, 3); + xs_vec_copy(vecOrigin, g_rgSelections[iSelection][Selection_Cursor]); } /*--------------------------------[ Hooks ]--------------------------------*/ @@ -356,7 +368,9 @@ bool:@Selection_IsValid(rgSelection[Selection]) { } @Selection_Start(rgSelection[Selection]) { - @Selection_GetCursorPos(rgSelection, rgSelection[Selection_Start]); + @Selection_CalculateCursorPos(rgSelection); + + xs_vec_copy(rgSelection[Selection_Cursor], rgSelection[Selection_Start]); ArrayClear(rgSelection[Selection_Entities]); @@ -367,7 +381,7 @@ bool:@Selection_IsValid(rgSelection[Selection]) { @Selection_End(rgSelection[Selection]) { if (!rgSelection[Selection_Active]) return; - @Selection_GetCursorPos(rgSelection, rgSelection[Selection_End]); + xs_vec_copy(rgSelection[Selection_Cursor], rgSelection[Selection_End]); UTIL_NormalizeBox(rgSelection[Selection_Start], rgSelection[Selection_End]); @@ -391,31 +405,36 @@ bool:@Selection_IsValid(rgSelection[Selection]) { @Selection_Think(rgSelection[Selection]) { if (rgSelection[Selection_NextDraw] <= get_gametime()) { - @Selection_GetCursorPos(rgSelection, rgSelection[Selection_End]); - @Selection_DrawBox(rgSelection); + @Selection_CalculateCursorPos(rgSelection); + @Selection_DrawSelection(rgSelection); rgSelection[Selection_NextDraw] = get_gametime() + 0.1; } } -@Selection_GetCursorPos(const rgSelection[Selection], Float:vecOut[]) { +bool:@Selection_CalculateCursorPos(rgSelection[Selection]) { static pCursor; pCursor = rgSelection[Selection_CursorEntity]; - static Float:vecOrigin[3]; ExecuteHamB(Ham_EyePosition, pCursor, vecOrigin); - static Float:vecForward[3]; + if (pCursor <= 0) return false; + + static Float:vecOrigin[3]; + static Float:vecAngles[3]; if (IS_PLAYER(pCursor)) { - pev(pCursor, pev_v_angle, vecForward); + ExecuteHamB(Ham_EyePosition, pCursor, vecOrigin); + pev(pCursor, pev_v_angle, vecAngles); } else { - pev(pCursor, pev_angles, vecForward); + pev(pCursor, pev_origin, vecOrigin); + pev(pCursor, pev_angles, vecAngles); } - angle_vector(vecForward, ANGLEVECTOR_FORWARD, vecForward); + static Float:vecForward[3]; angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecForward); + static Float:vecEnd[3]; xs_vec_add_scaled(vecOrigin, vecForward, 8192.0, vecEnd); - xs_vec_add_scaled(vecOrigin, vecForward, 8192.0, vecOut); + engfunc(EngFunc_TraceLine, vecOrigin, vecEnd, DONT_IGNORE_MONSTERS, pCursor, g_pTrace); - engfunc(EngFunc_TraceLine, vecOrigin, vecOut, DONT_IGNORE_MONSTERS, pCursor, g_pTrace); + get_tr2(g_pTrace, TR_vecEndPos, rgSelection[Selection_Cursor]); - get_tr2(g_pTrace, TR_vecEndPos, vecOut); + return true; } Array:@Selection_FindEntities(rgSelection[Selection]) { @@ -447,10 +466,10 @@ Array:@Selection_FindEntities(rgSelection[Selection]) { ArrayDeleteItem(rgSelection[Selection_Entities], iIndex); } -@Selection_DrawBox(rgSelection[Selection]) { +@Selection_DrawSelection(rgSelection[Selection]) { static pPlayer; pPlayer = rgSelection[Selection_Player]; static iModelIndex; iModelIndex = engfunc(EngFunc_ModelIndex, g_szTrailModel); - static Float:flHeight; flHeight = floatmax(rgSelection[Selection_Start][2], rgSelection[Selection_End][2]) + SelectionGroundOffset; + static Float:flHeight; flHeight = floatmax(rgSelection[Selection_Start][2], rgSelection[Selection_Cursor][2]) + SelectionGroundOffset; for (new i = 0; i < 4; ++i) { engfunc(EngFunc_MessageBegin, MSG_ONE, SVC_TEMPENTITY, Float:{0.0, 0.0, 0.0}, pPlayer); @@ -466,12 +485,12 @@ Array:@Selection_FindEntities(rgSelection[Selection]) { engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][1]); } case 2: { - engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Cursor][0]); engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][1]); } case 3: { engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][0]); - engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][1]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Cursor][1]); } } @@ -480,19 +499,19 @@ Array:@Selection_FindEntities(rgSelection[Selection]) { switch (i) { case 0: { engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][0]); - engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][1]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Cursor][1]); } case 1: { - engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Cursor][0]); engfunc(EngFunc_WriteCoord, rgSelection[Selection_Start][1]); } case 2: { - engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][0]); - engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][1]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Cursor][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Cursor][1]); } case 3: { - engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][0]); - engfunc(EngFunc_WriteCoord, rgSelection[Selection_End][1]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Cursor][0]); + engfunc(EngFunc_WriteCoord, rgSelection[Selection_Cursor][1]); } } diff --git a/api/entity-selection/include/api_entity_selection.inc b/api/entity-selection/include/api_entity_selection.inc index 64d748a..3357f8e 100644 --- a/api/entity-selection/include/api_entity_selection.inc +++ b/api/entity-selection/include/api_entity_selection.inc @@ -17,6 +17,7 @@ native EntitySelection_GetSize(const &Selection:selection); native EntitySelection_GetPlayer(const &Selection:selection); native EntitySelection_SetCursorEntity(const &Selection:selection, pCursor); native EntitySelection_GetCursorEntity(const &Selection:selection); +native EntitySelection_SetCursorPos(const &Selection:selection, const Float:vecOrigin[]); native EntitySelection_GetCursorPos(const &Selection:selection, Float:vecOut[]); native EntitySelection_GetStartPos(const &Selection:selection, Float:vecOut[]); native EntitySelection_GetEndPos(const &Selection:selection, Float:vecOut[]); From f63edec824b14f991aa30e002a275cf5bece1ea7 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 18 Mar 2024 20:35:40 +0100 Subject: [PATCH 173/231] optimize cellclass performance --- util/cellclass.inc | 288 ++++++++++++++++++++++++++------------------- 1 file changed, 165 insertions(+), 123 deletions(-) diff --git a/util/cellclass.inc b/util/cellclass.inc index 5993ffc..384197d 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -8,9 +8,17 @@ #tryinclude #include -#define MAX_CLASS_NAME_LENGTH 64 -#define MAX_METHOD_NAME_LENGTH 64 -#define MAX_METHOD_CALL_STACK_SIZE 1024 +#if !defined CLASS_METHOD_CALL_STACK_SIZE + #define CLASS_METHOD_CALL_STACK_SIZE 1024 +#endif + +#if !defined CLASS_METHOD_MAX_NAME_LENGTH + #define CLASS_METHOD_MAX_NAME_LENGTH 64 +#endif + +#if !defined CLASS_METHOD_MAX_ARGUMENTS + #define CLASS_METHOD_MAX_ARGUMENTS 32 +#endif // Default argument values @@ -30,6 +38,8 @@ #define __cls_err_MaxCallStackSizeExceeded "Maximum call stack size exceeded!" #define __cls_err_ClassMethodCallEndWithoutStart "Call ClassInstanceCallMethodEnd but method call is not started" +#define __cls_MethodParamOffset(%1) (%1 * _:__cls_MethodParamData) + enum Class { Invalid_Class = -1 }; @@ -48,7 +58,13 @@ enum { CMP_ReadFromCellArray }; -// Internal structures enum +// Internal structures + +enum __cls_MethodType { + __cls_MethodType_Invalid = -1, + __cls_MethodType_Method, + __cls_MethodType_Virtual +}; enum __cls_Data { Class:__cls_Data_Base, @@ -56,13 +72,19 @@ enum __cls_Data { Trie:__cls_Data_Methods }; +enum __cls_MethodParamData { + __cls_MethodParamData_Type = 0, + __cls_MethodParamData_Size +}; + enum __cls_MethodData { - __cls_MethodData_Name[MAX_METHOD_NAME_LENGTH], + __cls_MethodData_Name[CLASS_METHOD_MAX_NAME_LENGTH], Class:__cls_MethodData_Class, __cls_MethodData_PluginId, __cls_MethodData_FunctionId, - bool:__cls_MethodData_IsVirtual, - Array:__cls_MethodData_ParamTypes + __cls_MethodType:__cls_MethodData_Type, + __cls_MethodData_ParamTypesNum, + __cls_MethodData_ParamTypes[__cls_MethodParamOffset(CLASS_METHOD_MAX_ARGUMENTS + 1)] }; enum __cls_InstanceData { @@ -70,29 +92,23 @@ enum __cls_InstanceData { Trie:__cls_InstanceData_Members }; -enum __cls_MethodParamData { - __cls_MethodParamData_Type = 0, - __cls_MethodParamData_Size -}; - enum __cls_MethodCallStackItem { - __cls_MethodCallStackItem_Name[MAX_METHOD_NAME_LENGTH], + __cls_MethodCallStackItem_Name[CLASS_METHOD_MAX_NAME_LENGTH], ClassInstance:__cls_MethodCallStackItem_Instance, Class:__cls_MethodCallStackItem_Class, Struct:__cls_MethodCallStackItem_Method }; // Fast pseudo-stack implementation -stock Array:__cls_callstack[MAX_METHOD_CALL_STACK_SIZE][__cls_MethodCallStackItem]; +stock Array:__cls_callstack[CLASS_METHOD_CALL_STACK_SIZE][__cls_MethodCallStackItem]; stock __cls_callstack_size = 0; // Variables to store info between Begin and End method calls stock ClassInstance:__cls_call_pInstance = Invalid_ClassInstance; stock Struct:__cls_call_sMethod = Invalid_Struct; stock DataPack:__cls_call_dpParams = Invalid_DataPack; -stock Array:__cls_call_irgParamTypes = Invalid_Array; stock __cls_call_iParamTypesNum = 0; -stock __cls_call_sParamsNum = 0; +stock __cls_call_iParamsNum = 0; // Buffers #if defined _datapack_included @@ -114,18 +130,8 @@ stock Class:ClassCreate(const &Class:sBaseClass = Invalid_Class) { stock ClassDestroy(&Class:class) { new Trie:itMethods = StructGetCell(Struct:class, __cls_Data_Methods); + __cls_DestroyMethodsTrie(itMethods); - new TrieIter:iMethodsIter = TrieIterCreate(itMethods); - - while (!TrieIterEnded(iMethodsIter)) { - new Struct:sMethod; TrieIterGetCell(iMethodsIter, sMethod); - __cls_DestroyMethod(sMethod); - TrieIterNext(iMethodsIter); - } - - TrieIterDestroy(iMethodsIter); - - TrieDestroy(itMethods); new Trie:itMembers = StructGetCell(Struct:class, __cls_Data_Members); TrieDestroy(itMembers); @@ -166,11 +172,10 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const szCallbac ArrayDestroy(irgArgs); if (sBaseClass != Invalid_Class) { - new Struct:sBaseMethod = _cellclass_FindClassMethodInHierarchy(sBaseClass, szMethod); + new Struct:sBaseMethod = __cls_FindClassMethodInHierarchy(sBaseClass, szMethod); if (sBaseMethod != Invalid_Struct) { - if (StructGetCell(sBaseMethod, __cls_MethodData_IsVirtual)) { - new Array:irgBaseParamTypes = StructGetCell(sBaseMethod, __cls_MethodData_ParamTypes); - if (!_cellclass_CompareParamTypes(irgBaseParamTypes, irgParamTypes)) { + if (StructGetCell(sBaseMethod, __cls_MethodData_Type) == __cls_MethodType_Virtual) { + if (!__cls_CompareParamTypes(sBaseMethod, irgParamTypes)) { set_fail_state(__cls_err_VMethodArgumentsMismatch, szMethod); return; } @@ -178,13 +183,9 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const szCallbac } } - new Struct:sMethod = StructCreate(__cls_MethodData); - StructSetCell(sMethod, __cls_MethodData_Class, class); - StructSetString(sMethod, __cls_MethodData_Name, szMethod); - StructSetCell(sMethod, __cls_MethodData_PluginId, iPluginId); - StructSetCell(sMethod, __cls_MethodData_FunctionId, get_func_id(szCallback, iPluginId)); - StructSetCell(sMethod, __cls_MethodData_ParamTypes, irgParamTypes); - StructSetCell(sMethod, __cls_MethodData_IsVirtual, bVirtual); + new Struct:sMethod = __cls_CreateMethod(class, szMethod, szCallback, iPluginId, irgParamTypes, bVirtual ? __cls_MethodType_Virtual : __cls_MethodType_Method); + + ArrayDestroy(irgParamTypes); TrieSetCell(itMethods, szMethod, sMethod); } @@ -285,13 +286,13 @@ stock Class:ClassInstanceGetCurrentClass() { } stock ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], any:...) { - ClassInstanceCallMethodBegin(pInstance, szMethod); + __cls_CallMethodBegin(pInstance, szMethod); #if defined _datapack_included for (new iMethodParam = 0; iMethodParam < __cls_call_iParamTypesNum; ++iMethodParam) { static iParam; iParam = 2 + iMethodParam; - static iType; iType = ArrayGetCell(__cls_call_irgParamTypes, iMethodParam, _:__cls_MethodParamData_Type); - static iArgc; iArgc = ArrayGetCell(__cls_call_irgParamTypes, iMethodParam, _:__cls_MethodParamData_Size); + static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Type); + static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Size); static bool:bUseDefault; bUseDefault = iParam > numargs(); switch (iType) { @@ -315,25 +316,25 @@ stock ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], } case CMP_Array: { if (bUseDefault) { - arrayset(__cls_rgiBuffer, __cls_DefaultValue_Float, iArgc); + arrayset(__cls_rgiBuffer, __cls_DefaultValue_Float, iSize); } else { - for (new i = 0; i < iArgc; ++i) { + for (new i = 0; i < iSize; ++i) { __cls_rgiBuffer[i] = getarg(iParam, i); } } - ClassInstanceCallMethodPushParamArray(__cls_rgiBuffer, iArgc); + ClassInstanceCallMethodPushParamArray(__cls_rgiBuffer, iSize); } case CMP_FloatArray: { if (bUseDefault) { - arrayset(__cls_rgflBuffer, __cls_DefaultValue_Float, iArgc); + arrayset(__cls_rgflBuffer, __cls_DefaultValue_Float, iSize); } else { - for (new i = 0; i < iArgc; ++i) { + for (new i = 0; i < iSize; ++i) { __cls_rgflBuffer[i] = Float:getarg(iParam, i); } } - ClassInstanceCallMethodPushParamFloatArray(__cls_rgflBuffer, iArgc); + ClassInstanceCallMethodPushParamFloatArray(__cls_rgflBuffer, iSize); } } } @@ -348,8 +349,8 @@ stock ClassInstanceCallBaseMethod(any:...) { #if defined _datapack_included for (new iMethodParam = 0; iMethodParam < __cls_call_iParamTypesNum; ++iMethodParam) { static iParam; iParam = 0 + iMethodParam; - static iType; iType = ArrayGetCell(__cls_call_irgParamTypes, iMethodParam, _:__cls_MethodParamData_Type); - static iArgc; iArgc = ArrayGetCell(__cls_call_irgParamTypes, iMethodParam, _:__cls_MethodParamData_Size); + static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Type); + static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Size); static bool:bUseDefault; bUseDefault = iParam > numargs(); switch (iType) { @@ -373,25 +374,25 @@ stock ClassInstanceCallBaseMethod(any:...) { } case CMP_Array: { if (bUseDefault) { - arrayset(__cls_rgiBuffer, __cls_DefaultValue_Float, iArgc); + arrayset(__cls_rgiBuffer, __cls_DefaultValue_Float, iSize); } else { - for (new i = 0; i < iArgc; ++i) { + for (new i = 0; i < iSize; ++i) { __cls_rgiBuffer[i] = getarg(iParam, i); } } - ClassInstanceCallMethodPushParamArray(__cls_rgiBuffer, iArgc); + ClassInstanceCallMethodPushParamArray(__cls_rgiBuffer, iSize); } case CMP_FloatArray: { if (bUseDefault) { - arrayset(__cls_rgflBuffer, __cls_DefaultValue_Float, iArgc); + arrayset(__cls_rgflBuffer, __cls_DefaultValue_Float, iSize); } else { - for (new i = 0; i < iArgc; ++i) { + for (new i = 0; i < iSize; ++i) { __cls_rgflBuffer[i] = Float:getarg(iParam, i); } } - ClassInstanceCallMethodPushParamFloatArray(__cls_rgflBuffer, iArgc); + ClassInstanceCallMethodPushParamFloatArray(__cls_rgflBuffer, iSize); } } } @@ -401,21 +402,7 @@ stock ClassInstanceCallBaseMethod(any:...) { } stock ClassInstanceCallMethodBegin(const &ClassInstance:pInstance, const szMethod[]) { - __cls_InitMethodCall(pInstance, szMethod); - - // Check for virtual method call - // If we are already in the execution context and the method is virual jump to top level context - if (!__cls_IsMethodCallStackEmpty() && StructGetCell(__cls_call_sMethod, __cls_MethodData_IsVirtual)) { - static Class:sInstanceClass; sInstanceClass = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); - if (sInstanceClass != StructGetCell(__cls_call_sMethod, __cls_MethodData_Class)) { - __cls_call_sMethod = _cellclass_FindClassMethodInHierarchy(sInstanceClass, szMethod); - } - } - - if (__cls_call_sMethod == Invalid_Struct) { - set_fail_state(__cls_err_MethodNotFound, szMethod, pInstance); - return; - } + __cls_CallMethodBegin(pInstance, szMethod); } stock ClassInstanceCallMethodBeginBase(any:...) { @@ -432,10 +419,9 @@ stock ClassInstanceCallMethodBeginBase(any:...) { return; } - static szMethod[MAX_METHOD_NAME_LENGTH]; StructGetString(rgCallStackItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Name, szMethod, charsmax(szMethod)); + static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(rgCallStackItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Name, szMethod, charsmax(szMethod)); __cls_InitMethodCall(rgCallStackItem[__cls_MethodCallStackItem_Instance], szMethod, class); - } stock any:ClassInstanceCallMethodEnd() { @@ -448,7 +434,7 @@ stock any:ClassInstanceCallMethodEnd() { ResetPack(__cls_call_dpParams); - static any:result; result = __cls_ExecuteMethod(__cls_call_pInstance, __cls_call_sMethod, __cls_call_dpParams, __cls_call_irgParamTypes); + static any:result; result = __cls_ExecuteMethod(__cls_call_pInstance, __cls_call_sMethod, __cls_call_dpParams); if (__cls_IsMethodCallStackEmpty()) { __cls_FreeMethodCall(); @@ -458,40 +444,40 @@ stock any:ClassInstanceCallMethodEnd() { } stock ClassInstanceCallMethodPushParamCell(iValue) { - if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; + if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; WritePackCell(__cls_call_dpParams, iValue); - __cls_call_sParamsNum++; + __cls_call_iParamsNum++; } stock ClassInstanceCallMethodPushParamFloat(Float:flValue) { - if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; + if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; WritePackFloat(__cls_call_dpParams, flValue); - __cls_call_sParamsNum++; + __cls_call_iParamsNum++; } stock ClassInstanceCallMethodPushParamString(const szValue[]) { - if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; + if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; WritePackString(__cls_call_dpParams, szValue); - __cls_call_sParamsNum++; + __cls_call_iParamsNum++; } -stock ClassInstanceCallMethodPushParamArray(const rgValue[], iArgc) { - if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; - WritePackArray(__cls_call_dpParams, rgValue, iArgc); - __cls_call_sParamsNum++; +stock ClassInstanceCallMethodPushParamArray(const rgValue[], iSize) { + if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; + WritePackArray(__cls_call_dpParams, rgValue, iSize); + __cls_call_iParamsNum++; } -stock ClassInstanceCallMethodPushParamFloatArray(const Float:rgValue[], iArgc) { - if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; - WritePackFloatArray(__cls_call_dpParams, rgValue, iArgc); - __cls_call_sParamsNum++; +stock ClassInstanceCallMethodPushParamFloatArray(const Float:rgValue[], iSize) { + if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; + WritePackFloatArray(__cls_call_dpParams, rgValue, iSize); + __cls_call_iParamsNum++; } stock ClassInstanceCallMethodPushNativeParam(iParam) { - if (__cls_call_sParamsNum >= __cls_call_iParamTypesNum) return; + if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; - static iType; iType = ArrayGetCell(__cls_call_irgParamTypes, __cls_call_sParamsNum, _:__cls_MethodParamData_Type); - static iArgc; iArgc = ArrayGetCell(__cls_call_irgParamTypes, __cls_call_sParamsNum, _:__cls_MethodParamData_Size); + static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(__cls_call_iParamsNum) + _:__cls_MethodParamData_Type); + static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(__cls_call_iParamsNum) + _:__cls_MethodParamData_Size); switch (iType) { case CMP_Cell: { @@ -505,16 +491,16 @@ stock ClassInstanceCallMethodPushNativeParam(iParam) { WritePackString(__cls_call_dpParams, __cls_szBuffer); } case CMP_Array: { - get_array(iParam, __cls_rgiBuffer, iArgc); - WritePackArray(__cls_call_dpParams, __cls_rgiBuffer, iArgc); + get_array(iParam, __cls_rgiBuffer, iSize); + WritePackArray(__cls_call_dpParams, __cls_rgiBuffer, iSize); } case CMP_FloatArray: { - get_array_f(iParam, __cls_rgflBuffer, iArgc); - WritePackFloatArray(__cls_call_dpParams, __cls_rgflBuffer, iArgc); + get_array_f(iParam, __cls_rgflBuffer, iSize); + WritePackFloatArray(__cls_call_dpParams, __cls_rgflBuffer, iSize); } } - __cls_call_sParamsNum++; + __cls_call_iParamsNum++; } stock Class:ClassInstanceGetClass(const &ClassInstance:pInstance) { @@ -614,9 +600,9 @@ stock __cls_ParseParamTypes(Array:irgArgs, &Array:irgParamTypes) { } stock __cls_ValidateParams() { - for (new iParam = __cls_call_sParamsNum; iParam < __cls_call_iParamTypesNum; ++iParam) { - static iType; iType = ArrayGetCell(__cls_call_irgParamTypes, iParam, _:__cls_MethodParamData_Type); - static iSize; iSize = ArrayGetCell(__cls_call_irgParamTypes, iParam, _:__cls_MethodParamData_Size); + for (new iParam = __cls_call_iParamsNum; iParam < __cls_call_iParamTypesNum; ++iParam) { + static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Type); + static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Size); switch (iType) { case CMP_Cell: { @@ -644,10 +630,10 @@ stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], con static Class:callClass; callClass = class == Invalid_Class ? __cls_GetCallMethodClass(pInstance) : class; __cls_call_pInstance = pInstance; - __cls_call_sMethod = _cellclass_FindClassMethodInHierarchy(callClass, szMethod); - __cls_call_sParamsNum = 0; - __cls_call_irgParamTypes = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes); - __cls_call_iParamTypesNum = ArraySize(__cls_call_irgParamTypes); + __cls_call_sMethod = __cls_FindClassMethodInHierarchy(callClass, szMethod); + __cls_call_iParamsNum = 0; + + __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); if (__cls_call_sMethod == Invalid_Struct) { set_fail_state(__cls_err_MethodNotFoundInBaseClass, szMethod); @@ -661,11 +647,30 @@ stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], con stock __cls_FreeMethodCall() { __cls_call_pInstance = Invalid_ClassInstance; __cls_call_sMethod = Invalid_Struct; - __cls_call_sParamsNum = 0; - __cls_call_irgParamTypes = Invalid_Array; + __cls_call_iParamsNum = 0; __cls_call_iParamTypesNum = 0; } +stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[]) { + __cls_InitMethodCall(pInstance, szMethod); + + // Check for virtual method call + // If we are already in the execution context and the method is virual jump to top level context + if (!__cls_IsMethodCallStackEmpty()) { + if (StructGetCell(__cls_call_sMethod, __cls_MethodData_Type) != __cls_MethodType_Method) { + static Class:sInstanceClass; sInstanceClass = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + if (sInstanceClass != StructGetCell(__cls_call_sMethod, __cls_MethodData_Class)) { + __cls_call_sMethod = __cls_FindClassMethodInHierarchy(sInstanceClass, szMethod); + } + } + } + + if (__cls_call_sMethod == Invalid_Struct) { + set_fail_state(__cls_err_MethodNotFound, szMethod, pInstance); + return; + } +} + stock __cls_DestroyMethod(&Struct:sMethod) { new Array:irgParamTypes; StructGetCell(sMethod, __cls_MethodData_ParamTypes); @@ -676,20 +681,57 @@ stock __cls_DestroyMethod(&Struct:sMethod) { StructDestroy(sMethod); } -stock _cellclass_CompareParamTypes(const &Array:irgParams, const &Array:irgOtherParams) { - new iArgc = ArraySize(irgParams); - new iOtherSize = ArraySize(irgOtherParams); +stock __cls_DestroyMethodsTrie(&Trie:itMethods) { + new TrieIter:iMethodsIter = TrieIterCreate(itMethods); + + while (!TrieIterEnded(iMethodsIter)) { + new Struct:sMethod; TrieIterGetCell(iMethodsIter, sMethod); + __cls_DestroyMethod(sMethod); + TrieIterNext(iMethodsIter); + } + + TrieIterDestroy(iMethodsIter); + + TrieDestroy(itMethods); +} + +stock Struct:__cls_CreateMethod(Class:class, const szName[], const szCallback[], iPluginId, Array:irgParamTypes, __cls_MethodType:iType = __cls_MethodType_Method) { + new Struct:sMethod = StructCreate(__cls_MethodData); + StructSetCell(sMethod, __cls_MethodData_Class, class); + StructSetString(sMethod, __cls_MethodData_Name, szName); + StructSetCell(sMethod, __cls_MethodData_PluginId, iPluginId); + StructSetCell(sMethod, __cls_MethodData_FunctionId, get_func_id(szCallback, iPluginId)); + StructSetCell(sMethod, __cls_MethodData_Type, iType); + + new iParamTypesNum = ArraySize(irgParamTypes); + for (new iParam = 0; iParam < iParamTypesNum; ++iParam) { + StructSetCell(sMethod, __cls_MethodData_ParamTypes, ArrayGetCell(irgParamTypes, iParam, __cls_MethodParamData_Type), __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Type); + StructSetCell(sMethod, __cls_MethodData_ParamTypes, ArrayGetCell(irgParamTypes, iParam, __cls_MethodParamData_Size), __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Size); + } + + StructSetCell(sMethod, __cls_MethodData_ParamTypesNum, iParamTypesNum); + + return sMethod; +} + +stock __cls_CompareParamTypes(const &Struct:sMethod, const &Array:irgParams) { + new iParamsNum = StructGetCell(sMethod, __cls_MethodData_ParamTypesNum); + new iParamsSize = ArraySize(irgParams); + + if (iParamsNum != iParamsSize) return false; - if (iArgc != iOtherSize) return false; + for (new iParam = 0; iParam < iParamsNum; ++iParam) { + new iType = StructGetCell(sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Type); + if (iType != ArrayGetCell(irgParams, iParam, _:__cls_MethodParamData_Type)) return false; - for (new i = 0; i < iArgc; ++i) { - if (ArrayGetCell(irgParams, i) != ArrayGetCell(irgOtherParams, i)) return false; + new iSize = StructGetCell(sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Size); + if (iSize != ArrayGetCell(irgParams, iParam, _:__cls_MethodParamData_Size)) return false; } return true; } -stock __cls_ExecuteMethod(const &ClassInstance:pInstance, const &Struct:sMethod, const &DataPack:dpParams, const &Array:irgParamTypes) { +stock __cls_ExecuteMethod(const &ClassInstance:pInstance, const &Struct:sMethod, const &DataPack:dpParams) { new iResult = 0; __cls_PushMethodToCallStack(sMethod, pInstance); @@ -697,11 +739,11 @@ stock __cls_ExecuteMethod(const &ClassInstance:pInstance, const &Struct:sMethod, if (callfunc_begin_i(StructGetCell(sMethod, __cls_MethodData_FunctionId), StructGetCell(sMethod, __cls_MethodData_PluginId)) == 1) { #if defined _datapack_included if (dpParams != Invalid_DataPack) { - static iParamsNum; iParamsNum = ArraySize(irgParamTypes); + static iParamsNum; iParamsNum = StructGetCell(sMethod, __cls_MethodData_ParamTypesNum); for (new iParam = 0; iParam < iParamsNum; ++iParam) { - static iType; iType = ArrayGetCell(irgParamTypes, iParam, _:__cls_MethodParamData_Type); - static iSize; iSize = ArrayGetCell(irgParamTypes, iParam, _:__cls_MethodParamData_Size); + static iType; iType = StructGetCell(sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Type); + static iSize; iSize = StructGetCell(sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Size); switch (iType) { case CMP_Cell: { @@ -714,15 +756,15 @@ stock __cls_ExecuteMethod(const &ClassInstance:pInstance, const &Struct:sMethod, } case CMP_String: { ReadPackString(dpParams, __cls_szBuffer, charsmax(__cls_szBuffer)); - callfunc_push_str(__cls_szBuffer); + callfunc_push_str(__cls_szBuffer, false); } case CMP_Array: { - static iLen; iLen = ReadPackArray(dpParams, __cls_rgiBuffer, iSize); - callfunc_push_array(__cls_rgiBuffer, iLen, false); + iSize = ReadPackArray(dpParams, __cls_rgiBuffer, iSize); + callfunc_push_array(__cls_rgiBuffer, iSize, false); } case CMP_FloatArray: { - static iLen; iLen = ReadPackFloatArray(dpParams, __cls_rgflBuffer, iSize); - callfunc_push_array(_:__cls_rgflBuffer, iLen, false); + iSize = ReadPackFloatArray(dpParams, __cls_rgflBuffer, iSize); + callfunc_push_array(_:__cls_rgflBuffer, iSize, false); } } } @@ -732,12 +774,12 @@ stock __cls_ExecuteMethod(const &ClassInstance:pInstance, const &Struct:sMethod, iResult = callfunc_end(); } - __celstruct_PopMethodFromCallStack(); + __cls_PopMethodFromCallStack(); return iResult; } -stock Struct:_cellclass_FindClassMethodInHierarchy(const &Class:class, const szMethod[]) { +stock Struct:__cls_FindClassMethodInHierarchy(const &Class:class, const szMethod[]) { new Class:sCurrentClass = class; do { @@ -757,7 +799,7 @@ stock bool:__cls_IsMethodCallStackEmpty() { } stock __cls_PushMethodToCallStack(const Struct:sMethod, const &ClassInstance:pInstance) { - if (__cls_callstack_size >= MAX_METHOD_CALL_STACK_SIZE) { + if (__cls_callstack_size >= CLASS_METHOD_CALL_STACK_SIZE) { set_fail_state(__cls_err_MaxCallStackSizeExceeded); } @@ -768,7 +810,7 @@ stock __cls_PushMethodToCallStack(const Struct:sMethod, const &ClassInstance:pIn __cls_callstack_size++; } -stock __celstruct_PopMethodFromCallStack() { +stock __cls_PopMethodFromCallStack() { __cls_callstack_size--; } From ea2d496390c0e0e857cd80af8702c15db468500c Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 18 Mar 2024 23:06:39 +0100 Subject: [PATCH 174/231] add setters and getters --- util/cellclass.inc | 312 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 293 insertions(+), 19 deletions(-) diff --git a/util/cellclass.inc b/util/cellclass.inc index 384197d..dc8d25a 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -55,7 +55,11 @@ enum { CMP_String, CMP_Array, CMP_FloatArray, - CMP_ReadFromCellArray + CMP_ReadFromCellArray, + __cls_CMP_InternalStart = 1000, + __cls_CMP_StringRef, + __cls_CMP_ArrayRef, + __cls_CMP_FloatArrayRef }; // Internal structures @@ -63,13 +67,17 @@ enum { enum __cls_MethodType { __cls_MethodType_Invalid = -1, __cls_MethodType_Method, - __cls_MethodType_Virtual + __cls_MethodType_Virtual, + __cls_MethodType_Getter, + __cls_MethodType_Setter }; enum __cls_Data { Class:__cls_Data_Base, Trie:__cls_Data_Members, - Trie:__cls_Data_Methods + Trie:__cls_Data_Methods, + Trie:__cls_Data_Setters, + Trie:__cls_Data_Getters }; enum __cls_MethodParamData { @@ -124,6 +132,8 @@ stock Class:ClassCreate(const &Class:sBaseClass = Invalid_Class) { StructSetCell(Struct:class, __cls_Data_Base, sBaseClass); StructSetCell(Struct:class, __cls_Data_Methods, TrieCreate()); StructSetCell(Struct:class, __cls_Data_Members, TrieCreate()); + StructSetCell(Struct:class, __cls_Data_Setters, TrieCreate()); + StructSetCell(Struct:class, __cls_Data_Getters, TrieCreate()); return Class:class; } @@ -132,6 +142,11 @@ stock ClassDestroy(&Class:class) { new Trie:itMethods = StructGetCell(Struct:class, __cls_Data_Methods); __cls_DestroyMethodsTrie(itMethods); + new Trie:itGetters = StructGetCell(Struct:class, __cls_Data_Getters); + __cls_DestroyMethodsTrie(itGetters); + + new Trie:itSetters = StructGetCell(Struct:class, __cls_Data_Setters); + __cls_DestroyMethodsTrie(itSetters); new Trie:itMembers = StructGetCell(Struct:class, __cls_Data_Members); TrieDestroy(itMembers); @@ -172,7 +187,7 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const szCallbac ArrayDestroy(irgArgs); if (sBaseClass != Invalid_Class) { - new Struct:sBaseMethod = __cls_FindClassMethodInHierarchy(sBaseClass, szMethod); + new Struct:sBaseMethod = __cls_FindClassMethodInHierarchy(sBaseClass, szMethod, __cls_MethodType_Method); if (sBaseMethod != Invalid_Struct) { if (StructGetCell(sBaseMethod, __cls_MethodData_Type) == __cls_MethodType_Virtual) { if (!__cls_CompareParamTypes(sBaseMethod, irgParamTypes)) { @@ -190,6 +205,14 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const szCallbac TrieSetCell(itMethods, szMethod, sMethod); } +stock ClassAddSetter(const &Class:class, const szMember[], const szCallback[], iPluginId = -1, iType, iSize = 1) { + __cls_AddMemberAccessorMethod(class, szMember, szCallback, iPluginId, __cls_MethodType_Setter, iType, iSize); +} + +stock ClassAddGetter(const &Class:class, const szMember[], const szCallback[], iPluginId = -1, iType, iSize = 1) { + __cls_AddMemberAccessorMethod(class, szMember, szCallback, iPluginId, __cls_MethodType_Getter, iType, iSize); +} + stock Class:ClassGetBaseClass(const &Class:class) { return StructGetCell(Struct:class, __cls_Data_Base); } @@ -286,7 +309,7 @@ stock Class:ClassInstanceGetCurrentClass() { } stock ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], any:...) { - __cls_CallMethodBegin(pInstance, szMethod); + __cls_CallMethodBegin(pInstance, szMethod, __cls_MethodType_Method); #if defined _datapack_included for (new iMethodParam = 0; iMethodParam < __cls_call_iParamTypesNum; ++iMethodParam) { @@ -360,7 +383,7 @@ stock ClassInstanceCallBaseMethod(any:...) { case CMP_Float: { ClassInstanceCallMethodPushParamFloat(bUseDefault ? __cls_DefaultValue_Float : Float:getarg(iParam)); } - case CMP_String: { + case CMP_String, __cls_CMP_StringRef: { if (bUseDefault) { copy(__cls_szBuffer, sizeof(__cls_szBuffer), __cls_DefaultValue_String); } else { @@ -372,7 +395,7 @@ stock ClassInstanceCallBaseMethod(any:...) { ClassInstanceCallMethodPushParamString(__cls_szBuffer); } - case CMP_Array: { + case CMP_Array, __cls_CMP_ArrayRef: { if (bUseDefault) { arrayset(__cls_rgiBuffer, __cls_DefaultValue_Float, iSize); } else { @@ -383,7 +406,7 @@ stock ClassInstanceCallBaseMethod(any:...) { ClassInstanceCallMethodPushParamArray(__cls_rgiBuffer, iSize); } - case CMP_FloatArray: { + case CMP_FloatArray, __cls_CMP_FloatArrayRef: { if (bUseDefault) { arrayset(__cls_rgflBuffer, __cls_DefaultValue_Float, iSize); } else { @@ -402,7 +425,7 @@ stock ClassInstanceCallBaseMethod(any:...) { } stock ClassInstanceCallMethodBegin(const &ClassInstance:pInstance, const szMethod[]) { - __cls_CallMethodBegin(pInstance, szMethod); + __cls_CallMethodBegin(pInstance, szMethod, __cls_MethodType_Method); } stock ClassInstanceCallMethodBeginBase(any:...) { @@ -420,8 +443,9 @@ stock ClassInstanceCallMethodBeginBase(any:...) { } static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(rgCallStackItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Name, szMethod, charsmax(szMethod)); + static __cls_MethodType:iMethodType; iMethodType = StructGetCell(Struct:rgCallStackItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Type); - __cls_InitMethodCall(rgCallStackItem[__cls_MethodCallStackItem_Instance], szMethod, class); + __cls_InitMethodCall(rgCallStackItem[__cls_MethodCallStackItem_Instance], szMethod, class, iMethodType); } stock any:ClassInstanceCallMethodEnd() { @@ -520,6 +544,13 @@ stock ClassInstanceDeleteMember(const &ClassInstance:pInstance, const szMember[] } stock any:ClassInstanceGetMember(const &ClassInstance:pInstance, const szMember[]) { + static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + static Trie:itGetters; itGetters = StructGetCell(Struct:class, __cls_Data_Getters); + + if (TrieKeyExists(itGetters, szMember)) { + return __cls_CallGetter(pInstance, szMember); + } + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); static any:value; @@ -527,12 +558,27 @@ stock any:ClassInstanceGetMember(const &ClassInstance:pInstance, const szMember[ } stock ClassInstanceSetMember(const &ClassInstance:pInstance, const szMember[], any:value, bool:bReplace = true) { + static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + static Trie:itSetters; itSetters = StructGetCell(Struct:class, __cls_Data_Setters); + + if (TrieKeyExists(itSetters, szMember)) { + __cls_CallSetter(pInstance, szMember, value); + return; + } + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); TrieSetCell(itMembers, szMember, value, bReplace); } stock bool:ClassInstanceGetMemberString(const &ClassInstance:pInstance, const szMember[], szOut[], iMaxLen) { + static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + static Trie:itGetters; itGetters = StructGetCell(Struct:class, __cls_Data_Getters); + + if (TrieKeyExists(itGetters, szMember)) { + return __cls_CallGetter(pInstance, szMember, szOut, iMaxLen); + } + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); copy(szOut, iMaxLen, NULL_STRING); @@ -540,18 +586,41 @@ stock bool:ClassInstanceGetMemberString(const &ClassInstance:pInstance, const sz } stock ClassInstanceSetMemberString(const &ClassInstance:pInstance, const szMember[], const szValue[], bool:bReplace = true) { + static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + static Trie:itSetters; itSetters = StructGetCell(Struct:class, __cls_Data_Setters); + + if (TrieKeyExists(itSetters, szMember)) { + __cls_CallSetter(pInstance, szMember, szValue); + return; + } + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); TrieSetString(itMembers, szMember, szValue, bReplace); } stock bool:ClassInstanceGetMemberArray(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iLen) { + static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + static Trie:itGetters; itGetters = StructGetCell(Struct:class, __cls_Data_Getters); + + if (TrieKeyExists(itGetters, szMember)) { + return __cls_CallGetter(pInstance, szMember, rgOut, iLen); + } + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); return !!TrieGetArray(itMembers, szMember, rgOut, iLen); } stock ClassInstanceSetMemberArray(const &ClassInstance:pInstance, const szMember[], const any:rgValue[], iLen, bool:bReplace = true) { + static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + static Trie:itSetters; itSetters = StructGetCell(Struct:class, __cls_Data_Setters); + + if (TrieKeyExists(itSetters, szMember)) { + __cls_CallSetter(pInstance, szMember, rgValue, iLen); + return; + } + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); TrieSetArray(itMembers, szMember, rgValue, iLen, bReplace); @@ -626,11 +695,11 @@ stock __cls_ValidateParams() { } } -stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], const &Class:class = Invalid_Class) { +stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], const &Class:class = Invalid_Class, __cls_MethodType:iMethodType) { static Class:callClass; callClass = class == Invalid_Class ? __cls_GetCallMethodClass(pInstance) : class; __cls_call_pInstance = pInstance; - __cls_call_sMethod = __cls_FindClassMethodInHierarchy(callClass, szMethod); + __cls_call_sMethod = __cls_FindClassMethodInHierarchy(callClass, szMethod, iMethodType); __cls_call_iParamsNum = 0; __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); @@ -651,16 +720,17 @@ stock __cls_FreeMethodCall() { __cls_call_iParamTypesNum = 0; } -stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[]) { - __cls_InitMethodCall(pInstance, szMethod); +stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], __cls_MethodType:iMethodType = __cls_MethodType_Method) { + __cls_InitMethodCall(pInstance, szMethod, _, iMethodType); // Check for virtual method call // If we are already in the execution context and the method is virual jump to top level context + // All Getters and Setter works like virtual methods if (!__cls_IsMethodCallStackEmpty()) { if (StructGetCell(__cls_call_sMethod, __cls_MethodData_Type) != __cls_MethodType_Method) { static Class:sInstanceClass; sInstanceClass = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); if (sInstanceClass != StructGetCell(__cls_call_sMethod, __cls_MethodData_Class)) { - __cls_call_sMethod = __cls_FindClassMethodInHierarchy(sInstanceClass, szMethod); + __cls_call_sMethod = __cls_FindClassMethodInHierarchy(sInstanceClass, szMethod, iMethodType); } } } @@ -671,6 +741,111 @@ stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[]) { } } +stock any:__cls_CallGetter(const &ClassInstance:pInstance, const szMember[], any:...) { + static const any:rgEmpty[1]; + static const iParam = 2; + + __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Getter); + + // Cannot use "static" because of recursion + new iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(0) + _:__cls_MethodParamData_Type); + new iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(0) + _:__cls_MethodParamData_Size); + + switch (iType) { + case CMP_String, __cls_CMP_StringRef: { + iSize = getarg(iParam + 1); + ClassInstanceCallMethodPushParamString(NULL_STRING); + ClassInstanceCallMethodPushParamCell(iSize); + } + case CMP_Array, __cls_CMP_ArrayRef: { + iSize = min(iSize, getarg(iParam + 1)); + ClassInstanceCallMethodPushParamArray(rgEmpty, sizeof(rgEmpty)); + ClassInstanceCallMethodPushParamCell(iSize); + } + case CMP_FloatArray, __cls_CMP_FloatArrayRef: { + iSize = min(iSize, getarg(iParam + 1)); + ClassInstanceCallMethodPushParamFloatArray(rgEmpty, sizeof(rgEmpty)); + ClassInstanceCallMethodPushParamCell(iSize); + } + } + + new any:result = ClassInstanceCallMethodEnd(); + + #if defined _datapack_included + switch (iType) { + case __cls_CMP_StringRef: { + for (new i = 0; i < iSize; ++i) { + setarg(iParam, i, __cls_szBuffer[i]); + if (__cls_szBuffer[i] == '^0') break; + } + } + case __cls_CMP_ArrayRef: { + for (new i = 0; i < iSize; ++i) { + setarg(iParam, i, __cls_rgiBuffer[i]); + } + } + case __cls_CMP_FloatArrayRef: { + for (new i = 0; i < iSize; ++i) { + setarg(iParam, i, any:__cls_rgflBuffer[i]); + } + } + } + #endif + + return result; +} + +stock __cls_CallSetter(const &ClassInstance:pInstance, const szMember[], any:...) { + static const iParam = 2; + + __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Setter); + + static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(0) + _:__cls_MethodParamData_Type); + static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(0) + _:__cls_MethodParamData_Size); + + if (iParam < numargs() - 2) { + iSize = min(iSize, getarg(iParam + 1)); + } + + #if defined _datapack_included + switch (iType) { + case CMP_Cell: { + ClassInstanceCallMethodPushParamCell(getarg(iParam)); + } + case CMP_Float: { + ClassInstanceCallMethodPushParamFloat(Float:getarg(iParam)); + } + case CMP_String: { + for (new i = 0; i < charsmax(__cls_szBuffer); ++i) { + __cls_szBuffer[i] = getarg(iParam, i); + if (__cls_szBuffer[i] == '^0') break; + } + + ClassInstanceCallMethodPushParamString(__cls_szBuffer); + ClassInstanceCallMethodPushParamCell(iSize); + } + case CMP_Array: { + for (new i = 0; i < iSize; ++i) { + __cls_rgiBuffer[i] = getarg(iParam, i); + } + + ClassInstanceCallMethodPushParamArray(__cls_rgiBuffer, iSize); + ClassInstanceCallMethodPushParamCell(getarg(iParam + 1)); + } + case CMP_FloatArray: { + for (new i = 0; i < iSize; ++i) { + __cls_rgflBuffer[i] = Float:getarg(iParam, i); + } + + ClassInstanceCallMethodPushParamFloatArray(__cls_rgflBuffer, iSize); + ClassInstanceCallMethodPushParamCell(getarg(iParam + 1)); + } + } + #endif + + return ClassInstanceCallMethodEnd(); +} + stock __cls_DestroyMethod(&Struct:sMethod) { new Array:irgParamTypes; StructGetCell(sMethod, __cls_MethodData_ParamTypes); @@ -695,6 +870,57 @@ stock __cls_DestroyMethodsTrie(&Trie:itMethods) { TrieDestroy(itMethods); } +stock __cls_AddMemberAccessorMethod(const &Class:class, const szMember[], const szCallback[], iPluginId = -1, __cls_MethodType:iMethodType, iType, iSize) { + new iStructField = -1; + + switch (iMethodType) { + case __cls_MethodType_Getter: { + iStructField = __cls_Data_Getters; + } + case __cls_MethodType_Setter: { + iStructField = __cls_Data_Setters; + } + } + + if (iStructField == -1) return; + + new Trie:itMethods = StructGetCell(Struct:class, iStructField); + + new Array:irgParamTypes; irgParamTypes = ArrayCreate(_:__cls_MethodParamData, 1); + + new rgParam[__cls_MethodParamData]; + rgParam[__cls_MethodParamData_Type] = __cls_ResolveAccessorParamType(iType, iMethodType); + rgParam[__cls_MethodParamData_Size] = iSize; + + ArrayPushArray(irgParamTypes, rgParam[any:0], _:__cls_MethodParamData); + + if (iType == CMP_String || iType == CMP_Array || iType == CMP_FloatArray) { + new rgSizeParam[__cls_MethodParamData]; + rgSizeParam[__cls_MethodParamData_Type] = CMP_Cell; + rgSizeParam[__cls_MethodParamData_Size] = 1; + + ArrayPushArray(irgParamTypes, rgSizeParam[any:0], _:__cls_MethodParamData); + } + + new Struct:sMethod = __cls_CreateMethod(class, szMember, szCallback, iPluginId, irgParamTypes, iMethodType); + + ArrayDestroy(irgParamTypes); + + TrieSetCell(itMethods, szMember, sMethod); +} + +stock __cls_ResolveAccessorParamType(iType, __cls_MethodType:iMethodType) { + if (iMethodType == __cls_MethodType_Getter) { + switch (iType) { + case CMP_String: return __cls_CMP_StringRef; + case CMP_Array: return __cls_CMP_ArrayRef; + case CMP_FloatArray: return __cls_CMP_FloatArrayRef; + } + } + + return iType; +} + stock Struct:__cls_CreateMethod(Class:class, const szName[], const szCallback[], iPluginId, Array:irgParamTypes, __cls_MethodType:iType = __cls_MethodType_Method) { new Struct:sMethod = StructCreate(__cls_MethodData); StructSetCell(sMethod, __cls_MethodData_Class, class); @@ -755,8 +981,8 @@ stock __cls_ExecuteMethod(const &ClassInstance:pInstance, const &Struct:sMethod, callfunc_push_float(flValue); } case CMP_String: { - ReadPackString(dpParams, __cls_szBuffer, charsmax(__cls_szBuffer)); - callfunc_push_str(__cls_szBuffer, false); + ReadPackString(dpParams, __cls_szBuffer, charsmax(__cls_szBuffer)); + callfunc_push_str(__cls_szBuffer, false); } case CMP_Array: { iSize = ReadPackArray(dpParams, __cls_rgiBuffer, iSize); @@ -766,6 +992,41 @@ stock __cls_ExecuteMethod(const &ClassInstance:pInstance, const &Struct:sMethod, iSize = ReadPackFloatArray(dpParams, __cls_rgflBuffer, iSize); callfunc_push_array(_:__cls_rgflBuffer, iSize, false); } + case __cls_CMP_StringRef: { + ReadPackString(dpParams, __cls_szBuffer, 0); + /* + The "copyback" functionality seems to be broken or works in an odd way, + because it only copies the same number of characters that were in the string + before calling the function. + + To fix it I decided to "prepare" a string using the max length from the required max length parameter (second) + and fill the string with some characters so AmxModX will calculate the correct string length for copyback. + */ + iSize = ReadPackCell(dpParams); + arrayset(__cls_szBuffer, '^n', iSize); + iParam++; // Skip next parameter (length) + + callfunc_push_str(__cls_szBuffer, true); + callfunc_push_int(iSize); + } + case __cls_CMP_ArrayRef: { + // If the second parameter is passed to the getter, use it as the size of the array + if (++iParam < iParamsNum - 1) { + iSize = min(iSize, ReadPackCell(dpParams)); + } + + callfunc_push_array(__cls_rgiBuffer, iSize, true); + callfunc_push_int(iSize); + } + case __cls_CMP_FloatArrayRef: { + // If the second parameter is passed to the getter, use it as the size of the array + if (++iParam < iParamsNum - 1) { + iSize = ReadPackCell(dpParams); + } + + callfunc_push_array(_:__cls_rgflBuffer, iSize, true); + callfunc_push_int(iSize); + } } } } @@ -779,11 +1040,24 @@ stock __cls_ExecuteMethod(const &ClassInstance:pInstance, const &Struct:sMethod, return iResult; } -stock Struct:__cls_FindClassMethodInHierarchy(const &Class:class, const szMethod[]) { +stock Struct:__cls_FindClassMethodInHierarchy(const &Class:class, const szMethod[], __cls_MethodType:iMethodType) { new Class:sCurrentClass = class; + static iStructMethodsField= __cls_MethodType_Invalid; + switch (iMethodType) { + case __cls_MethodType_Method, __cls_MethodType_Virtual: { + iStructMethodsField = __cls_Data_Methods; + } + case __cls_MethodType_Getter: { + iStructMethodsField = __cls_Data_Getters; + } + case __cls_MethodType_Setter: { + iStructMethodsField = __cls_Data_Setters; + } + } + do { - static Trie:itMethods; itMethods = StructGetCell(Struct:sCurrentClass, __cls_Data_Methods); + static Trie:itMethods; itMethods = StructGetCell(Struct:sCurrentClass, iStructMethodsField); static Struct:sMethod; if (TrieGetCell(itMethods, szMethod, sMethod)) return sMethod; From 29eec3a744ea0dd9c18674865f537235a2b49daf Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 19 Mar 2024 01:39:25 +0100 Subject: [PATCH 175/231] add abstract entities --- api/custom-entities/api_custom_entities.sma | 132 ++++++++++-------- .../include/api_custom_entities.inc | 4 +- 2 files changed, 73 insertions(+), 63 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 7768f6e..1b5b034 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -2,11 +2,9 @@ #include #include -#include #include #include #tryinclude -#include #include #include @@ -14,31 +12,32 @@ #include #define MAX_HOOK_CALL_HIERARCHY_DEPTH 128 - -#define DEFAULT_CELL_VALUE 0 -#define DEFAULT_FLOAT_VALUE 0.0 -#define DEFAULT_STRING_VALUE NULL_STRING - #define CLASS_METADATA_ID "iId" - #define LOG_PREFIX "[CE]" enum _:GLOBALESTATE { GLOBAL_OFF = 0, GLOBAL_ON = 1, GLOBAL_DEAD = 2 }; +enum Callback { + Callback_PluginID, + Callback_FunctionId +}; + +enum EntityFlags (<<=1) { + EntityFlag_None = 0, + EntityFlag_Abstract = 1, +} + enum Entity { Array:Entity_Name, Array:Entity_Preset, + Array:Entity_Flags, Array:Entity_Hooks[CEFunction], Array:Entity_Class, Array:Entity_KeyMemberBindings }; -enum EntityHook { - EntityHook_PluginID, - EntityHook_FuncID -}; - new g_iszBaseClassName; +new bool:g_bIsCStrike = false; new Trie:g_itEntityIds = Invalid_Trie; new Array:g_rgEntities[Entity] = { Invalid_Array, ... }; @@ -46,8 +45,6 @@ new g_iEntitiesNum = 0; new ClassInstance:g_pInstance = Invalid_ClassInstance; -new bool:g_bIsCStrike = false; - public plugin_precache() { g_bIsCStrike = !!cstrike_running(); g_iszBaseClassName = engfunc(EngFunc_AllocString, CE_BASE_CLASSNAME); @@ -86,7 +83,7 @@ public plugin_natives() { register_library("api_custom_entities"); register_native("CE_Register", "Native_Register"); - register_native("CE_RegisterDerived", "Native_RegisterDerived"); + register_native("CE_RegisterDerived", "Native_RegisterDerived"); register_native("CE_Create", "Native_Create"); register_native("CE_Kill", "Native_Kill"); register_native("CE_Remove", "Native_Remove"); @@ -123,15 +120,21 @@ public plugin_end() { public Native_Register(iPluginId, iArgc) { new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); new CEPreset:iPreset = CEPreset:get_param(2); + new bool:bAbstract = bool:get_param(3); + + new EntityFlags:iFlags = bAbstract ? EntityFlag_Abstract : EntityFlag_None; - return RegisterEntity(szClassname, iPreset); + return RegisterEntity(szClassname, iPreset, iFlags); } public Native_RegisterDerived(iPluginId, iArgc) { new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); new szBaseClassName[CE_MAX_NAME_LENGTH]; get_string(2, szBaseClassName, charsmax(szBaseClassName)); + new bool:bAbstract = bool:get_param(3); + + new EntityFlags:iFlags = bAbstract ? EntityFlag_Abstract : EntityFlag_None; - return RegisterEntity(szClassname, _, szBaseClassName); + return RegisterEntity(szClassname, _, iFlags, szBaseClassName); } public Native_Create(iPluginId, iArgc) { @@ -140,11 +143,14 @@ public Native_Create(iPluginId, iArgc) { static bool:bTemp; bTemp = !!get_param(3); new pEntity = @Entity_Create(szClassname, vecOrigin, bTemp); - if (pEntity) { - new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); - ClassInstanceSetMember(pInstance, CE_MEMBER_PLUGINID, iPluginId); + if (!pEntity) { + log_error(AMX_ERR_NATIVE, "%s Failed to create entity ^"%s^"! Entity is abstract or not registered!", LOG_PREFIX, szClassname); + return 0; } + new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); + ClassInstanceSetMember(pInstance, CE_MEMBER_PLUGINID, iPluginId); + return pEntity; } @@ -246,7 +252,7 @@ public Native_GetHandler(iPluginId, iArgc) { } public Native_GetHandlerByEntity(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); if (!@Entity_IsCustom(pEntity)) return -1; @@ -256,7 +262,7 @@ public Native_GetHandlerByEntity(iPluginId, iArgc) { } public bool:Native_IsInstanceOf(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); static szClassname[CE_MAX_NAME_LENGTH]; get_string(2, szClassname, charsmax(szClassname)); if (!@Entity_IsCustom(pEntity)) return false; @@ -272,7 +278,7 @@ public bool:Native_IsInstanceOf(iPluginId, iArgc) { } public bool:Native_HasMember(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); if (!@Entity_IsCustom(pEntity)) return false; @@ -283,7 +289,7 @@ public bool:Native_HasMember(iPluginId, iArgc) { } public any:Native_GetMember(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); if (!@Entity_IsCustom(pEntity)) return 0; @@ -294,7 +300,7 @@ public any:Native_GetMember(iPluginId, iArgc) { } public Native_DeleteMember(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); if (!@Entity_IsCustom(pEntity)) return; @@ -305,7 +311,7 @@ public Native_DeleteMember(iPluginId, iArgc) { } public Native_SetMember(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); static iValue; iValue = get_param(3); static bool:bReplace; bReplace = bool:get_param(4); @@ -318,7 +324,7 @@ public Native_SetMember(iPluginId, iArgc) { } public bool:Native_GetMemberVec(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); if (!@Entity_IsCustom(pEntity)) return false; @@ -334,7 +340,7 @@ public bool:Native_GetMemberVec(iPluginId, iArgc) { } public Native_SetMemberVec(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); static Float:vecValue[3]; get_array_f(3, vecValue, sizeof(vecValue)); static bool:bReplace; bReplace = bool:get_param(4); @@ -346,7 +352,7 @@ public Native_SetMemberVec(iPluginId, iArgc) { } public bool:Native_GetMemberString(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); if (!@Entity_IsCustom(pEntity)) return false; @@ -362,7 +368,7 @@ public bool:Native_GetMemberString(iPluginId, iArgc) { } public Native_SetMemberString(iPluginId, iArgc) { - new pEntity = get_param(1); + static pEntity; pEntity = get_param(1); static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); static szValue[128]; get_string(3, szValue, charsmax(szValue)); static bool:bReplace; bReplace = bool:get_param(4); @@ -442,12 +448,14 @@ public FMHook_KeyValue(pEntity, hKVD) { if (equal(szKey, "classname")) { new iId = GetIdByClassName(szValue); - if (iId != -1) { // using set_kvd leads to duplicate kvd emit, this check will fix the issue if (g_pInstance == Invalid_ClassInstance) { - set_kvd(hKVD, KV_Value, CE_BASE_CLASSNAME); - g_pInstance = AllocPData(iId, pEntity); + new EntityFlags:iFlags = ArrayGetCell(g_rgEntities[Entity_Flags], iId); + if (~iFlags & EntityFlag_Abstract) { + set_kvd(hKVD, KV_Value, CE_BASE_CLASSNAME); + g_pInstance = AllocPData(iId, pEntity); + } } } else { // if for some reason data was not assigned @@ -565,6 +573,9 @@ public HamHook_Base_BloodColor(pEntity) { new iId = GetIdByClassName(szClassname); if (iId == -1) return 0; + static EntityFlags:iFlags; iFlags = ArrayGetCell(g_rgEntities[Entity_Flags], iId); + if (iFlags & EntityFlag_Abstract) return 0; + new this = engfunc(EngFunc_CreateNamedEntity, g_iszBaseClassName); set_pev(this, pev_classname, szClassname); engfunc(EngFunc_SetOrigin, this, vecOrigin); @@ -701,8 +712,7 @@ bool:@Entity_IsCustom(const &this) { @Entity_InitPhysics(&this) { if (ExecuteHookFunction(CEFunction_InitPhysics, this) != PLUGIN_CONTINUE) return; - new ClassInstance:pInstance = @Entity_GetClassInstance(this); - + static ClassInstance:pInstance; pInstance = @Entity_GetClassInstance(this); static iId; iId = ClassInstanceGetMember(pInstance, CE_MEMBER_ID); static CEPreset:iPreset; iPreset = ArrayGetCell(g_rgEntities[Entity_Preset], iId); @@ -748,7 +758,7 @@ bool:@Entity_IsCustom(const &this) { @Entity_InitModel(&this) { if (ExecuteHookFunction(CEFunction_InitModel, this) != PLUGIN_CONTINUE) return; - new ClassInstance:pInstance = @Entity_GetClassInstance(this); + static ClassInstance:pInstance; pInstance = @Entity_GetClassInstance(this); if (ClassInstanceHasMember(pInstance, CE_MEMBER_MODEL)) { static szModel[MAX_RESOURCE_PATH_LENGTH]; @@ -760,7 +770,7 @@ bool:@Entity_IsCustom(const &this) { @Entity_InitSize(&this) { if (ExecuteHookFunction(CEFunction_InitSize, this) != PLUGIN_CONTINUE) return; - new ClassInstance:pInstance = @Entity_GetClassInstance(this); + static ClassInstance:pInstance; pInstance = @Entity_GetClassInstance(this); if (ClassInstanceHasMember(pInstance, CE_MEMBER_MINS) && ClassInstanceHasMember(pInstance, CE_MEMBER_MAXS)) { static Float:vecMins[3]; ClassInstanceGetMemberArray(pInstance, CE_MEMBER_MINS, vecMins, 3); @@ -772,7 +782,7 @@ bool:@Entity_IsCustom(const &this) { @Entity_Kill(&this, const &pKiller, bool:bPicked) { if (ExecuteHookFunction(CEFunction_Kill, this, pKiller, bPicked) != PLUGIN_CONTINUE) return; - new ClassInstance:pInstance = @Entity_GetClassInstance(this); + static ClassInstance:pInstance; pInstance = @Entity_GetClassInstance(this); ClassInstanceSetMember(pInstance, CE_MEMBER_NEXTKILL, 0.0); @@ -808,7 +818,7 @@ bool:@Entity_IsCustom(const &this) { ExecuteHookFunction(CEFunction_Think, this); - new ClassInstance:pInstance = @Entity_GetClassInstance(this); + static ClassInstance:pInstance; pInstance = @Entity_GetClassInstance(this); static Float:flGameTime; flGameTime = get_gametime(); static iDeadFlag; iDeadFlag = pev(this, pev_deadflag); @@ -832,7 +842,7 @@ bool:@Entity_IsCustom(const &this) { @Entity_Touch(&this, const &pToucher) { if (ExecuteHookFunction(CEFunction_Touch, this, pToucher)) return; - new ClassInstance:pInstance = @Entity_GetClassInstance(this); + static ClassInstance:pInstance; pInstance = @Entity_GetClassInstance(this); static iId; iId = ClassInstanceGetMember(pInstance, CE_MEMBER_ID); static CEPreset:iPreset; iPreset = ArrayGetCell(g_rgEntities[Entity_Preset], iId); @@ -993,6 +1003,7 @@ InitStorages() { g_rgEntities[Entity_Name] = ArrayCreate(CE_MAX_NAME_LENGTH); g_rgEntities[Entity_Preset] = ArrayCreate(); g_rgEntities[Entity_Class] = ArrayCreate(); + g_rgEntities[Entity_Flags] = ArrayCreate(); g_rgEntities[Entity_KeyMemberBindings] = ArrayCreate(); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { @@ -1009,19 +1020,16 @@ DestroyStorages() { ArrayDestroy(g_rgEntities[Entity_Hooks][iFunction]); } - for (new Entity:iData = Entity:0; iData < Entity; ++iData) { - ArrayDestroy(Array:g_rgEntities[iData]); - } - ArrayDestroy(g_rgEntities[Entity_KeyMemberBindings]); ArrayDestroy(g_rgEntities[Entity_Class]); + ArrayDestroy(g_rgEntities[Entity_Flags]); ArrayDestroy(g_rgEntities[Entity_Preset]); ArrayDestroy(g_rgEntities[Entity_Name]); TrieDestroy(g_itEntityIds); } -RegisterEntity(const szClassname[], CEPreset:iPreset = CEPreset_None, const szParent[] = "") { +RegisterEntity(const szClassname[], CEPreset:iPreset = CEPreset_None, const EntityFlags:iFlags = EntityFlag_None, const szParent[] = "") { new iId = g_iEntitiesNum; new Class:cParent = Invalid_Class; @@ -1043,10 +1051,11 @@ RegisterEntity(const szClassname[], CEPreset:iPreset = CEPreset_None, const szPa ArrayPushString(g_rgEntities[Entity_Name], szClassname); ArrayPushCell(g_rgEntities[Entity_Preset], iPreset); ArrayPushCell(g_rgEntities[Entity_Class], cEntity); + ArrayPushCell(g_rgEntities[Entity_Flags], iFlags); ArrayPushCell(g_rgEntities[Entity_KeyMemberBindings], TrieCreate()); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - ArrayPushCell(g_rgEntities[Entity_Hooks][iFunction], ArrayCreate(_:EntityHook)); + ArrayPushCell(g_rgEntities[Entity_Hooks][iFunction], ArrayCreate(_:Callback)); } g_iEntitiesNum++; @@ -1070,6 +1079,13 @@ FreeRegisteredEntity(iId) { ArraySetCell(g_rgEntities[Entity_Hooks][iFunction], iId, Invalid_Array); } + FreeEntityKeyMemberBindings(iId); + + new Class:cEntity = ArrayGetCell(g_rgEntities[Entity_Class], iId); + ClassDestroy(cEntity); +} + +FreeEntityKeyMemberBindings(iId) { new Trie:itKeyMemberBindings = ArrayGetCell(g_rgEntities[Entity_KeyMemberBindings], iId); new TrieIter:itKeyMemberBindingsIter = TrieIterCreate(itKeyMemberBindings); @@ -1083,9 +1099,6 @@ FreeRegisteredEntity(iId) { TrieIterDestroy(itKeyMemberBindingsIter); TrieDestroy(itKeyMemberBindings); - - new Class:cEntity = ArrayGetCell(g_rgEntities[Entity_Class], iId); - ClassDestroy(cEntity); } GetIdByClassName(const szClassname[]) { @@ -1104,18 +1117,18 @@ RegisterEntityHook(CEFunction:iFunction, const szClassname[], const szCallback[] new iFunctionId = get_func_id(szCallback, iPluginId); if (iFunctionId < 0) { - new szFilename[32]; + new szFilename[64]; get_plugin(iPluginId, szFilename, charsmax(szFilename)); log_error(AMX_ERR_NATIVE, "%s Function ^"%s^" not found in plugin ^"%s^".", LOG_PREFIX, szCallback, szFilename); return -1; } - new rgHook[EntityHook]; - rgHook[EntityHook_PluginID] = iPluginId; - rgHook[EntityHook_FuncID] = iFunctionId; + new rgHook[Callback]; + rgHook[Callback_PluginID] = iPluginId; + rgHook[Callback_FunctionId] = iFunctionId; new Array:irgHooks = ArrayGetCell(g_rgEntities[Entity_Hooks][iFunction], iId); - new iHookId = ArrayPushArray(irgHooks, rgHook[EntityHook:0], _:EntityHook); + new iHookId = ArrayPushArray(irgHooks, rgHook[Callback:0], _:Callback); return iHookId; } @@ -1136,9 +1149,7 @@ RemoveKeyMemberBinding(iId, const szKey[], const szMember[]) { new Trie:itKeyMemberBindings = ArrayGetCell(g_rgEntities[Entity_KeyMemberBindings], iId); new Trie:itMemberTypes = Invalid_Trie; - if (!TrieGetCell(itKeyMemberBindings, szKey, itMemberTypes)) { - return; - } + if (!TrieGetCell(itKeyMemberBindings, szKey, itMemberTypes)) return; TrieDeleteKey(itMemberTypes, szMember); } @@ -1169,8 +1180,8 @@ ExecuteHookFunction(CEFunction:iFunction, pEntity, any:...) { new iHooksNum; iHooksNum = ArraySize(irgHooks); for (new iHookId = 0; iHookId < iHooksNum; ++iHookId) { - static iPluginId; iPluginId = ArrayGetCell(irgHooks, iHookId, _:EntityHook_PluginID); - static iFunctionId; iFunctionId = ArrayGetCell(irgHooks, iHookId, _:EntityHook_FuncID); + static iPluginId; iPluginId = ArrayGetCell(irgHooks, iHookId, _:Callback_PluginID); + static iFunctionId; iFunctionId = ArrayGetCell(irgHooks, iHookId, _:Callback_FunctionId); if (callfunc_begin_i(iFunctionId, iPluginId) == 1) { callfunc_push_int(pEntity); @@ -1285,4 +1296,3 @@ stock UTIL_ParseVector(const szBuffer[], Float:vecOut[3]) { vecOut[i] = str_to_float(rgszOrigin[i]); } } - diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index 511f824..46a42fa 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -15,7 +15,7 @@ * * @return Handler of the registered entity */ -native CE:CE_Register(const szClassname[], CEPreset:iPreset = CEPreset_None); +native CE:CE_Register(const szClassname[], CEPreset:iPreset = CEPreset_None, bool:bAbstract = false); /** * Extend entity @@ -25,7 +25,7 @@ native CE:CE_Register(const szClassname[], CEPreset:iPreset = CEPreset_None); * * @return Handler of the registered entity */ -native CE:CE_RegisterDerived(const szClassname[], const szBase[]); +native CE:CE_RegisterDerived(const szClassname[], const szBase[], bool:bAbstract = false); /** * Spawn entity From 0971ba5e637dec35843b85fb6ebace3fb1359662 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 19 Mar 2024 01:41:32 +0100 Subject: [PATCH 176/231] add base npc entity --- entities/entity_base_npc.sma | 1018 ++++++++++++++++++++ entities/include/entity_base_npc_const.inc | 69 ++ 2 files changed, 1087 insertions(+) create mode 100644 entities/entity_base_npc.sma create mode 100644 entities/include/entity_base_npc_const.inc diff --git a/entities/entity_base_npc.sma b/entities/entity_base_npc.sma new file mode 100644 index 0000000..7a1a5dc --- /dev/null +++ b/entities/entity_base_npc.sma @@ -0,0 +1,1018 @@ +#pragma semicolon 1 + +#include +#include +#include +#include +#include + +#include +#include + +#include + +#define PLUGIN "[Entity] Base NPC" +#define VERSION "1.0.0" +#define AUTHOR "Hedgehog Fog" + +#define IS_PLAYER(%1) (%1 >= 1 && %1 <= MaxClients) +#define IS_MONSTER(%1) (!!(pev(%1, pev_flags) & FL_MONSTER)) + +#define ENTITY_NAME BASE_NPC_ENTITY_NAME + +new g_pCvarUseAstar; + +new g_pTrace; + +public plugin_precache() { + Nav_Precache(); + + g_pTrace = create_tr2(); + + CE_Register(ENTITY_NAME, CEPreset_NPC, true); + + CE_RegisterHook(ENTITY_NAME, CEFunction_Init, "@Entity_Init"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Restart, "@Entity_Restart"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Spawned, "@Entity_Spawned"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Remove, "@Entity_Remove"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Kill, "@Entity_Kill"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Killed, "@Entity_Killed"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Think, "@Entity_Think"); + + CE_RegisterMethod(ENTITY_NAME, PlayAction, "@Entity_PlayAction", CE_MP_Cell, CE_MP_Cell, CE_MP_Float, CE_MP_Cell); + CE_RegisterMethod(ENTITY_NAME, EmitVoice, "@Entity_EmitVoice", CE_MP_String, CE_MP_Cell); + + CE_RegisterVirtualMethod(ENTITY_NAME, ResetPath, "@Entity_ResetPath"); + CE_RegisterVirtualMethod(ENTITY_NAME, AttackThink, "@Entity_AttackThink"); + CE_RegisterVirtualMethod(ENTITY_NAME, ProcessPath, "@Entity_ProcessPath"); + CE_RegisterVirtualMethod(ENTITY_NAME, ProcessTarget, "@Entity_ProcessTarget"); + CE_RegisterVirtualMethod(ENTITY_NAME, ProcessGoal, "@Entity_ProcessGoal"); + CE_RegisterVirtualMethod(ENTITY_NAME, SetTarget, "@Entity_SetTarget", CE_MP_FloatArray, 3); + CE_RegisterVirtualMethod(ENTITY_NAME, AIThink, "@Entity_AIThink"); + CE_RegisterVirtualMethod(ENTITY_NAME, GetEnemy, "@Entity_GetEnemy"); + CE_RegisterVirtualMethod(ENTITY_NAME, IsEnemy, "@Entity_IsEnemy", CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, IsValidEnemy, "@Entity_IsValidEnemy", CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, UpdateEnemy, "@Entity_UpdateEnemy"); + CE_RegisterVirtualMethod(ENTITY_NAME, UpdateGoal, "@Entity_UpdateGoal"); + CE_RegisterVirtualMethod(ENTITY_NAME, CanAttack, "@Entity_CanAttack", CE_MP_Cell, CE_MP_Float, CE_MP_FloatArray, 3); + CE_RegisterVirtualMethod(ENTITY_NAME, StartAttack, "@Entity_StartAttack", CE_MP_Float, CE_MP_Float, CE_MP_FloatArray, 3, CE_MP_Float, CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, ReleaseAttack, "@Entity_ReleaseAttack", CE_MP_Float, CE_MP_Float, CE_MP_FloatArray, 3, CE_MP_Float, CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, Hit, "@Entity_Hit", CE_MP_Float, CE_MP_Float, CE_MP_FloatArray, 3, CE_MP_Float, CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, HandlePath, "@Entity_HandlePath", CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, UpdateTarget, "@Entity_UpdateTarget"); + CE_RegisterVirtualMethod(ENTITY_NAME, Dying, "@Entity_Dying"); + CE_RegisterVirtualMethod(ENTITY_NAME, GetPathCost, "@Entity_GetPathCost", CE_MP_Cell, CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, FindPath, "@Entity_FindPath", CE_MP_FloatArray, 3); + CE_RegisterVirtualMethod(ENTITY_NAME, MoveTo, "@Entity_MoveTo", CE_MP_FloatArray, 3); + CE_RegisterVirtualMethod(ENTITY_NAME, TakeDamage, "@Entity_TakeDamage", CE_MP_Cell, CE_MP_Cell, CE_MP_Float, CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, IsVisible, "@Entity_IsVisible", CE_MP_FloatArray, 3, CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, FindEnemy, "@Entity_FindEnemy", CE_MP_Float, CE_MP_Float, CE_MP_Cell, CE_MP_Cell, CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, GetEnemyPriority, "@Entity_GetEnemyPriority", CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, IsReachable, "@Entity_IsReachable", CE_MP_FloatArray, 3, CE_MP_Cell, CE_MP_Float); + CE_RegisterVirtualMethod(ENTITY_NAME, TestStep, "@Entity_TestStep", CE_MP_FloatArray, 3, CE_MP_FloatArray, 3, CE_MP_FloatArray, 3); + CE_RegisterVirtualMethod(ENTITY_NAME, MoveForward, "@Entity_MoveForward"); + CE_RegisterVirtualMethod(ENTITY_NAME, StopMovement, "@Entity_StopMovement"); + CE_RegisterVirtualMethod(ENTITY_NAME, MovementThink, "@Entity_MovementThink"); + CE_RegisterVirtualMethod(ENTITY_NAME, IsInViewCone, "@Entity_IsInViewCone", CE_MP_FloatArray, 3); +} + +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); + + RegisterHam(Ham_TakeDamage, CE_BASE_CLASSNAME, "HamHook_Base_TakeDamage_Post", .Post = 1); + + g_pCvarUseAstar = register_cvar("npc_use_astar", "1"); +} + +public plugin_end() { + free_tr2(g_pTrace); +} + +/*--------------------------------[ Methods ]--------------------------------*/ + +@Entity_Init(this) { + CE_SetMemberVec(this, CE_MEMBER_MINS, Float:{-12.0, -12.0, -32.0}); + CE_SetMemberVec(this, CE_MEMBER_MAXS, Float:{12.0, 12.0, 32.0}); + CE_SetMember(this, m_flAIThinkRate, 0.1); + CE_SetMember(this, m_irgPath, ArrayCreate(3)); + CE_SetMember(this, m_flAttackRange, 0.0); + CE_SetMember(this, m_flAttackRate, 0.0); + CE_SetMember(this, m_iRevengeChance, 10); + CE_SetMember(this, m_flStepHeight, 18.0); + CE_SetMember(this, m_flAttackDelay, 0.0); + CE_SetMember(this, m_flDamage, 0.0); + CE_SetMember(this, m_flPathSearchDelay, 5.0); + CE_SetMember(this, m_flDieDuration, 0.1); + CE_SetMember(this, m_pBuildPathTask, Invalid_NavBuildPathTask); + CE_SetMemberVec(this, m_vecHitOffset, Float:{0.0, 0.0, 0.0}); +} + +@Entity_Restart(this) { + CE_CallMethod(this, ResetPath); +} + +@Entity_Spawned(this) { + static Float:flGameTime; flGameTime = get_gametime(); + + CE_SetMember(this, m_flNextAttack, 0.0); + CE_SetMember(this, m_flReleaseAttack, 0.0); + CE_SetMember(this, m_flNextAIThink, flGameTime); + CE_SetMember(this, m_flLastAIThink, flGameTime); + CE_SetMember(this, m_flNextAction, flGameTime); + CE_SetMember(this, m_flNextPathSearch, flGameTime); + CE_SetMember(this, m_flNextGoalUpdate, flGameTime); + CE_SetMember(this, m_flTargetArrivalTime, 0.0); + CE_DeleteMember(this, m_vecGoal); + CE_DeleteMember(this, m_vecInput); + CE_DeleteMember(this, m_vecTarget); + CE_SetMember(this, m_pKiller, 0); + + set_pev(this, pev_rendermode, kRenderNormal); + set_pev(this, pev_renderfx, kRenderFxGlowShell); + set_pev(this, pev_renderamt, 4.0); + set_pev(this, pev_rendercolor, Float:{0.0, 0.0, 0.0}); + set_pev(this, pev_health, 1.0); + set_pev(this, pev_takedamage, DAMAGE_AIM); + set_pev(this, pev_view_ofs, Float:{0.0, 0.0, 32.0}); + set_pev(this, pev_maxspeed, 0.0); + set_pev(this, pev_enemy, 0); + set_pev(this, pev_fov, 90.0); + set_pev(this, pev_gravity, 1.0); + + engfunc(EngFunc_DropToFloor, this); + + set_pev(this, pev_nextthink, flGameTime + 0.1); +} + +@Entity_Kill(this, pKiller) { + CE_SetMember(this, m_pKiller, pKiller); + + new iDeadFlag = pev(this, pev_deadflag); + + if (pKiller && iDeadFlag == DEAD_NO) { + CE_CallMethod(this, StopMovement); + + new Float:flGameTime = get_gametime(); + new Float:flDieDuration = CE_GetMember(this, m_flDieDuration); + + set_pev(this, pev_takedamage, DAMAGE_NO); + set_pev(this, pev_deadflag, DEAD_DYING); + set_pev(this, pev_nextthink, flGameTime + flDieDuration); + + CE_SetMember(this, m_flNextAIThink, flGameTime + flDieDuration); + + // cancel first kill function to play duing animation + CE_CallMethod(this, Dying); + + return PLUGIN_HANDLED; + } + + return PLUGIN_CONTINUE; +} + +@Entity_Killed(this) { + CE_CallMethod(this, ResetPath); +} + +@Entity_Dying(this) {} + +@Entity_Remove(this) { + CE_CallMethod(this, ResetPath); + + new Array:irgPath = CE_GetMember(this, m_irgPath); + ArrayDestroy(irgPath); +} + +@Entity_TakeDamage(this, pInflictor, pAttacker, Float:flDamage, iDamageBits) { + if (IS_PLAYER(pAttacker) && CE_CallMethod(this, IsEnemy, pAttacker)) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecTarget[3]; pev(pAttacker, pev_origin, vecTarget); + static Float:flAttackRange; flAttackRange = CE_GetMember(this, m_flAttackRange); + + if (get_distance_f(vecOrigin, vecTarget) <= flAttackRange && CE_CallMethod(this, IsVisible, vecTarget, 0)) { + if (random(100) < CE_GetMember(this, m_iRevengeChance)) { + set_pev(this, pev_enemy, pAttacker); + } + } + } +} + +@Entity_Think(this) { + static Float:flGameTime; flGameTime = get_gametime(); + static iDeadFlag; iDeadFlag = pev(this, pev_deadflag); + + switch (iDeadFlag) { + case DEAD_NO: { + static Float:flNextAIThink; flNextAIThink = CE_GetMember(this, m_flNextAIThink); + + if (flNextAIThink <= flGameTime) { + CE_CallMethod(this, AIThink); + + static Float:flAIThinkRate; flAIThinkRate = CE_GetMember(this, m_flAIThinkRate); + CE_SetMember(this, m_flNextAIThink, flGameTime + flAIThinkRate); + } + + // update velocity at high rate to avoid inconsistent velocity + CE_CallMethod(this, MovementThink); + } + case DEAD_DYING: { + // TODO: Implement dying think + CE_Kill(this, CE_GetMember(this, m_pKiller)); + return; + } + case DEAD_DEAD, DEAD_RESPAWNABLE: { + return; + } + } + + set_pev(this, pev_nextthink, flGameTime + 0.01); +} + +@Entity_AIThink(this) { + CE_CallMethod(this, AttackThink); + + if (Float:CE_GetMember(this, m_flNextGoalUpdate) <= get_gametime()) { + CE_CallMethod(this, UpdateGoal); + CE_SetMember(this, m_flNextGoalUpdate, get_gametime() + 0.1); + } + + CE_CallMethod(this, UpdateTarget); + + if (CE_HasMember(this, m_vecTarget)) { + static Float:vecTarget[3]; CE_GetMemberVec(this, m_vecTarget, vecTarget); + CE_CallMethod(this, MoveTo, vecTarget); + } else { + CE_CallMethod(this, StopMovement); + } + + CE_SetMember(this, m_flLastAIThink, get_gametime()); +} + +@Entity_MovementThink(this) { + if (!CE_HasMember(this, m_vecInput)) return; + + static Float:vecInput[3]; CE_GetMemberVec(this, m_vecInput, vecInput); + if (!xs_vec_len(vecInput)) return; + + static Float:flSpeed; pev(this, pev_maxspeed, flSpeed); + static bool:bIsFlying; bIsFlying = @Entity_IsFlying(this); + static Float:vecVelocity[3]; pev(this, pev_velocity, vecVelocity); + + vecVelocity[0] = vecInput[0] * flSpeed; + vecVelocity[1] = vecInput[1] * flSpeed; + if (bIsFlying) vecVelocity[2] = vecInput[2] * flSpeed; + + static Float:vecAngles[3]; vector_to_angle(vecInput, vecAngles); + + if (!bIsFlying) { + engfunc(EngFunc_WalkMove, this, vecAngles[1], 0.5, WALKMOVE_NORMAL); + } + + set_pev(this, pev_speed, flSpeed); + set_pev(this, pev_velocity, vecVelocity); +} + +@Entity_AttackThink(this) { + static Float:flGameTime; flGameTime = get_gametime(); + static Float:flAttackRange; flAttackRange = CE_GetMember(this, m_flAttackRange); + static Float:flAttackDelay; flAttackDelay = CE_GetMember(this, m_flAttackDelay); + static Float:vecHitOffset[3]; CE_GetMemberVec(this, m_vecHitOffset, vecHitOffset); + static Float:flDamage; flDamage = CE_GetMember(this, m_flDamage); + static pEnemy; pEnemy = CE_CallMethod(this, GetEnemy); + + static Float:flReleaseAttack; flReleaseAttack = CE_GetMember(this, m_flReleaseAttack); + if (!flReleaseAttack) { + static Float:flNextAttack; flNextAttack = CE_GetMember(this, m_flNextAttack); + if (flNextAttack <= flGameTime) { + if (pEnemy && CE_CallMethod(this, CanAttack, pEnemy, flAttackRange, vecHitOffset)) { + CE_CallMethod(this, StartAttack, flDamage, flAttackRange, vecHitOffset, flAttackDelay, pEnemy); + } + } + } else if (flReleaseAttack <= flGameTime) { + CE_CallMethod(this, ReleaseAttack, flDamage, flAttackRange, vecHitOffset, flAttackDelay, pEnemy); + } +} + +@Entity_CanAttack(this, pEnemy, Float:flAttackRange, const Float:vecOffset[3]) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + static Float:vecTarget[3]; + pev(pEnemy, pev_origin, vecTarget); + xs_vec_add(vecTarget, vecOffset, vecTarget); + + if (get_distance_f(vecOrigin, vecTarget) > flAttackRange) return false; + + // if (!@Entity_IsInViewCone(this, vecTarget, 60.0)) return false; + + engfunc(EngFunc_TraceLine, vecOrigin, vecTarget, DONT_IGNORE_MONSTERS, this, g_pTrace); + + static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + + if (flFraction != 1.0) { + if (get_tr2(g_pTrace, TR_pHit) == pEnemy) { + get_tr2(g_pTrace, TR_vecEndPos, vecTarget); + return get_distance_f(vecOrigin, vecTarget) <= flAttackRange; + } + } + + return false; +} + +@Entity_StartAttack(this, Float:flDamage, Float:flAttackRange, Float:vecHitOffset[3], Float:flAttackDelay, pEnemy) { + CE_SetMember(this, m_flReleaseAttack, get_gametime() + flAttackDelay); + + static Float:vecTargetVelocity[3]; pev(pEnemy, pev_velocity, vecTargetVelocity); + if (xs_vec_len(vecTargetVelocity) < flAttackRange) { + CE_CallMethod(this, StopMovement); + } +} + +@Entity_ReleaseAttack(this, Float:flDamage, Float:flAttackRange, Float:vecHitOffset[3], Float:flAttackDelay, pEnemy) { + CE_CallMethod(this, Hit, flDamage, flAttackRange, vecHitOffset, flAttackDelay, pEnemy); + + static Float:flAttackRate; flAttackRate = CE_GetMember(this, m_flAttackRate); + + CE_SetMember(this, m_flReleaseAttack, 0.0); + CE_SetMember(this, m_flNextAttack, get_gametime() + flAttackRate); +} + +@Entity_Hit(this, Float:flDamage, Float:flAttackRange, const Float:vecHitOffset[3], Float:flAttackDelay, pEnemy) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecDirection[3]; @Entity_GetDirectionVector(this, vecDirection); + + static Float:vecTarget[3]; + xs_vec_mul_scalar(vecDirection, flAttackRange, vecTarget); + xs_vec_add(vecTarget, vecOrigin, vecTarget); + xs_vec_add(vecTarget, vecHitOffset, vecTarget); + + engfunc(EngFunc_TraceLine, vecOrigin, vecTarget, DONT_IGNORE_MONSTERS, this, g_pTrace); + + static pTarget; pTarget = get_tr2(g_pTrace, TR_pHit); + if (pTarget == -1) { + engfunc(EngFunc_TraceHull, vecOrigin, vecTarget, DONT_IGNORE_MONSTERS, HULL_HEAD, this, g_pTrace); + pTarget = get_tr2(g_pTrace, TR_pHit); + } + + static bool:bHit; bHit = pTarget != -1; + + if (bHit) { + get_tr2(g_pTrace, TR_vecEndPos, vecTarget); + xs_vec_sub(vecOrigin, vecTarget, vecDirection); + xs_vec_normalize(vecDirection, vecDirection); + + rg_multidmg_clear(); + ExecuteHamB(Ham_TraceAttack, pTarget, this, flDamage, vecDirection, g_pTrace, DMG_GENERIC); + rg_multidmg_apply(this, this); + + bHit = IS_PLAYER(pTarget) || IS_MONSTER(pTarget); + } + + return bHit; +} + +@Entity_GetDirectionVector(this, Float:vecOut[3]) { + static Float:vecAngles[3]; + + if (IS_PLAYER(this)) { + pev(this, pev_v_angle, vecAngles); + } else { + pev(this, pev_angles, vecAngles); + vecAngles[0] = -vecAngles[0]; + } + + angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecOut); + xs_vec_normalize(vecOut, vecOut); +} + +@Entity_MoveTo(this, const Float:vecTarget[3]) { + static Float:flGameTime; flGameTime = get_gametime(); + static Float:flLastAIThink; flLastAIThink = CE_GetMember(this, m_flLastAIThink); + static Float:flDelta; flDelta = floatmin(flGameTime - flLastAIThink, 1.0); + static Float:flMaxSpeed; pev(this, pev_maxspeed, flMaxSpeed); + static Float:flMaxAngle; flMaxAngle = 180.0 * flDelta; + static bool:rgbLockAxis[3]; rgbLockAxis = bool:{true, false, true}; + + static iMoveType; iMoveType = pev(this, pev_movetype); + if (iMoveType == MOVETYPE_FLY || iMoveType == MOVETYPE_NOCLIP) { + rgbLockAxis[0] = false; + } + + @Entity_TurnTo(this, vecTarget, rgbLockAxis, flMaxAngle); + + if (CE_CallMethod(this, IsInViewCone, vecTarget)) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + if (flMaxSpeed > 0.0 && get_distance_f(vecOrigin, vecTarget) > 1.0) { + CE_CallMethod(this, MoveForward); + } + } +} + +@Entity_EmitVoice(this, const szSound[], Float:flDuration) { + emit_sound(this, CHAN_VOICE, szSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); +} + +@Entity_UpdateEnemy(this) { + static Float:flViewRange; flViewRange = CE_GetMember(this, m_flViewRange); + if (CE_CallMethod(this, FindEnemy, flViewRange, 0.0, false, true, true)) return true; + + static Float:flFindRange; flFindRange = CE_GetMember(this, m_flFindRange); + if (CE_CallMethod(this, FindEnemy, flFindRange, 0.0, false, false, false)) return true; + + return false; +} + +@Entity_UpdateGoal(this) { + static Float:flGameTime; flGameTime = get_gametime(); + + new pEnemy = CE_CallMethod(this, GetEnemy); + if (pEnemy) { + CE_DeleteMember(this, m_vecGoal); + } + + if (Float:CE_GetMember(this, m_flNextEnemyUpdate) <= flGameTime) { + if (CE_CallMethod(this, UpdateEnemy)) { + pEnemy = pev(this, pev_enemy); + } + + CE_SetMember(this, m_flNextEnemyUpdate, flGameTime + 0.1); + } + + if (pEnemy) { + static Float:vecGoal[3]; pev(pEnemy, pev_origin, vecGoal); + CE_SetMemberVec(this, m_vecGoal, vecGoal); + } +} + +@Entity_UpdateTarget(this) { + CE_CallMethod(this, ProcessTarget); + CE_CallMethod(this, ProcessPath); + CE_CallMethod(this, ProcessGoal); +} + +@Entity_ProcessTarget(this) { + if (!CE_HasMember(this, m_vecTarget)) return; + + static Float:flGameTime; flGameTime = get_gametime(); + static Float:flArrivalTime; flArrivalTime = CE_GetMember(this, m_flTargetArrivalTime); + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecTarget[3]; CE_GetMemberVec(this, m_vecTarget, vecTarget); + + new bool:bHasReached = xs_vec_distance_2d(vecOrigin, vecTarget) < 10.0; + if (bHasReached || flGameTime > flArrivalTime) { + CE_DeleteMember(this, m_vecTarget); + } +} + +@Entity_ProcessGoal(this) { + static Float:flGameTime; flGameTime = get_gametime(); + + if (CE_HasMember(this, m_vecGoal)) { + static Float:vecGoal[3]; CE_GetMemberVec(this, m_vecGoal, vecGoal); + + if (!CE_CallMethod(this, IsReachable, vecGoal, pev(this, pev_enemy), 32.0)) { + if (get_pcvar_bool(g_pCvarUseAstar)) { + if (Float:CE_GetMember(this, m_flNextPathSearch) <= flGameTime) { + CE_CallMethod(this, FindPath, vecGoal); + CE_SetMember(this, m_flNextPathSearch, flGameTime + Float:CE_GetMember(this, m_flPathSearchDelay)); + CE_DeleteMember(this, m_vecTarget); + CE_DeleteMember(this, m_vecGoal); + } + } else { + CE_DeleteMember(this, m_vecGoal); + CE_DeleteMember(this, m_vecTarget); + } + } else { + CE_DeleteMember(this, m_vecGoal); + CE_CallMethod(this, SetTarget, vecGoal); + } + } +} + +@Entity_SetTarget(this, const Float:vecTarget[3]) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:flMaxSpeed; pev(this, pev_maxspeed, flMaxSpeed); + static Float:flDuration; flDuration = xs_vec_distance(vecOrigin, vecTarget) / flMaxSpeed; + + CE_SetMemberVec(this, m_vecTarget, vecTarget); + CE_SetMember(this, m_flTargetArrivalTime, get_gametime() + flDuration); +} + +@Entity_PlayAction(this, iStartSequence, iEndSequence, Float:flDuration, bSupercede) { + static Float:flGametime; flGametime = get_gametime(); + if (!bSupercede && flGametime < Float:CE_GetMember(this, m_flNextAction)) return false; + + static iSequence; iSequence = random_num(iStartSequence, iEndSequence); + if (!UTIL_SetSequence(this, iSequence)) return false; + + CE_SetMember(this, m_flNextAction, flGametime + flDuration); + + return true; +} + +@Entity_FindPath(this, Float:vecTarget[3]) { + CE_CallMethod(this, ResetPath); + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + new NavBuildPathTask:pTask = Nav_Path_Find(vecOrigin, vecTarget, "NavPathCallback", this, this, "NavPathCost"); + CE_SetMember(this, m_pBuildPathTask, pTask); +} + +@Entity_ResetPath(this) { + new Array:irgPath = CE_GetMember(this, m_irgPath); + ArrayClear(irgPath); + + new NavBuildPathTask:pTask = CE_GetMember(this, m_pBuildPathTask); + if (pTask != Invalid_NavBuildPathTask) { + Nav_Path_FindTask_Abort(pTask); + CE_SetMember(this, m_pBuildPathTask, Invalid_NavBuildPathTask); + } + + // CE_DeleteMember(this, m_vecGoal); + CE_DeleteMember(this, m_vecTarget); +} + +bool:@Entity_ProcessPath(this) { + if (CE_HasMember(this, m_vecTarget)) return true; + + new Array:irgPath = CE_GetMember(this, m_irgPath); + if (!ArraySize(irgPath)) return false; + + static Float:vecMins[3]; pev(this, pev_mins, vecMins); + + static Float:vecTarget[3]; + ArrayGetArray(irgPath, 0, vecTarget); + ArrayDeleteItem(irgPath, 0); + vecTarget[2] -= vecMins[2]; + + CE_CallMethod(this, SetTarget, vecTarget); + + return true; +} + +@Entity_HandlePath(this, NavPath:pPath) { + if (Nav_Path_IsValid(pPath)) { + static Array:irgPath; irgPath = CE_GetMember(this, m_irgPath); + ArrayClear(irgPath); + + static Array:irgSegments; irgSegments = Nav_Path_GetSegments(pPath); + for (new i = 0; i < ArraySize(irgSegments); ++i) { + static NavPathSegment:pSegment; pSegment = ArrayGetCell(irgSegments, i); + static Float:vecPos[3]; Nav_Path_Segment_GetPos(pSegment, vecPos); + + ArrayPushArray(irgPath, vecPos, sizeof(vecPos)); + } + } else { + set_pev(this, pev_enemy, 0); + } + + CE_SetMember(this, m_pBuildPathTask, Invalid_NavBuildPathTask); +} + +@Entity_GetEnemy(this) { + new pEnemy = pev(this, pev_enemy); + + if (!CE_CallMethod(this, IsValidEnemy, pEnemy)) return 0; + + return pEnemy; +} + +bool:@Entity_IsEnemy(this, pEnemy) { + if (pEnemy <= 0) return false; + if (!pev_valid(pEnemy)) return false; + + static iTeam; iTeam = pev(this, pev_team); + + new iEnemyTeam = 0; + if (IS_PLAYER(pEnemy)) { + iEnemyTeam = get_ent_data(pEnemy, "CBasePlayer", "m_iTeam"); + } else if (IS_MONSTER(pEnemy)) { + iEnemyTeam = pev(pEnemy, pev_team); + } else { + return false; + } + + if (iTeam == iEnemyTeam) return false; + if (pev(pEnemy, pev_takedamage) == DAMAGE_NO) return false; + if (pev(pEnemy, pev_solid) < SOLID_BBOX) return false; + if (IsInvisible(pEnemy)) return false; + + return true; +} + +bool:@Entity_IsValidEnemy(this, pEnemy) { + if (pEnemy <= 0) return false; + if (!pev_valid(pEnemy)) return false; + + if (IS_PLAYER(pEnemy)) { + if (!is_user_alive(pEnemy)) return false; + } else if (IS_MONSTER(pEnemy)) { + if (pev(pEnemy, pev_deadflag) != DEAD_NO) return false; + } else { + return false; + } + + if (pev(pEnemy, pev_takedamage) == DAMAGE_NO) return false; + if (pev(pEnemy, pev_solid) < SOLID_BBOX) return false; + if (IsInvisible(pEnemy)) return false; + + return true; +} + +Float:@Entity_GetEnemyPriority(this, pEnemy) { + if (IS_PLAYER(pEnemy)) return 1.0; + if (IS_MONSTER(pEnemy)) return 0.075; + + return 0.0; +} + +@Entity_FindEnemy(this, Float:flMaxDistance, Float:flMinPriority, bool:bVisibleOnly, bool:bReachableOnly, bool:bAllowMonsters) { + new pEnemy = pev(this, pev_enemy); + if (!CE_CallMethod(this, IsValidEnemy, pEnemy)) { + set_pev(this, pev_enemy, 0); + } + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static pClosestTarget; pClosestTarget = 0; + static Float:flClosestTargetPriority; flClosestTargetPriority = 0.0; + + new pTarget = 0; + while ((pTarget = engfunc(EngFunc_FindEntityInSphere, pTarget, vecOrigin, flMaxDistance)) > 0) { + if (this == pTarget) continue; + + if (!CE_CallMethod(this, IsEnemy, pTarget)) continue; + if (!CE_CallMethod(this, IsValidEnemy, pTarget)) continue; + + static Float:vecTarget[3]; pev(pTarget, pev_origin, vecTarget); + + if (bVisibleOnly && !CE_CallMethod(this, IsVisible, vecTarget, pTarget)) continue; + + static Float:flDistance; flDistance = xs_vec_distance(vecOrigin, vecTarget); + static Float:flTargetPriority; flTargetPriority = 1.0 - (flDistance / flMaxDistance); + + if (!bAllowMonsters && IS_MONSTER(pTarget)) { + flTargetPriority *= 0.0; + } else { + flTargetPriority *= CE_CallMethod(this, GetEnemyPriority, pTarget); + } + + if (flTargetPriority >= flMinPriority && bReachableOnly && !CE_CallMethod(this, IsReachable, vecTarget, pTarget)) { + flTargetPriority *= 0.1; + } + + if (flTargetPriority >= flMinPriority && flTargetPriority > flClosestTargetPriority) { + pClosestTarget = pTarget; + flClosestTargetPriority = flTargetPriority; + } + } + + if (pClosestTarget) { + set_pev(this, pev_enemy, pClosestTarget); + } + + return pClosestTarget; +} + +bool:@Entity_IsVisible(this, const Float:vecTarget[3], pIgnoreEnt) { + static Float:vecOrigin[3]; ExecuteHamB(Ham_EyePosition, this, vecOrigin); + + static iIgnoreEntSolidType; iIgnoreEntSolidType = SOLID_NOT; + if (pIgnoreEnt) { + iIgnoreEntSolidType = pev(pIgnoreEnt, pev_solid); + set_pev(pIgnoreEnt, pev_solid, SOLID_NOT); + } + + static bool:bIsOpen; bIsOpen = IsOpen(vecOrigin, vecTarget, this); + + if (pIgnoreEnt) { + set_pev(pIgnoreEnt, pev_solid, iIgnoreEntSolidType); + } + + return bIsOpen; +} + +bool:@Entity_IsReachable(this, const Float:vecTarget[3], pIgnoreEnt, Float:flStepLength) { + if ((~pev(this, pev_flags) & FL_ONGROUND) && !@Entity_IsFlying(this)) return false; + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecTargetFixed[3]; xs_vec_set(vecTargetFixed, vecTarget[0], vecTarget[1], floatmax(vecTarget[2], vecOrigin[2])); + + static iIgnoreEntSolidType; iIgnoreEntSolidType = SOLID_NOT; + if (pIgnoreEnt) { + iIgnoreEntSolidType = pev(pIgnoreEnt, pev_solid); + set_pev(pIgnoreEnt, pev_solid, SOLID_NOT); + } + + static bool:bIsReachable; bIsReachable = true; + + if (bIsReachable) { + bIsReachable = IsOpen(vecOrigin, vecTargetFixed, this); + } + + if (bIsReachable) { + static Float:vecMins[3]; pev(this, pev_mins, vecMins); + static Float:vecLeftSide[3]; xs_vec_set(vecLeftSide, vecOrigin[0] + vecMins[0], vecOrigin[1] + vecMins[1], vecOrigin[2]); + static Float:vecTargetLeftSide[3]; xs_vec_set(vecTargetLeftSide, vecTargetFixed[0] + vecMins[0], vecTargetFixed[1] + vecMins[1], vecTargetFixed[2]); + + bIsReachable = IsOpen(vecLeftSide, vecTargetLeftSide, this); + } + + if (bIsReachable) { + static Float:vecMaxs[3]; pev(this, pev_maxs, vecMaxs); + static Float:vecRightSide[3]; xs_vec_set(vecRightSide, vecOrigin[0] + vecMaxs[0], vecOrigin[1] + vecMaxs[1], vecOrigin[2]); + static Float:vecTargetRightSide[3]; xs_vec_set(vecTargetRightSide, vecTargetFixed[0] + vecMaxs[0], vecTargetFixed[1] + vecMaxs[1], vecTargetFixed[2]); + + bIsReachable = IsOpen(vecRightSide, vecTargetRightSide, this); + } + + if (pev(this, pev_movetype) != MOVETYPE_FLY) { + static Float:vecStepOrigin[3]; + + if (bIsReachable) { + static Float:flDistance; flDistance = get_distance_f(vecOrigin, vecTargetFixed); + static iStepsNum; iStepsNum = floatround(flDistance / flStepLength); + + if (iStepsNum) { + //Get direction vector + static Float:vecStep[3]; xs_vec_sub(vecTargetFixed, vecOrigin, vecStep); + + bIsReachable = @Entity_TestStep(this, vecOrigin, vecStep, vecStepOrigin); + + if (bIsReachable) { + xs_vec_normalize(vecStep, vecStep); + xs_vec_mul_scalar(vecStep, flStepLength, vecStep); + + xs_vec_copy(vecOrigin, vecStepOrigin); + + for (new iStep = 0; iStep < iStepsNum; ++iStep) { + if (!@Entity_TestStep(this, vecStepOrigin, vecStep, vecStepOrigin)) { + bIsReachable = false; + break; + } + } + } + } + } + + if (bIsReachable) { + bIsReachable = (vecTarget[2] - vecStepOrigin[2]) < 72.0; + } + } + + if (pIgnoreEnt) { + set_pev(pIgnoreEnt, pev_solid, iIgnoreEntSolidType); + } + + return bIsReachable; +} + +bool:@Entity_TestStep(this, const Float:vecOrigin[3], const Float:vecStep[3], Float:vecStepOrigin[3]) { + static Float:vecMins[3]; pev(this, pev_mins, vecMins); + static Float:flStepHeight; flStepHeight = CE_GetMember(this, m_flStepHeight); + + static Float:vecCurrentStepOrigin[3]; + xs_vec_copy(vecStepOrigin, vecCurrentStepOrigin); + xs_vec_add(vecOrigin, vecStep, vecCurrentStepOrigin); + + // check wall + static Float:vecStepStart[3]; + xs_vec_copy(vecOrigin, vecStepStart); + vecStepStart[2] += vecMins[2] + flStepHeight; + + static Float:vecStepEnd[3]; + xs_vec_copy(vecCurrentStepOrigin, vecStepEnd); + vecStepEnd[2] += vecMins[2] + flStepHeight; + + if (!IsOpen(vecStepStart, vecStepEnd, this)) return false; + + vecCurrentStepOrigin[2] += flStepHeight; // add height to the step + + new Float:flDistanceToFloor = GetDistanceToFloor(this, vecCurrentStepOrigin); + if (flDistanceToFloor < 0.0) { // check if falling or solid + static Float:vecEnd[3]; + xs_vec_copy(vecCurrentStepOrigin, vecEnd); + vecEnd[2] -= -vecMins[2] + flStepHeight; + return false; + } + + if (flDistanceToFloor >= flStepHeight) { // subtract step height if not needed + flDistanceToFloor -= flStepHeight; + vecCurrentStepOrigin[2] -= flStepHeight; + } + + vecCurrentStepOrigin[2] -= flDistanceToFloor; // apply possible height change + + xs_vec_copy(vecCurrentStepOrigin, vecStepOrigin); // copy result + + return true; +} + +@Entity_MoveForward(this) { + static Float:vecInput[3]; @Entity_GetDirectionVector(this, vecInput); + + if (!@Entity_IsFlying(this)) { + vecInput[2] = 0.0; + xs_vec_normalize(vecInput, vecInput); + } + + CE_SetMemberVec(this, m_vecInput, vecInput); +} + +@Entity_StopMovement(this) { + CE_DeleteMember(this, m_vecInput); +} + +bool:@Entity_IsFlying(this) { + static iMoveType; iMoveType = pev(this, pev_movetype); + + return (iMoveType == MOVETYPE_FLY || iMoveType == MOVETYPE_NOCLIP); +} + +bool:@Entity_IsInViewCone(this, const Float:vecTarget[3]) { + static Float:vecOrigin[3]; ExecuteHamB(Ham_EyePosition, this, vecOrigin); + static Float:flFOV; pev(this, pev_fov, flFOV); + + static Float:vecDirection[3]; + xs_vec_sub(vecTarget, vecOrigin, vecDirection); + xs_vec_normalize(vecDirection, vecDirection); + + static Float:vecForward[3]; + pev(this, pev_v_angle, vecForward); + angle_vector(vecForward, ANGLEVECTOR_FORWARD, vecForward); + + static Float:flAngle; flAngle = xs_rad2deg(xs_acos((vecDirection[0] * vecForward[0]) + (vecDirection[1] * vecForward[1]), radian)); + + return flAngle <= (flFOV / 2); +} + +Float:@Entity_GetPathCost(this, NavArea:nextArea, NavArea:prevArea) { + static NavAttributeType:iAttributes; iAttributes = Nav_Area_GetAttributes(nextArea); + + // NPCs can't jump or crouch + if (iAttributes & NAV_JUMP || iAttributes & NAV_CROUCH) return -1.0; + + // NPCs can't go ladders + if (prevArea != Invalid_NavArea) { + static NavTraverseType:iTraverseType; iTraverseType = Nav_Area_GetParentHow(prevArea); + if (iTraverseType == GO_LADDER_UP) return -1.0; + // if (iTraverseType == GO_LADDER_DOWN) return -1.0; + } + + static Float:vecTarget[3]; Nav_Area_GetCenter(nextArea, vecTarget); + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + static Float:vecSrc[3]; + if (prevArea != Invalid_NavArea) { + Nav_Area_GetCenter(prevArea, vecSrc); + } else { + xs_vec_copy(vecOrigin, vecSrc); + } + + engfunc(EngFunc_TraceLine, vecSrc, vecTarget, IGNORE_MONSTERS, 0, g_pTrace); + + static pHit; pHit = get_tr2(g_pTrace, TR_pHit); + + // cancel if there is a wall + if (!pHit) return -1.0; + + // cancel path if there is a obstacle + if (pHit != -1 && !IS_PLAYER(pHit) && !IS_MONSTER(pHit)) return -1.0; + + static pTarget; pTarget = 0; + while ((pTarget = engfunc(EngFunc_FindEntityInSphere, pTarget, vecTarget, 4.0)) > 0) { + static szClassName[32]; pev(pTarget, pev_classname, szClassName, charsmax(szClassName)); + + // don't go through the hurt entities + if (equal(szClassName, "trigger_hurt")) return -1.0; + } + + return 1.0; +} + +@Entity_TurnTo(this, const Float:vecTarget[3], const bool:rgbLockAxis[3], const Float:flSpeed) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecAngles[3]; pev(this, pev_angles, vecAngles); + + static Float:vecTargetAngles[3]; + xs_vec_sub(vecTarget, vecOrigin, vecTargetAngles); + engfunc(EngFunc_VecToAngles, vecTargetAngles, vecTargetAngles); + + for (new i = 0; i < 3; ++i) { + if (rgbLockAxis[i]) continue; + + if (flSpeed >= 0.0) { + vecAngles[i] = UTIL_ApproachAngle(vecTargetAngles[i], vecAngles[i], flSpeed); + } else { + vecAngles[i] = vecTargetAngles[i]; + } + } + + static Float:vecViewAngles[3]; + xs_vec_copy(vecAngles, vecViewAngles); + vecViewAngles[0] = -vecViewAngles[0]; + + set_pev(this, pev_angles, vecAngles); + set_pev(this, pev_v_angle, vecViewAngles); + set_pev(this, pev_ideal_yaw, vecAngles[1]); +} + +/*--------------------------------[ Function ]--------------------------------*/ + +bool:IsOpen(const Float:vecSrc[3], const Float:vecEnd[3], pIgnoreEnt = 0, iIgnoreFlags = IGNORE_MONSTERS) { + engfunc(EngFunc_TraceLine, vecSrc, vecEnd, iIgnoreFlags, pIgnoreEnt, g_pTrace); + + if (get_tr2(g_pTrace, TR_AllSolid)) return false; + if (get_tr2(g_pTrace, TR_StartSolid)) return false; + + static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + if (flFraction < 1.0) return false; + + return true; +} + +Float:GetDistanceToFloor(pEntity, const Float:vecOrigin[3]) { + static Float:vecTarget[3]; + xs_vec_copy(vecOrigin, vecTarget); + vecTarget[2] = -8192.0; + + engfunc(EngFunc_TraceMonsterHull, pEntity, vecOrigin, vecTarget, IGNORE_MONSTERS, pEntity, g_pTrace); + + static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + if (flFraction == 1.0) return -1.0; + + static Float:vecEnd[3]; get_tr2(g_pTrace, TR_vecEndPos, vecEnd); + + return vecOrigin[2] - vecEnd[2]; +} + +IsInvisible(pEntity) { + if (!pev_valid(pEntity)) return true; + if (pev(pEntity, pev_rendermode) == kRenderNormal) return false; + + static Float:flRenderAmt; pev(pEntity, pev_renderamt, flRenderAmt); + + return (flRenderAmt < 50.0); +} + +/*--------------------------------[ Hooks ]--------------------------------*/ + +public HamHook_Base_TakeDamage_Post(pEntity, pInflictor, pAttacker, Float:flDamage, iDamageBits) { + if (CE_IsInstanceOf(pEntity, ENTITY_NAME)) { + CE_CallMethod(pEntity, TakeDamage, pInflictor, pAttacker, flDamage, iDamageBits); + return HAM_HANDLED; + } + + return HAM_IGNORED; +} + +/*--------------------------------[ Callbacks ]--------------------------------*/ + +public Float:NavPathCost(NavBuildPathTask:pTask, NavArea:newArea, NavArea:prevArea) { + static pEntity; pEntity = Nav_Path_FindTask_GetUserToken(pTask); + if (!pEntity) return 1.0; + + return CE_CallMethod(pEntity, GetPathCost, newArea, prevArea); +} + +public NavPathCallback(NavBuildPathTask:pTask) { + new pEntity = Nav_Path_FindTask_GetUserToken(pTask); + new NavPath:pPath = Nav_Path_FindTask_GetPath(pTask); + + return CE_CallMethod(pEntity, HandlePath, pPath); +} + +/*--------------------------------[ Stocks ]--------------------------------*/ + +stock bool:UTIL_SetSequence(pEntity, iSequence) { + if (pev(pEntity, pev_sequence) == iSequence) return false; + + set_pev(pEntity, pev_frame, 0); + set_pev(pEntity, pev_framerate, 1.0); + set_pev(pEntity, pev_animtime, get_gametime()); + set_pev(pEntity, pev_sequence, iSequence); + + return true; +} + +stock Float:UTIL_ApproachAngle(Float:flTarget, Float:flValue, Float:flSpeed) { + flTarget = UTIL_AngleMod(flTarget); + flValue = UTIL_AngleMod(flValue); + flSpeed = floatabs(flSpeed); + + static Float:flDelta; flDelta = flTarget - flValue; + + if (flDelta < -180.0) { + flDelta += 360.0; + } else if (flDelta > 180.0) { + flDelta -= 360.0; + } + + flDelta = floatclamp(flDelta, -flSpeed, flSpeed); + + return floatmin(flTarget, UTIL_AngleMod(flValue + flDelta)); +} + +stock Float:UTIL_AngleMod(Float:flAngle) { + return (360.0/65536) * (floatround(flAngle * (65536.0/360.0), floatround_floor) & 65535); +} diff --git a/entities/include/entity_base_npc_const.inc b/entities/include/entity_base_npc_const.inc new file mode 100644 index 0000000..8c7ae94 --- /dev/null +++ b/entities/include/entity_base_npc_const.inc @@ -0,0 +1,69 @@ +#if defined _entity_npc_base_const_included + #endinput +#endif +#define _entity_npc_base_const_included + +#define BASE_NPC_ENTITY_NAME "npc_base" + +#define m_flDamage "flDamage" +#define m_irgPath "irgPath" +#define m_vecGoal "vecGoal" +#define m_vecTarget "vecTarget" +#define m_pBuildPathTask "pBuildPathTask" +#define m_flReleaseAttack "flReleaseAttack" +#define m_flTargetArrivalTime "flTargetArrivalTime" +#define m_flNextAIThink "flNextAIThink" +#define m_flNextAction "flNextAction" +#define m_flNextAttack "flNextAttack" +#define m_flNextPathSearch "flNextPathSearch" +#define m_pKiller "pKiller" +#define m_flAttackRate "flAttackRate" +#define m_flAttackRange "flAttackRange" +#define m_flAttackDelay "flAttackDelay" +#define m_flViewRange "flViewRange" +#define m_flFindRange "flFindRange" +#define m_vecHitOffset "vecHitOffset" +#define m_flDieDuration "flDieDuration" +#define m_flNextGoalUpdate "flNextGoalUpdate" +#define m_flNextEnemyUpdate "flNextEnemyUpdate" +#define m_flPathSearchDelay "flPathSearchDelay" +#define m_iRevengeChance "iRevengeChance" +#define m_flStepHeight "flStepHeight" +#define m_vecInput "vecInput" +#define m_flLastAIThink "flLastAIThink" +#define m_flAIThinkRate "flAIThinkRate" + +#define EmitVoice "EmitVoice" +#define ResetPath "ResetPath" +#define AIThink "AIThink" +#define UpdateEnemy "UpdateEnemy" +#define UpdateGoal "UpdateGoal" +#define TakeDamage "TakeDamage" +#define ProcessPath "ProcessPath" +#define ProcessTarget "ProcessTarget" +#define ProcessGoal "ProcessGoal" +#define SetTarget "SetTarget" +#define MoveTo "MoveTo" +#define UpdateTarget "UpdateTarget" +#define FindPath "FindPath" +#define GetPathCost "GetPathCost" +#define HandlePath "HandlePath" +#define Hit "Hit" +#define StartAttack "StartAttack" +#define GetEnemy "GetEnemy" +#define IsEnemy "IsEnemy" +#define IsValidEnemy "IsValidEnemy" +#define ReleaseAttack "ReleaseAttack" +#define CanAttack "CanAttack" +#define PlayAction "PlayAction" +#define AttackThink "AttackThink" +#define IsVisible "IsVisible" +#define IsReachable "IsReachable" +#define FindEnemy "FindEnemy" +#define GetEnemyPriority "GetEnemyPriority" +#define TestStep "TestStep" +#define MoveForward "MoveForward" +#define StopMovement "StopMovement" +#define IsInViewCone "IsInViewCone" +#define Dying "Dying" +#define MovementThink "MovementThink" \ No newline at end of file From 9ce3f7c60442d4e9b0ace68e75f300855f80598f Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 19 Mar 2024 07:39:31 +0100 Subject: [PATCH 177/231] fix priority --- entities/entity_base_npc.sma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entities/entity_base_npc.sma b/entities/entity_base_npc.sma index 7a1a5dc..b3578c2 100644 --- a/entities/entity_base_npc.sma +++ b/entities/entity_base_npc.sma @@ -654,7 +654,7 @@ Float:@Entity_GetEnemyPriority(this, pEnemy) { if (!bAllowMonsters && IS_MONSTER(pTarget)) { flTargetPriority *= 0.0; } else { - flTargetPriority *= CE_CallMethod(this, GetEnemyPriority, pTarget); + flTargetPriority *= Float:CE_CallMethod(this, GetEnemyPriority, pTarget); } if (flTargetPriority >= flMinPriority && bReachableOnly && !CE_CallMethod(this, IsReachable, vecTarget, pTarget)) { From cc0f14283510cd54d7e6c98f3a8aed916d078dee Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 19 Mar 2024 08:31:51 +0100 Subject: [PATCH 178/231] fix cursor pos native --- api/entity-selection/api_entity_selection.sma | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api/entity-selection/api_entity_selection.sma b/api/entity-selection/api_entity_selection.sma index 609c6bf..a33d2aa 100644 --- a/api/entity-selection/api_entity_selection.sma +++ b/api/entity-selection/api_entity_selection.sma @@ -274,6 +274,8 @@ public Native_GetSelectionCursorPos(iPluginId, iArgc) { return; } + @Selection_CalculateCursorPos(g_rgSelections[iSelection]); + set_array_f(2, g_rgSelections[iSelection][Selection_Cursor], 3); } From ac0524e7e6afcbfd91f11c260188ff0f9e3ece45 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 19 Mar 2024 21:21:31 +0100 Subject: [PATCH 179/231] improve npc logic --- entities/entity_base_npc.sma | 327 ++++++++++++--------- entities/include/entity_base_npc_const.inc | 14 +- 2 files changed, 200 insertions(+), 141 deletions(-) diff --git a/entities/entity_base_npc.sma b/entities/entity_base_npc.sma index b3578c2..c812876 100644 --- a/entities/entity_base_npc.sma +++ b/entities/entity_base_npc.sma @@ -22,6 +22,8 @@ new g_pCvarUseAstar; +new bool:g_bUseAstar; + new g_pTrace; public plugin_precache() { @@ -54,10 +56,10 @@ public plugin_precache() { CE_RegisterVirtualMethod(ENTITY_NAME, IsValidEnemy, "@Entity_IsValidEnemy", CE_MP_Cell); CE_RegisterVirtualMethod(ENTITY_NAME, UpdateEnemy, "@Entity_UpdateEnemy"); CE_RegisterVirtualMethod(ENTITY_NAME, UpdateGoal, "@Entity_UpdateGoal"); - CE_RegisterVirtualMethod(ENTITY_NAME, CanAttack, "@Entity_CanAttack", CE_MP_Cell, CE_MP_Float, CE_MP_FloatArray, 3); - CE_RegisterVirtualMethod(ENTITY_NAME, StartAttack, "@Entity_StartAttack", CE_MP_Float, CE_MP_Float, CE_MP_FloatArray, 3, CE_MP_Float, CE_MP_Cell); - CE_RegisterVirtualMethod(ENTITY_NAME, ReleaseAttack, "@Entity_ReleaseAttack", CE_MP_Float, CE_MP_Float, CE_MP_FloatArray, 3, CE_MP_Float, CE_MP_Cell); - CE_RegisterVirtualMethod(ENTITY_NAME, Hit, "@Entity_Hit", CE_MP_Float, CE_MP_Float, CE_MP_FloatArray, 3, CE_MP_Float, CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, CanAttack, "@Entity_CanAttack", CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, StartAttack, "@Entity_StartAttack"); + CE_RegisterVirtualMethod(ENTITY_NAME, ReleaseAttack, "@Entity_ReleaseAttack"); + CE_RegisterVirtualMethod(ENTITY_NAME, Hit, "@Entity_Hit"); CE_RegisterVirtualMethod(ENTITY_NAME, HandlePath, "@Entity_HandlePath", CE_MP_Cell); CE_RegisterVirtualMethod(ENTITY_NAME, UpdateTarget, "@Entity_UpdateTarget"); CE_RegisterVirtualMethod(ENTITY_NAME, Dying, "@Entity_Dying"); @@ -74,6 +76,7 @@ public plugin_precache() { CE_RegisterVirtualMethod(ENTITY_NAME, StopMovement, "@Entity_StopMovement"); CE_RegisterVirtualMethod(ENTITY_NAME, MovementThink, "@Entity_MovementThink"); CE_RegisterVirtualMethod(ENTITY_NAME, IsInViewCone, "@Entity_IsInViewCone", CE_MP_FloatArray, 3); + CE_RegisterVirtualMethod(ENTITY_NAME, Pain, "@Entity_Pain"); } public plugin_init() { @@ -82,6 +85,8 @@ public plugin_init() { RegisterHam(Ham_TakeDamage, CE_BASE_CLASSNAME, "HamHook_Base_TakeDamage_Post", .Post = 1); g_pCvarUseAstar = register_cvar("npc_use_astar", "1"); + + bind_pcvar_num(g_pCvarUseAstar, g_bUseAstar); } public plugin_end() { @@ -95,16 +100,20 @@ public plugin_end() { CE_SetMemberVec(this, CE_MEMBER_MAXS, Float:{12.0, 12.0, 32.0}); CE_SetMember(this, m_flAIThinkRate, 0.1); CE_SetMember(this, m_irgPath, ArrayCreate(3)); - CE_SetMember(this, m_flAttackRange, 0.0); - CE_SetMember(this, m_flAttackRate, 0.0); + CE_SetMember(this, m_flAttackRange, 18.0); + CE_SetMember(this, m_flHitRange, 24.0); + CE_SetMember(this, m_flAttackRate, 1.0); + CE_SetMember(this, m_flAttackDuration, 1.0); + CE_SetMember(this, m_flHitDelay, 0.0); CE_SetMember(this, m_iRevengeChance, 10); CE_SetMember(this, m_flStepHeight, 18.0); - CE_SetMember(this, m_flAttackDelay, 0.0); CE_SetMember(this, m_flDamage, 0.0); CE_SetMember(this, m_flPathSearchDelay, 5.0); CE_SetMember(this, m_flDieDuration, 0.1); + CE_SetMember(this, m_flPainRate, 0.25); CE_SetMember(this, m_pBuildPathTask, Invalid_NavBuildPathTask); - CE_SetMemberVec(this, m_vecHitOffset, Float:{0.0, 0.0, 0.0}); + CE_SetMemberVec(this, m_vecHitAngle, Float:{0.0, 0.0, 0.0}); + CE_SetMemberVec(this, m_vecWeaponOffset, Float:{0.0, 0.0, 0.0}); } @Entity_Restart(this) { @@ -114,14 +123,16 @@ public plugin_end() { @Entity_Spawned(this) { static Float:flGameTime; flGameTime = get_gametime(); - CE_SetMember(this, m_flNextAttack, 0.0); - CE_SetMember(this, m_flReleaseAttack, 0.0); + CE_SetMember(this, m_flNextAttack, flGameTime); CE_SetMember(this, m_flNextAIThink, flGameTime); CE_SetMember(this, m_flLastAIThink, flGameTime); CE_SetMember(this, m_flNextAction, flGameTime); CE_SetMember(this, m_flNextPathSearch, flGameTime); + CE_SetMember(this, m_flNextPain, flGameTime); CE_SetMember(this, m_flNextGoalUpdate, flGameTime); CE_SetMember(this, m_flTargetArrivalTime, 0.0); + CE_SetMember(this, m_flReleaseAttack, 0.0); + CE_SetMember(this, m_flReleaseHit, 0.0); CE_DeleteMember(this, m_vecGoal); CE_DeleteMember(this, m_vecInput); CE_DeleteMember(this, m_vecTarget); @@ -183,20 +194,6 @@ public plugin_end() { ArrayDestroy(irgPath); } -@Entity_TakeDamage(this, pInflictor, pAttacker, Float:flDamage, iDamageBits) { - if (IS_PLAYER(pAttacker) && CE_CallMethod(this, IsEnemy, pAttacker)) { - static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); - static Float:vecTarget[3]; pev(pAttacker, pev_origin, vecTarget); - static Float:flAttackRange; flAttackRange = CE_GetMember(this, m_flAttackRange); - - if (get_distance_f(vecOrigin, vecTarget) <= flAttackRange && CE_CallMethod(this, IsVisible, vecTarget, 0)) { - if (random(100) < CE_GetMember(this, m_iRevengeChance)) { - set_pev(this, pev_enemy, pAttacker); - } - } - } -} - @Entity_Think(this) { static Float:flGameTime; flGameTime = get_gametime(); static iDeadFlag; iDeadFlag = pev(this, pev_deadflag); @@ -252,7 +249,6 @@ public plugin_end() { if (!CE_HasMember(this, m_vecInput)) return; static Float:vecInput[3]; CE_GetMemberVec(this, m_vecInput, vecInput); - if (!xs_vec_len(vecInput)) return; static Float:flSpeed; pev(this, pev_maxspeed, flSpeed); static bool:bIsFlying; bIsFlying = @Entity_IsFlying(this); @@ -265,40 +261,71 @@ public plugin_end() { static Float:vecAngles[3]; vector_to_angle(vecInput, vecAngles); if (!bIsFlying) { - engfunc(EngFunc_WalkMove, this, vecAngles[1], 0.5, WALKMOVE_NORMAL); + engfunc(EngFunc_WalkMove, this, vecAngles[1], 0.01, WALKMOVE_NORMAL); } set_pev(this, pev_speed, flSpeed); set_pev(this, pev_velocity, vecVelocity); + + if (!xs_vec_len(vecInput)) { + CE_DeleteMember(this, m_vecInput); + } } @Entity_AttackThink(this) { static Float:flGameTime; flGameTime = get_gametime(); - static Float:flAttackRange; flAttackRange = CE_GetMember(this, m_flAttackRange); - static Float:flAttackDelay; flAttackDelay = CE_GetMember(this, m_flAttackDelay); - static Float:vecHitOffset[3]; CE_GetMemberVec(this, m_vecHitOffset, vecHitOffset); - static Float:flDamage; flDamage = CE_GetMember(this, m_flDamage); static pEnemy; pEnemy = CE_CallMethod(this, GetEnemy); static Float:flReleaseAttack; flReleaseAttack = CE_GetMember(this, m_flReleaseAttack); if (!flReleaseAttack) { static Float:flNextAttack; flNextAttack = CE_GetMember(this, m_flNextAttack); if (flNextAttack <= flGameTime) { - if (pEnemy && CE_CallMethod(this, CanAttack, pEnemy, flAttackRange, vecHitOffset)) { - CE_CallMethod(this, StartAttack, flDamage, flAttackRange, vecHitOffset, flAttackDelay, pEnemy); + if (pEnemy && CE_CallMethod(this, CanAttack, pEnemy)) { + CE_CallMethod(this, StartAttack); } } } else if (flReleaseAttack <= flGameTime) { - CE_CallMethod(this, ReleaseAttack, flDamage, flAttackRange, vecHitOffset, flAttackDelay, pEnemy); + CE_CallMethod(this, ReleaseAttack); + } + + static Float:flReleaseHit; flReleaseHit = CE_GetMember(this, m_flReleaseHit); + if (flReleaseHit && flReleaseHit <= flGameTime) { + CE_CallMethod(this, Hit); + CE_SetMember(this, m_flReleaseHit, 0.0); } } -@Entity_CanAttack(this, pEnemy, Float:flAttackRange, const Float:vecOffset[3]) { - static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); +@Entity_TakeDamage(this, pInflictor, pAttacker, Float:flDamage, iDamageBits) { + static Float:flGameTime; flGameTime = get_gametime(); - static Float:vecTarget[3]; - pev(pEnemy, pev_origin, vecTarget); - xs_vec_add(vecTarget, vecOffset, vecTarget); + if (IS_PLAYER(pAttacker) && CE_CallMethod(this, IsEnemy, pAttacker)) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecTarget[3]; pev(pAttacker, pev_origin, vecTarget); + static Float:flAttackRange; flAttackRange = CE_GetMember(this, m_flAttackRange); + + if (get_distance_f(vecOrigin, vecTarget) <= flAttackRange && CE_CallMethod(this, IsVisible, vecTarget, 0)) { + if (random(100) < CE_GetMember(this, m_iRevengeChance)) { + set_pev(this, pev_enemy, pAttacker); + } + } + } + + static Float:flNextPain; flNextPain = CE_GetMember(this, m_flNextPain); + + if (flNextPain <= flGameTime) { + CE_CallMethod(this, Pain); + + static Float:flPainRate; flPainRate = CE_GetMember(this, m_flPainRate); + CE_SetMember(this, m_flNextPain, flGameTime + flPainRate); + } +} + +@Entity_Pain(this) {} + +@Entity_CanAttack(this, pEnemy) { + static Float:flAttackRange; flAttackRange = CE_GetMember(this, m_flAttackRange); + static Float:vecOrigin[3]; @Entity_GetWeaponOrigin(this, vecOrigin); + static Float:vecTarget[3]; pev(pEnemy, pev_origin, vecTarget); if (get_distance_f(vecOrigin, vecTarget) > flAttackRange) return false; @@ -318,67 +345,74 @@ public plugin_end() { return false; } -@Entity_StartAttack(this, Float:flDamage, Float:flAttackRange, Float:vecHitOffset[3], Float:flAttackDelay, pEnemy) { - CE_SetMember(this, m_flReleaseAttack, get_gametime() + flAttackDelay); +@Entity_StartAttack(this) { + static Float:flGameTime; flGameTime = get_gametime(); + static Float:flAttackRange; flAttackRange = CE_GetMember(this, m_flAttackRange); + static Float:flAttackDelay; flAttackDelay = CE_GetMember(this, m_flAttackDuration); + static Float:flAttackRate; flAttackRate = CE_GetMember(this, m_flAttackRate); + static Float:flHitDelay; flHitDelay = CE_GetMember(this, m_flHitDelay); + static pEnemy; pEnemy = CE_CallMethod(this, GetEnemy); - static Float:vecTargetVelocity[3]; pev(pEnemy, pev_velocity, vecTargetVelocity); - if (xs_vec_len(vecTargetVelocity) < flAttackRange) { - CE_CallMethod(this, StopMovement); - } -} + if (pEnemy) { + static Float:vecTargetVelocity[3]; pev(pEnemy, pev_velocity, vecTargetVelocity); -@Entity_ReleaseAttack(this, Float:flDamage, Float:flAttackRange, Float:vecHitOffset[3], Float:flAttackDelay, pEnemy) { - CE_CallMethod(this, Hit, flDamage, flAttackRange, vecHitOffset, flAttackDelay, pEnemy); + if (xs_vec_len(vecTargetVelocity) < flAttackRange) { + CE_CallMethod(this, StopMovement); + } + } - static Float:flAttackRate; flAttackRate = CE_GetMember(this, m_flAttackRate); + CE_SetMember(this, m_flReleaseHit, flGameTime + flHitDelay); + CE_SetMember(this, m_flReleaseAttack, flGameTime + flAttackDelay); + CE_SetMember(this, m_flNextAttack, flGameTime + flAttackDelay + flAttackRate); +} +@Entity_ReleaseAttack(this) { CE_SetMember(this, m_flReleaseAttack, 0.0); - CE_SetMember(this, m_flNextAttack, get_gametime() + flAttackRate); } -@Entity_Hit(this, Float:flDamage, Float:flAttackRange, const Float:vecHitOffset[3], Float:flAttackDelay, pEnemy) { - static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); - static Float:vecDirection[3]; @Entity_GetDirectionVector(this, vecDirection); +@Entity_Hit(this) { + static Float:flDamage; flDamage = CE_GetMember(this, m_flDamage); + static Float:flHitRange; flHitRange = CE_GetMember(this, m_flHitRange); + static Float:vecHitAngle[3]; CE_GetMemberVec(this, m_vecHitAngle, vecHitAngle); - static Float:vecTarget[3]; - xs_vec_mul_scalar(vecDirection, flAttackRange, vecTarget); - xs_vec_add(vecTarget, vecOrigin, vecTarget); - xs_vec_add(vecTarget, vecHitOffset, vecTarget); + static Float:vecAngles[3]; + pev(this, pev_angles, vecAngles); + xs_vec_add(vecAngles, vecHitAngle, vecAngles); + vecAngles[0] = -vecAngles[0]; + + static Float:vecDirection[3]; angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecDirection); + static Float:vecOrigin[3]; @Entity_GetWeaponOrigin(this, vecOrigin); + static Float:vecTarget[3]; xs_vec_add_scaled(vecOrigin, vecDirection, flHitRange, vecTarget); + + xs_vec_sub(vecTarget, vecOrigin, vecDirection); + xs_vec_normalize(vecDirection, vecDirection); engfunc(EngFunc_TraceLine, vecOrigin, vecTarget, DONT_IGNORE_MONSTERS, this, g_pTrace); static pTarget; pTarget = get_tr2(g_pTrace, TR_pHit); + if (pTarget == -1) { engfunc(EngFunc_TraceHull, vecOrigin, vecTarget, DONT_IGNORE_MONSTERS, HULL_HEAD, this, g_pTrace); pTarget = get_tr2(g_pTrace, TR_pHit); } - static bool:bHit; bHit = pTarget != -1; - - if (bHit) { + if (pTarget != -1) { get_tr2(g_pTrace, TR_vecEndPos, vecTarget); - xs_vec_sub(vecOrigin, vecTarget, vecDirection); + xs_vec_sub(vecTarget, vecOrigin, vecDirection); xs_vec_normalize(vecDirection, vecDirection); rg_multidmg_clear(); ExecuteHamB(Ham_TraceAttack, pTarget, this, flDamage, vecDirection, g_pTrace, DMG_GENERIC); rg_multidmg_apply(this, this); - - bHit = IS_PLAYER(pTarget) || IS_MONSTER(pTarget); } - return bHit; + return pTarget; } @Entity_GetDirectionVector(this, Float:vecOut[3]) { static Float:vecAngles[3]; - - if (IS_PLAYER(this)) { - pev(this, pev_v_angle, vecAngles); - } else { - pev(this, pev_angles, vecAngles); - vecAngles[0] = -vecAngles[0]; - } + pev(this, pev_angles, vecAngles); + vecAngles[0] = -vecAngles[0]; angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecOut); xs_vec_normalize(vecOut, vecOut); @@ -400,9 +434,7 @@ public plugin_end() { @Entity_TurnTo(this, vecTarget, rgbLockAxis, flMaxAngle); if (CE_CallMethod(this, IsInViewCone, vecTarget)) { - static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); - - if (flMaxSpeed > 0.0 && get_distance_f(vecOrigin, vecTarget) > 1.0) { + if (flMaxSpeed > 0.0) { CE_CallMethod(this, MoveForward); } } @@ -445,25 +477,51 @@ public plugin_end() { } @Entity_UpdateTarget(this) { - CE_CallMethod(this, ProcessTarget); CE_CallMethod(this, ProcessPath); CE_CallMethod(this, ProcessGoal); + CE_CallMethod(this, ProcessTarget); } @Entity_ProcessTarget(this) { if (!CE_HasMember(this, m_vecTarget)) return; - static Float:flGameTime; flGameTime = get_gametime(); - static Float:flArrivalTime; flArrivalTime = CE_GetMember(this, m_flTargetArrivalTime); - static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); - static Float:vecTarget[3]; CE_GetMemberVec(this, m_vecTarget, vecTarget); + // static Float:flGameTime; flGameTime = get_gametime(); + // static Float:flArrivalTime; flArrivalTime = CE_GetMember(this, m_flTargetArrivalTime); - new bool:bHasReached = xs_vec_distance_2d(vecOrigin, vecTarget) < 10.0; - if (bHasReached || flGameTime > flArrivalTime) { + if (@Entity_IsTargetReached(this)) { CE_DeleteMember(this, m_vecTarget); } } +@Entity_IsTargetReached(this) { + if (!CE_HasMember(this, m_vecTarget)) return true; + + static Float:vecTarget[3]; CE_GetMemberVec(this, m_vecTarget, vecTarget); + if (!CE_CallMethod(this, IsInViewCone, vecTarget)) return false; + + static Float:vecAbsMin[3]; pev(this, pev_absmin, vecAbsMin); + static Float:vecAbsMax[3]; pev(this, pev_absmax, vecAbsMax); + + if (vecTarget[2] < vecAbsMin[2]) return false; + if (vecTarget[2] > vecAbsMax[2]) return false; + + static Float:flMaxDistance; flMaxDistance = 0.0; + + static pEnemy; pEnemy = CE_CallMethod(this, GetEnemy); + static Array:irgPath; irgPath = CE_GetMember(this, m_irgPath); + if (pEnemy && !ArraySize(irgPath)) { + flMaxDistance = CE_GetMember(this, m_flAttackRange); + } else { + flMaxDistance = floatmin(vecAbsMax[0] - vecAbsMin[0], vecAbsMax[0] - vecAbsMin[0]) / 2; + } + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + if (xs_vec_distance_2d(vecOrigin, vecTarget) > flMaxDistance) return false; + + return true; +} + @Entity_ProcessGoal(this) { static Float:flGameTime; flGameTime = get_gametime(); @@ -471,7 +529,7 @@ public plugin_end() { static Float:vecGoal[3]; CE_GetMemberVec(this, m_vecGoal, vecGoal); if (!CE_CallMethod(this, IsReachable, vecGoal, pev(this, pev_enemy), 32.0)) { - if (get_pcvar_bool(g_pCvarUseAstar)) { + if (g_bUseAstar) { if (Float:CE_GetMember(this, m_flNextPathSearch) <= flGameTime) { CE_CallMethod(this, FindPath, vecGoal); CE_SetMember(this, m_flNextPathSearch, flGameTime + Float:CE_GetMember(this, m_flPathSearchDelay)); @@ -539,12 +597,14 @@ bool:@Entity_ProcessPath(this) { new Array:irgPath = CE_GetMember(this, m_irgPath); if (!ArraySize(irgPath)) return false; + static Float:flStepHeight; flStepHeight = CE_GetMember(this, m_flStepHeight); static Float:vecMins[3]; pev(this, pev_mins, vecMins); static Float:vecTarget[3]; ArrayGetArray(irgPath, 0, vecTarget); ArrayDeleteItem(irgPath, 0); - vecTarget[2] -= vecMins[2]; + + vecTarget[2] += -vecMins[2] + flStepHeight; CE_CallMethod(this, SetTarget, vecTarget); @@ -734,24 +794,20 @@ bool:@Entity_IsReachable(this, const Float:vecTarget[3], pIgnoreEnt, Float:flSte static iStepsNum; iStepsNum = floatround(flDistance / flStepLength); if (iStepsNum) { - //Get direction vector - static Float:vecStep[3]; xs_vec_sub(vecTargetFixed, vecOrigin, vecStep); - - bIsReachable = @Entity_TestStep(this, vecOrigin, vecStep, vecStepOrigin); - - if (bIsReachable) { - xs_vec_normalize(vecStep, vecStep); - xs_vec_mul_scalar(vecStep, flStepLength, vecStep); - - xs_vec_copy(vecOrigin, vecStepOrigin); - - for (new iStep = 0; iStep < iStepsNum; ++iStep) { - if (!@Entity_TestStep(this, vecStepOrigin, vecStep, vecStepOrigin)) { - bIsReachable = false; - break; - } - } - } + // Get direction vector + static Float:vecStep[3]; + xs_vec_sub(vecTargetFixed, vecOrigin, vecStep); + xs_vec_normalize(vecStep, vecStep); + xs_vec_mul_scalar(vecStep, flStepLength, vecStep); + + xs_vec_copy(vecOrigin, vecStepOrigin); + + static iStep; iStep = 0; + + do { + bIsReachable = @Entity_TestStep(this, vecStepOrigin, vecStep, vecStepOrigin); + iStep++; + } while (bIsReachable && iStep < iStepsNum); } } @@ -770,40 +826,22 @@ bool:@Entity_IsReachable(this, const Float:vecTarget[3], pIgnoreEnt, Float:flSte bool:@Entity_TestStep(this, const Float:vecOrigin[3], const Float:vecStep[3], Float:vecStepOrigin[3]) { static Float:vecMins[3]; pev(this, pev_mins, vecMins); static Float:flStepHeight; flStepHeight = CE_GetMember(this, m_flStepHeight); - - static Float:vecCurrentStepOrigin[3]; - xs_vec_copy(vecStepOrigin, vecCurrentStepOrigin); - xs_vec_add(vecOrigin, vecStep, vecCurrentStepOrigin); - // check wall - static Float:vecStepStart[3]; - xs_vec_copy(vecOrigin, vecStepStart); - vecStepStart[2] += vecMins[2] + flStepHeight; - - static Float:vecStepEnd[3]; - xs_vec_copy(vecCurrentStepOrigin, vecStepEnd); - vecStepEnd[2] += vecMins[2] + flStepHeight; + // Check wall + static Float:vecStepStart[3]; xs_vec_set(vecStepStart, vecOrigin[0], vecOrigin[1], vecOrigin[2] + vecMins[2] + flStepHeight); + static Float:vecStepEnd[3]; xs_vec_add(vecStepStart, vecStep, vecStepEnd); if (!IsOpen(vecStepStart, vecStepEnd, this)) return false; - vecCurrentStepOrigin[2] += flStepHeight; // add height to the step + static Float:vecNextOrigin[3]; xs_vec_set(vecNextOrigin, vecStepEnd[0], vecStepEnd[1], vecStepEnd[2] - vecMins[2]); - new Float:flDistanceToFloor = GetDistanceToFloor(this, vecCurrentStepOrigin); - if (flDistanceToFloor < 0.0) { // check if falling or solid - static Float:vecEnd[3]; - xs_vec_copy(vecCurrentStepOrigin, vecEnd); - vecEnd[2] -= -vecMins[2] + flStepHeight; - return false; - } + // Check if falling or solid + new Float:flDistanceToFloor = GetDistanceToFloor(this, vecNextOrigin); + if (flDistanceToFloor < 0.0) return false; - if (flDistanceToFloor >= flStepHeight) { // subtract step height if not needed - flDistanceToFloor -= flStepHeight; - vecCurrentStepOrigin[2] -= flStepHeight; - } - - vecCurrentStepOrigin[2] -= flDistanceToFloor; // apply possible height change + vecNextOrigin[2] -= flDistanceToFloor; // apply possible height change - xs_vec_copy(vecCurrentStepOrigin, vecStepOrigin); // copy result + xs_vec_copy(vecNextOrigin, vecStepOrigin); // copy result return true; } @@ -820,7 +858,16 @@ bool:@Entity_TestStep(this, const Float:vecOrigin[3], const Float:vecStep[3], Fl } @Entity_StopMovement(this) { - CE_DeleteMember(this, m_vecInput); + if (CE_HasMember(this, m_vecInput)) { + CE_SetMemberVec(this, m_vecInput, Float:{0.0, 0.0, 0.0}); + } +} + +@Entity_GetWeaponOrigin(this, Float:vecOut[3]) { + static Float:vecWeaponOffset[3]; CE_GetMemberVec(this, m_vecWeaponOffset, vecWeaponOffset); + + pev(this, pev_origin, vecOut); + xs_vec_add(vecOut, vecWeaponOffset, vecOut); } bool:@Entity_IsFlying(this) { @@ -838,7 +885,7 @@ bool:@Entity_IsInViewCone(this, const Float:vecTarget[3]) { xs_vec_normalize(vecDirection, vecDirection); static Float:vecForward[3]; - pev(this, pev_v_angle, vecForward); + pev(this, pev_angles, vecForward); angle_vector(vecForward, ANGLEVECTOR_FORWARD, vecForward); static Float:flAngle; flAngle = xs_rad2deg(xs_acos((vecDirection[0] * vecForward[0]) + (vecDirection[1] * vecForward[1]), radian)); @@ -859,17 +906,23 @@ Float:@Entity_GetPathCost(this, NavArea:nextArea, NavArea:prevArea) { // if (iTraverseType == GO_LADDER_DOWN) return -1.0; } - static Float:vecTarget[3]; Nav_Area_GetCenter(nextArea, vecTarget); - static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:flStepHeight; flStepHeight = CE_GetMember(this, m_flStepHeight); + + static Float:vecOrigin[3]; - static Float:vecSrc[3]; if (prevArea != Invalid_NavArea) { - Nav_Area_GetCenter(prevArea, vecSrc); + Nav_Area_GetCenter(prevArea, vecOrigin); } else { - xs_vec_copy(vecOrigin, vecSrc); + pev(this, pev_origin, vecOrigin); } + + vecOrigin[2] += flStepHeight; + + static Float:vecTarget[3]; + Nav_Area_GetCenter(nextArea, vecTarget); + vecTarget[2] = Nav_Area_GetZ(nextArea) + flStepHeight; - engfunc(EngFunc_TraceLine, vecSrc, vecTarget, IGNORE_MONSTERS, 0, g_pTrace); + engfunc(EngFunc_TraceLine, vecOrigin, vecTarget, IGNORE_MONSTERS, 0, g_pTrace); static pHit; pHit = get_tr2(g_pTrace, TR_pHit); @@ -932,9 +985,7 @@ bool:IsOpen(const Float:vecSrc[3], const Float:vecEnd[3], pIgnoreEnt = 0, iIgnor } Float:GetDistanceToFloor(pEntity, const Float:vecOrigin[3]) { - static Float:vecTarget[3]; - xs_vec_copy(vecOrigin, vecTarget); - vecTarget[2] = -8192.0; + static Float:vecTarget[3]; xs_vec_set(vecTarget, vecOrigin[0], vecOrigin[1], -8192.0); engfunc(EngFunc_TraceMonsterHull, pEntity, vecOrigin, vecTarget, IGNORE_MONSTERS, pEntity, g_pTrace); diff --git a/entities/include/entity_base_npc_const.inc b/entities/include/entity_base_npc_const.inc index 8c7ae94..ff365a0 100644 --- a/entities/include/entity_base_npc_const.inc +++ b/entities/include/entity_base_npc_const.inc @@ -17,12 +17,17 @@ #define m_flNextAttack "flNextAttack" #define m_flNextPathSearch "flNextPathSearch" #define m_pKiller "pKiller" +#define m_flMinTargetDistance "flMinTargetDistance" #define m_flAttackRate "flAttackRate" #define m_flAttackRange "flAttackRange" -#define m_flAttackDelay "flAttackDelay" +#define m_flHitRange "flHitRange" +#define m_flAttackDuration "flAttackDuration" +#define m_flHitDelay "flHitDelay" +#define m_flReleaseHit "flReleaseHit" #define m_flViewRange "flViewRange" #define m_flFindRange "flFindRange" -#define m_vecHitOffset "vecHitOffset" +#define m_vecWeaponOffset "vecWeaponOffset" +#define m_vecHitAngle "vecHitAngle" #define m_flDieDuration "flDieDuration" #define m_flNextGoalUpdate "flNextGoalUpdate" #define m_flNextEnemyUpdate "flNextEnemyUpdate" @@ -32,6 +37,8 @@ #define m_vecInput "vecInput" #define m_flLastAIThink "flLastAIThink" #define m_flAIThinkRate "flAIThinkRate" +#define m_flPainRate "flPainRate" +#define m_flNextPain "flNextPain" #define EmitVoice "EmitVoice" #define ResetPath "ResetPath" @@ -66,4 +73,5 @@ #define StopMovement "StopMovement" #define IsInViewCone "IsInViewCone" #define Dying "Dying" -#define MovementThink "MovementThink" \ No newline at end of file +#define MovementThink "MovementThink" +#define Pain "Pain" From c97cd77f519539398b69c07cd09eb140b6d9653a Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 19 Mar 2024 23:14:28 +0100 Subject: [PATCH 180/231] improve attack logic --- entities/entity_base_npc.sma | 44 ++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/entities/entity_base_npc.sma b/entities/entity_base_npc.sma index c812876..d322a70 100644 --- a/entities/entity_base_npc.sma +++ b/entities/entity_base_npc.sma @@ -278,11 +278,8 @@ public plugin_end() { static Float:flReleaseAttack; flReleaseAttack = CE_GetMember(this, m_flReleaseAttack); if (!flReleaseAttack) { - static Float:flNextAttack; flNextAttack = CE_GetMember(this, m_flNextAttack); - if (flNextAttack <= flGameTime) { - if (pEnemy && CE_CallMethod(this, CanAttack, pEnemy)) { - CE_CallMethod(this, StartAttack); - } + if (pEnemy && CE_CallMethod(this, CanAttack, pEnemy)) { + CE_CallMethod(this, StartAttack); } } else if (flReleaseAttack <= flGameTime) { CE_CallMethod(this, ReleaseAttack); @@ -323,11 +320,17 @@ public plugin_end() { @Entity_Pain(this) {} @Entity_CanAttack(this, pEnemy) { + static Float:flGameTime; flGameTime = get_gametime(); + static Float:flNextAttack; flNextAttack = CE_GetMember(this, m_flNextAttack); + if (flNextAttack > flGameTime) return false; + + if (!UTIL_CheckEntitiesLevel(this, pEnemy)) return false; + static Float:flAttackRange; flAttackRange = CE_GetMember(this, m_flAttackRange); - static Float:vecOrigin[3]; @Entity_GetWeaponOrigin(this, vecOrigin); static Float:vecTarget[3]; pev(pEnemy, pev_origin, vecTarget); - if (get_distance_f(vecOrigin, vecTarget) > flAttackRange) return false; + static Float:vecOrigin[3]; @Entity_GetWeaponOrigin(this, vecOrigin); + if (xs_vec_distance_2d(vecOrigin, vecTarget) > flAttackRange) return false; // if (!@Entity_IsInViewCone(this, vecTarget, 60.0)) return false; @@ -336,19 +339,18 @@ public plugin_end() { static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); if (flFraction != 1.0) { - if (get_tr2(g_pTrace, TR_pHit) == pEnemy) { - get_tr2(g_pTrace, TR_vecEndPos, vecTarget); - return get_distance_f(vecOrigin, vecTarget) <= flAttackRange; - } + static pHit; pHit = get_tr2(g_pTrace, TR_pHit); + + if (pHit != pEnemy) return false; } - return false; + return true; } @Entity_StartAttack(this) { static Float:flGameTime; flGameTime = get_gametime(); static Float:flAttackRange; flAttackRange = CE_GetMember(this, m_flAttackRange); - static Float:flAttackDelay; flAttackDelay = CE_GetMember(this, m_flAttackDuration); + static Float:flAttackDuration; flAttackDuration = CE_GetMember(this, m_flAttackDuration); static Float:flAttackRate; flAttackRate = CE_GetMember(this, m_flAttackRate); static Float:flHitDelay; flHitDelay = CE_GetMember(this, m_flHitDelay); static pEnemy; pEnemy = CE_CallMethod(this, GetEnemy); @@ -362,8 +364,8 @@ public plugin_end() { } CE_SetMember(this, m_flReleaseHit, flGameTime + flHitDelay); - CE_SetMember(this, m_flReleaseAttack, flGameTime + flAttackDelay); - CE_SetMember(this, m_flNextAttack, flGameTime + flAttackDelay + flAttackRate); + CE_SetMember(this, m_flReleaseAttack, flGameTime + flAttackDuration); + CE_SetMember(this, m_flNextAttack, flGameTime + flAttackDuration + flAttackRate); } @Entity_ReleaseAttack(this) { @@ -1067,3 +1069,15 @@ stock Float:UTIL_ApproachAngle(Float:flTarget, Float:flValue, Float:flSpeed) { stock Float:UTIL_AngleMod(Float:flAngle) { return (360.0/65536) * (floatround(flAngle * (65536.0/360.0), floatround_floor) & 65535); } + +stock bool:UTIL_CheckEntitiesLevel(pEntity, pOther) { + static Float:vecAbsMin[3]; pev(pEntity, pev_absmin, vecAbsMin); + static Float:vecAbsMax[3]; pev(pEntity, pev_absmax, vecAbsMax); + static Float:vecOtherAbsMin[3]; pev(pOther, pev_absmin, vecOtherAbsMin); + static Float:vecOtherAbsMax[3]; pev(pOther, pev_absmax, vecOtherAbsMax); + + if (vecAbsMax[2] < vecOtherAbsMin[2]) return false; + if (vecAbsMin[2] > vecOtherAbsMax[2]) return false; + + return true; +} \ No newline at end of file From d191d442864d9fabf9f89fbca6e080c72b17cb98 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 20 Mar 2024 05:34:19 +0100 Subject: [PATCH 181/231] fix movement --- entities/entity_base_npc.sma | 48 ++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/entities/entity_base_npc.sma b/entities/entity_base_npc.sma index d322a70..dd4d544 100644 --- a/entities/entity_base_npc.sma +++ b/entities/entity_base_npc.sma @@ -238,7 +238,7 @@ public plugin_end() { if (CE_HasMember(this, m_vecTarget)) { static Float:vecTarget[3]; CE_GetMemberVec(this, m_vecTarget, vecTarget); CE_CallMethod(this, MoveTo, vecTarget); - } else { + } else if (CE_HasMember(this, m_vecInput)) { CE_CallMethod(this, StopMovement); } @@ -274,8 +274,11 @@ public plugin_end() { @Entity_AttackThink(this) { static Float:flGameTime; flGameTime = get_gametime(); + static pEnemy; pEnemy = CE_CallMethod(this, GetEnemy); + static Float:vecTarget[3]; pev(pEnemy, pev_origin, vecTarget); + if (CE_CallMethod(this, IsInViewCone, vecTarget)) { static Float:flReleaseAttack; flReleaseAttack = CE_GetMember(this, m_flReleaseAttack); if (!flReleaseAttack) { if (pEnemy && CE_CallMethod(this, CanAttack, pEnemy)) { @@ -290,6 +293,9 @@ public plugin_end() { CE_CallMethod(this, Hit); CE_SetMember(this, m_flReleaseHit, 0.0); } + } + + @Entity_TurnTo(this, vecTarget); } @Entity_TakeDamage(this, pInflictor, pAttacker, Float:flDamage, iDamageBits) { @@ -421,21 +427,11 @@ public plugin_end() { } @Entity_MoveTo(this, const Float:vecTarget[3]) { - static Float:flGameTime; flGameTime = get_gametime(); - static Float:flLastAIThink; flLastAIThink = CE_GetMember(this, m_flLastAIThink); - static Float:flDelta; flDelta = floatmin(flGameTime - flLastAIThink, 1.0); - static Float:flMaxSpeed; pev(this, pev_maxspeed, flMaxSpeed); - static Float:flMaxAngle; flMaxAngle = 180.0 * flDelta; - static bool:rgbLockAxis[3]; rgbLockAxis = bool:{true, false, true}; - - static iMoveType; iMoveType = pev(this, pev_movetype); - if (iMoveType == MOVETYPE_FLY || iMoveType == MOVETYPE_NOCLIP) { - rgbLockAxis[0] = false; - } - - @Entity_TurnTo(this, vecTarget, rgbLockAxis, flMaxAngle); + @Entity_TurnTo(this, vecTarget); if (CE_CallMethod(this, IsInViewCone, vecTarget)) { + static Float:flMaxSpeed; pev(this, pev_maxspeed, flMaxSpeed); + if (flMaxSpeed > 0.0) { CE_CallMethod(this, MoveForward); } @@ -499,7 +495,6 @@ public plugin_end() { if (!CE_HasMember(this, m_vecTarget)) return true; static Float:vecTarget[3]; CE_GetMemberVec(this, m_vecTarget, vecTarget); - if (!CE_CallMethod(this, IsInViewCone, vecTarget)) return false; static Float:vecAbsMin[3]; pev(this, pev_absmin, vecAbsMin); static Float:vecAbsMax[3]; pev(this, pev_absmax, vecAbsMax); @@ -945,7 +940,18 @@ Float:@Entity_GetPathCost(this, NavArea:nextArea, NavArea:prevArea) { return 1.0; } -@Entity_TurnTo(this, const Float:vecTarget[3], const bool:rgbLockAxis[3], const Float:flSpeed) { +@Entity_TurnTo(this, const Float:vecTarget[3]) { + static Float:flGameTime; flGameTime = get_gametime(); + static Float:flLastAIThink; flLastAIThink = CE_GetMember(this, m_flLastAIThink); + static Float:flDelta; flDelta = floatmin(flGameTime - flLastAIThink, 1.0); + static Float:flSpeed; flSpeed = 180.0 * flDelta; + static bool:rgbLockAxis[3]; rgbLockAxis = bool:{true, false, true}; + + static iMoveType; iMoveType = pev(this, pev_movetype); + if (iMoveType == MOVETYPE_FLY || iMoveType == MOVETYPE_NOCLIP) { + rgbLockAxis[0] = false; + } + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); static Float:vecAngles[3]; pev(this, pev_angles, vecAngles); @@ -1061,9 +1067,15 @@ stock Float:UTIL_ApproachAngle(Float:flTarget, Float:flValue, Float:flSpeed) { flDelta -= 360.0; } - flDelta = floatclamp(flDelta, -flSpeed, flSpeed); + if (flDelta > flSpeed) { + flValue += flSpeed; + } else if (flDelta < -flSpeed) { + flValue -= flSpeed; + } else { + flValue = flTarget; + } - return floatmin(flTarget, UTIL_AngleMod(flValue + flDelta)); + return flValue; } stock Float:UTIL_AngleMod(Float:flAngle) { From 0a578e7bbc98aa0c57ce9610c064246b57f0334c Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 5 Apr 2024 22:32:16 +0200 Subject: [PATCH 182/231] update custom entities api --- api/custom-entities/api_custom_entities.sma | 49 +++++++++++++++---- .../include/api_custom_entities_const.inc | 5 +- 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 1b5b034..d0533f8 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -45,6 +45,8 @@ new g_iEntitiesNum = 0; new ClassInstance:g_pInstance = Invalid_ClassInstance; +new g_iCallPluginId = -1; + public plugin_precache() { g_bIsCStrike = !!cstrike_running(); g_iszBaseClassName = engfunc(EngFunc_AllocString, CE_BASE_CLASSNAME); @@ -109,6 +111,7 @@ public plugin_natives() { register_native("CE_SetMemberString", "Native_SetMemberString"); register_native("CE_CallMethod", "Native_CallMethod"); register_native("CE_CallBaseMethod", "Native_CallBaseMethod"); + register_native("CE_GetCallPluginId", "Native_GetCallPluginId"); } public plugin_end() { @@ -385,6 +388,10 @@ public any:Native_CallMethod(iPluginId, iArgc) { new ClassInstance:pInstance = @Entity_GetClassInstance(pEntity); + new iOldCallPluginId = g_iCallPluginId; + + g_iCallPluginId = iPluginId; + ClassInstanceCallMethodBegin(pInstance, szMethod); ClassInstanceCallMethodPushParamCell(pEntity); @@ -393,13 +400,21 @@ public any:Native_CallMethod(iPluginId, iArgc) { ClassInstanceCallMethodPushNativeParam(iParam); } - return ClassInstanceCallMethodEnd(); + new any:result = ClassInstanceCallMethodEnd(); + + g_iCallPluginId = iOldCallPluginId; + + return result; } public any:Native_CallBaseMethod(iPluginId, iArgc) { new ClassInstance:pInstance = ClassInstanceGetCurrent(); new pEntity = ClassInstanceGetMember(pInstance, CE_MEMBER_POINTER); + new iOldCallPluginId = g_iCallPluginId; + + g_iCallPluginId = iPluginId; + ClassInstanceCallMethodBeginBase(); ClassInstanceCallMethodPushParamCell(pEntity); @@ -408,7 +423,15 @@ public any:Native_CallBaseMethod(iPluginId, iArgc) { ClassInstanceCallMethodPushNativeParam(iParam); } - return ClassInstanceCallMethodEnd(); + new any:result = ClassInstanceCallMethodEnd(); + + g_iCallPluginId = iOldCallPluginId; + + return result; +} + +public Native_GetCallPluginId(iPluginId, iArgc) { + return g_iCallPluginId; } /*--------------------------------[ Commands ]--------------------------------*/ @@ -535,9 +558,9 @@ public HamHook_Base_Touch_Post(pEntity, pToucher) { return HAM_IGNORED; } -public HamHook_Base_Killed(pEntity, pKiller) { +public HamHook_Base_Killed(pEntity, pKiller, iShouldGib) { if (@Entity_IsCustom(pEntity)) { - @Entity_Kill(pEntity, pKiller, false); + @Entity_Kill(pEntity, pKiller, iShouldGib); return HAM_SUPERCEDE; } @@ -641,6 +664,9 @@ bool:@Entity_IsCustom(const &this) { case CEPreset_NPC: { set_pev(this, pev_flags, pev(this, pev_flags) | FL_MONSTER); } + case CEPreset_Item: { + ClassInstanceSetMember(pInstance, CE_MEMBER_PICKED, false); + } } if (ClassInstanceHasMember(pInstance, CE_MEMBER_ORIGIN)) { @@ -779,8 +805,8 @@ bool:@Entity_IsCustom(const &this) { } } -@Entity_Kill(&this, const &pKiller, bool:bPicked) { - if (ExecuteHookFunction(CEFunction_Kill, this, pKiller, bPicked) != PLUGIN_CONTINUE) return; +@Entity_Kill(&this, const &pKiller, iShouldGib) { + if (ExecuteHookFunction(CEFunction_Kill, this, pKiller, iShouldGib) != PLUGIN_CONTINUE) return; static ClassInstance:pInstance; pInstance = @Entity_GetClassInstance(this); @@ -810,7 +836,7 @@ bool:@Entity_IsCustom(const &this) { set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); } - ExecuteHookFunction(CEFunction_Killed, this, pKiller, bPicked); + ExecuteHookFunction(CEFunction_Killed, this, pKiller, iShouldGib); } @Entity_Think(&this) { @@ -883,8 +909,11 @@ bool:@Entity_IsCustom(const &this) { if (~pev(this, pev_flags) & FL_ONGROUND) return; if (ExecuteHookFunction(CEFunction_Pickup, this, pToucher)) { + new ClassInstance:pInstance; pInstance = @Entity_GetClassInstance(this); + + ClassInstanceSetMember(pInstance, CE_MEMBER_PICKED, true); ExecuteHookFunction(CEFunction_Picked, this, pToucher); - @Entity_Kill(this, pToucher, true); + @Entity_Kill(this, pToucher, 0); } } @@ -1193,9 +1222,9 @@ ExecuteHookFunction(CEFunction:iFunction, pEntity, any:...) { } case CEFunction_Kill, CEFunction_Killed: { static pKiller; pKiller = getarg(2); - static bool:bPicked; bPicked = bool:getarg(3); + static iShouldGib; iShouldGib = getarg(3); callfunc_push_int(pKiller); - callfunc_push_int(bPicked); + callfunc_push_int(iShouldGib); } case CEFunction_Pickup, CEFunction_Picked: { static pPlayer; pPlayer = getarg(2); diff --git a/api/custom-entities/include/api_custom_entities_const.inc b/api/custom-entities/include/api_custom_entities_const.inc index c4c92d4..d3cda78 100644 --- a/api/custom-entities/include/api_custom_entities_const.inc +++ b/api/custom-entities/include/api_custom_entities_const.inc @@ -31,8 +31,9 @@ #define CE_MEMBER_LASTINIT "_flLastInit" #define CE_MEMBER_LASTSPAWN "_flLastSpawn" #define CE_MEMBER_PLUGINID "_iPluginId" -#define CE_MEMBER_TARGETNAME "_Targetname" -#define CE_MEMBER_TARGET "_Target" +#define CE_MEMBER_TARGETNAME "_szTargetname" +#define CE_MEMBER_TARGET "_szTarget" +#define CE_MEMBER_PICKED "_bPicked" enum CE { CE_InvalidHandler = -1 From 706ca16b230b8673931d767a8acf1047e58ac666 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 5 Apr 2024 22:33:10 +0200 Subject: [PATCH 183/231] add debug logging --- util/cellclass.inc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/util/cellclass.inc b/util/cellclass.inc index dc8d25a..13833b2 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -962,6 +962,8 @@ stock __cls_ExecuteMethod(const &ClassInstance:pInstance, const &Struct:sMethod, __cls_PushMethodToCallStack(sMethod, pInstance); + __cls_LogExecution(pInstance, sMethod); + if (callfunc_begin_i(StructGetCell(sMethod, __cls_MethodData_FunctionId), StructGetCell(sMethod, __cls_MethodData_PluginId)) == 1) { #if defined _datapack_included if (dpParams != Invalid_DataPack) { @@ -1113,3 +1115,25 @@ stock Class:__cls_GetCallMethodClass(const &ClassInstance:pInstance) { return StructGetCell(Struct:pInstance, __cls_InstanceData_Class); } + +stock __cls_LogExecution(const &ClassInstance:pInstance, const &Struct:sMethod) { + #if defined __cls_DEBUG + static Struct:sClass; sClass = StructGetCell(sMethod, __cls_MethodData_Class); + static szName[32]; ClassGetMetadataString(Class:sClass, "__NAME", szName, charsmax(szName)); + static szMethodName[32]; StructGetString(sMethod, __cls_MethodData_Name, szMethodName, charsmax(szMethodName)); + + if (equal(szName, NULL_STRING)) { + format(szName, charsmax(szName), "CLASS_%d", sClass); + } + + __cls_DebugMessage("[%d] %s::%s(...)", pInstance, szName, szMethodName); + #endif +} + +stock __cls_DebugMessage(const szFormat[], any:...) { + #if defined __cls_DEBUG + static szMessage[MAX_FMT_LENGTH]; + vformat(szMessage, charsmax(szMessage), szFormat, 2); + engfunc(EngFunc_AlertMessage, at_aiconsole, "%s^n", szMessage); + #endif +} From 708487d8c3b85b09881a4e20d6baeae019707763 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 5 Apr 2024 22:35:24 +0200 Subject: [PATCH 184/231] add Nav_Path_FindTask_Await native --- api/navsystem/api_navsystem.sma | 311 +++++++++++------------- api/navsystem/include/api_navsystem.inc | 7 +- 2 files changed, 147 insertions(+), 171 deletions(-) diff --git a/api/navsystem/api_navsystem.sma b/api/navsystem/api_navsystem.sma index 0fe5c5e..23736aa 100644 --- a/api/navsystem/api_navsystem.sma +++ b/api/navsystem/api_navsystem.sma @@ -105,19 +105,21 @@ enum NavArea { Float:NavArea_CostSoFar, // distance travelled so far }; +enum Callback { Callback_PluginId, Callback_FunctionId }; + enum BuildPathTask { Float:BuildPathTask_StartPos[3], Float:BuildPathTask_GoalPos[3], Struct:BuildPathTask_StartArea, Struct:BuildPathTask_GoalArea, Struct:BuildPathTask_ClosestArea, - BuildPathTask_CostFuncId, - BuildPathTask_CostFuncPluginId, - BuildPathTask_CbFuncId, - BuildPathTask_CbFuncPluginId, + BuildPathTask_CostCallback[Callback], + BuildPathTask_FinishCallback[Callback], + bool:BuildPathTask_DestroyOnFinish, BuildPathTask_IgnoreEntity, BuildPathTask_UserToken, Struct:BuildPathTask_Path, + bool:BuildPathTask_IsFinished, bool:BuildPathTask_IsSuccessed, bool:BuildPathTask_IsTerminated }; @@ -155,7 +157,7 @@ enum NavLadder { }; const Float:GenerationStepSize = 25.0; -const Float:StepHeight = 18.0; +// const Float:StepHeight = 18.0; const Float:HalfHumanWidth = 16.0; const Float:HalfHumanHeight = 36.0; const Float:HumanHeight = 72.0; @@ -240,6 +242,7 @@ public plugin_natives() { register_native("Nav_WorldToGridY", "Native_WorldToGridY"); register_native("Nav_FindFirstAreaInDirection", "Native_FindFirstAreaInDirection"); register_native("Nav_IsAreaVisible", "Native_IsAreaVisible"); + register_native("Nav_GetNearestArea", "Native_GetNearestNavArea"); register_native("Nav_Area_GetAttributes", "Native_Area_GetAttributes"); register_native("Nav_Area_GetParentHow", "Native_Area_GetParentHow"); @@ -266,9 +269,11 @@ public plugin_natives() { register_native("Nav_Path_Segment_GetArea", "Native_Path_Segment_GetArea"); register_native("Nav_Path_Find", "Native_Path_Find"); + register_native("Nav_Path_FindTask_Await", "Native_Path_FindTask_Await"); register_native("Nav_Path_FindTask_GetUserToken", "Native_Path_FindTask_GetUserToken"); register_native("Nav_Path_FindTask_Abort", "Native_Path_FindTask_Abort"); register_native("Nav_Path_FindTask_GetPath", "Native_Path_FindTask_GetPath"); + register_native("Nav_Path_FindTask_IsFinished", "Native_Path_FindTask_IsFinished"); register_native("Nav_Path_FindTask_IsSuccessed", "Native_Path_FindTask_IsSuccessed"); register_native("Nav_Path_FindTask_IsTerminated", "Native_Path_FindTask_IsTerminated"); } @@ -352,6 +357,15 @@ public bool:Native_IsAreaVisible(iPluginId, iArgc) { return IsAreaVisible(vecPos, sArea); } +public Struct:Native_GetNearestNavArea(iPluginId, iArgc) { + static Float:vecPos[3]; get_array_f(1, vecPos, sizeof(vecPos)); + static bool:bAnyZ; bAnyZ = bool:get_param(2); + static pIgnoreEnt; pIgnoreEnt = get_param(3); + static Struct:sIgnoreArea; sIgnoreArea = Struct:get_param(4); + + return NavAreaGrid_GetNearestNavArea(vecPos, bAnyZ, pIgnoreEnt, sIgnoreArea); +} + public Struct:Native_Path_Find(iPluginId, iArgc) { static Float:vecStart[3]; get_array_f(1, vecStart, sizeof(vecStart)); static Float:vecGoal[3]; get_array_f(2, vecGoal, sizeof(vecGoal)); @@ -385,6 +399,25 @@ public Native_Area_GetCenter(iPluginId, iArgc) { set_array_f(2, vecCenter, sizeof(vecCenter)); } +public Native_Path_FindTask_Await(iPluginId, iArgc) { + new Struct:sTask = Struct:get_param(1); + + StructSetCell(sTask, BuildPathTask_DestroyOnFinish, false); + + new bool:bFinished = false; + + do { + bFinished = StructGetCell(sTask, BuildPathTask_IsFinished); + NavAreaBuildPathFrame(); + } while (!bFinished); +} + +public bool:Native_Path_FindTask_IsFinished(iPluginId, iArgc) { + new Struct:sTask = Struct:get_param(1); + + return StructGetCell(sTask, BuildPathTask_IsFinished); +} + public Native_Path_FindTask_GetUserToken(iPluginId, iArgc) { new Struct:sTask = Struct:get_param(1); @@ -1201,8 +1234,7 @@ Float:@NavArea_GetZ(const &Struct:this, const Float:vecPos[]) { // Return shortest distance squared between point and this area Float:@NavArea_GetDistanceSquaredToPoint(const &Struct:this, const Float:vecPos[3]) { - static rgExtent[Extent]; - StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); + static rgExtent[Extent]; StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); if (vecPos[0] < rgExtent[Extent_Lo][0]) { if (vecPos[1] < rgExtent[Extent_Lo][1]) { @@ -1216,10 +1248,12 @@ Float:@NavArea_GetDistanceSquaredToPoint(const &Struct:this, const Float:vecPos[ d[0] = rgExtent[Extent_Lo][0] - vecPos[0]; d[1] = rgExtent[Extent_Hi][1] - vecPos[1]; d[2] = flSwZ - vecPos[2]; + return floatpower(xs_vec_len(d), 2.0); } else { // position is west of area new Float:d = rgExtent[Extent_Lo][0] - vecPos[0]; + return d * d; } } else if (vecPos[0] > rgExtent[Extent_Hi][0]) { @@ -1231,6 +1265,7 @@ Float:@NavArea_GetDistanceSquaredToPoint(const &Struct:this, const Float:vecPos[ d[0] = rgExtent[Extent_Hi][0] - vecPos[0]; d[1] = rgExtent[Extent_Lo][1] - vecPos[1]; d[2] = flNeZ - vecPos[2]; + return floatpower(xs_vec_len(d), 2.0); } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { // position is south-east of area @@ -1238,19 +1273,23 @@ Float:@NavArea_GetDistanceSquaredToPoint(const &Struct:this, const Float:vecPos[ } else { // position is east of area new Float:d = vecPos[2] - rgExtent[Extent_Hi][0]; + return d * d; } } else if (vecPos[1] < rgExtent[Extent_Lo][1]) { // position is north of area new Float:d = rgExtent[Extent_Lo][1] - vecPos[1]; + return d * d; } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { // position is south of area new Float:d = vecPos[1] - rgExtent[Extent_Hi][1]; + return d * d; } else { // position is inside of 2D extent of area - find delta Z new Float:z = @NavArea_GetZ(this, vecPos); new Float:d = z - vecPos[2]; + return d * d; } } @@ -1275,8 +1314,7 @@ Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { if (iDir == NORTH || iDir == SOUTH) { if (iDir == NORTH) { vecCenter[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - } - else { + } else { vecCenter[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); } @@ -1449,9 +1487,7 @@ bool:@NavArea_IsEdge(const &Struct:this, NavDirType:iDir) { bool:@NavArea_IsConnected(const &Struct:this, Struct:sArea, NavDirType:iDir) { // we are connected to ourself - if (sArea == this) { - return true; - } + if (sArea == this) return true; if (iDir == NUM_DIRECTIONS) { // search all directions @@ -1529,29 +1565,24 @@ NavDirType:@NavArea_ComputeDirection(const &Struct:this, const Float:vecPoint[3] } @NavArea_GetCorner(const &Struct:this, NavCornerType:corner, Float:vecOut[3]) { - static rgExtent[Extent]; - StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); + static rgExtent[Extent]; StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); switch (corner) { case NORTH_WEST: { xs_vec_copy(rgExtent[Extent_Lo], vecOut); - return; } case NORTH_EAST: { vecOut[0] = rgExtent[Extent_Hi][0]; vecOut[1] = rgExtent[Extent_Lo][1]; vecOut[2] = StructGetCell(this, NavArea_NeZ); - return; } case SOUTH_WEST: { vecOut[0] = rgExtent[Extent_Lo][0]; vecOut[1] = rgExtent[Extent_Hi][1]; vecOut[2] = StructGetCell(this, NavArea_SwZ); - return; } case SOUTH_EAST: { xs_vec_copy(rgExtent[Extent_Hi], vecOut); - return; } } } @@ -1569,6 +1600,7 @@ Struct:@NavLadder_Create() { Struct:@NavPath_Create() { new Struct:this = StructCreate(NavPath); StructSetCell(this, NavPath_Segments, ArrayCreate()); + return this; } @@ -1593,14 +1625,10 @@ bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[3], cons StructSetCell(this, NavPath_SegmentCount, 0); new Struct:sStartArea = NavAreaGrid_GetNearestNavArea(vecStart, false, nullptr); - if (sStartArea == Invalid_Struct) { - return false; - } + if (sStartArea == Invalid_Struct) return false; new Struct:sGoalArea = NavAreaGrid_GetNearestNavArea(vecGoal, false, nullptr); - if (sGoalArea == Invalid_Struct) { - return false; - } + if (sGoalArea == Invalid_Struct) return false; new Struct:sStartSegment = @PathSegment_Create(); StructSetCell(sStartSegment, PathSegment_Area, sStartArea); @@ -1762,12 +1790,10 @@ bool:@NavPath_IsValid(const &Struct:this) { // Return true if position is at the end of the path bool:@NavPath_IsAtEnd(const &Struct:this, const Float:vecPos[3]) { - if (!@NavPath_IsValid(this)) { - return false; - } + if (!@NavPath_IsValid(this)) return false; + + static Float:vecEndpoint[3]; @NavPath_GetEndpoint(this, vecEndpoint); - static Float:vecEndpoint[3]; - @NavPath_GetEndpoint(this, vecEndpoint); return xs_vec_distance(vecPos, vecEndpoint) < 20.0; } @@ -1787,29 +1813,20 @@ bool:@NavPath_GetPointAlongPath(const &Struct:this, Float:flDistAlong, Float:vec } static Float:flLengthSoFar; flLengthSoFar = 0.0; - static Float:flSegmentLength; - static Float:vecDir[3]; for (new i = 1; i < @NavPath_GetSegmentCount(this); i++) { - static Float:vecFrom[3]; static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); - StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); - - static Float:vecTo[3]; static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); - StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); - - xs_vec_sub(vecTo, vecFrom, vecDir); - flSegmentLength = xs_vec_len(vecDir); + static Float:vecFrom[3]; StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); + static Float:vecTo[3]; StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); + static Float:vecDir[3]; xs_vec_sub(vecTo, vecFrom, vecDir); + static Float:flSegmentLength; flSegmentLength = xs_vec_len(vecDir); if (flSegmentLength + flLengthSoFar >= flDistAlong) { // desired point is on this segment of the path - static Float:delta; delta = flDistAlong - flLengthSoFar; - static Float:t; t = delta / flSegmentLength; - for (new j = 0; j < 3; ++j) { - vecPointOnPath[j] = vecTo[j] + t * vecDir[j]; + vecPointOnPath[j] = vecTo[j] + ((flDistAlong - flLengthSoFar) / flSegmentLength) * vecDir[j]; } return true; @@ -1830,47 +1847,34 @@ bool:@NavPath_FindClosestPointOnPath(const &Struct:this, const Float:vecWorldPos return false; } - static Float:vecAlong[3]; - static Float:vecToWorldPos[3]; - static Float:vecPos[3]; - static Float:flLength; - static Float:flCloseLength; + static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); + static Float:flCloseDistSq = 9999999999.9; - static Float:flDistSq; - - new Array:irgSegments = StructGetCell(this, NavPath_Segments); for (new i = iStartIndex; i <= iEndIndex; i++) { - static Float:vecFrom[3]; static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); - StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); - - static Float:vecTo[3]; static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); - StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); - // compute ray along this path segment - xs_vec_sub(vecTo, vecFrom, vecAlong); + static Float:vecFrom[3]; StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); + static Float:vecTo[3]; StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); - // make it a unit vector along the path - flLength = NormalizeInPlace(vecAlong, vecAlong); + static Float:vecAlong[3]; xs_vec_sub(vecTo, vecFrom, vecAlong); + static Float:flLength; flLength = NormalizeInPlace(vecAlong, vecAlong); + static Float:vecToWorldPos[3]; xs_vec_sub(vecWorldPos, vecFrom, vecToWorldPos); - // compute vector from start of segment to our point - xs_vec_sub(vecWorldPos, vecFrom, vecToWorldPos); - - // find distance of closest point on ray - flCloseLength = xs_vec_dot(vecToWorldPos, vecAlong); + static Float:flCloseLength; flCloseLength = xs_vec_dot(vecToWorldPos, vecAlong); // constrain point to be on path segment + static Float:vecPos[3]; if (flCloseLength <= 0.0) { xs_vec_copy(vecFrom, vecPos); } else if (flCloseLength >= flLength) { - xs_vec_copy(vecFrom, vecTo); + xs_vec_copy(vecTo, vecPos); } else { xs_vec_add_scaled(vecFrom, vecAlong, flCloseLength, vecPos); } - flDistSq = floatpower(xs_vec_distance(vecPos, vecWorldPos), 2.0); + static Float:flDistSq; flDistSq = floatpower(xs_vec_distance(vecPos, vecWorldPos), 2.0); // keep the closest point so far if (flDistSq < flCloseDistSq) { @@ -1885,6 +1889,7 @@ bool:@NavPath_FindClosestPointOnPath(const &Struct:this, const Float:vecWorldPos Struct:@BuildPathTask_Create() { new Struct:this = StructCreate(BuildPathTask); StructSetCell(this, BuildPathTask_Path, @NavPath_Create()); + return this; } @@ -1896,6 +1901,7 @@ Struct:@BuildPathTask_Create() { Struct:@PathSegment_Create() { new Struct:this = StructCreate(PathSegment); + return this; } @@ -1903,11 +1909,10 @@ Struct:@PathSegment_Create() { StructDestroy(this); } -NavAreaGrid_ComputeHashKey(iId) { // returns a hash key for the given nav area ID +NavAreaGrid_ComputeHashKey(iId) { return iId & 0xFF; } - NavAreaGrid_Init(Float:flMinX, Float:flMaxX, Float:flMinY, Float:flMaxY) { g_rgGrid[NavAreaGrid_CellSize] = 300.0; g_rgGrid[NavAreaGrid_MinX] = flMinX; @@ -1939,16 +1944,12 @@ NavAreaGrid_Free() { } Struct:NavAreaGrid_GetNavAreaById(iAreaId) { - if (iAreaId == 0) { - return Invalid_Struct; - } + if (iAreaId == 0) return Invalid_Struct; new iKey = NavAreaGrid_ComputeHashKey(iAreaId); for (new Struct:sArea = g_rgGrid[NavAreaGrid_HashTable][iKey]; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_NextHash)) { - if (@NavArea_GetId(sArea) == iAreaId) { - return sArea; - } + if (@NavArea_GetId(sArea) == iAreaId) return sArea; } return Invalid_Struct; @@ -1991,40 +1992,34 @@ NavAreaGrid_AddNavArea(Struct:sArea) { // Given a position, return the nav area that IsOverlapping and is *immediately* beneath it Struct:NavAreaGrid_GetNavArea(const Float:vecPos[3], Float:flBeneathLimit) { - if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) { - return Invalid_Struct; - } + if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) return Invalid_Struct; // get list in cell that contains position - new x = NavAreaGrid_WorldToGridX(vecPos[0]); - new y = NavAreaGrid_WorldToGridY(vecPos[1]); + static x; x = NavAreaGrid_WorldToGridX(vecPos[0]); + static y; y = NavAreaGrid_WorldToGridY(vecPos[1]); + static Float:vecTestPos[3]; xs_vec_add(vecPos, Float:{0, 0, 5}, vecTestPos); - new Array:irgList = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], x + y * g_rgGrid[NavAreaGrid_GridSizeX]); + static Array:irgList; irgList = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], x + y * g_rgGrid[NavAreaGrid_GridSizeX]); // search cell list to find correct area - new Struct:sUseArea = Invalid_Struct; - new Float:useZ = -99999999.9; - static Float:vecTestPos[3]; - xs_vec_add(vecPos, Float:{0, 0, 5}, vecTestPos); - new iListSize = ArraySize(irgList); + static iListSize; iListSize = ArraySize(irgList); + static Struct:sUseArea; sUseArea = Invalid_Struct; + static Float:useZ; useZ = -99999999.9; + for (new i = 0; i < iListSize; ++i) { - new Struct:sArea = ArrayGetCell(irgList, i); + static Struct:sArea; sArea = ArrayGetCell(irgList, i); // check if position is within 2D boundaries of this area if (@NavArea_IsOverlappingPoint(sArea, vecTestPos)) { // project position onto area to get Z - new Float:z = @NavArea_GetZ(sArea, vecTestPos); + static Float:z; z = @NavArea_GetZ(sArea, vecTestPos); // if area is above us, skip it - if (z > vecTestPos[2]) { - continue; - } + if (z > vecTestPos[2]) continue; // if area is too far below us, skip it - if (z < vecPos[2] - flBeneathLimit) { - continue; - } + if (z < vecPos[2] - flBeneathLimit) continue; // if area is higher than the one we have, use this instead if (z > useZ) { @@ -2056,57 +2051,42 @@ NavAreaGrid_WorldToGridY(Float:wy) { // Given a position in the world, return the nav area that is closest // and at the same height, or beneath it. // Used to find initial area if we start off of the mesh. -Struct:NavAreaGrid_GetNearestNavArea(const Float:vecPos[3], bool:bAnyZ, pIgnoreEnt) { - if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) { - return Invalid_Struct; - } +Struct:NavAreaGrid_GetNearestNavArea(const Float:vecPos[3], bool:bAnyZ = false, pIgnoreEnt = nullptr, Struct:sIgnoreArea = Invalid_Struct) { + if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) return Invalid_Struct; - new Struct:sCloseArea = Invalid_Struct; - new Float:flCloseDistSq = 100000000.0; + static Float:flGroundHeight; flGroundHeight = GetGroundHeight(vecPos, pIgnoreEnt); + if (flGroundHeight == -1.0) return Invalid_Struct; - // quick check - sCloseArea = NavAreaGrid_GetNavArea(vecPos, 120.0); - if (sCloseArea) { - return sCloseArea; - } + static Struct:sCurrentArea; sCurrentArea = NavAreaGrid_GetNavArea(vecPos, 120.0); + if (sCurrentArea != Invalid_Struct && sCurrentArea != sIgnoreArea) return sCurrentArea; // ensure source position is well behaved - static Float:vecSource[3]; - vecSource[0] = vecPos[0]; - vecSource[1] = vecPos[1]; - - if (GetGroundHeight(vecPos, vecSource[2], pIgnoreEnt) == false) { - return Invalid_Struct; - } + static Float:vecSource[3]; xs_vec_set(vecSource, vecPos[0], vecPos[1], flGroundHeight + HalfHumanHeight); - vecSource[2] += HalfHumanHeight; + static Struct:sCloseArea; sCloseArea = Invalid_Struct; + static Float:flCloseDistSq; flCloseDistSq = 100000000.0; // TODO: Step incrementally using grid for speed - // find closest nav area new iNavAreaCount = ArraySize(g_irgNavAreaList); for (new i = 0; i < iNavAreaCount; ++i) { - new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); - - static Float:flAreaPos[3]; @NavArea_GetClosestPointOnArea(sArea, vecSource, flAreaPos); + static Struct:sArea; sArea = ArrayGetCell(g_irgNavAreaList, i); + if (sArea == sIgnoreArea) continue; - new Float:flDistSq = floatpower(xs_vec_distance(flAreaPos, vecSource), 2.0); + static Float:vecAreaPos[3]; @NavArea_GetClosestPointOnArea(sArea, vecSource, vecAreaPos); + static Float:flDistSq; flDistSq = floatpower(xs_vec_distance(vecAreaPos, vecSource), 2.0); // keep the closest area if (flDistSq < flCloseDistSq) { // check LOS to area if (!bAnyZ) { - static Float:vecEnd[3]; - xs_vec_copy(flAreaPos, vecEnd); - vecEnd[2] += HalfHumanHeight; + static Float:vecEnd[3]; xs_vec_set(vecEnd, vecAreaPos[0], vecAreaPos[1], vecAreaPos[2] + HalfHumanHeight); engfunc(EngFunc_TraceLine, vecSource, vecEnd, IGNORE_MONSTERS | IGNORE_GLASS, pIgnoreEnt, g_pTrace); - static Float:flFraction; - get_tr2(g_pTrace, TR_flFraction, flFraction); - if (flFraction != 1.0) { - continue; - } + static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + + if (flFraction != 1.0) continue; } flCloseDistSq = flDistSq; @@ -2540,14 +2520,16 @@ Struct:NavAreaBuildPath(const Float:vecStart[3], const Float:vecGoal[3], iCbFunc StructSetCell(sTask, BuildPathTask_StartArea, sStartArea); StructSetCell(sTask, BuildPathTask_GoalArea, sGoalArea); StructSetCell(sTask, BuildPathTask_ClosestArea, Invalid_Struct); - StructSetCell(sTask, BuildPathTask_CbFuncId, iCbFuncId); - StructSetCell(sTask, BuildPathTask_CbFuncPluginId, iCbFuncPluginId); - StructSetCell(sTask, BuildPathTask_CostFuncId, iCostFuncId); - StructSetCell(sTask, BuildPathTask_CostFuncPluginId, iCostFuncPluginId); + StructSetCell(sTask, BuildPathTask_FinishCallback, iCbFuncPluginId, Callback_PluginId); + StructSetCell(sTask, BuildPathTask_FinishCallback, iCbFuncId, Callback_FunctionId); + StructSetCell(sTask, BuildPathTask_CostCallback, iCostFuncPluginId, Callback_PluginId); + StructSetCell(sTask, BuildPathTask_CostCallback, iCostFuncId, Callback_FunctionId); StructSetCell(sTask, BuildPathTask_IgnoreEntity, pIgnoreEnt); StructSetCell(sTask, BuildPathTask_UserToken, iUserToken); + StructSetCell(sTask, BuildPathTask_IsFinished, false); StructSetCell(sTask, BuildPathTask_IsSuccessed, false); StructSetCell(sTask, BuildPathTask_IsTerminated, false); + StructSetCell(sTask, BuildPathTask_DestroyOnFinish, true); if (g_irgBuildPathTasks == Invalid_Array) { g_irgBuildPathTasks = ArrayCreate(); @@ -2577,7 +2559,9 @@ bool:NavAreaBuildPathAbortTask(Struct:sTask) { new iTask = ArrayFindValue(g_irgBuildPathTasks, sTask); if (iTask != -1) { - @BuildPathTask_Destroy(sTask); + if (StructGetCell(sTask, BuildPathTask_DestroyOnFinish)) { + @BuildPathTask_Destroy(sTask); + } ArrayDeleteItem(g_irgBuildPathTasks, iTask); return true; } @@ -2589,8 +2573,8 @@ bool:NavAreaBuildPathRunTask(Struct:sTask) { g_rgBuildPathJob[BuildPathJob_Task] = sTask; g_rgBuildPathJob[BuildPathJob_StartArea] = StructGetCell(sTask, BuildPathTask_StartArea); g_rgBuildPathJob[BuildPathJob_GoalArea] = StructGetCell(sTask, BuildPathTask_GoalArea); - g_rgBuildPathJob[BuildPathJob_CostFuncId] = StructGetCell(sTask, BuildPathTask_CostFuncId); - g_rgBuildPathJob[BuildPathJob_CostFuncPluginId] = StructGetCell(sTask, BuildPathTask_CostFuncPluginId); + g_rgBuildPathJob[BuildPathJob_CostFuncId] = StructGetCell(sTask, BuildPathTask_CostCallback, Callback_FunctionId); + g_rgBuildPathJob[BuildPathJob_CostFuncPluginId] = StructGetCell(sTask, BuildPathTask_CostCallback, Callback_PluginId); g_rgBuildPathJob[BuildPathJob_Finished] = false; g_rgBuildPathJob[BuildPathJob_Terminated] = false; g_rgBuildPathJob[BuildPathJob_Successed] = false; @@ -2659,6 +2643,7 @@ bool:NavAreaBuildPathRunTask(Struct:sTask) { NavAreaBuildPathFinish() { new Struct:sTask = g_rgBuildPathJob[BuildPathJob_Task]; + StructSetCell(sTask, BuildPathTask_IsFinished, true); StructSetCell(sTask, BuildPathTask_IsSuccessed, g_rgBuildPathJob[BuildPathJob_Successed]); StructSetCell(sTask, BuildPathTask_IsTerminated, g_rgBuildPathJob[BuildPathJob_Terminated]); @@ -2669,8 +2654,8 @@ NavAreaBuildPathFinish() { NavAreaBuildPathSegments(); } - new iCbFuncId = StructGetCell(sTask, BuildPathTask_CbFuncId); - new iCbFuncPluginId = StructGetCell(sTask, BuildPathTask_CbFuncPluginId); + new iCbFuncId = StructGetCell(sTask, BuildPathTask_FinishCallback, Callback_FunctionId); + new iCbFuncPluginId = StructGetCell(sTask, BuildPathTask_FinishCallback, Callback_PluginId); if (iCbFuncId != -1 && callfunc_begin_i(iCbFuncId, iCbFuncPluginId)) { callfunc_push_int(_:sTask); @@ -2853,7 +2838,11 @@ NavAreaBuildPathFrame() { // current job finished, process if (g_rgBuildPathJob[BuildPathJob_Finished]) { NavAreaBuildPathFinish(); - @BuildPathTask_Destroy(g_rgBuildPathJob[BuildPathJob_Task]); + + if (StructGetCell(g_rgBuildPathJob[BuildPathJob_Task], BuildPathTask_DestroyOnFinish)) { + @BuildPathTask_Destroy(g_rgBuildPathJob[BuildPathJob_Task]); + } + g_rgBuildPathJob[BuildPathJob_Task] = Invalid_Struct; return; } @@ -2933,8 +2922,8 @@ NavAreaBuildPathSegments() { if (get_pcvar_bool(g_pCvarDebug)) { new iSegmentCount = StructGetCell(sNavPath, NavPath_SegmentCount); for (new i = 1; i < iSegmentCount; ++i) { - new Struct:sPrevSegment = ArrayGetCell(irgSegments, i - 1); - new Struct:sNextSegment = ArrayGetCell(irgSegments, i); + static Struct:sPrevSegment; sPrevSegment = ArrayGetCell(irgSegments, i - 1); + static Struct:sNextSegment; sNextSegment = ArrayGetCell(irgSegments, i); static Float:vecSrc[3]; StructGetArray(sPrevSegment, PathSegment_Pos, vecSrc, sizeof(vecSrc)); static Float:vecNext[3]; StructGetArray(sNextSegment, PathSegment_Pos, vecNext, sizeof(vecNext)); @@ -2984,20 +2973,15 @@ stock NavDirType:DirectionRight(NavDirType:iDir) { return NORTH; } -stock bool:GetGroundHeight(const Float:vecPos[3], &Float:flHeight, pIgnoreEnt, Float:vecNormal[3] = {0.0, 0.0, 0.0}) { +stock Float:GetGroundHeight(const Float:vecPos[3], pIgnoreEnt, Float:vecNormal[3] = {0.0, 0.0, 0.0}) { enum GroundLayerInfo { Float:GroundLayerInfo_ground, Float:GroundLayerInfo_normal[3] }; - static Float:vecTo[3]; - vecTo[0] = vecPos[0]; - vecTo[1] = vecPos[1]; - vecTo[2] = vecPos[2] - 9999.9; - - new Float:vecFrom[3]; + static Float:vecTo[3]; xs_vec_set(vecTo, vecPos[0], vecPos[1], -8192.0); - new pIgnore = pIgnoreEnt; + static pIgnore; pIgnore = pIgnoreEnt; // new Float:ground = 0.0; static const Float:flMaxOffset = 100.0; @@ -3005,26 +2989,19 @@ stock bool:GetGroundHeight(const Float:vecPos[3], &Float:flHeight, pIgnoreEnt, F const MAX_GROUND_LAYERS = 16; static rgLayer[MAX_GROUND_LAYERS][GroundLayerInfo]; - new iLayerCount = 0; + static iLayerCount; iLayerCount = 0; static Float:flOffset; for (flOffset = 1.0; flOffset < flMaxOffset; flOffset += flInc) { - xs_vec_copy(vecPos, vecFrom); - vecFrom[2] += flOffset; + static Float:vecFrom[3]; xs_vec_set(vecFrom, vecPos[0], vecPos[1], vecPos[2] + flOffset); engfunc(EngFunc_TraceLine, vecFrom, vecTo, IGNORE_MONSTERS, pIgnore, g_pTrace); - static Float:flFraction; - get_tr2(g_pTrace, TR_flFraction, flFraction); - + static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); static bool:bStartSolid; bStartSolid = bool:get_tr2(g_pTrace, TR_StartSolid); static pHit; pHit = get_tr2(g_pTrace, TR_pHit); - - static Float:vecPlaneNormal[3]; - get_tr2(g_pTrace, TR_vecPlaneNormal, vecPlaneNormal); - - static Float:vecEndPos[3]; - get_tr2(g_pTrace, TR_vecEndPos, vecEndPos); + static Float:vecPlaneNormal[3]; get_tr2(g_pTrace, TR_vecPlaneNormal, vecPlaneNormal); + static Float:vecEndPos[3]; get_tr2(g_pTrace, TR_vecEndPos, vecEndPos); if (flFraction != 1.0 && pHit > 0) { // ignoring any entities that we can walk through @@ -3040,16 +3017,12 @@ stock bool:GetGroundHeight(const Float:vecPos[3], &Float:flHeight, pIgnoreEnt, F xs_vec_copy(vecPlaneNormal, rgLayer[iLayerCount][GroundLayerInfo_normal]); iLayerCount++; - if (iLayerCount == MAX_GROUND_LAYERS) { - break; - } + if (iLayerCount == MAX_GROUND_LAYERS) break; } } } - if (!iLayerCount) { - return false; - } + if (!iLayerCount) return -1.0; static i; for (i = 0; i < iLayerCount - 1; i++) { @@ -3058,20 +3031,20 @@ stock bool:GetGroundHeight(const Float:vecPos[3], &Float:flHeight, pIgnoreEnt, F } } - flHeight = rgLayer[i][GroundLayerInfo_ground]; xs_vec_copy(rgLayer[i][GroundLayerInfo_normal], vecNormal); - return true; + return rgLayer[i][GroundLayerInfo_ground]; } stock bool:IsEntityWalkable(pEntity, iFlags) { - static szClassName[32]; - pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); + static szClassName[32]; pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); // if we hit a door, assume its walkable because it will open when we touch it if (equal(szClassName, "func_door") || equal(szClassName, "func_door_rotating")) { return !!(iFlags & WALK_THRU_DOORS); - } else if (equal(szClassName, "func_breakable")) { + } + + if (equal(szClassName, "func_breakable")) { // if we hit a breakable object, assume its walkable because we will shoot it when we touch it static Float:flTakeDamage; pev(pEntity, pev_takedamage, flTakeDamage); diff --git a/api/navsystem/include/api_navsystem.inc b/api/navsystem/include/api_navsystem.inc index 973485a..4cd93cb 100644 --- a/api/navsystem/include/api_navsystem.inc +++ b/api/navsystem/include/api_navsystem.inc @@ -24,11 +24,12 @@ native Nav_Precache(); native Nav_GetAreaCount(); native Nav_GetArea(iIndex); native Nav_GetAreaById(iId); -native Nav_GetAreaFromGrid(Float:vecPos[3], Float:flBeneathLimit); +native NavArea:Nav_GetAreaFromGrid(Float:vecPos[3], Float:flBeneathLimit = 120.0); native Nav_WorldToGridX(Float:flValue); native Nav_WorldToGridY(Float:flValue); native NavArea:Nav_FindFirstAreaInDirection(const Float:vecStart[3], NavDirType:iDir, Float:flRange, Float:flBeneathLimit, pIgnoreEnt, Float:vecClosePos[3]); native bool:Nav_IsAreaVisible(const Float:vecPos[3], NavArea:pArea); +native NavArea:Nav_GetNearestArea(const Float:vecPos[3], bool:bAnyZ = false, pIgnoreEnt = nullptr, NavArea:pIgnoreArea = Invalid_NavArea); native Nav_Area_GetId(NavArea:pArea); native NavAttributeType:Nav_Area_GetAttributes(NavArea:pArea); @@ -78,9 +79,11 @@ native Array:Nav_Path_GetSegments(NavPath:pPath); * * @return Task handler */ -native NavBuildPathTask:Nav_Path_Find(const Float:vecStart[3], const Float:vecGoal[3], const szCbFunc[], pIgnoreEntity, any:iUserToken, const szCostFunc[] = ""); +native NavBuildPathTask:Nav_Path_Find(const Float:vecStart[3], const Float:vecGoal[3], const szCbFunc[] = "", pIgnoreEntity = 0, any:iUserToken = 0, const szCostFunc[] = ""); +native bool:Nav_Path_FindTask_Await(NavBuildPathTask:pTask); native bool:Nav_Path_FindTask_Abort(NavBuildPathTask:pTask); native NavPath:Nav_Path_FindTask_GetPath(NavBuildPathTask:pTask); +native bool:Nav_Path_FindTask_IsFinished(NavBuildPathTask:pTask); native bool:Nav_Path_FindTask_IsSuccessed(NavBuildPathTask:pTask); native bool:Nav_Path_FindTask_IsTerminated(NavBuildPathTask:pTask); native any:Nav_Path_FindTask_GetUserToken(NavBuildPathTask:pTask); From 9f7e9d0e486ca9d96b53867274009f8da37102a1 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 5 Apr 2024 22:55:45 +0200 Subject: [PATCH 185/231] add WIP base monster entity --- entities/entity_base_monster.sma | 4927 +++++++++++++++++ .../include/entity_base_monster_const.inc | 491 ++ 2 files changed, 5418 insertions(+) create mode 100644 entities/entity_base_monster.sma create mode 100644 entities/include/entity_base_monster_const.inc diff --git a/entities/entity_base_monster.sma b/entities/entity_base_monster.sma new file mode 100644 index 0000000..283d5c0 --- /dev/null +++ b/entities/entity_base_monster.sma @@ -0,0 +1,4927 @@ +#pragma semicolon 1 + +#include +#include +#include +#include + +#include +#tryinclude +#include + +#include + +#define PLUGIN "[Entity] Base Monster" +#define VERSION "1.0.0" +#define AUTHOR "Hedgehog Fog" + +#define EVENT_CLIENT 5000 +#define STUDIO_LOOPING 0x0001 + +#define IS_PLAYER(%1) (%1 >= 1 && %1 <= MaxClients) +#define IS_MONSTER(%1) (!!(pev(%1, pev_flags) & FL_MONSTER)) + +#define ENTITY_NAME BASE_MONSTER_ENTITY_NAME + +#define DIST_TO_CHECK 200.0 +#define MONSTER_CUT_CORNER_DIST 8.0 + +#define CHAR_TEX_CONCRETE 'C' +#define CHAR_TEX_METAL 'M' +#define CHAR_TEX_DIRT 'D' +#define CHAR_TEX_VENT 'V' +#define CHAR_TEX_GRATE 'G' +#define CHAR_TEX_TILE 'T' +#define CHAR_TEX_SLOSH 'S' +#define CHAR_TEX_WOOD 'W' +#define CHAR_TEX_COMPUTER 'P' +#define CHAR_TEX_GRASS 'X' +#define CHAR_TEX_GLASS 'Y' +#define CHAR_TEX_FLESH 'F' +#define CHAR_TEX_SNOW 'N' + +enum ModelEvent { + ModelEvent_Frame, + ModelEvent_Event, + ModelEvent_Options[64] +}; + +enum Model { + Float:Model_EyePosition[3], + Array:Model_Sequences +}; + +enum Sequence { + Sequence_FramesNum, + Float:Sequence_FPS, + Sequence_Flags, + Sequence_Activity, + Sequence_ActivityWeight, + Array:Sequence_Events, + Float:Sequence_LinearMovement[3] +}; + +enum { + STEP_CONCRETE = 0, + STEP_METAL, + STEP_DIRT, + STEP_VENT, + STEP_GRATE, + STEP_TILE, + STEP_SLOSH, + STEP_WADE, + STEP_LADDER, + STEP_SNOW +}; + +new const g_tlFail[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_SET_ACTIVITY, ACT_IDLE }, + { TASK_WAIT, 2.0 }, + { TASK_WAIT_PVS, 0.0 } +}; + +new const g_tlIdleStand1[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_SET_ACTIVITY, ACT_IDLE }, + { TASK_WAIT, 5.0 } +}; + +new const g_tlIdleWalk1[][MONSTER_TASK_DATA] = { + { TASK_WALK_PATH, 9999.0 }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 } +}; + +new const g_tlAmbush[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_SET_ACTIVITY, ACT_IDLE }, + { TASK_WAIT_INDEFINITE, 0.0 } +}; + +new const g_tlActiveIdle[][MONSTER_TASK_DATA] = { + { TASK_FIND_HINTNODE, 0.0 }, + { TASK_GET_PATH_TO_HINTNODE, 0.0 }, + { TASK_STORE_LASTPOSITION, 0.0 }, + { TASK_WALK_PATH, 0.0 }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 }, + { TASK_FACE_HINTNODE, 0.0 }, + { TASK_PLAY_ACTIVE_IDLE, 0.0 }, + { TASK_GET_PATH_TO_LASTPOSITION, }, + { TASK_WALK_PATH, 0.0 }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 }, + { TASK_CLEAR_LASTPOSITION, 0.0 }, + { TASK_CLEAR_HINTNODE, 0.0 } +}; + +new const g_tlWakeAngry1[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_SET_ACTIVITY, ACT_IDLE }, + { TASK_SOUND_WAKE, 0.0 }, + { TASK_FACE_IDEAL, 0.0 } +}; + +new const g_tlAlertFace1[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_SET_ACTIVITY, ACT_IDLE }, + { TASK_FACE_IDEAL, 0.0 } +}; + +new const g_tlAlertSmallFlinch[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_REMEMBER, MEMORY_FLINCHED }, + { TASK_SMALL_FLINCH, 0.0 }, + { TASK_SET_SCHEDULE, MONSTER_SCHED_ALERT_FACE } +}; + +new const g_tlAlertStand1[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_SET_ACTIVITY, ACT_IDLE }, + { TASK_WAIT, 20.0 }, + { TASK_SUGGEST_STATE, MONSTER_STATE_IDLE } +}; + +new const g_tlInvestigateSound[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_STORE_LASTPOSITION, 0.0 }, + { TASK_GET_PATH_TO_BESTSOUND, 0.0 }, + { TASK_FACE_IDEAL, 0.0 }, + { TASK_WALK_PATH, 0.0 }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 }, + { TASK_PLAY_SEQUENCE, ACT_IDLE }, + { TASK_WAIT, 10.0 }, + { TASK_GET_PATH_TO_LASTPOSITION, }, + { TASK_WALK_PATH, 0.0 }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 }, + { TASK_CLEAR_LASTPOSITION, 0.0 } +}; + +new const g_tlCombatStand1[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_SET_ACTIVITY, ACT_IDLE }, + { TASK_WAIT_INDEFINITE, 0.0 } +}; + +new const g_tlCombatFace1[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_SET_ACTIVITY, ACT_IDLE }, + { TASK_FACE_ENEMY, 0.0 } +}; + +new const g_tlStandoff[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_SET_ACTIVITY, ACT_IDLE }, + { TASK_WAIT_FACE_ENEMY, 2.0 } +}; + +new const g_tlArmWeapon[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_PLAY_SEQUENCE, ACT_ARM } +}; + +new const g_tlReload[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_PLAY_SEQUENCE, ACT_RELOAD } +}; + +new const g_tlRangeAttack1[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_FACE_ENEMY, 0.0 }, + { TASK_RANGE_ATTACK1, 0.0 } +}; + +new const g_tlRangeAttack2[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_FACE_ENEMY, 0.0 }, + { TASK_RANGE_ATTACK2, 0.0 } +}; + +new const g_tlPrimaryMeleeAttack1[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_FACE_ENEMY, 0.0 }, + { TASK_MELEE_ATTACK1, 0.0 } +}; + +new const g_tlSecondaryMeleeAttack1[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_FACE_ENEMY, 0.0 }, + { TASK_MELEE_ATTACK2, 0.0 } +}; + +new const g_tlSpecialAttack1[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_FACE_ENEMY, 0.0 }, + { TASK_SPECIAL_ATTACK1, 0.0 } +}; + +new const g_tlSpecialAttack2[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_FACE_ENEMY, 0.0 }, + { TASK_SPECIAL_ATTACK2, 0.0 } +}; + +new const g_tlChaseEnemy1[][MONSTER_TASK_DATA] = { + { TASK_SET_FAIL_SCHEDULE, MONSTER_SCHED_CHASE_ENEMY_FAILED }, + { TASK_GET_PATH_TO_ENEMY, 0.0 }, + { TASK_RUN_PATH, 0.0 }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 } +}; + +new const g_tlChaseEnemyFailed[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_WAIT, 0.2 }, + { TASK_FIND_COVER_FROM_ENEMY, 0.0 }, + { TASK_RUN_PATH, 0.0 }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 }, + { TASK_REMEMBER, MEMORY_INCOVER }, + { TASK_FACE_ENEMY, 0.0 }, + { TASK_WAIT, 1.0 } +}; + +new const g_tlSmallFlinch[][MONSTER_TASK_DATA] = { + { TASK_REMEMBER, MEMORY_FLINCHED }, + { TASK_STOP_MOVING, 0.0 }, + { TASK_SMALL_FLINCH, 0.0 } +}; + +new const g_tlDie1[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_SOUND_DIE, 0.0 }, + { TASK_DIE, 0.0 } +}; + +new const g_tlVictoryDance[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_PLAY_SEQUENCE, ACT_VICTORY_DANCE }, + { TASK_WAIT, 0.0 } +}; + +new const g_tlBarnacleVictimGrab[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_PLAY_SEQUENCE, ACT_BARNACLE_HIT }, + { TASK_SET_ACTIVITY, ACT_BARNACLE_PULL }, + { TASK_WAIT_INDEFINITE, 0.0 },// just cycle barnacle pull anim while barnacle hoists. +}; + +new const g_tlBarnacleVictimChomp[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_PLAY_SEQUENCE, ACT_BARNACLE_CHOMP }, + { TASK_SET_ACTIVITY, ACT_BARNACLE_CHEW }, + { TASK_WAIT_INDEFINITE, 0.0 },// just cycle barnacle pull anim while barnacle hoists. +}; + +new const g_tlError[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_WAIT_INDEFINITE, 0.0} +}; + +new const g_tlScriptedWalk[][MONSTER_TASK_DATA] = { + { TASK_WALK_TO_TARGET, MONSTER_TARGET_MOVE_SCRIPTED }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 }, + { TASK_PLANT_ON_SCRIPT, 0.0 }, + { TASK_FACE_SCRIPT, 0.0 }, + { TASK_FACE_IDEAL, 0.0 }, + { TASK_ENABLE_SCRIPT, 0.0 }, + { TASK_WAIT_FOR_SCRIPT, 0.0 }, + { TASK_PLAY_SCRIPT, 0.0 } +}; + +new const g_tlScriptedRun[][MONSTER_TASK_DATA] = { + { TASK_RUN_TO_TARGET, MONSTER_TARGET_MOVE_SCRIPTED }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 }, + { TASK_PLANT_ON_SCRIPT, 0.0 }, + { TASK_FACE_SCRIPT, 0.0 }, + { TASK_FACE_IDEAL, 0.0 }, + { TASK_ENABLE_SCRIPT, 0.0 }, + { TASK_WAIT_FOR_SCRIPT, 0.0 }, + { TASK_PLAY_SCRIPT, 0.0 } +}; + +new const g_tlScriptedWait[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_WAIT_FOR_SCRIPT, 0.0 }, + { TASK_PLAY_SCRIPT, 0.0 } +}; + +new const g_tlScriptedFace[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_FACE_SCRIPT, 0.0 }, + { TASK_FACE_IDEAL, 0.0 }, + { TASK_WAIT_FOR_SCRIPT, 0.0 }, + { TASK_PLAY_SCRIPT, 0.0 } +}; + +new const g_tlTakeCoverFromOrigin[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_FIND_COVER_FROM_ORIGIN, 0.0 }, + { TASK_RUN_PATH, 0.0 }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 }, + { TASK_REMEMBER, MEMORY_INCOVER }, + { TASK_TURN_LEFT, 179.0 } +}; + +new const g_tlTakeCoverFromBestSound[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_FIND_COVER_FROM_BEST_SOUND, 0.0 }, + { TASK_RUN_PATH, 0.0 }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 }, + { TASK_REMEMBER, MEMORY_INCOVER }, + { TASK_TURN_LEFT, 179.0 } +}; + +new const g_tlTakeCoverFromEnemy[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_WAIT, 0.2 }, + { TASK_FIND_COVER_FROM_ENEMY, 0.0 }, + { TASK_RUN_PATH, 0.0 }, + { TASK_WAIT_FOR_MOVEMENT, 0.0 }, + { TASK_REMEMBER, MEMORY_INCOVER }, + { TASK_FACE_ENEMY, 0.0 }, + { TASK_WAIT, 1.0 } +}; + +new const g_tlCower[][MONSTER_TASK_DATA] = { + { TASK_STOP_MOVING, 0.0 }, + { TASK_PLAY_SEQUENCE, ACT_COWER } +}; + +new Trie:g_itModelEyePosition = Invalid_Trie; +new Trie:g_itModelSequences = Invalid_Trie; + +new g_pCvarUseAstar; +new g_pCvarStepSize; + +new bool:g_bUseAstar; + +new g_pTrace; +new g_pHit = FM_NULLENT; + +new Float:g_vecAttackDir[3]; + +new Float:g_flGameTime = 0.0; + +#define MAX_WORLD_SOUNDS 64 + +enum Sound { + Sound_Emitter, + Sound_Type, + Sound_Volume, + Float:Sound_ExpiredTime, + Float:Sound_Origin[3] +}; + +new Struct:g_rgSharedSchedules[MONSTER_SHARED_SCHED] = { _:Invalid_Struct, ... }; + +new g_rgSounds[MAX_WORLD_SOUNDS][Sound]; + +public plugin_precache() { + #if defined _api_navsystem_included + Nav_Precache(); + #endif + + g_pCvarUseAstar = register_cvar("monster_use_astar", "1"); + g_pCvarStepSize = get_cvar_pointer("sv_stepsize"); + + InitSharedSchedules(); + + g_pTrace = create_tr2(); + + CE_Register(ENTITY_NAME, CEPreset_NPC, true); + + CE_RegisterHook(ENTITY_NAME, CEFunction_Init, "@Monster_Init"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Spawned, "@Monster_Spawned"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Kill, "@Monster_Kill"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Think, "@Monster_Think"); + + CE_RegisterVirtualMethod(ENTITY_NAME, TakeDamage, "@Monster_TakeDamage", CE_MP_Cell, CE_MP_Cell, CE_MP_Float, CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, IgnoreConditions, "@Monster_IgnoreConditions"); + CE_RegisterVirtualMethod(ENTITY_NAME, HandleAnimEvent, "@Monster_HandleAnimEvent", CE_MP_Cell, CE_MP_Array, 64); + CE_RegisterVirtualMethod(ENTITY_NAME, Classify, "@Monster_Classify"); + CE_RegisterVirtualMethod(ENTITY_NAME, SetState, "@Monster_SetState", CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, MonsterInit, "@Monster_MonsterInit"); + CE_RegisterVirtualMethod(ENTITY_NAME, SetYawSpeed, "@Monster_SetYawSpeed"); + CE_RegisterMethod(ENTITY_NAME, SetThink, "@Monster_SetThink", CE_MP_String); + CE_RegisterMethod(ENTITY_NAME, CheckTraceHullAttack, "@Monster_CheckTraceHullAttack", CE_MP_Float, CE_MP_Float, CE_MP_Cell); + + CE_RegisterVirtualMethod(ENTITY_NAME, AlertSound, "@Monster_AlertSound"); + CE_RegisterVirtualMethod(ENTITY_NAME, DeathSound, "@Monster_DeathSound"); + CE_RegisterVirtualMethod(ENTITY_NAME, IdleSound, "@Monster_IdleSound"); + CE_RegisterVirtualMethod(ENTITY_NAME, PainSound, "@Monster_PainSound"); + CE_RegisterVirtualMethod(ENTITY_NAME, ShouldGibMonster, "@Monster_ShouldGibMonster", CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, CallGibMonster, "@Monster_CallGibMonster"); + CE_RegisterVirtualMethod(ENTITY_NAME, GibMonster, "@Monster_GibMonster"); + CE_RegisterVirtualMethod(ENTITY_NAME, CalculateHitGroupDamage, "@Monster_CalculateHitGroupDamage", CE_MP_Float, CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, EmitSound, "@Monster_EmitSound", CE_MP_Cell, CE_MP_FloatArray, 3, CE_MP_Cell, CE_MP_Float); + + CE_RegisterVirtualMethod(ENTITY_NAME, MeleeAttack1, "@Monster_MeleeAttack1"); + CE_RegisterVirtualMethod(ENTITY_NAME, MeleeAttack2, "@Monster_MeleeAttack2"); + + CE_RegisterMethod(ENTITY_NAME, MoveToEnemy, "@Monster_MoveToEnemy", CE_MP_Cell, CE_MP_Float); + CE_RegisterMethod(ENTITY_NAME, MoveToTarget, "@Monster_MoveToTarget", CE_MP_Cell, CE_MP_Float); + CE_RegisterMethod(ENTITY_NAME, MoveToLocation, "@Monster_MoveToLocation", CE_MP_Cell, CE_MP_Float, CE_MP_FloatArray, 3); + CE_RegisterMethod(ENTITY_NAME, StepSound, "@Monster_StepSound"); +} + +@Monster_SetThink(this, const szCallback[]) { + new iPluginId = -1; + new iFunctionId = -1; + + if (!equal(szCallback, NULL_STRING)) { + iPluginId = CE_GetCallPluginId(); + iFunctionId = get_func_id(szCallback, iPluginId); + } + + CE_SetMember(this, m_iThinkFunctionId, iFunctionId); + CE_SetMember(this, m_iThinkPluginId, iPluginId); +} + +public plugin_init() { + register_plugin(PLUGIN, VERSION, AUTHOR); + + RegisterHam(Ham_TakeDamage, CE_BASE_CLASSNAME, "HamHook_Base_TakeDamage_Post", .Post = 1); + + bind_pcvar_num(g_pCvarUseAstar, g_bUseAstar); + + RegisterHam(Ham_Classify, CE_BASE_CLASSNAME, "HamHook_Base_Classify", .Post = 0); + RegisterHam(Ham_TraceAttack, CE_BASE_CLASSNAME, "HamHook_Base_TraceAttack", .Post = 0); + + register_forward(FM_EmitSound, "FMHook_EmitSound"); +} + +public HamHook_Base_Classify(pEntity) { + if (CE_IsInstanceOf(pEntity, ENTITY_NAME)) { + new iClass = CE_CallMethod(pEntity, Classify); + SetHamReturnInteger(iClass); + return HAM_SUPERCEDE; + } + + return HAM_IGNORED; +} + +@Monster_TraceAttack(this, pAttacker, Float:flDamage, Float:vecDirection[3], pTrace, iDamageBits) { + static Float:flTakeDamage; pev(this, pev_takedamage, flTakeDamage); + if (flTakeDamage == DAMAGE_NO) return; + + static iHitGroup; iHitGroup = get_tr2(pTrace, TR_iHitgroup); + CE_SetMember(this, m_iLastHitGroup, iHitGroup); +} + +Float:@Monster_CalculateHitGroupDamage(this, Float:flDamage, iHitGroup) { + switch (iHitGroup) { + case HITGROUP_HEAD: return flDamage * 3; + } + + return flDamage; +} + +public HamHook_Base_TraceAttack(pEntity, pAttacker, Float:flDamage, Float:vecDirection[3], pTrace, iDamageBits) { + if (CE_IsInstanceOf(pEntity, ENTITY_NAME)) { + @Monster_TraceAttack(pEntity, pAttacker, flDamage, vecDirection, pTrace, iDamageBits); + + static iHitGroup; iHitGroup = get_tr2(pTrace, TR_iHitgroup); + + flDamage = CE_CallMethod(pEntity, CalculateHitGroupDamage, flDamage, iHitGroup); + + SetHamParamFloat(3, flDamage); + + return HAM_HANDLED; + } + + return HAM_IGNORED; +} + +public plugin_end() { + DestroySharedSchedule(); + free_tr2(g_pTrace); + + if (g_itModelSequences != Invalid_Trie) { + TrieDestroy(g_itModelSequences); + } + + if (g_itModelEyePosition != Invalid_Trie) { + TrieDestroy(g_itModelEyePosition); + } +} + +/*--------------------------------[ Methods ]--------------------------------*/ + +@Monster_Init(this) { + g_flGameTime = get_gametime(); + + CE_SetMemberVec(this, CE_MEMBER_MINS, Float:{-12.0, -12.0, -32.0}); + CE_SetMemberVec(this, CE_MEMBER_MAXS, Float:{12.0, 12.0, 32.0}); + + CE_SetMember(this, m_irgRoute, ArrayCreate(_:MONSTER_WAYPOINT, 8)); + CE_SetMember(this, m_irgOldEnemies, ArrayCreate(_:MONSTER_ENEMY, 8)); + CE_SetMember(this, m_irgSequences, Invalid_Array); + + CE_SetMember(this, m_iHintNode, NO_NODE); + CE_SetMember(this, m_iMemory, MEMORY_CLEAR); + CE_SetMember(this, m_pEnemy, FM_NULLENT); + CE_SetMember(this, m_flDistTooFar, 1024.0); + CE_SetMember(this, m_flDistLook, 2048.0); + CE_SetMember(this, m_iTaskStatus, 0); + CE_SetMember(this, m_iScheduleIndex, 0); + CE_SetMember(this, m_iDamageType, 0); + CE_SetMember(this, m_iMovementActivity, 0); + CE_SetMember(this, m_iRouteIndex, 0); + CE_SetMember(this, m_iScriptState, 0); + CE_SetMemberVec(this, m_vecLastPosition, Float:{0.0, 0.0, 0.0}); + CE_SetMember(this, m_flMoveWaitFinished, 0.0); + CE_SetMember(this, m_flWaitFinished, 0.0); + CE_SetMember(this, m_pTargetEnt, FM_NULLENT); + CE_SetMemberVec(this, m_vecMoveGoal, Float:{0.0, 0.0, 0.0}); + CE_SetMemberVec(this, m_vecEnemyLKP, Float:{0.0, 0.0, 0.0}); + CE_SetMember(this, m_pCine, FM_NULLENT); + CE_SetMember(this, m_iFailSchedule, MONSTER_SCHED_NONE); + CE_SetMember(this, m_bSequenceFinished, false); + CE_SetMember(this, m_iActivity, 0); + CE_SetMember(this, m_iMovementGoal, 0); + CE_SetMember(this, m_flMoveWaitTime, 0.0); + CE_SetMember(this, m_flHungryTime, 0.0); + CE_SetMember(this, m_pGoalEnt, FM_NULLENT); + + CE_SetMember(this, m_flFieldOfView, 0.5); + CE_SetMember(this, m_bSequenceLoops, false); + CE_SetMember(this, m_flFrameRate, 0.0); + CE_SetMember(this, m_flGroundSpeed, 0.0); + CE_SetMember(this, m_sSchedule, Invalid_Struct); + CE_SetMember(this, m_iCapability, 0); + CE_SetMember(this, m_irgSequences, Invalid_Array); + + CE_SetMember(this, m_flRangeAttack1Range, 784.0); + CE_SetMember(this, m_flRangeAttack2Range, 512.0); + CE_SetMember(this, m_flMeleeAttack1Range, 64.0); + CE_SetMember(this, m_flMeleeAttack2Range, 64.0); + CE_SetMember(this, m_flMeleeAttack1Damage, 0.0); + CE_SetMember(this, m_flMeleeAttack2Damage, 0.0); + + CE_SetMember(this, m_flStepSize, 16.0); + + new iStepSize = max(get_pcvar_num(g_pCvarStepSize), 16); + CE_SetMember(this, m_flStepHeight, float(iStepSize)); +} + +@Monster_Spawned(this) { + g_flGameTime = get_gametime(); + + static Array:irgSequences; irgSequences = Invalid_Array; + static Float:vecEyePosition[3]; + + + static szModel[MAX_RESOURCE_PATH_LENGTH]; CE_GetMemberString(this, CE_MEMBER_MODEL, szModel, charsmax(szModel)); + if (!equal(szModel, NULL_STRING)) { + LoadModel(szModel, irgSequences, vecEyePosition); + } + + CE_SetMember(this, m_irgSequences, irgSequences); + CE_SetMemberVec(this, m_vecEyePosition, vecEyePosition); + + CE_CallMethod(this, MonsterInit); +} + +@Monster_Kill(this, pKiller, iGib) { + g_flGameTime = get_gametime(); + + if (@Monster_HasMemory(this, MEMORY_KILLED)) { + if (CE_CallMethod(this, ShouldGibMonster, iGib)) { + CE_CallMethod(this, CallGibMonster); + } + + return PLUGIN_HANDLED; + } + + @Monster_Remember(this, MEMORY_KILLED); + + emit_sound(this, CHAN_WEAPON, "common/null.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM); + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_DEAD); + @Monster_SetConditions(this, COND_LIGHT_DAMAGE); + + // tell owner ( if any ) that we're dead.This is mostly for MonsterMaker functionality. + // CBaseEntity *pOwner = CBaseEntity::Instance(pev->owner); + // if ( pOwner ) { + // pOwner->DeathNotice( pev ); + // } + + if (CE_CallMethod(this, ShouldGibMonster, iGib)) { + CE_CallMethod(this, CallGibMonster); + return PLUGIN_HANDLED; + } else if (pev(this, pev_flags) & FL_MONSTER) { + // SetTouch( NULL ); + @Monster_BecomeDead(this); + } + + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_DEAD); + + return PLUGIN_HANDLED; +} + +bool:@Monster_ShouldGibMonster(this, iGib) { + return false; +} + +@Monster_Remove(this) {} + +@Monster_Think(this) { + g_flGameTime = get_gametime(); + + new iFunctionId = CE_GetMember(this, m_iThinkFunctionId); + new iPluginId = CE_GetMember(this, m_iThinkPluginId); + + if (iFunctionId == -1 || iPluginId == -1) return; + + callfunc_begin_i(iFunctionId, iPluginId); + callfunc_push_int(this); + callfunc_end(); +} + +@Monster_ResetSequenceInfo(this) { + static Float:flFrameRate; flFrameRate = 0.0; + static Float:flGroundSpeed; flGroundSpeed = 0.0; + + @Monster_GetSequenceInfo(this, flFrameRate, flGroundSpeed); + CE_SetMember(this, m_flFrameRate, flFrameRate); + CE_SetMember(this, m_flGroundSpeed, flGroundSpeed); + + set_pev(this, pev_animtime, g_flGameTime); + set_pev(this, pev_framerate, 1.0); + CE_SetMember(this, m_bSequenceLoops, !!(@Monster_GetSequenceFlags(this) & STUDIO_LOOPING)); + CE_SetMember(this, m_bSequenceFinished, false); + CE_SetMember(this, m_flLastEventCheck, g_flGameTime); +} + +@Monster_GetSequenceInfo(this, &Float:flFrameRate, &Float:flGroundSpeed) { + static iSequence; iSequence = pev(this, pev_sequence); + + static Array:irgSequences; irgSequences = CE_GetMember(this, m_irgSequences); + if (irgSequences == Invalid_Array) return; + + if (iSequence >= ArraySize(irgSequences)) { + flFrameRate = 0.0; + flGroundSpeed = 0.0; + return; + } + + static Float:flFPS; flFPS = ArrayGetCell(irgSequences, iSequence, _:Sequence_FPS); + static iFramesNum; iFramesNum = ArrayGetCell(irgSequences, iSequence, _:Sequence_FramesNum); + + if (iFramesNum > 1) { + static Float:vecLinearMovement[3]; + + for (new i = 0; i < 3; ++i) { + vecLinearMovement[i] = ArrayGetCell(irgSequences, iSequence, _:Sequence_LinearMovement + i); + } + + flFrameRate = UTIL_FrameRateToFrameRatioRate(flFPS, iFramesNum); + flGroundSpeed = xs_vec_len(vecLinearMovement); + flGroundSpeed = flGroundSpeed * (flFPS / iFramesNum); + } else { + flFrameRate = 255.0; + flGroundSpeed = 0.0; + } +} + +Float:@Monster_FrameAdvance(this, Float:flInterval) { + + static Float:flAnimTime; pev(this, pev_animtime, flAnimTime); + static Float:flFrameRate; pev(this, pev_framerate, flFrameRate); + static Float:flFrame; pev(this, pev_frame, flFrame); + + static Float:flSequenceFrameRate; flSequenceFrameRate = CE_GetMember(this, m_flFrameRate); + static bool:bSequenceLoops; bSequenceLoops = CE_GetMember(this, m_bSequenceLoops); + + if (!flInterval && flAnimTime) { + flInterval = (g_flGameTime - flAnimTime); + } + + flFrame += (flSequenceFrameRate * flFrameRate) * flInterval; + + if (flFrame < 0.0 || flFrame > 255.0) { + if (bSequenceLoops) { + flFrame = UTIL_FloatMod(flFrame, 255.0); + } else { + flFrame = floatclamp(flFrame, 0.0, 255.0); + } + + CE_SetMember(this, m_bSequenceFinished, true); + } + + set_pev(this, pev_frame, flFrame); + set_pev(this, pev_animtime, g_flGameTime); + + return flInterval; +} + +@Monster_DispatchAnimEvents(this, Float:flInterval) { + static Array:irgSequences; irgSequences = CE_GetMember(this, m_irgSequences); + if (irgSequences == Invalid_Array) return; + + + static iSequence; iSequence = pev(this, pev_sequence); + + static Array:irgEvents; irgEvents = Array:ArrayGetCell(irgSequences, iSequence, _:Sequence_Events); + if (irgEvents == Invalid_Array) return; + + static Float:flFrame; pev(this, pev_frame, flFrame); + static Float:flFrameRate; pev(this, pev_framerate, flFrameRate); + static Float:flSequenceFrameRate; flSequenceFrameRate = CE_GetMember(this, m_flFrameRate); + + static Float:flStart; flStart = flFrame - (flSequenceFrameRate * flFrameRate * flInterval); + static Float:flEnd; flEnd = flFrame; + + CE_SetMember(this, m_flLastEventCheck, g_flGameTime); + + static rgEvent[ModelEvent]; + + new iEvent = 0; + while ((iEvent = @Monster_GetAnimationEvent(this, rgEvent, flStart, flEnd, iEvent)) != 0) { + CE_CallMethod(this, HandleAnimEvent, rgEvent[ModelEvent_Event], rgEvent[ModelEvent_Options]); + } +} + +@Monster_GetAnimationEvent(this, rgEvent[ModelEvent], Float:flStart, Float:flEnd, iStartOffset) { + static iSequence; iSequence = pev(this, pev_sequence); + static Array:irgSequences; irgSequences = CE_GetMember(this, m_irgSequences); + + static Array:irgEvents; irgEvents = Array:ArrayGetCell(irgSequences, iSequence, _:Sequence_Events); + if (irgEvents == Invalid_Array) return 0; + + static iEventsNum; iEventsNum = ArraySize(irgEvents); + if (iEventsNum == 0 || iStartOffset > iEventsNum) return 0; + + static iFlags; iFlags = ArrayGetCell(irgSequences, iSequence, _:Sequence_Flags); + static iFramesNum; iFramesNum = ArrayGetCell(irgSequences, iSequence, _:Sequence_FramesNum); + static Float:flFramesNum; flFramesNum = float(iFramesNum); + + flStart = UTIL_FrameRatioToFrame(flStart, iFramesNum); + flEnd = UTIL_FrameRatioToFrame(flEnd, iFramesNum); + + if (iFlags & STUDIO_LOOPING) { + static Float:flOffset; flOffset = UTIL_FloatMod(floatabs(flStart), (flFramesNum - 1.0)); + static Float:flFixedStart; flFixedStart = flStart; + + if (flStart < 0) { + flFixedStart = (flFramesNum - 1.0) - flOffset; + } else if (flStart > (flFramesNum - 1.0)) { + flFixedStart = 0.0 + flOffset; + } + + flEnd += (flFixedStart - flStart); + flStart = flFixedStart; + } else { + // flStart = floatclamp(flStart, 0.0, flFramesNum - 1.0); + // flEnd = floatclamp(flStart, 0.0, flFramesNum - 1.0); + } + + static Float:flCurrentFrame; flCurrentFrame = flStart; + + do { + static Float:flNormalizedStart; flNormalizedStart = UTIL_FloatMod(flCurrentFrame, (flFramesNum - 1.0)); + static Float:flNormalizedEnd; flNormalizedEnd = floatmin(flNormalizedStart + (flEnd - flCurrentFrame), flFramesNum - 1.0); + + for (new iEvent = iStartOffset; iEvent < iEventsNum; ++iEvent) { + static iEventId; iEventId = ArrayGetCell(irgEvents, iEvent, _:ModelEvent_Event); + if (iEventId >= EVENT_CLIENT) continue; + + static Float:flFrame; flFrame = float(ArrayGetCell(irgEvents, iEvent, _:ModelEvent_Frame)); + + if (flFrame < flNormalizedStart) continue; + if (flFrame > flNormalizedEnd) continue; + + ArrayGetArray(irgEvents, iEvent, rgEvent[any:0], _:ModelEvent); + return iEvent + 1; + } + + flCurrentFrame += flNormalizedEnd - flNormalizedStart; + } while (flCurrentFrame < flEnd); + + return 0; +} + +stock Float:UTIL_FrameRateToFrameRatioRate(Float:flFrameRate, iFramesNum) { + return (flFrameRate / iFramesNum) * 255.0; +} + +stock Float:UTIL_FrameToFrameRatio(iFrame, iFramesNum) { + return 255.0 * ((float(iFrame) + 1.0) / (iFramesNum)); +} + +stock Float:UTIL_FrameRatioToFrame(Float:flRatio, iFramesNum) { + return floatmax((flRatio * (float(iFramesNum) / 255.0)) - 1.0, 0.0); +} + +@Monster_HandleAnimEvent(this, iEventId, const rgOptions[]) { + // static iSequence; iSequence = pev(this, pev_sequence); + // client_print_color(0, print_team_red, "^3[Event Detected]^1 Entity: ^4%d^1, Sequence: ^4%d^1, Event: ^4%d^1, Options: ^4^"%s^"^1", this, iSequence, iEventId, rgOptions); + + switch (iEventId) { + case SCRIPT_EVENT_DEAD: { + if (CE_GetMember(this, m_iMonsterState) == MONSTER_STATE_SCRIPT) { + set_pev(this, pev_deadflag, DEAD_DYING); + set_pev(this, pev_health, 0.0); + } + } + case SCRIPT_EVENT_NOT_DEAD: { + static Float:flMaxHealth; pev(this, pev_max_health, flMaxHealth); + + if (CE_GetMember(this, m_iMonsterState) == MONSTER_STATE_SCRIPT) { + set_pev(this, pev_deadflag, DEAD_NO); + set_pev(this, pev_health, flMaxHealth); + } + } + case SCRIPT_EVENT_SOUND: { + if (!equal(rgOptions, NULL_STRING)) { + emit_sound(this, CHAN_BODY, rgOptions, VOL_NORM, ATTN_IDLE, 0, PITCH_NORM); + } + } + + case SCRIPT_EVENT_SOUND_VOICE: { + if (!equal(rgOptions, NULL_STRING)) { + emit_sound(this, CHAN_VOICE, rgOptions, VOL_NORM, ATTN_IDLE, 0, PITCH_NORM); + } + } + case SCRIPT_EVENT_SENTENCE: { + // TODO: Implement + if (!equal(rgOptions, NULL_STRING)) { + // SENTENCEG_PlayRndSz( edict(), rgOptions, VOL_NORM, ATTN_IDLE, 0, PITCH_NORM); + } + } + case SCRIPT_EVENT_FIREEVENT: { + if (!equal(rgOptions, NULL_STRING)) { + FireTargets(rgOptions, this, this, USE_TOGGLE, 0.0); + } + } + case SCRIPT_EVENT_NOINTERRUPT: { + static pCine; pCine = CE_GetMember(this, m_pCine); + + if (pCine != FM_NULLENT) { + CE_CallMethod(pCine, "AllowInterrupt", false); + } + } + case SCRIPT_EVENT_CANINTERRUPT: { + static pCine; pCine = CE_GetMember(this, m_pCine); + + if (pCine != FM_NULLENT) { + CE_CallMethod(pCine, "AllowInterrupt", true); + } + } + case MONSTER_EVENT_BODYDROP_HEAVY: + if (pev(this, pev_flags) & FL_ONGROUND) { + if (!random(2)) { + emit_sound(this, CHAN_BODY, "common/bodydrop3.wav", VOL_NORM, ATTN_NORM, 0, 90); + } else { + emit_sound(this, CHAN_BODY, "common/bodydrop4.wav", VOL_NORM, ATTN_NORM, 0, 90); + } + } + + case MONSTER_EVENT_BODYDROP_LIGHT: + if (pev(this, pev_flags) & FL_ONGROUND) { + if (!random(2)) { + emit_sound(this, CHAN_BODY, "common/bodydrop3.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM); + } else { + emit_sound(this, CHAN_BODY, "common/bodydrop4.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM); + } + } + + case MONSTER_EVENT_SWISHSOUND: { + emit_sound(this, CHAN_BODY, "zombie/claw_miss2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM); + } + } +} + +Float:@Monster_GetPathCost(this, NavArea:newArea, NavArea:prevArea, iMoveFlags) { + static Float:vecMins[3]; pev(this, pev_mins, vecMins); + + static Float:vecSrc[3]; + + if (prevArea != Invalid_NavArea) { + Nav_Area_GetCenter(prevArea, vecSrc); + } else { + pev(this, pev_origin, vecSrc); + vecSrc[2] += vecMins[2]; + } + + static Float:vecTarget[3]; Nav_Area_GetClosestPointOnArea(newArea, vecSrc, vecTarget); + + vecTarget[2] = Nav_Area_GetZ(newArea); + + vecSrc[2] += -vecMins[2]; + vecTarget[2] += -vecMins[2]; + + static pTargetEnt; pTargetEnt = FM_NULLENT; + if (iMoveFlags & MF_TO_ENEMY) { + pTargetEnt = CE_GetMember(this, m_pEnemy); + } else if (iMoveFlags & MF_TO_TARGETENT) { + pTargetEnt = CE_GetMember(this, m_pTargetEnt); + } + + static Float:flDist; + if (@Monster_CheckLocalMove(this, vecSrc, vecTarget, pTargetEnt, true, flDist) != MONSTER_LOCALMOVE_VALID) { + return -1.0; + } + + + return 1.0; +} + +/*--------------------------------[ Function ]--------------------------------*/ + +LoadModel(const szModel[], &Array:irgSequences, Float:vecEyePosition[3]) { + g_itModelSequences = g_itModelSequences == Invalid_Trie ? TrieCreate() : g_itModelSequences; + g_itModelEyePosition = g_itModelEyePosition == Invalid_Trie ? TrieCreate() : g_itModelEyePosition; + + if (!TrieKeyExists(g_itModelSequences, szModel)) { + new rgModel[Model]; UTIL_LoadModel(szModel, rgModel); + TrieSetCell(g_itModelSequences, szModel, rgModel[Model_Sequences]); + TrieSetArray(g_itModelEyePosition, szModel, rgModel[Model_EyePosition], 3); + } + + TrieGetCell(g_itModelSequences, szModel, irgSequences); + TrieGetArray(g_itModelEyePosition, szModel, vecEyePosition, 3); +} + +/*--------------------------------[ Hooks ]--------------------------------*/ + +public HamHook_Base_TakeDamage_Post(pEntity, pInflictor, pAttacker, Float:flDamage, iDamageBits) { + if (CE_IsInstanceOf(pEntity, ENTITY_NAME)) { + CE_CallMethod(pEntity, TakeDamage, pInflictor, pAttacker, flDamage, iDamageBits); + return HAM_SUPERCEDE; + } + + return HAM_IGNORED; +} + +/*--------------------------------[ Callbacks ]--------------------------------*/ + +public Float:NavPathCost(NavBuildPathTask:pTask, NavArea:newArea, NavArea:prevArea) { + static pEntity; pEntity = Nav_Path_FindTask_GetUserToken(pTask); + if (!pEntity) return 1.0; + + return @Monster_GetPathCost(pEntity, newArea, prevArea, MF_TO_ENEMY); +} + +public NavPathCallback(NavBuildPathTask:pTask) { + #if defined _api_navsystem_included + new pEntity = Nav_Path_FindTask_GetUserToken(pTask); + + if (Nav_Path_FindTask_IsSuccessed(pTask)) { + new NavPath:pPath = Nav_Path_FindTask_GetPath(pTask); + @Monster_MoveNavPath(pEntity, pPath); + } + + @Monster_ReleasePathTask(pEntity); + #endif +} + +/*--------------------------------[ Stocks ]--------------------------------*/ + +stock bool:UTIL_SetSequence(pEntity, iSequence) { + if (pev(pEntity, pev_sequence) == iSequence) return false; + + set_pev(pEntity, pev_frame, 0); + set_pev(pEntity, pev_framerate, 1.0); + set_pev(pEntity, pev_animtime, get_gametime()); + set_pev(pEntity, pev_sequence, iSequence); + + return true; +} + +stock Float:UTIL_ApproachAngle(Float:flTarget, Float:flValue, Float:flSpeed) { + flTarget = UTIL_AngleMod(flTarget); + flValue = UTIL_AngleMod(flValue); + flSpeed = floatabs(flSpeed); + + static Float:flDelta; flDelta = UTIL_AngleDiff(flTarget, flValue); + + flValue += floatclamp(flDelta, -flSpeed, flSpeed); + + return UTIL_AngleMod(flValue); +} + +stock Float:UTIL_AngleDiff(Float:flDestAngle, Float:flSrcAngle) { + static Float:flDelta; flDelta = flDestAngle - flSrcAngle; + + if (flDestAngle > flSrcAngle) { + if (flDelta >= 180.0) { + flDelta -= 360.0; + } + } else { + if (flDelta <= -180.0) { + flDelta += 360.0; + } + } + + return flDelta; +} + +stock Float:UTIL_AngleMod(Float:flAngle) { + return (360.0/65536) * (floatround(flAngle * (65536.0/360.0), floatround_floor) & 65535); +} + +stock bool:UTIL_CheckEntitiesLevel(pEntity, pOther) { + static Float:vecAbsMin[3]; pev(pEntity, pev_absmin, vecAbsMin); + static Float:vecAbsMax[3]; pev(pEntity, pev_absmax, vecAbsMax); + static Float:vecOtherAbsMin[3]; pev(pOther, pev_absmin, vecOtherAbsMin); + static Float:vecOtherAbsMax[3]; pev(pOther, pev_absmax, vecOtherAbsMax); + + if (vecAbsMax[2] < vecOtherAbsMin[2]) return false; + if (vecAbsMin[2] > vecOtherAbsMax[2]) return false; + + return true; +} + +stock Float:UTIL_FloatMod(Float:flValue, Float:flDelimiter) { + return flValue - (float(floatround(flValue / flDelimiter, floatround_floor)) * flDelimiter); +} + +UTIL_LoadModel(const szModel[], rgModel[Model]) { + new iFile = fopen(szModel, "rb", true, "GAME"); + + if (!iFile) { + iFile = fopen(szModel, "rb", true, "DEFAULTGAME"); + } + + if (!iFile) return 0; + + // https://github.com/dreamstalker/rehlds/blob/65c6ce593b5eabf13e92b03352e4b429d0d797b0/rehlds/public/rehlds/studio.h#L68 + + fseek(iFile, (BLOCK_INT * 3) + (BLOCK_CHAR * 64), SEEK_SET); + + fread_blocks(iFile, rgModel[Model_EyePosition], 3, BLOCK_INT); + + // Got to "numseq" position of the studiohdr_t structure + fseek(iFile, 164, SEEK_SET); + + new iSeqNum; fread(iFile, iSeqNum, BLOCK_INT); + if (!iSeqNum) return 0; + + new iSeqIndex; fread(iFile, iSeqIndex, BLOCK_INT); + fseek(iFile, iSeqIndex, SEEK_SET); + + rgModel[Model_Sequences] = ArrayCreate(_:Sequence); + + for (new iSequence = 0; iSequence < iSeqNum; iSequence++) { + new rgSequence[Sequence]; + rgSequence[Sequence_Events] = Invalid_Array; + + fseek(iFile, iSeqIndex + (iSequence * 176) + (BLOCK_CHAR * 32), SEEK_SET); + fread(iFile, rgSequence[Sequence_FPS], BLOCK_INT); + fread(iFile, rgSequence[Sequence_Flags], BLOCK_INT); + fread(iFile, rgSequence[Sequence_Activity], BLOCK_INT); + fread(iFile, rgSequence[Sequence_ActivityWeight], BLOCK_INT); + + new iNumEvents; fread(iFile, iNumEvents, BLOCK_INT); + new iEventindex; fread(iFile, iEventindex, BLOCK_INT); + + fread(iFile, rgSequence[Sequence_FramesNum], BLOCK_INT); + + fseek(iFile, BLOCK_INT * 4, SEEK_CUR); + + fread_blocks(iFile, rgSequence[Sequence_LinearMovement], 3, BLOCK_INT); + + if (iNumEvents) { + rgSequence[Sequence_Events] = ArrayCreate(_:ModelEvent); + + fseek(iFile, iEventindex, SEEK_SET); + + for (new iEvent = 0; iEvent < iNumEvents; iEvent++) { + new rgEvent[ModelEvent]; + fread(iFile, rgEvent[ModelEvent_Frame], BLOCK_INT); + fread(iFile, rgEvent[ModelEvent_Event], BLOCK_INT); + fseek(iFile, BLOCK_INT, SEEK_CUR); + fread_blocks(iFile, rgEvent[ModelEvent_Options], sizeof(rgEvent[ModelEvent_Options]), BLOCK_CHAR); + + ArrayPushArray(rgSequence[Sequence_Events], rgEvent[any:0]); + } + } + + ArrayPushArray(rgModel[Model_Sequences], rgSequence[any:0]); + } + + fclose(iFile); + + return 1; +} + +InitSharedSchedules() { + g_rgSharedSchedules[MONSTER_SHARED_SCHED_WAIT_SCRIPT] = CreateSchedule(g_tlScriptedWait, sizeof(g_tlScriptedWait), SCRIPT_BREAK_CONDITIONS, 0, MONSTER_SHARED_SCHED_WAIT_SCRIPT); + g_rgSharedSchedules[MONSTER_SHARED_SCHED_WALK_TO_SCRIPT] = CreateSchedule(g_tlScriptedWalk, sizeof(g_tlScriptedWalk), SCRIPT_BREAK_CONDITIONS, 0, MONSTER_SHARED_SCHED_WALK_TO_SCRIPT); + g_rgSharedSchedules[MONSTER_SHARED_SCHED_RUN_TO_SCRIPT] = CreateSchedule(g_tlScriptedRun, sizeof(g_tlScriptedRun), SCRIPT_BREAK_CONDITIONS, 0, MONSTER_SHARED_SCHED_RUN_TO_SCRIPT); + g_rgSharedSchedules[MONSTER_SHARED_SCHED_FACE_SCRIPT] = CreateSchedule(g_tlScriptedFace, sizeof(g_tlScriptedFace), SCRIPT_BREAK_CONDITIONS, 0, MONSTER_SHARED_SCHED_FACE_SCRIPT); + g_rgSharedSchedules[MONSTER_SHARED_SCHED_ERROR] = CreateSchedule(g_tlError, sizeof(g_tlError), 0, 0, MONSTER_SHARED_SCHED_ERROR); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_ACTIVE_IDLE] = CreateSchedule( + g_tlActiveIdle, + sizeof(g_tlActiveIdle), + (COND_NEW_ENEMY | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_PROVOKED | COND_HEAR_SOUND), + (SOUND_COMBAT | SOUND_WORLD | SOUND_PLAYER | SOUND_DANGER), + MONSTER_SHARED_SCHED_ACTIVE_IDLE + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_IDLE_STAND] = CreateSchedule( + g_tlIdleStand1, + sizeof(g_tlIdleStand1), + (COND_NEW_ENEMY | COND_SEE_FEAR | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_HEAR_SOUND | COND_SMELL_FOOD | COND_SMELL | COND_PROVOKED), + (SOUND_COMBAT | SOUND_WORLD | SOUND_PLAYER | SOUND_DANGER | SOUND_MEAT | SOUND_CARCASS | SOUND_GARBAGE), + MONSTER_SHARED_SCHED_IDLE_STAND + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_IDLE_WALK] = CreateSchedule( + g_tlIdleWalk1, + sizeof(g_tlIdleWalk1), + (COND_NEW_ENEMY | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_HEAR_SOUND | COND_SMELL_FOOD | COND_SMELL | COND_PROVOKED), + (SOUND_COMBAT | SOUND_MEAT | SOUND_CARCASS | SOUND_GARBAGE), + MONSTER_SHARED_SCHED_IDLE_WALK + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_WAIT_TRIGGER] = CreateSchedule( + g_tlIdleStand1, + sizeof(g_tlIdleStand1), + (COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE), + 0, + MONSTER_SHARED_SCHED_WAIT_TRIGGER + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_WAKE_ANGRY] = CreateSchedule(g_tlWakeAngry1, sizeof(g_tlWakeAngry1), 0, 0, MONSTER_SHARED_SCHED_WAKE_ANGRY); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_ALERT_FACE] = CreateSchedule( + g_tlAlertFace1, + sizeof(g_tlAlertFace1), + (COND_NEW_ENEMY | COND_SEE_FEAR | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_PROVOKED), + 0, + MONSTER_SHARED_SCHED_ALERT_FACE + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_ALERT_STAND] = CreateSchedule( + g_tlAlertStand1, + sizeof(g_tlAlertStand1), + ( + COND_NEW_ENEMY | + COND_SEE_ENEMY | + COND_SEE_FEAR | + COND_LIGHT_DAMAGE | + COND_HEAVY_DAMAGE | + COND_PROVOKED | + COND_SMELL | + COND_SMELL_FOOD | + COND_HEAR_SOUND + ), + ( + SOUND_COMBAT | + SOUND_WORLD | + SOUND_PLAYER | + SOUND_DANGER | + SOUND_MEAT | + SOUND_CARCASS | + SOUND_GARBAGE + ), + MONSTER_SHARED_SCHED_ALERT_STAND + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_COMBAT_STAND] = CreateSchedule( + g_tlCombatStand1, + sizeof(g_tlCombatStand1), + (COND_NEW_ENEMY | COND_ENEMY_DEAD | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_CAN_ATTACK), + 0, + MONSTER_SHARED_SCHED_COMBAT_STAND + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_COMBAT_FACE] = CreateSchedule( + g_tlCombatFace1, + sizeof(g_tlCombatFace1), + (COND_CAN_ATTACK | COND_NEW_ENEMY | COND_ENEMY_DEAD), + 0, + MONSTER_SHARED_SCHED_COMBAT_FACE + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_CHASE_ENEMY] = CreateSchedule( + g_tlChaseEnemy1, + sizeof(g_tlChaseEnemy1), + ( + COND_NEW_ENEMY | + COND_CAN_RANGE_ATTACK1 | + COND_CAN_MELEE_ATTACK1 | + COND_CAN_RANGE_ATTACK2 | + COND_CAN_MELEE_ATTACK2 | + COND_TASK_FAILED | + COND_HEAR_SOUND + ), + SOUND_DANGER, + MONSTER_SHARED_SCHED_CHASE_ENEMY + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_FAIL] = CreateSchedule(g_tlFail, sizeof(g_tlFail), COND_CAN_ATTACK, 0, MONSTER_SHARED_SCHED_FAIL); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_SMALL_FLINCH] = CreateSchedule(g_tlSmallFlinch, sizeof(g_tlSmallFlinch), 0, 0, MONSTER_SHARED_SCHED_SMALL_FLINCH); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_ALERT_SMALL_FLINCH] = CreateSchedule(g_tlAlertSmallFlinch, sizeof(g_tlAlertSmallFlinch), 0, 0, MONSTER_SHARED_SCHED_ALERT_SMALL_FLINCH); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_RELOAD] = CreateSchedule(g_tlReload, sizeof(g_tlReload), COND_HEAVY_DAMAGE, 0, MONSTER_SHARED_SCHED_RELOAD); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_ARM_WEAPON] = CreateSchedule(g_tlArmWeapon, sizeof(g_tlArmWeapon), 0, 0, MONSTER_SHARED_SCHED_ARM_WEAPON); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_STANDOFF] = CreateSchedule( + g_tlStandoff, + sizeof(g_tlStandoff), + (COND_CAN_RANGE_ATTACK1 | COND_CAN_RANGE_ATTACK2 | COND_ENEMY_DEAD | COND_NEW_ENEMY | COND_HEAR_SOUND), + SOUND_DANGER, + MONSTER_SHARED_SCHED_STANDOFF + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_RANGE_ATTACK1] = CreateSchedule( + g_tlRangeAttack1, + sizeof(g_tlRangeAttack1), + (COND_NEW_ENEMY | COND_ENEMY_DEAD | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_ENEMY_OCCLUDED | COND_NO_AMMO_LOADED | COND_HEAR_SOUND), + SOUND_DANGER, + MONSTER_SHARED_SCHED_RANGE_ATTACK1 + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_RANGE_ATTACK2] = CreateSchedule( + g_tlRangeAttack2, + sizeof(g_tlRangeAttack2), + (COND_NEW_ENEMY | COND_ENEMY_DEAD | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_ENEMY_OCCLUDED | COND_HEAR_SOUND), + SOUND_DANGER, + MONSTER_SHARED_SCHED_RANGE_ATTACK2 + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_MELEE_ATTACK1] = CreateSchedule( + g_tlPrimaryMeleeAttack1, + sizeof(g_tlPrimaryMeleeAttack1), + (COND_NEW_ENEMY | COND_ENEMY_DEAD | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_ENEMY_OCCLUDED), + 0, + MONSTER_SHARED_SCHED_MELEE_ATTACK1 + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_MELEE_ATTACK2] = CreateSchedule( + g_tlSecondaryMeleeAttack1, + sizeof(g_tlSecondaryMeleeAttack1), + (COND_NEW_ENEMY | COND_ENEMY_DEAD | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_ENEMY_OCCLUDED), + 0, + MONSTER_SHARED_SCHED_MELEE_ATTACK2 + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_SPECIAL_ATTACK1] = CreateSchedule( + g_tlSpecialAttack1, + sizeof(g_tlSpecialAttack1), + (COND_NEW_ENEMY | COND_ENEMY_DEAD | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_ENEMY_OCCLUDED | COND_NO_AMMO_LOADED | COND_HEAR_SOUND), + SOUND_DANGER, + MONSTER_SHARED_SCHED_SPECIAL_ATTACK1 + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_SPECIAL_ATTACK2] = CreateSchedule( + g_tlSpecialAttack2, + sizeof(g_tlSpecialAttack2), + (COND_NEW_ENEMY | COND_ENEMY_DEAD | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_ENEMY_OCCLUDED | COND_NO_AMMO_LOADED | COND_HEAR_SOUND), + SOUND_DANGER, + MONSTER_SHARED_SCHED_SPECIAL_ATTACK2 + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_TAKE_COVER_FROM_BEST_SOUND] = CreateSchedule(g_tlTakeCoverFromBestSound, sizeof(g_tlTakeCoverFromBestSound), COND_NEW_ENEMY, 0, MONSTER_SHARED_SCHED_TAKE_COVER_FROM_BEST_SOUND); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ENEMY] = CreateSchedule(g_tlTakeCoverFromEnemy, sizeof(g_tlTakeCoverFromEnemy), COND_NEW_ENEMY, SOUND_DANGER, MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ENEMY); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_COWER] = CreateSchedule(g_tlCower, sizeof(g_tlCower), 0, 0, MONSTER_SHARED_SCHED_COWER); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_AMBUSH] = CreateSchedule( + g_tlAmbush, + sizeof(g_tlAmbush), + (COND_NEW_ENEMY | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_PROVOKED), + 0, + MONSTER_SHARED_SCHED_AMBUSH + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_BARNACLE_VICTIM_GRAB] = CreateSchedule(g_tlBarnacleVictimGrab, sizeof(g_tlBarnacleVictimGrab), 0, 0, MONSTER_SHARED_SCHED_BARNACLE_VICTIM_GRAB); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_BARNACLE_VICTIM_CHOMP] = CreateSchedule(g_tlBarnacleVictimChomp, sizeof(g_tlBarnacleVictimChomp), 0, 0, MONSTER_SHARED_SCHED_BARNACLE_VICTIM_CHOMP); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_INVESTIGATE_SOUND] = CreateSchedule( + g_tlInvestigateSound, + sizeof(g_tlInvestigateSound), + (COND_NEW_ENEMY | COND_SEE_FEAR | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_HEAR_SOUND), + SOUND_DANGER, + MONSTER_SHARED_SCHED_INVESTIGATE_SOUND + ); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_DIE] = CreateSchedule(g_tlDie1, sizeof(g_tlDie1), 0, 0, MONSTER_SHARED_SCHED_DIE); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ORIGIN] = CreateSchedule(g_tlTakeCoverFromOrigin, sizeof(g_tlTakeCoverFromOrigin), COND_NEW_ENEMY, 0, MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ORIGIN); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_VICTORY_DANCE] = CreateSchedule(g_tlVictoryDance, sizeof(g_tlVictoryDance), 0, 0, MONSTER_SHARED_SCHED_VICTORY_DANCE); + + g_rgSharedSchedules[MONSTER_SHARED_SCHED_CHASE_ENEMY_FAILED] = CreateSchedule( + g_tlChaseEnemyFailed, + sizeof(g_tlChaseEnemyFailed), + (COND_NEW_ENEMY | COND_CAN_RANGE_ATTACK1 | COND_CAN_MELEE_ATTACK1 | COND_CAN_RANGE_ATTACK2 | COND_CAN_MELEE_ATTACK2 | COND_HEAR_SOUND), + 0, + MONSTER_SHARED_SCHED_CHASE_ENEMY_FAILED + ); +} + +DestroySharedSchedule() { + for (new MONSTER_SHARED_SCHED:iSchedule = MONSTER_SHARED_SCHED:0; iSchedule < MONSTER_SHARED_SCHED; ++iSchedule) { + if (g_rgSharedSchedules[iSchedule] == Invalid_Struct) continue; + StructDestroy(g_rgSharedSchedules[iSchedule]); + } +} + +Struct:GetSharedSchedule(MONSTER_SHARED_SCHED:iSchedule) { + return g_rgSharedSchedules[iSchedule]; +} + +Struct:CreateSchedule(const rgTask[][MONSTER_TASK_DATA], iSize, iInterruptMask, iSoundMask, MONSTER_SHARED_SCHED:iSharedId = MONSTER_SHARED_SCHED_INVALID) { + new Struct:sSchedule = StructCreate(MONSTER_SCHEDULE_DATA); + StructSetCell(sSchedule, MONSTER_SCHEDULE_DATA_SHARED_ID, iSharedId); + StructSetArray(sSchedule, MONSTER_SCHEDULE_DATA_TASK, rgTask[0], _:MONSTER_TASK_DATA * iSize); + StructSetCell(sSchedule, MONSTER_SCHEDULE_DATA_TASK_SIZE, iSize); + StructSetCell(sSchedule, MONSTER_SCHEDULE_DATA_INTERRUPT_MASK, iInterruptMask); + StructSetCell(sSchedule, MONSTER_SCHEDULE_DATA_SOUND_MASK, iSoundMask); + + return sSchedule; +} + +@Monster_RunAI(this) { + static MONSTER_STATE:iMonsterState; iMonsterState = CE_GetMember(this, m_iMonsterState); + + if ( + (iMonsterState == MONSTER_STATE_IDLE || iMonsterState == MONSTER_STATE_ALERT) && + !random(99) && !(pev(this, pev_flags) & SF_MONSTER_GAG) + ) { + CE_CallMethod(this, IdleSound); + } + + if ( + iMonsterState != MONSTER_STATE_NONE && + iMonsterState != MONSTER_STATE_PRONE && + iMonsterState != MONSTER_STATE_DEAD + ) { + if (engfunc(EngFunc_FindClientInPVS, this) || (iMonsterState == MONSTER_STATE_COMBAT)) { + @Monster_Look(this, Float:CE_GetMember(this, m_flDistLook)); + @Monster_Listen(this); + @Monster_ClearConditions(this, CE_CallMethod(this, IgnoreConditions)); + @Monster_GetEnemy(this); + } + + static pEnemy; pEnemy = CE_GetMember(this, m_pEnemy); + if (pEnemy != FM_NULLENT) { + @Monster_CheckEnemy(this, pEnemy); + } + + @Monster_CheckAmmo(this); + } + + @Monster_CheckAITrigger(this); + @Monster_PrescheduleThink(this); + @Monster_MaintainSchedule(this); + + CE_SetMember(this, m_iConditions, CE_GetMember(this, m_iConditions) & ~(COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE)); +} + +@Monster_CheckAmmo(this) { + // Nothing +} + +@Monster_MaintainSchedule(this) { + for (new i = 0; i < 10; ++i) { + static Struct:sSchedule; sSchedule = CE_GetMember(this, m_sSchedule); + + if (sSchedule != Invalid_Struct && @Monster_TaskIsComplete(this)) { + @Monster_NextScheduledTask(this); + } + + static MONSTER_STATE:iMonsterState; iMonsterState = CE_GetMember(this, m_iMonsterState); + static MONSTER_STATE:iIdealMonsterState; iIdealMonsterState = CE_GetMember(this, m_iIdealMonsterState); + + if (!@Monster_ScheduleValid(this) || iMonsterState != iIdealMonsterState) { + @Monster_ScheduleChange(this); + + static pEnemy; pEnemy = CE_GetMember(this, m_pEnemy); + static iConditions; iConditions = @Monster_ScheduleFlags(this); + + if ( + iIdealMonsterState != MONSTER_STATE_DEAD && + (iIdealMonsterState != MONSTER_STATE_SCRIPT || iIdealMonsterState == iMonsterState) + ) { + if ( + (iConditions && !@Monster_HasConditions(this, COND_SCHEDULE_DONE)) || + (sSchedule && (StructGetCell(sSchedule, MONSTER_SCHEDULE_DATA_INTERRUPT_MASK) & COND_SCHEDULE_DONE)) || + ((iMonsterState == MONSTER_STATE_COMBAT) && (pEnemy == FM_NULLENT)) + ) { + iIdealMonsterState = @Monster_GetIdealState(this); + } + } + + static Struct:pNewSchedule; pNewSchedule = Invalid_Struct; + + if (@Monster_HasConditions(this, COND_TASK_FAILED) && iMonsterState == iIdealMonsterState) { + static MONSTER_SCHEDULE_TYPE:iFailSchedule; iFailSchedule = CE_GetMember(this, m_iFailSchedule); + pNewSchedule = @Monster_GetScheduleOfType(this, iFailSchedule != MONSTER_SCHED_NONE ? iFailSchedule : MONSTER_SCHED_FAIL); + } else { + @Monster_SetState(this, iIdealMonsterState); + + pNewSchedule = @Monster_GetSchedule(this); + } + + @Monster_ChangeSchedule(this, pNewSchedule); + } + + static MONSTER_TASK_STATUS:iTaskStatus; iTaskStatus = CE_GetMember(this, m_iTaskStatus); + + if (iTaskStatus == MONSTER_TASK_STATUS_NEW) { + static rgTask[MONSTER_TASK_DATA]; + if (@Monster_GetTask(this, rgTask) == -1) return; + + @Monster_TaskBegin(this); + @Monster_StartTask(this, rgTask[MONSTER_TASK_DATA_ID], rgTask[MONSTER_TASK_DATA_DATA]); + } + + static Activity:iActivity; iActivity = CE_GetMember(this, m_iActivity); + static Activity:iIdealActivity; iIdealActivity = CE_GetMember(this, m_iIdealActivity); + + if (iActivity != iIdealActivity) { + @Monster_SetActivity(this, iIdealActivity); + } + + if (!@Monster_TaskIsComplete(this) && iTaskStatus != MONSTER_TASK_STATUS_NEW) break; + } + + if (@Monster_TaskIsRunning(this)) { + static rgTask[MONSTER_TASK_DATA]; + if (@Monster_GetTask(this, rgTask) == -1) return; + + @Monster_RunTask(this, rgTask[MONSTER_TASK_DATA_ID], rgTask[MONSTER_TASK_DATA_DATA]); + } + + static Activity:iActivity; iActivity = CE_GetMember(this, m_iActivity); + static Activity:iIdealActivity; iIdealActivity = CE_GetMember(this, m_iIdealActivity); + + if (iActivity != iIdealActivity) { + @Monster_SetActivity(this, iIdealActivity); + } +} + +@Monster_MonsterInit(this) { + static Float:vecAngles[3]; pev(this, pev_angles, vecAngles); + static Float:flHealth; pev(this, pev_health, flHealth); + + set_pev(this, pev_rendermode, kRenderNormal); + set_pev(this, pev_renderamt, 255.0); + set_pev(this, pev_effects, 0); + set_pev(this, pev_takedamage, DAMAGE_AIM); + set_pev(this, pev_ideal_yaw, vecAngles[1]); + set_pev(this, pev_max_health, flHealth); + set_pev(this, pev_deadflag, DEAD_NO); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_MONSTER); + + if (pev(this, pev_spawnflags) & SF_MONSTER_HITMONSTERCLIP) { + set_pev(this, pev_flags, pev(this, pev_flags) | FL_MONSTERCLIP); + } + + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_IDLE); + CE_SetMember(this, m_iIdealActivity, ACT_IDLE); + CE_SetMember(this, m_iHintNode, NO_NODE); + CE_SetMember(this, m_iMemory, MEMORY_CLEAR); + CE_SetMember(this, m_pEnemy, FM_NULLENT); + CE_SetMember(this, m_iDamageType, 0); + CE_SetMember(this, m_iMovementActivity, 0); + CE_SetMember(this, m_iScriptState, 0); + CE_SetMemberVec(this, m_vecLastPosition, Float:{0.0, 0.0, 0.0}); + CE_SetMember(this, m_flMoveWaitFinished, 0.0); + CE_SetMember(this, m_flWaitFinished, 0.0); + CE_SetMember(this, m_pTargetEnt, FM_NULLENT); + CE_SetMemberVec(this, m_vecMoveGoal, Float:{0.0, 0.0, 0.0}); + CE_SetMemberVec(this, m_vecEnemyLKP, Float:{0.0, 0.0, 0.0}); + CE_SetMember(this, m_pCine, FM_NULLENT); + CE_SetMember(this, m_bSequenceFinished, false); + CE_SetMember(this, m_iActivity, 0); + CE_SetMember(this, m_iMovementGoal, 0); + CE_SetMember(this, m_flMoveWaitTime, 0.0); + CE_SetMember(this, m_flHungryTime, 0.0); + CE_SetMember(this, m_pGoalEnt, FM_NULLENT); + CE_SetMember(this, m_bSequenceLoops, false); + CE_SetMember(this, m_flFrameRate, 0.0); + CE_SetMember(this, m_flGroundSpeed, 0.0); + CE_SetMember(this, m_iCapability, 0); + + @Monster_ClearSchedule(this); + @Monster_RouteClear(this); + @Monster_InitBoneControllers(this); + + @Monster_SetEyePosition(this); + + set_pev(this, pev_nextthink, g_flGameTime + 0.1); + // SetUse ( &CBaseMonster::MonsterUse ); + + CE_CallMethod(this, SetThink, "@Monster_MonsterInitThink"); +} + +@Monster_MonsterInitThink(this) { + @Monster_StartMonster(this); +} + +@Monster_InitBoneControllers(this) { + set_controller(this, 0, 0.0); + set_controller(this, 1, 0.0); + set_controller(this, 2, 0.0); + set_controller(this, 3, 0.0); +} + + +@Monster_SetEyePosition(this) { + static Float:vecEyePosition[3]; CE_GetMemberVec(this, m_vecEyePosition, vecEyePosition); + + set_pev(this, pev_view_ofs, vecEyePosition); +} + +@Monster_StartMonster(this) { + new iCapability = CE_GetMember(this, m_iCapability); + + if (@Monster_LookupActivity(this, ACT_RANGE_ATTACK1) != ACTIVITY_NOT_AVAILABLE) { + CE_SetMember(this, m_iCapability, iCapability | CAP_RANGE_ATTACK1); + } + + if (@Monster_LookupActivity(this, ACT_RANGE_ATTACK2) != ACTIVITY_NOT_AVAILABLE) { + CE_SetMember(this, m_iCapability, iCapability | CAP_RANGE_ATTACK2); + } + + if (@Monster_LookupActivity(this, ACT_MELEE_ATTACK1) != ACTIVITY_NOT_AVAILABLE) { + CE_SetMember(this, m_iCapability, iCapability | CAP_MELEE_ATTACK1); + } + + if (@Monster_LookupActivity(this, ACT_MELEE_ATTACK2) != ACTIVITY_NOT_AVAILABLE) { + CE_SetMember(this, m_iCapability, iCapability | CAP_MELEE_ATTACK2); + } + + if (pev(this, pev_movetype) != MOVETYPE_FLY && !(pev(this, pev_spawnflags) & SF_MONSTER_FALL_TO_GROUND)) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + vecOrigin[2] += 1.0; + set_pev(this, pev_origin, vecOrigin); + + engfunc(EngFunc_DropToFloor, this); + + // if (!engfunc(EngFunc_WalkMove, this, 0.0, 0.0, WALKMOVE_NORMAL)) { + // set_pev(this, pev_effects, EF_BRIGHTFIELD); + // } + } else { + set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); + } + + static szTarget[32]; pev(this, pev_target, szTarget, charsmax(szTarget)); + + if (!equal(szTarget, NULL_STRING)) { + new pGoalEnt = engfunc(EngFunc_FindEntityByString, 0, "targetname", szTarget); + + CE_SetMember(this, m_pGoalEnt, pGoalEnt); + + if (pGoalEnt) { + new Float:vecGoal[3]; pev(this, pev_origin, vecGoal); + @Monster_MakeIdealYaw(this, vecGoal); + + CE_SetMember(this, m_iMovementGoal, MOVEGOAL_PATHCORNER); + + if (pev(this, pev_movetype) == MOVETYPE_FLY) { + CE_SetMember(this, m_iMovementActivity, ACT_FLY); + } else { + CE_SetMember(this, m_iMovementActivity, ACT_WALK); + } + + @Monster_RefreshRoute(this); + + @Monster_SetState(this, MONSTER_STATE_IDLE); + @Monster_ChangeSchedule(this, @Monster_GetScheduleOfType(this, MONSTER_SCHED_IDLE_WALK)); + } + } + + CE_CallMethod(this, SetThink, "@Monster_MonsterThink"); + + static szTargetname[32]; pev(this, pev_targetname, szTargetname, charsmax(szTargetname)); + + if (!equal(szTargetname, NULL_STRING)) { + @Monster_SetState(this, MONSTER_STATE_IDLE); + @Monster_SetActivity(this, ACT_IDLE); + @Monster_ChangeSchedule(this, @Monster_GetScheduleOfType(this, MONSTER_SCHED_WAIT_TRIGGER)); + } + + set_pev(this, pev_nextthink, g_flGameTime + random_float(0.1, 0.4)); +} + +@Monster_MonsterInitDead(this) { + @Monster_InitBoneControllers(this); + + set_pev(this, pev_solid, SOLID_BBOX); + set_pev(this, pev_movetype, MOVETYPE_TOSS); + + set_pev(this, pev_frame, 0.0); + @Monster_ResetSequenceInfo(this); + set_pev(this, pev_framerate, 0.0); + + static Float:flHealth; pev(this, pev_health, flHealth); + set_pev(this, pev_max_health, flHealth); + + set_pev(this, pev_deadflag, DEAD_DEAD); + + engfunc(EngFunc_SetSize, this, Float:{0.0, 0.0, 0.0}, Float:{0.0, 0.0, 0.0}); + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + engfunc(EngFunc_SetOrigin, this, vecOrigin); + + @Monster_BecomeDead(this); + + CE_CallMethod(this, SetThink, "@Monster_CorpseFallThink"); + + set_pev(this, pev_nextthink, g_flGameTime + 0.5); +} + +@Monster_BecomeDead(this) { + static Float:flMaxHealth; pev(this, pev_max_health, flMaxHealth); + + set_pev(this, pev_takedamage, DAMAGE_YES); + + set_pev(this, pev_health, flMaxHealth / 2); + set_pev(this, pev_max_health, 5.0); + set_pev(this, pev_movetype, MOVETYPE_TOSS); +} + +@Monster_CorpseFallThink(this) { + if (pev(this, pev_flags) & FL_ONGROUND) { + CE_CallMethod(this, SetThink, NULL_STRING); + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + engfunc(EngFunc_SetOrigin, this, vecOrigin); + } else { + set_pev(this, pev_nextthink, g_flGameTime + 0.1); + } +} + +@Monster_MonsterThink(this) { + static Float:flLTime; pev(this, pev_ltime, flLTime); + + set_pev(this, pev_nextthink, g_flGameTime + 0.01); + set_pev(this, pev_ltime, g_flGameTime); + + @Monster_RunAI(this); + + static Float:flInterval; flInterval = @Monster_FrameAdvance(this, 0.0); + static MONSTER_STATE:iMonsterState; iMonsterState = CE_GetMember(this, m_iMonsterState); + static Activity:iActivity; iActivity = CE_GetMember(this, m_iActivity); + static bool:bSequenceFinished; bSequenceFinished = CE_GetMember(this, m_bSequenceFinished); + static bool:bSequenceLoops; bSequenceLoops = CE_GetMember(this, m_bSequenceLoops); + + if (iMonsterState != MONSTER_STATE_SCRIPT && iMonsterState != MONSTER_STATE_DEAD && iActivity == ACT_IDLE && bSequenceFinished) { + static Activity:iSequence; iSequence = ACTIVITY_NOT_AVAILABLE; + + if (bSequenceLoops) { + iSequence = @Monster_LookupActivity(this, iActivity); + } else { + iSequence = @Monster_LookupActivityHeaviest(this, iActivity); + } + + if (iSequence != ACTIVITY_NOT_AVAILABLE) { + set_pev(this, pev_sequence, iSequence); + @Monster_ResetSequenceInfo(this); + } + } + + @Monster_DispatchAnimEvents(this, flInterval); + + if (!@Monster_MovementIsComplete(this)) { + @Monster_Move(this, flInterval); + } +} + +stock bool:UTIL_BoxIntersects(const Float:vecMin[3], const Float:vecMax[3], const Float:vecOtherMin[3], const Float:vecOtherMax[3]) { + for (new i = 0; i < 3; ++i) { + if (vecMin[i] > vecOtherMax[i]) return false; + if (vecMax[i] < vecOtherMin[i]) return false; + } + + return true; +} + +stock UTIL_FindEntityInBox(pStartEdict, const Float:vecBoxMin[3], const Float:vecBoxMax[3]) { + static iMaxEntities = 0; + if (!iMaxEntities) { + iMaxEntities = global_get(glb_maxEntities); + } + + for (new pEntity = max(pStartEdict + 1, 1); pEntity < iMaxEntities; ++pEntity) { + if (pEntity <= 0) continue; + if (!pev_valid(pEntity)) continue; + + static Float:vecAbsMin[3]; pev(pEntity, pev_absmin, vecAbsMin); + static Float:vecAbsMax[3]; pev(pEntity, pev_absmax, vecAbsMax); + + if (UTIL_BoxIntersects(vecBoxMin, vecBoxMax, vecAbsMin, vecAbsMax)) { + return pEntity; + } + } + + return FM_NULLENT; +} + +@Monster_Look(this, Float:flDistance) { + new iSighted = 0; + + @Monster_ClearConditions(this, COND_SEE_HATE | COND_SEE_DISLIKE | COND_SEE_ENEMY | COND_SEE_FEAR | COND_SEE_NEMESIS | COND_SEE_CLIENT); + + static pLink; pLink = FM_NULLENT; + + if (~pev(this, pev_spawnflags) & SF_MONSTER_PRISONER) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecDelta[3]; xs_vec_set(vecDelta, flDistance, flDistance, flDistance); + static Float:vecAbsMin[3]; xs_vec_sub(vecOrigin, vecDelta, vecAbsMin); + static Float:vecAbsMax[3]; xs_vec_add(vecOrigin, vecDelta, vecAbsMax); + + static pSightEnt; pSightEnt = FM_NULLENT; + while ((pSightEnt = UTIL_FindEntityInBox(pSightEnt, vecAbsMin, vecAbsMax)) != FM_NULLENT) { + if (pSightEnt == this) continue; + if (!(pev(pSightEnt, pev_flags) & (FL_CLIENT | FL_MONSTER))) continue; + if (pev(pSightEnt, pev_spawnflags) & SF_MONSTER_PRISONER) continue; + + static Float:flSightHealth; pev(pSightEnt, pev_health, flSightHealth); + if (flSightHealth <= 0) continue; + + if (@Monster_Relationship(this, pSightEnt) == R_NO) continue; + if (!ExecuteHamB(Ham_FInViewCone, this, pSightEnt)) continue; + if (pev(pSightEnt, pev_flags) & FL_NOTARGET) continue; + if (!ExecuteHamB(Ham_FVisible, this, pSightEnt)) continue; + + if (ExecuteHamB(Ham_IsPlayer, pSightEnt)) { + static iSpawnFlags; iSpawnFlags = pev(this, pev_spawnflags); + + if (iSpawnFlags & SF_MONSTER_WAIT_TILL_SEEN) { + if (pSightEnt && !ExecuteHamB(Ham_FInViewCone, pSightEnt, this)) continue; + + set_pev(this, pev_spawnflags, iSpawnFlags & ~SF_MONSTER_WAIT_TILL_SEEN); + } + + iSighted |= COND_SEE_CLIENT; + } + + set_ent_data_entity(pSightEnt, "CBaseEntity", "m_pLink", pLink); + set_ent_data_entity(this, "CBaseEntity", "m_pLink", pSightEnt); + + if (pSightEnt == CE_GetMember(this, m_pEnemy)) { + iSighted |= COND_SEE_ENEMY; + } + + switch (@Monster_Relationship(this, pSightEnt)) { + case R_NM: iSighted |= COND_SEE_NEMESIS; + case R_HT: iSighted |= COND_SEE_HATE; + case R_DL: iSighted |= COND_SEE_DISLIKE; + case R_FR: iSighted |= COND_SEE_FEAR; + } + } + } + + @Monster_SetConditions(this, iSighted); +} + +@Monster_Listen(this) { + @Monster_ClearConditions(this, COND_HEAR_SOUND | COND_SMELL | COND_SMELL_FOOD); + + static Float:vecEarPosition[3]; ExecuteHamB(Ham_EarPosition, this, vecEarPosition); + static Float:flHearingSensitivity; flHearingSensitivity = @Monster_HearingSensitivity(this); + + static iMySounds; iMySounds = @Monster_SoundMask(this); + + static Struct:sSchedule; sSchedule = CE_GetMember(this, m_sSchedule); + if (sSchedule != Invalid_Struct) { + iMySounds &= StructGetCell(sSchedule, MONSTER_SCHEDULE_DATA_SOUND_MASK); + } + + new iSoundTypes = 0; + + for (new iSound = 0; iSound < sizeof(g_rgSounds); ++iSound) { + if (g_rgSounds[iSound][Sound_ExpiredTime] <= g_flGameTime) continue; + + if ( + (g_rgSounds[iSound][Sound_Type] & iMySounds) && + xs_vec_distance(vecEarPosition, g_rgSounds[iSound][Sound_Origin]) <= (g_rgSounds[iSound][Sound_Volume] * flHearingSensitivity) + ) { + if (@Sound_IsSound(iSound)) { + @Monster_SetConditions(this, COND_HEAR_SOUND); + } else { + if (g_rgSounds[iSound][Sound_Type] & (SOUND_MEAT | SOUND_CARCASS)) { + @Monster_SetConditions(this, COND_SMELL_FOOD); + @Monster_SetConditions(this, COND_SMELL); + } else { + @Monster_SetConditions(this, COND_SMELL); + } + } + + iSoundTypes |= g_rgSounds[iSound][Sound_Type]; + } + } + + CE_SetMember(this, m_iSoundTypes, iSoundTypes); +} + +Float:@Monster_HearingSensitivity(this) { + return 1.0; +} + +@Monster_BestSound(this) { + static Float:vecEarPosition[3]; ExecuteHamB(Ham_EarPosition, this, vecEarPosition); + + static iBestSound; iBestSound = -1; + static Float:flBestDist; flBestDist = 8192.0; + + for (new iSound = 0; iSound < sizeof(g_rgSounds); ++iSound) { + if (g_rgSounds[iSound][Sound_ExpiredTime] <= g_flGameTime) continue; + + if (@Sound_IsSound(iSound)) { + static Float:flDist; flDist = xs_vec_distance(vecEarPosition, g_rgSounds[iSound][Sound_Origin]); + + if (flDist < flBestDist) { + iBestSound = iSound; + flBestDist = flDist; + } + } + } + + return iBestSound; +} + +@Monster_BestScent(this) { + static Float:vecEarPosition[3]; ExecuteHamB(Ham_EarPosition, this, vecEarPosition); + + static iBestSound; iBestSound = -1; + static Float:flBestDist; flBestDist = 8192.0; + + for (new iSound = 0; iSound < sizeof(g_rgSounds); ++iSound) { + if (g_rgSounds[iSound][Sound_ExpiredTime] <= g_flGameTime) continue; + + if (@Sound_IsScent(iSound)) { + static Float:flDist; flDist = xs_vec_distance(vecEarPosition, g_rgSounds[iSound][Sound_Origin]); + + if (flDist < flBestDist) { + iBestSound = iSound; + flBestDist = flDist; + } + } + } + + return iBestSound; +} + +@Monster_MonsterUse(this) { + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_ALERT); +} + +@Monster_SoundMask(this) { + return (SOUND_WORLD | SOUND_COMBAT | SOUND_PLAYER); +} + +bool:@Monster_CheckEnemy(this, pEnemy) { + new bool:iUpdatedLKP = false; + + @Monster_ClearConditions(this, COND_ENEMY_FACING_ME); + + if (!ExecuteHamB(Ham_FVisible, this, pEnemy)) { + @Monster_SetConditions(this, COND_ENEMY_OCCLUDED); + } else { + @Monster_ClearConditions(this, COND_ENEMY_OCCLUDED); + } + + if (!ExecuteHamB(Ham_IsAlive, pEnemy)) { + @Monster_SetConditions(this, COND_ENEMY_DEAD); + @Monster_ClearConditions(this, COND_SEE_ENEMY | COND_ENEMY_OCCLUDED); + return false; + } + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecEnemyOrigin[3]; pev(pEnemy, pev_origin, vecEnemyOrigin); + static Float:vecEnemySize[3]; pev(pEnemy, pev_size, vecEnemySize); + + static Float:vecEnemyHeadOrigin[3]; + xs_vec_copy(vecEnemyOrigin, vecEnemyHeadOrigin); + vecEnemyHeadOrigin[2] += vecEnemySize[2] * 0.5; + + static Float:flDistToEnemy; flDistToEnemy = xs_vec_distance(vecOrigin, vecEnemyOrigin); + static Float:flDistToEnemyHead; flDistToEnemyHead = xs_vec_distance(vecOrigin, vecEnemyHeadOrigin); + + if (flDistToEnemyHead < flDistToEnemy) { + flDistToEnemy = flDistToEnemyHead; + } else { + static Float:vecEnemyFeetOrigin[3]; + xs_vec_copy(vecEnemyOrigin, vecEnemyFeetOrigin); + vecEnemyFeetOrigin[2] -= vecEnemySize[2]; + + static Float:flDistToEnemyFeet; flDistToEnemyFeet = xs_vec_distance(vecOrigin, vecEnemyFeetOrigin); + if (flDistToEnemyFeet < flDistToEnemy) { + flDistToEnemy = flDistToEnemyFeet; + } + } + + if (@Monster_HasConditions(this, COND_SEE_ENEMY)) { + iUpdatedLKP = true; + + CE_SetMemberVec(this, m_vecEnemyLKP, vecEnemyOrigin); + + if (pEnemy) { + if (ExecuteHamB(Ham_FInViewCone, pEnemy, this)) { + @Monster_SetConditions(this, COND_ENEMY_FACING_ME); + } else { + @Monster_ClearConditions(this, COND_ENEMY_FACING_ME); + } + } + + static Float:vecEnemyVelocity[3]; pev(this, pev_velocity, vecEnemyVelocity); + if (xs_vec_len(vecEnemyVelocity)) { + static Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + + xs_vec_sub_scaled(vecEnemyLKP, vecEnemyVelocity, random_float(-0.05, 0.0), vecEnemyLKP); + + CE_SetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + } + } else if (!@Monster_HasConditions(this, COND_ENEMY_OCCLUDED | COND_SEE_ENEMY) && (flDistToEnemy <= 256.0)) { + iUpdatedLKP = true; + CE_SetMemberVec(this, m_vecEnemyLKP, vecEnemyOrigin); + } + + if (flDistToEnemy >= Float:CE_GetMember(this, m_flDistTooFar)) { + @Monster_SetConditions(this, COND_ENEMY_TOOFAR ); + } else { + @Monster_ClearConditions(this, COND_ENEMY_TOOFAR); + } + + if (@Monster_CanCheckAttacks(this)) { + @Monster_CheckAttacks(this, CE_GetMember(this, m_pEnemy), flDistToEnemy); + } + + if (CE_GetMember(this, m_iMovementGoal) == MOVEGOAL_ENEMY) { + static Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + static iRouteSize; iRouteSize = ArraySize(irgRoute); + + for (new i = CE_GetMember(this, m_iRouteIndex); i < iRouteSize; ++i) { + static rgWaypoint[MONSTER_WAYPOINT]; ArrayGetArray(irgRoute, i, rgWaypoint[any:0], _:MONSTER_WAYPOINT); + + if (rgWaypoint[MONSTER_WAYPOINT_TYPE] == (MF_IS_GOAL | MF_TO_ENEMY)) { + if (xs_vec_distance(rgWaypoint[MONSTER_WAYPOINT_LOCATION], vecEnemyLKP) > 80.0) { + @Monster_RefreshRoute(this); + return iUpdatedLKP; + } + } + } + } + + return iUpdatedLKP; +} + +bool:@Monster_CheckAITrigger(this) { + return false; +} + +bool:@Monster_CanCheckAttacks(this) { + return @Monster_HasConditions(this, COND_SEE_ENEMY) && !@Monster_HasConditions(this, COND_ENEMY_TOOFAR); +} + +@Monster_CallGibMonster(this) { + new bool:bFade = false; + + if (@Monster_HasHumanGibs(this)) { + bFade = (get_cvar_float("violence_hgibs") == 0); + } else if (@Monster_HasAlienGibs(this)) { + bFade = get_cvar_float("violence_agibs") == 0; + } + + set_pev(this, pev_takedamage, DAMAGE_NO); + set_pev(this, pev_solid, SOLID_NOT); + + if (bFade) { + @Monster_FadeMonster(this); + } else { + set_pev(this, pev_effects, EF_NODRAW); + CE_CallMethod(this, GibMonster); + } + + set_pev(this, pev_deadflag, DEAD_DEAD); + + static Float:flHealth; pev(this, pev_health, flHealth); + + // don't let the status bar glitch for players.with <0 health. + if (flHealth < 99.0) { + flHealth = 0.0; + set_pev(this, pev_health, flHealth); + } + + if (@Monster_ShouldFadeOnDeath(this) && !bFade) { + CE_Kill(this); + } +} + +@Monster_GibMonster(this) { + emit_sound(this, CHAN_WEAPON, "common/bodysplat.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM); + + static bool:bGibbed; bGibbed = false; + + // only humans throw skulls !!!UNDONE - eventually monsters will have their own sets of gibs + if (@Monster_HasHumanGibs(this)) { + if (get_cvar_float("violence_hgibs") != 0.0) { + // TODO: Implement gibs + // @Entity_SpawnHeadGib(this); + // @Entity_SpawnRandomGibs(this, 4, 1); // throw some human gibs. + } + + bGibbed = true; + } else if (@Monster_HasAlienGibs(this)) { + if (get_cvar_float("violence_agibs") != 0.0) { + // TODO: Implement gibs + // @Entity_SpawnRandomGibs(this, 4, 0); // Throw alien gibs + } + + bGibbed = true; + } + + + if (bGibbed) { + CE_CallMethod(this, SetThink, "@Monster_SUB_Remove"); + set_pev(this, pev_nextthink, g_flGameTime); + } else { + @Monster_FadeMonster(this); + } +} + +@Monster_FadeMonster(this) { + @Monster_StopAnimation(this); + set_pev(this, pev_velocity, Float:{0.0, 0.0, 0.0}); + set_pev(this, pev_movetype, MOVETYPE_NONE); + set_pev(this, pev_avelocity, Float:{0.0, 0.0, 0.0}); + set_pev(this, pev_animtime, g_flGameTime); + set_pev(this, pev_effects, pev(this, pev_effects) | EF_NOINTERP); + @Monster_SUB_StartFadeOut(this); +} + +@Monster_SUB_StartFadeOut(this) { + if (pev(this, pev_rendermode) == kRenderNormal) { + set_pev(this, pev_renderamt, 255.0); + set_pev(this, pev_rendermode, kRenderTransTexture); + } + + set_pev(this, pev_solid, SOLID_NOT); + set_pev(this, pev_avelocity, Float:{0.0, 0.0, 0.0}); + + set_pev(this, pev_nextthink, g_flGameTime + 0.1); + + CE_CallMethod(this, SetThink, "@Monster_SUB_FadeOut"); +} + +@Monster_SUB_FadeOut(this) { + static Float:flRenderAmt; pev(this, pev_renderamt, flRenderAmt); + + if (flRenderAmt > 7.0) { + set_pev(this, pev_renderamt, flRenderAmt - 7.0); + set_pev(this, pev_nextthink, g_flGameTime + 0.1); + } else { + set_pev(this, pev_renderamt, 0.0); + set_pev(this, pev_nextthink, g_flGameTime + 0.1); + + CE_CallMethod(this, SetThink, "@Monster_SUB_Remove"); + } +} + +@Monster_SUB_Remove(this) { + CE_Kill(this); +} + +@Monster_HasHumanGibs(this) { + new myClass = ExecuteHamB(Ham_Classify, this); + + return ( + myClass == CLASS_HUMAN_MILITARY || + myClass == CLASS_PLAYER_ALLY || + myClass == CLASS_HUMAN_PASSIVE || + myClass == CLASS_PLAYER + ); +} + +@Monster_HasAlienGibs(this) { + new myClass = ExecuteHamB(Ham_Classify, this); + + return ( + myClass == CLASS_ALIEN_MILITARY || + myClass == CLASS_ALIEN_MONSTER || + myClass == CLASS_ALIEN_PASSIVE || + myClass == CLASS_INSECT || + myClass == CLASS_ALIEN_PREDATOR || + myClass == CLASS_ALIEN_PREY + ); +} + +@Monster_CheckAttacks(this, pTarget, Float:flDistance) { + @Monster_ClearConditions(this, COND_CAN_RANGE_ATTACK1 | COND_CAN_RANGE_ATTACK2 | COND_CAN_MELEE_ATTACK1 | COND_CAN_MELEE_ATTACK2); + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecTarget[3]; pev(pTarget, pev_origin, vecTarget); + + static Float:vecDirection[3]; + xs_vec_set(vecDirection, vecTarget[0] - vecOrigin[0], vecTarget[1] - vecOrigin[1], 0.0); + xs_vec_normalize(vecDirection, vecDirection); + + static Float:vecAngles[3]; pev(this, pev_angles, vecAngles); + static Float:vecForward[3]; angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecForward); + + // TODO: Check for forward ROLL + static Float:flDot; flDot = xs_vec_dot(vecDirection, vecForward); + + static iCapability; iCapability = CE_GetMember(this, m_iCapability); + + if (iCapability & CAP_RANGE_ATTACK1) { + if (@Monster_CheckRangeAttack1(this, flDot, flDistance)) { + @Monster_SetConditions(this, COND_CAN_RANGE_ATTACK1); + } + } + + if (iCapability & CAP_RANGE_ATTACK2) { + if (@Monster_CheckRangeAttack2(this, flDot, flDistance)) { + @Monster_SetConditions(this, COND_CAN_RANGE_ATTACK2); + } + } + + if (iCapability & CAP_MELEE_ATTACK1) { + if (@Monster_CheckMeleeAttack1(this, flDot, flDistance)) { + @Monster_SetConditions(this, COND_CAN_MELEE_ATTACK1); + } + } + + if (iCapability & CAP_MELEE_ATTACK2) { + if (@Monster_CheckMeleeAttack2(this, flDot, flDistance)) { + @Monster_SetConditions(this, COND_CAN_MELEE_ATTACK2); + } + } +} + +bool:@Monster_CheckRangeAttack1(this, Float:flDot, Float:flDistance) { + static Float:flMeleeRange1; flMeleeRange1 = CE_GetMember(this, m_flMeleeAttack1Range); + static Float:flMeleeRange2; flMeleeRange2 = CE_GetMember(this, m_flMeleeAttack2Range); + static Float:flMeleeRange; flMeleeRange = floatmax(flMeleeRange1, flMeleeRange2); + static Float:flRange; flRange = CE_GetMember(this, m_flRangeAttack1Range); + + return flRange > 0.0 && (flDistance > flMeleeRange && flDistance <= flRange && flDot >= 0.5); +} + +bool:@Monster_CheckRangeAttack2(this, Float:flDot, Float:flDistance) { + static Float:flMeleeRange1; flMeleeRange1 = CE_GetMember(this, m_flMeleeAttack1Range); + static Float:flMeleeRange2; flMeleeRange2 = CE_GetMember(this, m_flMeleeAttack2Range); + static Float:flMeleeRange; flMeleeRange = floatmax(flMeleeRange1, flMeleeRange2); + static Float:flRange; flRange = CE_GetMember(this, m_flRangeAttack2Range); + + return flRange > 0.0 && (flDistance > flMeleeRange && flDistance <= flRange && flDot >= 0.5); +} + +bool:@Monster_CheckMeleeAttack1(this, Float:flDot, Float:flDistance) { + static pEnemy; pEnemy = CE_GetMember(this, m_pEnemy); + static Float:flRange; flRange = CE_GetMember(this, m_flMeleeAttack1Range); + + return flRange > 0.0 && (flDistance <= flRange && flDot >= 0.7 && pEnemy != FM_NULLENT && (pev(pEnemy, pev_flags) & FL_ONGROUND)); +} + +bool:@Monster_CheckMeleeAttack2(this, Float:flDot, Float:flDistance) { + static Float:flRange; flRange = CE_GetMember(this, m_flMeleeAttack2Range); + + return flRange > 0.0 && flDistance <= flRange && flDot >= 0.7; +} + +@Monster_GetEnemy(this) { + static Struct:sSchedule; sSchedule = CE_GetMember(this, m_sSchedule); + + static pEnemy; pEnemy = CE_GetMember(this, m_pEnemy); + + if (@Monster_HasConditions(this, COND_SEE_HATE | COND_SEE_DISLIKE | COND_SEE_NEMESIS)) { + new pNewEnemy = @Monster_BestVisibleEnemy(this); + + if (pNewEnemy != pEnemy && pNewEnemy != FM_NULLENT) { + if (sSchedule != Invalid_Struct) { + static Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + + if (StructGetCell(sSchedule, MONSTER_SCHEDULE_DATA_INTERRUPT_MASK) & COND_NEW_ENEMY) { + @Monster_PushEnemy(this, pEnemy, vecEnemyLKP); + @Monster_SetConditions(this, COND_NEW_ENEMY); + CE_SetMember(this, m_pEnemy, pNewEnemy); + + pev(pNewEnemy, pev_origin, vecEnemyLKP); + CE_SetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + } + + new pOwner = pev(pNewEnemy, pev_owner); + if (pOwner) { + if (pOwner && (pev(pOwner, pev_flags) & FL_MONSTER) && @Monster_Relationship(this, pOwner) != R_NO) { + @Monster_PushEnemy(this, pOwner, vecEnemyLKP); + } + } + } + } + } + + if (CE_GetMember(this, m_pEnemy) != FM_NULLENT) return true; + + if (@Monster_PopEnemy(this)) { + if (sSchedule != Invalid_Struct) { + if (StructGetCell(sSchedule, MONSTER_SCHEDULE_DATA_INTERRUPT_MASK) & COND_NEW_ENEMY) { + @Monster_SetConditions(this, COND_NEW_ENEMY); + } + } + } + + return false; +} + +@Monster_PrescheduleThink(this) {} + +@Monster_Move(this, Float:flInterval) { + if (@Monster_IsRouteClear(this)) { + if (CE_GetMember(this, m_iMovementGoal) == MOVEGOAL_NONE || !@Monster_RefreshRoute(this)) { + @Monster_TaskFail(this); + return; + } + } + + static Float:flMoveWaitFinished; flMoveWaitFinished = CE_GetMember(this, m_flMoveWaitFinished); + + if (flMoveWaitFinished > g_flGameTime) return; + + static Float:flMoveWaitTime; flMoveWaitTime = CE_GetMember(this, m_flMoveWaitTime); + static Float:flGroundSpeed; flGroundSpeed = CE_GetMember(this, m_flGroundSpeed); + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + static rgWaypoint[MONSTER_WAYPOINT]; ArrayGetArray(irgRoute, CE_GetMember(this, m_iRouteIndex), rgWaypoint[any:0], _:MONSTER_WAYPOINT); + static Float:flWaypointDist; flWaypointDist = xs_vec_distance_2d(vecOrigin, rgWaypoint[MONSTER_WAYPOINT_LOCATION]); + static Float:flCheckDist; flCheckDist = floatmin(flWaypointDist, DIST_TO_CHECK); + + static Float:vecDir[3]; + xs_vec_sub(rgWaypoint[MONSTER_WAYPOINT_LOCATION], vecOrigin, vecDir); + xs_vec_normalize(vecDir, vecDir); + + static Float:vecTarget[3]; xs_vec_add_scaled(vecOrigin, vecDir, flCheckDist, vecTarget); + + @Monster_MakeIdealYaw(this, rgWaypoint[MONSTER_WAYPOINT_LOCATION]); + + static Float:flYawSpeed; pev(this, pev_yaw_speed, flYawSpeed); + @Monster_ChangeYaw(this, flYawSpeed); + + static pTargetEnt; pTargetEnt = FM_NULLENT; + if ((rgWaypoint[MONSTER_WAYPOINT_TYPE] & (~MF_NOT_TO_MASK)) == MF_TO_ENEMY) { + pTargetEnt = CE_GetMember(this, m_pEnemy); + } else if ((rgWaypoint[MONSTER_WAYPOINT_TYPE] & ~MF_NOT_TO_MASK) == MF_TO_TARGETENT) { + pTargetEnt = CE_GetMember(this, m_pTargetEnt); + } + + static Float:flDist; flDist = 0.0; + + if (!(rgWaypoint[MONSTER_WAYPOINT_TYPE] & MF_TO_NAV) && @Monster_CheckLocalMove(this, vecOrigin, vecTarget, pTargetEnt, false, flDist) != MONSTER_LOCALMOVE_VALID) { + @Monster_Stop(this); + + static pBlocker; pBlocker = global_get(glb_trace_ent); + if (pBlocker) { + ExecuteHamB(Ham_Blocked, this, pBlocker); + } + + if (pBlocker && flMoveWaitTime > 0.0 && ExecuteHamB(Ham_IsMoving, pBlocker) && !ExecuteHamB(Ham_IsPlayer, pBlocker) && g_flGameTime - flMoveWaitFinished > 3.0) { + if (flDist < flGroundSpeed) { + flMoveWaitFinished = g_flGameTime + flMoveWaitTime; + CE_SetMember(this, m_flMoveWaitFinished, flMoveWaitFinished); + return; + } + } else { + static Float:vecApex[3]; + + if (@Monster_Triangulate(this, vecOrigin, rgWaypoint[MONSTER_WAYPOINT_LOCATION], flDist, pTargetEnt, vecApex)) { + @Monster_RouteSimplify(this, pTargetEnt); + @Monster_InsertWaypoint(this, vecApex, MF_TO_DETOUR); + } else { + @Monster_Stop(this); + + if (flMoveWaitTime > 0.0 && !(CE_GetMember(this, m_iMemory) & MEMORY_MOVE_FAILED)) { + @Monster_RefreshRoute(this); + + if (@Monster_IsRouteClear(this)) { + @Monster_TaskFail(this); + } else { + if (g_flGameTime - flMoveWaitFinished < 0.2) { + @Monster_Remember(this, MEMORY_MOVE_FAILED); + } + + flMoveWaitFinished = g_flGameTime + 0.1; + CE_SetMember(this, m_flMoveWaitFinished, flMoveWaitFinished); + } + } else { + @Monster_TaskFail(this); + } + + return; + } + } + } + + if (@Monster_ShouldAdvanceRoute(this, flWaypointDist)) { + @Monster_AdvanceRoute(this, flWaypointDist); + } + + if (flMoveWaitFinished > g_flGameTime) { + @Monster_Stop(this); + return; + } + + if (flCheckDist < flGroundSpeed * flInterval) { + flInterval = flCheckDist / flGroundSpeed; + } + + @Monster_MoveExecute(this, pTargetEnt, vecDir, flInterval); + + if (@Monster_MovementIsComplete(this)) { + @Monster_Stop(this); + @Monster_RouteClear(this); + } +} + +@Monster_InsertWaypoint(this, const Float:vecLocation[3], iMoveFlags) { + static rgWaypoint[MONSTER_WAYPOINT]; + xs_vec_copy(vecLocation, rgWaypoint[MONSTER_WAYPOINT_LOCATION]); + rgWaypoint[MONSTER_WAYPOINT_TYPE] = iMoveFlags; + + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + + if (!ArraySize(irgRoute)) { + ArrayPushArray(irgRoute, rgWaypoint[any:0]); + return; + } + + static iRouteIndex; iRouteIndex = CE_GetMember(this, m_iRouteIndex); + + static rgCurrentWaypoint[MONSTER_WAYPOINT]; + ArrayGetArray(irgRoute, iRouteIndex, rgCurrentWaypoint[any:0], _:MONSTER_WAYPOINT); + + rgWaypoint[MONSTER_WAYPOINT_TYPE] |= (rgCurrentWaypoint[MONSTER_WAYPOINT_TYPE] & ~MF_NOT_TO_MASK); + + ArrayInsertArrayBefore(irgRoute, iRouteIndex, rgWaypoint[any:0]); +} + +bool:@Monster_ShouldAdvanceRoute(this, Float:flWaypointDist) { + return flWaypointDist <= MONSTER_CUT_CORNER_DIST; +} + +@Monster_AdvanceRoute(this, Float:flDistance) { + static iRouteIndex; iRouteIndex = CE_GetMember(this, m_iRouteIndex); + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + + if (iRouteIndex == ROUTE_SIZE - 1) { + @Monster_RefreshRoute(this); + return; + } + + static rgCurrentWaypoint[MONSTER_WAYPOINT]; ArrayGetArray(irgRoute, iRouteIndex, rgCurrentWaypoint[any:0], _:MONSTER_WAYPOINT); + + if (rgCurrentWaypoint[MONSTER_WAYPOINT_TYPE] & MF_IS_GOAL) { + if (flDistance < Float:CE_GetMember(this, m_flGroundSpeed) * 0.2) { + @Monster_MovementComplete(this); + } + + return; + } + + if ((rgCurrentWaypoint[MONSTER_WAYPOINT_TYPE] & ~MF_NOT_TO_MASK) == MF_TO_PATHCORNER) { + new pNextTarget = ExecuteHamB(Ham_GetNextTarget, CE_GetMember(this, m_pGoalEnt)); + CE_SetMember(this, m_pGoalEnt, pNextTarget); + } + + // Check if both waypoints are nodes and there is a link for a door + static rgNextWaypoint[MONSTER_WAYPOINT]; ArrayGetArray(irgRoute, iRouteIndex + 1, rgNextWaypoint[any:0], _:MONSTER_WAYPOINT); + if ((rgCurrentWaypoint[MONSTER_WAYPOINT_TYPE] & MF_TO_NODE) && (rgNextWaypoint[MONSTER_WAYPOINT_TYPE] & MF_TO_NODE)) { + UTIL_DrawLine(rgCurrentWaypoint[MONSTER_WAYPOINT_LOCATION], rgNextWaypoint[MONSTER_WAYPOINT_LOCATION]); + + engfunc(EngFunc_TraceLine, rgCurrentWaypoint[MONSTER_WAYPOINT_LOCATION], rgNextWaypoint[MONSTER_WAYPOINT_LOCATION], DONT_IGNORE_MONSTERS, this, g_pTrace); + + static pHit; pHit = get_tr2(g_pTrace, TR_pHit); + + if (pHit > 0) { + if (UTIL_IsDoor(pHit)) { + static Float:flMoveWaitFinished; flMoveWaitFinished = @Monster_OpenDoorAndWait(this, pHit); + CE_SetMember(this, m_flMoveWaitFinished, flMoveWaitFinished); + } + } + } + + CE_SetMember(this, m_iRouteIndex, iRouteIndex + 1); +} + +Float:@Monster_OpenDoorAndWait(this, pDoor) { + if (!UTIL_IsUsableEntity(pDoor, this)) return 0.0; + + ExecuteHamB(Ham_Use, pDoor, this, this, USE_ON, 0.0); + + static Float:flDoorNextThink; pev(pDoor, pev_nextthink, flDoorNextThink); + static Float:flDoorLastThink; pev(pDoor, pev_ltime, flDoorLastThink); + static Float:flTravelTime; flTravelTime = flDoorNextThink - flDoorLastThink; + + static szTargetName[32]; pev(pDoor, pev_targetname, szTargetName, charsmax(szTargetName)); + + if (equal(szTargetName, NULL_STRING)) { + + static pTarget; pTarget = FM_NULLENT; + while ((pTarget = engfunc(EngFunc_FindEntityByString, pTarget, "targetname", szTargetName)) != 0) { + if (pTarget == pDoor) continue; + + static szTargetClassname[32]; pev(pTarget, pev_classname, szTargetClassname, charsmax(szTargetClassname)); + + if (UTIL_IsDoor(pTarget)) { + ExecuteHamB(Ham_Use, pTarget, this, this, USE_ON, 0.0); + } + } + } + + return g_flGameTime + flTravelTime; +} + +@Monster_Stop(this) { + CE_SetMember(this, m_iIdealActivity, @Monster_GetStoppedActivity(this)); +} + +@Monster_Classify() { + return CLASS_NONE; +} + +@Monster_CineCleanup(this) {} + +@Monster_BestVisibleEnemy(this) { + new Float:flNearest = 8192.0; + new pNextEnt = get_ent_data_entity(this, "CBaseEntity", "m_pLink"); + new pReturn = FM_NULLENT; + new iBestRelationship = R_NO; + + // TODO: Check stop condition + while (pNextEnt != FM_NULLENT) { + if (ExecuteHamB(Ham_IsAlive, pNextEnt)) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecTarget[3]; pev(pNextEnt, pev_origin, vecTarget); + + if (@Monster_Relationship(this, pNextEnt) > iBestRelationship) { + iBestRelationship = @Monster_Relationship(this, pNextEnt); + flNearest = xs_vec_distance(vecOrigin, vecTarget); + pReturn = pNextEnt; + } else if (@Monster_Relationship(this, pNextEnt) == iBestRelationship) { + static Float:flDistance; flDistance = xs_vec_distance(vecOrigin, vecTarget); + + if (flDistance <= flNearest) { + flNearest = flDistance; + iBestRelationship = @Monster_Relationship(this, pNextEnt); + pReturn = pNextEnt; + } + } + } + + pNextEnt = get_ent_data_entity(pNextEnt, "CBaseEntity", "m_pLink"); + } + + return pReturn; +} + +@Monster_Relationship(this, pTarget) { + static const rgClassificationTable[14][14] = { + /* NONE MACH PLYR HPASS HMIL AMIL APASS AMONST APREY APRED INSECT PLRALY PBWPN ABWPN */ + /*NONE*/ { R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO }, + /*MACHINE*/ { R_NO, R_NO, R_DL, R_DL, R_NO, R_DL, R_DL, R_DL, R_DL, R_DL, R_NO, R_DL, R_DL, R_DL }, + /*PLAYER*/ { R_NO, R_DL, R_NO, R_NO, R_DL, R_DL, R_DL, R_DL, R_DL, R_DL, R_NO, R_NO, R_DL, R_DL }, + /*HUMANPASSIVE*/ { R_NO, R_NO, R_AL, R_AL, R_HT, R_FR, R_NO, R_HT, R_DL, R_FR, R_NO, R_AL, R_NO, R_NO }, + /*HUMANMILITAR*/ { R_NO, R_NO, R_HT, R_DL, R_NO, R_HT, R_DL, R_DL, R_DL, R_DL, R_NO, R_HT, R_NO, R_NO }, + /*ALIENMILITAR*/ { R_NO, R_DL, R_HT, R_DL, R_HT, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_DL, R_NO, R_NO }, + /*ALIENPASSIVE*/ { R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO }, + /*ALIENMONSTER*/ { R_NO, R_DL, R_DL, R_DL, R_DL, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_DL, R_NO, R_NO }, + /*ALIENPREY*/ { R_NO, R_NO, R_DL, R_DL, R_DL, R_NO, R_NO, R_NO, R_NO, R_FR, R_NO, R_DL, R_NO, R_NO }, + /*ALIENPREDATO*/ { R_NO, R_NO, R_DL, R_DL, R_DL, R_NO, R_NO, R_NO, R_HT, R_DL, R_NO, R_DL, R_NO, R_NO }, + /*INSECT*/ { R_FR, R_FR, R_FR, R_FR, R_FR, R_NO, R_FR, R_FR, R_FR, R_FR, R_NO, R_FR, R_NO, R_NO }, + /*PLAYERALLY*/ { R_NO, R_DL, R_AL, R_AL, R_DL, R_DL, R_DL, R_DL, R_DL, R_DL, R_NO, R_NO, R_NO, R_NO }, + /*PBIOWEAPON*/ { R_NO, R_NO, R_DL, R_DL, R_DL, R_DL, R_DL, R_DL, R_DL, R_DL, R_NO, R_DL, R_NO, R_DL }, + /*ABIOWEAPON*/ { R_NO, R_NO, R_DL, R_DL, R_DL, R_AL, R_NO, R_DL, R_DL, R_NO, R_NO, R_DL, R_DL, R_NO } + }; + + return rgClassificationTable[ExecuteHamB(Ham_Classify, this)][ExecuteHamB(Ham_Classify, pTarget)]; +} + +@Monster_PushEnemy(this, pEnemy, const Float:vecLastKnownPos[3]) { + if (pEnemy == FM_NULLENT) return; + + new Array:irgOldEnemies = CE_GetMember(this, m_irgOldEnemies); + new iOldEnemiesNum = ArraySize(irgOldEnemies); + + for (new i = 0; i < iOldEnemiesNum; ++i) { + if (ArrayGetCell(irgOldEnemies, i, _:MONSTER_ENEMY_ENTITY) == pEnemy) return; + } + + new rgEnemy[MONSTER_ENEMY]; + rgEnemy[MONSTER_ENEMY_ENTITY] = pEnemy; + rgEnemy[MONSTER_ENEMY_LOCATION] = vecLastKnownPos; + + ArrayPushArray(irgOldEnemies, rgEnemy[any:0]); +} + +bool:@Monster_PopEnemy(this) { + new Array:irgOldEnemies = CE_GetMember(this, m_irgOldEnemies); + new iOldEnemiesNum = ArraySize(irgOldEnemies); + + for (new i = iOldEnemiesNum - 1; i >= 0; --i) { + static rgEnemy[MONSTER_ENEMY]; ArrayGetArray(irgOldEnemies, i, rgEnemy[any:0]); + + if (ExecuteHamB(Ham_IsAlive, rgEnemy[MONSTER_ENEMY_ENTITY])) { + CE_SetMember(this, m_pEnemy, rgEnemy[MONSTER_ENEMY_ENTITY]); + CE_SetMemberVec(this, m_vecEnemyLKP, rgEnemy[MONSTER_ENEMY_LOCATION]); + return true; + } else { + ArrayDeleteItem(irgOldEnemies, i); + } + } + + return false; +} + +@Monster_GetTask(this, rgTask[MONSTER_TASK_DATA]) { + static Struct:sSchedule; sSchedule = CE_GetMember(this, m_sSchedule); + static iScheduleIndex; iScheduleIndex = CE_GetMember(this, m_iScheduleIndex); + + if (iScheduleIndex < 0) return -1; + if (iScheduleIndex >= StructGetCell(sSchedule, MONSTER_SCHEDULE_DATA_TASK_SIZE)) return -1; + + StructGetArray(sSchedule, MONSTER_SCHEDULE_DATA_TASK, rgTask, MONSTER_TASK_DATA, _:MONSTER_TASK_DATA * iScheduleIndex); + + return rgTask[MONSTER_TASK_DATA_ID]; +} + +bool:@Monster_CanActiveIdle(this) { + return false; +} + +@Monster_MovementComplete(this) { + new iTaskStatus; CE_GetMember(this, m_iTaskStatus); + + switch (iTaskStatus) { + case MONSTER_TASK_STATUS_NEW, MONSTER_TASK_STATUS_RUNNING: { + CE_SetMember(this, m_iTaskStatus, MONSTER_TASK_STATUS_RUNNING_TASK); + } + case MONSTER_TASK_STATUS_RUNNING_MOVEMENT: { + @Monster_TaskComplete(this); + } + } + + CE_SetMember(this, m_iMovementGoal, MOVEGOAL_NONE); +} + +@Monster_MoveExecute(this, pTargetEnt, const Float:vecDir[3], Float:flInterval) { + static iMovementActivity; iMovementActivity = CE_GetMember(this, m_iMovementActivity); + static iIdealActivity; iIdealActivity = CE_GetMember(this, m_iIdealActivity); + + if (iIdealActivity != iMovementActivity) { + CE_SetMember(this, m_iIdealActivity, iMovementActivity); + } + + static Float:flStepSize; flStepSize = CE_GetMember(this, m_flStepSize); + static Float:flFrameRate; pev(this, pev_framerate, flFrameRate); + static Float:flTotal; flTotal = Float:CE_GetMember(this, m_flGroundSpeed) * flFrameRate * flInterval; + + while (flTotal > 0.001) { + static Float:flStep; flStep = floatmin(flStepSize, flTotal); + static Float:vecAngles[3]; pev(this, pev_angles, vecAngles); + @Monster_WalkMove(this, vecAngles[1], flStep, WALKMOVE_NORMAL); + flTotal -= flStep; + } +} + +Struct:@Monster_GetSchedule(this) { + static MONSTER_STATE:iMonsterState; iMonsterState = CE_GetMember(this, m_iMonsterState); + + switch (iMonsterState) { + case MONSTER_STATE_PRONE: { + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_BARNACLE_VICTIM_GRAB); + } + case MONSTER_STATE_IDLE: { + if (@Monster_HasConditions(this, COND_HEAR_SOUND)) { + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_ALERT_FACE); + } else if (!@Monster_IsRouteClear(this)) { + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_IDLE_WALK); + } else { + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_IDLE_STAND); + } + } + case MONSTER_STATE_ALERT: { + if (@Monster_HasConditions(this, COND_ENEMY_DEAD) && @Monster_LookupActivity(this, ACT_VICTORY_DANCE) != ACTIVITY_NOT_AVAILABLE) { + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_VICTORY_DANCE); + } + + if (@Monster_HasConditions(this, COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE)) { + static Float:flFieldOfView; flFieldOfView = CE_GetMember(this, m_flFieldOfView); + + if (floatabs(@Monster_YawDiff(this)) < (1.0 - flFieldOfView) * 60) { + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_TAKE_COVER_FROM_ORIGIN); + } + + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_ALERT_SMALL_FLINCH); + } + + if (@Monster_HasConditions(this, COND_HEAR_SOUND)) { + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_ALERT_FACE); + } + + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_ALERT_STAND); + } + case MONSTER_STATE_COMBAT: { + if (@Monster_HasConditions(this, COND_ENEMY_DEAD)) { + CE_SetMember(this, m_pEnemy, FM_NULLENT); + + if (@Monster_GetEnemy(this)) { + @Monster_ClearConditions(this, COND_ENEMY_DEAD); + } else { + @Monster_SetState(this, MONSTER_STATE_ALERT); + } + + return @Monster_GetSchedule(this); + } + + if (@Monster_HasConditions(this, COND_NEW_ENEMY)) { + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_WAKE_ANGRY); + } + + if (@Monster_HasConditions(this, COND_LIGHT_DAMAGE) && !@Monster_HasMemory(this, MEMORY_FLINCHED)) { + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_SMALL_FLINCH); + } + + if (!@Monster_HasConditions(this, COND_SEE_ENEMY)) { + if (!@Monster_HasConditions(this, COND_ENEMY_OCCLUDED)) { + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_COMBAT_FACE); + } + + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_CHASE_ENEMY); + } + + if (@Monster_HasConditions(this, COND_CAN_RANGE_ATTACK1)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_RANGE_ATTACK1); + if (@Monster_HasConditions(this, COND_CAN_RANGE_ATTACK2)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_RANGE_ATTACK2); + if (@Monster_HasConditions(this, COND_CAN_MELEE_ATTACK1)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_MELEE_ATTACK1); + if (@Monster_HasConditions(this, COND_CAN_MELEE_ATTACK2)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_MELEE_ATTACK2); + if (!@Monster_HasConditions(this, COND_CAN_RANGE_ATTACK1 | COND_CAN_MELEE_ATTACK1)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_CHASE_ENEMY); + if (!@Monster_FacingIdeal(this)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_COMBAT_FACE); + } + case MONSTER_STATE_DEAD: { + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_DIE); + } + case MONSTER_STATE_SCRIPT: { + new pCine = CE_GetMember(this, m_pCine); + + if (!pCine) { + @Monster_CineCleanup(this); + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_IDLE_STAND); + } + + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_AISCRIPT); + } + } + + return GetSharedSchedule(MONSTER_SHARED_SCHED_ERROR); +} + +Struct:@Monster_GetScheduleOfType(this, MONSTER_SCHEDULE_TYPE:iType) { + switch (iType) { + case MONSTER_SCHED_AISCRIPT: { + new pCine = CE_GetMember(this, m_pCine); + + if (!pCine) { + @Monster_CineCleanup(this); + return @Monster_GetScheduleOfType(this, MONSTER_SCHED_IDLE_STAND); + } + + new iMoveTo = CE_GetMember(pCine, "iMoveTo"); + + switch (iMoveTo) { + case 0, 4: return GetSharedSchedule(MONSTER_SHARED_SCHED_WAIT_SCRIPT); + case 1: return GetSharedSchedule(MONSTER_SHARED_SCHED_WALK_TO_SCRIPT); + case 2: return GetSharedSchedule(MONSTER_SHARED_SCHED_RUN_TO_SCRIPT); + case 5: return GetSharedSchedule(MONSTER_SHARED_SCHED_FACE_SCRIPT); + } + } + case MONSTER_SCHED_IDLE_STAND: { + if (random(14) == 0 && @Monster_CanActiveIdle(this)) { + return GetSharedSchedule(MONSTER_SHARED_SCHED_ACTIVE_IDLE); + } + + return GetSharedSchedule(MONSTER_SHARED_SCHED_IDLE_STAND); + } + case MONSTER_SCHED_IDLE_WALK: return GetSharedSchedule(MONSTER_SHARED_SCHED_IDLE_WALK); + case MONSTER_SCHED_WAIT_TRIGGER: return GetSharedSchedule(MONSTER_SHARED_SCHED_WAIT_TRIGGER); + case MONSTER_SCHED_WAKE_ANGRY: return GetSharedSchedule(MONSTER_SHARED_SCHED_WAKE_ANGRY); + case MONSTER_SCHED_ALERT_FACE: return GetSharedSchedule(MONSTER_SHARED_SCHED_ALERT_FACE); + case MONSTER_SCHED_ALERT_STAND: return GetSharedSchedule(MONSTER_SHARED_SCHED_ALERT_STAND); + case MONSTER_SCHED_COMBAT_STAND: return GetSharedSchedule(MONSTER_SHARED_SCHED_COMBAT_STAND); + case MONSTER_SCHED_COMBAT_FACE: return GetSharedSchedule(MONSTER_SHARED_SCHED_COMBAT_FACE); + case MONSTER_SCHED_CHASE_ENEMY: return GetSharedSchedule(MONSTER_SHARED_SCHED_CHASE_ENEMY); + case MONSTER_SCHED_CHASE_ENEMY_FAILED: return GetSharedSchedule(MONSTER_SHARED_SCHED_FAIL); + case MONSTER_SCHED_SMALL_FLINCH: return GetSharedSchedule(MONSTER_SHARED_SCHED_SMALL_FLINCH); + case MONSTER_SCHED_ALERT_SMALL_FLINCH: return GetSharedSchedule(MONSTER_SHARED_SCHED_ALERT_SMALL_FLINCH); + case MONSTER_SCHED_RELOAD: return GetSharedSchedule(MONSTER_SHARED_SCHED_RELOAD); + case MONSTER_SCHED_ARM_WEAPON: return GetSharedSchedule(MONSTER_SHARED_SCHED_ARM_WEAPON); + case MONSTER_SCHED_STANDOFF: return GetSharedSchedule(MONSTER_SHARED_SCHED_STANDOFF); + case MONSTER_SCHED_RANGE_ATTACK1: return GetSharedSchedule(MONSTER_SHARED_SCHED_RANGE_ATTACK1); + case MONSTER_SCHED_RANGE_ATTACK2: return GetSharedSchedule(MONSTER_SHARED_SCHED_RANGE_ATTACK2); + case MONSTER_SCHED_MELEE_ATTACK1: return GetSharedSchedule(MONSTER_SHARED_SCHED_MELEE_ATTACK1); + case MONSTER_SCHED_MELEE_ATTACK2: return GetSharedSchedule(MONSTER_SHARED_SCHED_MELEE_ATTACK2); + case MONSTER_SCHED_SPECIAL_ATTACK1: return GetSharedSchedule(MONSTER_SHARED_SCHED_SPECIAL_ATTACK1); + case MONSTER_SCHED_SPECIAL_ATTACK2: return GetSharedSchedule(MONSTER_SHARED_SCHED_SPECIAL_ATTACK2); + case MONSTER_SCHED_TAKE_COVER_FROM_BEST_SOUND: return GetSharedSchedule(MONSTER_SHARED_SCHED_TAKE_COVER_FROM_BEST_SOUND); + case MONSTER_SCHED_TAKE_COVER_FROM_ENEMY: return GetSharedSchedule(MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ENEMY); + case MONSTER_SCHED_COWER: return GetSharedSchedule(MONSTER_SHARED_SCHED_COWER); + case MONSTER_SCHED_AMBUSH: return GetSharedSchedule(MONSTER_SHARED_SCHED_AMBUSH); + case MONSTER_SCHED_BARNACLE_VICTIM_GRAB: return GetSharedSchedule(MONSTER_SHARED_SCHED_BARNACLE_VICTIM_GRAB); + case MONSTER_SCHED_BARNACLE_VICTIM_CHOMP: return GetSharedSchedule(MONSTER_SHARED_SCHED_BARNACLE_VICTIM_CHOMP); + case MONSTER_SCHED_INVESTIGATE_SOUND: return GetSharedSchedule(MONSTER_SHARED_SCHED_INVESTIGATE_SOUND); + case MONSTER_SCHED_DIE: return GetSharedSchedule(MONSTER_SHARED_SCHED_DIE); + case MONSTER_SCHED_TAKE_COVER_FROM_ORIGIN: return GetSharedSchedule(MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ORIGIN); + case MONSTER_SCHED_VICTORY_DANCE: return GetSharedSchedule(MONSTER_SHARED_SCHED_VICTORY_DANCE); + case MONSTER_SCHED_FAIL: return GetSharedSchedule(MONSTER_SHARED_SCHED_FAIL); + default: return GetSharedSchedule(MONSTER_SHARED_SCHED_IDLE_STAND); + } + + return Invalid_Struct; +} + +@Monster_ClearSchedule(this) { + new Struct:sSchedule = CE_GetMember(this, m_sSchedule); + if (sSchedule != Invalid_Struct && StructGetCell(sSchedule, MONSTER_SCHEDULE_DATA_SHARED_ID) == MONSTER_SHARED_SCHED_INVALID) { + StructDestroy(sSchedule); + } + + CE_SetMember(this, m_iTaskStatus, MONSTER_TASK_STATUS_NEW); + CE_SetMember(this, m_sSchedule, Invalid_Struct); + CE_SetMember(this, m_iScheduleIndex, 0); + CE_SetMember(this, m_iFailSchedule, MONSTER_SCHED_NONE); +} + +@Monster_ChangeSchedule(this, Struct:sNewSchedule) { + new Struct:sSchedule = CE_GetMember(this, m_sSchedule); + if (sSchedule != Invalid_Struct && StructGetCell(sSchedule, MONSTER_SCHEDULE_DATA_SHARED_ID) == MONSTER_SHARED_SCHED_INVALID) { + StructDestroy(sSchedule); + } + + CE_SetMember(this, m_iTaskStatus, MONSTER_TASK_STATUS_NEW); + CE_SetMember(this, m_sSchedule, sNewSchedule); + CE_SetMember(this, m_iScheduleIndex, 0); + CE_SetMember(this, m_iConditions, 0); + CE_SetMember(this, m_iFailSchedule, MONSTER_SCHED_NONE); +} + +@Monster_TaskBegin(this) { + CE_SetMember(this, m_iTaskStatus, MONSTER_TASK_STATUS_RUNNING); +} + +@Monster_TaskComplete(this) { + CE_SetMember(this, m_iTaskStatus, MONSTER_TASK_STATUS_COMPLETE); +} + +@Monster_TaskFail(this) { + @Monster_SetConditions(this, COND_TASK_FAILED); +} + +bool:@Monster_TaskIsComplete(this) { + return CE_GetMember(this, m_iTaskStatus) == MONSTER_TASK_STATUS_COMPLETE; +} + +@Monster_SetTurnActivity(this) { + static Float:flYD; flYD = @Monster_YawDiff(this); + + if (flYD <= -45.0 && @Monster_LookupActivity(this, ACT_TURN_RIGHT) != ACTIVITY_NOT_AVAILABLE) { + CE_SetMember(this, m_iIdealActivity, ACT_TURN_RIGHT); + } else if (flYD > 45.0 && @Monster_LookupActivity(this, ACT_TURN_LEFT) != ACTIVITY_NOT_AVAILABLE) { + CE_SetMember(this, m_iIdealActivity, ACT_TURN_LEFT); + } +} + +Float:@Monster_YawDiff(this) { + static Float:vecAngles[3]; pev(this, pev_angles, vecAngles); + static Float:flIdealYaw; pev(this, pev_ideal_yaw, flIdealYaw); + static Float:flCurrentYaw; flCurrentYaw = UTIL_AngleMod(vecAngles[1]); + + if (flCurrentYaw == flIdealYaw) return 0.0; + + return UTIL_AngleDiff(flIdealYaw, flCurrentYaw); +} + +@Monster_Remember(this, iMemory) { + CE_SetMember(this, m_iMemory, CE_GetMember(this, m_iMemory) | iMemory); +} + +@Monster_Forget(this, iMemory) { + CE_SetMember(this, m_iMemory, CE_GetMember(this, m_iMemory) & ~iMemory); +} + +bool:@Monster_HasMemory(this, iMemory) { + return !!(CE_GetMember(this, m_iMemory) & iMemory); +} + +bool:@Monster_HasAllMemory(this, iMemory) { + return (CE_GetMember(this, m_iMemory) & iMemory) == iMemory; +} + +@Monster_SetConditions(this, iConditions) { + CE_SetMember(this, m_iConditions, CE_GetMember(this, m_iConditions) | iConditions); +} + +@Monster_ClearConditions(this, iConditions) { + CE_SetMember(this, m_iConditions, CE_GetMember(this, m_iConditions) & ~iConditions); +} + +bool:@Monster_HasConditions(this, iConditions) { + return !!(CE_GetMember(this, m_iConditions) & iConditions); +} + +bool:@Monster_HasAllConditions(this, iConditions) { + return (CE_GetMember(this, m_iConditions) & iConditions) == iConditions; +} + +@Monster_IgnoreConditions(this) { + new iIgnoreConditions; iIgnoreConditions = 0; + + if (!@Monster_ShouldEat(this)) { + iIgnoreConditions |= COND_SMELL_FOOD; + } + + if (CE_GetMember(this, m_iMonsterState) == MONSTER_STATE_SCRIPT) { + static pCine; pCine = CE_GetMember(this, m_pCine); + + if (pCine != FM_NULLENT) { + iIgnoreConditions |= CE_CallMethod(pCine, IgnoreConditions); + } + } + + return iIgnoreConditions; +} + +bool:@Monster_ShouldEat(this) { + return Float:CE_GetMember(this, m_flHungryTime) <= g_flGameTime; +} + +@Monster_MakeIdealYaw(this, const Float:vecTarget[]) { + static iMovementActivity; iMovementActivity = CE_GetMember(this, m_iMovementActivity); + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + static Float:vecProjection[3]; + + switch (iMovementActivity) { + case ACT_STRAFE_LEFT: { + xs_vec_set(vecProjection, -vecTarget[1], vecTarget[0], 0.0); + } + case ACT_STRAFE_RIGHT: { + xs_vec_set(vecProjection, vecTarget[1], vecTarget[0], 0.0); + } + default: { + xs_vec_copy(vecTarget, vecProjection); + } + } + + static Float:vecDirection[3]; xs_vec_sub(vecProjection, vecOrigin, vecDirection); + static Float:vecAngles[3]; vector_to_angle(vecDirection, vecAngles); + + set_pev(this, pev_ideal_yaw, vecAngles[1]); +} + +Float:@Monster_ChangeYaw(this, Float:flYawSpeed) { + static Float:vecAngles[3]; pev(this, pev_angles, vecAngles); + static Float:flCurrent; flCurrent = vecAngles[1]; + static Float:flIdealYaw; pev(this, pev_ideal_yaw, flIdealYaw); + + if (flCurrent == flIdealYaw) return 0.0; + + static Float:flFrameTime; global_get(glb_frametime, flFrameTime); + flFrameTime *= 10.0; + + vecAngles[1] = UTIL_ApproachAngle(flIdealYaw, flCurrent, flYawSpeed * flFrameTime); + + set_pev(this, pev_angles, vecAngles); + + static Float:flDiff; flDiff = UTIL_AngleDiff(flIdealYaw, vecAngles[1]); + + // turn head in desired direction only if they have a turnable head + if (CE_GetMember(this, m_iCapability) & CAP_TURN_HEAD) { + set_controller(this, 0, flDiff); + } + + return flDiff; +} + +bool:@Monster_FacingIdeal(this) { + return floatabs(@Monster_YawDiff(this)) <= 0.006; +} + +bool:@Monster_MoveToEnemy(this, Activity:iActivity, Float:flWaitTime) { + CE_SetMember(this, m_iMovementActivity, iActivity); + CE_SetMember(this, m_flMoveWaitTime, flWaitTime); + CE_SetMember(this, m_iMovementGoal, MOVEGOAL_ENEMY); + + return @Monster_RefreshRoute(this); +} + +bool:@Monster_MoveToTarget(this, Activity:iActivity, Float:flWaitTime) { + CE_SetMember(this, m_iMovementActivity, iActivity); + CE_SetMember(this, m_flMoveWaitTime, flWaitTime); + CE_SetMember(this, m_iMovementGoal, MOVEGOAL_TARGETENT); + + return @Monster_RefreshRoute(this); +} + +bool:@Monster_MoveToLocation(this, Activity:iActivity, Float:flWaitTime, const Float:vecGoal[]) { + CE_SetMember(this, m_iMovementActivity, iActivity); + CE_SetMember(this, m_flMoveWaitTime, flWaitTime); + CE_SetMember(this, m_iMovementGoal, MOVEGOAL_LOCATION); + CE_SetMemberVec(this, m_vecMoveGoal, vecGoal); + + return @Monster_RefreshRoute(this); +} + +@Monster_FindHintNode(this) { return 0; } + +@Monster_NextScheduledTask(this) { + if (CE_GetMember(this, m_sSchedule) == Invalid_Struct) return; + + CE_SetMember(this, m_iTaskStatus, MONSTER_TASK_STATUS_NEW); + CE_SetMember(this, m_iScheduleIndex, CE_GetMember(this, m_iScheduleIndex) + 1); + + if (@Monster_ScheduleDone(this)) { + @Monster_SetConditions(this, COND_SCHEDULE_DONE); + } +} + +@Monster_ScheduleDone(this) { + static Struct:sSchedule; sSchedule = CE_GetMember(this, m_sSchedule); + + return CE_GetMember(this, m_iScheduleIndex) == StructGetCell(sSchedule, MONSTER_SCHEDULE_DATA_TASK_SIZE); +} + +@Monster_ScheduleValid(this) { + static Struct:sSchedule; sSchedule = CE_GetMember(this, m_sSchedule); + + if (sSchedule == Invalid_Struct) return false; + + static iInterruptMask; iInterruptMask = StructGetCell(sSchedule, MONSTER_SCHEDULE_DATA_INTERRUPT_MASK); + if (@Monster_HasConditions(this, iInterruptMask | COND_SCHEDULE_DONE | COND_TASK_FAILED)) { + return false; + } + + return true; +} + +@Monster_ScheduleChange(this) {} + +@Monster_ScheduleFlags(this) { + static Struct:sSchedule; sSchedule = CE_GetMember(this, m_sSchedule); + + if (sSchedule == Invalid_Struct) return 0; + + static iConditions; iConditions = CE_GetMember(this, m_iConditions); + static iInterruptMask; iInterruptMask = StructGetCell(sSchedule, MONSTER_SCHEDULE_DATA_INTERRUPT_MASK); + + return iConditions & iInterruptMask; +} + +MONSTER_STATE:@Monster_GetIdealState(this) { + static iConditions; iConditions = @Monster_ScheduleFlags(this); + static MONSTER_STATE:iMonsterState; iMonsterState = CE_GetMember(this, m_iMonsterState); + + switch (iMonsterState) { + case MONSTER_STATE_IDLE: { + new Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + + if (iConditions & COND_NEW_ENEMY) { + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_COMBAT); + } else if (iConditions & COND_LIGHT_DAMAGE) { + @Monster_MakeIdealYaw(this, vecEnemyLKP); + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_ALERT); + } else if (iConditions & COND_HEAVY_DAMAGE) { + @Monster_MakeIdealYaw(this, vecEnemyLKP); + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_ALERT); + } else if (iConditions & COND_HEAR_SOUND) { + new iSound = @Monster_BestSound(this); + if (iSound != -1) { + @Monster_MakeIdealYaw(this, g_rgSounds[iSound][Sound_Origin]); + + static iType; iType = g_rgSounds[iSound][Sound_Type]; + if (iType & (SOUND_COMBAT | SOUND_DANGER)) { + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_ALERT); + } + } + } else if (iConditions & (COND_SMELL | COND_SMELL_FOOD)) { + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_ALERT); + } + } + case MONSTER_STATE_ALERT: { + if (iConditions & (COND_NEW_ENEMY|COND_SEE_ENEMY)) { + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_COMBAT); + } else if (iConditions & COND_HEAR_SOUND) { + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_ALERT); + + new iSound = @Monster_BestSound(this); + if (iSound != -1) { + @Monster_MakeIdealYaw(this, g_rgSounds[iSound][Sound_Origin]); + } + } + } + case MONSTER_STATE_COMBAT: { + if (CE_GetMember(this, m_pEnemy) == FM_NULLENT) { + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_ALERT); + } + } + case MONSTER_STATE_SCRIPT: { + if (iConditions & (COND_TASK_FAILED|COND_LIGHT_DAMAGE|COND_HEAVY_DAMAGE)) { + @Monster_ExitScriptedSequence(this); + } + } + case MONSTER_STATE_DEAD: { + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_DEAD); + } + } + + return CE_GetMember(this, m_iIdealMonsterState); +} + +bool:@Monster_ExitScriptedSequence(this) { + if (pev(this, pev_deadflag) == DEAD_DYING) { + CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_DEAD); + return false; + } + + new pCine = CE_GetMember(this, m_pCine); + + if (pCine) { + CE_CallMethod(pCine, "CancelScript"); + } + + return true; +} + +@Monster_GetSequenceFlags(this) { + static iSequence; iSequence = pev(this, pev_sequence); + + static Array:irgSequences; irgSequences = CE_GetMember(this, m_irgSequences); + if (irgSequences == Invalid_Array) return 0; + + return ArrayGetCell(irgSequences, iSequence, _:Sequence_Flags); +} + +@Monster_SetYawSpeed(this) { + set_pev(this, pev_yaw_speed, 180.0); +} + +@Monster_SetActivity(this, Activity:iNewActivity) { + static Activity:iSequence; iSequence = @Monster_LookupActivity(this, iNewActivity); + static bool:bSequenceLoops; bSequenceLoops = CE_GetMember(this, m_bSequenceLoops); + static Activity:iActivity; iActivity = CE_GetMember(this, m_iActivity); + + // Set to the desired anim, or default anim if the desired is not present + if (iSequence > ACTIVITY_NOT_AVAILABLE) { + if (pev(this, pev_sequence) != _:iSequence || !bSequenceLoops) { + if (!(iActivity == ACT_WALK || iActivity == ACT_RUN) || !(iNewActivity == ACT_WALK || iNewActivity == ACT_RUN)) { + set_pev(this, pev_frame, 0); + } + } + + set_pev(this, pev_sequence, iSequence); + + @Monster_ResetSequenceInfo(this); + CE_CallMethod(this, SetYawSpeed); + } else { + set_pev(this, pev_sequence, 0); + } + + CE_SetMember(this, m_iActivity, iNewActivity); + CE_SetMember(this, m_iIdealActivity, iNewActivity); +} + +bool:@Monster_TaskIsRunning(this) { + static MONSTER_TASK_STATUS:iTaskStatus; iTaskStatus = CE_GetMember(this, m_iTaskStatus); + + return (iTaskStatus != MONSTER_TASK_STATUS_COMPLETE && iTaskStatus != MONSTER_TASK_STATUS_RUNNING_MOVEMENT); +} + +@Monster_SetState(this, MONSTER_STATE:iState) { + switch (iState) { + case MONSTER_STATE_IDLE: { + if (CE_GetMember(this, m_pEnemy) != FM_NULLENT) { + CE_SetMember(this, m_pEnemy, FM_NULLENT); + } + } + } + + CE_SetMember(this, m_iMonsterState, iState); + CE_SetMember(this, m_iIdealMonsterState, iState); +} + +@Monster_RouteClassify(this, iMoveFlag) { + if (iMoveFlag & MF_TO_TARGETENT) return MOVEGOAL_TARGETENT; + if (iMoveFlag & MF_TO_ENEMY) return MOVEGOAL_ENEMY; + if (iMoveFlag & MF_TO_PATHCORNER) return MOVEGOAL_PATHCORNER; + if (iMoveFlag & MF_TO_NODE) return MOVEGOAL_NODE; + if (iMoveFlag & MF_TO_NAV) return MOVEGOAL_NAV; + if (iMoveFlag & MF_TO_LOCATION) return MOVEGOAL_LOCATION; + + return MOVEGOAL_NONE; +} + +MONSTER_LOCALMOVE:@Monster_CheckLocalMove(this, const Float:vecStart[3], const Float:vecEnd[3], pTarget, bool:bValidateZ, &Float:flOutDist) { + new MONSTER_LOCALMOVE:iReturn = MONSTER_LOCALMOVE_VALID; + + static Float:flStepSize; flStepSize = CE_GetMember(this, m_flStepSize); + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecMins[3]; pev(this, pev_mins, vecMins); + + static Float:vecDirection[3]; + xs_vec_sub(vecEnd, vecStart, vecDirection); + xs_vec_normalize(vecDirection, vecDirection); + + static Float:vecAngles[3]; vector_to_angle(vecDirection, vecAngles); + + static Float:flDist; flDist = xs_vec_distance(vecStart, vecEnd); + static iFlags; iFlags = pev(this, pev_flags); + + engfunc(EngFunc_SetOrigin, this, vecStart); + + if (~iFlags & (FL_FLY | FL_SWIM)) { + engfunc(EngFunc_DropToFloor, this); + } + + for (new Float:flStep = 0.0; flStep < flDist; flStep += flStepSize) { + static Float:flCurrentStepSize; flCurrentStepSize = flStepSize; + + if ((flStep + flCurrentStepSize) >= (flDist - 1.0)) { + flCurrentStepSize = (flDist - flStep) - 1.0; + } + + if (!@Monster_WalkMove(this, vecAngles[1], flCurrentStepSize, WALKMOVE_CHECKONLY)) { + flOutDist = flStep; + + if ((pTarget != FM_NULLENT && (pTarget == g_pHit))) { + iReturn = MONSTER_LOCALMOVE_VALID; + } else { + iReturn = MONSTER_LOCALMOVE_INVALID; + } + + break; + } + } + + if (bValidateZ && iReturn == MONSTER_LOCALMOVE_VALID) { + if (!(iFlags & (FL_FLY | FL_SWIM)) && (pTarget == FM_NULLENT || (pev(pTarget, pev_flags) & FL_ONGROUND))) { + static Float:vecAbsMin[3]; pev(this, pev_absmin, vecAbsMin); + static Float:vecAbsMax[3]; pev(this, pev_absmax, vecAbsMax); + + static Float:vecTargetAbsMin[3]; + static Float:vecTargetAbsMax[3]; + + if (pTarget == FM_NULLENT) { + xs_vec_copy(vecEnd, vecTargetAbsMin); + xs_vec_copy(vecEnd, vecTargetAbsMax); + } else { + pev(pTarget, pev_absmin, vecTargetAbsMin); + pev(pTarget, pev_absmax, vecTargetAbsMax); + } + + if (vecTargetAbsMax[2] < vecAbsMin[2] || vecTargetAbsMin[2] > vecAbsMax[2]) { + iReturn = MONSTER_LOCALMOVE_INVALID_DONT_TRIANGULATE; + } + } + } + + engfunc(EngFunc_SetOrigin, this, vecOrigin); + + return iReturn; +} + +bool:@Monster_WalkMove(this, Float:flYaw, Float:flStep, iMode) { + // static iFlags; iFlags = pev(this, pev_flags); + // static bool:bMonsterClip; bMonsterClip = !!(iFlags & FL_MONSTERCLIP); + static Float:vecMove[3]; xs_vec_set(vecMove, floatcos(flYaw, degrees) * flStep, floatsin(flYaw, degrees) * flStep, 0.0); + + switch (iMode) { + // case WALKMOVE_WORLDONLY: @Monster_MoveTest(this, vecMove, true); + case WALKMOVE_NORMAL: return @Monster_MoveStep(this, vecMove, true); + case WALKMOVE_CHECKONLY: return @Monster_MoveStep(this, vecMove, false); + } + + return false; +} + +bool:@Monster_MoveStep(this, const Float:vecMove[3], bool:bRelink) { + static bool:bSuccessed; bSuccessed = false; + + static iFlags; iFlags = pev(this, pev_flags); + static Float:flStepHeight; flStepHeight = CE_GetMember(this, m_flStepHeight); + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + if (iFlags & (FL_SWIM | FL_FLY)) { + // TODO: Implement + } else { + static Float:vecSrc[3]; xs_vec_copy(vecOrigin, vecSrc); + static Float:vecEnd[3]; xs_vec_add(vecOrigin, vecMove, vecEnd); + + bSuccessed = @Monster_Trace(this, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, g_pTrace); + + // If move forward failed then try to make height step and repeat + if (!bSuccessed) { + get_tr2(g_pTrace, TR_vecEndPos, vecSrc); + xs_vec_set(vecEnd, vecSrc[0], vecSrc[1], vecSrc[2] + flStepHeight); + @Monster_Trace(this, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, g_pTrace); + + static Float:vecMins[3]; pev(this, pev_mins, vecMins); + static Float:vecEndPos[3]; get_tr2(g_pTrace, TR_vecEndPos, vecEndPos); + + get_tr2(g_pTrace, TR_vecEndPos, vecSrc); + xs_vec_add(vecSrc, vecMove, vecEnd); + + bSuccessed = @Monster_Trace(this, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, g_pTrace); + + // TODO: Investigate ability to allow monsters go through the doors + } + + g_pHit = get_tr2(g_pTrace, TR_pHit); + + // Do step down + if (bSuccessed) { + #define OFFSET_TO_HIT_GROUND 0.1 + + get_tr2(g_pTrace, TR_vecEndPos, vecSrc); + xs_vec_set(vecEnd, vecSrc[0], vecSrc[1], vecSrc[2] - flStepHeight - OFFSET_TO_HIT_GROUND); + @Monster_Trace(this, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, g_pTrace); + + static Float:vecPlaneNormal[3]; get_tr2(g_pTrace, TR_vecPlaneNormal, vecPlaneNormal); + + bSuccessed = vecPlaneNormal[2] > 0.5; + } + + get_tr2(g_pTrace, TR_vecEndPos, vecOrigin); + + // TODO: Investigate ability to allow monsters to fall + } + + if (bSuccessed) { + if (bRelink) { + engfunc(EngFunc_SetOrigin, this, vecOrigin); + } else { + set_pev(this, pev_origin, vecOrigin); + } + } + + return bSuccessed; +} + +bool:@Monster_Trace(this, const Float:vecSrc[3], const Float:vecEnd[3], iTraceFlags, pIgnoreEnt, pTrace) { + engfunc(EngFunc_TraceMonsterHull, this, vecSrc, vecEnd, iTraceFlags, pIgnoreEnt, pTrace); + + if (get_tr2(pTrace, TR_AllSolid)) return false; + + static Float:flFraction; get_tr2(pTrace, TR_flFraction, flFraction); + if (flFraction != 1.0) return false; + + return true; +} + +@Monster_RouteNew(this) { + new Array:irgRoute = CE_GetMember(this, m_irgRoute); + ArrayClear(irgRoute); + + CE_SetMember(this, m_iRouteIndex, 0); + + @Monster_ReleasePathTask(this); +} + +@Monster_RouteSimplify(this, pTarget) {} + +@Monster_HullIndex(this) { + return HULL_HUMAN; +} + +bool:@Monster_GetNodeRoute(this, const Float:vecDest[3]) { + if (!g_bUseAstar) return false; + + #if defined _api_navsystem_included + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + static NavBuildPathTask:pTask; pTask = Nav_Path_Find(vecOrigin, vecDest, "NavPathCallback", this, this, "NavPathCost"); + if (pTask == Invalid_NavBuildPathTask) return false; + + CE_SetMember(this, m_pPathTask, pTask); + @Monster_SetConditions(this, COND_WAIT_FOR_PATH); + + return true; + #else + return false; + #endif +} + +@Monster_MoveNavPath(this, NavPath:pPath) { + if (!Nav_Path_IsValid(pPath)) return false; + + @Monster_RouteNew(this); + + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + + static Array:irgSegments; irgSegments = Nav_Path_GetSegments(pPath); + static iSegmentsNum; iSegmentsNum = ArraySize(irgSegments); + + for (new i = 0; i < iSegmentsNum; ++i) { + static NavPathSegment:pSegment; pSegment = ArrayGetCell(irgSegments, i); + static Float:vecPos[3]; Nav_Path_Segment_GetPos(pSegment, vecPos); + + static rgWaypoint[MONSTER_WAYPOINT]; + xs_vec_copy(vecPos, rgWaypoint[MONSTER_WAYPOINT_LOCATION]); + rgWaypoint[MONSTER_WAYPOINT_TYPE] = MF_TO_NODE; + + if (i == iSegmentsNum - 1) { + rgWaypoint[MONSTER_WAYPOINT_TYPE] = MF_IS_GOAL; + } + + ArrayPushArray(irgRoute, rgWaypoint[any:0]); + } + + return true; +} + +@Monster_ReleasePathTask(this) { + if (!@Monster_HasConditions(this, COND_WAIT_FOR_PATH)) return; + + static NavBuildPathTask:pTask; pTask = CE_GetMember(this, m_pPathTask); + if (!Nav_Path_FindTask_IsFinished(pTask)) { + Nav_Path_FindTask_Abort(pTask); + } + + @Monster_ClearConditions(this, COND_WAIT_FOR_PATH); + CE_SetMember(this, m_pPathTask, Invalid_NavBuildPathTask); +} + +bool:@Monster_MoveToNode(this, Activity:iActivity, Float:flWaitTime, const Float:vecGoal[3]) { + CE_SetMember(this, m_iMovementActivity, iActivity); + CE_SetMember(this, m_flMoveWaitTime, flWaitTime); + CE_SetMember(this, m_iMovementGoal, MOVEGOAL_NODE); + CE_SetMemberVec(this, m_vecMoveGoal, vecGoal); + + return @Monster_RefreshRoute(this); +} + +bool:@Monster_MovementIsComplete(this) { + return CE_GetMember(this, m_iMovementGoal) == MOVEGOAL_NONE; +} + +bool:@Monster_Triangulate(this, const Float:vecStart[], const Float:vecEnd[], Float:flDist, pTargetEnt, Float:vecApex[3]) { + static iMoveType; iMoveType = pev(this, pev_movetype); + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecSize[3]; pev(this, pev_size, vecSize); + + static Float:flSizeX; flSizeX = floatclamp(vecSize[0], 24.0, 48.0); + static Float:flSizeZ; flSizeZ = vecSize[2]; + + static Float:vecForward[3]; + xs_vec_sub(vecEnd, vecStart, vecForward); + xs_vec_normalize(vecForward, vecForward); + + static Float:vecDirUp[3]; xs_vec_set(vecDirUp, 0.0, 0.0, 1.0); + static Float:vecDir[3]; xs_vec_cross(vecForward, vecDirUp, vecDir); + + static Float:vecLeft[3]; + xs_vec_add_scaled(vecOrigin, vecForward, (flDist + flSizeX), vecLeft); + xs_vec_sub_scaled(vecOrigin, vecDir, (flSizeX * 2), vecLeft); + + static Float:vecRight[3]; + xs_vec_add_scaled(vecOrigin, vecForward, (flDist + flSizeX), vecRight); + xs_vec_add_scaled(vecOrigin, vecDir, (flSizeX * 2), vecRight); + + static Float:vecTop[3]; + static Float:vecBottom[3]; + + if (iMoveType == MOVETYPE_FLY) { + xs_vec_add_scaled(vecOrigin, vecForward, flDist, vecTop); + xs_vec_add_scaled(vecOrigin, vecDirUp, (flSizeZ * 3), vecTop); + + xs_vec_add_scaled(vecOrigin, vecForward, flDist, vecBottom); + xs_vec_sub_scaled(vecOrigin, vecDirUp, (flSizeZ * 3), vecBottom); + } + + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + static rgWaypoint[MONSTER_WAYPOINT]; ArrayGetArray(irgRoute, CE_GetMember(this, m_iRouteIndex), rgWaypoint[any:0], _:MONSTER_WAYPOINT); + + static Float:vecFarSide[3]; xs_vec_copy(rgWaypoint[MONSTER_WAYPOINT_LOCATION], vecFarSide); + + for (new i = 0; i < 8; i++) { + static Float:flDistance; + + if (@Monster_CheckLocalMove(this, vecOrigin, vecRight, pTargetEnt, true, flDistance) == MONSTER_LOCALMOVE_VALID) { + if (@Monster_CheckLocalMove(this, vecRight, vecFarSide, pTargetEnt, true, flDistance) == MONSTER_LOCALMOVE_VALID) { + xs_vec_copy(vecRight, vecApex); + return true; + } + } + + if (@Monster_CheckLocalMove(this, vecOrigin, vecLeft, pTargetEnt, true, flDistance) == MONSTER_LOCALMOVE_VALID) { + if (@Monster_CheckLocalMove(this, vecLeft, vecFarSide, pTargetEnt, true, flDistance) == MONSTER_LOCALMOVE_VALID) { + xs_vec_copy(vecLeft, vecApex); + return true; + } + } + + if (iMoveType == MOVETYPE_FLY) { + if (@Monster_CheckLocalMove(this, vecOrigin, vecTop, pTargetEnt, true, flDistance) == MONSTER_LOCALMOVE_VALID) { + if (@Monster_CheckLocalMove(this, vecTop, vecFarSide, pTargetEnt, true, flDistance) == MONSTER_LOCALMOVE_VALID) { + xs_vec_copy(vecTop, vecApex); + return true; + } + } + + if (@Monster_CheckLocalMove(this, vecOrigin, vecBottom, pTargetEnt, true, flDistance) == MONSTER_LOCALMOVE_VALID) { + if (@Monster_CheckLocalMove(this, vecBottom, vecFarSide, pTargetEnt, true, flDistance) == MONSTER_LOCALMOVE_VALID) { + xs_vec_copy(vecBottom, vecApex); + return true; + } + } + } + + xs_vec_add_scaled(vecRight, vecDir, flSizeX * 2, vecRight); + xs_vec_sub_scaled(vecLeft, vecDir, flSizeX * 2, vecLeft); + + if (iMoveType == MOVETYPE_FLY) { + xs_vec_add_scaled(vecTop, vecDirUp, flSizeZ * 2, vecTop); + xs_vec_sub_scaled(vecBottom, vecDirUp, flSizeZ * 2, vecBottom); + } + } + + return false; +} + +bool:@Monster_BuildRoute(this, const Float:vecGoal[3], iMoveFlag, pTarget) { + // TODO: Investigate cases when monster have to cancel current path task + if (@Monster_HasConditions(this, COND_WAIT_FOR_PATH)) return false; + + @Monster_RouteNew(this); + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + static iMovementGoal; iMovementGoal = @Monster_RouteClassify(this, iMoveFlag); + CE_SetMember(this, m_iMovementGoal, iMovementGoal); + + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + + new rgGoalWaypoint[MONSTER_WAYPOINT]; + xs_vec_copy(vecGoal, rgGoalWaypoint[MONSTER_WAYPOINT_LOCATION]); + rgGoalWaypoint[MONSTER_WAYPOINT_TYPE] = iMoveFlag | MF_IS_GOAL; + + ArrayPushArray(irgRoute, rgGoalWaypoint[any:0]); + + static Float:flDistance; flDistance = 0.0; + static MONSTER_LOCALMOVE:iLocalMove; iLocalMove = @Monster_CheckLocalMove(this, vecOrigin, vecGoal, pTarget, true, flDistance); + + if (iLocalMove == MONSTER_LOCALMOVE_VALID) return true; + + static Float:vecApex[3]; + if (iLocalMove != MONSTER_LOCALMOVE_INVALID_DONT_TRIANGULATE && @Monster_Triangulate(this, vecOrigin, vecGoal, flDistance, pTarget, vecApex)) { + @Monster_InsertWaypoint(this, vecApex, iMoveFlag | MF_TO_DETOUR); + @Monster_RouteSimplify(this, pTarget); + return true; + } + + if (@Monster_GetNodeRoute(this, vecGoal)) { + CE_SetMemberVec(this, m_vecMoveGoal, vecGoal); + @Monster_RouteSimplify(this, pTarget); + return true; + } + + + return false; +} + +bool:@Monster_BuildNearestRoute(this, const Float:vecThreat[3], const Float:vecViewOfs[3], Float:flMinDist, Float:flMaxDist) { + #if defined _api_navsystem_included + static Float:vecLookersOffset[3]; xs_vec_add(vecThreat, vecViewOfs, vecLookersOffset); + + static NavArea:pArea; pArea = Nav_GetAreaFromGrid(vecLookersOffset); + static NavArea:pNearestArea; pNearestArea = Nav_GetNearestArea(vecLookersOffset, false, this, pArea); + + if (pNearestArea == Invalid_NavArea) return false; + + static Float:vecGoal[3]; + Nav_Area_GetCenter(pNearestArea, vecGoal); + xs_vec_add(vecGoal, vecViewOfs, vecGoal); + + return @Monster_BuildRoute(this, vecGoal, MF_TO_LOCATION, FM_NULLENT); + #else + return false; + #endif +} + +@Monster_RouteClear(this) { + @Monster_RouteNew(this); + CE_SetMember(this, m_iMovementGoal, MOVEGOAL_NONE); + CE_SetMember(this, m_iMovementActivity, ACT_IDLE); + @Monster_Forget(this, MEMORY_MOVE_FAILED); +} + +@Monster_IsRouteClear(this) { + if (CE_GetMember(this, m_iMovementGoal) == MOVEGOAL_NONE) return true; + + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + if (!ArraySize(irgRoute)) return true; + + return false; +} + +bool:@Monster_RefreshRoute(this) { + @Monster_RouteNew(this); + + new iMovementGoal = CE_GetMember(this, m_iMovementGoal); + + switch (iMovementGoal) { + case MOVEGOAL_PATHCORNER: { + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + + new pPathCorner = CE_GetMember(this, m_pGoalEnt); + + while (pPathCorner) { + static Float:vecTarget[3]; pev(pPathCorner, pev_origin, vecTarget); + + static rgWaypoint[MONSTER_WAYPOINT]; + rgWaypoint[MONSTER_WAYPOINT_TYPE] = MF_TO_PATHCORNER; + xs_vec_copy(vecTarget, rgWaypoint[MONSTER_WAYPOINT_LOCATION]); + + pPathCorner = ExecuteHamB(Ham_GetNextTarget, pPathCorner); + + if (!pPathCorner) { + rgWaypoint[MONSTER_WAYPOINT_TYPE] |= MF_IS_GOAL; + } + + ArrayPushArray(irgRoute, rgWaypoint[any:0]); + } + + return true; + } + case MOVEGOAL_ENEMY: { + new pEnemy = CE_GetMember(this, m_pEnemy); + new Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + return @Monster_BuildRoute(this, vecEnemyLKP, MF_TO_ENEMY, pEnemy); + } + case MOVEGOAL_LOCATION: { + new Float:vecMoveGoal[3]; CE_GetMemberVec(this, m_vecMoveGoal, vecMoveGoal); + return @Monster_BuildRoute(this, vecMoveGoal, MF_TO_LOCATION, FM_NULLENT); + } + case MOVEGOAL_TARGETENT: { + new pTarget = CE_GetMember(this, m_pTargetEnt); + new Float:vecTarget[3]; pev(pTarget, pev_origin, vecTarget); + + if (pTarget != FM_NULLENT) { + return @Monster_BuildRoute(this, vecTarget, MF_TO_TARGETENT, pTarget); + } + } + case MOVEGOAL_NODE: { + new Float:vecMoveGoal[3]; CE_GetMemberVec(this, m_vecMoveGoal, vecMoveGoal); + return @Monster_GetNodeRoute(this, vecMoveGoal); + } + } + + return false; +} + +Float:@Monster_CoverRadius(this) { + return 784.0; +} + +bool:@Monster_FindCover(this, const Float:vecThreat[], const Float:vecViewOfs[], const Float:flMinDistance, Float:flData) { return false; } +bool:@Monster_FindLateralCover(this, const Float:vecThreat[3], const Float:vecViewOfs[3]) { return false; } + +@Monster_StopAnimation(this) { + set_pev(this, pev_framerate, 0.0); +} + +bool:@Monster_ShouldFadeOnDeath(this) { + if (pev(this, pev_spawnflags) & SF_MONSTER_FADECORPSE) return true; + if (pev(this, pev_owner)) return true; + + return false; +} + +bool:@Monster_BBoxFlat(this) { return false; } + +@Monster_Eat(this, Float:flDuration) { + CE_SetMember(this, m_flHungryTime, g_flGameTime + flDuration); +} + +Activity:@Monster_LookupActivity(this, Activity:iActivity) { + static Array:irgSequences; irgSequences = CE_GetMember(this, m_irgSequences); + if (irgSequences == Invalid_Array) return ACTIVITY_NOT_AVAILABLE; + + static Activity:iActivitySeq; iActivitySeq = ACTIVITY_NOT_AVAILABLE; + static iSequencesNum; iSequencesNum = ArraySize(irgSequences); + + static iTotalWeight; iTotalWeight = 0; + + for (new iSequence = 0; iSequence < iSequencesNum; ++iSequence) { + static Activity:iSeqActivity; iSeqActivity = ArrayGetCell(irgSequences, iSequence, _:Sequence_Activity); + + if (iActivity != iSeqActivity) continue; + + static iActivityWeight; iActivityWeight = ArrayGetCell(irgSequences, iSequence, _:Sequence_ActivityWeight); + + if (!iTotalWeight || random(iTotalWeight - 1) < iActivityWeight) { + iActivitySeq = Activity:iSequence; + } + + iTotalWeight += iActivityWeight; + } + + return iActivitySeq; +} + +Activity:@Monster_LookupActivityHeaviest(this, Activity:iActivity) { + static Array:irgSequences; irgSequences = CE_GetMember(this, m_irgSequences); + if (irgSequences == Invalid_Array) return ACTIVITY_NOT_AVAILABLE; + + static iWeight; iWeight = 0; + + new Activity:iActivitySeq = ACTIVITY_NOT_AVAILABLE; + + new iSequencesNum = ArraySize(irgSequences); + for (new iSequence = 0; iSequence <= iSequencesNum; ++iSequence) { + static Activity:iSeqActivity; iSeqActivity = ArrayGetCell(irgSequences, iSequence, _:Sequence_Activity); + if (iActivity != iSeqActivity) continue; + + static iActivityWeight; iActivityWeight = ArrayGetCell(irgSequences, iSequence, _:Sequence_ActivityWeight); + + if (iActivityWeight > iWeight) { + iWeight = iActivityWeight; + iActivitySeq = Activity:iSequence; + } + } + + return iActivitySeq; +} + +Activity:@Monster_GetStoppedActivity(this) { + return ACT_IDLE; +} + +Activity:@Monster_GetSmallFlinchActivity(this) { + return ACTIVITY_NOT_AVAILABLE; +} + +Activity:@Monster_GetDeathActivity(this) { + if (pev(this, pev_deadflag) != DEAD_NO) { + return CE_GetMember(this, m_iIdealActivity); + } + + new bool:fTriedDirection = false; + new Activity:iDeathActivity = ACT_DIESIMPLE; + + static Float:vecAngles[3]; pev(this, pev_angles, vecAngles); + + static Float:vecForward[3]; angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecForward); + static Float:vecNegAttackDir[3]; xs_vec_neg(g_vecAttackDir, vecNegAttackDir); + + static Float:flDot; flDot = xs_vec_dot(vecForward, vecNegAttackDir); + + switch (CE_GetMember(this, m_iLastHitGroup)) { + case HITGROUP_HEAD: { + iDeathActivity = ACT_DIE_HEADSHOT; + } + case HITGROUP_STOMACH: { + iDeathActivity = ACT_DIE_GUTSHOT; + } + default: { + fTriedDirection = true; + + if (flDot > 0.3) { + iDeathActivity = ACT_DIEFORWARD; + } else if (flDot <= -0.3) { + iDeathActivity = ACT_DIEBACKWARD; + } + } + } + + if (@Monster_LookupActivity(this, iDeathActivity) == ACTIVITY_NOT_AVAILABLE) { + if (fTriedDirection) { + iDeathActivity = ACT_DIESIMPLE; + } else { + if (flDot > 0.3) { + iDeathActivity = ACT_DIEFORWARD; + } else if (flDot <= -0.3) { + iDeathActivity = ACT_DIEBACKWARD; + } + } + } + + if (@Monster_LookupActivity(this, iDeathActivity) == ACTIVITY_NOT_AVAILABLE) { + iDeathActivity = ACT_DIESIMPLE; + } + + static Float:vecSrc[3]; ExecuteHamB(Ham_Center, this, vecSrc); + + if (iDeathActivity == ACT_DIEFORWARD || iDeathActivity == ACT_DIEBACKWARD) { + static iDir; iDir = (iDeathActivity == ACT_DIEFORWARD ? 1 : -1); + + static Float:vecEnd[3]; xs_vec_add_scaled(vecSrc, vecForward, 64.0 * iDir, vecEnd); + + engfunc(EngFunc_TraceHull, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, HULL_HEAD, this, g_pTrace); + + static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + + if (flFraction != 1.0){ + iDeathActivity = ACT_DIESIMPLE; + } + } + + return iDeathActivity; +} + +@Monster_TakeDamage(this, pInflictor, pAttacker, Float:flDamage, iDamageBits) { + static Float:flTakeDamage; pev(this, pev_takedamage, flTakeDamage); + + if (flTakeDamage == DAMAGE_NO) return 0; + + if (!ExecuteHamB(Ham_IsAlive, this)) { + return @Monster_DeadTakeDamage(this, pInflictor, pAttacker, flDamage, iDamageBits); + } + + if (pev(this, pev_deadflag) == DEAD_NO) { + CE_CallMethod(this, PainSound); + } + + static Float:vecDir[3]; xs_vec_set(vecDir, 0.0, 0.0, 0.0); + if (pInflictor > 0) { + static Float:vecCenter[3]; ExecuteHamB(Ham_Center, this, vecCenter); + static Float:vecInflictorCenter[3]; ExecuteHamB(Ham_Center, pInflictor, vecInflictorCenter); + + xs_vec_sub(vecInflictorCenter, vecCenter, vecDir); + xs_vec_sub(vecDir, Float:{0.0, 0.0, 16.0}, vecDir); + xs_vec_normalize(vecDir, vecDir); + + xs_vec_copy(vecDir, g_vecAttackDir); + } + + static Float:flHealth; pev(this, pev_health, flHealth); + + CE_SetMember(this, m_iDamageType, CE_GetMember(this, m_iDamageType) | iDamageBits); + + if (pInflictor && pev(this, pev_movetype) == MOVETYPE_WALK && (!pAttacker || pev(pAttacker, pev_solid) != SOLID_TRIGGER)) { + static Float:vecVelocity[3]; pev(this, pev_velocity, vecVelocity); + xs_vec_add_scaled(vecVelocity, vecDir, -@Monster_DamageForce(this, flDamage), vecVelocity); + } + + pev(this, pev_health, flHealth - flDamage); + + if (CE_GetMember(this, m_iMonsterState) == MONSTER_STATE_SCRIPT) { + @Monster_SetConditions(this, COND_LIGHT_DAMAGE); + return 0; + } + + if (flHealth <= 0) { + if (iDamageBits & DMG_ALWAYSGIB) { + ExecuteHamB(Ham_Killed, this, pAttacker, GIB_ALWAYS); + } else if (iDamageBits & DMG_NEVERGIB) { + ExecuteHamB(Ham_Killed, this, pAttacker, GIB_NEVER); + } else { + ExecuteHamB(Ham_Killed, this, pAttacker, GIB_NORMAL); + } + + return 0; + } + + if ((pev(this, pev_flags) & FL_MONSTER) && pAttacker && (pev(pAttacker, pev_flags) & (FL_MONSTER | FL_CLIENT))) { + static Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + + static pEnemy; pEnemy = CE_GetMember(this, m_pEnemy); + + if (pInflictor) { + if (!pEnemy || pInflictor == pEnemy || !@Monster_HasConditions(this, COND_SEE_ENEMY)) { + pev(pInflictor, pev_origin, vecEnemyLKP); + CE_SetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + } + } else { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + xs_vec_add_scaled(vecOrigin, g_vecAttackDir, 64.0, vecEnemyLKP); + CE_SetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + } + + @Monster_MakeIdealYaw(this, vecEnemyLKP); + + if (flDamage > 0.0) @Monster_SetConditions(this, COND_LIGHT_DAMAGE); + if (flDamage >= 20.0) @Monster_SetConditions(this, COND_HEAVY_DAMAGE); + } + + return 1; +} + +Float:@Monster_DamageForce(this, Float:flDamage) { + static Float:vecSize[3]; pev(this, pev_size, vecSize); + + static Float:flForce; flForce = flDamage * ((32.0 * 32.0 * 72.0) / (vecSize[0] * vecSize[1] * vecSize[2])) * 5; + + return floatmin(flForce, 1000.0); +} + + +@Monster_DeadTakeDamage(this, pInflictor, pAttacker, Float:flDamage, iDamageBits) { + static Float:vecDir[3]; xs_vec_set(vecDir, 0.0, 0.0, 0.0); + + if (pInflictor > 0) { + static Float:vecCenter[3]; ExecuteHamB(Ham_Center, this, vecCenter); + static Float:vecInflictorCenter[3]; ExecuteHamB(Ham_Center, pInflictor, vecInflictorCenter); + + xs_vec_sub(vecInflictorCenter, vecCenter, g_vecAttackDir); + xs_vec_sub(g_vecAttackDir, Float:{0.0, 0.0, 10.0}, g_vecAttackDir); + xs_vec_normalize(g_vecAttackDir, g_vecAttackDir); + } + + if (iDamageBits & DMG_GIB_CORPSE) { + static Float:flHealth; pev(this, pev_health, flHealth); + + if (flHealth <= flDamage) { + flHealth = -50.0; + ExecuteHamB(Ham_Killed, this, pAttacker, GIB_ALWAYS); + return 0; + } + + flHealth -= flDamage * 0.1; + + set_pev(this, pev_health, flHealth); + } + + return 1; +} + +@Monster_StartTask(this, iTask, any:data) { + switch (iTask) { + case TASK_TURN_RIGHT: { + new Float:vecAngles[3]; pev(this, pev_angles, vecAngles); + new Float:flCurrentYaw; flCurrentYaw = UTIL_AngleMod(vecAngles[1]); + set_pev(this, pev_ideal_yaw, UTIL_AngleMod(flCurrentYaw - Float:data)); + @Monster_SetTurnActivity(this); + } + case TASK_TURN_LEFT: { + new Float:vecAngles[3]; pev(this, pev_angles, vecAngles); + new Float:flCurrentYaw; flCurrentYaw = UTIL_AngleMod(vecAngles[1]); + set_pev(this, pev_ideal_yaw, UTIL_AngleMod(flCurrentYaw + Float:data)); + @Monster_SetTurnActivity(this); + } + case TASK_REMEMBER: { + @Monster_Remember(this, data); + @Monster_TaskComplete(this); + } + case TASK_FORGET: { + @Monster_Forget(this, data); + @Monster_TaskComplete(this); + } + case TASK_FIND_HINTNODE: { + new iHintNode = @Monster_FindHintNode(this); + + CE_SetMember(this, m_iHintNode, iHintNode); + + if (iHintNode != NO_NODE) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_STORE_LASTPOSITION: { + new Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + CE_SetMemberVec(this, m_vecLastPosition, vecOrigin); + @Monster_TaskComplete(this); + } + case TASK_CLEAR_LASTPOSITION: { + CE_SetMemberVec(this, m_vecLastPosition, Float:{0.0, 0.0, 0.0}); + @Monster_TaskComplete(this); + } + case TASK_CLEAR_HINTNODE: { + CE_SetMember(this, m_iHintNode, NO_NODE); + @Monster_TaskComplete(this); + } + case TASK_STOP_MOVING: { + if (CE_GetMember(this, m_iIdealActivity) == CE_GetMember(this, m_iMovementActivity)) { + CE_SetMember(this, m_iIdealActivity, @Monster_GetStoppedActivity(this)); + } + + @Monster_RouteClear(this); + @Monster_TaskComplete(this); + } + case TASK_PLAY_SEQUENCE_FACE_ENEMY, TASK_PLAY_SEQUENCE_FACE_TARGET, TASK_PLAY_SEQUENCE: { + CE_SetMember(this, m_iIdealActivity, data); + } + case TASK_PLAY_ACTIVE_IDLE: { + // TODO: Implement + // new iHintNode = CE_GetMember(this, m_iHintNode); + // new iActivity = g_pWorldGraphNodes[iHintNode][Nodes_HintActivity]; + // CE_SetMember(this, m_iIdealActivity, iActivity); + } + case TASK_SET_SCHEDULE: { + new Struct:sNewSchedule = @Monster_GetScheduleOfType(this, MONSTER_SCHEDULE_TYPE:data); + + if (sNewSchedule != Invalid_Struct) { + @Monster_ChangeSchedule(this, sNewSchedule); + } else { + @Monster_TaskFail(this); + } + } + case TASK_FIND_NEAR_NODE_COVER_FROM_ENEMY: { + new pEnemy = CE_GetMember(this, m_pEnemy); + if (pEnemy == FM_NULLENT) { + @Monster_TaskFail(this); + return; + } + + new Float:vecEnemyOrigin[3]; pev(pEnemy, pev_origin, vecEnemyOrigin); + new Float:vecEnemyViewOfs[3]; pev(pEnemy, pev_view_ofs, vecEnemyViewOfs); + + if (@Monster_FindCover(this, vecEnemyOrigin, vecEnemyViewOfs, 0.0, Float:data)) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_FIND_FAR_NODE_COVER_FROM_ENEMY: { + new pEnemy = CE_GetMember(this, m_pEnemy); + if (pEnemy == FM_NULLENT) { + @Monster_TaskFail(this); + return; + } + + new Float:vecEnemyOrigin[3]; pev(pEnemy, pev_origin, vecEnemyOrigin); + new Float:vecEnemyViewOfs[3]; pev(pEnemy, pev_view_ofs, vecEnemyViewOfs); + + if (@Monster_FindCover(this, vecEnemyOrigin, vecEnemyViewOfs, Float:data, @Monster_CoverRadius(this))) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_FIND_NODE_COVER_FROM_ENEMY: { + new pEnemy = CE_GetMember(this, m_pEnemy); + if (pEnemy == FM_NULLENT) { + @Monster_TaskFail(this); + return; + } + + new Float:vecEnemyOrigin[3]; pev(pEnemy, pev_origin, vecEnemyOrigin); + new Float:vecEnemyViewOfs[3]; pev(pEnemy, pev_view_ofs, vecEnemyViewOfs); + + if (@Monster_FindCover(this, vecEnemyOrigin, vecEnemyViewOfs, 0.0, @Monster_CoverRadius(this))) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_FIND_COVER_FROM_ENEMY: { + new pEnemy = CE_GetMember(this, m_pEnemy); + new pCover; pCover = pEnemy == FM_NULLENT ? this : pEnemy; + new Float:vecCoverOrigin[3]; pev(pCover, pev_origin, vecCoverOrigin); + new Float:vecCoverViewOfs[3]; pev(pCover, pev_view_ofs, vecCoverViewOfs); + + if (@Monster_FindLateralCover(this, vecCoverOrigin, vecCoverViewOfs)) { + CE_SetMember(this, m_flMoveWaitFinished, g_flGameTime + Float:data); + @Monster_TaskComplete(this); + } else if (@Monster_FindCover(this, vecCoverOrigin, vecCoverViewOfs, 0.0, @Monster_CoverRadius(this))) { + CE_SetMember(this, m_flMoveWaitFinished, g_flGameTime + Float:data); + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_FIND_COVER_FROM_ORIGIN: { + new Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + new Float:vecViewOfs[3]; pev(this, pev_view_ofs, vecViewOfs); + + if (@Monster_FindCover(this, vecOrigin, vecViewOfs, 0.0, @Monster_CoverRadius(this))) { + CE_SetMember(this, m_flMoveWaitFinished, g_flGameTime + Float:data); + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_FIND_COVER_FROM_BEST_SOUND: { + new iBestSound = @Monster_BestSound(this); + + if (iBestSound != -1 && @Monster_FindCover(this, g_rgSounds[iBestSound][Sound_Origin], Float:{0.0, 0.0, 0.0}, float(g_rgSounds[iBestSound][Sound_Volume]), @Monster_CoverRadius(this))) { + CE_SetMember(this, m_flMoveWaitFinished, g_flGameTime + Float:data); + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_FACE_HINTNODE: { + // TODO: Implement + // new iHintNode = CE_GetMember(this, m_iHintNode); + // new Float:flHintYaw = g_pWorldGraphNodes[iHintNode][Nodes_HintYaw]; + + // set_pev(this, pev_ideal_yaw, flHintYaw); + // @Monster_SetTurnActivity(this); + } + case TASK_FACE_LASTPOSITION: { + static Float:vecLastPosition[3]; CE_GetMemberVec(this, m_vecLastPosition, vecLastPosition); + @Monster_MakeIdealYaw(this, vecLastPosition); + @Monster_SetTurnActivity(this); + } + case TASK_FACE_TARGET: { + new pTargetEnt = CE_GetMember(this, m_pTargetEnt); + + if (pTargetEnt != FM_NULLENT) { + new Float:vecTarget[3]; pev(pTargetEnt, pev_origin, vecTarget); + @Monster_MakeIdealYaw(this, vecTarget); + @Monster_SetTurnActivity(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_FACE_ENEMY: { + new Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + + @Monster_MakeIdealYaw(this, vecEnemyLKP); + @Monster_SetTurnActivity(this); + } + case TASK_FACE_IDEAL: { + @Monster_SetTurnActivity(this); + } + case TASK_FACE_ROUTE: { + if (@Monster_IsRouteClear(this)) { + @Monster_TaskFail(this); + } else { + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + static rgWaypoint[MONSTER_WAYPOINT]; ArrayGetArray(irgRoute, CE_GetMember(this, m_iRouteIndex), rgWaypoint[any:0], _:MONSTER_WAYPOINT); + @Monster_MakeIdealYaw(this, rgWaypoint[MONSTER_WAYPOINT_LOCATION]); + @Monster_SetTurnActivity(this); + } + } + case TASK_WAIT, TASK_WAIT_FACE_ENEMY: { + CE_SetMember(this, m_flWaitFinished, g_flGameTime + Float:data); + } + case TASK_WAIT_RANDOM: { + CE_SetMember(this, m_flWaitFinished, g_flGameTime + random_float(0.1, Float:data)); + } + case TASK_MOVE_TO_TARGET_RANGE: { + new pTargetEnt = CE_GetMember(this, m_pTargetEnt); + new Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + new Float:vecTarget[3]; pev(pTargetEnt, pev_origin, vecTarget); + + if (xs_vec_distance(vecOrigin, vecTarget) < 1.0) { + @Monster_TaskComplete(this); + } else { + CE_SetMemberVec(this, m_vecMoveGoal, vecTarget); + + // if (CE_GetMember(this, m_pPathTask) == Invalid_NavBuildPathTask) { + if (!@Monster_MoveToTarget(this, ACT_WALK, 2.0)) { + @Monster_TaskFail(this); + } + // } + } + } + case TASK_RUN_TO_TARGET, TASK_WALK_TO_TARGET: { + new pTargetEnt = CE_GetMember(this, m_pTargetEnt); + + new Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + new Float:vecTarget[3]; pev(pTargetEnt, pev_origin, vecTarget); + + if (xs_vec_distance(vecOrigin, vecTarget) < 1.0) { + @Monster_TaskComplete(this); + } else { + new Activity:iNewActivity = iTask == TASK_WALK_TO_TARGET ? ACT_WALK : ACT_RUN; + + if (@Monster_LookupActivity(this, iNewActivity) == ACTIVITY_NOT_AVAILABLE) { + @Monster_TaskComplete(this); + } else { + // if (CE_GetMember(this, m_pPathTask) == Invalid_NavBuildPathTask) { + if (pTargetEnt == FM_NULLENT || !@Monster_MoveToTarget(this, iNewActivity, 2.0)) { + @Monster_TaskFail(this); + @Monster_RouteClear(this); + } + // } + } + } + + @Monster_TaskComplete(this); + } + case TASK_CLEAR_MOVE_WAIT: { + CE_SetMember(this, m_flMoveWaitFinished, g_flGameTime); + @Monster_TaskComplete(this); + } + case TASK_MELEE_ATTACK1_NOTURN, TASK_MELEE_ATTACK1: { + CE_SetMember(this, m_iIdealActivity, ACT_MELEE_ATTACK1); + } + case TASK_MELEE_ATTACK2_NOTURN, TASK_MELEE_ATTACK2: { + CE_SetMember(this, m_iIdealActivity, ACT_MELEE_ATTACK2); + } + case TASK_RANGE_ATTACK1_NOTURN, TASK_RANGE_ATTACK1: { + CE_SetMember(this, m_iIdealActivity, ACT_RANGE_ATTACK1); + } + case TASK_RANGE_ATTACK2_NOTURN, TASK_RANGE_ATTACK2: { + CE_SetMember(this, m_iIdealActivity, ACT_RANGE_ATTACK2); + } + case TASK_RELOAD_NOTURN, TASK_RELOAD: { + CE_SetMember(this, m_iIdealActivity, ACT_RELOAD); + } + case TASK_SPECIAL_ATTACK1: { + CE_SetMember(this, m_iIdealActivity, ACT_SPECIAL_ATTACK1); + } + case TASK_SPECIAL_ATTACK2: { + CE_SetMember(this, m_iIdealActivity, ACT_SPECIAL_ATTACK2); + } + case TASK_SET_ACTIVITY: { + CE_SetMember(this, m_iIdealActivity, data); + @Monster_TaskComplete(this); + } + case TASK_GET_PATH_TO_ENEMY_LKP: { + new Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + new Float:vecViewOfs[3]; pev(this, pev_view_ofs, vecViewOfs); + new Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + + if (@Monster_BuildRoute(this, vecEnemyLKP, MF_TO_LOCATION, FM_NULLENT)) { + @Monster_TaskComplete(this); + } else if (@Monster_BuildNearestRoute(this, vecEnemyLKP, vecViewOfs, 0.0, xs_vec_distance(vecOrigin, vecEnemyLKP))) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_GET_PATH_TO_ENEMY: { + new Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + + new pEnemy = CE_GetMember(this, m_pEnemy); + new Float:vecEnemyOrigin[3]; pev(pEnemy, pev_origin, vecEnemyOrigin); + new Float:vecEnemyViewOfs[3]; pev(pEnemy, pev_view_ofs, vecEnemyViewOfs); + + if (pEnemy == FM_NULLENT) { + @Monster_TaskFail(this); + return; + } + + if (@Monster_BuildRoute(this, vecEnemyOrigin, MF_TO_ENEMY, pEnemy)) { + @Monster_TaskComplete(this); + } else if (@Monster_BuildNearestRoute(this, vecEnemyOrigin, vecEnemyViewOfs, 0.0, xs_vec_distance(vecOrigin, vecEnemyOrigin))) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_GET_PATH_TO_ENEMY_CORPSE: { + new Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + new Float:vecAngles[3]; pev(this, pev_angles, vecAngles); + new Float:vecForward[3]; angle_vector(vecAngles, ANGLEVECTOR_FORWARD, vecForward); + new Float:vecTarget[3]; xs_vec_sub_scaled(vecEnemyLKP, vecForward, 64.0, vecTarget); + + if (@Monster_BuildRoute(this, vecTarget, MF_TO_LOCATION, FM_NULLENT)) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_GET_PATH_TO_SPOT: { + // TODO: Fix for multiplayer (find best player) + new pPlayer = find_player_ex(FindPlayer_ExcludeDead); + new Float:vecMoveGoal[3]; CE_GetMemberVec(this, m_vecLastPosition, vecMoveGoal); + + if (@Monster_BuildRoute(this, vecMoveGoal, MF_TO_LOCATION, pPlayer)) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_GET_PATH_TO_TARGET: { + new Activity:iMovementActivity = CE_GetMember(this, m_iMovementActivity); + new pTargetEnt = CE_GetMember(this, m_pTargetEnt); + + // if (CE_GetMember(this, m_pPathTask) == Invalid_NavBuildPathTask) { + @Monster_RouteClear(this); + if (pTargetEnt != FM_NULLENT && @Monster_MoveToTarget(this, iMovementActivity, 1.0)) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + // } + } + case TASK_GET_PATH_TO_HINTNODE: { + // TODO: Implement + // if (CE_GetMember(this, m_pPathTask) != Invalid_NavBuildPathTask) return; + // new Activity:iMovementActivity = CE_GetMember(this, m_iMovementActivity); + + // if (@Monster_MoveToLocation(this, iMovementActivity, 2, WorldGraph.m_pNodes[ m_iHintNode ].m_vecOrigin)) { + // @Monster_TaskComplete(this); + // } else { + // @Monster_TaskFail(this); + // } + } + case TASK_GET_PATH_TO_LASTPOSITION: { + // if (CE_GetMember(this, m_pPathTask) != Invalid_NavBuildPathTask) return; + + new Activity:iMovementActivity = CE_GetMember(this, m_iMovementActivity); + new Float:vecMoveGoal[3]; CE_GetMemberVec(this, m_vecLastPosition, vecMoveGoal); + + if (@Monster_MoveToLocation(this, iMovementActivity, 2.0, vecMoveGoal)) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } + case TASK_GET_PATH_TO_BESTSOUND, TASK_GET_PATH_TO_BESTSCENT: { + new iSound = -1; + + switch (iTask) { + case TASK_GET_PATH_TO_BESTSOUND: iSound = @Monster_BestSound(this); + case TASK_GET_PATH_TO_BESTSCENT: iSound = @Monster_BestScent(this); + } + + if (iSound != -1) { + new Activity:iMovementActivity = CE_GetMember(this, m_iMovementActivity); + + if (@Monster_MoveToLocation(this, iMovementActivity, 2.0, g_rgSounds[iSound][Sound_Origin])) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } + } else { + @Monster_TaskFail(this); + } + } + case TASK_RUN_PATH: { + if (@Monster_LookupActivity(this, ACT_RUN) != ACTIVITY_NOT_AVAILABLE) { + CE_SetMember(this, m_iMovementActivity, ACT_RUN); + } else { + CE_SetMember(this, m_iMovementActivity, ACT_WALK); + } + + @Monster_TaskComplete(this); + } + case TASK_WALK_PATH: { + if (pev(this, pev_movetype) == MOVETYPE_FLY) { + CE_SetMember(this, m_iMovementActivity, ACT_FLY); + } + + if (@Monster_LookupActivity(this, ACT_WALK) != ACTIVITY_NOT_AVAILABLE) { + CE_SetMember(this, m_iMovementActivity, ACT_WALK); + } else { + CE_SetMember(this, m_iMovementActivity, ACT_RUN); + } + + @Monster_TaskComplete(this); + } + case TASK_STRAFE_PATH: { + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecAngles[3]; pev(this, pev_angles, vecAngles); + static Float:vecRight[3]; angle_vector(vecAngles, ANGLEVECTOR_RIGHT, vecRight); + + static rgWaypoint[MONSTER_WAYPOINT]; ArrayGetArray(irgRoute, CE_GetMember(this, m_iRouteIndex), rgWaypoint[any:0], _:MONSTER_WAYPOINT); + @Monster_MakeIdealYaw(this, rgWaypoint[MONSTER_WAYPOINT_LOCATION]); + + new Float:vecDirection[3]; + xs_vec_set(vecDirection, rgWaypoint[MONSTER_WAYPOINT_LOCATION][0] - vecOrigin[0], rgWaypoint[MONSTER_WAYPOINT_LOCATION][1] - vecOrigin[1], 0.0); + xs_vec_normalize(vecDirection, vecDirection); + + if (xs_vec_dot(vecDirection, vecRight) > 0.0) { + CE_SetMember(this, m_iMovementActivity, ACT_STRAFE_RIGHT); + } else { + CE_SetMember(this, m_iMovementActivity, ACT_STRAFE_LEFT); + } + + @Monster_TaskComplete(this); + } + case TASK_WAIT_FOR_MOVEMENT: { + if (@Monster_IsRouteClear(this)) { + @Monster_TaskComplete(this); + } + } + case TASK_EAT: { + @Monster_Eat(this, Float:data); + @Monster_TaskComplete(this); + } + case TASK_SMALL_FLINCH: { + CE_SetMember(this, m_iIdealActivity, @Monster_GetSmallFlinchActivity(this)); + } + case TASK_DIE: { + @Monster_RouteClear(this); + CE_SetMember(this, m_iIdealActivity, @Monster_GetDeathActivity(this)); + set_pev(this, pev_deadflag, DEAD_DYING); + } + case TASK_SOUND_WAKE: { + CE_CallMethod(this, AlertSound); + @Monster_TaskComplete(this); + } + case TASK_SOUND_DIE: { + CE_CallMethod(this, DeathSound); + @Monster_TaskComplete(this); + } + case TASK_SOUND_IDLE: { + CE_CallMethod(this, IdleSound); + @Monster_TaskComplete(this); + } + case TASK_SOUND_PAIN: { + CE_CallMethod(this, PainSound); + @Monster_TaskComplete(this); + } + case TASK_SOUND_DEATH: { + CE_CallMethod(this, DeathSound); + @Monster_TaskComplete(this); + } + case TASK_SOUND_ANGRY: { + @Monster_TaskComplete(this); + } + case TASK_WAIT_FOR_SCRIPT: { + static pCine; pCine = CE_GetMember(this, m_pCine); + if (pCine != FM_NULLENT) { + static iszIdle; iszIdle = CE_GetMember(pCine, "iszIdle"); + static iszPlay; iszPlay = CE_GetMember(pCine, "iszPlay"); + + if (iszIdle) { + static szIdle[32]; engfunc(EngFunc_SzFromIndex, iszIdle, szIdle, charsmax(szIdle)); + static szPlay[32]; engfunc(EngFunc_SzFromIndex, iszPlay, szPlay, charsmax(szPlay)); + + CE_CallMethod(pCine, StartSequence, iszIdle, false); + + if (equal(szIdle, szPlay)) { + set_pev(this, pev_framerate, 0.0); + } + } else { + CE_SetMember(this, m_iIdealActivity, ACT_IDLE); + } + } + } + case TASK_PLAY_SCRIPT: { + set_pev(this, pev_movetype, MOVETYPE_FLY); + set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); + CE_SetMember(this, m_iScriptState, SCRIPT_PLAYING); + } + case TASK_ENABLE_SCRIPT: { + new pCine = CE_GetMember(this, m_pCine); + CE_CallMethod(pCine, "DelayStart", 0); + @Monster_TaskComplete(this); + } + case TASK_PLANT_ON_SCRIPT: { + new pTargetEnt = CE_GetMember(this, m_pTargetEnt); + + if (pTargetEnt != FM_NULLENT) { + new Float:vecTarget[3]; pev(pTargetEnt, pev_origin, vecTarget); + + set_pev(this, pev_origin, vecTarget); + } + + @Monster_TaskComplete(this); + } + case TASK_FACE_SCRIPT: { + new pTargetEnt = CE_GetMember(this, m_pTargetEnt); + + if (pTargetEnt != FM_NULLENT) { + new Float:vecAngles[3]; pev(pTargetEnt, pev_angles, vecAngles); + set_pev(this, pev_ideal_yaw, UTIL_AngleMod(vecAngles[1])); + } + + @Monster_TaskComplete(this); + CE_SetMember(this, m_iIdealActivity, ACT_IDLE); + @Monster_RouteClear(this); + } + case TASK_SUGGEST_STATE: { + CE_SetMember(this, m_iIdealMonsterState, data); + @Monster_TaskComplete(this); + } + case TASK_SET_FAIL_SCHEDULE: { + CE_SetMember(this, m_iFailSchedule, data); + @Monster_TaskComplete(this); + } + case TASK_CLEAR_FAIL_SCHEDULE: { + CE_SetMember(this, m_iFailSchedule, MONSTER_SCHED_NONE); + @Monster_TaskComplete(this); + } + } +} + +@Monster_EmitSound(this, iType, Float:vecOrigin[3], iVolume, Float:flDuration) { + new iSound = @Sound_FindFree(); + + g_rgSounds[iSound][Sound_Emitter] = this; + g_rgSounds[iSound][Sound_Type] = iType; + g_rgSounds[iSound][Sound_Volume] = iVolume; + g_rgSounds[iSound][Sound_ExpiredTime] = g_flGameTime + flDuration; + pev(this, pev_origin, g_rgSounds[iSound][Sound_Origin]); +} + +@Sound_FindFree() { + static iBestSoundToForget; iBestSoundToForget = -1; + + for (new iSound = 0; iSound < sizeof(g_rgSounds); ++iSound) { + if (g_rgSounds[iSound][Sound_ExpiredTime] <= g_flGameTime) { + return iSound; + } + + if (iBestSoundToForget == -1 || g_rgSounds[iSound][Sound_ExpiredTime] < g_rgSounds[iBestSoundToForget][Sound_ExpiredTime]) { + iBestSoundToForget = iSound; + } + } + + return iBestSoundToForget; +} + +bool:@Sound_IsSound(this) { + return !!(g_rgSounds[this][Sound_Type] & (SOUND_COMBAT | SOUND_WORLD | SOUND_PLAYER | SOUND_DANGER)); +} + +bool:@Sound_IsScent(this) { + return !!(g_rgSounds[this][Sound_Type] & (SOUND_CARCASS | SOUND_MEAT | SOUND_GARBAGE)); +} + +@Monster_RunTask(this, iTask, any:data) { + static Float:flYawSpeed; pev(this, pev_yaw_speed, flYawSpeed); + static bool:bSequenceFinished; bSequenceFinished = CE_GetMember(this, m_bSequenceFinished); + + switch (iTask) { + case TASK_TURN_RIGHT, TASK_TURN_LEFT: { + @Monster_ChangeYaw(this, flYawSpeed); + + if (@Monster_FacingIdeal(this)) { + @Monster_TaskComplete(this); + } + } + case TASK_PLAY_SEQUENCE_FACE_ENEMY, TASK_PLAY_SEQUENCE_FACE_TARGET: { + new pEnemy = CE_GetMember(this, m_pEnemy); + new pTargetEnt = CE_GetMember(this, m_pTargetEnt); + new pTarget = iTask == TASK_PLAY_SEQUENCE_FACE_TARGET ? pTargetEnt : pEnemy; + + if (pTarget) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecTarget[3]; pev(pTarget, pev_origin, vecTarget); + + static Float:vecDirection[3]; + xs_vec_sub(vecTarget, vecOrigin, vecDirection); + xs_vec_normalize(vecDirection, vecDirection); + + static Float:vecAngles[3]; vector_to_angle(vecDirection, vecAngles); + + set_pev(this, pev_ideal_yaw, vecAngles[1]); + + @Monster_ChangeYaw(this, flYawSpeed); + } + + if (bSequenceFinished) { + @Monster_TaskComplete(this); + } + } + case TASK_PLAY_SEQUENCE, TASK_PLAY_ACTIVE_IDLE: { + if (bSequenceFinished) { + @Monster_TaskComplete(this); + } + } + case TASK_FACE_ENEMY: { + new Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + @Monster_MakeIdealYaw(this, vecEnemyLKP); + + @Monster_ChangeYaw(this, flYawSpeed); + + if (@Monster_FacingIdeal(this)) { + @Monster_TaskComplete(this); + } + } + case TASK_FACE_HINTNODE, TASK_FACE_LASTPOSITION, TASK_FACE_TARGET, TASK_FACE_IDEAL, TASK_FACE_ROUTE: { + @Monster_ChangeYaw(this, flYawSpeed); + + if (@Monster_FacingIdeal(this)) { + @Monster_TaskComplete(this); + } + } + case TASK_WAIT_PVS: { + if (engfunc(EngFunc_FindClientInPVS, this) != FM_NULLENT) { + @Monster_TaskComplete(this); + } + } + case TASK_WAIT_INDEFINITE: {} + case TASK_WAIT, TASK_WAIT_RANDOM: { + new Float:flWaitFinished = CE_GetMember(this, m_flWaitFinished); + + if (g_flGameTime >= flWaitFinished) { + @Monster_TaskComplete(this); + } + } + case TASK_WAIT_FACE_ENEMY: { + new Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + new Float:flWaitFinished = CE_GetMember(this, m_flWaitFinished); + + @Monster_MakeIdealYaw(this, vecEnemyLKP); + @Monster_ChangeYaw(this, flYawSpeed); + + if (g_flGameTime >= flWaitFinished) { + @Monster_TaskComplete(this); + } + } + case TASK_MOVE_TO_TARGET_RANGE: { + new pTarget = CE_GetMember(this, m_pTargetEnt); + + if (pTarget == FM_NULLENT) { + @Monster_TaskFail(this); + } else { // if (CE_GetMember(this, m_pPathTask) == Invalid_NavBuildPathTask) { + new Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + new Float:vecTarget[3]; pev(pTarget, pev_origin, vecTarget); + new Float:vecMoveGoal[3]; CE_GetMemberVec(this, m_vecMoveGoal, vecMoveGoal); + + new Float:flDistance = xs_vec_distance_2d(vecOrigin, vecMoveGoal); + + if ((flDistance < Float:data) || xs_vec_distance(vecTarget, vecMoveGoal) > (Float:data * 0.5)) { + pev(pTarget, pev_origin, vecMoveGoal); + flDistance = xs_vec_distance_2d(vecOrigin, vecMoveGoal); + @Monster_RefreshRoute(this); + } + + new Activity:iMovementActivity = CE_GetMember(this, m_iMovementActivity); + + if (flDistance < Float:data) { + @Monster_TaskComplete(this); + @Monster_RouteClear(this); + } else if (flDistance < 190.0 && iMovementActivity != ACT_WALK) { + iMovementActivity = ACT_WALK; + } else if (flDistance >= 270.0 && iMovementActivity != ACT_RUN) { + iMovementActivity = ACT_RUN; + } + } + } + case TASK_WAIT_FOR_MOVEMENT: { + if (@Monster_MovementIsComplete(this)) { + @Monster_TaskComplete(this); + @Monster_RouteClear(this); + } + } + case TASK_DIE: { + static Float:flFrame; pev(this, pev_frame, flFrame); + if (bSequenceFinished && flFrame >= 255.0) { + set_pev(this, pev_deadflag, DEAD_DEAD); + + CE_CallMethod(this, SetThink, NULL_STRING); + @Monster_StopAnimation(this); + + if (!@Monster_BBoxFlat(this)) { + engfunc(EngFunc_SetSize, this, Float:{-4.0, -4.0, 0.0}, Float:{4.0, 4.0, 1.0}); + } else { + new Float:vecMins[3]; pev(this, pev_mins, vecMins); + new Float:vecMaxs[3]; pev(this, pev_maxs, vecMaxs); + + vecMaxs[2] = vecMins[1] + 1.0; + + engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); + } + + if (@Monster_ShouldFadeOnDeath(this)) { + @Monster_SUB_StartFadeOut(this); + } else { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + CE_CallMethod(this, EmitSound, SOUND_CARCASS, vecOrigin, 384, 30.0); + } + } + } + case TASK_RANGE_ATTACK1_NOTURN, TASK_MELEE_ATTACK1_NOTURN, TASK_MELEE_ATTACK2_NOTURN, TASK_RANGE_ATTACK2_NOTURN, TASK_RELOAD_NOTURN: { + if (bSequenceFinished) { + CE_SetMember(this, m_iActivity, ACT_RESET); + @Monster_TaskComplete(this); + } + } + case TASK_RANGE_ATTACK1, TASK_MELEE_ATTACK1, TASK_MELEE_ATTACK2, TASK_RANGE_ATTACK2, TASK_SPECIAL_ATTACK1, TASK_SPECIAL_ATTACK2, TASK_RELOAD: { + new Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + + @Monster_MakeIdealYaw(this, vecEnemyLKP); + @Monster_ChangeYaw(this, flYawSpeed); + + if (bSequenceFinished) { + CE_SetMember(this, m_iActivity, ACT_RESET); + @Monster_TaskComplete(this); + } + } + case TASK_SMALL_FLINCH: { + if (bSequenceFinished) { + @Monster_TaskComplete(this); + } + } + case TASK_WAIT_FOR_SCRIPT: { + new pCine = CE_GetMember(this, m_pCine); + new iDelay = CE_GetMember(pCine, "iDelay"); + new iszPlay = CE_GetMember(pCine, "iszPlay"); + new Float:flStartTime = CE_GetMember(pCine, "iStartTime"); + + if (iDelay <= 0 && g_flGameTime >= flStartTime) { + @Monster_TaskComplete(this); + + CE_CallMethod(pCine, StartSequence, iszPlay, true); + + if (bSequenceFinished) { + @Monster_ClearSchedule(this); + } + + set_pev(this, pev_framerate, 1.0); + } + } + case TASK_PLAY_SCRIPT: { + new pCine = CE_GetMember(this, m_pCine); + + if (bSequenceFinished) { + CE_CallMethod(pCine, SequenceDone); + } + } + } +} + +@Monster_AlertSound(this) {} +@Monster_DeathSound(this) {} +@Monster_IdleSound(this) {} +@Monster_PainSound(this) {} + +stock UTIL_DrawLine(const Float:vecSrc[], const Float:vecTarget[], const rgiColor[3] = {255, 0, 0}) { + new iLifeTime = 30; + new iWidth = 8; + new iBrightness = 255; + + new iModelIndex = engfunc(EngFunc_ModelIndex, "sprites/smoke.spr"); + + engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, vecSrc, 0); + write_byte(TE_BEAMPOINTS); + engfunc(EngFunc_WriteCoord, vecTarget[0]); + engfunc(EngFunc_WriteCoord, vecTarget[1]); + engfunc(EngFunc_WriteCoord, vecTarget[2]); + engfunc(EngFunc_WriteCoord, vecSrc[0]); + engfunc(EngFunc_WriteCoord, vecSrc[1]); + engfunc(EngFunc_WriteCoord, vecSrc[2]); + write_short(iModelIndex); + write_byte(0); + write_byte(0); + write_byte(iLifeTime); + write_byte(iWidth); + write_byte(0); + write_byte(rgiColor[0]); + write_byte(rgiColor[1]); + write_byte(rgiColor[2]); + write_byte(iBrightness); + write_byte(0); + message_end(); +} + +@Monster_CheckTraceHullAttack(this, Float:flDist, Float:flDamage, iDamageBits) { + static Float:vecAimAngles[3]; + pev(this, pev_angles, vecAimAngles); + vecAimAngles[0] = -vecAimAngles[0]; + + static Float:vecForward[3]; angle_vector(vecAimAngles, ANGLEVECTOR_FORWARD, vecForward); + + static Float:vecSize[3]; pev(this, pev_size, vecSize); + + static Float:vecStart[3]; + pev(this, pev_origin, vecStart); + vecStart[2] += vecSize[2] / 2; + + static Float:vecEnd[3]; xs_vec_add_scaled(vecStart, vecForward, flDist, vecEnd); + + engfunc(EngFunc_TraceHull, vecStart, vecEnd, DONT_IGNORE_MONSTERS, HULL_HEAD, this, g_pTrace); + static pHit; pHit = get_tr2(g_pTrace, TR_pHit); + + if (pHit > 0) { + if (flDamage > 0.0) { + ExecuteHamB(Ham_TakeDamage, pHit, this, this, flDamage, iDamageBits); + } + + return pHit; + } + + return FM_NULLENT; +} + +@Monster_MeleeAttack1(this) { + static Float:flRange; flRange = CE_GetMember(this, m_flMeleeAttack1Range); + static Float:flDamage; flDamage = CE_GetMember(this, m_flMeleeAttack1Damage); + + return CE_CallMethod(this, CheckTraceHullAttack, flRange, flDamage, DMG_SLASH); +} + +@Monster_MeleeAttack2(this) { + static Float:flRange; flRange = CE_GetMember(this, m_flMeleeAttack2Range); + static Float:flDamage; flDamage = CE_GetMember(this, m_flMeleeAttack2Damage); + + return CE_CallMethod(this, CheckTraceHullAttack, flRange, flDamage, DMG_SLASH); +} + +FireTargets(const szTargetName[], pActivator, pCaller, iUseType, Float:flValue) { + if (equal(szTargetName, NULL_STRING)) return; + + static pTarget; pTarget = FM_NULLENT; + while ((pTarget = engfunc(EngFunc_FindEntityByString, pTarget, "targetname", szTargetName)) != 0) { + if (pTarget && !(pev(pTarget, pev_flags) & FL_KILLME)) { + ExecuteHamB(Ham_Use, pTarget, pCaller, pActivator, iUseType, flValue); + } + } +} + +MapTextureTypeStepType(chTextureType) { + switch (chTextureType) { + case CHAR_TEX_CONCRETE: return STEP_CONCRETE; + case CHAR_TEX_METAL: return STEP_METAL; + case CHAR_TEX_DIRT: return STEP_DIRT; + case CHAR_TEX_VENT: return STEP_VENT; + case CHAR_TEX_GRATE: return STEP_GRATE; + case CHAR_TEX_TILE: return STEP_TILE; + case CHAR_TEX_SLOSH: return STEP_SLOSH; + case CHAR_TEX_SNOW: return STEP_SNOW; + } + + return STEP_CONCRETE; +} + +Float:MapTextureTypeVolume(chTextureType) { + switch (chTextureType) { + case CHAR_TEX_CONCRETE: return 0.5; + case CHAR_TEX_METAL: return 0.5; + case CHAR_TEX_DIRT: return 0.55; + case CHAR_TEX_VENT: return 0.7; + case CHAR_TEX_GRATE: return 0.5; + case CHAR_TEX_TILE: return 0.5; + case CHAR_TEX_SLOSH: return 0.5; + } + + return 0.0; +} + +@Monster_CatagorizeTextureType(this) { + static Float:vecSrc[3]; pev(this, pev_origin, vecSrc); + static Float:vecEnd[3]; xs_vec_set(vecEnd, vecSrc[0], vecSrc[1], -8192.0); + + static iGroundEntity; iGroundEntity = pev(this, pev_groundentity); + if (iGroundEntity == FM_NULLENT) return CHAR_TEX_CONCRETE; + + static szTexture[32]; engfunc(EngFunc_TraceTexture, iGroundEntity, vecSrc, vecEnd, szTexture, charsmax(szTexture)); + + if (szTexture[0] == '-' || szTexture[0] == '+') { + format(szTexture, charsmax(szTexture), "%s", szTexture[2]); + } + + if (szTexture[0] == '{' || szTexture[0] == '!' || szTexture[0] == '~' || szTexture[0] == ' ') { + format(szTexture, charsmax(szTexture), "%s", szTexture[1]); + } + + return dllfunc(DLLFunc_PM_FindTextureType, szTexture); +} + +@Monster_StepSound(this) { + if (~pev(this, pev_flags) & FL_ONGROUND) return; + + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Float:vecMins[3]; pev(this, pev_mins, vecMins); + static Float:flStepHeight; flStepHeight = CE_GetMember(this, m_flStepHeight); + static Float:vecKnee[3]; xs_vec_set(vecKnee, vecOrigin[0], vecOrigin[1], vecOrigin[2] - vecMins[2] + flStepHeight); + static Float:vecFeet[3]; xs_vec_set(vecFeet, vecOrigin[0], vecOrigin[1], vecOrigin[2] - vecMins[2] + (flStepHeight / 2)); + + static iStep; iStep = STEP_CONCRETE; + static Float:fVolume; fVolume = 0.0; + static bool:bOnLadder; bOnLadder = false; + + if (bOnLadder) { + iStep = STEP_LADDER; + fVolume = 0.35; + } else if (engfunc(EngFunc_PointContents, vecKnee) == CONTENTS_WATER) { + iStep = STEP_WADE; + fVolume = 0.65; + } else if (engfunc(EngFunc_PointContents, vecFeet) == CONTENTS_WATER) { + iStep = STEP_SLOSH; + fVolume = 0.5; + } else { + static chTextureType; chTextureType = @Monster_CatagorizeTextureType(this); + + iStep = MapTextureTypeStepType(chTextureType); + fVolume = MapTextureTypeVolume(chTextureType); + } + + if ((pev(this, pev_flags) & FL_DUCKING)) { + fVolume *= 0.35; + } + + @Monster_PlayStepSound(this, iStep, fVolume); +} + +@Monster_PlayStepSound(this, iStep, Float:flVolume) { + static iStepLeft; iStepLeft = CE_GetMember(this, m_iStepLeft); + static iRand; iRand = random(2) + (iStepLeft * 2); + static iSkipStep; iSkipStep = 0; + + switch (iStep) { + case STEP_CONCRETE: { + switch (iRand) { + case 0: emit_sound(this, CHAN_BODY, "player/pl_step1.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 1: emit_sound(this, CHAN_BODY, "player/pl_step3.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 2: emit_sound(this, CHAN_BODY, "player/pl_step2.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 3: emit_sound(this, CHAN_BODY, "player/pl_step4.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + } + } + case STEP_METAL: { + switch (iRand) { + case 0: emit_sound(this, CHAN_BODY, "player/pl_metal1.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 1: emit_sound(this, CHAN_BODY, "player/pl_metal3.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 2: emit_sound(this, CHAN_BODY, "player/pl_metal2.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 3: emit_sound(this, CHAN_BODY, "player/pl_metal4.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + } + } + case STEP_DIRT: { + switch (iRand) { + case 0: emit_sound(this, CHAN_BODY, "player/pl_dirt1.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 1: emit_sound(this, CHAN_BODY, "player/pl_dirt3.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 2: emit_sound(this, CHAN_BODY, "player/pl_dirt2.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 3: emit_sound(this, CHAN_BODY, "player/pl_dirt4.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + } + } + case STEP_VENT: { + switch (iRand) { + case 0: emit_sound(this, CHAN_BODY, "player/pl_duct1.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 1: emit_sound(this, CHAN_BODY, "player/pl_duct3.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 2: emit_sound(this, CHAN_BODY, "player/pl_duct2.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 3: emit_sound(this, CHAN_BODY, "player/pl_duct4.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + } + } + case STEP_GRATE: { + switch (iRand) { + case 0: emit_sound(this, CHAN_BODY, "player/pl_grate1.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 1: emit_sound(this, CHAN_BODY, "player/pl_grate3.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 2: emit_sound(this, CHAN_BODY, "player/pl_grate2.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 3: emit_sound(this, CHAN_BODY, "player/pl_grate4.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + } + } + case STEP_TILE: { + if (!random(5)) { + iRand = 4; + } + + switch (iRand) { + case 0: emit_sound(this, CHAN_BODY, "player/pl_tile1.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 1: emit_sound(this, CHAN_BODY, "player/pl_tile3.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 2: emit_sound(this, CHAN_BODY, "player/pl_tile2.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 3: emit_sound(this, CHAN_BODY, "player/pl_tile4.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 4: emit_sound(this, CHAN_BODY, "player/pl_tile5.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + } + } + case STEP_SLOSH: { + switch (iRand) { + case 0: emit_sound(this, CHAN_BODY, "player/pl_slosh1.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 1: emit_sound(this, CHAN_BODY, "player/pl_slosh3.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 2: emit_sound(this, CHAN_BODY, "player/pl_slosh2.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 3: emit_sound(this, CHAN_BODY, "player/pl_slosh4.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + } + } + case STEP_WADE: { + if (iSkipStep == 0) { + iSkipStep++; + } + + if (iSkipStep++ == 3) { + iSkipStep = 0; + } + + switch (iRand) { + case 0: emit_sound(this, CHAN_BODY, "player/pl_wade1.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 1: emit_sound(this, CHAN_BODY, "player/pl_wade2.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 2: emit_sound(this, CHAN_BODY, "player/pl_wade3.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 3: emit_sound(this, CHAN_BODY, "player/pl_wade4.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + } + + } + case STEP_LADDER: { + switch (iRand) { + case 0: emit_sound(this, CHAN_BODY, "player/pl_ladder1.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 1: emit_sound(this, CHAN_BODY, "player/pl_ladder3.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 2: emit_sound(this, CHAN_BODY, "player/pl_ladder2.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 3: emit_sound(this, CHAN_BODY, "player/pl_ladder4.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + } + } + case STEP_SNOW: { + switch (iRand) { + case 0: emit_sound(this, CHAN_BODY, "player/pl_snow1.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 1: emit_sound(this, CHAN_BODY, "player/pl_snow3.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 2: emit_sound(this, CHAN_BODY, "player/pl_snow2.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + case 3: emit_sound(this, CHAN_BODY, "player/pl_snow4.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); + } + } + } + + CE_SetMember(this, m_iStepLeft, !iStepLeft); +} + +stock bool:UTIL_IsMasterTriggered(const szMaster[], pActivator) { + if (!equal(szMaster, NULL_STRING)) { + new pMaster = engfunc(EngFunc_FindEntityByString, 0, "targetname", szMaster); + + if (pMaster && (ExecuteHam(Ham_ObjectCaps, pMaster) & FCAP_MASTER)) { + return !!ExecuteHamB(Ham_IsTriggered, pMaster, pActivator); + } + } + + return true; +} + +stock bool:UTIL_IsDoor(pEntity) { + if (pEntity == FM_NULLENT) return false; + if (!pEntity) return false; + + static szClassname[32]; pev(pEntity, pev_classname, szClassname, charsmax(szClassname)); + + return !!equal(szClassname, "func_door", 9); +} + +stock UTIL_IsUsableEntity(pEntity, pWalker) { + static iszMaster; iszMaster = get_ent_data(pEntity, "CBaseToggle", "m_sMaster"); + + if (iszMaster) { + static szMaster[32]; engfunc(EngFunc_SzFromIndex, iszMaster, szMaster, charsmax(szMaster)); + + if (!UTIL_IsMasterTriggered(szMaster, pWalker)) { + return false; + } + } + + return true; +} diff --git a/entities/include/entity_base_monster_const.inc b/entities/include/entity_base_monster_const.inc new file mode 100644 index 0000000..79cf184 --- /dev/null +++ b/entities/include/entity_base_monster_const.inc @@ -0,0 +1,491 @@ +#if defined _entity_monster_base_const_included + #endinput +#endif +#define _entity_monster_base_const_included + +#include + +#define BASE_MONSTER_ENTITY_NAME "monster_base" + +#define MAX_MONSTER_SCHED_TASKS 32 + +enum MONSTER_TASK_DATA { + MONSTER_TASK_DATA_ID, + any:MONSTER_TASK_DATA_DATA +}; + +enum MONSTER_SCHEDULE_DATA { + MONSTER_SCHEDULE_DATA_SHARED_ID, + MONSTER_SCHEDULE_DATA_TASK[_:MONSTER_TASK_DATA * MAX_MONSTER_SCHED_TASKS], + MONSTER_SCHEDULE_DATA_TASK_SIZE, + MONSTER_SCHEDULE_DATA_INTERRUPT_MASK,// a bit mask of conditions that can interrupt this schedule + MONSTER_SCHEDULE_DATA_SOUND_MASK // a more specific mask that indicates which TYPES of sounds will interrupt the schedule in the event that the schedule is broken by COND_HEAR_SOUND + // MONSTER_SCHEDULE_NAME[32] +}; + +enum MONSTER_STATE { + MONSTER_STATE_NONE, + MONSTER_STATE_IDLE, + MONSTER_STATE_COMBAT, + MONSTER_STATE_ALERT, + MONSTER_STATE_HUNT, + MONSTER_STATE_PRONE, + MONSTER_STATE_SCRIPT, + MONSTER_STATE_PLAYDEAD, + MONSTER_STATE_DEAD +}; + +enum MONSTER_WAYPOINT { + Float:MONSTER_WAYPOINT_LOCATION[3], + MONSTER_WAYPOINT_TYPE +} + +enum MONSTER_ENEMY { + MONSTER_ENEMY_ENTITY, + Float:MONSTER_ENEMY_LOCATION[3] +}; + +enum MONSTER_TARGET_MOVE { + MONSTER_TARGET_MOVE_NORMAL, + MONSTER_TARGET_MOVE_SCRIPTED +}; + +enum MONSTER_TASK_STATUS { + MONSTER_TASK_STATUS_NEW, // Just started + MONSTER_TASK_STATUS_RUNNING, // Running task & movement + MONSTER_TASK_STATUS_RUNNING_MOVEMENT, // Just running movement + MONSTER_TASK_STATUS_RUNNING_TASK, // Just running task + MONSTER_TASK_STATUS_COMPLETE // Completed, get next task +}; + +enum MONSTER_LOCALMOVE { + MONSTER_LOCALMOVE_INVALID, + MONSTER_LOCALMOVE_INVALID_DONT_TRIANGULATE, // move is not possible, don't try to triangulate + MONSTER_LOCALMOVE_VALID // move is possible +}; + +enum MONSTER_SCHEDULE_TYPE { + MONSTER_SCHED_NONE = 0, + MONSTER_SCHED_IDLE_STAND, + MONSTER_SCHED_IDLE_WALK, + MONSTER_SCHED_WAKE_ANGRY, + MONSTER_SCHED_WAKE_CALLED, + MONSTER_SCHED_ALERT_FACE, + MONSTER_SCHED_ALERT_SMALL_FLINCH, + MONSTER_SCHED_ALERT_BIG_FLINCH, + MONSTER_SCHED_ALERT_STAND, + MONSTER_SCHED_INVESTIGATE_SOUND, + MONSTER_SCHED_COMBAT_FACE, + MONSTER_SCHED_COMBAT_STAND, + MONSTER_SCHED_CHASE_ENEMY, + MONSTER_SCHED_CHASE_ENEMY_FAILED, + MONSTER_SCHED_VICTORY_DANCE, + MONSTER_SCHED_TARGET_FACE, + MONSTER_SCHED_TARGET_CHASE, + MONSTER_SCHED_SMALL_FLINCH, + MONSTER_SCHED_TAKE_COVER_FROM_ENEMY, + MONSTER_SCHED_TAKE_COVER_FROM_BEST_SOUND, + MONSTER_SCHED_TAKE_COVER_FROM_ORIGIN, + MONSTER_SCHED_COWER, // usually a last resort! + MONSTER_SCHED_MELEE_ATTACK1, + MONSTER_SCHED_MELEE_ATTACK2, + MONSTER_SCHED_RANGE_ATTACK1, + MONSTER_SCHED_RANGE_ATTACK2, + MONSTER_SCHED_SPECIAL_ATTACK1, + MONSTER_SCHED_SPECIAL_ATTACK2, + MONSTER_SCHED_STANDOFF, + MONSTER_SCHED_ARM_WEAPON, + MONSTER_SCHED_RELOAD, + MONSTER_SCHED_GUARD, + MONSTER_SCHED_AMBUSH, + MONSTER_SCHED_DIE, + MONSTER_SCHED_WAIT_TRIGGER, + MONSTER_SCHED_FOLLOW, + MONSTER_SCHED_SLEEP, + MONSTER_SCHED_WAKE, + MONSTER_SCHED_BARNACLE_VICTIM_GRAB, + MONSTER_SCHED_BARNACLE_VICTIM_CHOMP, + MONSTER_SCHED_AISCRIPT, + MONSTER_SCHED_FAIL, + + MONSTER_LAST_COMMON_SCHEDULE // Leave this at the bottom +}; + +enum MONSTER_SHARED_SCHED { + MONSTER_SHARED_SCHED_INVALID = -1, + MONSTER_SHARED_SCHED_ACTIVE_IDLE, + MONSTER_SHARED_SCHED_IDLE_STAND, + MONSTER_SHARED_SCHED_IDLE_WALK, + MONSTER_SHARED_SCHED_WAKE_ANGRY, + MONSTER_SHARED_SCHED_ALERT_FACE, + MONSTER_SHARED_SCHED_ALERT_SMALL_FLINCH, + MONSTER_SHARED_SCHED_ALERT_STAND, + MONSTER_SHARED_SCHED_INVESTIGATE_SOUND, + MONSTER_SHARED_SCHED_COMBAT_FACE, + MONSTER_SHARED_SCHED_COMBAT_STAND, + MONSTER_SHARED_SCHED_CHASE_ENEMY, + MONSTER_SHARED_SCHED_CHASE_ENEMY_FAILED, + MONSTER_SHARED_SCHED_VICTORY_DANCE, + MONSTER_SHARED_SCHED_SMALL_FLINCH, + MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ENEMY, + MONSTER_SHARED_SCHED_TAKE_COVER_FROM_BEST_SOUND, + MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ORIGIN, + MONSTER_SHARED_SCHED_COWER, + MONSTER_SHARED_SCHED_MELEE_ATTACK1, + MONSTER_SHARED_SCHED_MELEE_ATTACK2, + MONSTER_SHARED_SCHED_RANGE_ATTACK1, + MONSTER_SHARED_SCHED_RANGE_ATTACK2, + MONSTER_SHARED_SCHED_SPECIAL_ATTACK1, + MONSTER_SHARED_SCHED_SPECIAL_ATTACK2, + MONSTER_SHARED_SCHED_STANDOFF, + MONSTER_SHARED_SCHED_ARM_WEAPON, + MONSTER_SHARED_SCHED_RELOAD, + MONSTER_SHARED_SCHED_AMBUSH, + MONSTER_SHARED_SCHED_DIE, + MONSTER_SHARED_SCHED_WAIT_TRIGGER, + MONSTER_SHARED_SCHED_BARNACLE_VICTIM_GRAB, + MONSTER_SHARED_SCHED_BARNACLE_VICTIM_CHOMP, + MONSTER_SHARED_SCHED_WAIT_SCRIPT, + MONSTER_SHARED_SCHED_WALK_TO_SCRIPT, + MONSTER_SHARED_SCHED_RUN_TO_SCRIPT, + MONSTER_SHARED_SCHED_FACE_SCRIPT, + MONSTER_SHARED_SCHED_FAIL, + MONSTER_SHARED_SCHED_ERROR +}; + +enum { + SCRIPT_PLAYING, // Playing the sequence + SCRIPT_WAIT, // Waiting on everyone in the script to be ready + SCRIPT_CLEANUP, // Cancelling the script / cleaning up + SCRIPT_WALK_TO_MARK, + SCRIPT_RUN_TO_MARK +}; + +enum { + TASK_WAIT, + TASK_WAIT_FACE_ENEMY, + TASK_WAIT_PVS, + TASK_SUGGEST_STATE, + TASK_WALK_TO_TARGET, + TASK_RUN_TO_TARGET, + TASK_MOVE_TO_TARGET_RANGE, + TASK_GET_PATH_TO_ENEMY, + TASK_GET_PATH_TO_ENEMY_LKP, + TASK_GET_PATH_TO_ENEMY_CORPSE, + TASK_GET_PATH_TO_LEADER, + TASK_GET_PATH_TO_SPOT, + TASK_GET_PATH_TO_TARGET, + TASK_GET_PATH_TO_HINTNODE, + TASK_GET_PATH_TO_LASTPOSITION, + TASK_GET_PATH_TO_BESTSOUND, + TASK_GET_PATH_TO_BESTSCENT, + TASK_RUN_PATH, + TASK_WALK_PATH, + TASK_STRAFE_PATH, + TASK_CLEAR_MOVE_WAIT, + TASK_STORE_LASTPOSITION, + TASK_CLEAR_LASTPOSITION, + TASK_PLAY_ACTIVE_IDLE, + TASK_FIND_HINTNODE, + TASK_CLEAR_HINTNODE, + TASK_SMALL_FLINCH, + TASK_FACE_IDEAL, + TASK_FACE_ROUTE, + TASK_FACE_ENEMY, + TASK_FACE_HINTNODE, + TASK_FACE_TARGET, + TASK_FACE_LASTPOSITION, + TASK_RANGE_ATTACK1, + TASK_RANGE_ATTACK2, + TASK_MELEE_ATTACK1, + TASK_MELEE_ATTACK2, + TASK_RELOAD, + TASK_RANGE_ATTACK1_NOTURN, + TASK_RANGE_ATTACK2_NOTURN, + TASK_MELEE_ATTACK1_NOTURN, + TASK_MELEE_ATTACK2_NOTURN, + TASK_RELOAD_NOTURN, + TASK_SPECIAL_ATTACK1, + TASK_SPECIAL_ATTACK2, + TASK_CROUCH, + TASK_STAND, + TASK_GUARD, + TASK_STEP_LEFT, + TASK_STEP_RIGHT, + TASK_STEP_FORWARD, + TASK_STEP_BACK, + TASK_DODGE_LEFT, + TASK_DODGE_RIGHT, + TASK_SOUND_ANGRY, + TASK_SOUND_DEATH, + TASK_SET_ACTIVITY, + TASK_SET_SCHEDULE, + TASK_SET_FAIL_SCHEDULE, + TASK_CLEAR_FAIL_SCHEDULE, + TASK_PLAY_SEQUENCE, + TASK_PLAY_SEQUENCE_FACE_ENEMY, + TASK_PLAY_SEQUENCE_FACE_TARGET, + TASK_SOUND_IDLE, + TASK_SOUND_WAKE, + TASK_SOUND_PAIN, + TASK_SOUND_DIE, + TASK_FIND_COVER_FROM_BEST_SOUND,// tries lateral cover first, then node cover + TASK_FIND_COVER_FROM_ENEMY,// tries lateral cover first, then node cover + TASK_FIND_LATERAL_COVER_FROM_ENEMY, + TASK_FIND_NODE_COVER_FROM_ENEMY, + TASK_FIND_NEAR_NODE_COVER_FROM_ENEMY,// data for this one is the MAXIMUM acceptable distance to the cover. + TASK_FIND_FAR_NODE_COVER_FROM_ENEMY,// data for this one is there MINIMUM aceptable distance to the cover. + TASK_FIND_COVER_FROM_ORIGIN, + TASK_EAT, + TASK_DIE, + TASK_WAIT_FOR_SCRIPT, + TASK_PLAY_SCRIPT, + TASK_ENABLE_SCRIPT, + TASK_PLANT_ON_SCRIPT, + TASK_FACE_SCRIPT, + TASK_WAIT_RANDOM, + TASK_WAIT_INDEFINITE, + TASK_STOP_MOVING, + TASK_TURN_LEFT, + TASK_TURN_RIGHT, + TASK_REMEMBER, + TASK_FORGET, + TASK_WAIT_FOR_MOVEMENT, // wait until MovementIsComplete() + TASK_WAIT_FOR_ROUTE_BUILD, + LAST_COMMON_TASK // LEAVE THIS AT THE BOTTOM!! (sjb) +}; + +enum (<<= 1) { + COND_NO_AMMO_LOADED = (1 << 0), // weapon needs to be reloaded! + COND_SEE_HATE, // see something that you hate + COND_SEE_FEAR, // see something that you are afraid of + COND_SEE_DISLIKE, // see something that you dislike + COND_SEE_ENEMY, // target entity is in full view. + COND_ENEMY_OCCLUDED, // target entity occluded by the world + COND_SMELL_FOOD, + COND_ENEMY_TOOFAR, + COND_LIGHT_DAMAGE, // hurt a little + COND_HEAVY_DAMAGE, // hurt a lot + COND_CAN_RANGE_ATTACK1, + COND_CAN_MELEE_ATTACK1, + COND_CAN_RANGE_ATTACK2, + COND_CAN_MELEE_ATTACK2, + COND_PROVOKED, + COND_NEW_ENEMY, + COND_HEAR_SOUND, // there is an interesting sound + COND_SMELL, // there is an interesting scent + COND_ENEMY_FACING_ME, // enemy is facing me + COND_ENEMY_DEAD, // enemy was killed. If you get this in combat, try to find another enemy. If you get it in alert, victory dance. + COND_SEE_CLIENT, // see a client + COND_SEE_NEMESIS, // see my nemesis + COND_WAIT_FOR_PATH = (1 << 27), + COND_SPECIAL1 = (1 << 28), // Defined by individual monster + COND_SPECIAL2, // Defined by individual monster + COND_TASK_FAILED, + COND_SCHEDULE_DONE +}; + +enum (<<= 1) { + MF_TO_TARGETENT = (1 << 0), // local move to targetent. + MF_TO_ENEMY, // local move to enemy + MF_TO_COVER, // local move to a hiding place + MF_TO_DETOUR, // local move to detour point. + MF_TO_PATHCORNER, // local move to a path corner + MF_TO_NODE, // local move to a node + MF_TO_LOCATION, // local move to an arbitrary point + MF_IS_GOAL, // this MONSTER_WAYPOINT is the goal of the whole move. + MF_DONT_SIMPLIFY, // Don't let the route code simplify this MONSTER_WAYPOINT + MF_TO_NAV +}; + +enum (<<= 1) { + SOUND_NONE = 0, + SOUND_COMBAT = (1 << 0), // gunshots, explosions + SOUND_WORLD, // door opening/closing, glass breaking + SOUND_PLAYER, // all noises generated by player. walking, shooting, falling, splashing + SOUND_CARCASS, // dead body + SOUND_MEAT, // gib or pork chop + SOUND_DANGER, // pending danger. Grenade that is about to explode, explosive barrel that is damaged, falling crate + SOUND_GARBAGE // trash cans, banana peels, old fast food bags. +}; + +enum (<<= 1) { + CAP_NONE = 0, + CAP_DUCK = (1 << 0), + CAP_JUMP, + CAP_STRAFE, + CAP_SQUAD, + CAP_SWIM, + CAP_CLIMB, + CAP_USE, + CAP_HEAR, + CAP_AUTO_DOORS, + CAP_OPEN_DOORS, + CAP_TURN_HEAD, + CAP_RANGE_ATTACK1, + CAP_RANGE_ATTACK2, + CAP_MELEE_ATTACK1, + CAP_MELEE_ATTACK2, + CAP_FLY +}; + +enum (<<= 1) { + MEMORY_CLEAR = 0, + MEMORY_PROVOKED = ( 1 << 0 ), // right now only used for houndeyes. + MEMORY_INCOVER, // monster knows it is in a covered position. + MEMORY_SUSPICIOUS, // Ally is suspicious of the player, and will move to provoked more easily + MEMORY_PATH_FINISHED, // Finished monster path (just used by big momma for now) + MEMORY_ON_PATH, // Moving on a path + MEMORY_MOVE_FAILED, // Movement has already failed + MEMORY_FLINCHED, // Has already flinched + MEMORY_KILLED, // HACKHACK -- remember that I've already called my Killed() + MEMORY_CUSTOM4 = ( 1 << 28 ), // Monster-specific memory + MEMORY_CUSTOM3, // Monster-specific memory + MEMORY_CUSTOM2, // Monster-specific memory + MEMORY_CUSTOM1 // Monster-specific memory +}; + +enum { + EVENT_SPECIFIC = 0, + SCRIPT_EVENT_DEAD = 1000, + SCRIPT_EVENT_NOINTERRUPT, + SCRIPT_EVENT_CANINTERRUPT, + SCRIPT_EVENT_FIREEVENT, + SCRIPT_EVENT_SOUND, + SCRIPT_EVENT_SENTENCE, + SCRIPT_EVENT_INAIR, + SCRIPT_EVENT_ENDANIMATION, + SCRIPT_EVENT_SOUND_VOICE, + SCRIPT_EVENT_SENTENCE_RND1, + SCRIPT_EVENT_NOT_DEAD, + MONSTER_EVENT_BODYDROP_LIGHT = 2001, + MONSTER_EVENT_BODYDROP_HEAVY, + MONSTER_EVENT_SWISHSOUND = 2010, +}; + +#define EVENT_SPECIFIC 0 +#define EVENT_SCRIPTED 1000 +#define EVENT_SHARED 2000 +#define EVENT_CLIENT 5000 + +#define CAP_DOORS_GROUP (CAP_USE | CAP_AUTO_DOORS | CAP_OPEN_DOORS) + +#define MF_NOT_TO_MASK (MF_IS_GOAL | MF_DONT_SIMPLIFY) + +#define MOVEGOAL_NONE 0 +#define MOVEGOAL_TARGETENT MF_TO_TARGETENT +#define MOVEGOAL_ENEMY MF_TO_ENEMY +#define MOVEGOAL_PATHCORNER MF_TO_PATHCORNER +#define MOVEGOAL_LOCATION MF_TO_LOCATION +#define MOVEGOAL_NODE MF_TO_NODE +#define MOVEGOAL_NAV MF_TO_NAV + +#define SCRIPT_BREAK_CONDITIONS (COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE) +#define COND_CAN_ATTACK (COND_CAN_RANGE_ATTACK1 | COND_CAN_MELEE_ATTACK1 | COND_CAN_RANGE_ATTACK2 | COND_CAN_MELEE_ATTACK2) + +#define R_AL -2 // (ALLY) pals. Good alternative to R_NO when applicable. +#define R_FR -1 // (FEAR)will run +#define R_NO 0 // (NO RELATIONSHIP) disregard +#define R_DL 1 // (DISLIKE) will attack +#define R_HT 2 // (HATE)will attack this character instead of any visible DISLIKEd characters +#define R_NM 3 // (NEMESIS) A monster Will ALWAYS attack its nemsis, no matter what + +#define NO_NODE -1 +#define SOUNDLIST_EMPTY -1 +#define ACTIVITY_NOT_AVAILABLE Activity:-1 +#define ROUTE_SIZE 8 + +#define m_iTaskStatus "iTaskStatus" +#define m_iScheduleIndex "iScheduleIndex" +#define m_iMonsterState "iMonsterState" +#define m_iIdealMonsterState "iIdealMonsterState" +#define m_iDelay "iDelay" +#define m_iszPlay "iszPlay" +#define m_iIdealActivity "iIdealActivity" +#define m_iHintNode "iHintNode" +#define m_iMovementActivity "iMovementActivity" +#define m_iVolume "iVolume" +#define m_iRouteIndex "iRouteIndex" +#define m_iszIdle "iszIdle" +#define m_iScriptState "iScriptState" +#define m_pEnemy "pEnemy" +#define m_vecLastPosition "vecLastPosition" +#define m_flMoveWaitFinished "flMoveWaitFinished" +#define m_flWaitFinished "flWaitFinished" +#define m_pTargetEnt "pTarget" +#define m_vecMoveGoal "vecMoveGoal" +#define m_vecEnemyLKP "vecEnemyLKP" +#define m_pCine "pCine" +#define m_iFailSchedule "iFailSchedule" +#define m_bSequenceFinished "bSequenceFinished" +#define m_iActivity "iActivity" +#define m_iMemory "iMemory" +#define m_iMovementGoal "iMovementGoal" +#define m_flMoveWaitTime "flMoveWaitTime" +#define m_flHungryTime "flHungryTime" +#define m_pGoalEnt "pGoalEnt" +#define m_irgRoute "irgRoute" +#define m_flFieldOfView "flFieldOfView" +#define m_bSequenceLoops "bSequenceLoops" +#define m_flFrameRate "flFrameRate" +#define m_flGroundSpeed "flGroundSpeed" +#define m_flDistLook "flDistLook" +#define m_iCapability "iCapability" +#define m_flDistTooFar "flDistTooFar" +#define m_irgOldEnemies "irgOldEnemies" +#define m_iLastHitGroup "iLastHitGroup" +#define m_iDamageType "m_iDamageType" +#define m_vecEyePosition "m_vecEyePosition" +#define m_irgSequences "irgSequences" +#define m_flLastEventCheck "flLastEventCheck" +#define m_iConditions "iConditions" +#define m_sSchedule "sSchedule" +#define m_pPathTask "pPathTask" + +#define m_iAudibleList "iAudibleList" +#define m_iSoundTypes "iSoundTypes" +#define m_iThinkPluginId "iThinkPluginId" +#define m_iThinkFunctionId "iThinkFunctionId" +#define m_flRangeAttack1Range "flRangeAttack1Range" +#define m_flRangeAttack2Range "flRangeAttack2Range" +#define m_flMeleeAttack1Range "flMeleeAttack1Range" +#define m_flMeleeAttack2Range "flMeleeAttack2Range" +#define m_flMeleeAttack1Damage "flMeleeAttack1Damage" +#define m_flMeleeAttack2Damage "flMeleeAttack2Damage" +#define m_flStepSize "flStepSize" +#define m_flStepHeight "flStepHeight" +#define m_iStepLeft "iStepLeft" + +#define StartSequence "StartSequence" +#define SequenceDone "SequenceDone" +#define Classify "Classify" +#define MonsterInit "MonsterInit" +#define SetState "SetState" +#define SetYawSpeed "SetYawSpeed" +#define SetThink "SetThink" +#define TakeDamage "TakeDamage" +#define AlertSound "AlertSound" +#define DeathSound "DeathSound" +#define IdleSound "IdleSound" +#define PainSound "PainSound" +#define ShouldGibMonster "ShouldGibMonster" +#define CallGibMonster "CallGibMonster" +#define GibMonster "GibMonster" +#define EmitSound "EmitSound" +#define MoveToEnemy "MoveToEnemy" +#define MoveToTarget "MoveToTarget" +#define MoveToLocation "MoveToLocation" +#define HandleAnimEvent "HandleAnimEvent" +#define CheckTraceHullAttack "CheckTraceHullAttack" +#define MeleeAttack1 "MeleeAttack1" +#define MeleeAttack2 "MeleeAttack2" +#define StepSound "StepSound" +#define CalculateHitGroupDamage "CalculateHitGroupDamage" + +#define SetSchedule "SetSchedule" + +#define SetConditions "SetConditions" +#define ClearConditions "ClearConditions" +#define HasConditions "HasConditions" +#define HasAllConditions "HasAllConditions" +#define IgnoreConditions "IgnoreConditions" \ No newline at end of file From 5626e1a7534291b02c42048e5b515178ac7bdf40 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 6 Apr 2024 06:31:29 +0200 Subject: [PATCH 186/231] improve cellclass performance --- util/cellclass.inc | 604 ++++++++++++++++++--------------------------- 1 file changed, 242 insertions(+), 362 deletions(-) diff --git a/util/cellclass.inc b/util/cellclass.inc index 13833b2..dea3e2e 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -5,8 +5,6 @@ #include #include -#tryinclude -#include #if !defined CLASS_METHOD_CALL_STACK_SIZE #define CLASS_METHOD_CALL_STACK_SIZE 1024 @@ -20,6 +18,10 @@ #define CLASS_METHOD_MAX_ARGUMENTS 32 #endif +#if !defined CLASS_PARAM_BUFFER_LENGTH + #define CLASS_PARAM_BUFFER_LENGTH 16384 +#endif + // Default argument values #define __cls_DefaultValue_Cell 0 @@ -29,14 +31,17 @@ // Error messages #define __cls_err_MethodAlreadyRegistered "Method ^"%s^" is already registered for the class!" -#define __cls_err_VMethodArgumentsMismatch "Arguments mismatch in the overridden virtual method ^"%s^"." +#define __cls_err_VMethodArgumentsMismatch "Arguments mismatch in the overridden virtual method ^"%s^"!" #define __cls_err_ClassIdNotFound "Class with id %d is not registered!" #define __cls_err_MethodNotFound "Method ^"%s^" is not registered for the instance (%d)!" #define __cls_err_CallMethodOutsideContext "Calling a base method is not allowed outside of the execution context!" #define __cls_err_ClassHasNoBaseClass "Cannot call base method of class without base class!" #define __cls_err_MethodNotFoundInBaseClass "Cannot find method ^"%s^" in base classes!" #define __cls_err_MaxCallStackSizeExceeded "Maximum call stack size exceeded!" -#define __cls_err_ClassMethodCallEndWithoutStart "Call ClassInstanceCallMethodEnd but method call is not started" +#define __cls_err_ClassMethodCallEndWithoutStart "Call ClassInstanceCallMethodEnd but method call is not started!" +#define __cls_err_NumberOfParametersExceeded "Number of parameters exceeded!" +#define __cls_err_InvalidParamType "Invalid parameter type at position %d for call method %s. Expected: ^"%s^" got ^"%s^"!" +#define __cls_err_FailedToCallMethodFunction "Failed to call method ^"%s^" function!" #define __cls_MethodParamOffset(%1) (%1 * _:__cls_MethodParamData) @@ -48,18 +53,26 @@ enum ClassInstance { Invalid_ClassInstance = -1 }; -enum { +enum _:__cls_ParamTypes { CMP_Invalid = -1, CMP_Cell, - CMP_Float, CMP_String, CMP_Array, - CMP_FloatArray, - CMP_ReadFromCellArray, - __cls_CMP_InternalStart = 1000, - __cls_CMP_StringRef, - __cls_CMP_ArrayRef, - __cls_CMP_FloatArrayRef + CMP_StringRef, + CMP_ArrayRef, + CMP_ParamsCellArray +}; + +#define CMP_Float CMP_Cell +#define CMP_FloatArray CMP_Array + +stock const __cls_ParamTypeNames[__cls_ParamTypes][64] = { + "Cell", + "String", + "Array", + "StringRef", + "ArrayRef", + "ParamsCellArray" }; // Internal structures @@ -114,16 +127,12 @@ stock __cls_callstack_size = 0; // Variables to store info between Begin and End method calls stock ClassInstance:__cls_call_pInstance = Invalid_ClassInstance; stock Struct:__cls_call_sMethod = Invalid_Struct; -stock DataPack:__cls_call_dpParams = Invalid_DataPack; stock __cls_call_iParamTypesNum = 0; stock __cls_call_iParamsNum = 0; +stock __cls_call_iBufferPos = 0; // Buffers -#if defined _datapack_included - stock __cls_szBuffer[MAX_STRING_LENGTH]; - stock __cls_rgiBuffer[MAX_STRING_LENGTH]; - stock Float:__cls_rgflBuffer[MAX_STRING_LENGTH]; -#endif +stock any:__cls_rgBuffer[CLASS_PARAM_BUFFER_LENGTH]; /*--------------------------------[ Class Functions] --------------------------------*/ @@ -156,12 +165,6 @@ stock ClassDestroy(&Class:class) { class = Invalid_Class; } -stock ClassFreeStorages() { - if (__cls_call_dpParams != Invalid_DataPack) { - DestroyDataPack(__cls_call_dpParams); - } -} - stock Class:ClassAddMethod(const &Class:class, const szMethod[], const szCallback[], iPluginId = -1, bool:bVirtual = false, any:...) { static const iArgOffset = 5; @@ -311,57 +314,56 @@ stock Class:ClassInstanceGetCurrentClass() { stock ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], any:...) { __cls_CallMethodBegin(pInstance, szMethod, __cls_MethodType_Method); - #if defined _datapack_included - for (new iMethodParam = 0; iMethodParam < __cls_call_iParamTypesNum; ++iMethodParam) { - static iParam; iParam = 2 + iMethodParam; - static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Type); - static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Size); - static bool:bUseDefault; bUseDefault = iParam > numargs(); + for (new iMethodParam = 0; iMethodParam < __cls_call_iParamTypesNum; ++iMethodParam) { + static iParam; iParam = 2 + iMethodParam; + static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Type); + static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Size); + static bool:bUseDefault; bUseDefault = iParam > numargs(); - switch (iType) { - case CMP_Cell: { - ClassInstanceCallMethodPushParamCell(bUseDefault ? __cls_DefaultValue_Cell : getarg(iParam)); - } - case CMP_Float: { - ClassInstanceCallMethodPushParamFloat(bUseDefault ? __cls_DefaultValue_Float : Float:getarg(iParam)); - } - case CMP_String: { - if (bUseDefault) { - copy(__cls_szBuffer, sizeof(__cls_szBuffer), __cls_DefaultValue_String); - } else { - for (new i = 0; i < charsmax(__cls_szBuffer); ++i) { - __cls_szBuffer[i] = getarg(iParam, i); - if (__cls_szBuffer[i] == '^0') break; - } + switch (iType) { + case CMP_Cell: { + ClassInstanceCallMethodPushParamCell(bUseDefault ? __cls_DefaultValue_Cell : any:getarg(iParam)); + } + case CMP_String, CMP_StringRef: { + static iLen; iLen = 0; + + if (bUseDefault) { + copy(__cls_rgBuffer[__cls_call_iBufferPos], charsmax(__cls_rgBuffer) - __cls_call_iBufferPos, __cls_DefaultValue_String); + } else { + for (new i = 0; i < charsmax(__cls_rgBuffer) - __cls_call_iBufferPos; ++i) { + __cls_rgBuffer[__cls_call_iBufferPos + i] = getarg(iParam, i); + if (__cls_rgBuffer[__cls_call_iBufferPos + i] == '^0') break; + iLen++; } - - ClassInstanceCallMethodPushParamString(__cls_szBuffer); } - case CMP_Array: { - if (bUseDefault) { - arrayset(__cls_rgiBuffer, __cls_DefaultValue_Float, iSize); - } else { - for (new i = 0; i < iSize; ++i) { - __cls_rgiBuffer[i] = getarg(iParam, i); - } - } - ClassInstanceCallMethodPushParamArray(__cls_rgiBuffer, iSize); + if (iType == CMP_StringRef) { + ClassInstanceCallMethodPushParamStringRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize); + } else { + ClassInstanceCallMethodPushParamString(__cls_rgBuffer[__cls_call_iBufferPos]); } - case CMP_FloatArray: { - if (bUseDefault) { - arrayset(__cls_rgflBuffer, __cls_DefaultValue_Float, iSize); - } else { - for (new i = 0; i < iSize; ++i) { - __cls_rgflBuffer[i] = Float:getarg(iParam, i); - } + + __cls_call_iBufferPos += iLen; + } + case CMP_Array, CMP_ArrayRef: { + if (bUseDefault) { + arrayset(__cls_rgBuffer[__cls_call_iBufferPos], __cls_DefaultValue_Float, iSize); + } else { + for (new i = 0; i < iSize; ++i) { + __cls_rgBuffer[__cls_call_iBufferPos + i] = getarg(iParam, i); } + } - ClassInstanceCallMethodPushParamFloatArray(__cls_rgflBuffer, iSize); + if (iType == CMP_ArrayRef) { + ClassInstanceCallMethodPushParamArrayRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize); + } else { + ClassInstanceCallMethodPushParamArray(__cls_rgBuffer[__cls_call_iBufferPos], iSize); } + + __cls_call_iBufferPos += iSize; } } - #endif + } return ClassInstanceCallMethodEnd(); } @@ -369,57 +371,56 @@ stock ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], stock ClassInstanceCallBaseMethod(any:...) { ClassInstanceCallMethodBeginBase(); - #if defined _datapack_included - for (new iMethodParam = 0; iMethodParam < __cls_call_iParamTypesNum; ++iMethodParam) { - static iParam; iParam = 0 + iMethodParam; - static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Type); - static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Size); - static bool:bUseDefault; bUseDefault = iParam > numargs(); + for (new iMethodParam = 0; iMethodParam < __cls_call_iParamTypesNum; ++iMethodParam) { + static iParam; iParam = 0 + iMethodParam; + static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Type); + static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Size); + static bool:bUseDefault; bUseDefault = iParam > numargs(); - switch (iType) { - case CMP_Cell: { - ClassInstanceCallMethodPushParamCell(bUseDefault ? __cls_DefaultValue_Cell : getarg(iParam)); - } - case CMP_Float: { - ClassInstanceCallMethodPushParamFloat(bUseDefault ? __cls_DefaultValue_Float : Float:getarg(iParam)); - } - case CMP_String, __cls_CMP_StringRef: { - if (bUseDefault) { - copy(__cls_szBuffer, sizeof(__cls_szBuffer), __cls_DefaultValue_String); - } else { - for (new i = 0; i < charsmax(__cls_szBuffer); ++i) { - __cls_szBuffer[i] = getarg(iParam, i); - if (__cls_szBuffer[i] == '^0') break; - } + switch (iType) { + case CMP_Cell: { + ClassInstanceCallMethodPushParamCell(bUseDefault ? __cls_DefaultValue_Cell : any:getarg(iParam)); + } + case CMP_String, CMP_StringRef: { + static iLen; iLen = 0; + + if (bUseDefault) { + copy(__cls_rgBuffer[__cls_call_iBufferPos], charsmax(__cls_rgBuffer) - __cls_call_iBufferPos, __cls_DefaultValue_String); + } else { + for (new i = 0; i < charsmax(__cls_rgBuffer) - __cls_call_iBufferPos; ++i) { + __cls_rgBuffer[__cls_call_iBufferPos + i] = getarg(iParam, i); + if (__cls_rgBuffer[__cls_call_iBufferPos + i] == '^0') break; + iLen++; } - - ClassInstanceCallMethodPushParamString(__cls_szBuffer); } - case CMP_Array, __cls_CMP_ArrayRef: { - if (bUseDefault) { - arrayset(__cls_rgiBuffer, __cls_DefaultValue_Float, iSize); - } else { - for (new i = 0; i < iSize; ++i) { - __cls_rgiBuffer[i] = getarg(iParam, i); - } - } - ClassInstanceCallMethodPushParamArray(__cls_rgiBuffer, iSize); + if (iType == CMP_StringRef) { + ClassInstanceCallMethodPushParamStringRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize); + } else { + ClassInstanceCallMethodPushParamString(__cls_rgBuffer[__cls_call_iBufferPos]); } - case CMP_FloatArray, __cls_CMP_FloatArrayRef: { - if (bUseDefault) { - arrayset(__cls_rgflBuffer, __cls_DefaultValue_Float, iSize); - } else { - for (new i = 0; i < iSize; ++i) { - __cls_rgflBuffer[i] = Float:getarg(iParam, i); - } + + __cls_call_iBufferPos += iLen; + } + case CMP_Array, CMP_ArrayRef: { + if (bUseDefault) { + arrayset(__cls_rgBuffer[__cls_call_iBufferPos], __cls_DefaultValue_Float, iSize); + } else { + for (new i = 0; i < iSize; ++i) { + __cls_rgBuffer[__cls_call_iBufferPos + i] = getarg(iParam, i); } + } - ClassInstanceCallMethodPushParamFloatArray(__cls_rgflBuffer, iSize); + if (iType == CMP_ArrayRef) { + ClassInstanceCallMethodPushParamArrayRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize); + } else { + ClassInstanceCallMethodPushParamArray(__cls_rgBuffer[__cls_call_iBufferPos], iSize); } + + __cls_call_iBufferPos += iSize; } } - #endif + } return ClassInstanceCallMethodEnd(); } @@ -446,6 +447,12 @@ stock ClassInstanceCallMethodBeginBase(any:...) { static __cls_MethodType:iMethodType; iMethodType = StructGetCell(Struct:rgCallStackItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Type); __cls_InitMethodCall(rgCallStackItem[__cls_MethodCallStackItem_Instance], szMethod, class, iMethodType); + + if (callfunc_begin_i(StructGetCell(__cls_call_sMethod, __cls_MethodData_FunctionId), StructGetCell(__cls_call_sMethod, __cls_MethodData_PluginId)) != 1) { + static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethod, charsmax(szMethod)); + set_fail_state(__cls_err_FailedToCallMethodFunction, szMethod); + return; + } } stock any:ClassInstanceCallMethodEnd() { @@ -454,11 +461,7 @@ stock any:ClassInstanceCallMethodEnd() { return 0; } - __cls_ValidateParams(); - - ResetPack(__cls_call_dpParams); - - static any:result; result = __cls_ExecuteMethod(__cls_call_pInstance, __cls_call_sMethod, __cls_call_dpParams); + static any:result; result = __cls_ExecuteMethod(); if (__cls_IsMethodCallStackEmpty()) { __cls_FreeMethodCall(); @@ -467,33 +470,69 @@ stock any:ClassInstanceCallMethodEnd() { return result; } -stock ClassInstanceCallMethodPushParamCell(iValue) { - if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; - WritePackCell(__cls_call_dpParams, iValue); +stock __cls_ValidateParamPush(iParam, iType) { + if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) { + set_fail_state(__cls_err_NumberOfParametersExceeded); + return 0; + } + + static iExpectedType; iExpectedType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Type); + + if (iType != iExpectedType) { + static szMethodName[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethodName, charsmax(szMethodName)); + set_fail_state(__cls_err_InvalidParamType, iParam, szMethodName, __cls_ParamTypeNames[iType], __cls_ParamTypeNames[iExpectedType]); + return 0; + } + + return 1; +} + +stock ClassInstanceCallMethodPushParamCell(any:value) { + if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_Cell)) return; + + callfunc_push_int(value); + __cls_call_iParamsNum++; } -stock ClassInstanceCallMethodPushParamFloat(Float:flValue) { - if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; - WritePackFloat(__cls_call_dpParams, flValue); +stock ClassInstanceCallMethodPushParamCellRef(&any:value) { + if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_Cell)) return; + + callfunc_push_intrf(value); + __cls_call_iParamsNum++; } stock ClassInstanceCallMethodPushParamString(const szValue[]) { - if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; - WritePackString(__cls_call_dpParams, szValue); + if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_String)) return; + + callfunc_push_str(szValue, false); + __cls_call_iParamsNum++; } -stock ClassInstanceCallMethodPushParamArray(const rgValue[], iSize) { - if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; - WritePackArray(__cls_call_dpParams, rgValue, iSize); +stock ClassInstanceCallMethodPushParamArray(const any:rgValue[], iSize) { + if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_Array)) return; + + callfunc_push_array(rgValue, iSize, false); + __cls_call_iParamsNum++; } -stock ClassInstanceCallMethodPushParamFloatArray(const Float:rgValue[], iSize) { - if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; - WritePackFloatArray(__cls_call_dpParams, rgValue, iSize); +stock ClassInstanceCallMethodPushParamStringRef(szValue[], iLen) { + if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_StringRef)) return; + + arrayset(szValue, 1, iLen); + callfunc_push_str(szValue, true); + + __cls_call_iParamsNum++; +} + +stock ClassInstanceCallMethodPushParamArrayRef(rgValue[], iSize) { + if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_ArrayRef)) return; + + callfunc_push_array(rgValue, iSize, true); + __cls_call_iParamsNum++; } @@ -505,22 +544,19 @@ stock ClassInstanceCallMethodPushNativeParam(iParam) { switch (iType) { case CMP_Cell: { - WritePackCell(__cls_call_dpParams, get_param_byref(iParam)); + // log_amx("Param%d: %d %f", iParam, any:get_param_byref(iParam), any:get_param_byref(iParam)); + callfunc_push_int(any:get_param_byref(iParam)); } - case CMP_Float: { - WritePackFloat(__cls_call_dpParams, Float:get_param_byref(iParam)); + case CMP_Array, CMP_ArrayRef: { + get_array(iParam, __cls_rgBuffer[__cls_call_iBufferPos], iSize); + callfunc_push_array(__cls_rgBuffer[__cls_call_iBufferPos], iSize, iType == CMP_ArrayRef); + __cls_call_iBufferPos += iSize; } - case CMP_String: { - get_string(iParam, __cls_szBuffer, charsmax(__cls_szBuffer)); - WritePackString(__cls_call_dpParams, __cls_szBuffer); - } - case CMP_Array: { - get_array(iParam, __cls_rgiBuffer, iSize); - WritePackArray(__cls_call_dpParams, __cls_rgiBuffer, iSize); - } - case CMP_FloatArray: { - get_array_f(iParam, __cls_rgflBuffer, iSize); - WritePackFloatArray(__cls_call_dpParams, __cls_rgflBuffer, iSize); + case CMP_String, CMP_StringRef: { + static iSize; iSize = get_string(iParam, __cls_rgBuffer[__cls_call_iBufferPos], charsmax(__cls_rgBuffer) - __cls_call_iBufferPos); + // log_amx("Param%d: ^"%s^"", iParam, __cls_rgBuffer); + callfunc_push_str(__cls_rgBuffer[__cls_call_iBufferPos], iType == CMP_StringRef); + __cls_call_iBufferPos += iSize; } } @@ -548,7 +584,7 @@ stock any:ClassInstanceGetMember(const &ClassInstance:pInstance, const szMember[ static Trie:itGetters; itGetters = StructGetCell(Struct:class, __cls_Data_Getters); if (TrieKeyExists(itGetters, szMember)) { - return __cls_CallGetter(pInstance, szMember); + return __cls_CallCellGetter(pInstance, szMember); } static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); @@ -562,7 +598,7 @@ stock ClassInstanceSetMember(const &ClassInstance:pInstance, const szMember[], a static Trie:itSetters; itSetters = StructGetCell(Struct:class, __cls_Data_Setters); if (TrieKeyExists(itSetters, szMember)) { - __cls_CallSetter(pInstance, szMember, value); + __cls_CallCellSetter(pInstance, szMember, value); return; } @@ -576,7 +612,7 @@ stock bool:ClassInstanceGetMemberString(const &ClassInstance:pInstance, const sz static Trie:itGetters; itGetters = StructGetCell(Struct:class, __cls_Data_Getters); if (TrieKeyExists(itGetters, szMember)) { - return __cls_CallGetter(pInstance, szMember, szOut, iMaxLen); + return __cls_CallStringGetter(pInstance, szMember, szOut, iMaxLen); } static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); @@ -590,7 +626,7 @@ stock ClassInstanceSetMemberString(const &ClassInstance:pInstance, const szMembe static Trie:itSetters; itSetters = StructGetCell(Struct:class, __cls_Data_Setters); if (TrieKeyExists(itSetters, szMember)) { - __cls_CallSetter(pInstance, szMember, szValue); + __cls_CallStringSetter(pInstance, szMember, szValue); return; } @@ -604,7 +640,7 @@ stock bool:ClassInstanceGetMemberArray(const &ClassInstance:pInstance, const szM static Trie:itGetters; itGetters = StructGetCell(Struct:class, __cls_Data_Getters); if (TrieKeyExists(itGetters, szMember)) { - return __cls_CallGetter(pInstance, szMember, rgOut, iLen); + return __cls_CallArrayGetter(pInstance, szMember, rgOut, iLen); } static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); @@ -617,7 +653,7 @@ stock ClassInstanceSetMemberArray(const &ClassInstance:pInstance, const szMember static Trie:itSetters; itSetters = StructGetCell(Struct:class, __cls_Data_Setters); if (TrieKeyExists(itSetters, szMember)) { - __cls_CallSetter(pInstance, szMember, rgValue, iLen); + __cls_CallArraySetter(pInstance, szMember, rgValue, iLen); return; } @@ -649,11 +685,11 @@ stock __cls_ParseParamTypes(Array:irgArgs, &Array:irgParamTypes) { rgParam[__cls_MethodParamData_Size] = 1; switch (rgParam[__cls_MethodParamData_Type]) { - case CMP_Array, CMP_FloatArray: { + case CMP_Array: { rgParam[__cls_MethodParamData_Size] = ArrayGetCell(irgArgs, iArg + 1); iArg++; } - case CMP_ReadFromCellArray: { + case CMP_ParamsCellArray: { rgParam[__cls_MethodParamData_Size] = 0; new Array:irgExtraParamTypes = ArrayGetCell(irgArgs, iArg + 1); @@ -668,39 +704,13 @@ stock __cls_ParseParamTypes(Array:irgArgs, &Array:irgParamTypes) { } } -stock __cls_ValidateParams() { - for (new iParam = __cls_call_iParamsNum; iParam < __cls_call_iParamTypesNum; ++iParam) { - static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Type); - static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Size); - - switch (iType) { - case CMP_Cell: { - WritePackCell(__cls_call_dpParams, __cls_DefaultValue_Cell); - } - case CMP_Float: { - WritePackFloat(__cls_call_dpParams, __cls_DefaultValue_Float); - } - case CMP_String: { - WritePackString(__cls_call_dpParams, __cls_DefaultValue_String); - } - case CMP_Array: { - arrayset(__cls_rgiBuffer, __cls_DefaultValue_Cell, iSize); - WritePackArray(__cls_call_dpParams, __cls_rgiBuffer, iSize); - } - case CMP_FloatArray: { - arrayset(__cls_rgflBuffer, __cls_DefaultValue_Float, iSize); - WritePackFloatArray(__cls_call_dpParams, __cls_rgflBuffer, iSize); - } - } - } -} - stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], const &Class:class = Invalid_Class, __cls_MethodType:iMethodType) { static Class:callClass; callClass = class == Invalid_Class ? __cls_GetCallMethodClass(pInstance) : class; __cls_call_pInstance = pInstance; __cls_call_sMethod = __cls_FindClassMethodInHierarchy(callClass, szMethod, iMethodType); __cls_call_iParamsNum = 0; + __cls_call_iBufferPos = 0; __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); @@ -708,9 +718,6 @@ stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], con set_fail_state(__cls_err_MethodNotFoundInBaseClass, szMethod); return; } - - static DataPack:dpParams; dpParams = __cls_GetDataPackParams(); - ResetPack(dpParams); } stock __cls_FreeMethodCall() { @@ -723,12 +730,13 @@ stock __cls_FreeMethodCall() { stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], __cls_MethodType:iMethodType = __cls_MethodType_Method) { __cls_InitMethodCall(pInstance, szMethod, _, iMethodType); + static Class:sInstanceClass; sInstanceClass = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + // Check for virtual method call // If we are already in the execution context and the method is virual jump to top level context // All Getters and Setter works like virtual methods if (!__cls_IsMethodCallStackEmpty()) { if (StructGetCell(__cls_call_sMethod, __cls_MethodData_Type) != __cls_MethodType_Method) { - static Class:sInstanceClass; sInstanceClass = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); if (sInstanceClass != StructGetCell(__cls_call_sMethod, __cls_MethodData_Class)) { __cls_call_sMethod = __cls_FindClassMethodInHierarchy(sInstanceClass, szMethod, iMethodType); } @@ -739,109 +747,58 @@ stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], __ set_fail_state(__cls_err_MethodNotFound, szMethod, pInstance); return; } + + if (callfunc_begin_i(StructGetCell(__cls_call_sMethod, __cls_MethodData_FunctionId), StructGetCell(__cls_call_sMethod, __cls_MethodData_PluginId)) != 1) { + static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethod, charsmax(szMethod)); + set_fail_state(__cls_err_FailedToCallMethodFunction, szMethod); + return; + } } -stock any:__cls_CallGetter(const &ClassInstance:pInstance, const szMember[], any:...) { - static const any:rgEmpty[1]; - static const iParam = 2; +stock any:__cls_CallCellGetter(const &ClassInstance:pInstance, const szMember[]) { + __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Getter); + return ClassInstanceCallMethodEnd(); +} + +stock any:__cls_CallArrayGetter(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iSize) { __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Getter); - // Cannot use "static" because of recursion - new iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(0) + _:__cls_MethodParamData_Type); - new iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(0) + _:__cls_MethodParamData_Size); + ClassInstanceCallMethodPushParamArrayRef(rgOut, iSize); + ClassInstanceCallMethodPushParamCell(iSize); - switch (iType) { - case CMP_String, __cls_CMP_StringRef: { - iSize = getarg(iParam + 1); - ClassInstanceCallMethodPushParamString(NULL_STRING); - ClassInstanceCallMethodPushParamCell(iSize); - } - case CMP_Array, __cls_CMP_ArrayRef: { - iSize = min(iSize, getarg(iParam + 1)); - ClassInstanceCallMethodPushParamArray(rgEmpty, sizeof(rgEmpty)); - ClassInstanceCallMethodPushParamCell(iSize); - } - case CMP_FloatArray, __cls_CMP_FloatArrayRef: { - iSize = min(iSize, getarg(iParam + 1)); - ClassInstanceCallMethodPushParamFloatArray(rgEmpty, sizeof(rgEmpty)); - ClassInstanceCallMethodPushParamCell(iSize); - } - } + return ClassInstanceCallMethodEnd(); +} - new any:result = ClassInstanceCallMethodEnd(); +stock any:__cls_CallStringGetter(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iLen) { + __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Getter); - #if defined _datapack_included - switch (iType) { - case __cls_CMP_StringRef: { - for (new i = 0; i < iSize; ++i) { - setarg(iParam, i, __cls_szBuffer[i]); - if (__cls_szBuffer[i] == '^0') break; - } - } - case __cls_CMP_ArrayRef: { - for (new i = 0; i < iSize; ++i) { - setarg(iParam, i, __cls_rgiBuffer[i]); - } - } - case __cls_CMP_FloatArrayRef: { - for (new i = 0; i < iSize; ++i) { - setarg(iParam, i, any:__cls_rgflBuffer[i]); - } - } - } - #endif + ClassInstanceCallMethodPushParamStringRef(rgOut, iLen); + ClassInstanceCallMethodPushParamCell(iLen); - return result; + return ClassInstanceCallMethodEnd(); } -stock __cls_CallSetter(const &ClassInstance:pInstance, const szMember[], any:...) { - static const iParam = 2; - +stock __cls_CallCellSetter(const &ClassInstance:pInstance, const szMember[], any:value) { __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Setter); - static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(0) + _:__cls_MethodParamData_Type); - static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(0) + _:__cls_MethodParamData_Size); + ClassInstanceCallMethodPushParamCell(value); - if (iParam < numargs() - 2) { - iSize = min(iSize, getarg(iParam + 1)); - } + return ClassInstanceCallMethodEnd(); +} - #if defined _datapack_included - switch (iType) { - case CMP_Cell: { - ClassInstanceCallMethodPushParamCell(getarg(iParam)); - } - case CMP_Float: { - ClassInstanceCallMethodPushParamFloat(Float:getarg(iParam)); - } - case CMP_String: { - for (new i = 0; i < charsmax(__cls_szBuffer); ++i) { - __cls_szBuffer[i] = getarg(iParam, i); - if (__cls_szBuffer[i] == '^0') break; - } +stock __cls_CallArraySetter(const &ClassInstance:pInstance, const szMember[], const any:rgValue[], iSize) { + __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Setter); - ClassInstanceCallMethodPushParamString(__cls_szBuffer); - ClassInstanceCallMethodPushParamCell(iSize); - } - case CMP_Array: { - for (new i = 0; i < iSize; ++i) { - __cls_rgiBuffer[i] = getarg(iParam, i); - } + ClassInstanceCallMethodPushParamArray(rgValue, iSize); - ClassInstanceCallMethodPushParamArray(__cls_rgiBuffer, iSize); - ClassInstanceCallMethodPushParamCell(getarg(iParam + 1)); - } - case CMP_FloatArray: { - for (new i = 0; i < iSize; ++i) { - __cls_rgflBuffer[i] = Float:getarg(iParam, i); - } + return ClassInstanceCallMethodEnd(); +} - ClassInstanceCallMethodPushParamFloatArray(__cls_rgflBuffer, iSize); - ClassInstanceCallMethodPushParamCell(getarg(iParam + 1)); - } - } - #endif +stock __cls_CallStringSetter(const &ClassInstance:pInstance, const szMember[], const szValue[]) { + __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Setter); + + ClassInstanceCallMethodPushParamString(szValue); return ClassInstanceCallMethodEnd(); } @@ -894,7 +851,7 @@ stock __cls_AddMemberAccessorMethod(const &Class:class, const szMember[], const ArrayPushArray(irgParamTypes, rgParam[any:0], _:__cls_MethodParamData); - if (iType == CMP_String || iType == CMP_Array || iType == CMP_FloatArray) { + if (iType == CMP_String || iType == CMP_Array) { new rgSizeParam[__cls_MethodParamData]; rgSizeParam[__cls_MethodParamData_Type] = CMP_Cell; rgSizeParam[__cls_MethodParamData_Size] = 1; @@ -912,9 +869,8 @@ stock __cls_AddMemberAccessorMethod(const &Class:class, const szMember[], const stock __cls_ResolveAccessorParamType(iType, __cls_MethodType:iMethodType) { if (iMethodType == __cls_MethodType_Getter) { switch (iType) { - case CMP_String: return __cls_CMP_StringRef; - case CMP_Array: return __cls_CMP_ArrayRef; - case CMP_FloatArray: return __cls_CMP_FloatArrayRef; + case CMP_String: return CMP_StringRef; + case CMP_Array: return CMP_ArrayRef; } } @@ -957,89 +913,16 @@ stock __cls_CompareParamTypes(const &Struct:sMethod, const &Array:irgParams) { return true; } -stock __cls_ExecuteMethod(const &ClassInstance:pInstance, const &Struct:sMethod, const &DataPack:dpParams) { - new iResult = 0; - - __cls_PushMethodToCallStack(sMethod, pInstance); - - __cls_LogExecution(pInstance, sMethod); - - if (callfunc_begin_i(StructGetCell(sMethod, __cls_MethodData_FunctionId), StructGetCell(sMethod, __cls_MethodData_PluginId)) == 1) { - #if defined _datapack_included - if (dpParams != Invalid_DataPack) { - static iParamsNum; iParamsNum = StructGetCell(sMethod, __cls_MethodData_ParamTypesNum); - - for (new iParam = 0; iParam < iParamsNum; ++iParam) { - static iType; iType = StructGetCell(sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Type); - static iSize; iSize = StructGetCell(sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Size); - - switch (iType) { - case CMP_Cell: { - static iValue; iValue = ReadPackCell(dpParams); - callfunc_push_int(iValue); - } - case CMP_Float: { - static Float:flValue; flValue = ReadPackFloat(dpParams); - callfunc_push_float(flValue); - } - case CMP_String: { - ReadPackString(dpParams, __cls_szBuffer, charsmax(__cls_szBuffer)); - callfunc_push_str(__cls_szBuffer, false); - } - case CMP_Array: { - iSize = ReadPackArray(dpParams, __cls_rgiBuffer, iSize); - callfunc_push_array(__cls_rgiBuffer, iSize, false); - } - case CMP_FloatArray: { - iSize = ReadPackFloatArray(dpParams, __cls_rgflBuffer, iSize); - callfunc_push_array(_:__cls_rgflBuffer, iSize, false); - } - case __cls_CMP_StringRef: { - ReadPackString(dpParams, __cls_szBuffer, 0); - /* - The "copyback" functionality seems to be broken or works in an odd way, - because it only copies the same number of characters that were in the string - before calling the function. - - To fix it I decided to "prepare" a string using the max length from the required max length parameter (second) - and fill the string with some characters so AmxModX will calculate the correct string length for copyback. - */ - iSize = ReadPackCell(dpParams); - arrayset(__cls_szBuffer, '^n', iSize); - iParam++; // Skip next parameter (length) - - callfunc_push_str(__cls_szBuffer, true); - callfunc_push_int(iSize); - } - case __cls_CMP_ArrayRef: { - // If the second parameter is passed to the getter, use it as the size of the array - if (++iParam < iParamsNum - 1) { - iSize = min(iSize, ReadPackCell(dpParams)); - } - - callfunc_push_array(__cls_rgiBuffer, iSize, true); - callfunc_push_int(iSize); - } - case __cls_CMP_FloatArrayRef: { - // If the second parameter is passed to the getter, use it as the size of the array - if (++iParam < iParamsNum - 1) { - iSize = ReadPackCell(dpParams); - } - - callfunc_push_array(_:__cls_rgflBuffer, iSize, true); - callfunc_push_int(iSize); - } - } - } - } - #endif +stock any:__cls_ExecuteMethod() { + __cls_PushMethodCallToCallStack(); - iResult = callfunc_end(); - } + __cls_LogExecution(); + + new any:result = callfunc_end(); __cls_PopMethodFromCallStack(); - return iResult; + return result; } stock Struct:__cls_FindClassMethodInHierarchy(const &Class:class, const szMethod[], __cls_MethodType:iMethodType) { @@ -1074,20 +957,25 @@ stock bool:__cls_IsMethodCallStackEmpty() { return !__cls_callstack_size; } -stock __cls_PushMethodToCallStack(const Struct:sMethod, const &ClassInstance:pInstance) { +stock __cls_PushMethodCallToCallStack() { if (__cls_callstack_size >= CLASS_METHOD_CALL_STACK_SIZE) { set_fail_state(__cls_err_MaxCallStackSizeExceeded); } - __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Instance] = any:pInstance; - __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Class] = any:StructGetCell(sMethod, __cls_MethodData_Class); - __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Method] = any:sMethod; + __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Instance] = any:__cls_call_pInstance; + __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Class] = any:StructGetCell(__cls_call_sMethod, __cls_MethodData_Class); + __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Method] = any:__cls_call_sMethod; __cls_callstack_size++; } stock __cls_PopMethodFromCallStack() { __cls_callstack_size--; + + if (__cls_callstack_size) { + __cls_call_pInstance = __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Instance]; + __cls_call_sMethod = __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Method]; + } } stock __cls_GetCurrentMethodFromCallStack(rgCallStackItem[__cls_MethodCallStackItem]) { @@ -1096,14 +984,6 @@ stock __cls_GetCurrentMethodFromCallStack(rgCallStackItem[__cls_MethodCallStackI rgCallStackItem[__cls_MethodCallStackItem_Method] = __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Method]; } -stock DataPack:__cls_GetDataPackParams() { - if (__cls_call_dpParams == Invalid_DataPack) { - __cls_call_dpParams = CreateDataPack(); - } - - return __cls_call_dpParams; -} - stock Class:__cls_GetCallMethodClass(const &ClassInstance:pInstance) { if (!__cls_IsMethodCallStackEmpty()) { static rgCallStackItem[__cls_MethodCallStackItem]; __cls_GetCurrentMethodFromCallStack(rgCallStackItem); @@ -1116,17 +996,17 @@ stock Class:__cls_GetCallMethodClass(const &ClassInstance:pInstance) { return StructGetCell(Struct:pInstance, __cls_InstanceData_Class); } -stock __cls_LogExecution(const &ClassInstance:pInstance, const &Struct:sMethod) { +stock __cls_LogExecution() { #if defined __cls_DEBUG - static Struct:sClass; sClass = StructGetCell(sMethod, __cls_MethodData_Class); + static Struct:sClass; sClass = StructGetCell(__cls_call_sMethod, __cls_MethodData_Class); static szName[32]; ClassGetMetadataString(Class:sClass, "__NAME", szName, charsmax(szName)); - static szMethodName[32]; StructGetString(sMethod, __cls_MethodData_Name, szMethodName, charsmax(szMethodName)); + static szMethodName[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethodName, charsmax(szMethodName)); if (equal(szName, NULL_STRING)) { format(szName, charsmax(szName), "CLASS_%d", sClass); } - __cls_DebugMessage("[%d] %s::%s(...)", pInstance, szName, szMethodName); + __cls_DebugMessage("[%d] %s::%s(...)", __cls_call_pInstance, szName, szMethodName); #endif } From e8e2fa4a2ec2ee5200e83e54e1cff2a7b7b41d78 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 6 Apr 2024 08:46:34 +0200 Subject: [PATCH 187/231] add cache --- util/cellclass.inc | 139 ++++++++++++++++++++++++++++++++------------- 1 file changed, 98 insertions(+), 41 deletions(-) diff --git a/util/cellclass.inc b/util/cellclass.inc index dea3e2e..2081d4b 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -63,8 +63,8 @@ enum _:__cls_ParamTypes { CMP_ParamsCellArray }; -#define CMP_Float CMP_Cell -#define CMP_FloatArray CMP_Array +// #define CMP_Float CMP_Cell +// #define CMP_FloatArray CMP_Array stock const __cls_ParamTypeNames[__cls_ParamTypes][64] = { "Cell", @@ -113,6 +113,11 @@ enum __cls_InstanceData { Trie:__cls_InstanceData_Members }; +enum __cls_InstanceCache { + ClassInstance:__cls_InstanceCache_Instance, + any:__cls_InstanceCache_Value +}; + enum __cls_MethodCallStackItem { __cls_MethodCallStackItem_Name[CLASS_METHOD_MAX_NAME_LENGTH], ClassInstance:__cls_MethodCallStackItem_Instance, @@ -131,18 +136,25 @@ stock __cls_call_iParamTypesNum = 0; stock __cls_call_iParamsNum = 0; stock __cls_call_iBufferPos = 0; +// Cache +stock __cls_cache_InstanceClass[__cls_InstanceCache] = { Invalid_ClassInstance, Invalid_Class }; +stock __cls_cache_InstanceMethods[__cls_InstanceCache] = { Invalid_ClassInstance, Invalid_Trie }; +stock __cls_cache_InstanceMembers[__cls_InstanceCache] = { Invalid_ClassInstance, Invalid_Trie }; +stock __cls_cache_InstanceGetters[__cls_InstanceCache] = { Invalid_ClassInstance, Invalid_Trie }; +stock __cls_cache_InstanceSetters[__cls_InstanceCache] = { Invalid_ClassInstance, Invalid_Trie }; + // Buffers stock any:__cls_rgBuffer[CLASS_PARAM_BUFFER_LENGTH]; /*--------------------------------[ Class Functions] --------------------------------*/ stock Class:ClassCreate(const &Class:sBaseClass = Invalid_Class) { - new Class:class = Class:StructCreate(__cls_Data); - StructSetCell(Struct:class, __cls_Data_Base, sBaseClass); - StructSetCell(Struct:class, __cls_Data_Methods, TrieCreate()); - StructSetCell(Struct:class, __cls_Data_Members, TrieCreate()); - StructSetCell(Struct:class, __cls_Data_Setters, TrieCreate()); - StructSetCell(Struct:class, __cls_Data_Getters, TrieCreate()); + new Struct:class = StructCreate(__cls_Data); + StructSetCell(class, __cls_Data_Base, sBaseClass); + StructSetCell(class, __cls_Data_Methods, TrieCreate()); + StructSetCell(class, __cls_Data_Members, TrieCreate()); + StructSetCell(class, __cls_Data_Setters, TrieCreate()); + StructSetCell(class, __cls_Data_Getters, TrieCreate()); return Class:class; } @@ -281,7 +293,23 @@ stock ClassInstance:ClassInstanceCreate(const &Class:class) { } stock ClassInstanceDestroy(&ClassInstance:pInstance) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + if (pInstance == __cls_cache_InstanceClass[__cls_InstanceCache_Instance]) { + __cls_cache_InstanceClass[__cls_InstanceCache_Instance] = Invalid_ClassInstance; + } + + if (pInstance == __cls_cache_InstanceMembers[__cls_InstanceCache_Instance]) { + __cls_cache_InstanceMembers[__cls_InstanceCache_Instance] = Invalid_ClassInstance; + } + + if (pInstance == __cls_cache_InstanceGetters[__cls_InstanceCache_Instance]) { + __cls_cache_InstanceGetters[__cls_InstanceCache_Instance] = Invalid_ClassInstance; + } + + if (pInstance == __cls_cache_InstanceSetters[__cls_InstanceCache_Instance]) { + __cls_cache_InstanceSetters[__cls_InstanceCache_Instance] = Invalid_ClassInstance; + } + + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); TrieDestroy(itMembers); StructDestroy(Struct:pInstance); @@ -564,106 +592,100 @@ stock ClassInstanceCallMethodPushNativeParam(iParam) { } stock Class:ClassInstanceGetClass(const &ClassInstance:pInstance) { - return StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + return __cls_GetInstanceClass(pInstance); } stock bool:ClassInstanceHasMember(const &ClassInstance:pInstance, const szMember[]) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); return TrieKeyExists(itMembers, szMember); } stock ClassInstanceDeleteMember(const &ClassInstance:pInstance, const szMember[]) { - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); TrieDeleteKey(itMembers, szMember); } stock any:ClassInstanceGetMember(const &ClassInstance:pInstance, const szMember[]) { - static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); - static Trie:itGetters; itGetters = StructGetCell(Struct:class, __cls_Data_Getters); + static Trie:itGetters; itGetters = __cls_GetInstanceGettersTrie(pInstance); if (TrieKeyExists(itGetters, szMember)) { return __cls_CallCellGetter(pInstance, szMember); } - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); static any:value; return TrieGetCell(itMembers, szMember, value) ? value : 0; } stock ClassInstanceSetMember(const &ClassInstance:pInstance, const szMember[], any:value, bool:bReplace = true) { - static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); - static Trie:itSetters; itSetters = StructGetCell(Struct:class, __cls_Data_Setters); + static Trie:itSetters; itSetters = __cls_GetInstanceSettersTrie(pInstance); if (TrieKeyExists(itSetters, szMember)) { __cls_CallCellSetter(pInstance, szMember, value); return; } - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); TrieSetCell(itMembers, szMember, value, bReplace); } stock bool:ClassInstanceGetMemberString(const &ClassInstance:pInstance, const szMember[], szOut[], iMaxLen) { - static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); - static Trie:itGetters; itGetters = StructGetCell(Struct:class, __cls_Data_Getters); + static Trie:itGetters; itGetters = __cls_GetInstanceGettersTrie(pInstance); if (TrieKeyExists(itGetters, szMember)) { return __cls_CallStringGetter(pInstance, szMember, szOut, iMaxLen); } - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); copy(szOut, iMaxLen, NULL_STRING); return !!TrieGetString(itMembers, szMember, szOut, iMaxLen); } stock ClassInstanceSetMemberString(const &ClassInstance:pInstance, const szMember[], const szValue[], bool:bReplace = true) { - static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); - static Trie:itSetters; itSetters = StructGetCell(Struct:class, __cls_Data_Setters); + static Trie:itSetters; itSetters = __cls_GetInstanceSettersTrie(pInstance); if (TrieKeyExists(itSetters, szMember)) { __cls_CallStringSetter(pInstance, szMember, szValue); return; } - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); TrieSetString(itMembers, szMember, szValue, bReplace); } stock bool:ClassInstanceGetMemberArray(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iLen) { - static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); - static Trie:itGetters; itGetters = StructGetCell(Struct:class, __cls_Data_Getters); + static Trie:itGetters; itGetters = __cls_GetInstanceGettersTrie(pInstance); if (TrieKeyExists(itGetters, szMember)) { return __cls_CallArrayGetter(pInstance, szMember, rgOut, iLen); } - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); return !!TrieGetArray(itMembers, szMember, rgOut, iLen); } stock ClassInstanceSetMemberArray(const &ClassInstance:pInstance, const szMember[], const any:rgValue[], iLen, bool:bReplace = true) { - static Class:class; class = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); - static Trie:itSetters; itSetters = StructGetCell(Struct:class, __cls_Data_Setters); + static Trie:itSetters; itSetters = __cls_GetInstanceSettersTrie(pInstance); if (TrieKeyExists(itSetters, szMember)) { __cls_CallArraySetter(pInstance, szMember, rgValue, iLen); return; } - static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); TrieSetArray(itMembers, szMember, rgValue, iLen, bReplace); } stock bool:ClassInstanceIsInstanceOf(const &ClassInstance:pInstance, const &Class:class) { - new Class:sCurrentClass = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + new Class:sCurrentClass = __cls_GetInstanceClass(pInstance); do { if (sCurrentClass == class) return true; @@ -675,6 +697,44 @@ stock bool:ClassInstanceIsInstanceOf(const &ClassInstance:pInstance, const &Clas /*--------------------------------[ Internal Functions] --------------------------------*/ +stock Class:__cls_GetInstanceClass(const &ClassInstance:pInstance) { + if (pInstance != __cls_cache_InstanceClass[__cls_InstanceCache_Instance]) { + __cls_cache_InstanceClass[__cls_InstanceCache_Value] = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + __cls_cache_InstanceClass[__cls_InstanceCache_Instance] = pInstance; + } + + return __cls_cache_InstanceClass[__cls_InstanceCache_Value]; +} + +stock Trie:__cls_GetInstanceMembersTrie(const &ClassInstance:pInstance) { + if (pInstance != __cls_cache_InstanceMembers[__cls_InstanceCache_Instance]) { + __cls_cache_InstanceMembers[__cls_InstanceCache_Value] = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + __cls_cache_InstanceMembers[__cls_InstanceCache_Instance] = pInstance; + } + + return __cls_cache_InstanceMembers[__cls_InstanceCache_Value]; +} + +stock Trie:__cls_GetInstanceGettersTrie(const &ClassInstance:pInstance) { + if (pInstance != __cls_cache_InstanceGetters[__cls_InstanceCache_Instance]) { + static Class:class; class = __cls_GetInstanceClass(pInstance); + __cls_cache_InstanceGetters[__cls_InstanceCache_Value] = StructGetCell(Struct:class, __cls_Data_Getters); + __cls_cache_InstanceGetters[__cls_InstanceCache_Instance] = pInstance; + } + + return __cls_cache_InstanceGetters[__cls_InstanceCache_Value]; +} + +stock Trie:__cls_GetInstanceSettersTrie(const &ClassInstance:pInstance) { + if (pInstance != __cls_cache_InstanceSetters[__cls_InstanceCache_Instance]) { + static Class:class; class = __cls_GetInstanceClass(pInstance); + __cls_cache_InstanceSetters[__cls_InstanceCache_Value] = StructGetCell(Struct:class, __cls_Data_Setters); + __cls_cache_InstanceSetters[__cls_InstanceCache_Instance] = pInstance; + } + + return __cls_cache_InstanceSetters[__cls_InstanceCache_Value]; +} + stock __cls_ParseParamTypes(Array:irgArgs, &Array:irgParamTypes) { new iArgc = ArraySize(irgArgs); @@ -710,9 +770,8 @@ stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], con __cls_call_pInstance = pInstance; __cls_call_sMethod = __cls_FindClassMethodInHierarchy(callClass, szMethod, iMethodType); __cls_call_iParamsNum = 0; - __cls_call_iBufferPos = 0; - __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); + __cls_call_iBufferPos = 0; if (__cls_call_sMethod == Invalid_Struct) { set_fail_state(__cls_err_MethodNotFoundInBaseClass, szMethod); @@ -730,7 +789,7 @@ stock __cls_FreeMethodCall() { stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], __cls_MethodType:iMethodType = __cls_MethodType_Method) { __cls_InitMethodCall(pInstance, szMethod, _, iMethodType); - static Class:sInstanceClass; sInstanceClass = StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + static Class:sInstanceClass; sInstanceClass = __cls_GetInstanceClass(pInstance); // Check for virtual method call // If we are already in the execution context and the method is virual jump to top level context @@ -928,7 +987,7 @@ stock any:__cls_ExecuteMethod() { stock Struct:__cls_FindClassMethodInHierarchy(const &Class:class, const szMethod[], __cls_MethodType:iMethodType) { new Class:sCurrentClass = class; - static iStructMethodsField= __cls_MethodType_Invalid; + static iStructMethodsField = __cls_MethodType_Invalid; switch (iMethodType) { case __cls_MethodType_Method, __cls_MethodType_Virtual: { iStructMethodsField = __cls_Data_Methods; @@ -985,15 +1044,13 @@ stock __cls_GetCurrentMethodFromCallStack(rgCallStackItem[__cls_MethodCallStackI } stock Class:__cls_GetCallMethodClass(const &ClassInstance:pInstance) { - if (!__cls_IsMethodCallStackEmpty()) { - static rgCallStackItem[__cls_MethodCallStackItem]; __cls_GetCurrentMethodFromCallStack(rgCallStackItem); - - if (rgCallStackItem[__cls_MethodCallStackItem_Instance] == pInstance) { - return rgCallStackItem[__cls_MethodCallStackItem_Class]; + if (__cls_callstack_size) { + if (__cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Instance] == pInstance) { + return __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Class]; } } - return StructGetCell(Struct:pInstance, __cls_InstanceData_Class); + return __cls_GetInstanceClass(pInstance); } stock __cls_LogExecution() { From 06f528c8baa02eb52989a7a34b3ce5f0f61328b7 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 6 Apr 2024 08:48:34 +0200 Subject: [PATCH 188/231] remove debug line --- entities/entity_base_monster.sma | 2 -- 1 file changed, 2 deletions(-) diff --git a/entities/entity_base_monster.sma b/entities/entity_base_monster.sma index 283d5c0..980809a 100644 --- a/entities/entity_base_monster.sma +++ b/entities/entity_base_monster.sma @@ -2389,8 +2389,6 @@ bool:@Monster_ShouldAdvanceRoute(this, Float:flWaypointDist) { // Check if both waypoints are nodes and there is a link for a door static rgNextWaypoint[MONSTER_WAYPOINT]; ArrayGetArray(irgRoute, iRouteIndex + 1, rgNextWaypoint[any:0], _:MONSTER_WAYPOINT); if ((rgCurrentWaypoint[MONSTER_WAYPOINT_TYPE] & MF_TO_NODE) && (rgNextWaypoint[MONSTER_WAYPOINT_TYPE] & MF_TO_NODE)) { - UTIL_DrawLine(rgCurrentWaypoint[MONSTER_WAYPOINT_LOCATION], rgNextWaypoint[MONSTER_WAYPOINT_LOCATION]); - engfunc(EngFunc_TraceLine, rgCurrentWaypoint[MONSTER_WAYPOINT_LOCATION], rgNextWaypoint[MONSTER_WAYPOINT_LOCATION], DONT_IGNORE_MONSTERS, this, g_pTrace); static pHit; pHit = get_tr2(g_pTrace, TR_pHit); From 007c846a7d93d579fafdf723995189b13564315e Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 6 Apr 2024 08:51:28 +0200 Subject: [PATCH 189/231] update for new cellclass version --- api/custom-entities/api_custom_entities.sma | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index d0533f8..490b430 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -200,7 +200,7 @@ public Native_RegisterMethod(iPluginId, iArgc) { new Class:cEntity = ArrayGetCell(g_rgEntities[Entity_Class], iId); new Array:irgParams = ReadMethodParamsFromNativeCall(4, iArgc); - ClassAddMethod(cEntity, szMethod, szCallback, iPluginId, false, CMP_Cell, CMP_ReadFromCellArray, irgParams); + ClassAddMethod(cEntity, szMethod, szCallback, iPluginId, false, CMP_Cell, CMP_ParamsCellArray, irgParams); ArrayDestroy(irgParams); } @@ -214,7 +214,7 @@ public Native_RegisterVirtualMethod(iPluginId, iArgc) { new Class:cEntity = ArrayGetCell(g_rgEntities[Entity_Class], iId); new Array:irgParams = ReadMethodParamsFromNativeCall(4, iArgc); - ClassAddMethod(cEntity, szMethod, szCallback, iPluginId, true, CMP_Cell, CMP_ReadFromCellArray, irgParams); + ClassAddMethod(cEntity, szMethod, szCallback, iPluginId, true, CMP_Cell, CMP_ParamsCellArray, irgParams); ArrayDestroy(irgParams); } @@ -1074,6 +1074,7 @@ RegisterEntity(const szClassname[], CEPreset:iPreset = CEPreset_None, const Enti } new Class:cEntity = ClassCreate(cParent); + ClassSetMetadataString(cEntity, "__NAME", szClassname); ClassSetMetadata(cEntity, CLASS_METADATA_ID, iId); TrieSetCell(g_itEntityIds, szClassname, iId); @@ -1278,25 +1279,17 @@ Array:ReadMethodParamsFromNativeCall(iStartArg, iArgc) { static iType; iType = get_param_byref(iParam); switch (iType) { - case CE_MP_Cell: { + case CE_MP_Cell, CE_MP_Float: { ArrayPushCell(irgParams, CMP_Cell); } - case CE_MP_Float: { - ArrayPushCell(irgParams, CMP_Float); - } case CE_MP_String: { ArrayPushCell(irgParams, CMP_String); } - case CE_MP_Array: { + case CE_MP_Array, CE_MP_FloatArray: { ArrayPushCell(irgParams, CMP_Array); ArrayPushCell(irgParams, get_param_byref(iParam + 1)); iParam++; } - case CE_MP_FloatArray: { - ArrayPushCell(irgParams, CMP_FloatArray); - ArrayPushCell(irgParams, get_param_byref(iParam + 1)); - iParam++; - } } } From f214600f88b1a2806e82131ce60e395dff5e4919 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sun, 7 Apr 2024 04:02:11 +0200 Subject: [PATCH 190/231] improve await --- api/navsystem/api_navsystem.sma | 37 +++++++++++++++------------------ 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/api/navsystem/api_navsystem.sma b/api/navsystem/api_navsystem.sma index 23736aa..e7a3b8b 100644 --- a/api/navsystem/api_navsystem.sma +++ b/api/navsystem/api_navsystem.sma @@ -115,7 +115,6 @@ enum BuildPathTask { Struct:BuildPathTask_ClosestArea, BuildPathTask_CostCallback[Callback], BuildPathTask_FinishCallback[Callback], - bool:BuildPathTask_DestroyOnFinish, BuildPathTask_IgnoreEntity, BuildPathTask_UserToken, Struct:BuildPathTask_Path, @@ -137,6 +136,7 @@ enum BuildPathJob { bool:BuildPathJob_Successed, bool:BuildPathJob_Finished, bool:BuildPathJob_Terminated, + bool:BuildPathJob_FinishHandled, BuildPathJob_MaxIterations, BuildPathJob_IgnoreEntity }; @@ -402,14 +402,9 @@ public Native_Area_GetCenter(iPluginId, iArgc) { public Native_Path_FindTask_Await(iPluginId, iArgc) { new Struct:sTask = Struct:get_param(1); - StructSetCell(sTask, BuildPathTask_DestroyOnFinish, false); - - new bool:bFinished = false; - - do { - bFinished = StructGetCell(sTask, BuildPathTask_IsFinished); + while (!StructGetCell(sTask, BuildPathTask_IsFinished)) { NavAreaBuildPathFrame(); - } while (!bFinished); + } } public bool:Native_Path_FindTask_IsFinished(iPluginId, iArgc) { @@ -2529,7 +2524,6 @@ Struct:NavAreaBuildPath(const Float:vecStart[3], const Float:vecGoal[3], iCbFunc StructSetCell(sTask, BuildPathTask_IsFinished, false); StructSetCell(sTask, BuildPathTask_IsSuccessed, false); StructSetCell(sTask, BuildPathTask_IsTerminated, false); - StructSetCell(sTask, BuildPathTask_DestroyOnFinish, true); if (g_irgBuildPathTasks == Invalid_Array) { g_irgBuildPathTasks = ArrayCreate(); @@ -2547,8 +2541,8 @@ bool:NavAreaBuildPathAbortTask(Struct:sTask) { g_rgBuildPathJob[BuildPathJob_Terminated] = true; g_rgBuildPathJob[BuildPathJob_Successed] = false; - // terminate task in the same frame - NavAreaBuildPathFrame(); + // finish task in the same frame + NavAreaBuildPathFinish(); return true; } @@ -2557,11 +2551,10 @@ bool:NavAreaBuildPathAbortTask(Struct:sTask) { return false; } + // remove task from the queue new iTask = ArrayFindValue(g_irgBuildPathTasks, sTask); if (iTask != -1) { - if (StructGetCell(sTask, BuildPathTask_DestroyOnFinish)) { - @BuildPathTask_Destroy(sTask); - } + @BuildPathTask_Destroy(sTask); ArrayDeleteItem(g_irgBuildPathTasks, iTask); return true; } @@ -2576,6 +2569,7 @@ bool:NavAreaBuildPathRunTask(Struct:sTask) { g_rgBuildPathJob[BuildPathJob_CostFuncId] = StructGetCell(sTask, BuildPathTask_CostCallback, Callback_FunctionId); g_rgBuildPathJob[BuildPathJob_CostFuncPluginId] = StructGetCell(sTask, BuildPathTask_CostCallback, Callback_PluginId); g_rgBuildPathJob[BuildPathJob_Finished] = false; + g_rgBuildPathJob[BuildPathJob_FinishHandled] = false; g_rgBuildPathJob[BuildPathJob_Terminated] = false; g_rgBuildPathJob[BuildPathJob_Successed] = false; g_rgBuildPathJob[BuildPathJob_MaxIterations] = get_pcvar_num(g_pCvarMaxIterationsPerFrame); @@ -2661,6 +2655,8 @@ NavAreaBuildPathFinish() { callfunc_push_int(_:sTask); callfunc_end(); } + + g_rgBuildPathJob[BuildPathJob_FinishHandled] = true; } NavAreaBuildPathIteration() { @@ -2824,6 +2820,13 @@ NavAreaBuildPathIteration() { } NavAreaBuildPathFrame() { + if (g_rgBuildPathJob[BuildPathJob_Task] != Invalid_Struct) { + if (g_rgBuildPathJob[BuildPathJob_Finished] && g_rgBuildPathJob[BuildPathJob_FinishHandled]) { + @BuildPathTask_Destroy(g_rgBuildPathJob[BuildPathJob_Task]); + g_rgBuildPathJob[BuildPathJob_Task] = Invalid_Struct; + } + } + // if no job in progress then find new task to start if (g_rgBuildPathJob[BuildPathJob_Task] == Invalid_Struct) { if (g_irgBuildPathTasks != Invalid_Array && ArraySize(g_irgBuildPathTasks)) { @@ -2838,12 +2841,6 @@ NavAreaBuildPathFrame() { // current job finished, process if (g_rgBuildPathJob[BuildPathJob_Finished]) { NavAreaBuildPathFinish(); - - if (StructGetCell(g_rgBuildPathJob[BuildPathJob_Task], BuildPathTask_DestroyOnFinish)) { - @BuildPathTask_Destroy(g_rgBuildPathJob[BuildPathJob_Task]); - } - - g_rgBuildPathJob[BuildPathJob_Task] = Invalid_Struct; return; } From df2cb25dc9e79026e7f3f8839494bc10f19cad66 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 9 Apr 2024 19:46:32 +0200 Subject: [PATCH 191/231] migration to function pointers --- api/custom-entities/api_custom_entities.sma | 49 +++++++-------------- util/cellclass.inc | 35 ++++++++------- util/function_pointer.inc | 37 ++++++++++++++++ 3 files changed, 73 insertions(+), 48 deletions(-) create mode 100644 util/function_pointer.inc diff --git a/api/custom-entities/api_custom_entities.sma b/api/custom-entities/api_custom_entities.sma index 490b430..b8a0690 100644 --- a/api/custom-entities/api_custom_entities.sma +++ b/api/custom-entities/api_custom_entities.sma @@ -4,10 +4,9 @@ #include #include #include -#tryinclude #include -#include +#include #include @@ -17,11 +16,6 @@ enum _:GLOBALESTATE { GLOBAL_OFF = 0, GLOBAL_ON = 1, GLOBAL_DEAD = 2 }; -enum Callback { - Callback_PluginID, - Callback_FunctionId -}; - enum EntityFlags (<<=1) { EntityFlag_None = 0, EntityFlag_Abstract = 1, @@ -75,10 +69,6 @@ public plugin_init() { register_plugin("[API] Custom Entities", "2.0.0", "Hedgehog Fog"); register_concmd("ce_spawn", "Command_Spawn", ADMIN_CVAR); - - #if !defined _datapack_included - log_amx("%s Warning! This version is compiled without ^"datapack^" support. Method arguments are not supported!", LOG_PREFIX); - #endif } public plugin_natives() { @@ -188,7 +178,15 @@ public Native_RegisterHook(iPluginId, iArgc) { new CEFunction:iFunction = CEFunction:get_param(2); new szCallback[CE_MAX_CALLBACK_NAME_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); - RegisterEntityHook(iFunction, szClassname, szCallback, iPluginId); + new Function:fnCallback = get_func_pointer(szCallback, iPluginId); + if (fnCallback == Invalid_FunctionPointer) { + new szFilename[64]; + get_plugin(iPluginId, szFilename, charsmax(szFilename)); + log_error(AMX_ERR_NATIVE, "%s Function ^"%s^" not found in plugin ^"%s^".", LOG_PREFIX, szCallback, szFilename); + return; + } + + RegisterEntityHook(iFunction, szClassname, fnCallback); } public Native_RegisterMethod(iPluginId, iArgc) { @@ -200,7 +198,7 @@ public Native_RegisterMethod(iPluginId, iArgc) { new Class:cEntity = ArrayGetCell(g_rgEntities[Entity_Class], iId); new Array:irgParams = ReadMethodParamsFromNativeCall(4, iArgc); - ClassAddMethod(cEntity, szMethod, szCallback, iPluginId, false, CMP_Cell, CMP_ParamsCellArray, irgParams); + ClassAddMethod(cEntity, szMethod, get_func_pointer(szCallback, iPluginId), false, CMP_Cell, CMP_ParamsCellArray, irgParams); ArrayDestroy(irgParams); } @@ -214,7 +212,7 @@ public Native_RegisterVirtualMethod(iPluginId, iArgc) { new Class:cEntity = ArrayGetCell(g_rgEntities[Entity_Class], iId); new Array:irgParams = ReadMethodParamsFromNativeCall(4, iArgc); - ClassAddMethod(cEntity, szMethod, szCallback, iPluginId, true, CMP_Cell, CMP_ParamsCellArray, irgParams); + ClassAddMethod(cEntity, szMethod, get_func_pointer(szCallback, iPluginId), true, CMP_Cell, CMP_ParamsCellArray, irgParams); ArrayDestroy(irgParams); } @@ -1085,7 +1083,7 @@ RegisterEntity(const szClassname[], CEPreset:iPreset = CEPreset_None, const Enti ArrayPushCell(g_rgEntities[Entity_KeyMemberBindings], TrieCreate()); for (new CEFunction:iFunction = CEFunction:0; iFunction < CEFunction; ++iFunction) { - ArrayPushCell(g_rgEntities[Entity_Hooks][iFunction], ArrayCreate(_:Callback)); + ArrayPushCell(g_rgEntities[Entity_Hooks][iFunction], ArrayCreate()); } g_iEntitiesNum++; @@ -1138,27 +1136,15 @@ GetIdByClassName(const szClassname[]) { return iId; } -RegisterEntityHook(CEFunction:iFunction, const szClassname[], const szCallback[], iPluginId = -1) { +RegisterEntityHook(CEFunction:iFunction, const szClassname[], const Function:fnCallback) { new iId = GetIdByClassName(szClassname); if (iId == -1) { log_error(AMX_ERR_NATIVE, "%s Entity ^"%s^" is not registered.", LOG_PREFIX, szClassname); return -1; } - new iFunctionId = get_func_id(szCallback, iPluginId); - if (iFunctionId < 0) { - new szFilename[64]; - get_plugin(iPluginId, szFilename, charsmax(szFilename)); - log_error(AMX_ERR_NATIVE, "%s Function ^"%s^" not found in plugin ^"%s^".", LOG_PREFIX, szCallback, szFilename); - return -1; - } - - new rgHook[Callback]; - rgHook[Callback_PluginID] = iPluginId; - rgHook[Callback_FunctionId] = iFunctionId; - new Array:irgHooks = ArrayGetCell(g_rgEntities[Entity_Hooks][iFunction], iId); - new iHookId = ArrayPushArray(irgHooks, rgHook[Callback:0], _:Callback); + new iHookId = ArrayPushCell(irgHooks, fnCallback); return iHookId; } @@ -1210,10 +1196,9 @@ ExecuteHookFunction(CEFunction:iFunction, pEntity, any:...) { new iHooksNum; iHooksNum = ArraySize(irgHooks); for (new iHookId = 0; iHookId < iHooksNum; ++iHookId) { - static iPluginId; iPluginId = ArrayGetCell(irgHooks, iHookId, _:Callback_PluginID); - static iFunctionId; iFunctionId = ArrayGetCell(irgHooks, iHookId, _:Callback_FunctionId); + static Function:fnCallback; fnCallback = ArrayGetCell(irgHooks, iHookId); - if (callfunc_begin_i(iFunctionId, iPluginId) == 1) { + if (callfunc_begin_p(fnCallback) == 1) { callfunc_push_int(pEntity); switch (iFunction) { diff --git a/util/cellclass.inc b/util/cellclass.inc index 2081d4b..00a2462 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -5,6 +5,7 @@ #include #include +#include #if !defined CLASS_METHOD_CALL_STACK_SIZE #define CLASS_METHOD_CALL_STACK_SIZE 1024 @@ -101,8 +102,7 @@ enum __cls_MethodParamData { enum __cls_MethodData { __cls_MethodData_Name[CLASS_METHOD_MAX_NAME_LENGTH], Class:__cls_MethodData_Class, - __cls_MethodData_PluginId, - __cls_MethodData_FunctionId, + __cls_MethodData_Function, __cls_MethodType:__cls_MethodData_Type, __cls_MethodData_ParamTypesNum, __cls_MethodData_ParamTypes[__cls_MethodParamOffset(CLASS_METHOD_MAX_ARGUMENTS + 1)] @@ -177,8 +177,8 @@ stock ClassDestroy(&Class:class) { class = Invalid_Class; } -stock Class:ClassAddMethod(const &Class:class, const szMethod[], const szCallback[], iPluginId = -1, bool:bVirtual = false, any:...) { - static const iArgOffset = 5; +stock Class:ClassAddMethod(const &Class:class, const szMethod[], const Function:func, bool:bVirtual = false, any:...) { + static const iArgOffset = 4; new iArgc = numargs(); @@ -213,19 +213,19 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const szCallbac } } - new Struct:sMethod = __cls_CreateMethod(class, szMethod, szCallback, iPluginId, irgParamTypes, bVirtual ? __cls_MethodType_Virtual : __cls_MethodType_Method); + new Struct:sMethod = __cls_CreateMethod(class, szMethod, func, irgParamTypes, bVirtual ? __cls_MethodType_Virtual : __cls_MethodType_Method); ArrayDestroy(irgParamTypes); TrieSetCell(itMethods, szMethod, sMethod); } -stock ClassAddSetter(const &Class:class, const szMember[], const szCallback[], iPluginId = -1, iType, iSize = 1) { - __cls_AddMemberAccessorMethod(class, szMember, szCallback, iPluginId, __cls_MethodType_Setter, iType, iSize); +stock ClassAddSetter(const &Class:class, const szMember[], const Function:func, iType, iSize = 1) { + __cls_AddMemberAccessorMethod(class, szMember, func, __cls_MethodType_Setter, iType, iSize); } -stock ClassAddGetter(const &Class:class, const szMember[], const szCallback[], iPluginId = -1, iType, iSize = 1) { - __cls_AddMemberAccessorMethod(class, szMember, szCallback, iPluginId, __cls_MethodType_Getter, iType, iSize); +stock ClassAddGetter(const &Class:class, const szMember[], const Function:func, iType, iSize = 1) { + __cls_AddMemberAccessorMethod(class, szMember, func, __cls_MethodType_Getter, iType, iSize); } stock Class:ClassGetBaseClass(const &Class:class) { @@ -476,7 +476,9 @@ stock ClassInstanceCallMethodBeginBase(any:...) { __cls_InitMethodCall(rgCallStackItem[__cls_MethodCallStackItem_Instance], szMethod, class, iMethodType); - if (callfunc_begin_i(StructGetCell(__cls_call_sMethod, __cls_MethodData_FunctionId), StructGetCell(__cls_call_sMethod, __cls_MethodData_PluginId)) != 1) { + static Function:func; func = StructGetCell(__cls_call_sMethod, __cls_MethodData_Function); + + if (callfunc_begin_p(func) != 1) { static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethod, charsmax(szMethod)); set_fail_state(__cls_err_FailedToCallMethodFunction, szMethod); return; @@ -807,7 +809,9 @@ stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], __ return; } - if (callfunc_begin_i(StructGetCell(__cls_call_sMethod, __cls_MethodData_FunctionId), StructGetCell(__cls_call_sMethod, __cls_MethodData_PluginId)) != 1) { + static Function:func; func = StructGetCell(__cls_call_sMethod, __cls_MethodData_Function); + + if (callfunc_begin_p(func) != 1) { static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethod, charsmax(szMethod)); set_fail_state(__cls_err_FailedToCallMethodFunction, szMethod); return; @@ -886,7 +890,7 @@ stock __cls_DestroyMethodsTrie(&Trie:itMethods) { TrieDestroy(itMethods); } -stock __cls_AddMemberAccessorMethod(const &Class:class, const szMember[], const szCallback[], iPluginId = -1, __cls_MethodType:iMethodType, iType, iSize) { +stock __cls_AddMemberAccessorMethod(const &Class:class, const szMember[], const Function:func, __cls_MethodType:iMethodType, iType, iSize) { new iStructField = -1; switch (iMethodType) { @@ -918,7 +922,7 @@ stock __cls_AddMemberAccessorMethod(const &Class:class, const szMember[], const ArrayPushArray(irgParamTypes, rgSizeParam[any:0], _:__cls_MethodParamData); } - new Struct:sMethod = __cls_CreateMethod(class, szMember, szCallback, iPluginId, irgParamTypes, iMethodType); + new Struct:sMethod = __cls_CreateMethod(class, szMember, func, irgParamTypes, iMethodType); ArrayDestroy(irgParamTypes); @@ -936,12 +940,11 @@ stock __cls_ResolveAccessorParamType(iType, __cls_MethodType:iMethodType) { return iType; } -stock Struct:__cls_CreateMethod(Class:class, const szName[], const szCallback[], iPluginId, Array:irgParamTypes, __cls_MethodType:iType = __cls_MethodType_Method) { +stock Struct:__cls_CreateMethod(Class:class, const szName[], const Function:func, Array:irgParamTypes, __cls_MethodType:iType = __cls_MethodType_Method) { new Struct:sMethod = StructCreate(__cls_MethodData); StructSetCell(sMethod, __cls_MethodData_Class, class); StructSetString(sMethod, __cls_MethodData_Name, szName); - StructSetCell(sMethod, __cls_MethodData_PluginId, iPluginId); - StructSetCell(sMethod, __cls_MethodData_FunctionId, get_func_id(szCallback, iPluginId)); + StructSetCell(sMethod, __cls_MethodData_Function, func); StructSetCell(sMethod, __cls_MethodData_Type, iType); new iParamTypesNum = ArraySize(irgParamTypes); diff --git a/util/function_pointer.inc b/util/function_pointer.inc new file mode 100644 index 0000000..3591c52 --- /dev/null +++ b/util/function_pointer.inc @@ -0,0 +1,37 @@ +#if defined _function_pointer_included + #endinput +#endif +#define _function_pointer_included + +enum Function { + Invalid_FunctionPointer = -1 +}; + +stock Function:get_func_pointer(const szFunction[], iPluginId = -1) { + static iFunctionId; iFunctionId = get_func_id(szFunction, iPluginId); + + if (iPluginId == -1) { + iPluginId = get_plugin(-1); + } + + if (iPluginId > 0xFFFF) return Invalid_FunctionPointer; + if (iFunctionId > 0xFFFF) return Invalid_FunctionPointer; + + return Function:(((iPluginId + 1) << 16) | iFunctionId); +} + +stock get_pfunc_function(const &Function:function) { + return _:function & 0xFFFF; +} + +stock get_pfunc_plugin(const &Function:function) { + return ((_:function >> 16) & 0xFFFF) - 1; +} + +stock bool:is_pfunc_local(const &Function:function) { + return funcpointer_get_plugin_id(function) == -1; +} + +stock callfunc_begin_p(const &Function:function) { + callfunc_begin_i(get_pfunc_function(function), get_pfunc_plugin(function)); +} From 51eefc34f162ec945cdb63210712a0a88ffdf432 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 9 Apr 2024 20:05:15 +0200 Subject: [PATCH 192/231] fix check for function id --- util/function_pointer.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/function_pointer.inc b/util/function_pointer.inc index 3591c52..ede4084 100644 --- a/util/function_pointer.inc +++ b/util/function_pointer.inc @@ -14,7 +14,7 @@ stock Function:get_func_pointer(const szFunction[], iPluginId = -1) { iPluginId = get_plugin(-1); } - if (iPluginId > 0xFFFF) return Invalid_FunctionPointer; + if (iPluginId >= 0xFFFF) return Invalid_FunctionPointer; if (iFunctionId > 0xFFFF) return Invalid_FunctionPointer; return Function:(((iPluginId + 1) << 16) | iFunctionId); From 9c9ea751a772935239d4cb60726e03d5377a1ed0 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 9 Apr 2024 20:57:05 +0200 Subject: [PATCH 193/231] update is_pfunc_local stock --- util/function_pointer.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/function_pointer.inc b/util/function_pointer.inc index ede4084..783e646 100644 --- a/util/function_pointer.inc +++ b/util/function_pointer.inc @@ -29,7 +29,7 @@ stock get_pfunc_plugin(const &Function:function) { } stock bool:is_pfunc_local(const &Function:function) { - return funcpointer_get_plugin_id(function) == -1; + return get_pfunc_plugin(function) == -1; } stock callfunc_begin_p(const &Function:function) { From ddfccba0bbc2fd62b57d1d1d984091fe7a1f1313 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 9 Apr 2024 21:09:00 +0200 Subject: [PATCH 194/231] fix return --- util/function_pointer.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/function_pointer.inc b/util/function_pointer.inc index 783e646..f290a60 100644 --- a/util/function_pointer.inc +++ b/util/function_pointer.inc @@ -33,5 +33,5 @@ stock bool:is_pfunc_local(const &Function:function) { } stock callfunc_begin_p(const &Function:function) { - callfunc_begin_i(get_pfunc_function(function), get_pfunc_plugin(function)); + return callfunc_begin_i(get_pfunc_function(function), get_pfunc_plugin(function)); } From dc88a4997e1a0d5d89601810de8e60934716fbaf Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 9 Apr 2024 21:11:42 +0200 Subject: [PATCH 195/231] fix buffer position --- util/cellclass.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/cellclass.inc b/util/cellclass.inc index 00a2462..da7683f 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -773,7 +773,6 @@ stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], con __cls_call_sMethod = __cls_FindClassMethodInHierarchy(callClass, szMethod, iMethodType); __cls_call_iParamsNum = 0; __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); - __cls_call_iBufferPos = 0; if (__cls_call_sMethod == Invalid_Struct) { set_fail_state(__cls_err_MethodNotFoundInBaseClass, szMethod); @@ -786,6 +785,7 @@ stock __cls_FreeMethodCall() { __cls_call_sMethod = Invalid_Struct; __cls_call_iParamsNum = 0; __cls_call_iParamTypesNum = 0; + __cls_call_iBufferPos = 0; } stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], __cls_MethodType:iMethodType = __cls_MethodType_Method) { From 7388d9491a138edf6b935f7a8224637bb26cdc21 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 9 Apr 2024 23:46:10 +0200 Subject: [PATCH 196/231] optimizations --- util/cellclass.inc | 61 ++++++++++++++++++---------------------------- 1 file changed, 24 insertions(+), 37 deletions(-) diff --git a/util/cellclass.inc b/util/cellclass.inc index da7683f..abe9529 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -129,7 +129,11 @@ enum __cls_MethodCallStackItem { stock Array:__cls_callstack[CLASS_METHOD_CALL_STACK_SIZE][__cls_MethodCallStackItem]; stock __cls_callstack_size = 0; +#define __cls_callstack_lastItem __cls_callstack[__cls_callstack_size - 1] +#define __cls_callstack_isEmpty !__cls_callstack_size + // Variables to store info between Begin and End method calls +stock Class:__cls_call_class = Invalid_Class; stock ClassInstance:__cls_call_pInstance = Invalid_ClassInstance; stock Struct:__cls_call_sMethod = Invalid_Struct; stock __cls_call_iParamTypesNum = 0; @@ -318,25 +322,21 @@ stock ClassInstanceDestroy(&ClassInstance:pInstance) { } stock ClassInstance:ClassInstanceGetCurrent() { - if (__cls_IsMethodCallStackEmpty()) { + if (__cls_callstack_isEmpty) { set_fail_state(__cls_err_CallMethodOutsideContext); return Invalid_ClassInstance; } - static rgCallStackItem[__cls_MethodCallStackItem]; __cls_GetCurrentMethodFromCallStack(rgCallStackItem); - - return rgCallStackItem[__cls_MethodCallStackItem_Instance]; + return __cls_callstack_lastItem[__cls_MethodCallStackItem_Instance]; } stock Class:ClassInstanceGetCurrentClass() { - if (__cls_IsMethodCallStackEmpty()) { + if (__cls_callstack_isEmpty) { set_fail_state(__cls_err_CallMethodOutsideContext); return Invalid_Class; } - static rgCallStackItem[__cls_MethodCallStackItem]; __cls_GetCurrentMethodFromCallStack(rgCallStackItem); - - return rgCallStackItem[__cls_MethodCallStackItem_Class]; + return __cls_callstack_lastItem[__cls_MethodCallStackItem_Class]; } stock ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], any:...) { @@ -458,23 +458,21 @@ stock ClassInstanceCallMethodBegin(const &ClassInstance:pInstance, const szMetho } stock ClassInstanceCallMethodBeginBase(any:...) { - if (__cls_IsMethodCallStackEmpty()) { + if (__cls_callstack_isEmpty) { set_fail_state(__cls_err_CallMethodOutsideContext); return; } - static rgCallStackItem[__cls_MethodCallStackItem]; __cls_GetCurrentMethodFromCallStack(rgCallStackItem); - - static Class:class; class = StructGetCell(Struct:rgCallStackItem[__cls_MethodCallStackItem_Class], __cls_Data_Base); + static Class:class; class = StructGetCell(Struct:__cls_callstack_lastItem[__cls_MethodCallStackItem_Class], __cls_Data_Base); if (class == Invalid_Class) { set_fail_state(__cls_err_ClassHasNoBaseClass); return; } - static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(rgCallStackItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Name, szMethod, charsmax(szMethod)); - static __cls_MethodType:iMethodType; iMethodType = StructGetCell(Struct:rgCallStackItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Type); + static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_callstack_lastItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Name, szMethod, charsmax(szMethod)); + static __cls_MethodType:iMethodType; iMethodType = StructGetCell(Struct:__cls_callstack_lastItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Type); - __cls_InitMethodCall(rgCallStackItem[__cls_MethodCallStackItem_Instance], szMethod, class, iMethodType); + __cls_InitMethodCall(__cls_callstack_lastItem[__cls_MethodCallStackItem_Instance], szMethod, class, iMethodType); static Function:func; func = StructGetCell(__cls_call_sMethod, __cls_MethodData_Function); @@ -493,7 +491,7 @@ stock any:ClassInstanceCallMethodEnd() { static any:result; result = __cls_ExecuteMethod(); - if (__cls_IsMethodCallStackEmpty()) { + if (__cls_callstack_isEmpty) { __cls_FreeMethodCall(); } @@ -767,10 +765,9 @@ stock __cls_ParseParamTypes(Array:irgArgs, &Array:irgParamTypes) { } stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], const &Class:class = Invalid_Class, __cls_MethodType:iMethodType) { - static Class:callClass; callClass = class == Invalid_Class ? __cls_GetCallMethodClass(pInstance) : class; - + __cls_call_class = class == Invalid_Class ? __cls_GetCallMethodClass(pInstance) : class; __cls_call_pInstance = pInstance; - __cls_call_sMethod = __cls_FindClassMethodInHierarchy(callClass, szMethod, iMethodType); + __cls_call_sMethod = __cls_FindClassMethodInHierarchy(__cls_call_class, szMethod, iMethodType); __cls_call_iParamsNum = 0; __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); @@ -781,6 +778,7 @@ stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], con } stock __cls_FreeMethodCall() { + __cls_call_class = Invalid_Class; __cls_call_pInstance = Invalid_ClassInstance; __cls_call_sMethod = Invalid_Struct; __cls_call_iParamsNum = 0; @@ -791,13 +789,12 @@ stock __cls_FreeMethodCall() { stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], __cls_MethodType:iMethodType = __cls_MethodType_Method) { __cls_InitMethodCall(pInstance, szMethod, _, iMethodType); - static Class:sInstanceClass; sInstanceClass = __cls_GetInstanceClass(pInstance); - // Check for virtual method call - // If we are already in the execution context and the method is virual jump to top level context + // If we are already in the execution context and the method is virual then jump to top level context // All Getters and Setter works like virtual methods - if (!__cls_IsMethodCallStackEmpty()) { + if (!__cls_callstack_isEmpty) { if (StructGetCell(__cls_call_sMethod, __cls_MethodData_Type) != __cls_MethodType_Method) { + static Class:sInstanceClass; sInstanceClass = __cls_GetInstanceClass(pInstance); if (sInstanceClass != StructGetCell(__cls_call_sMethod, __cls_MethodData_Class)) { __cls_call_sMethod = __cls_FindClassMethodInHierarchy(sInstanceClass, szMethod, iMethodType); } @@ -1015,10 +1012,6 @@ stock Struct:__cls_FindClassMethodInHierarchy(const &Class:class, const szMethod return Invalid_Struct; } -stock bool:__cls_IsMethodCallStackEmpty() { - return !__cls_callstack_size; -} - stock __cls_PushMethodCallToCallStack() { if (__cls_callstack_size >= CLASS_METHOD_CALL_STACK_SIZE) { set_fail_state(__cls_err_MaxCallStackSizeExceeded); @@ -1035,21 +1028,15 @@ stock __cls_PopMethodFromCallStack() { __cls_callstack_size--; if (__cls_callstack_size) { - __cls_call_pInstance = __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Instance]; - __cls_call_sMethod = __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Method]; + __cls_call_pInstance = __cls_callstack_lastItem[__cls_MethodCallStackItem_Instance]; + __cls_call_sMethod = __cls_callstack_lastItem[__cls_MethodCallStackItem_Method]; } } -stock __cls_GetCurrentMethodFromCallStack(rgCallStackItem[__cls_MethodCallStackItem]) { - rgCallStackItem[__cls_MethodCallStackItem_Instance] = __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Instance]; - rgCallStackItem[__cls_MethodCallStackItem_Class] = __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Class]; - rgCallStackItem[__cls_MethodCallStackItem_Method] = __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Method]; -} - stock Class:__cls_GetCallMethodClass(const &ClassInstance:pInstance) { if (__cls_callstack_size) { - if (__cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Instance] == pInstance) { - return __cls_callstack[__cls_callstack_size - 1][__cls_MethodCallStackItem_Class]; + if (__cls_callstack_lastItem[__cls_MethodCallStackItem_Instance] == pInstance) { + return __cls_callstack_lastItem[__cls_MethodCallStackItem_Class]; } } From 39bace78c01d8320aecbafabfa3c0b9c86c6a332 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 10 Apr 2024 05:17:18 +0200 Subject: [PATCH 197/231] small optimizations --- util/cellclass.inc | 53 +++++++++++++++++++--------------------------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/util/cellclass.inc b/util/cellclass.inc index abe9529..9c71df6 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -64,9 +64,6 @@ enum _:__cls_ParamTypes { CMP_ParamsCellArray }; -// #define CMP_Float CMP_Cell -// #define CMP_FloatArray CMP_Array - stock const __cls_ParamTypeNames[__cls_ParamTypes][64] = { "Cell", "String", @@ -118,19 +115,13 @@ enum __cls_InstanceCache { any:__cls_InstanceCache_Value }; -enum __cls_MethodCallStackItem { - __cls_MethodCallStackItem_Name[CLASS_METHOD_MAX_NAME_LENGTH], - ClassInstance:__cls_MethodCallStackItem_Instance, - Class:__cls_MethodCallStackItem_Class, - Struct:__cls_MethodCallStackItem_Method -}; - // Fast pseudo-stack implementation -stock Array:__cls_callstack[CLASS_METHOD_CALL_STACK_SIZE][__cls_MethodCallStackItem]; +stock ClassInstance:__cls_callstack_pInstance[CLASS_METHOD_CALL_STACK_SIZE]; +stock Class:__cls_callstack_class[CLASS_METHOD_CALL_STACK_SIZE]; +stock Struct:__cls_callstack_sMethod[CLASS_METHOD_CALL_STACK_SIZE]; stock __cls_callstack_size = 0; -#define __cls_callstack_lastItem __cls_callstack[__cls_callstack_size - 1] -#define __cls_callstack_isEmpty !__cls_callstack_size +#define __cls_callstack_iLastItem (__cls_callstack_size - 1) // Variables to store info between Begin and End method calls stock Class:__cls_call_class = Invalid_Class; @@ -322,21 +313,21 @@ stock ClassInstanceDestroy(&ClassInstance:pInstance) { } stock ClassInstance:ClassInstanceGetCurrent() { - if (__cls_callstack_isEmpty) { + if (!__cls_callstack_size) { set_fail_state(__cls_err_CallMethodOutsideContext); return Invalid_ClassInstance; } - return __cls_callstack_lastItem[__cls_MethodCallStackItem_Instance]; + return __cls_callstack_pInstance[__cls_callstack_iLastItem]; } stock Class:ClassInstanceGetCurrentClass() { - if (__cls_callstack_isEmpty) { + if (!__cls_callstack_size) { set_fail_state(__cls_err_CallMethodOutsideContext); return Invalid_Class; } - return __cls_callstack_lastItem[__cls_MethodCallStackItem_Class]; + return __cls_callstack_class[__cls_callstack_iLastItem]; } stock ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], any:...) { @@ -458,21 +449,21 @@ stock ClassInstanceCallMethodBegin(const &ClassInstance:pInstance, const szMetho } stock ClassInstanceCallMethodBeginBase(any:...) { - if (__cls_callstack_isEmpty) { + if (!__cls_callstack_size) { set_fail_state(__cls_err_CallMethodOutsideContext); return; } - static Class:class; class = StructGetCell(Struct:__cls_callstack_lastItem[__cls_MethodCallStackItem_Class], __cls_Data_Base); + static Class:class; class = StructGetCell(Struct:__cls_callstack_class[__cls_callstack_iLastItem], __cls_Data_Base); if (class == Invalid_Class) { set_fail_state(__cls_err_ClassHasNoBaseClass); return; } - static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_callstack_lastItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Name, szMethod, charsmax(szMethod)); - static __cls_MethodType:iMethodType; iMethodType = StructGetCell(Struct:__cls_callstack_lastItem[__cls_MethodCallStackItem_Method], __cls_MethodData_Type); + static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_callstack_sMethod[__cls_callstack_iLastItem], __cls_MethodData_Name, szMethod, charsmax(szMethod)); + static __cls_MethodType:iMethodType; iMethodType = StructGetCell(__cls_callstack_sMethod[__cls_callstack_iLastItem], __cls_MethodData_Type); - __cls_InitMethodCall(__cls_callstack_lastItem[__cls_MethodCallStackItem_Instance], szMethod, class, iMethodType); + __cls_InitMethodCall(__cls_callstack_pInstance[__cls_callstack_iLastItem], szMethod, class, iMethodType); static Function:func; func = StructGetCell(__cls_call_sMethod, __cls_MethodData_Function); @@ -491,7 +482,7 @@ stock any:ClassInstanceCallMethodEnd() { static any:result; result = __cls_ExecuteMethod(); - if (__cls_callstack_isEmpty) { + if (!__cls_callstack_size) { __cls_FreeMethodCall(); } @@ -792,7 +783,7 @@ stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], __ // Check for virtual method call // If we are already in the execution context and the method is virual then jump to top level context // All Getters and Setter works like virtual methods - if (!__cls_callstack_isEmpty) { + if (__cls_callstack_size) { if (StructGetCell(__cls_call_sMethod, __cls_MethodData_Type) != __cls_MethodType_Method) { static Class:sInstanceClass; sInstanceClass = __cls_GetInstanceClass(pInstance); if (sInstanceClass != StructGetCell(__cls_call_sMethod, __cls_MethodData_Class)) { @@ -1017,9 +1008,9 @@ stock __cls_PushMethodCallToCallStack() { set_fail_state(__cls_err_MaxCallStackSizeExceeded); } - __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Instance] = any:__cls_call_pInstance; - __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Class] = any:StructGetCell(__cls_call_sMethod, __cls_MethodData_Class); - __cls_callstack[__cls_callstack_size][__cls_MethodCallStackItem_Method] = any:__cls_call_sMethod; + __cls_callstack_pInstance[__cls_callstack_size] = any:__cls_call_pInstance; + __cls_callstack_class[__cls_callstack_size] = any:StructGetCell(__cls_call_sMethod, __cls_MethodData_Class); + __cls_callstack_sMethod[__cls_callstack_size] = any:__cls_call_sMethod; __cls_callstack_size++; } @@ -1028,15 +1019,15 @@ stock __cls_PopMethodFromCallStack() { __cls_callstack_size--; if (__cls_callstack_size) { - __cls_call_pInstance = __cls_callstack_lastItem[__cls_MethodCallStackItem_Instance]; - __cls_call_sMethod = __cls_callstack_lastItem[__cls_MethodCallStackItem_Method]; + __cls_call_pInstance = __cls_callstack_pInstance[__cls_callstack_iLastItem]; + __cls_call_sMethod = __cls_callstack_sMethod[__cls_callstack_iLastItem]; } } stock Class:__cls_GetCallMethodClass(const &ClassInstance:pInstance) { if (__cls_callstack_size) { - if (__cls_callstack_lastItem[__cls_MethodCallStackItem_Instance] == pInstance) { - return __cls_callstack_lastItem[__cls_MethodCallStackItem_Class]; + if (__cls_callstack_pInstance[__cls_callstack_iLastItem] == pInstance) { + return __cls_callstack_class[__cls_callstack_iLastItem]; } } From d2e5e14b9f64c4eba3cdcaa042b791e90d35e9cc Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 10 Apr 2024 05:17:42 +0200 Subject: [PATCH 198/231] fix pointers range --- util/function_pointer.inc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/util/function_pointer.inc b/util/function_pointer.inc index f290a60..3279f20 100644 --- a/util/function_pointer.inc +++ b/util/function_pointer.inc @@ -4,7 +4,7 @@ #define _function_pointer_included enum Function { - Invalid_FunctionPointer = -1 + Invalid_FunctionPointer = 0 }; stock Function:get_func_pointer(const szFunction[], iPluginId = -1) { @@ -17,11 +17,11 @@ stock Function:get_func_pointer(const szFunction[], iPluginId = -1) { if (iPluginId >= 0xFFFF) return Invalid_FunctionPointer; if (iFunctionId > 0xFFFF) return Invalid_FunctionPointer; - return Function:(((iPluginId + 1) << 16) | iFunctionId); + return Function:(((iPluginId + 1) << 16) | (iFunctionId + 1)); } stock get_pfunc_function(const &Function:function) { - return _:function & 0xFFFF; + return (_:function & 0xFFFF) - 1; } stock get_pfunc_plugin(const &Function:function) { From 1698891b88a1aeb500ca995577306234839104e8 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Fri, 12 Apr 2024 19:21:53 +0200 Subject: [PATCH 199/231] update navsystem --- api/navsystem/README.md | 10 +- api/navsystem/api_navsystem.sma | 2313 ++++++++--------- api/navsystem/include/api_navsystem.inc | 16 +- api/navsystem/include/api_navsystem_const.inc | 3 + entities/entity_base_monster.sma | 557 ++-- entities/entity_base_npc.sma | 8 +- .../include/entity_base_monster_const.inc | 18 +- util/cellclass.inc | 9 + 8 files changed, 1497 insertions(+), 1437 deletions(-) diff --git a/api/navsystem/README.md b/api/navsystem/README.md index 5542910..00ddc3f 100644 --- a/api/navsystem/README.md +++ b/api/navsystem/README.md @@ -12,15 +12,15 @@ public NavPathCallback(NavBuildPathTask:pTask) { new pEntity = Nav_Path_FindTask_GetUserToken(pTask); new NavPath:pPath = Nav_Path_FindTask_GetPath(pTask); - new Array:irgSegments = Nav_Path_GetSegments(pPath); new Array:irgPath = CE_GetMember(pEntity, m_irgPath); ArrayClear(irgPath); - for (new i = 0; i < ArraySize(irgSegments); ++i) { - new NavPathSegment:pSegment = ArrayGetCell(irgSegments, i); - static Float:vecPos[3]; - Nav_Path_Segment_GetPos(pSegment, vecPos); + static iSegmentsNum; iSegmentsNum = Nav_Path_GetSegmentCount(pPath); + + for (new iSegment = 0; iSegment < iSegmentsNum; ++iSegment) { + static Float:vecPos[3]; Nav_Path_GetSegmentPos(pPath, iSegment, vecPos); + ArrayPushArray(irgPath, vecPos, sizeof(vecPos)); } diff --git a/api/navsystem/api_navsystem.sma b/api/navsystem/api_navsystem.sma index e7a3b8b..b58db18 100644 --- a/api/navsystem/api_navsystem.sma +++ b/api/navsystem/api_navsystem.sma @@ -24,6 +24,9 @@ #include +#define INVALID_NAV_AREA -1 +#define INVALID_BUILD_PATH_TASK -1 + enum _:LADDER_TOP_DIR { LADDER_TOP_DIR_AHEAD = 0, LADDER_TOP_DIR_LEFT, @@ -34,9 +37,9 @@ enum _:LADDER_TOP_DIR { enum Extent { Float:Extent_Lo[3], Float:Extent_Hi[3] }; enum Ray { Float:Ray_From[3], Float:Ray_To[3]}; -enum NavConnect { NavConnect_Id, Struct:NavConnect_Area }; +enum NavConnect { NavConnect_Id, NavConnect_Area }; enum SpotOrder { SpotOrder_Id, Float:SpotOrder_T, Struct:SpotOrder_Spot }; -enum PathSegment { Struct:PathSegment_Area, NavTraverseType:PathSegment_How, Float:PathSegment_Pos[3] }; +enum PathSegment { PathSegment_Area, NavTraverseType:PathSegment_How, Float:PathSegment_Pos[3] }; enum NavPath { Array:NavPath_Segments, NavPath_SegmentCount }; enum ApproachInfo { @@ -64,10 +67,11 @@ enum NavAreaGrid { Float:NavAreaGrid_MinX, Float:NavAreaGrid_MinY, NavAreaGrid_AreaCount, - Struct:NavAreaGrid_HashTable[HASH_TABLE_SIZE] + NavAreaGrid_HashTable[HASH_TABLE_SIZE] }; enum NavArea { + NavArea_Index, NavArea_Id, // unique area ID NavArea_Extent[Extent], // extents of area in world coords (NOTE: lo[2] is not necessarily the minimum Z, but corresponds to Z at point (lo[0], lo[1]), etc Float:NavArea_Center[3], // centroid of area @@ -90,16 +94,16 @@ enum NavArea { Array:NavArea_OverlapList, // list of areas that overlap this area // connections for grid hash table - Struct:NavArea_PrevHash, - Struct:NavArea_NextHash, + NavArea_PrevHash, + NavArea_NextHash, - Struct:NavArea_NextOpen, // only valid if m_openMarker == m_masterMarker - Struct:NavArea_PrevOpen, + NavArea_NextOpen, // only valid if m_openMarker == m_masterMarker + NavArea_PrevOpen, NavArea_OpenMarker, // if this equals the current marker value, we are on the open list // A* pathfinding algorithm NavArea_Marker, // used to flag the area as visited - Struct:NavArea_Parent, // the area just prior to this on in the search path + NavArea_Parent, // the area just prior to this on in the search path NavTraverseType:NavArea_ParentHow, // how we get from parent to us Float:NavArea_TotalCost, // the distance so far plus an estimate of the distance left Float:NavArea_CostSoFar, // distance travelled so far @@ -108,11 +112,13 @@ enum NavArea { enum Callback { Callback_PluginId, Callback_FunctionId }; enum BuildPathTask { + BuildPathTask_Index, + bool:BuildPathTask_IsFree, Float:BuildPathTask_StartPos[3], Float:BuildPathTask_GoalPos[3], - Struct:BuildPathTask_StartArea, - Struct:BuildPathTask_GoalArea, - Struct:BuildPathTask_ClosestArea, + Float:BuildPathTask_ActualGoalPos[3], + BuildPathTask_StartArea, + BuildPathTask_GoalArea, BuildPathTask_CostCallback[Callback], BuildPathTask_FinishCallback[Callback], BuildPathTask_IgnoreEntity, @@ -120,25 +126,17 @@ enum BuildPathTask { Struct:BuildPathTask_Path, bool:BuildPathTask_IsFinished, bool:BuildPathTask_IsSuccessed, - bool:BuildPathTask_IsTerminated + bool:BuildPathTask_IsTerminated, + BuildPathTask_IterationsNum }; enum BuildPathJob { - Struct:BuildPathJob_Task, - Struct:BuildPathJob_StartArea, - Struct:BuildPathJob_GoalArea, - Float:BuildPathJob_ActualGoalPos[3], - Float:BuildPathJob_GoalPos[3], + BuildPathJob_Task, Float:BuildPathJob_ClosestAreaDist, - Struct:BuildPathJob_ClosestArea, - BuildPathJob_CostFuncId, - BuildPathJob_CostFuncPluginId, - bool:BuildPathJob_Successed, + BuildPathJob_ClosestArea, bool:BuildPathJob_Finished, - bool:BuildPathJob_Terminated, - bool:BuildPathJob_FinishHandled, - BuildPathJob_MaxIterations, - BuildPathJob_IgnoreEntity + bool:BuildPathJob_Released, + BuildPathJob_MaxIterations }; enum NavLadder { @@ -148,11 +146,11 @@ enum NavLadder { NavDirType:NavLadder_Dir, Float:NavLadder_DirVector[2], NavLadder_Entity, - Struct:NavLadder_TopForwardArea, - Struct:NavLadder_TopLeftArea, - Struct:NavLadder_TopRightArea, - Struct:NavLadder_TopBehindArea, - Struct:NavLadder_BottomArea, + NavLadder_TopForwardArea, + NavLadder_TopLeftArea, + NavLadder_TopRightArea, + NavLadder_TopBehindArea, + NavLadder_BottomArea, bool:NavLadder_IsDangling }; @@ -165,65 +163,73 @@ const Float:HumanHeight = 72.0; new g_rgGrid[NavAreaGrid]; new g_iNavAreaNextId = 0; -new g_iNavAreaMasterMarker; -new Array:g_irgNavAreaList = Invalid_Array; -// new Array:g_irgNavLadderList = Invalid_Array; -new Struct:g_sNavAreaOpenList = Invalid_Struct; +new g_iNavAreaMasterMarker = 1; +new g_iNavAreaOpenList = INVALID_NAV_AREA; new g_rgBuildPathJob[BuildPathJob]; -new Array:g_irgBuildPathTasks = Invalid_Array; +new Array:g_irgBuildPathTasksQueue = Invalid_Array; new g_pTrace; -new g_pCvarMaxIterationsPerFrame; -new g_pCvarDebug; - new bool:b_bInitStage = false; new bool:g_bPrecached = false; new g_iArrowModelIndex; +new g_rgNavAreas[MAX_NAV_AREAS][NavArea]; +new g_iNavAreasNum = 0; + +new g_rgBuildPathTasks[MAX_NAV_PATH_TASKS][BuildPathTask]; + +new g_iMaxIterationsPerFrame = 0; +new bool:g_bDebug = false; + +#define NAVAREA_PTR(%1) g_rgNavAreas[%1] +#define NAVAREA_INDEX(%1) %1[NavArea_Index] +#define TASK_PTR(%1) g_rgBuildPathTasks[%1] + public plugin_precache() { g_pTrace = create_tr2(); g_iArrowModelIndex = precache_model("sprites/arrow1.spr"); + + for (new i = 0; i < sizeof(g_rgNavAreas); ++i) { + NAVAREA_PTR(i)[NavArea_Index] = i; + } + + for (new i = 0; i < sizeof(g_rgBuildPathTasks); ++i) { + g_rgBuildPathTasks[i][BuildPathTask_Index] = i; + g_rgBuildPathTasks[i][BuildPathTask_IsFree] = true; + } + + g_rgBuildPathJob[BuildPathJob_Task] = INVALID_BUILD_PATH_TASK; } public plugin_init() { register_plugin("Nav System", "0.1.0", "Hedgehog Fog"); b_bInitStage = true; - g_pCvarMaxIterationsPerFrame = register_cvar("nav_max_iterations_per_frame", "100"); - g_pCvarDebug = register_cvar("nav_debug", "0"); if (g_bPrecached) BuildLadders(); + + bind_pcvar_num(register_cvar("nav_max_iterations_per_frame", "100"), g_iMaxIterationsPerFrame); + bind_pcvar_num(register_cvar("nav_debug", "0"), g_bDebug); } public plugin_end() { - if (g_irgNavAreaList != Invalid_Array) { - new iNavAreaListSize = ArraySize(g_irgNavAreaList); - - for (new i = 0; i < iNavAreaListSize; ++i) { - new Struct:sNavArea = ArrayGetCell(g_irgNavAreaList, i); - @NavArea_Destroy(sNavArea); + for (new i = 0; i < sizeof(g_rgBuildPathTasks); ++i) { + if (g_rgBuildPathTasks[i][BuildPathTask_Path] != Invalid_Struct) { + @NavPath_Destroy(g_rgBuildPathTasks[i][BuildPathTask_Path]); } - - ArrayDestroy(g_irgNavAreaList); } - // if (g_irgNavLadderList != Invalid_Array) { - // new iNavirgLadderListSize = ArraySize(g_irgNavLadderList); - - // for (new i = 0; i < iNavirgLadderListSize; ++i) { - // new Struct:sNavLader = ArrayGetCell(g_irgNavLadderList, i); - // @NavLadder_Destroy(sNavLader); - // } - - // ArrayDestroy(g_irgNavLadderList); - // } + for (new iArea = 0; iArea < g_iNavAreasNum; ++iArea) { + if (iArea == INVALID_NAV_AREA) continue; + @NavArea_Free(NAVAREA_PTR(iArea)); + } NavAreaGrid_Free(); - if (g_irgBuildPathTasks != Invalid_Array) { - ArrayDestroy(g_irgBuildPathTasks); + if (g_irgBuildPathTasksQueue != Invalid_Array) { + ArrayDestroy(g_irgBuildPathTasksQueue); } free_tr2(g_pTrace); @@ -261,12 +267,14 @@ public plugin_natives() { register_native("Nav_Area_ComputePortal", "Native_Area_ComputePortal"); register_native("Nav_Area_IsOverlapping", "Native_Area_IsOverlapping"); register_native("Nav_Area_IsOverlappingPoint", "Native_Area_IsOverlappingPoint"); + register_native("Nav_Area_GetCostSoFar", "Native_Area_GetCostSoFar"); register_native("Nav_Path_IsValid", "Native_Path_IsValid"); - register_native("Nav_Path_GetSegments", "Native_Path_GetSegments"); - register_native("Nav_Path_Segment_GetPos", "Native_Path_Segment_GetPos"); - register_native("Nav_Path_Segment_GetHow", "Native_Path_Segment_GetHow"); - register_native("Nav_Path_Segment_GetArea", "Native_Path_Segment_GetArea"); + register_native("Nav_Path_GetSegmentCount", "Native_Path_GetSegmentCount"); + register_native("Nav_Path_GetSegmentPos", "Native_Path_GetSegmentPos"); + register_native("Nav_Path_GetSegmentHow", "Native_Path_GetSegmentHow"); + register_native("Nav_Path_GetSegmentArea", "Native_Path_GetSegmentArea"); + register_native("Nav_Path_FindClosestPoint", "Native_Path_FindClosestPoint"); register_native("Nav_Path_Find", "Native_Path_Find"); register_native("Nav_Path_FindTask_Await", "Native_Path_FindTask_Await"); @@ -276,6 +284,7 @@ public plugin_natives() { register_native("Nav_Path_FindTask_IsFinished", "Native_Path_FindTask_IsFinished"); register_native("Nav_Path_FindTask_IsSuccessed", "Native_Path_FindTask_IsSuccessed"); register_native("Nav_Path_FindTask_IsTerminated", "Native_Path_FindTask_IsTerminated"); + register_native("Nav_Path_FindTask_GetIterationsNum", "Native_Path_FindTask_GetIterationsNum"); } public server_frame() { @@ -293,29 +302,22 @@ public Native_Precache(iPluginId, iArgc) { } public Native_GetAreaCount(iPluginId, iArgc) { - return g_irgNavAreaList != Invalid_Array ? ArraySize(g_irgNavAreaList) : 0; + return g_iNavAreasNum; } -public Struct:Native_GetArea(iPluginId, iArgc) { - if (g_irgNavAreaList == Invalid_Array) { - return Invalid_Struct; - } +public Native_GetArea(iPluginId, iArgc) { + new iArea = get_param(1); - new iIndex = get_param(1); - if (iIndex >= ArraySize(g_irgNavAreaList)) { - return Invalid_Struct; - } - - return ArrayGetCell(g_irgNavAreaList, iIndex); + return iArea; } -public Struct:Native_GetAreaById(iPluginId, iArgc) { +public Native_GetAreaById(iPluginId, iArgc) { new iId = get_param(1); return NavAreaGrid_GetNavAreaById(iId); } -public Struct:Native_GetAreaFromGrid(iPluginId, iArgc) { +public Native_GetAreaFromGrid(iPluginId, iArgc) { static Float:vecPos[3]; get_array_f(1, vecPos, sizeof(vecPos)); new Float:flBeneathLimit = get_param_f(2); @@ -333,9 +335,8 @@ public Native_WorldToGridY(iPluginId, iArgc) { return NavAreaGrid_WorldToGridY(flValue); } -public Struct:Native_FindFirstAreaInDirection(iPluginId, iArgc) { - static Float:vecStart[3]; - get_array_f(1, vecStart, sizeof(vecStart)); +public Native_FindFirstAreaInDirection(iPluginId, iArgc) { + static Float:vecStart[3]; get_array_f(1, vecStart, sizeof(vecStart)); new NavDirType:iDir = NavDirType:get_param(2); new Float:flRange = get_param_f(3); @@ -343,269 +344,316 @@ public Struct:Native_FindFirstAreaInDirection(iPluginId, iArgc) { new pIgnoreEnt = get_param(5); static Float:vecClosePos[3]; - new Struct:sArea = FindFirstAreaInDirection(vecStart, iDir, flRange, flBeneathLimit, pIgnoreEnt, vecClosePos); + new iArea = FindFirstAreaInDirection(vecStart, iDir, flRange, flBeneathLimit, pIgnoreEnt, vecClosePos); set_array_f(6, vecClosePos, sizeof(vecClosePos)); - return sArea; + return iArea; } public bool:Native_IsAreaVisible(iPluginId, iArgc) { static Float:vecPos[3]; get_array_f(1, vecPos, sizeof(vecPos)); - new Struct:sArea = Struct:get_param(2); + new iArea = get_param(2); - return IsAreaVisible(vecPos, sArea); + return IsAreaVisible(vecPos, NAVAREA_PTR(iArea)); } -public Struct:Native_GetNearestNavArea(iPluginId, iArgc) { +public Native_GetNearestNavArea(iPluginId, iArgc) { static Float:vecPos[3]; get_array_f(1, vecPos, sizeof(vecPos)); static bool:bAnyZ; bAnyZ = bool:get_param(2); static pIgnoreEnt; pIgnoreEnt = get_param(3); - static Struct:sIgnoreArea; sIgnoreArea = Struct:get_param(4); + static iIgnoreArea; iIgnoreArea = get_param(4); - return NavAreaGrid_GetNearestNavArea(vecPos, bAnyZ, pIgnoreEnt, sIgnoreArea); + return NavAreaGrid_GetNearestNavArea(vecPos, bAnyZ, pIgnoreEnt, iIgnoreArea); } -public Struct:Native_Path_Find(iPluginId, iArgc) { +public Native_Path_Find(iPluginId, iArgc) { static Float:vecStart[3]; get_array_f(1, vecStart, sizeof(vecStart)); static Float:vecGoal[3]; get_array_f(2, vecGoal, sizeof(vecGoal)); static szCbFunction[32]; get_string(3, szCbFunction, charsmax(szCbFunction)); - new pIgnoreEnt = get_param(4); - new iUserToken = get_param(5); + static pIgnoreEnt; pIgnoreEnt = get_param(4); + static iUserToken; iUserToken = get_param(5); static szCostFunction[32]; get_string(6, szCostFunction, charsmax(szCostFunction)); - new iCostFuncId = equal(szCostFunction, NULL_STRING) ? -1 : get_func_id(szCostFunction, iPluginId); - new iCbFuncId = equal(szCbFunction, NULL_STRING) ? -1 : get_func_id(szCbFunction, iPluginId); + static iCostFuncId; iCostFuncId = equal(szCostFunction, NULL_STRING) ? -1 : get_func_id(szCostFunction, iPluginId); + static iCbFuncId; iCbFuncId = equal(szCbFunction, NULL_STRING) ? -1 : get_func_id(szCbFunction, iPluginId); return NavAreaBuildPath(vecStart, vecGoal, iCbFuncId, iPluginId, pIgnoreEnt, iUserToken, iCostFuncId, iPluginId); } public NavAttributeType:Native_Area_GetAttributes(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new iArea = get_param(1); - return @NavArea_GetAttributes(sArea); + return @NavArea_GetAttributes(NAVAREA_PTR(iArea)); } public NavTraverseType:Native_Area_GetParentHow(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new iArea = get_param(1); - return @NavArea_GetParentHow(sArea); + return @NavArea_GetParentHow(NAVAREA_PTR(iArea)); } public Native_Area_GetCenter(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - static Float:vecCenter[3]; @NavArea_GetCenter(sArea, vecCenter); + new iArea = get_param(1); + static Float:vecCenter[3]; @NavArea_GetCenter(NAVAREA_PTR(iArea), vecCenter); set_array_f(2, vecCenter, sizeof(vecCenter)); } public Native_Path_FindTask_Await(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + static iTask; iTask = get_param(1); - while (!StructGetCell(sTask, BuildPathTask_IsFinished)) { + if (g_rgBuildPathTasks[iTask][BuildPathTask_IsFree]) { + return; + } + + while ( + g_rgBuildPathJob[BuildPathJob_Task] != iTask || + !g_rgBuildPathJob[BuildPathJob_Finished] + ) { NavAreaBuildPathFrame(); } + + // g_rgBuildPathTasks[iTask][BuildPathTask_IsFree] = true; } public bool:Native_Path_FindTask_IsFinished(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + new iTask = get_param(1); - return StructGetCell(sTask, BuildPathTask_IsFinished); + return g_rgBuildPathTasks[iTask][BuildPathTask_IsFinished]; } public Native_Path_FindTask_GetUserToken(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + new iTask = get_param(1); - return StructGetCell(sTask, BuildPathTask_UserToken); + return g_rgBuildPathTasks[iTask][BuildPathTask_UserToken]; } public bool:Native_Path_FindTask_Abort(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + new iTask = get_param(1); - return NavAreaBuildPathAbortTask(sTask); + return NavAreaBuildPathAbortTask(TASK_PTR(iTask)); } public Struct:Native_Path_FindTask_GetPath(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + new iTask = get_param(1); - return StructGetCell(sTask, BuildPathTask_Path); + return g_rgBuildPathTasks[iTask][BuildPathTask_Path]; } public bool:Native_Path_FindTask_IsSuccessed(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + new iTask = get_param(1); - return StructGetCell(sTask, BuildPathTask_IsSuccessed); + return g_rgBuildPathTasks[iTask][BuildPathTask_IsSuccessed]; } public bool:Native_Path_FindTask_IsTerminated(iPluginId, iArgc) { - new Struct:sTask = Struct:get_param(1); + new iTask = get_param(1); - return StructGetCell(sTask, BuildPathTask_IsTerminated); + return g_rgBuildPathTasks[iTask][BuildPathTask_IsTerminated]; } -public Array:Native_Path_GetSegments(iPluginId, iArgc) { - new Struct:sNavPath = Struct:get_param(1); +public Native_Path_FindTask_GetIterationsNum(iPluginId, iArgc) { + new iTask = get_param(1); - return StructGetCell(sNavPath, NavPath_Segments); + return g_rgBuildPathTasks[iTask][BuildPathTask_IterationsNum]; } public bool:Native_Path_IsValid(iPluginId, iArgc) { - new Struct:sNavPath = Struct:get_param(1); + static Struct:sNavPath; sNavPath = Struct:get_param(1); return @NavPath_IsValid(sNavPath); } -public Native_Path_Segment_GetPos(iPluginId, iArgc) { - new Struct:sSegment = Struct:get_param(1); +public Array:Native_Path_GetSegmentCount(iPluginId, iArgc) { + static Struct:sNavPath; sNavPath = Struct:get_param(1); + + return StructGetCell(sNavPath, NavPath_SegmentCount); +} + +public Native_Path_GetSegmentPos(iPluginId, iArgc) { + static Struct:sNavPath; sNavPath = Struct:get_param(1); + static iSegment; iSegment = get_param(2); + + static Array:irgSegments; irgSegments = StructGetCell(sNavPath, NavPath_Segments); + + static Float:vecPos[3]; ArrayGetArray2(irgSegments, iSegment, vecPos, 3, PathSegment_Pos); + + set_array_f(3, vecPos, sizeof(vecPos)); +} + +public NavTraverseType:Native_Path_GetSegmentHow(iPluginId, iArgc) { + static Struct:sNavPath; sNavPath = Struct:get_param(1); + static iSegment; iSegment = get_param(2); - static Float:vecPos[3]; StructGetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); + static Array:irgSegments; irgSegments = StructGetCell(sNavPath, NavPath_Segments); - set_array_f(2, vecPos, sizeof(vecPos)); + return ArrayGetCell(irgSegments, iSegment, _:PathSegment_How); } -public NavTraverseType:Native_Path_Segment_GetHow(iPluginId, iArgc) { - new Struct:sSegment = Struct:get_param(1); +public NavTraverseType:Native_Path_GetSegmentArea(iPluginId, iArgc) { + static Struct:sNavPath; sNavPath = Struct:get_param(1); + static iSegment; iSegment = get_param(2); - return StructGetCell(sSegment, PathSegment_How); + static Array:irgSegments; irgSegments = StructGetCell(sNavPath, NavPath_Segments); + + return ArrayGetCell(irgSegments, iSegment, _:PathSegment_Area); } -public NavTraverseType:Native_Path_Segment_GetArea(iPluginId, iArgc) { - new Struct:sSegment = Struct:get_param(1); +public Native_Path_FindClosestPoint(iPluginId, iArgc) { + static Struct:sNavPath; sNavPath = Struct:get_param(1); + static Float:vecWorldPos[3]; get_array_f(2, vecWorldPos, sizeof(vecWorldPos)); + static iStartIndex; iStartIndex = get_param(3); + static iEndIndex; iEndIndex = get_param(4); - return StructGetCell(sSegment, PathSegment_Area); + static Float:vecClose[3]; + if (!@NavPath_FindClosestPointOnPath(sNavPath, vecWorldPos, iStartIndex, iEndIndex, vecClose)) { + return false; + } + + set_array_f(5, vecClose, sizeof(vecClose)); + + return true; } public Native_Area_GetId(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new iArea = get_param(1); - return @NavArea_GetId(sArea); + return @NavArea_GetId(NAVAREA_PTR(iArea)); } public bool:Native_Area_Contains(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new iArea = get_param(1); static Float:vecPoint[3]; get_array_f(2, vecPoint, sizeof(vecPoint)); - return @NavArea_Contains(sArea, vecPoint); + return @NavArea_Contains(NAVAREA_PTR(iArea), vecPoint); } public bool:Native_Area_IsCoplanar(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - new Struct:sOtherArea = Struct:get_param(2); + new iArea = get_param(1); + new iOtherArea = get_param(2); - return @NavArea_IsCoplanar(sArea, sOtherArea); + return @NavArea_IsCoplanar(NAVAREA_PTR(iArea), iOtherArea); } public Float:Native_Area_GetZ(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new iArea = get_param(1); static Float:vecPos[3]; get_array_f(2, vecPos, sizeof(vecPos)); - return @NavArea_GetZ(sArea, vecPos); + return @NavArea_GetZ(NAVAREA_PTR(iArea), vecPos); } public Native_Area_GetClosestPointOnArea(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new iArea = get_param(1); static Float:vecPos[3]; get_array_f(2, vecPos, sizeof(vecPos)); static Float:vecClose[3]; - @NavArea_GetClosestPointOnArea(sArea, vecPos, vecClose); + @NavArea_GetClosestPointOnArea(NAVAREA_PTR(iArea), vecPos, vecClose); set_array_f(3, vecClose, sizeof(vecClose)); } public Float:Native_Area_GetDistanceSquaredToPoint(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new iArea = get_param(1); static Float:vecPoint[3]; get_array_f(2, vecPoint, sizeof(vecPoint)); - return @NavArea_GetDistanceSquaredToPoint(sArea, vecPoint); + return @NavArea_GetDistanceSquaredToPoint(NAVAREA_PTR(iArea), vecPoint); } -public Struct:Native_Area_GetRandomAdjacentArea(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); +public Native_Area_GetRandomAdjacentArea(iPluginId, iArgc) { + new iArea = get_param(1); new NavDirType:iDir = NavDirType:get_param(2); - return @NavArea_GetRandomAdjacentArea(sArea, iDir); + return @NavArea_GetRandomAdjacentArea(NAVAREA_PTR(iArea), iDir); } public bool:Native_Area_IsEdge(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new iArea = get_param(1); new NavDirType:iDir = NavDirType:get_param(2); - return @NavArea_IsEdge(sArea, iDir); + return @NavArea_IsEdge(NAVAREA_PTR(iArea), iDir); } public bool:Native_Area_IsConnected(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - new Struct:sOtherArea = Struct:get_param(2); + new iArea = get_param(1); + new iOtherArea = get_param(2); new NavDirType:iDir = NavDirType:get_param(3); - return @NavArea_IsConnected(sArea, sOtherArea, iDir); + return @NavArea_IsConnected(NAVAREA_PTR(iArea), NAVAREA_PTR(iOtherArea), iDir); } public Native_Area_GetCorner(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new iArea = get_param(1); new NavCornerType:iCorner = NavCornerType:get_param(2); static Float:vecPos[3]; get_array_f(3, vecPos, sizeof(vecPos)); - @NavArea_GetCorner(sArea, iCorner, vecPos); + @NavArea_GetCorner(NAVAREA_PTR(iArea), iCorner, vecPos); set_array_f(3, vecPos, sizeof(vecPos)); } public NavDirType:Native_Area_ComputeDirection(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new iArea = get_param(1); static Float:vecPoint[3]; get_array_f(2, vecPoint, sizeof(vecPoint)); - return @NavArea_ComputeDirection(sArea, vecPoint); + return @NavArea_ComputeDirection(NAVAREA_PTR(iArea), vecPoint); } public Native_Area_ComputePortal(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - new Struct:sOtherArea = Struct:get_param(2); + new iArea = get_param(1); + new iOtherArea = get_param(2); new NavDirType:iDir = NavDirType:get_param(3); static Float:vecCenter[3]; static Float:flHalfWidth; - @NavArea_ComputePortal(sArea, sOtherArea, iDir, vecCenter, flHalfWidth); + @NavArea_ComputePortal(NAVAREA_PTR(iArea), NAVAREA_PTR(iOtherArea), iDir, vecCenter, flHalfWidth); set_array_f(4, vecCenter, sizeof(vecCenter)); set_float_byref(5, flHalfWidth); } public bool:Native_Area_IsOverlapping(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); - new Struct:sOtherArea = Struct:get_param(2); + new iArea = get_param(1); + new iOtherArea = get_param(2); - return @NavArea_IsOverlapping(sArea, sOtherArea); + return @NavArea_IsOverlapping(NAVAREA_PTR(iArea), iOtherArea); } public bool:Native_Area_IsOverlappingPoint(iPluginId, iArgc) { - new Struct:sArea = Struct:get_param(1); + new iArea = get_param(1); static Float:vecPoint[3]; get_array_f(3, vecPoint, sizeof(vecPoint)); - return @NavArea_IsOverlappingPoint(sArea, vecPoint); + return @NavArea_IsOverlappingPoint(NAVAREA_PTR(iArea), vecPoint); } -Struct:@NavArea_Create() { - new Struct:this = StructCreate(NavArea); +public Float:Native_Area_GetCostSoFar(iPluginId, iArgc) { + new iArea = get_param(1); - StructSetCell(this, NavArea_SpotEncounterList, ArrayCreate(_:SpotEncounter)); - StructSetCell(this, NavArea_Approach, ArrayCreate(_:ApproachInfo)); - StructSetCell(this, NavArea_OverlapList, ArrayCreate()); + return @NavArea_GetCostSoFar(NAVAREA_PTR(iArea)); +} + +@NavArea_Allocate(this[NavArea]) { + this[NavArea_PrevHash] = INVALID_NAV_AREA; + this[NavArea_NextHash] = INVALID_NAV_AREA; + this[NavArea_PrevOpen] = INVALID_NAV_AREA; + this[NavArea_NextOpen] = INVALID_NAV_AREA; + this[NavArea_Parent] = INVALID_NAV_AREA; + this[NavArea_SpotEncounterList] = ArrayCreate(_:SpotEncounter); + this[NavArea_Approach] = ArrayCreate(_:ApproachInfo); + this[NavArea_OverlapList] = ArrayCreate(); for (new NavDirType:d = NORTH; d < NUM_DIRECTIONS; d++) { - StructSetCell(this, NavArea_Connect, ArrayCreate(_:NavConnect), d); + this[NavArea_Connect][d] = ArrayCreate(_:NavConnect); } for (new LadderDirectionType:d = LADDER_UP; d < NUM_LADDER_DIRECTIONS; d++) { - StructSetCell(this, NavArea_Ladder, ArrayCreate(_:NavLadder), d); + this[NavArea_Ladder][d] = ArrayCreate(_:NavLadder); } - - return this; } -@NavArea_Destroy(&Struct:this) { - new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); +@NavArea_Free(this[NavArea]) { + new Array:irgSpotEncounterList = this[NavArea_SpotEncounterList]; new iSpotEncounterListSize = ArraySize(irgSpotEncounterList); for (new i = 0; i < iSpotEncounterListSize; ++i) { @@ -615,33 +663,26 @@ Struct:@NavArea_Create() { ArrayDestroy(irgSpotEncounterList); - new Array:irgApproachList = StructGetCell(this, NavArea_Approach); - ArrayDestroy(irgApproachList); - - new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); - ArrayDestroy(irgOverlapList); + ArrayDestroy(this[NavArea_Approach]); + ArrayDestroy(this[NavArea_OverlapList]); for (new NavDirType:d = NORTH; d < NUM_DIRECTIONS; d++) { - new Array:irgConnectList = StructGetCell(this, NavArea_Connect, d); - ArrayDestroy(irgConnectList); + ArrayDestroy(this[NavArea_Connect][d]); } for (new LadderDirectionType:d = LADDER_UP; d < NUM_LADDER_DIRECTIONS; d++) { - new Array:irgLadderList = StructGetCell(this, NavArea_Ladder, d); - ArrayDestroy(irgLadderList); + ArrayDestroy(this[NavArea_Ladder][d]); } - - StructDestroy(this); } -@NavArea_Load(const &Struct:this, iFile, iVersion, bool:bDebug) { - new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); - new Array:irgApproachList = StructGetCell(this, NavArea_Approach); +@NavArea_Load(this[NavArea], iFile, iVersion, bool:bDebug) { + new Array:irgSpotEncounterList = this[NavArea_SpotEncounterList]; + new Array:irgApproachList = this[NavArea_Approach]; // load ID new iId; FileReadInt32(iFile, iId); - StructSetCell(this, NavArea_Id, iId); + this[NavArea_Id] = iId; // update nextID to avoid collisions if (iId >= g_iNavAreaNextId) { @@ -649,46 +690,33 @@ Struct:@NavArea_Create() { } // load attribute flags - new iAttributeFlags; - FileReadUint8(iFile, iAttributeFlags); - StructSetCell(this, NavArea_AttributeFlags, iAttributeFlags); + FileReadUint8(iFile, this[NavArea_AttributeFlags]); // load extent of area - new Float:rgExtent[Extent]; - fread_blocks(iFile, rgExtent[Extent_Lo], 3, BLOCK_INT); - fread_blocks(iFile, rgExtent[Extent_Hi], 3, BLOCK_INT); - - StructSetArray(this, NavArea_Extent, rgExtent, Extent); + fread_blocks(iFile, this[NavArea_Extent][Extent_Lo], 3, BLOCK_INT); + fread_blocks(iFile, this[NavArea_Extent][Extent_Hi], 3, BLOCK_INT); - new Float:vecCenter[3]; for (new i = 0; i < 3; ++i) { - vecCenter[i] = (rgExtent[Extent_Lo][i] + rgExtent[Extent_Hi][i]) / 2.0; + this[NavArea_Center][i] = (this[NavArea_Extent][Extent_Lo][i] + this[NavArea_Extent][Extent_Hi][i]) / 2.0; } - StructSetArray(this, NavArea_Center, vecCenter, sizeof(vecCenter)); // load heights of implicit corners - new Float:flNeZ; - FileReadInt32(iFile, flNeZ); - StructSetCell(this, NavArea_NeZ, flNeZ); - new Float:flSwZ; - FileReadInt32(iFile, flSwZ); - StructSetCell(this, NavArea_SwZ, flSwZ); + FileReadInt32(iFile, this[NavArea_NeZ]); + + FileReadInt32(iFile, this[NavArea_SwZ]); // load connections (IDs) to adjacent areas // in the enum order NORTH, EAST, SOUTH, WEST - for (new d = 0; d < _:NUM_DIRECTIONS; d++) { - new Array:irgConnectList = StructGetCell(this, NavArea_Connect, d); - + for (new NavDirType:d = NORTH; d < NUM_DIRECTIONS; d++) { // load number of connections for this direction - new iConnectionCount; - FileReadInt32(iFile, iConnectionCount); + new iConnectionCount; FileReadInt32(iFile, iConnectionCount); for (new i = 0; i < iConnectionCount; i++) { new rgConnect[NavConnect]; FileReadInt32(iFile, rgConnect[NavConnect_Id]); - ArrayPushArray(irgConnectList, rgConnect[any:0]); + ArrayPushArray(Array:this[NavArea_Connect][d], rgConnect[any:0]); } } @@ -772,20 +800,20 @@ Struct:@NavArea_Create() { fseek(iFile, BLOCK_SHORT, SEEK_CUR); } -NavErrorType:@NavArea_PostLoadArea(const &Struct:this) { +NavErrorType:@NavArea_PostLoadArea(const this[NavArea]) { new NavErrorType:error = NAV_OK; // connect areas together - for (new d = 0; d < _:NUM_DIRECTIONS; d++) { - new Array:irgConnections = StructGetCell(this, NavArea_Connect, d); + for (new NavDirType:d = NORTH; d < NUM_DIRECTIONS; d++) { + new Array:irgConnections = Array:this[NavArea_Connect][d]; new iConnectionCount = ArraySize(irgConnections); for (new i = 0; i < iConnectionCount; ++i) { new iConnectId = ArrayGetCell(irgConnections, i, _:NavConnect_Id); - new Struct:sArea = NavAreaGrid_GetNavAreaById(iConnectId); - ArraySetCell(irgConnections, i, sArea, _:NavConnect_Area); + new iArea = NavAreaGrid_GetNavAreaById(iConnectId); + ArraySetCell(irgConnections, i, iArea, _:NavConnect_Area); - if (iConnectId && sArea == Invalid_Struct) { + if (iConnectId && iArea == INVALID_NAV_AREA) { log_amx("ERROR: Corrupt navigation data. Cannot connect Navigation Areas.^n"); error = NAV_CORRUPT_DATA; } @@ -793,257 +821,263 @@ NavErrorType:@NavArea_PostLoadArea(const &Struct:this) { } // resolve approach area IDs - new Array:irgApproachList = StructGetCell(this, NavArea_Approach); + new Array:irgApproachList = this[NavArea_Approach]; new iApproachCount = ArraySize(irgApproachList); for (new a = 0; a < iApproachCount; a++) { new iApproachHereId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Here + _:NavConnect_Id); - new Struct:sApproachHereArea = NavAreaGrid_GetNavAreaById(iApproachHereId); - ArraySetCell(irgApproachList, a, sApproachHereArea, _:ApproachInfo_Here + _:NavConnect_Area); - if (iApproachHereId && sApproachHereArea == Invalid_Struct) { + new iApproachHereArea = NavAreaGrid_GetNavAreaById(iApproachHereId); + ArraySetCell(irgApproachList, a, iApproachHereArea, _:ApproachInfo_Here + _:NavConnect_Area); + if (iApproachHereId && iApproachHereArea == INVALID_NAV_AREA) { log_amx("ERROR: Corrupt navigation data. Missing Approach Area (here).^n"); error = NAV_CORRUPT_DATA; } new iApproachPrevId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Prev + _:NavConnect_Id); - new Struct:sApproachPrevArea = NavAreaGrid_GetNavAreaById(iApproachPrevId); - ArraySetCell(irgApproachList, a, sApproachPrevArea, _:ApproachInfo_Prev + _:NavConnect_Area); - if (iApproachPrevId && sApproachPrevArea == Invalid_Struct) { + new iApproachPrevArea = NavAreaGrid_GetNavAreaById(iApproachPrevId); + ArraySetCell(irgApproachList, a, iApproachPrevArea, _:ApproachInfo_Prev + _:NavConnect_Area); + if (iApproachPrevId && iApproachPrevArea == INVALID_NAV_AREA) { log_amx("ERROR: Corrupt navigation data. Missing Approach Area (prev).^n"); error = NAV_CORRUPT_DATA; } new iApproachNextId = ArrayGetCell(irgApproachList, a, _:ApproachInfo_Next + _:NavConnect_Id); - new Struct:sApproachNextArea = NavAreaGrid_GetNavAreaById(iApproachNextId); - ArraySetCell(irgApproachList, a, sApproachNextArea, _:ApproachInfo_Next + _:NavConnect_Area); - if (iApproachNextId && sApproachNextArea == Invalid_Struct) { + new iApproachNextArea = NavAreaGrid_GetNavAreaById(iApproachNextId); + ArraySetCell(irgApproachList, a, iApproachNextArea, _:ApproachInfo_Next + _:NavConnect_Area); + if (iApproachNextId && iApproachNextArea == INVALID_NAV_AREA) { log_amx("ERROR: Corrupt navigation data. Missing Approach Area (next).^n"); error = NAV_CORRUPT_DATA; } } // resolve spot encounter IDs - new Array:irgSpotEncounterList = StructGetCell(this, NavArea_SpotEncounterList); + new Array:irgSpotEncounterList = this[NavArea_SpotEncounterList]; new iSpotEncounterCount = ArraySize(irgSpotEncounterList); for (new e = 0; e < iSpotEncounterCount; e++) { - new rgSpot[SpotEncounter]; - ArrayGetArray(irgSpotEncounterList, e, rgSpot[any:0]); + new rgSpot[SpotEncounter]; ArrayGetArray(irgSpotEncounterList, e, rgSpot[any:0]); rgSpot[SpotEncounter_From][NavConnect_Area] = NavAreaGrid_GetNavAreaById(rgSpot[SpotEncounter_From][NavConnect_Id]); - if (rgSpot[SpotEncounter_From][NavConnect_Area] == Invalid_Struct) { + if (rgSpot[SpotEncounter_From][NavConnect_Area] == INVALID_NAV_AREA) { log_amx("ERROR: Corrupt navigation data. Missing ^"from^" Navigation Area for Encounter Spot.^n"); error = NAV_CORRUPT_DATA; } rgSpot[SpotEncounter_To][NavConnect_Area] = NavAreaGrid_GetNavAreaById(rgSpot[SpotEncounter_To][NavConnect_Id]); - if (rgSpot[SpotEncounter_To][NavConnect_Area] == Invalid_Struct) { + if (rgSpot[SpotEncounter_To][NavConnect_Area] == INVALID_NAV_AREA) { log_amx("ERROR: Corrupt navigation data. Missing ^"to^" Navigation Area for Encounter Spot.^n"); error = NAV_CORRUPT_DATA; } - if (rgSpot[SpotEncounter_From][NavConnect_Area] != Invalid_Struct && rgSpot[SpotEncounter_To][NavConnect_Area] != Invalid_Struct) { + if (rgSpot[SpotEncounter_From][NavConnect_Area] != INVALID_NAV_AREA && rgSpot[SpotEncounter_To][NavConnect_Area] != INVALID_NAV_AREA) { // compute path new Float:flHalfWidth; - @NavArea_ComputePortal(this, rgSpot[SpotEncounter_To][NavConnect_Area], rgSpot[SpotEncounter_ToDir], rgSpot[SpotEncounter_Path][Ray_To], flHalfWidth); - @NavArea_ComputePortal(this, rgSpot[SpotEncounter_From][NavConnect_Area], rgSpot[SpotEncounter_FromDir], rgSpot[SpotEncounter_Path][Ray_From], flHalfWidth); + @NavArea_ComputePortal(this, NAVAREA_PTR(rgSpot[SpotEncounter_To][NavConnect_Area]), rgSpot[SpotEncounter_ToDir], rgSpot[SpotEncounter_Path][Ray_To], flHalfWidth); + @NavArea_ComputePortal(this, NAVAREA_PTR(rgSpot[SpotEncounter_From][NavConnect_Area]), rgSpot[SpotEncounter_FromDir], rgSpot[SpotEncounter_Path][Ray_From], flHalfWidth); new Float:eyeHeight = HalfHumanHeight; - rgSpot[SpotEncounter_Path][Ray_From][2] = @NavArea_GetZ(rgSpot[SpotEncounter_From][NavConnect_Area], rgSpot[SpotEncounter_Path][Ray_From]) + eyeHeight; - rgSpot[SpotEncounter_Path][Ray_To][2] = @NavArea_GetZ(rgSpot[SpotEncounter_To][NavConnect_Area], rgSpot[SpotEncounter_Path][Ray_To]) + eyeHeight; + rgSpot[SpotEncounter_Path][Ray_From][2] = @NavArea_GetZ( + g_rgNavAreas[rgSpot[SpotEncounter_From][NavConnect_Area]], + rgSpot[SpotEncounter_Path][Ray_From] + ) + eyeHeight; + + rgSpot[SpotEncounter_Path][Ray_To][2] = @NavArea_GetZ( + g_rgNavAreas[rgSpot[SpotEncounter_To][NavConnect_Area]], + rgSpot[SpotEncounter_Path][Ray_To] + ) + eyeHeight; } ArraySetArray(irgSpotEncounterList, e, rgSpot[any:0]); } // build overlap list - new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); + new Array:irgOverlapList = this[NavArea_OverlapList]; - new iNavAreaListSize = ArraySize(g_irgNavAreaList); - for (new i = 0; i < iNavAreaListSize; ++i) { - new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); - if (sArea == this) { - continue; - } + for (new iArea = 0; iArea < g_iNavAreasNum; ++iArea) { + if (iArea == NAVAREA_INDEX(this)) continue; - if (@NavArea_IsOverlapping(this, sArea)) { - ArrayPushCell(irgOverlapList, sArea); + if (@NavArea_IsOverlapping(this, iArea)) { + ArrayPushCell(irgOverlapList, iArea); } } return error; } -@NavArea_GetId(const &Struct:this) { - return StructGetCell(this, NavArea_Id); +@NavArea_GetId(const this[NavArea]) { + return this[NavArea_Id]; } -NavAttributeType:@NavArea_GetAttributes(const &Struct:this) { - return StructGetCell(this, NavArea_AttributeFlags); +NavAttributeType:@NavArea_GetAttributes(const this[NavArea]) { + return this[NavArea_AttributeFlags]; } -NavTraverseType:@NavArea_GetParentHow(const &Struct:this) { - return StructGetCell(this, NavArea_ParentHow); +@NavArea_GetParent(const this[NavArea]) { + return this[NavArea_Parent]; } -bool:@NavArea_IsClosed(const &Struct:this) { +NavTraverseType:@NavArea_GetParentHow(const this[NavArea]) { + return this[NavArea_ParentHow]; +} + +bool:@NavArea_IsClosed(const this[NavArea]) { return @NavArea_IsMarked(this) && !@NavArea_IsOpen(this); } -bool:@NavArea_IsOpen(const &Struct:this) { - return StructGetCell(this, NavArea_OpenMarker) == g_iNavAreaMasterMarker; +bool:@NavArea_IsOpen(const this[NavArea]) { + return this[NavArea_OpenMarker] == g_iNavAreaMasterMarker; } -@NavArea_Mark(const &Struct:this) { - StructSetCell(this, NavArea_Marker, g_iNavAreaMasterMarker); +@NavArea_Mark(this[NavArea]) { + this[NavArea_Marker] = g_iNavAreaMasterMarker; } -bool:@NavArea_IsMarked(const &Struct:this) { - return StructGetCell(this, NavArea_Marker) == g_iNavAreaMasterMarker; +bool:@NavArea_IsMarked(const this[NavArea]) { + return this[NavArea_Marker] == g_iNavAreaMasterMarker; } -@NavArea_GetCenter(const &Struct:this, Float:vecCenter[]) { - StructGetArray(this, NavArea_Center, vecCenter, 3); +@NavArea_GetCenter(const this[NavArea], Float:vecCenter[]) { + xs_vec_copy(this[NavArea_Center], vecCenter); } -@NavArea_SetTotalCost(const &Struct:this, Float:flTotalCost) { - StructSetCell(this, NavArea_TotalCost, flTotalCost); +@NavArea_SetTotalCost(this[NavArea], Float:flTotalCost) { + this[NavArea_TotalCost] = flTotalCost; } -Float:@NavArea_GetTotalCost(const &Struct:this) { - return StructGetCell(this, NavArea_TotalCost); +Float:@NavArea_GetTotalCost(const this[NavArea]) { + return this[NavArea_TotalCost]; } -@NavArea_SetCostSoFar(const &Struct:this, Float:flTotalCost) { - StructSetCell(this, NavArea_CostSoFar, flTotalCost); +@NavArea_SetCostSoFar(this[NavArea], Float:flTotalCost) { + this[NavArea_CostSoFar] = flTotalCost; } -Float:@NavArea_GetCostSoFar(const &Struct:this) { - return StructGetCell(this, NavArea_CostSoFar); +Float:@NavArea_GetCostSoFar(const this[NavArea]) { + return this[NavArea_CostSoFar]; } -@NavArea_AddToClosedList(const &Struct:this) { +@NavArea_AddToClosedList(this[NavArea]) { @NavArea_Mark(this); } -@NavArea_RemoveFromClosedList(const &Struct:this) { +@NavArea_RemoveFromClosedList(const this[NavArea]) { // since "closed" is defined as visited (marked) and not on open list, do nothing } -@NavArea_AddLadderUp(const &Struct:this, const rgNavLadder[NavLadder]) { - new Array:irgLadderList = StructGetCell(this, NavArea_Ladder, LADDER_UP); - ArrayPushArray(irgLadderList, rgNavLadder[any:0]); +@NavArea_AddLadderUp(const this[NavArea], const rgNavLadder[NavLadder]) { + ArrayPushArray(Array:this[NavArea_Ladder][LADDER_UP], rgNavLadder[any:0]); } -@NavArea_AddLadderDown(const &Struct:this, const rgNavLadder[NavLadder]) { - new Array:irgLadderList = StructGetCell(this, NavArea_Ladder, LADDER_DOWN); - ArrayPushArray(irgLadderList, rgNavLadder[any:0]); +@NavArea_AddLadderDown(const this[NavArea], const rgNavLadder[NavLadder]) { + ArrayPushArray(Array:this[NavArea_Ladder][LADDER_DOWN], rgNavLadder[any:0]); } -@NavArea_SetParent(const &Struct:this, Struct:parent, NavTraverseType:how) { - StructSetCell(this, NavArea_Parent, parent); - StructSetCell(this, NavArea_ParentHow, how); +@NavArea_SetParent(this[NavArea], iParentArea, NavTraverseType:how) { + this[NavArea_Parent] = iParentArea; + this[NavArea_ParentHow] = how; } -Array:@NavArea_GetAdjacentList(const &Struct:this, NavDirType:iDir) { - return StructGetCell(this, NavArea_Connect, iDir); +Array:@NavArea_GetAdjacentList(const this[NavArea], NavDirType:iDir) { + return this[NavArea_Connect][iDir]; } -@NavArea_AddToOpenList(const &Struct:this) { +@NavArea_AddToOpenList(this[NavArea]) { // mark as being on open list for quick check - StructSetCell(this, NavArea_OpenMarker, g_iNavAreaMasterMarker); + this[NavArea_OpenMarker] = g_iNavAreaMasterMarker; // if list is empty, add and return - if (g_sNavAreaOpenList == Invalid_Struct) { - g_sNavAreaOpenList = this; - StructSetCell(this, NavArea_PrevOpen, Invalid_Struct); - StructSetCell(this, NavArea_NextOpen, Invalid_Struct); + if (g_iNavAreaOpenList == INVALID_NAV_AREA) { + g_iNavAreaOpenList = NAVAREA_INDEX(this); + this[NavArea_PrevOpen] = INVALID_NAV_AREA; + this[NavArea_NextOpen] = INVALID_NAV_AREA; return; } // insert self in ascending cost order - static Struct:sArea; sArea = Invalid_Struct; - static Struct:last; last = Invalid_Struct; + static iArea; iArea = INVALID_NAV_AREA; + static iLastArea; iLastArea = INVALID_NAV_AREA; - for (sArea = g_sNavAreaOpenList; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_NextOpen)) { - if (@NavArea_GetTotalCost(this) < @NavArea_GetTotalCost(sArea)) { + for (iArea = g_iNavAreaOpenList; iArea != INVALID_NAV_AREA; iArea = NAVAREA_PTR(iArea)[NavArea_NextOpen]) { + if (@NavArea_GetTotalCost(this) < @NavArea_GetTotalCost(NAVAREA_PTR(iArea))) { break; } - last = sArea; + iLastArea = iArea; } - if (sArea) { + if (iArea != INVALID_NAV_AREA) { // insert before this area - static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(sArea, NavArea_PrevOpen); - StructSetCell(this, NavArea_PrevOpen, sPrevOpenArea); - if (sPrevOpenArea != Invalid_Struct) { - StructSetCell(sPrevOpenArea, NavArea_NextOpen, this); + static iPrevOpenArea; iPrevOpenArea = NAVAREA_PTR(iArea)[NavArea_PrevOpen]; + this[NavArea_PrevOpen] = iPrevOpenArea; + + if (iPrevOpenArea != INVALID_NAV_AREA) { + NAVAREA_PTR(iPrevOpenArea)[NavArea_NextOpen] = NAVAREA_INDEX(this); } else { - g_sNavAreaOpenList = this; + g_iNavAreaOpenList = NAVAREA_INDEX(this); } - StructSetCell(this, NavArea_NextOpen, sArea); - StructSetCell(sArea, NavArea_PrevOpen, this); + this[NavArea_NextOpen] = iArea; + NAVAREA_PTR(iArea)[NavArea_PrevOpen] = NAVAREA_INDEX(this); } else { // append to end of list - StructSetCell(last, NavArea_NextOpen, this); - StructSetCell(this, NavArea_PrevOpen, last); - StructSetCell(this, NavArea_NextOpen, Invalid_Struct); + NAVAREA_PTR(iLastArea)[NavArea_NextOpen] = NAVAREA_INDEX(this); + this[NavArea_PrevOpen] = iLastArea; + this[NavArea_NextOpen] = INVALID_NAV_AREA; } } -@NavArea_UpdateOnOpenList(const &Struct:this) { +@NavArea_UpdateOnOpenList(this[NavArea]) { // since value can only decrease, bubble this area up from current spot - static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(this, NavArea_PrevOpen); - static Float:flPrevTotalCost; flPrevTotalCost = @NavArea_GetTotalCost(sPrevOpenArea); + static iPrevOpenArea; iPrevOpenArea = this[NavArea_PrevOpen]; + + while (this[NavArea_PrevOpen] != INVALID_NAV_AREA) { + if (@NavArea_GetTotalCost(this) >= @NavArea_GetTotalCost(NAVAREA_PTR(iPrevOpenArea))) break; - while (StructGetCell(this, NavArea_PrevOpen) != Invalid_Struct && @NavArea_GetTotalCost(this) < flPrevTotalCost) { // swap position with predecessor - static Struct:other; other = StructGetCell(this, NavArea_PrevOpen); - static Struct:before; before = StructGetCell(other, NavArea_PrevOpen); - static Struct:after; after = StructGetCell(this, NavArea_NextOpen); + static iOtherArea; iOtherArea = this[NavArea_PrevOpen]; + static iBeforeArea; iBeforeArea = NAVAREA_PTR(iOtherArea)[NavArea_PrevOpen]; + static iAfterArea; iAfterArea = this[NavArea_NextOpen]; - StructSetCell(this, NavArea_NextOpen, other); - StructSetCell(this, NavArea_PrevOpen, before); + this[NavArea_NextOpen] = iOtherArea; + this[NavArea_PrevOpen] = iBeforeArea; - StructSetCell(other, NavArea_PrevOpen, this); - StructSetCell(other, NavArea_NextOpen, after); + NAVAREA_PTR(iOtherArea)[NavArea_PrevOpen] = NAVAREA_INDEX(this); + NAVAREA_PTR(iOtherArea)[NavArea_NextOpen] = iAfterArea; - if (before != Invalid_Struct) { - StructSetCell(before, NavArea_NextOpen, this); + if (iBeforeArea != INVALID_NAV_AREA) { + NAVAREA_PTR(iBeforeArea)[NavArea_NextOpen] = NAVAREA_INDEX(this); } else { - g_sNavAreaOpenList = this; + g_iNavAreaOpenList = NAVAREA_INDEX(this); } - if (after != Invalid_Struct) { - StructSetCell(after, NavArea_PrevOpen, other); + if (iAfterArea != INVALID_NAV_AREA) { + NAVAREA_PTR(iAfterArea)[NavArea_PrevOpen] = iOtherArea; } } } -@NavArea_RemoveFromOpenList(const &Struct:this) { - static Struct:sPrevOpenArea; sPrevOpenArea = StructGetCell(this, NavArea_PrevOpen); - static Struct:sNextOpenArea; sNextOpenArea = StructGetCell(this, NavArea_NextOpen); +@NavArea_RemoveFromOpenList(this[NavArea]) { + static iPrevOpenArea; iPrevOpenArea = this[NavArea_PrevOpen]; + static iNextOpenArea; iNextOpenArea = this[NavArea_NextOpen]; - if (sPrevOpenArea != Invalid_Struct) { - StructSetCell(sPrevOpenArea, NavArea_NextOpen, sNextOpenArea); + if (iPrevOpenArea != INVALID_NAV_AREA) { + NAVAREA_PTR(iPrevOpenArea)[NavArea_NextOpen] = iNextOpenArea; } else { - g_sNavAreaOpenList = sNextOpenArea; + g_iNavAreaOpenList = iNextOpenArea; } - if (sNextOpenArea != Invalid_Struct) { - StructSetCell(sNextOpenArea, NavArea_PrevOpen, sPrevOpenArea); + if (iNextOpenArea != INVALID_NAV_AREA) { + NAVAREA_PTR(iNextOpenArea)[NavArea_PrevOpen] = iPrevOpenArea; } // zero is an invalid marker - StructSetCell(this, NavArea_OpenMarker, 0); + this[NavArea_OpenMarker] = 0; } -bool:@NavArea_IsOverlappingPoint(const &Struct:this, const Float:vecPoint[3]) { +bool:@NavArea_IsOverlappingPoint(const this[NavArea], const Float:vecPoint[]) { if ( - vecPoint[0] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && - vecPoint[0] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) && - vecPoint[1] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) && - vecPoint[1] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) + vecPoint[0] >= this[NavArea_Extent][Extent_Lo][0] && + vecPoint[0] <= this[NavArea_Extent][Extent_Hi][0] && + vecPoint[1] >= this[NavArea_Extent][Extent_Lo][1] && + vecPoint[1] <= this[NavArea_Extent][Extent_Hi][1] ) { return true; } @@ -1052,12 +1086,12 @@ bool:@NavArea_IsOverlappingPoint(const &Struct:this, const Float:vecPoint[3]) { } // Return true if 'area' overlaps our 2D extents -bool:@NavArea_IsOverlapping(const &Struct:this, Struct:sArea) { +bool:@NavArea_IsOverlapping(const this[NavArea], iArea) { if ( - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) < Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) && - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) > Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) < Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) && - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) > Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) + NAVAREA_PTR(iArea)[NavArea_Extent][Extent_Lo][0] < this[NavArea_Extent][Extent_Hi][0] && + NAVAREA_PTR(iArea)[NavArea_Extent][Extent_Hi][0] > this[NavArea_Extent][Extent_Lo][0] && + NAVAREA_PTR(iArea)[NavArea_Extent][Extent_Lo][1] < this[NavArea_Extent][Extent_Hi][1] && + NAVAREA_PTR(iArea)[NavArea_Extent][Extent_Hi][1] > this[NavArea_Extent][Extent_Lo][1] ) { return true; } @@ -1066,87 +1100,71 @@ bool:@NavArea_IsOverlapping(const &Struct:this, Struct:sArea) { } // Return true if given point is on or above this area, but no others -bool:@NavArea_Contains(const &Struct:this, const Float:vecPos[3]) { +bool:@NavArea_Contains(const this[NavArea], const Float:vecPos[]) { // check 2D overlap - if (!@NavArea_IsOverlappingPoint(this, vecPos)) { - return false; - } + if (!@NavArea_IsOverlappingPoint(this, vecPos)) return false; // the point overlaps us, check that it is above us, but not above any areas that overlap us new Float:flOurZ = @NavArea_GetZ(this, vecPos); // if we are above this point, fail - if (flOurZ > vecPos[2]) { - return false; - } + if (flOurZ > vecPos[2]) return false; - new Array:irgOverlapList = StructGetCell(this, NavArea_OverlapList); + new Array:irgOverlapList = this[NavArea_OverlapList]; new iOverlapListSize = ArraySize(irgOverlapList); for (new i = 0; i < iOverlapListSize; ++i) { - new Struct:sOtherArea = ArrayGetCell(irgOverlapList, i); + new iOtherArea = ArrayGetCell(irgOverlapList, i); // skip self - if (sOtherArea == this) { - continue; - } + if (iOtherArea == NAVAREA_INDEX(this)) continue; // check 2D overlap - if (!@NavArea_IsOverlappingPoint(sOtherArea, vecPos)) { - continue; - } + if (!@NavArea_IsOverlappingPoint(NAVAREA_PTR(iOtherArea), vecPos)) continue; - new Float:flTheirZ = @NavArea_GetZ(sOtherArea, vecPos); - if (flTheirZ > vecPos[2]) { - // they are above the point - continue; - } + new Float:flTheirZ = @NavArea_GetZ(NAVAREA_PTR(iOtherArea), vecPos); + if (flTheirZ > vecPos[2]) continue; - if (flTheirZ > flOurZ) { - // we are below an area that is closer underneath the point - return false; - } + if (flTheirZ > flOurZ) return false; } return true; } // Return true if this area and given area are approximately co-planar -bool:@NavArea_IsCoplanar(const &Struct:this, Struct:sArea) { +bool:@NavArea_IsCoplanar(const this[NavArea], iArea) { static Float:u[3]; static Float:v[3]; // compute our unit surface normal - u[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + u[0] = this[NavArea_Extent][Extent_Hi][0] - this[NavArea_Extent][Extent_Lo][0]; u[1] = 0.0; - u[2] = Float:StructGetCell(this, NavArea_NeZ) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2); + u[2] = this[NavArea_NeZ] - this[NavArea_Extent][Extent_Lo][2]; v[0] = 0.0; - v[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - v[2] = Float:StructGetCell(this, NavArea_SwZ) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2); + v[1] = this[NavArea_Extent][Extent_Hi][1] - this[NavArea_Extent][Extent_Lo][1]; + v[2] = this[NavArea_SwZ] - this[NavArea_Extent][Extent_Lo][2]; static Float:vecNormal[3]; xs_vec_cross(u, v, vecNormal); NormalizeInPlace(vecNormal, vecNormal); // compute their unit surface normal - u[0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0); + u[0] = NAVAREA_PTR(iArea)[NavArea_Extent][Extent_Hi][0] - NAVAREA_PTR(iArea)[NavArea_Extent][Extent_Lo][0]; u[1] = 0.0; - u[2] = Float:StructGetCell(sArea, NavArea_NeZ) - StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 2); + u[2] = NAVAREA_PTR(iArea)[NavArea_NeZ] - NAVAREA_PTR(iArea)[NavArea_Extent][Extent_Lo][2]; v[0] = 0.0; - v[1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1); - v[2] = Float:StructGetCell(sArea, NavArea_SwZ) - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 2); + v[1] = NAVAREA_PTR(iArea)[NavArea_Extent][Extent_Hi][1] - NAVAREA_PTR(iArea)[NavArea_Extent][Extent_Lo][1]; + v[2] = NAVAREA_PTR(iArea)[NavArea_SwZ] - NAVAREA_PTR(iArea)[NavArea_Extent][Extent_Lo][2]; static Float:vecOtherNormal[3]; xs_vec_cross(u, v, vecOtherNormal); NormalizeInPlace(vecOtherNormal, vecOtherNormal); // can only merge areas that are nearly planar, to ensure areas do not differ from underlying geometry much - new Float:flTolerance = 0.99; - if (xs_vec_dot(vecNormal, vecOtherNormal) > flTolerance) { - return true; - } + static const Float:flTolerance = 0.99; + if (xs_vec_dot(vecNormal, vecOtherNormal) > flTolerance) return true; return false; } @@ -1154,71 +1172,67 @@ bool:@NavArea_IsCoplanar(const &Struct:this, Struct:sArea) { // Return Z of area at (x,y) of 'vecPos' // Trilinear interpolation of Z values at quad edges. // NOTE: vecPos[2] is not used. -Float:@NavArea_GetZ(const &Struct:this, const Float:vecPos[]) { - static Float:dx; dx = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - static Float:dy; dy = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1) - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); +Float:@NavArea_GetZ(const this[NavArea], const Float:vecPos[]) { + static Float:dx; dx = this[NavArea_Extent][Extent_Hi][0] - this[NavArea_Extent][Extent_Lo][0]; + static Float:dy; dy = this[NavArea_Extent][Extent_Hi][1] - this[NavArea_Extent][Extent_Lo][1]; - static Float:flNeZ; flNeZ = StructGetCell(this, NavArea_NeZ); - static Float:flSwZ; flSwZ = StructGetCell(this, NavArea_SwZ); + static Float:flNeZ; flNeZ = this[NavArea_NeZ]; + static Float:flSwZ; flSwZ = this[NavArea_SwZ]; // guard against division by zero due to degenerate areas - if (dx == 0.0 || dy == 0.0) { - return flNeZ; - } + if (dx == 0.0 || dy == 0.0) return flNeZ; - static Float:u; u = floatclamp((vecPos[0] - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) / dx, 0.0, 1.0); - static Float:v; v = floatclamp((vecPos[1] - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) / dy, 0.0, 1.0); + static Float:u; u = floatclamp((vecPos[0] - this[NavArea_Extent][Extent_Lo][0]) / dx, 0.0, 1.0); + static Float:v; v = floatclamp((vecPos[1] - this[NavArea_Extent][Extent_Lo][1]) / dy, 0.0, 1.0); - static Float:northZ; northZ = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2) + u * (flNeZ - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 2)); - static Float:southZ; southZ = flSwZ + u * (Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 2) - flSwZ); + static Float:northZ; northZ = this[NavArea_Extent][Extent_Lo][2] + u * (flNeZ - this[NavArea_Extent][Extent_Lo][2]); + static Float:southZ; southZ = flSwZ + u * (this[NavArea_Extent][Extent_Hi][2] - flSwZ); return northZ + v * (southZ - northZ); } -// new Float:@NavArea_GetZ(const &Struct:this, new Float:x, new Float:y) { +// new Float:@NavArea_GetZ(const this[NavArea], new Float:x, new Float:y) { // static Float:vecPos[3](x, y, 0.0); // return GetZ(&vecPos); // } // Return closest point to 'vecPos' on 'area'. // Returned point is in 'vecClose'. -@NavArea_GetClosestPointOnArea(const &Struct:this, const Float:vecPos[], Float:vecClose[]) { - static rgExtent[Extent]; StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); - - if (vecPos[0] < rgExtent[Extent_Lo][0]) { - if (vecPos[1] < rgExtent[Extent_Lo][1]) { +@NavArea_GetClosestPointOnArea(const this[NavArea], const Float:vecPos[], Float:vecClose[]) { + if (vecPos[0] < this[NavArea_Extent][Extent_Lo][0]) { + if (vecPos[1] < this[NavArea_Extent][Extent_Lo][1]) { // position is north-west of area - xs_vec_copy(rgExtent[Extent_Lo], vecClose); - } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + xs_vec_copy(this[NavArea_Extent][Extent_Lo], vecClose); + } else if (vecPos[1] > this[NavArea_Extent][Extent_Hi][1]) { // position is south-west of area - vecClose[0] = rgExtent[Extent_Lo][0]; - vecClose[1] = rgExtent[Extent_Hi][1]; + vecClose[0] = this[NavArea_Extent][Extent_Lo][0]; + vecClose[1] = this[NavArea_Extent][Extent_Hi][1]; } else { // position is west of area - vecClose[0] = rgExtent[Extent_Lo][0]; + vecClose[0] = this[NavArea_Extent][Extent_Lo][0]; vecClose[1] = vecPos[1]; } - } else if (vecPos[0] > rgExtent[Extent_Hi][0]) { - if (vecPos[1] < rgExtent[Extent_Lo][1]) { + } else if (vecPos[0] > this[NavArea_Extent][Extent_Hi][0]) { + if (vecPos[1] < this[NavArea_Extent][Extent_Lo][1]) { // position is north-east of area - vecClose[0] = rgExtent[Extent_Hi][0]; - vecClose[1] = rgExtent[Extent_Lo][1]; - } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + vecClose[0] = this[NavArea_Extent][Extent_Hi][0]; + vecClose[1] = this[NavArea_Extent][Extent_Lo][1]; + } else if (vecPos[1] > this[NavArea_Extent][Extent_Hi][1]) { // position is south-east of area - xs_vec_copy(rgExtent[Extent_Hi], vecClose); + xs_vec_copy(this[NavArea_Extent][Extent_Hi], vecClose); } else { // position is east of area - vecClose[0] = rgExtent[Extent_Hi][0]; + vecClose[0] = this[NavArea_Extent][Extent_Hi][0]; vecClose[1] = vecPos[1]; } - } else if (vecPos[1] < rgExtent[Extent_Lo][1]) { + } else if (vecPos[1] < this[NavArea_Extent][Extent_Lo][1]) { // position is north of area vecClose[0] = vecPos[0]; - vecClose[1] = rgExtent[Extent_Lo][1]; - } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + vecClose[1] = this[NavArea_Extent][Extent_Lo][1]; + } else if (vecPos[1] > this[NavArea_Extent][Extent_Hi][1]) { // position is south of area vecClose[0] = vecPos[0]; - vecClose[1] = rgExtent[Extent_Hi][1]; + vecClose[1] = this[NavArea_Extent][Extent_Hi][1]; } else { // position is inside of area - it is the 'closest point' to itself xs_vec_copy(vecPos, vecClose); @@ -1228,57 +1242,55 @@ Float:@NavArea_GetZ(const &Struct:this, const Float:vecPos[]) { } // Return shortest distance squared between point and this area -Float:@NavArea_GetDistanceSquaredToPoint(const &Struct:this, const Float:vecPos[3]) { - static rgExtent[Extent]; StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); - - if (vecPos[0] < rgExtent[Extent_Lo][0]) { - if (vecPos[1] < rgExtent[Extent_Lo][1]) { +Float:@NavArea_GetDistanceSquaredToPoint(const this[NavArea], const Float:vecPos[]) { + if (vecPos[0] < this[NavArea_Extent][Extent_Lo][0]) { + if (vecPos[1] < this[NavArea_Extent][Extent_Lo][1]) { // position is north-west of area - return floatpower(xs_vec_distance(rgExtent[Extent_Lo], vecPos), 2.0); - } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { - new Float:flSwZ = StructGetCell(this, NavArea_SwZ); + return floatpower(xs_vec_distance(this[NavArea_Extent][Extent_Lo], vecPos), 2.0); + } else if (vecPos[1] > this[NavArea_Extent][Extent_Hi][1]) { + new Float:flSwZ = this[NavArea_SwZ]; // position is south-west of area static Float:d[3]; - d[0] = rgExtent[Extent_Lo][0] - vecPos[0]; - d[1] = rgExtent[Extent_Hi][1] - vecPos[1]; + d[0] = this[NavArea_Extent][Extent_Lo][0] - vecPos[0]; + d[1] = this[NavArea_Extent][Extent_Hi][1] - vecPos[1]; d[2] = flSwZ - vecPos[2]; return floatpower(xs_vec_len(d), 2.0); } else { // position is west of area - new Float:d = rgExtent[Extent_Lo][0] - vecPos[0]; + new Float:d = this[NavArea_Extent][Extent_Lo][0] - vecPos[0]; return d * d; } - } else if (vecPos[0] > rgExtent[Extent_Hi][0]) { - if (vecPos[1] < rgExtent[Extent_Lo][1]) { - new Float:flNeZ = StructGetCell(this, NavArea_NeZ); + } else if (vecPos[0] > this[NavArea_Extent][Extent_Hi][0]) { + if (vecPos[1] < this[NavArea_Extent][Extent_Lo][1]) { + new Float:flNeZ = this[NavArea_NeZ]; // position is north-east of area static Float:d[3]; - d[0] = rgExtent[Extent_Hi][0] - vecPos[0]; - d[1] = rgExtent[Extent_Lo][1] - vecPos[1]; + d[0] = this[NavArea_Extent][Extent_Hi][0] - vecPos[0]; + d[1] = this[NavArea_Extent][Extent_Lo][1] - vecPos[1]; d[2] = flNeZ - vecPos[2]; return floatpower(xs_vec_len(d), 2.0); - } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + } else if (vecPos[1] > this[NavArea_Extent][Extent_Hi][1]) { // position is south-east of area - return floatpower(xs_vec_distance(rgExtent[Extent_Hi], vecPos), 2.0); + return floatpower(xs_vec_distance(this[NavArea_Extent][Extent_Hi], vecPos), 2.0); } else { // position is east of area - new Float:d = vecPos[2] - rgExtent[Extent_Hi][0]; + new Float:d = vecPos[2] - this[NavArea_Extent][Extent_Hi][0]; return d * d; } - } else if (vecPos[1] < rgExtent[Extent_Lo][1]) { + } else if (vecPos[1] < this[NavArea_Extent][Extent_Lo][1]) { // position is north of area - new Float:d = rgExtent[Extent_Lo][1] - vecPos[1]; + new Float:d = this[NavArea_Extent][Extent_Lo][1] - vecPos[1]; return d * d; - } else if (vecPos[1] > rgExtent[Extent_Hi][1]) { + } else if (vecPos[1] > this[NavArea_Extent][Extent_Hi][1]) { // position is south of area - new Float:d = vecPos[1] - rgExtent[Extent_Hi][1]; + new Float:d = vecPos[1] - this[NavArea_Extent][Extent_Hi][1]; return d * d; } else { // position is inside of 2D extent of area - find delta Z @@ -1289,15 +1301,13 @@ Float:@NavArea_GetDistanceSquaredToPoint(const &Struct:this, const Float:vecPos[ } } -Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { - new Array:irgConnections = StructGetCell(this, NavArea_Connect, iDir); +@NavArea_GetRandomAdjacentArea(const this[NavArea], NavDirType:iDir) { + static Array:irgConnections; irgConnections = this[NavArea_Connect][iDir]; - new iConnectionCount = ArraySize(irgConnections); - if (!iConnectionCount) { - return Invalid_Struct; - } + static iConnectionCount; iConnectionCount = ArraySize(irgConnections); + if (!iConnectionCount) return INVALID_NAV_AREA; - new iWhich = random(iConnectionCount); + static iWhich; iWhich = random(iConnectionCount); return ArrayGetCell(irgConnections, iWhich, _:NavConnect_Area); } @@ -1305,67 +1315,67 @@ Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { // Compute "portal" between to adjacent areas. // Return center of portal opening, and half-width defining sides of portal from center. // NOTE: center[2] is unset. -@NavArea_ComputePortal(const &Struct:this, Struct:sArea, NavDirType:iDir, Float:vecCenter[], &Float:flHalfWidth) { +@NavArea_ComputePortal(const this[NavArea], const other[NavArea], NavDirType:iDir, Float:vecCenter[], &Float:flHalfWidth) { if (iDir == NORTH || iDir == SOUTH) { if (iDir == NORTH) { - vecCenter[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + vecCenter[1] = this[NavArea_Extent][Extent_Lo][1]; } else { - vecCenter[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + vecCenter[1] = this[NavArea_Extent][Extent_Hi][1]; } new Float:flLeft = floatmax( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) + this[NavArea_Extent][Extent_Lo][0], + other[NavArea_Extent][Extent_Lo][0] ); new Float:flRight = floatmin( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) + this[NavArea_Extent][Extent_Hi][0], + other[NavArea_Extent][Extent_Hi][0] ); // clamp to our extent in case areas are disjoint - if (flLeft < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { - flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - } else if (flLeft > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { - flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + if (flLeft < this[NavArea_Extent][Extent_Lo][0]) { + flLeft = this[NavArea_Extent][Extent_Lo][0]; + } else if (flLeft > this[NavArea_Extent][Extent_Hi][0]) { + flLeft = this[NavArea_Extent][Extent_Hi][0]; } - if (flRight < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { - flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - } else if (flRight > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { - flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + if (flRight < this[NavArea_Extent][Extent_Lo][0]) { + flRight = this[NavArea_Extent][Extent_Lo][0]; + } else if (flRight > this[NavArea_Extent][Extent_Hi][0]) { + flRight = this[NavArea_Extent][Extent_Hi][0]; } vecCenter[0] = (flLeft + flRight) / 2.0; flHalfWidth = (flRight - flLeft) / 2.0; } else { // EAST or WEST if (iDir == WEST) { - vecCenter[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + vecCenter[0] = this[NavArea_Extent][Extent_Lo][0]; } else { - vecCenter[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + vecCenter[0] = this[NavArea_Extent][Extent_Hi][0]; } new Float:flTop = floatmax( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) + this[NavArea_Extent][Extent_Lo][1], + other[NavArea_Extent][Extent_Lo][1] ); new Float:flBottom = floatmin( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) + this[NavArea_Extent][Extent_Hi][1], + other[NavArea_Extent][Extent_Hi][1] ); // clamp to our extent in case areas are disjoint - if (flTop < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { - flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - } else if (flTop > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { - flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + if (flTop < this[NavArea_Extent][Extent_Lo][1]) { + flTop = this[NavArea_Extent][Extent_Lo][1]; + } else if (flTop > this[NavArea_Extent][Extent_Hi][1]) { + flTop = this[NavArea_Extent][Extent_Hi][1]; } - if (flBottom < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { - flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - } else if (flBottom > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { - flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + if (flBottom < this[NavArea_Extent][Extent_Lo][1]) { + flBottom = this[NavArea_Extent][Extent_Lo][1]; + } else if (flBottom > this[NavArea_Extent][Extent_Hi][1]) { + flBottom = this[NavArea_Extent][Extent_Hi][1]; } vecCenter[1] = (flTop + flBottom) / 2.0; @@ -1374,42 +1384,42 @@ Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { } // Compute closest point within the "portal" between to adjacent areas. -@NavArea_ComputeClosestPointInPortal(const &Struct:this, Struct:sArea, NavDirType:iDir, const Float:vecFromPos[3], Float:vecClosePos[3]) { +@NavArea_ComputeClosestPointInPortal(const this[NavArea], const area[NavArea], NavDirType:iDir, const Float:vecFromPos[], Float:vecClosePos[]) { static Float:flMargin; flMargin = GenerationStepSize / 2.0; if (iDir == NORTH || iDir == SOUTH) { if (iDir == NORTH) { - vecClosePos[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); + vecClosePos[1] = this[NavArea_Extent][Extent_Lo][1]; } else { - vecClosePos[1] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + vecClosePos[1] = this[NavArea_Extent][Extent_Hi][1]; } static Float:flLeft; flLeft = floatmax( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) + this[NavArea_Extent][Extent_Lo][0], + area[NavArea_Extent][Extent_Lo][0] ); static Float:flRight; flRight = floatmin( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) + this[NavArea_Extent][Extent_Hi][0], + area[NavArea_Extent][Extent_Hi][0] ); // clamp to our extent in case areas are disjoint - if (flLeft < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { - flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - } else if (flLeft > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { - flLeft = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + if (flLeft < this[NavArea_Extent][Extent_Lo][0]) { + flLeft = this[NavArea_Extent][Extent_Lo][0]; + } else if (flLeft > this[NavArea_Extent][Extent_Hi][0]) { + flLeft = this[NavArea_Extent][Extent_Hi][0]; } - if (flRight < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { - flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); - } else if (flRight > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { - flRight = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + if (flRight < this[NavArea_Extent][Extent_Lo][0]) { + flRight = this[NavArea_Extent][Extent_Lo][0]; + } else if (flRight > this[NavArea_Extent][Extent_Hi][0]) { + flRight = this[NavArea_Extent][Extent_Hi][0]; } // keep margin if against edge - static Float:flLeftMargin; flLeftMargin = (@NavArea_IsEdge(sArea, WEST)) ? (flLeft + flMargin) : flLeft; - static Float:flRightMargin; flRightMargin = (@NavArea_IsEdge(sArea, EAST)) ? (flRight - flMargin) : flRight; + static Float:flLeftMargin; flLeftMargin = (@NavArea_IsEdge(area, WEST)) ? (flLeft + flMargin) : flLeft; + static Float:flRightMargin; flRightMargin = (@NavArea_IsEdge(area, EAST)) ? (flRight - flMargin) : flRight; // limit x to within portal if (vecFromPos[0] < flLeftMargin) { @@ -1422,37 +1432,37 @@ Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { } else { // EAST or WEST if (iDir == WEST) { - vecClosePos[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0); + vecClosePos[0] = this[NavArea_Extent][Extent_Lo][0]; } else { - vecClosePos[0] = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0); + vecClosePos[0] = this[NavArea_Extent][Extent_Hi][0]; } static Float:flTop; flTop = floatmax( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) + this[NavArea_Extent][Extent_Lo][1], + area[NavArea_Extent][Extent_Lo][1] ); static Float:flBottom; flBottom = floatmin( - Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1), - Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) + this[NavArea_Extent][Extent_Hi][1], + area[NavArea_Extent][Extent_Hi][1] ); // clamp to our extent in case areas are disjoint - if (flTop < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { - flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - } else if (flTop > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { - flTop = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + if (flTop < this[NavArea_Extent][Extent_Lo][1]) { + flTop = this[NavArea_Extent][Extent_Lo][1]; + } else if (flTop > this[NavArea_Extent][Extent_Hi][1]) { + flTop = this[NavArea_Extent][Extent_Hi][1]; } - if (flBottom < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { - flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1); - } else if (flBottom > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { - flBottom = Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1); + if (flBottom < this[NavArea_Extent][Extent_Lo][1]) { + flBottom = this[NavArea_Extent][Extent_Lo][1]; + } else if (flBottom > this[NavArea_Extent][Extent_Hi][1]) { + flBottom = this[NavArea_Extent][Extent_Hi][1]; } // keep margin if against edge - static Float:flTopMargin; flTopMargin = (@NavArea_IsEdge(sArea, NORTH)) ? (flTop + flMargin) : flTop; - static Float:flBottomMargin; flBottomMargin = (@NavArea_IsEdge(sArea, SOUTH)) ? (flBottom - flMargin) : flBottom; + static Float:flTopMargin; flTopMargin = (@NavArea_IsEdge(area, NORTH)) ? (flTop + flMargin) : flTop; + static Float:flBottomMargin; flBottomMargin = (@NavArea_IsEdge(area, SOUTH)) ? (flBottom - flMargin) : flBottom; // limit y to within portal if (vecFromPos[1] < flTopMargin) { @@ -1466,13 +1476,13 @@ Struct:@NavArea_GetRandomAdjacentArea(const &Struct:this, NavDirType:iDir) { } // Return true if there are no bi-directional links on the given side -bool:@NavArea_IsEdge(const &Struct:this, NavDirType:iDir) { - static Array:irgConnections; irgConnections = StructGetCell(this, NavArea_Connect, iDir); +bool:@NavArea_IsEdge(const this[NavArea], NavDirType:iDir) { + static Array:irgConnections; irgConnections = this[NavArea_Connect][iDir]; static iConnectionCount; iConnectionCount = ArraySize(irgConnections); for (new i = 0; i < iConnectionCount; ++i) { - static Struct:sConnectArea; sConnectArea = ArrayGetCell(irgConnections, i, _:NavConnect_Area); - if (@NavArea_IsConnected(sConnectArea, this, OppositeDirection(iDir))) { + static iConnectArea; iConnectArea = ArrayGetCell(irgConnections, i, _:NavConnect_Area); + if (@NavArea_IsConnected(NAVAREA_PTR(iConnectArea), this, OppositeDirection(iDir))) { return false; } } @@ -1480,49 +1490,54 @@ bool:@NavArea_IsEdge(const &Struct:this, NavDirType:iDir) { return true; } -bool:@NavArea_IsConnected(const &Struct:this, Struct:sArea, NavDirType:iDir) { +bool:@NavArea_IsConnected(const this[NavArea], const area[NavArea], NavDirType:iDir) { // we are connected to ourself - if (sArea == this) return true; + if (NAVAREA_INDEX(area) == NAVAREA_INDEX(this)) return true; + + static iArea; iArea = NAVAREA_INDEX(area); if (iDir == NUM_DIRECTIONS) { // search all directions - for (new iDir = 0; iDir < _:NUM_DIRECTIONS; iDir++) { - if (@NavArea_IsConnected(this, sArea, NavDirType:iDir)) { + for (new NavDirType:iDir = NORTH; iDir < NUM_DIRECTIONS; ++iDir) { + if (@NavArea_IsConnected(this, area, iDir)) { return true; } } // check ladder connections { - static Array:irgLadderList; irgLadderList = StructGetCell(this, NavArea_Ladder, LADDER_UP); + static Array:irgLadderList; irgLadderList = @NavArea_GetLadder(this, LADDER_UP); static iListSize; iListSize = ArraySize(irgLadderList); - for (new i = 0; i < iListSize; ++i) { - static rgNavLadder[NavLadder]; ArrayGetArray(irgLadderList, i, rgNavLadder[any:0]); - if (rgNavLadder[NavLadder_TopBehindArea] == sArea || rgNavLadder[NavLadder_TopForwardArea] == sArea || rgNavLadder[NavLadder_TopLeftArea] == sArea || rgNavLadder[NavLadder_TopRightArea] == sArea) { + for (new iLadder = 0; iLadder < iListSize; ++iLadder) { + if ( + ArrayGetCell(irgLadderList, iLadder, _:NavLadder_TopBehindArea) == iArea || + ArrayGetCell(irgLadderList, iLadder, _:NavLadder_TopForwardArea) == iArea || + ArrayGetCell(irgLadderList, iLadder, _:NavLadder_TopLeftArea) == iArea || + ArrayGetCell(irgLadderList, iLadder, _:NavLadder_TopRightArea) == iArea + ) { return true; } } } { - static Array:irgLadderList; irgLadderList = StructGetCell(this, NavArea_Ladder, LADDER_DOWN); + static Array:irgLadderList; irgLadderList = @NavArea_GetLadder(this, LADDER_DOWN); static iListSize; iListSize = ArraySize(irgLadderList); - for (new i = 0; i < iListSize; ++i) { - static rgNavLadder[NavLadder]; ArrayGetArray(irgLadderList, i, rgNavLadder[any:0]); - if (rgNavLadder[NavLadder_BottomArea] == sArea) { + for (new iLadder = 0; iLadder < iListSize; ++iLadder) { + if (ArrayGetCell(irgLadderList, iLadder, _:NavLadder_BottomArea) == iArea) { return true; } } } } else { // check specific direction - static Array:irgConnections; irgConnections = StructGetCell(this, NavArea_Connect, iDir); + static Array:irgConnections; irgConnections = this[NavArea_Connect][iDir]; static iConnectionCount; iConnectionCount = ArraySize(irgConnections); - for (new i = 0; i < iConnectionCount; ++i) { - if (sArea == ArrayGetCell(irgConnections, i, _:NavConnect_Area)) { + for (new iConnection = 0; iConnection < iConnectionCount; ++iConnection) { + if (NAVAREA_INDEX(area) == ArrayGetCell(irgConnections, iConnection, _:NavConnect_Area)) { return true; } } @@ -1532,17 +1547,17 @@ bool:@NavArea_IsConnected(const &Struct:this, Struct:sArea, NavDirType:iDir) { } // Return direction from this area to the given point -NavDirType:@NavArea_ComputeDirection(const &Struct:this, const Float:vecPoint[3]) { - if (vecPoint[0] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0) && vecPoint[0] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { - if (vecPoint[1] < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1)) { +NavDirType:@NavArea_ComputeDirection(const this[NavArea], const Float:vecPoint[]) { + if (vecPoint[0] >= this[NavArea_Extent][Extent_Lo][0] && vecPoint[0] <= this[NavArea_Extent][Extent_Hi][0]) { + if (vecPoint[1] < this[NavArea_Extent][Extent_Lo][1]) { return NORTH; - } else if (vecPoint[1] > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { + } else if (vecPoint[1] > this[NavArea_Extent][Extent_Hi][1]) { return SOUTH; } - } else if (vecPoint[1] >= Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 1) && vecPoint[1] <= Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 1)) { - if (vecPoint[0] < Float:StructGetCell(this, NavArea_Extent, _:Extent_Lo + 0)) { + } else if (vecPoint[1] >= this[NavArea_Extent][Extent_Lo][1] && vecPoint[1] <= this[NavArea_Extent][Extent_Hi][1]) { + if (vecPoint[0] < this[NavArea_Extent][Extent_Lo][0]) { return WEST; - } else if (vecPoint[0] > Float:StructGetCell(this, NavArea_Extent, _:Extent_Hi + 0)) { + } else if (vecPoint[0] > this[NavArea_Extent][Extent_Hi][0]) { return EAST; } } @@ -1559,121 +1574,98 @@ NavDirType:@NavArea_ComputeDirection(const &Struct:this, const Float:vecPoint[3] } } -@NavArea_GetCorner(const &Struct:this, NavCornerType:corner, Float:vecOut[3]) { - static rgExtent[Extent]; StructGetArray(this, NavArea_Extent, rgExtent, sizeof(rgExtent)); - +@NavArea_GetCorner(const this[NavArea], NavCornerType:corner, Float:vecOut[]) { switch (corner) { case NORTH_WEST: { - xs_vec_copy(rgExtent[Extent_Lo], vecOut); + xs_vec_copy(this[NavArea_Extent][Extent_Lo], vecOut); } case NORTH_EAST: { - vecOut[0] = rgExtent[Extent_Hi][0]; - vecOut[1] = rgExtent[Extent_Lo][1]; - vecOut[2] = StructGetCell(this, NavArea_NeZ); + vecOut[0] = this[NavArea_Extent][Extent_Hi][0]; + vecOut[1] = this[NavArea_Extent][Extent_Lo][1]; + vecOut[2] = this[NavArea_NeZ]; } case SOUTH_WEST: { - vecOut[0] = rgExtent[Extent_Lo][0]; - vecOut[1] = rgExtent[Extent_Hi][1]; - vecOut[2] = StructGetCell(this, NavArea_SwZ); + vecOut[0] = this[NavArea_Extent][Extent_Lo][0]; + vecOut[1] = this[NavArea_Extent][Extent_Hi][1]; + vecOut[2] = this[NavArea_SwZ]; } case SOUTH_EAST: { - xs_vec_copy(rgExtent[Extent_Hi], vecOut); + xs_vec_copy(this[NavArea_Extent][Extent_Hi], vecOut); } } } -Struct:@NavLadder_Create() { - new Struct:this = StructCreate(NavLadder); - - return this; -} - -@NavLadder_Destroy(&Struct:this) { - StructDestroy(this); +Array:@NavArea_GetLadder(const this[NavArea], LadderDirectionType:iDir) { + return Array:this[NavArea_Ladder][iDir]; } Struct:@NavPath_Create() { - new Struct:this = StructCreate(NavPath); - StructSetCell(this, NavPath_Segments, ArrayCreate()); + static Struct:this; this = StructCreate(NavPath); + StructSetCell(this, NavPath_Segments, ArrayCreate(_:PathSegment)); return this; } @NavPath_Destroy(&Struct:this) { - new Array:irgSegments = StructGetCell(this, NavPath_Segments); - new iPathSize = ArraySize(irgSegments); - - for (new i = 0; i < iPathSize; ++i) { - new Struct:sSegment = ArrayGetCell(irgSegments, i); - StructDestroy(sSegment); - } - - ArrayDestroy(irgSegments); StructDestroy(this); } // Build trivial path when start and goal are in the same nav area -bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[3], const Float:vecGoal[3]) { - new Array:irgSegments = StructGetCell(this, NavPath_Segments); +bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[], const Float:vecGoal[]) { + static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); ArrayClear(irgSegments); StructSetCell(this, NavPath_SegmentCount, 0); - new Struct:sStartArea = NavAreaGrid_GetNearestNavArea(vecStart, false, nullptr); - if (sStartArea == Invalid_Struct) return false; + static iStartArea; iStartArea = NavAreaGrid_GetNearestNavArea(vecStart, false, nullptr); + if (iStartArea == INVALID_NAV_AREA) return false; - new Struct:sGoalArea = NavAreaGrid_GetNearestNavArea(vecGoal, false, nullptr); - if (sGoalArea == Invalid_Struct) return false; + static iGoalArea; iGoalArea = NavAreaGrid_GetNearestNavArea(vecGoal, false, nullptr); + if (iGoalArea == INVALID_NAV_AREA) return false; - new Struct:sStartSegment = @PathSegment_Create(); - StructSetCell(sStartSegment, PathSegment_Area, sStartArea); - StructSetArray(sStartSegment, PathSegment_Pos, vecStart, sizeof(vecStart)); - StructSetCell(sStartSegment, PathSegment_Pos, @NavArea_GetZ(sStartArea, vecStart), 2); - StructSetCell(sStartSegment, PathSegment_How, NUM_TRAVERSE_TYPES); - @NavPath_PushSegment(this, sStartSegment); + static rgStartSegment[PathSegment]; + rgStartSegment[PathSegment_Area] = iStartArea; + rgStartSegment[PathSegment_How] = NUM_TRAVERSE_TYPES; + xs_vec_set(rgStartSegment[PathSegment_Pos], vecStart[0], vecStart[1], @NavArea_GetZ(NAVAREA_PTR(iStartArea), vecStart)); + @NavPath_PushSegment(this, rgStartSegment); - new Struct:sGoalSegment = @PathSegment_Create(); - StructSetCell(sGoalSegment, PathSegment_Area, sGoalArea); - StructSetArray(sGoalSegment, PathSegment_Pos, vecGoal, sizeof(vecGoal)); - StructSetCell(sGoalSegment, PathSegment_Pos, @NavArea_GetZ(sGoalArea, vecGoal), 2); - StructSetCell(sGoalSegment, PathSegment_How, NUM_TRAVERSE_TYPES); - @NavPath_PushSegment(this, sGoalSegment); + static rgGoalSegment[PathSegment]; + rgGoalSegment[PathSegment_Area] = iGoalArea; + rgGoalSegment[PathSegment_How] = NUM_TRAVERSE_TYPES; + xs_vec_set(rgGoalSegment[PathSegment_Pos], vecGoal[0], vecGoal[1], @NavArea_GetZ(NAVAREA_PTR(iGoalArea), vecGoal)); + @NavPath_PushSegment(this, rgGoalSegment); return true; } -@NavPath_PushSegment(const &Struct:this, Struct:sSegment) { - ArrayPushCell(StructGetCell(this, NavPath_Segments), sSegment); +@NavPath_PushSegment(const &Struct:this, const segment[PathSegment]) { + ArrayPushArray(StructGetCell(this, NavPath_Segments), segment[any:0]); StructSetCell(this, NavPath_SegmentCount, StructGetCell(this, NavPath_SegmentCount) + 1); } @NavPath_ComputePathPositions(const &Struct:this) { - if (!StructGetCell(this, NavPath_SegmentCount)) return false; + static iSegmentsNum; iSegmentsNum = StructGetCell(this, NavPath_SegmentCount); + if (!iSegmentsNum) return false; static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); - static Struct:sStartSegment; sStartSegment = ArrayGetCell(irgSegments, 0); - static Struct:sStartArea; sStartArea = StructGetCell(sStartSegment, PathSegment_Area); + static iStartArea; iStartArea = ArrayGetCell(irgSegments, 0, _:PathSegment_Area); // start in first area's center - static Float:vecStart[3]; @NavArea_GetCenter(sStartArea, vecStart); - - StructSetArray(sStartSegment, PathSegment_Pos, vecStart, sizeof(vecStart)); - StructSetCell(sStartSegment, PathSegment_How, NUM_TRAVERSE_TYPES); + ArraySetArray2(irgSegments, 0, NAVAREA_PTR(iStartArea)[NavArea_Center], 3, PathSegment_Pos); + ArraySetCell(irgSegments, 0, NUM_TRAVERSE_TYPES, _:PathSegment_How); - for (new i = 1; i < StructGetCell(this, NavPath_SegmentCount); i++) { - static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); - static Struct:sFromArea; sFromArea = StructGetCell(sFromSegment, PathSegment_Area); - static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); - static Struct:sToArea; sToArea = StructGetCell(sToSegment, PathSegment_Area); - - static Float:vecFromPos[3]; StructGetArray(sFromSegment, PathSegment_Pos, vecFromPos, sizeof(vecFromPos)); - static Float:vecToPos[3]; StructGetArray(sToSegment, PathSegment_Pos, vecToPos, sizeof(vecToPos)); + for (new iSegment = 1; iSegment < iSegmentsNum; iSegment++) { + static iFromArea; iFromArea = ArrayGetCell(irgSegments, iSegment - 1, _:PathSegment_Area); + static iToArea; iToArea = ArrayGetCell(irgSegments, iSegment, _:PathSegment_Area); // walk along the floor to the next area - static NavTraverseType:toHow; toHow = StructGetCell(sToSegment, PathSegment_How); + static NavTraverseType:toHow; toHow = ArrayGetCell(irgSegments, iSegment, _:PathSegment_How); if (toHow <= GO_WEST) { + static Float:vecFromPos[3]; ArrayGetArray2(irgSegments, iSegment - 1, vecFromPos, 3, PathSegment_Pos); + static Float:vecToPos[3]; ArrayGetArray2(irgSegments, iSegment, vecToPos, 3, PathSegment_Pos); + // compute next point, keeping path as straight as possible - @NavArea_ComputeClosestPointInPortal(sFromArea, sToArea, NavDirType:toHow, vecFromPos, vecToPos); + @NavArea_ComputeClosestPointInPortal(NAVAREA_PTR(iFromArea), NAVAREA_PTR(iToArea), NavDirType:toHow, vecFromPos, vecToPos); // move goal position into the goal area a bit // how far to "step into" an area - must be less than min area size @@ -1681,57 +1673,57 @@ bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[3], cons AddDirectionVector(vecToPos, NavDirType:toHow, flStepInDist); // we need to walk out of "from" area, so keep Z where we can reach it - vecToPos[2] = @NavArea_GetZ(sFromArea, vecToPos); + vecToPos[2] = @NavArea_GetZ(NAVAREA_PTR(iFromArea), vecToPos); - StructSetArray(sToSegment, PathSegment_Pos, vecToPos, sizeof(vecToPos)); + ArraySetArray2(irgSegments, iSegment, vecToPos, 3, PathSegment_Pos); // if this is a "jump down" connection, we must insert an additional point on the path - if (!@NavArea_IsConnected(sToArea, sFromArea, NUM_DIRECTIONS)) { + if (!@NavArea_IsConnected(NAVAREA_PTR(iToArea), NAVAREA_PTR(iFromArea), NUM_DIRECTIONS)) { // this is a "jump down" link // compute direction of path just prior to "jump down" static Float:flDir[2]; DirectionToVector2D(NavDirType:toHow, flDir); // shift top of "jump down" out a bit to "get over the ledge" static const Float:flPushDist = 25.0; - StructSetCell(sToSegment, PathSegment_Pos, Float:StructGetCell(sToSegment, PathSegment_Pos, 0) + (flPushDist * flDir[0]), 0); - StructSetCell(sToSegment, PathSegment_Pos, Float:StructGetCell(sToSegment, PathSegment_Pos, 1) + (flPushDist * flDir[1]), 1); + ArraySetCell(irgSegments, iSegment, Float:ArrayGetCell(irgSegments, iSegment, _:PathSegment_Pos + 0) + (flPushDist * flDir[0]), _:PathSegment_Pos + 0); + ArraySetCell(irgSegments, iSegment, Float:ArrayGetCell(irgSegments, iSegment, _:PathSegment_Pos + 1) + (flPushDist * flDir[1]), _:PathSegment_Pos + 1); // insert a duplicate node to represent the bottom of the fall - if (StructGetCell(this, NavPath_SegmentCount) < MAX_PATH_SEGMENTS - 1) { - static Struct:sOldSegment; sOldSegment = ArrayGetCell(irgSegments, i); - static Struct:sSegment; sSegment = StructClone(sOldSegment); - StructSetCell(sSegment, PathSegment_Pos, vecToPos[0] + flPushDist * flDir[0], 0); - StructSetCell(sSegment, PathSegment_Pos, vecToPos[1] + flPushDist * flDir[1], 1); - - // put this one at the bottom of the fall - static Float:vecPos[3]; - StructGetArray(sSegment, PathSegment_Pos, vecPos, sizeof(vecPos)); - StructSetCell(sSegment, PathSegment_Pos, @NavArea_GetZ(sToArea, vecPos), 2); + if (iSegmentsNum < MAX_PATH_SEGMENTS - 1) { + static rgSegment[PathSegment]; + rgSegment[PathSegment_Area] = ArrayGetCell(irgSegments, iSegment, _:PathSegment_Area); + rgSegment[PathSegment_How] = ArrayGetCell(irgSegments, iSegment, _:PathSegment_How); + rgSegment[PathSegment_Pos][0] = vecToPos[0] + flPushDist * flDir[0]; + rgSegment[PathSegment_Pos][1] = vecToPos[1] + flPushDist * flDir[1]; + rgSegment[PathSegment_Pos][2] = ArrayGetCell(irgSegments, iSegment, _:PathSegment_Pos + 2); + rgSegment[PathSegment_Pos][2] = @NavArea_GetZ(NAVAREA_PTR(iToArea), rgSegment[PathSegment_Pos]); - ArrayInsertCellAfter(irgSegments, i, sSegment); + ArrayInsertArrayAfter(irgSegments, iSegment, rgSegment[any:0]); // path is one node longer - StructSetCell(this, NavPath_SegmentCount, StructGetCell(this, NavPath_SegmentCount) + 1); + StructSetCell(this, NavPath_SegmentCount, ++iSegmentsNum); // move index ahead into the new node we just duplicated - i++; + iSegment++; } } } else if (toHow == GO_LADDER_UP) { // to get to next area, must go up a ladder // find our ladder - new bool:bFound = false; - new Array:irgLadderList = StructGetCell(sFromArea, NavArea_Ladder, LADDER_UP); + static bool:bFound; bFound = false; + static Array:irgLadderList; irgLadderList = @NavArea_GetLadder(NAVAREA_PTR(iFromArea), LADDER_UP); - new iListSize = ArraySize(irgLadderList); - for (new i = 0; i < iListSize; ++i) { - static rgNavLadder[NavLadder]; ArrayGetArray(irgLadderList, i, rgNavLadder[any:0]); - + static iListSize; iListSize = ArraySize(irgLadderList); + for (new iLadder = 0; iLadder < iListSize; ++iLadder) { // can't use "behind" area when ascending... - if (rgNavLadder[NavLadder_TopForwardArea] == sToArea || rgNavLadder[NavLadder_TopLeftArea] == sToArea || rgNavLadder[NavLadder_TopRightArea] == sToArea) { + if ( + ArrayGetCell(irgLadderList, iLadder, _:NavLadder_TopForwardArea) == iToArea || + ArrayGetCell(irgLadderList, iLadder, _:NavLadder_TopLeftArea) == iToArea || + ArrayGetCell(irgLadderList, iLadder, _:NavLadder_TopRightArea) == iToArea + ) { // to->ladder = ladder; - static Float:vecPos[3]; xs_vec_copy(rgNavLadder[NavLadder_Bottom], vecPos); - AddDirectionVector(vecPos, rgNavLadder[NavLadder_Dir], 2.0 * HalfHumanWidth); - StructSetArray(sToSegment, PathSegment_Pos, vecPos, 3); + static Float:vecPos[3]; ArrayGetArray2(irgLadderList, iLadder, vecPos, 3, NavLadder_Bottom); + AddDirectionVector(vecPos, ArrayGetCell(irgLadderList, iLadder, _:NavLadder_Dir), 2.0 * HalfHumanWidth); + ArraySetArray2(irgSegments, iSegment, vecPos, 3, PathSegment_Pos); bFound = true; break; } @@ -1740,18 +1732,16 @@ bool:@NavPath_BuildTrivialPath(const &Struct:this, const Float:vecStart[3], cons if (!bFound) return false; } else if (toHow == GO_LADDER_DOWN) { // to get to next area, must go down a ladder // find our ladder - new bool:bFound = false; - new Array:irgLadderList = StructGetCell(sFromArea, NavArea_Ladder, LADDER_DOWN); + static bool:bFound; bFound = false; + static Array:irgLadderList; irgLadderList = @NavArea_GetLadder(NAVAREA_PTR(iFromArea), LADDER_DOWN); - new iListSize = ArraySize(irgLadderList); - for (new i = 0; i < iListSize; ++i) { - static rgNavLadder[NavLadder]; ArrayGetArray(irgLadderList, i, rgNavLadder[any:0]); - - if (rgNavLadder[NavLadder_BottomArea] == sToArea) { + static iListSize; iListSize = ArraySize(irgLadderList); + for (new iLadder = 0; iLadder < iListSize; ++iLadder) { + if (ArrayGetCell(irgLadderList, iLadder, _:NavLadder_BottomArea) == iToArea) { // to->ladder = ladder; - static Float:vecPos[3]; xs_vec_copy(rgNavLadder[NavLadder_Top], vecPos); - AddDirectionVector(vecPos, OppositeDirection(rgNavLadder[NavLadder_Dir]), 2.0 * HalfHumanWidth); - StructSetArray(sToSegment, PathSegment_Pos, vecPos, 3); + static Float:vecPos[3]; ArrayGetArray2(irgLadderList, iLadder, vecPos, 3, NavLadder_Top); + AddDirectionVector(vecPos, OppositeDirection(ArrayGetCell(irgLadderList, iLadder, _:NavLadder_Dir)), 2.0 * HalfHumanWidth); + ArraySetArray2(irgSegments, iSegment, vecPos, 3, PathSegment_Pos); bFound = true; break; } @@ -1776,15 +1766,22 @@ bool:@NavPath_IsValid(const &Struct:this) { StructSetCell(this, NavPath_SegmentCount, 0); } +@NavPath_Clear(const &Struct:this) { + static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); + ArrayClear(irgSegments); + + StructSetCell(this, NavPath_SegmentCount, 0); +} + @NavPath_GetEndpoint(const &Struct:this, Float:vecEndpoint[]) { static iSegmentCount; iSegmentCount = StructGetCell(this, NavPath_SegmentCount); static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); - static Struct:sSegment; sSegment = ArrayGetCell(irgSegments, iSegmentCount - 1); - StructGetArray(sSegment, PathSegment_Pos, vecEndpoint, 3); + + ArrayGetArray2(irgSegments, iSegmentCount - 1, vecEndpoint, 3, PathSegment_Pos); } // Return true if position is at the end of the path -bool:@NavPath_IsAtEnd(const &Struct:this, const Float:vecPos[3]) { +bool:@NavPath_IsAtEnd(const &Struct:this, const Float:vecPos[]) { if (!@NavPath_IsValid(this)) return false; static Float:vecEndpoint[3]; @NavPath_GetEndpoint(this, vecEndpoint); @@ -1794,27 +1791,25 @@ bool:@NavPath_IsAtEnd(const &Struct:this, const Float:vecPos[3]) { // Return point a given distance along the path - if distance is out of path bounds, point is clamped to start/end // TODO: Be careful of returning "positions" along one-way drops, ladders, etc. -bool:@NavPath_GetPointAlongPath(const &Struct:this, Float:flDistAlong, Float:vecPointOnPath[3]) { - if (!@NavPath_IsValid(this) || !xs_vec_len(vecPointOnPath)) { +bool:@NavPath_GetPointAlongPath(const &Struct:this, Float:flDistAlong, Float:vecPointOnPath[]) { + if (!@NavPath_IsValid(this)) { return false; } static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); if (flDistAlong <= 0.0) { - static Struct:sFirstSegment; sFirstSegment = ArrayGetCell(irgSegments, 0); - StructGetArray(sFirstSegment, PathSegment_Pos, vecPointOnPath, 3); + ArrayGetArray2(irgSegments, 0, vecPointOnPath, 3, PathSegment_Pos); return true; } static Float:flLengthSoFar; flLengthSoFar = 0.0; - for (new i = 1; i < @NavPath_GetSegmentCount(this); i++) { - static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); - static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); + static iSegmentsNum; iSegmentsNum = @NavPath_GetSegmentCount(this); - static Float:vecFrom[3]; StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); - static Float:vecTo[3]; StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); + for (new i = 1; i < iSegmentsNum; i++) { + static Float:vecFrom[3]; ArrayGetArray2(irgSegments, i - 1, vecFrom, 3, PathSegment_Pos); + static Float:vecTo[3]; ArrayGetArray2(irgSegments, i, vecTo, 3, PathSegment_Pos); static Float:vecDir[3]; xs_vec_sub(vecTo, vecFrom, vecDir); static Float:flSegmentLength; flSegmentLength = xs_vec_len(vecDir); @@ -1837,26 +1832,19 @@ bool:@NavPath_GetPointAlongPath(const &Struct:this, Float:flDistAlong, Float:vec // Compute closest point on path to given point // NOTE: This does not do line-of-sight tests, so closest point may be thru the floor, etc -bool:@NavPath_FindClosestPointOnPath(const &Struct:this, const Float:vecWorldPos[3], iStartIndex, iEndIndex, Float:vecClose[3]) { - if (!@NavPath_IsValid(this) || !vecClose) { - return false; - } +bool:@NavPath_FindClosestPointOnPath(const &Struct:this, const Float:vecWorldPos[], iStartIndex, iEndIndex, Float:vecClose[]) { + if (!@NavPath_IsValid(this)) return false; static Array:irgSegments; irgSegments = StructGetCell(this, NavPath_Segments); - static Float:flCloseDistSq = 9999999999.9; - - for (new i = iStartIndex; i <= iEndIndex; i++) { - static Struct:sFromSegment; sFromSegment = ArrayGetCell(irgSegments, i - 1); - static Struct:sToSegment; sToSegment = ArrayGetCell(irgSegments, i); - - static Float:vecFrom[3]; StructGetArray(sFromSegment, PathSegment_Pos, vecFrom, 3); - static Float:vecTo[3]; StructGetArray(sToSegment, PathSegment_Pos, vecTo, 3); + static Float:flCloseDistSq = 8192.0; + for (new iSegment = iStartIndex; iSegment <= iEndIndex; iSegment++) { + static Float:vecFrom[3]; ArrayGetArray2(irgSegments, iSegment - 1, vecFrom, 3, PathSegment_Pos); + static Float:vecTo[3]; ArrayGetArray2(irgSegments, iSegment, vecTo, 3, PathSegment_Pos); static Float:vecAlong[3]; xs_vec_sub(vecTo, vecFrom, vecAlong); static Float:flLength; flLength = NormalizeInPlace(vecAlong, vecAlong); static Float:vecToWorldPos[3]; xs_vec_sub(vecWorldPos, vecFrom, vecToWorldPos); - static Float:flCloseLength; flCloseLength = xs_vec_dot(vecToWorldPos, vecAlong); // constrain point to be on path segment @@ -1881,32 +1869,43 @@ bool:@NavPath_FindClosestPointOnPath(const &Struct:this, const Float:vecWorldPos return true; } -Struct:@BuildPathTask_Create() { - new Struct:this = StructCreate(BuildPathTask); - StructSetCell(this, BuildPathTask_Path, @NavPath_Create()); +@BuildPathTask_Allocate(this[BuildPathTask], iUserToken, const &iStartArea, const &iGoalArea, const Float:vecStart[], const Float:vecGoal[], pIgnoreEnt, iCbFuncPluginId, iCbFuncId, iCostFuncPluginId, iCostFuncId) { + if (this[BuildPathTask_Path] == Invalid_Struct) { + this[BuildPathTask_Path] = @NavPath_Create(); + } else { + @NavPath_Clear(this[BuildPathTask_Path]); + } - return this; + this[BuildPathTask_StartArea] = iStartArea; + this[BuildPathTask_GoalArea] = iGoalArea; + this[BuildPathTask_FinishCallback][Callback_PluginId] = iCbFuncPluginId; + this[BuildPathTask_FinishCallback][Callback_FunctionId] = iCbFuncId; + this[BuildPathTask_CostCallback][Callback_PluginId] = iCostFuncPluginId; + this[BuildPathTask_CostCallback][Callback_FunctionId] = iCostFuncId; + this[BuildPathTask_IgnoreEntity] = pIgnoreEnt; + this[BuildPathTask_UserToken] = iUserToken; + this[BuildPathTask_IsFinished] = false; + this[BuildPathTask_IsSuccessed] = false; + this[BuildPathTask_IsTerminated] = false; + this[BuildPathTask_IsFree] = false; + this[BuildPathTask_IterationsNum] = 0; + xs_vec_copy(vecStart, this[BuildPathTask_StartPos]); + xs_vec_copy(vecGoal, this[BuildPathTask_GoalPos]); } -@BuildPathTask_Destroy(&Struct:this) { - new Struct:sNavPath = StructGetCell(this, BuildPathTask_Path); - @NavPath_Destroy(sNavPath); - StructDestroy(this); +@BuildPathTask_Free(this[BuildPathTask]) { + this[BuildPathTask_IsFree] = true; } -Struct:@PathSegment_Create() { - new Struct:this = StructCreate(PathSegment); +// Struct:@PathSegment_Create() { +// new Struct:this = StructCreate(PathSegment); - return this; -} - -@PathSegment_Destroy(&Struct:this) { - StructDestroy(this); -} +// return this; +// } -NavAreaGrid_ComputeHashKey(iId) { - return iId & 0xFF; -} +// @PathSegment_Destroy(&Struct:this) { +// StructDestroy(this); +// } NavAreaGrid_Init(Float:flMinX, Float:flMaxX, Float:flMinY, Float:flMaxY) { g_rgGrid[NavAreaGrid_CellSize] = 300.0; @@ -1916,6 +1915,10 @@ NavAreaGrid_Init(Float:flMinX, Float:flMaxX, Float:flMinY, Float:flMaxY) { g_rgGrid[NavAreaGrid_GridSizeY] = floatround((flMaxY - flMinY) / g_rgGrid[NavAreaGrid_CellSize] + 1); g_rgGrid[NavAreaGrid_AreaCount] = 0; + for (new i = 0; i < HASH_TABLE_SIZE; ++i) { + g_rgGrid[NavAreaGrid_HashTable][i] = INVALID_NAV_AREA; + } + new iGridSize = g_rgGrid[NavAreaGrid_GridSizeX] * g_rgGrid[NavAreaGrid_GridSizeY]; g_rgGrid[NavAreaGrid_Grid] = ArrayCreate(_, iGridSize); @@ -1938,56 +1941,56 @@ NavAreaGrid_Free() { } } -Struct:NavAreaGrid_GetNavAreaById(iAreaId) { - if (iAreaId == 0) return Invalid_Struct; +NavAreaGrid_GetNavAreaById(iAreaId) { + if (iAreaId == 0) return INVALID_NAV_AREA; - new iKey = NavAreaGrid_ComputeHashKey(iAreaId); + static iKey; iKey = NavAreaGrid_ComputeHashKey(iAreaId); - for (new Struct:sArea = g_rgGrid[NavAreaGrid_HashTable][iKey]; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_NextHash)) { - if (@NavArea_GetId(sArea) == iAreaId) return sArea; + for (new iArea = g_rgGrid[NavAreaGrid_HashTable][iKey]; iArea != INVALID_NAV_AREA; iArea = NAVAREA_PTR(iArea)[NavArea_NextHash]) { + if (@NavArea_GetId(NAVAREA_PTR(iArea)) == iAreaId) return iArea; } - return Invalid_Struct; + return INVALID_NAV_AREA; } -NavAreaGrid_AddNavArea(Struct:sArea) { +NavAreaGrid_AddNavArea(area[NavArea]) { // add to grid - new iLoX = NavAreaGrid_WorldToGridX(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0)); - new iLoY = NavAreaGrid_WorldToGridY(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1)); - new iHiX = NavAreaGrid_WorldToGridX(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0)); - new iHiY = NavAreaGrid_WorldToGridY(Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1)); + new iLoX = NavAreaGrid_WorldToGridX(area[NavArea_Extent][Extent_Lo][0]); + new iLoY = NavAreaGrid_WorldToGridY(area[NavArea_Extent][Extent_Lo][1]); + new iHiX = NavAreaGrid_WorldToGridX(area[NavArea_Extent][Extent_Hi][0]); + new iHiY = NavAreaGrid_WorldToGridY(area[NavArea_Extent][Extent_Hi][1]); for (new y = iLoY; y <= iHiY; y++) { for (new x = iLoX; x <= iHiX; x++) { new Array:irgAreas = ArrayGetCell(g_rgGrid[NavAreaGrid_Grid], x + y * g_rgGrid[NavAreaGrid_GridSizeX]); - ArrayPushCell(irgAreas, sArea); + ArrayPushCell(irgAreas, NAVAREA_INDEX(area)); } } - new iAreaId = StructGetCell(sArea, NavArea_Id); + new iAreaId = area[NavArea_Id]; // add to hash table new iKey = NavAreaGrid_ComputeHashKey(iAreaId); - if (g_rgGrid[NavAreaGrid_HashTable][iKey] != Invalid_Struct) { + if (g_rgGrid[NavAreaGrid_HashTable][iKey] != INVALID_NAV_AREA) { // add to head of list in this slot - StructSetCell(sArea, NavArea_PrevHash, Invalid_Struct); - StructSetCell(sArea, NavArea_NextHash, g_rgGrid[NavAreaGrid_HashTable][iKey]); - StructSetCell(g_rgGrid[NavAreaGrid_HashTable][iKey], NavArea_PrevHash, sArea); - g_rgGrid[NavAreaGrid_HashTable][iKey] = sArea; + area[NavArea_PrevHash] = INVALID_NAV_AREA; + area[NavArea_NextHash] = g_rgGrid[NavAreaGrid_HashTable][iKey]; + g_rgNavAreas[g_rgGrid[NavAreaGrid_HashTable][iKey]][NavArea_PrevHash] = NAVAREA_INDEX(area); + g_rgGrid[NavAreaGrid_HashTable][iKey] = NAVAREA_INDEX(area); } else { // first entry in this slot - g_rgGrid[NavAreaGrid_HashTable][iKey] = sArea; - StructSetCell(sArea, NavArea_NextHash, Invalid_Struct); - StructSetCell(sArea, NavArea_PrevHash, Invalid_Struct); + g_rgGrid[NavAreaGrid_HashTable][iKey] = NAVAREA_INDEX(area); + area[NavArea_NextHash] = INVALID_NAV_AREA; + area[NavArea_PrevHash] = INVALID_NAV_AREA; } g_rgGrid[NavAreaGrid_AreaCount]++; } // Given a position, return the nav area that IsOverlapping and is *immediately* beneath it -Struct:NavAreaGrid_GetNavArea(const Float:vecPos[3], Float:flBeneathLimit) { - if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) return Invalid_Struct; +NavAreaGrid_GetNavArea(const Float:vecPos[], Float:flBeneathLimit) { + if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) return INVALID_NAV_AREA; // get list in cell that contains position static x; x = NavAreaGrid_WorldToGridX(vecPos[0]); @@ -1999,16 +2002,16 @@ Struct:NavAreaGrid_GetNavArea(const Float:vecPos[3], Float:flBeneathLimit) { // search cell list to find correct area static iListSize; iListSize = ArraySize(irgList); - static Struct:sUseArea; sUseArea = Invalid_Struct; + static iUseArea; iUseArea = INVALID_NAV_AREA; static Float:useZ; useZ = -99999999.9; for (new i = 0; i < iListSize; ++i) { - static Struct:sArea; sArea = ArrayGetCell(irgList, i); + static iArea; iArea = ArrayGetCell(irgList, i); // check if position is within 2D boundaries of this area - if (@NavArea_IsOverlappingPoint(sArea, vecTestPos)) { + if (@NavArea_IsOverlappingPoint(NAVAREA_PTR(iArea), vecTestPos)) { // project position onto area to get Z - static Float:z; z = @NavArea_GetZ(sArea, vecTestPos); + static Float:z; z = @NavArea_GetZ(NAVAREA_PTR(iArea), vecTestPos); // if area is above us, skip it if (z > vecTestPos[2]) continue; @@ -2018,13 +2021,13 @@ Struct:NavAreaGrid_GetNavArea(const Float:vecPos[3], Float:flBeneathLimit) { // if area is higher than the one we have, use this instead if (z > useZ) { - sUseArea = sArea; + iUseArea = iArea; useZ = z; } } } - return sUseArea; + return iUseArea; } NavAreaGrid_WorldToGridX(Float:wx) { @@ -2046,29 +2049,27 @@ NavAreaGrid_WorldToGridY(Float:wy) { // Given a position in the world, return the nav area that is closest // and at the same height, or beneath it. // Used to find initial area if we start off of the mesh. -Struct:NavAreaGrid_GetNearestNavArea(const Float:vecPos[3], bool:bAnyZ = false, pIgnoreEnt = nullptr, Struct:sIgnoreArea = Invalid_Struct) { - if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) return Invalid_Struct; +NavAreaGrid_GetNearestNavArea(const Float:vecPos[], bool:bAnyZ = false, pIgnoreEnt = nullptr, iIgnoreArea = INVALID_NAV_AREA) { + if (g_rgGrid[NavAreaGrid_Grid] == Invalid_Array) return INVALID_NAV_AREA; static Float:flGroundHeight; flGroundHeight = GetGroundHeight(vecPos, pIgnoreEnt); - if (flGroundHeight == -1.0) return Invalid_Struct; + if (flGroundHeight == -1.0) return INVALID_NAV_AREA; - static Struct:sCurrentArea; sCurrentArea = NavAreaGrid_GetNavArea(vecPos, 120.0); - if (sCurrentArea != Invalid_Struct && sCurrentArea != sIgnoreArea) return sCurrentArea; + static iCurrentArea; iCurrentArea = NavAreaGrid_GetNavArea(vecPos, 120.0); + if (iCurrentArea != INVALID_NAV_AREA && iCurrentArea != iIgnoreArea) return iCurrentArea; // ensure source position is well behaved static Float:vecSource[3]; xs_vec_set(vecSource, vecPos[0], vecPos[1], flGroundHeight + HalfHumanHeight); - static Struct:sCloseArea; sCloseArea = Invalid_Struct; + static sCloseArea; sCloseArea = INVALID_NAV_AREA; static Float:flCloseDistSq; flCloseDistSq = 100000000.0; // TODO: Step incrementally using grid for speed // find closest nav area - new iNavAreaCount = ArraySize(g_irgNavAreaList); - for (new i = 0; i < iNavAreaCount; ++i) { - static Struct:sArea; sArea = ArrayGetCell(g_irgNavAreaList, i); - if (sArea == sIgnoreArea) continue; + for (new iArea = 0; iArea < g_iNavAreasNum; ++iArea) { + if (iArea == iIgnoreArea) continue; - static Float:vecAreaPos[3]; @NavArea_GetClosestPointOnArea(sArea, vecSource, vecAreaPos); + static Float:vecAreaPos[3]; @NavArea_GetClosestPointOnArea(NAVAREA_PTR(iArea), vecSource, vecAreaPos); static Float:flDistSq; flDistSq = floatpower(xs_vec_distance(vecAreaPos, vecSource), 2.0); // keep the closest area @@ -2085,39 +2086,33 @@ Struct:NavAreaGrid_GetNearestNavArea(const Float:vecPos[3], bool:bAnyZ = false, } flCloseDistSq = flDistSq; - sCloseArea = sArea; + sCloseArea = iArea; } } return sCloseArea; } -// NavAreaGrid_GetNavAreaCount() { -// return g_rgGrid[NavAreaGrid_AreaCount]; -// } +NavAreaGrid_ComputeHashKey(iId) { + return iId & 0xFF; +} NavErrorType:LoadNavigationMap() { - new szMapName[32]; - get_mapname(szMapName, charsmax(szMapName)); - - static szFilePath[256]; - format(szFilePath, charsmax(szFilePath), "maps/%s.nav", szMapName); + new szMapName[32]; get_mapname(szMapName, charsmax(szMapName)); + new szFilePath[256]; format(szFilePath, charsmax(szFilePath), "maps/%s.nav", szMapName); if (!file_exists(szFilePath)) { log_amx("File ^"%s^" not found!", szFilePath); return NAV_CANT_ACCESS_FILE; } - g_irgNavAreaList = ArrayCreate(); // g_irgNavLadderList = ArrayCreate(); new iFile = fopen(szFilePath, "rb"); g_iNavAreaNextId = 1; new iMagic; - if (!FileReadInt32(iFile, iMagic)) { - return NAV_INVALID_FILE; - } + if (!FileReadInt32(iFile, iMagic)) return NAV_INVALID_FILE; if (iMagic != NAV_MAGIC_NUMBER) { log_amx("Wrong magic number %d. Should be %d.", iMagic, NAV_MAGIC_NUMBER); @@ -2125,9 +2120,7 @@ NavErrorType:LoadNavigationMap() { } new iVersion; - if (!FileReadInt32(iFile, iVersion)) { - return NAV_BAD_FILE_VERSION; - } + if (!FileReadInt32(iFile, iVersion)) return NAV_BAD_FILE_VERSION; if (iVersion > NAV_VERSION) { log_amx("Wrong version %d. Should be less then %d.", iVersion, NAV_VERSION); @@ -2153,9 +2146,8 @@ NavErrorType:LoadNavigationMap() { } // get number of areas - static iAreaCount; - FileReadInt32(iFile, iAreaCount); - log_amx("Found %d areas", iAreaCount); + FileReadInt32(iFile, g_iNavAreasNum); + log_amx("Found %d areas", g_iNavAreasNum); new rgExtent[Extent]; rgExtent[Extent_Lo][0] = 9999999999.9; @@ -2166,26 +2158,10 @@ NavErrorType:LoadNavigationMap() { log_amx("Loading areas..."); // load the areas and compute total extent - for (new i = 0; i < iAreaCount; i++) { - new Struct:sArea = @NavArea_Create(); - @NavArea_Load(sArea, iFile, iVersion, false); - ArrayPushCell(g_irgNavAreaList, sArea); - - if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0) < rgExtent[Extent_Lo][0]) { - rgExtent[Extent_Lo][0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 0); - } - - if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1) < rgExtent[Extent_Lo][1]) { - rgExtent[Extent_Lo][1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Lo + 1); - } - - if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0) > rgExtent[Extent_Hi][0]) { - rgExtent[Extent_Hi][0] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 0); - } - - if (Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1) > rgExtent[Extent_Hi][1]) { - rgExtent[Extent_Hi][1] = Float:StructGetCell(sArea, NavArea_Extent, _:Extent_Hi + 1); - } + for (new iArea = 0; iArea < g_iNavAreasNum; iArea++) { + @NavArea_Allocate(NAVAREA_PTR(iArea)); + @NavArea_Load(NAVAREA_PTR(iArea), iFile, iVersion, false); + AdjustExtentWithArea(rgExtent, NAVAREA_PTR(iArea)); } log_amx("All areas loaded!"); @@ -2195,17 +2171,15 @@ NavErrorType:LoadNavigationMap() { log_amx("Grid initialized!"); - for (new i = 0; i < iAreaCount; i++) { - new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); - NavAreaGrid_AddNavArea(sArea); + for (new iArea = 0; iArea < g_iNavAreasNum; iArea++) { + NavAreaGrid_AddNavArea(NAVAREA_PTR(iArea)); } log_amx("All areas added to the grid!"); - // allow areas to connect to each other, etc - for (new i = 0; i < iAreaCount; i++) { - new Struct:sArea = ArrayGetCell(g_irgNavAreaList, i); - @NavArea_PostLoadArea(sArea); + // allow areas to connect to each iOtherArea, etc + for (new iArea = 0; iArea < g_iNavAreasNum; iArea++) { + @NavArea_PostLoadArea(NAVAREA_PTR(iArea)); } log_amx("Loaded areas post processing complete!"); @@ -2217,6 +2191,13 @@ NavErrorType:LoadNavigationMap() { return NAV_OK; } +AdjustExtentWithArea(rgExtent[Extent], const area[NavArea]) { + rgExtent[Extent_Lo][0] = floatmin(area[NavArea_Extent][Extent_Lo][0], rgExtent[Extent_Lo][0]); + rgExtent[Extent_Lo][1] = floatmin(area[NavArea_Extent][Extent_Lo][1], rgExtent[Extent_Lo][1]); + rgExtent[Extent_Hi][0] = floatmax(area[NavArea_Extent][Extent_Hi][0], rgExtent[Extent_Hi][0]); + rgExtent[Extent_Hi][1] = floatmax(area[NavArea_Extent][Extent_Hi][1], rgExtent[Extent_Hi][1]); +} + // For each ladder in the map, create a navigation representation of it. BuildLadders() { log_amx("Building ladders..."); @@ -2308,75 +2289,75 @@ BuildLadder(pEntity) { // find "ahead" area rgNavLadder[NavLadder_TopForwardArea] = FindFirstAreaInDirection(vecCenter, OppositeDirection(rgNavLadder[NavLadder_Dir]), flNearLadderRange, 120.0, pEntity); if (rgNavLadder[NavLadder_TopForwardArea] == rgNavLadder[NavLadder_BottomArea]) { - rgNavLadder[NavLadder_TopForwardArea] = Invalid_Struct; + rgNavLadder[NavLadder_TopForwardArea] = INVALID_NAV_AREA; } // find "left" area rgNavLadder[NavLadder_TopLeftArea] = FindFirstAreaInDirection(vecCenter, DirectionLeft(rgNavLadder[NavLadder_Dir]), flNearLadderRange, 120.0, pEntity); if (rgNavLadder[NavLadder_TopLeftArea] == rgNavLadder[NavLadder_BottomArea]) { - rgNavLadder[NavLadder_TopLeftArea] = Invalid_Struct; + rgNavLadder[NavLadder_TopLeftArea] = INVALID_NAV_AREA; } // find "right" area rgNavLadder[NavLadder_TopRightArea] = FindFirstAreaInDirection(vecCenter, DirectionRight(rgNavLadder[NavLadder_Dir]), flNearLadderRange, 120.0, pEntity); if (rgNavLadder[NavLadder_TopRightArea] == rgNavLadder[NavLadder_BottomArea]) { - rgNavLadder[NavLadder_TopRightArea] = Invalid_Struct; + rgNavLadder[NavLadder_TopRightArea] = INVALID_NAV_AREA; } // find "behind" area - must look farther, since ladder is against the wall away from this area rgNavLadder[NavLadder_TopBehindArea] = FindFirstAreaInDirection(vecCenter, rgNavLadder[NavLadder_Dir], 2.0 * flNearLadderRange, 120.0, pEntity); if (rgNavLadder[NavLadder_TopBehindArea] == rgNavLadder[NavLadder_BottomArea]) { - rgNavLadder[NavLadder_TopBehindArea] = Invalid_Struct; + rgNavLadder[NavLadder_TopBehindArea] = INVALID_NAV_AREA; } // can't include behind area, since it is not used when going up a ladder - if (rgNavLadder[NavLadder_BottomArea] == Invalid_Struct) { + if (rgNavLadder[NavLadder_BottomArea] == INVALID_NAV_AREA) { log_amx("ERROR: Unconnected ladder bottom at (%f, %f, %f)", rgNavLadder[NavLadder_Bottom][0], rgNavLadder[NavLadder_Bottom][1], rgNavLadder[NavLadder_Bottom][2]); return; } - if (rgNavLadder[NavLadder_TopForwardArea] == Invalid_Struct && rgNavLadder[NavLadder_TopLeftArea] == Invalid_Struct && rgNavLadder[NavLadder_TopRightArea] == Invalid_Struct) { + if (rgNavLadder[NavLadder_TopForwardArea] == INVALID_NAV_AREA && rgNavLadder[NavLadder_TopLeftArea] == INVALID_NAV_AREA && rgNavLadder[NavLadder_TopRightArea] == INVALID_NAV_AREA) { log_amx("ERROR: Unconnected ladder top at (%f, %f, %f)", rgNavLadder[NavLadder_Top][0], rgNavLadder[NavLadder_Top][1], rgNavLadder[NavLadder_Top][2]); return; } // store reference to ladder in the area - if (rgNavLadder[NavLadder_BottomArea] != Invalid_Struct) { - @NavArea_AddLadderUp(rgNavLadder[NavLadder_BottomArea], rgNavLadder); + if (rgNavLadder[NavLadder_BottomArea] != INVALID_NAV_AREA) { + @NavArea_AddLadderUp(NAVAREA_PTR(rgNavLadder[NavLadder_BottomArea]), rgNavLadder); } // store reference to ladder in the area(s) - if (rgNavLadder[NavLadder_TopForwardArea] != Invalid_Struct) { - @NavArea_AddLadderDown(rgNavLadder[NavLadder_TopForwardArea], rgNavLadder); + if (rgNavLadder[NavLadder_TopForwardArea] != INVALID_NAV_AREA) { + @NavArea_AddLadderDown(NAVAREA_PTR(rgNavLadder[NavLadder_TopForwardArea]), rgNavLadder); } - if (rgNavLadder[NavLadder_TopLeftArea] != Invalid_Struct) { - @NavArea_AddLadderDown(rgNavLadder[NavLadder_TopLeftArea], rgNavLadder); + if (rgNavLadder[NavLadder_TopLeftArea] != INVALID_NAV_AREA) { + @NavArea_AddLadderDown(NAVAREA_PTR(rgNavLadder[NavLadder_TopLeftArea]), rgNavLadder); } - if (rgNavLadder[NavLadder_TopRightArea] != Invalid_Struct) { - @NavArea_AddLadderDown(rgNavLadder[NavLadder_TopRightArea], rgNavLadder); + if (rgNavLadder[NavLadder_TopRightArea] != INVALID_NAV_AREA) { + @NavArea_AddLadderDown(NAVAREA_PTR(rgNavLadder[NavLadder_TopRightArea]), rgNavLadder); } - if (rgNavLadder[NavLadder_TopBehindArea] != Invalid_Struct) { - @NavArea_AddLadderDown(rgNavLadder[NavLadder_TopBehindArea], rgNavLadder); + if (rgNavLadder[NavLadder_TopBehindArea] != INVALID_NAV_AREA) { + @NavArea_AddLadderDown(NAVAREA_PTR(rgNavLadder[NavLadder_TopBehindArea]), rgNavLadder); } // adjust top of ladder to highest connected area new Float:flTopZ = -99999.9; new bool:bTopAdjusted = false; - new Struct:rgsTopAreaList[NUM_CORNERS]; + new rgsTopAreaList[NUM_CORNERS]; rgsTopAreaList[NORTH_WEST] = rgNavLadder[NavLadder_TopForwardArea]; rgsTopAreaList[NORTH_EAST] = rgNavLadder[NavLadder_TopLeftArea]; rgsTopAreaList[SOUTH_EAST] = rgNavLadder[NavLadder_TopRightArea]; rgsTopAreaList[SOUTH_WEST] = rgNavLadder[NavLadder_TopBehindArea]; - for (new iCorner = 0; iCorner < _:NUM_CORNERS; iCorner++) { - new Struct:sTopArea = rgsTopAreaList[NavCornerType:iCorner]; - if (!sTopArea) continue; + for (new NavCornerType:iCorner = NORTH_WEST; iCorner < NUM_CORNERS; iCorner++) { + new iTopArea = rgsTopAreaList[iCorner]; + if (iTopArea == INVALID_NAV_AREA) continue; - new Float:vecClose[3]; @NavArea_GetClosestPointOnArea(sTopArea, rgNavLadder[NavLadder_Top], vecClose); + new Float:vecClose[3]; @NavArea_GetClosestPointOnArea(NAVAREA_PTR(iTopArea), rgNavLadder[NavLadder_Top], vecClose); if (flTopZ < vecClose[2]) { flTopZ = vecClose[2]; @@ -2390,7 +2371,7 @@ BuildLadder(pEntity) { // "Dangling" ladders are too high to go up rgNavLadder[NavLadder_IsDangling] = false; if (rgNavLadder[NavLadder_BottomArea]) { - new Float:vecBottomSpot[3]; @NavArea_GetClosestPointOnArea(rgNavLadder[NavLadder_BottomArea], rgNavLadder[NavLadder_Bottom], vecBottomSpot); + new Float:vecBottomSpot[3]; @NavArea_GetClosestPointOnArea(NAVAREA_PTR(rgNavLadder[NavLadder_BottomArea]), rgNavLadder[NavLadder_Bottom], vecBottomSpot); if (rgNavLadder[NavLadder_Bottom][2] - vecBottomSpot[2] > HumanHeight) { rgNavLadder[NavLadder_IsDangling] = true; } @@ -2402,7 +2383,7 @@ BuildLadder(pEntity) { // ArrayPushCell(g_irgNavLadderList, sNavLadder); } -AdjustLadderPositionToBypassBlockages(pEntity, Float:vecPosition[], NavDirType:iDir, const Float:vecAlong[3]) { +AdjustLadderPositionToBypassBlockages(pEntity, Float:vecPosition[], NavDirType:iDir, const Float:vecAlong[]) { static const Float:flMinLadderClearance = 32.0; static const Float:flLadderStep = 10.0; @@ -2429,13 +2410,12 @@ AdjustLadderPositionToBypassBlockages(pEntity, Float:vecPosition[], NavDirType:i } } -Struct:FindFirstAreaInDirection(const Float:vecStart[3], NavDirType:iDir, Float:flRange, Float:flBeneathLimit, pIgnoreEnt, Float:vecClosePos[3] = 0.0) { - new Struct:sArea = Invalid_Struct; +FindFirstAreaInDirection(const Float:vecStart[], NavDirType:iDir, Float:flRange, Float:flBeneathLimit, pIgnoreEnt, Float:vecClosePos[3] = 0.0) { + static iArea; iArea = INVALID_NAV_AREA; - static Float:vecPos[3]; - xs_vec_copy(vecStart, vecPos); + static Float:vecPos[3]; xs_vec_copy(vecStart, vecPos); - new iEnd = floatround((flRange / GenerationStepSize) + 0.5); + static iEnd; iEnd = floatround((flRange / GenerationStepSize) + 0.5); for (new i = 1; i <= iEnd; i++) { AddDirectionVector(vecPos, iDir, GenerationStepSize); @@ -2443,39 +2423,28 @@ Struct:FindFirstAreaInDirection(const Float:vecStart[3], NavDirType:iDir, Float: // make sure we dont look thru the wall engfunc(EngFunc_TraceLine, vecStart, vecPos, IGNORE_MONSTERS, pIgnoreEnt, g_pTrace); - static Float:flFraction; - get_tr2(g_pTrace, TR_flFraction, flFraction); - if (flFraction != 1.0) { - break; - } - - sArea = NavAreaGrid_GetNavArea(vecPos, flBeneathLimit); - - if (sArea != Invalid_Struct) { - vecClosePos[0] = vecPos[0]; - vecClosePos[1] = vecPos[1]; + static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + if (flFraction != 1.0) break; - static Float:pos2d[3]; - xs_vec_copy(vecPos, pos2d); - pos2d[2] = 0.0; + iArea = NavAreaGrid_GetNavArea(vecPos, flBeneathLimit); - vecClosePos[2] = @NavArea_GetZ(sArea, pos2d); + if (iArea != INVALID_NAV_AREA) { + xs_vec_set(vecClosePos, vecPos[0], vecPos[1], @NavArea_GetZ(NAVAREA_PTR(iArea), vecPos)); break; } } - return sArea; + return iArea; } -Struct:NavAreaPopOpenList() { - if (g_sNavAreaOpenList != Invalid_Struct) { - static Struct:sArea; sArea = g_sNavAreaOpenList; - // disconnect from list - @NavArea_RemoveFromOpenList(sArea); - return sArea; +NavAreaPopOpenList() { + if (g_iNavAreaOpenList != INVALID_NAV_AREA) { + static iArea; iArea = g_iNavAreaOpenList; + @NavArea_RemoveFromOpenList(NAVAREA_PTR(iArea)); + return iArea; } - return Invalid_Struct; + return INVALID_NAV_AREA; } NavAreaMakeNewMarker() { @@ -2486,60 +2455,50 @@ NavAreaMakeNewMarker() { NavAreaClearSearchLists() { NavAreaMakeNewMarker(); - g_sNavAreaOpenList = Invalid_Struct; + g_iNavAreaOpenList = INVALID_NAV_AREA; } -Struct:NavAreaBuildPath(const Float:vecStart[3], const Float:vecGoal[3], iCbFuncId = -1, iCbFuncPluginId = -1, pIgnoreEnt, iUserToken, iCostFuncId = -1, iCostFuncPluginId = -1) { - if (!g_bPrecached) { - return Invalid_Struct; - } - - if (!xs_vec_len(vecGoal)) { - return Invalid_Struct; - } - - new Struct:sStartArea = NavAreaGrid_GetNearestNavArea(vecStart, false, pIgnoreEnt); - if (sStartArea == Invalid_Struct) { - return Invalid_Struct; - } +NavAreaBuildPath(const Float:vecStart[], const Float:vecGoal[], iCbFuncId = -1, iCbFuncPluginId = -1, pIgnoreEnt, iUserToken, iCostFuncId = -1, iCostFuncPluginId = -1) { + if (!g_bPrecached) return INVALID_BUILD_PATH_TASK; - new Struct:sGoalArea = NavAreaGrid_GetNearestNavArea(vecGoal, false, pIgnoreEnt); - if (sGoalArea == Invalid_Struct) { - return Invalid_Struct; - } + static iStartArea; iStartArea = NavAreaGrid_GetNearestNavArea(vecStart, false, pIgnoreEnt); + if (iStartArea == INVALID_NAV_AREA) return INVALID_BUILD_PATH_TASK; - new Struct:sTask = @BuildPathTask_Create(); + static iGoalArea; iGoalArea = NavAreaGrid_GetNearestNavArea(vecGoal, false, pIgnoreEnt); + if (iGoalArea == INVALID_NAV_AREA) return INVALID_BUILD_PATH_TASK; + + static iTask; iTask = FindFreeTaskSlot(); - StructSetArray(sTask, BuildPathTask_StartPos, vecStart, 3); - StructSetArray(sTask, BuildPathTask_GoalPos, vecGoal, 3); - StructSetCell(sTask, BuildPathTask_StartArea, sStartArea); - StructSetCell(sTask, BuildPathTask_GoalArea, sGoalArea); - StructSetCell(sTask, BuildPathTask_ClosestArea, Invalid_Struct); - StructSetCell(sTask, BuildPathTask_FinishCallback, iCbFuncPluginId, Callback_PluginId); - StructSetCell(sTask, BuildPathTask_FinishCallback, iCbFuncId, Callback_FunctionId); - StructSetCell(sTask, BuildPathTask_CostCallback, iCostFuncPluginId, Callback_PluginId); - StructSetCell(sTask, BuildPathTask_CostCallback, iCostFuncId, Callback_FunctionId); - StructSetCell(sTask, BuildPathTask_IgnoreEntity, pIgnoreEnt); - StructSetCell(sTask, BuildPathTask_UserToken, iUserToken); - StructSetCell(sTask, BuildPathTask_IsFinished, false); - StructSetCell(sTask, BuildPathTask_IsSuccessed, false); - StructSetCell(sTask, BuildPathTask_IsTerminated, false); + if (iTask == INVALID_BUILD_PATH_TASK) return INVALID_BUILD_PATH_TASK; + + @BuildPathTask_Allocate( + TASK_PTR(iTask), + iUserToken, + iStartArea, + iGoalArea, + vecStart, + vecGoal, + pIgnoreEnt, + iCbFuncPluginId, + iCbFuncId, + iCostFuncPluginId, + iCostFuncId + ); - if (g_irgBuildPathTasks == Invalid_Array) { - g_irgBuildPathTasks = ArrayCreate(); + if (g_irgBuildPathTasksQueue == Invalid_Array) { + g_irgBuildPathTasksQueue = ArrayCreate(); } - ArrayPushCell(g_irgBuildPathTasks, sTask); + ArrayPushCell(g_irgBuildPathTasksQueue, iTask); - return sTask; + return iTask; } -bool:NavAreaBuildPathAbortTask(Struct:sTask) { +bool:NavAreaBuildPathAbortTask(task[BuildPathTask]) { // if task already in progress - if (g_rgBuildPathJob[BuildPathJob_Task] == sTask) { + if (g_rgBuildPathJob[BuildPathJob_Task] == task[BuildPathTask_Index]) { g_rgBuildPathJob[BuildPathJob_Finished] = true; - g_rgBuildPathJob[BuildPathJob_Terminated] = true; - g_rgBuildPathJob[BuildPathJob_Successed] = false; + task[BuildPathTask_IsTerminated] = true; // finish task in the same frame NavAreaBuildPathFinish(); @@ -2547,54 +2506,46 @@ bool:NavAreaBuildPathAbortTask(Struct:sTask) { return true; } - if (g_irgBuildPathTasks == Invalid_Array) { - return false; - } + if (g_irgBuildPathTasksQueue == Invalid_Array) return false; // remove task from the queue - new iTask = ArrayFindValue(g_irgBuildPathTasks, sTask); - if (iTask != -1) { - @BuildPathTask_Destroy(sTask); - ArrayDeleteItem(g_irgBuildPathTasks, iTask); + static iTaskQueueIndex; iTaskQueueIndex = ArrayFindValue(g_irgBuildPathTasksQueue, task[BuildPathTask_Index]); + if (iTaskQueueIndex != -1) { + @BuildPathTask_Free(task); + ArrayDeleteItem(g_irgBuildPathTasksQueue, iTaskQueueIndex); return true; } return false; } -bool:NavAreaBuildPathRunTask(Struct:sTask) { - g_rgBuildPathJob[BuildPathJob_Task] = sTask; - g_rgBuildPathJob[BuildPathJob_StartArea] = StructGetCell(sTask, BuildPathTask_StartArea); - g_rgBuildPathJob[BuildPathJob_GoalArea] = StructGetCell(sTask, BuildPathTask_GoalArea); - g_rgBuildPathJob[BuildPathJob_CostFuncId] = StructGetCell(sTask, BuildPathTask_CostCallback, Callback_FunctionId); - g_rgBuildPathJob[BuildPathJob_CostFuncPluginId] = StructGetCell(sTask, BuildPathTask_CostCallback, Callback_PluginId); +bool:NavAreaBuildPathRunTask(task[BuildPathTask]) { + static iStartArea; iStartArea = task[BuildPathTask_StartArea]; + + g_rgBuildPathJob[BuildPathJob_Task] = task[BuildPathTask_Index]; g_rgBuildPathJob[BuildPathJob_Finished] = false; - g_rgBuildPathJob[BuildPathJob_FinishHandled] = false; - g_rgBuildPathJob[BuildPathJob_Terminated] = false; - g_rgBuildPathJob[BuildPathJob_Successed] = false; - g_rgBuildPathJob[BuildPathJob_MaxIterations] = get_pcvar_num(g_pCvarMaxIterationsPerFrame); + g_rgBuildPathJob[BuildPathJob_Released] = false; + g_rgBuildPathJob[BuildPathJob_MaxIterations] = g_iMaxIterationsPerFrame; g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = 999999.0; - g_rgBuildPathJob[BuildPathJob_ClosestArea] = Invalid_Struct; - g_rgBuildPathJob[BuildPathJob_IgnoreEntity] = StructGetCell(sTask, BuildPathTask_IgnoreEntity); + g_rgBuildPathJob[BuildPathJob_ClosestArea] = INVALID_NAV_AREA; - StructGetArray(sTask, BuildPathTask_GoalPos, g_rgBuildPathJob[BuildPathJob_GoalPos], 3); - - @NavArea_SetParent(g_rgBuildPathJob[BuildPathJob_StartArea], Invalid_Struct, NUM_TRAVERSE_TYPES); + @NavArea_SetParent(NAVAREA_PTR(iStartArea), INVALID_NAV_AREA, NUM_TRAVERSE_TYPES); // if we are already in the goal area, build trivial path - if (g_rgBuildPathJob[BuildPathJob_StartArea] == g_rgBuildPathJob[BuildPathJob_GoalArea]) { - @NavArea_SetParent(g_rgBuildPathJob[BuildPathJob_GoalArea], Invalid_Struct, NUM_TRAVERSE_TYPES); - g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_GoalArea]; - g_rgBuildPathJob[BuildPathJob_Successed] = true; + if (iStartArea == task[BuildPathTask_GoalArea]) { + @NavArea_SetParent(NAVAREA_PTR(task[BuildPathTask_GoalArea]), INVALID_NAV_AREA, NUM_TRAVERSE_TYPES); + g_rgBuildPathJob[BuildPathJob_ClosestArea] = task[BuildPathTask_GoalArea]; + task[BuildPathTask_IsSuccessed] = true; g_rgBuildPathJob[BuildPathJob_Finished] = true; + return true; } // determine actual goal position - if (xs_vec_len(g_rgBuildPathJob[BuildPathJob_GoalPos]) > 0.0) { - xs_vec_copy(g_rgBuildPathJob[BuildPathJob_GoalPos], g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); + if (xs_vec_len(task[BuildPathTask_GoalPos]) > 0.0) { + xs_vec_copy(task[BuildPathTask_GoalPos], task[BuildPathTask_ActualGoalPos]); } else { - @NavArea_GetCenter(g_rgBuildPathJob[BuildPathJob_GoalArea], g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); + @NavArea_GetCenter(NAVAREA_PTR(task[BuildPathTask_GoalArea]), task[BuildPathTask_ActualGoalPos]); } // start search @@ -2602,302 +2553,275 @@ bool:NavAreaBuildPathRunTask(Struct:sTask) { // compute estimate of path length // TODO: Cost might work as "manhattan distance" - static Float:vecStartAreaCenter[3]; - @NavArea_GetCenter(g_rgBuildPathJob[BuildPathJob_StartArea], vecStartAreaCenter); - @NavArea_SetTotalCost(g_rgBuildPathJob[BuildPathJob_StartArea], xs_vec_distance(vecStartAreaCenter, g_rgBuildPathJob[BuildPathJob_ActualGoalPos])); + static Float:vecStartAreaCenter[3]; @NavArea_GetCenter(NAVAREA_PTR(iStartArea), vecStartAreaCenter); + @NavArea_SetTotalCost(NAVAREA_PTR(iStartArea), xs_vec_distance(vecStartAreaCenter, task[BuildPathTask_ActualGoalPos])); - new Float:flInitCost = 0.0; + static Float:flInitCost; flInitCost = 0.0; - if (g_rgBuildPathJob[BuildPathJob_CostFuncId] != -1 && callfunc_begin_i(g_rgBuildPathJob[BuildPathJob_CostFuncId], g_rgBuildPathJob[BuildPathJob_CostFuncPluginId])) { - callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_Task]); - callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_StartArea]); - callfunc_push_int(_:Invalid_Struct); - flInitCost = Float:callfunc_end(); + if (task[BuildPathTask_CostCallback][Callback_FunctionId] != -1) { + if (callfunc_begin_i(task[BuildPathTask_CostCallback][Callback_FunctionId], task[BuildPathTask_CostCallback][Callback_PluginId])) { + callfunc_push_int(g_rgBuildPathJob[BuildPathJob_Task]); + callfunc_push_int(iStartArea); + callfunc_push_int(INVALID_NAV_AREA); + flInitCost = Float:callfunc_end(); + } } if (flInitCost < 0.0) { g_rgBuildPathJob[BuildPathJob_Finished] = true; - g_rgBuildPathJob[BuildPathJob_Terminated] = true; - g_rgBuildPathJob[BuildPathJob_Successed] = false; + // task[BuildPathTask_IsTerminated] = true; return false; } - @NavArea_SetCostSoFar(g_rgBuildPathJob[BuildPathJob_StartArea], flInitCost); - @NavArea_AddToOpenList(g_rgBuildPathJob[BuildPathJob_StartArea]); + @NavArea_SetCostSoFar(NAVAREA_PTR(iStartArea), flInitCost); + @NavArea_AddToOpenList(NAVAREA_PTR(iStartArea)); // keep track of the area we visit that is closest to the goal - if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct) { - g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_StartArea]; - } - - g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = @NavArea_GetTotalCost(g_rgBuildPathJob[BuildPathJob_StartArea]); + g_rgBuildPathJob[BuildPathJob_ClosestArea] = iStartArea; + g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = @NavArea_GetTotalCost(NAVAREA_PTR(iStartArea)); return true; } NavAreaBuildPathFinish() { - new Struct:sTask = g_rgBuildPathJob[BuildPathJob_Task]; - StructSetCell(sTask, BuildPathTask_IsFinished, true); - StructSetCell(sTask, BuildPathTask_IsSuccessed, g_rgBuildPathJob[BuildPathJob_Successed]); - StructSetCell(sTask, BuildPathTask_IsTerminated, g_rgBuildPathJob[BuildPathJob_Terminated]); + new iTask = g_rgBuildPathJob[BuildPathJob_Task]; + g_rgBuildPathTasks[iTask][BuildPathTask_IsFinished] = true; - new Struct:sNavPath = StructGetCell(sTask, BuildPathTask_Path); - @NavPath_Invalidate(sNavPath); + // @NavPath_Invalidate(g_rgBuildPathTasks[iTask][BuildPathTask_Path]); - if (!g_rgBuildPathJob[BuildPathJob_Terminated]) { + if (!g_rgBuildPathTasks[iTask][BuildPathTask_IsTerminated]) { NavAreaBuildPathSegments(); } - new iCbFuncId = StructGetCell(sTask, BuildPathTask_FinishCallback, Callback_FunctionId); - new iCbFuncPluginId = StructGetCell(sTask, BuildPathTask_FinishCallback, Callback_PluginId); - - if (iCbFuncId != -1 && callfunc_begin_i(iCbFuncId, iCbFuncPluginId)) { - callfunc_push_int(_:sTask); - callfunc_end(); + if (g_rgBuildPathTasks[iTask][BuildPathTask_FinishCallback][Callback_FunctionId] != -1) { + if (callfunc_begin_i(g_rgBuildPathTasks[iTask][BuildPathTask_FinishCallback][Callback_FunctionId], g_rgBuildPathTasks[iTask][BuildPathTask_FinishCallback][Callback_PluginId])) { + callfunc_push_int(iTask); + callfunc_end(); + } } - g_rgBuildPathJob[BuildPathJob_FinishHandled] = true; + g_rgBuildPathJob[BuildPathJob_Released] = true; } NavAreaBuildPathIteration() { - if (g_sNavAreaOpenList == Invalid_Struct) { + static iTask; iTask = g_rgBuildPathJob[BuildPathJob_Task]; + + if (g_iNavAreaOpenList == INVALID_NAV_AREA) { g_rgBuildPathJob[BuildPathJob_Finished] = true; - g_rgBuildPathJob[BuildPathJob_Successed] = false; return; } // get next area to check - static Struct:sArea; sArea = NavAreaPopOpenList(); + static iArea; iArea = NavAreaPopOpenList(); // check if we have found the goal area - if (sArea == g_rgBuildPathJob[BuildPathJob_GoalArea]) { - if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct) { - g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathJob[BuildPathJob_GoalArea]; + if (iArea == g_rgBuildPathTasks[iTask][BuildPathTask_GoalArea]) { + if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != INVALID_NAV_AREA) { + g_rgBuildPathJob[BuildPathJob_ClosestArea] = g_rgBuildPathTasks[iTask][BuildPathTask_GoalArea]; } g_rgBuildPathJob[BuildPathJob_Finished] = true; - g_rgBuildPathJob[BuildPathJob_Successed] = true; + g_rgBuildPathTasks[iTask][BuildPathTask_IsSuccessed] = true; return; } - // search adjacent areas - static bool:bSearchFloor; bSearchFloor = true; - static Array:irgFloorList; irgFloorList = @NavArea_GetAdjacentList(sArea, NORTH); - static iFloorIter; iFloorIter = 0; - static bool:bLadderUp; bLadderUp = true; - static Array:irgLadderList; irgLadderList = Invalid_Array; - static iLadderIter; iLadderIter = 0; - static iLadderTopDir; iLadderTopDir = LADDER_TOP_DIR_AHEAD; + NavAreaBuildPathFloorIteration(TASK_PTR(iTask), NAVAREA_PTR(iArea)); + NavAreaBuildPathLadderUpIteration(TASK_PTR(iTask), NAVAREA_PTR(iArea)); + NavAreaBuildPathLadderDownIteration(TASK_PTR(iTask), NAVAREA_PTR(iArea)); + // we have searched this area + @NavArea_AddToClosedList(NAVAREA_PTR(iArea)); + + g_rgBuildPathTasks[iTask][BuildPathTask_IterationsNum]++; +} + +NavAreaBuildPathFloorIteration(const task[BuildPathTask], const area[NavArea]) { static NavDirType:iDir; - for (iDir = NORTH; iDir < NUM_DIRECTIONS;) { - static rgNavLadder[NavLadder]; - static Struct:sNewArea; sNewArea = Invalid_Struct; - static NavTraverseType:iHow; iHow = GO_NORTH; - - // Get next adjacent area - either on floor or via ladder - if (bSearchFloor) { - // if exhausted adjacent connections in current direction, begin checking next direction - if (iFloorIter >= ArraySize(irgFloorList)) { - iDir++; - - if (iDir < NUM_DIRECTIONS) { - // start next direction - irgFloorList = @NavArea_GetAdjacentList(sArea, iDir); - iFloorIter = 0; - } else { - // checked all directions on floor - check ladders next - bSearchFloor = false; - - irgLadderList = StructGetCell(sArea, NavArea_Ladder, LADDER_UP); - iLadderIter = 0; - iLadderTopDir = LADDER_TOP_DIR_AHEAD; - iDir = NORTH; - } - continue; - } + for (iDir = NORTH; iDir < NUM_DIRECTIONS; ++iDir) { + static Array:irgFloorList; irgFloorList = @NavArea_GetAdjacentList(area, iDir); + static iFloorListSize; iFloorListSize = ArraySize(irgFloorList); - sNewArea = ArrayGetCell(irgFloorList, iFloorIter, _:NavConnect_Area); - iHow = NavTraverseType:iDir; - iFloorIter++; - } else { // search ladders - if (iLadderIter >= ArraySize(irgLadderList)) { - // checked both ladder directions - done - if (!bLadderUp) break; + static iFloor; + for (iFloor = 0; iFloor < iFloorListSize; ++iFloor) { + static iNewArea; iNewArea = ArrayGetCell(irgFloorList, iFloor, _:NavConnect_Area); - // check down ladders - bLadderUp = false; - irgLadderList = StructGetCell(sArea, NavArea_Ladder, LADDER_DOWN); - iLadderIter = 0; + if (iNewArea == INVALID_NAV_AREA) continue; - continue; - } + NavAreaBuildPathProcessNewArea(task, area, NAVAREA_PTR(iNewArea), NavTraverseType:iDir); + } + } +} - ArrayGetArray(irgLadderList, iLadderIter, rgNavLadder[any:0], _:NavLadder); +NavAreaBuildPathLadderUpIteration(const task[BuildPathTask], const area[NavArea]) { + static Array:irgUpLadderList; irgUpLadderList = @NavArea_GetLadder(area, LADDER_UP); + static iUpLadderListSize; iUpLadderListSize = ArraySize(irgUpLadderList); - if (bLadderUp) { - // cannot use this ladder if the ladder bottom is hanging above our head - if (rgNavLadder[NavLadder_IsDangling]) { - iLadderIter++; - continue; - } + static iLadder; + for (iLadder = 0; iLadder < iUpLadderListSize; ++iLadder) { + if (ArrayGetCell(irgUpLadderList, iLadder, _:NavLadder_IsDangling)) continue; - // do not use BEHIND connection, as its very hard to get to when going up a ladder - if (iLadderTopDir == LADDER_TOP_DIR_AHEAD) { - sNewArea = rgNavLadder[NavLadder_TopForwardArea]; - } else if (iLadderTopDir == LADDER_TOP_DIR_LEFT) { - sNewArea = rgNavLadder[NavLadder_TopLeftArea]; - } else if (iLadderTopDir == LADDER_TOP_DIR_RIGHT) { - sNewArea = rgNavLadder[NavLadder_TopRightArea]; - // } else if (iLadderTopDir == LADDER_TOP_DIR_BEHIND) { - // sNewArea = rgNavLadder[NavLadder_TopBehindArea]; - } else { - iLadderIter++; - continue; - } + static iLadderTopDir; + for (iLadderTopDir = LADDER_TOP_DIR_AHEAD; iLadderTopDir < NUM_TOP_DIRECTIONS; ++iLadderTopDir) { + static iNewArea; iNewArea = INVALID_NAV_AREA; - iHow = GO_LADDER_UP; - iLadderTopDir++; - } else { - sNewArea = rgNavLadder[NavLadder_BottomArea]; - iHow = GO_LADDER_DOWN; - iLadderIter++; + switch (iLadderTopDir) { + case LADDER_TOP_DIR_AHEAD: { + iNewArea = ArrayGetCell(irgUpLadderList, iLadder, _:NavLadder_TopForwardArea); + } + case LADDER_TOP_DIR_LEFT: { + iNewArea = ArrayGetCell(irgUpLadderList, iLadder, _:NavLadder_TopLeftArea); + } + case LADDER_TOP_DIR_RIGHT: { + iNewArea = ArrayGetCell(irgUpLadderList, iLadder, _:NavLadder_TopRightArea); + } } + + if (iNewArea == INVALID_NAV_AREA) continue; + + NavAreaBuildPathProcessNewArea(task, area, NAVAREA_PTR(iNewArea), GO_LADDER_UP); } + } +} - if (sNewArea == Invalid_Struct) continue; +NavAreaBuildPathLadderDownIteration(const task[BuildPathTask], const area[NavArea]) { + static Array:irgDownLadderList; irgDownLadderList = @NavArea_GetLadder(area, LADDER_DOWN); + static iDownLadderListSize; iDownLadderListSize = ArraySize(irgDownLadderList); - // don't backtrack - if (sNewArea == sArea) continue; + static iLadder; + for (iLadder = 0; iLadder < iDownLadderListSize; ++iLadder) { + static iNewArea; iNewArea = ArrayGetCell(irgDownLadderList, iLadder, _:NavLadder_BottomArea); - static Float:newCostSoFar; newCostSoFar = 1.0; + if (iNewArea == INVALID_NAV_AREA) continue; - if (g_rgBuildPathJob[BuildPathJob_CostFuncId] != -1 && callfunc_begin_i(g_rgBuildPathJob[BuildPathJob_CostFuncId], g_rgBuildPathJob[BuildPathJob_CostFuncPluginId])) { - callfunc_push_int(_:g_rgBuildPathJob[BuildPathJob_Task]); - callfunc_push_int(_:sNewArea); - callfunc_push_int(_:sArea); - newCostSoFar = Float:callfunc_end(); - } + NavAreaBuildPathProcessNewArea(task, area, NAVAREA_PTR(iNewArea), GO_LADDER_DOWN); + } +} - // check if cost functor says this area is a dead-end - if (newCostSoFar < 0.0) continue; +bool:NavAreaBuildPathProcessNewArea(const task[BuildPathTask], const area[NavArea], newArea[NavArea], const NavTraverseType:iHow) { + if (NAVAREA_INDEX(newArea) == NAVAREA_INDEX(area)) return false; - if ((@NavArea_IsOpen(sNewArea) || @NavArea_IsClosed(sNewArea)) && @NavArea_GetCostSoFar(sNewArea) <= newCostSoFar) { - // this is a worse path - skip it - continue; + static Float:flCost; flCost = 0.0; + + if (task[BuildPathTask_CostCallback][Callback_FunctionId] != -1) { + if (callfunc_begin_i(task[BuildPathTask_CostCallback][Callback_FunctionId], task[BuildPathTask_CostCallback][Callback_PluginId])) { + callfunc_push_int(task[BuildPathTask_Index]); + callfunc_push_int(NAVAREA_INDEX(newArea)); + callfunc_push_int(NAVAREA_INDEX(area)); + flCost = Float:callfunc_end(); } + } - // compute estimate of distance left to go - static Float:vecNewAreaCenter[3]; @NavArea_GetCenter(sNewArea, vecNewAreaCenter); - static Float:newCostRemaining; newCostRemaining = xs_vec_distance(vecNewAreaCenter, g_rgBuildPathJob[BuildPathJob_ActualGoalPos]); + // check if cost functor says this newArea is a dead-end + if (flCost < 0.0) return false; - // track closest area to goal in case path fails - if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != Invalid_Struct && newCostRemaining < g_rgBuildPathJob[BuildPathJob_ClosestAreaDist]) { - g_rgBuildPathJob[BuildPathJob_ClosestArea] = sNewArea; - g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = newCostRemaining; - } + static Float:flNewCostSoFar; flNewCostSoFar = @NavArea_GetCostSoFar(area) + flCost; - @NavArea_SetParent(sNewArea, sArea, iHow); - @NavArea_SetCostSoFar(sNewArea, newCostSoFar); - @NavArea_SetTotalCost(sNewArea, newCostSoFar + newCostRemaining); + if ((@NavArea_IsOpen(newArea) || @NavArea_IsClosed(newArea)) && @NavArea_GetCostSoFar(newArea) <= flNewCostSoFar) { + // this is a worse path - skip it + return false; + } - if (@NavArea_IsClosed(sNewArea)) { - @NavArea_RemoveFromClosedList(sNewArea); - } + // compute estimate of distance left to go + static Float:vecNewAreaCenter[3]; @NavArea_GetCenter(newArea, vecNewAreaCenter); + static Float:flNewCostRemaining; flNewCostRemaining = xs_vec_distance(vecNewAreaCenter, task[BuildPathTask_ActualGoalPos]); - if (@NavArea_IsOpen(sNewArea)) { - // area already on open list, update the list order to keep costs sorted - @NavArea_UpdateOnOpenList(sNewArea); - } else { - @NavArea_AddToOpenList(sNewArea); - } + // track closest area to goal in case path fails + if (g_rgBuildPathJob[BuildPathJob_ClosestArea] != INVALID_NAV_AREA && flNewCostRemaining < g_rgBuildPathJob[BuildPathJob_ClosestAreaDist]) { + g_rgBuildPathJob[BuildPathJob_ClosestArea] = NAVAREA_INDEX(newArea); + g_rgBuildPathJob[BuildPathJob_ClosestAreaDist] = flNewCostRemaining; } - // we have searched this area - @NavArea_AddToClosedList(sArea); + @NavArea_SetParent(newArea, NAVAREA_INDEX(area), iHow); + @NavArea_SetCostSoFar(newArea, flNewCostSoFar); + @NavArea_SetTotalCost(newArea, flNewCostSoFar + flNewCostRemaining); + + if (@NavArea_IsClosed(newArea)) { + @NavArea_RemoveFromClosedList(newArea); + } + + if (@NavArea_IsOpen(newArea)) { + // area already on open list, update the list order to keep costs sorted + @NavArea_UpdateOnOpenList(newArea); + } else { + @NavArea_AddToOpenList(newArea); + } + + return true; } NavAreaBuildPathFrame() { - if (g_rgBuildPathJob[BuildPathJob_Task] != Invalid_Struct) { - if (g_rgBuildPathJob[BuildPathJob_Finished] && g_rgBuildPathJob[BuildPathJob_FinishHandled]) { - @BuildPathTask_Destroy(g_rgBuildPathJob[BuildPathJob_Task]); - g_rgBuildPathJob[BuildPathJob_Task] = Invalid_Struct; + if (g_rgBuildPathJob[BuildPathJob_Task] != INVALID_BUILD_PATH_TASK) { + if (g_rgBuildPathJob[BuildPathJob_Finished] && g_rgBuildPathJob[BuildPathJob_Released]) { + @BuildPathTask_Free(TASK_PTR(g_rgBuildPathJob[BuildPathJob_Task])); + g_rgBuildPathJob[BuildPathJob_Task] = INVALID_BUILD_PATH_TASK; } } // if no job in progress then find new task to start - if (g_rgBuildPathJob[BuildPathJob_Task] == Invalid_Struct) { - if (g_irgBuildPathTasks != Invalid_Array && ArraySize(g_irgBuildPathTasks)) { - new Struct:sTask = ArrayGetCell(g_irgBuildPathTasks, 0); - ArrayDeleteItem(g_irgBuildPathTasks, 0); - NavAreaBuildPathRunTask(sTask); + if (g_rgBuildPathJob[BuildPathJob_Task] == INVALID_BUILD_PATH_TASK) { + if (g_irgBuildPathTasksQueue != Invalid_Array && ArraySize(g_irgBuildPathTasksQueue)) { + static iTask; iTask = ArrayGetCell(g_irgBuildPathTasksQueue, 0); + ArrayDeleteItem(g_irgBuildPathTasksQueue, 0); + NavAreaBuildPathRunTask(TASK_PTR(iTask)); } return; } - // current job finished, process - if (g_rgBuildPathJob[BuildPathJob_Finished]) { - NavAreaBuildPathFinish(); - return; - } - // do path finding iterations - new iIterationsNum = g_rgBuildPathJob[BuildPathJob_MaxIterations]; + static iIterationsNum; iIterationsNum = g_rgBuildPathJob[BuildPathJob_MaxIterations]; for (new i = 0; i < iIterationsNum && !g_rgBuildPathJob[BuildPathJob_Finished]; ++i) { NavAreaBuildPathIteration(); } + + // current job finished, process + if (g_rgBuildPathJob[BuildPathJob_Finished]) { + NavAreaBuildPathFinish(); + } } NavAreaBuildPathSegments() { - static Struct:sTask; sTask = g_rgBuildPathJob[BuildPathJob_Task]; - static Struct:sNavPath; sNavPath = StructGetCell(sTask, BuildPathTask_Path); - static Float:vecStart[3]; StructGetArray(sTask, BuildPathTask_StartPos, vecStart, sizeof(vecStart)); - static Float:vecGoal[3]; StructGetArray(sTask, BuildPathTask_GoalPos, vecGoal, sizeof(vecGoal)); - - @NavPath_Invalidate(sNavPath); + static iTask; iTask = g_rgBuildPathJob[BuildPathJob_Task]; + static Struct:sNavPath; sNavPath = g_rgBuildPathTasks[iTask][BuildPathTask_Path]; static iSegmentCount; iSegmentCount = 0; - new Struct:sEffectiveGoalArea = ( - g_rgBuildPathJob[BuildPathJob_Successed] - ? g_rgBuildPathJob[BuildPathJob_GoalArea] + static iEffectiveGoalArea; iEffectiveGoalArea = ( + g_rgBuildPathTasks[iTask][BuildPathTask_IsSuccessed] + ? g_rgBuildPathTasks[iTask][BuildPathTask_GoalArea] : g_rgBuildPathJob[BuildPathJob_ClosestArea] ); - if (g_rgBuildPathJob[BuildPathJob_StartArea] != g_rgBuildPathJob[BuildPathJob_GoalArea]) { - // Build path by following parent links - for (new Struct:sArea = sEffectiveGoalArea; sArea != Invalid_Struct; sArea = StructGetCell(sArea, NavArea_Parent)) { - iSegmentCount++; - } - + if (g_rgBuildPathTasks[iTask][BuildPathTask_StartArea] != g_rgBuildPathTasks[iTask][BuildPathTask_GoalArea]) { // save room for endpoint - iSegmentCount = min(iSegmentCount, MAX_PATH_SEGMENTS - 1); - - if (iSegmentCount == 0) return false; - + if (iEffectiveGoalArea != INVALID_NAV_AREA) { + iSegmentCount = NavAreaCalculateSegmentCount(NAVAREA_PTR(iEffectiveGoalArea)); + iSegmentCount = min(iSegmentCount, MAX_PATH_SEGMENTS - 1); + } } else { iSegmentCount = 1; } + if (iSegmentCount == 0) { + @NavPath_Invalidate(sNavPath); + return false; + } + static Array:irgSegments; irgSegments = StructGetCell(sNavPath, NavPath_Segments); ArrayResize(irgSegments, iSegmentCount); StructSetCell(sNavPath, NavPath_SegmentCount, iSegmentCount); if (iSegmentCount > 1) { // Prepare segments - static Struct:sArea; sArea = sEffectiveGoalArea; + static iArea; iArea = iEffectiveGoalArea; - for (new i = iSegmentCount - 1; i >= 0; --i) { - static Struct:sSegment; sSegment = @PathSegment_Create(); - StructSetCell(sSegment, PathSegment_Area, sArea); - StructSetCell(sSegment, PathSegment_How, StructGetCell(sArea, NavArea_ParentHow)); + for (new iSegment = iSegmentCount - 1; iSegment >= 0; --iSegment) { + ArraySetCell(irgSegments, iSegment, iArea, _:PathSegment_Area); + ArraySetCell(irgSegments, iSegment, NAVAREA_PTR(iArea)[NavArea_ParentHow], _:PathSegment_How); - ArraySetCell(irgSegments, i, sSegment); - - sArea = StructGetCell(sArea, NavArea_Parent); + iArea = NAVAREA_PTR(iArea)[NavArea_Parent]; } if (!@NavPath_ComputePathPositions(sNavPath)) { @@ -2906,28 +2830,24 @@ NavAreaBuildPathSegments() { } // append path end position - static Struct:sEndSegment; sEndSegment = @PathSegment_Create(); - StructSetCell(sEndSegment, PathSegment_Area, sEffectiveGoalArea); - StructSetArray(sEndSegment, PathSegment_Pos, vecGoal, sizeof(vecGoal)); - StructSetCell(sEndSegment, PathSegment_Pos, @NavArea_GetZ(sEffectiveGoalArea, vecGoal), 2); - StructSetCell(sEndSegment, PathSegment_How, NUM_TRAVERSE_TYPES); - @NavPath_PushSegment(sNavPath, sEndSegment); + static rgEndSegment[PathSegment]; + rgEndSegment[PathSegment_Area] = iEffectiveGoalArea; + rgEndSegment[PathSegment_How] = NUM_TRAVERSE_TYPES; + xs_vec_set(rgEndSegment[PathSegment_Pos], g_rgBuildPathTasks[iTask][BuildPathTask_GoalPos][0], g_rgBuildPathTasks[iTask][BuildPathTask_GoalPos][1], @NavArea_GetZ(NAVAREA_PTR(iEffectiveGoalArea), g_rgBuildPathTasks[iTask][BuildPathTask_GoalPos])); + @NavPath_PushSegment(sNavPath, rgEndSegment); + iSegmentCount++; } else { - @NavPath_BuildTrivialPath(sNavPath, vecStart, vecGoal); + @NavPath_BuildTrivialPath(sNavPath, g_rgBuildPathTasks[iTask][BuildPathTask_StartPos], g_rgBuildPathTasks[iTask][BuildPathTask_GoalPos]); } - if (get_pcvar_bool(g_pCvarDebug)) { - new iSegmentCount = StructGetCell(sNavPath, NavPath_SegmentCount); - for (new i = 1; i < iSegmentCount; ++i) { - static Struct:sPrevSegment; sPrevSegment = ArrayGetCell(irgSegments, i - 1); - static Struct:sNextSegment; sNextSegment = ArrayGetCell(irgSegments, i); - - static Float:vecSrc[3]; StructGetArray(sPrevSegment, PathSegment_Pos, vecSrc, sizeof(vecSrc)); - static Float:vecNext[3]; StructGetArray(sNextSegment, PathSegment_Pos, vecNext, sizeof(vecNext)); + if (g_bDebug) { + for (new iSegment = 1; iSegment < iSegmentCount; ++iSegment) { + static Float:vecSrc[3]; ArrayGetArray2(irgSegments, iSegment - 1, vecSrc, 3, PathSegment_Pos); + static Float:vecNext[3]; ArrayGetArray2(irgSegments, iSegment, vecNext, 3, PathSegment_Pos); static irgColor[3]; - irgColor[0] = floatround(255.0 * (1.0 - (float(i) / iSegmentCount))); - irgColor[1] = floatround(255.0 * (float(i) / iSegmentCount)); + irgColor[0] = floatround(255.0 * (1.0 - (float(iSegment) / iSegmentCount))); + irgColor[1] = floatround(255.0 * (float(iSegment) / iSegmentCount)); irgColor[2] = 0; UTIL_DrawArrow(0, vecSrc, vecNext, irgColor, 255, 30); @@ -2937,84 +2857,115 @@ NavAreaBuildPathSegments() { return true; } -stock NavDirType:OppositeDirection(NavDirType:iDir) { - switch (iDir) { - case NORTH: return SOUTH; - case EAST: return WEST; - case SOUTH: return NORTH; - case WEST: return EAST; +NavAreaCalculateSegmentCount(const goalArea[NavArea]) { + static iCount; iCount = 0; + + static iArea; iArea = NAVAREA_INDEX(goalArea); + + while (iArea != INVALID_NAV_AREA) { + iCount++; + iArea = NAVAREA_PTR(iArea)[NavArea_Parent]; } - return NORTH; + return iCount; } -stock NavDirType:DirectionLeft(NavDirType:iDir) { - switch (iDir) { - case NORTH: return WEST; - case SOUTH: return EAST; - case EAST: return NORTH; - case WEST: return SOUTH; +FindFreeTaskSlot() { + for (new iTask; iTask < MAX_NAV_PATH_TASKS; ++iTask) { + if (g_rgBuildPathTasks[iTask][BuildPathTask_IsFree]) { + return iTask; + } } - return NORTH; + return INVALID_BUILD_PATH_TASK; } -stock NavDirType:DirectionRight(NavDirType:iDir) { - switch (iDir) { - case NORTH: return EAST; - case SOUTH: return WEST; - case EAST: return SOUTH; - case WEST: return NORTH; +// Can we see this area? +// For now, if we can see any corner, we can see the area +// TODO: Need to check LOS to more than the corners for large and/or long areas +stock bool:IsAreaVisible(const Float:vecPos[], const area[NavArea]) { + for (new NavCornerType:iCorner = NORTH_WEST; iCorner < NUM_CORNERS; iCorner++) { + static Float:vecCorner[3]; + @NavArea_GetCorner(area, iCorner, vecCorner); + vecCorner[2] += 0.75 * HumanHeight; + + engfunc(EngFunc_TraceLine, vecPos, vecCorner, IGNORE_MONSTERS, nullptr, g_pTrace); + + static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); + if (flFraction == 1.0) return true; } - return NORTH; + return false; +} + +stock bool:IsEntityWalkable(pEntity, iFlags) { + static szClassName[32]; pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); + + // if we hit a door, assume its walkable because it will open when we touch it + if (equal(szClassName, "func_door") || equal(szClassName, "func_door_rotating")) { + return !!(iFlags & WALK_THRU_DOORS); + } + + if (equal(szClassName, "func_breakable")) { + // if we hit a breakable object, assume its walkable because we will shoot it when we touch it + static Float:flTakeDamage; pev(pEntity, pev_takedamage, flTakeDamage); + if (flTakeDamage == DAMAGE_YES) { + return !!(iFlags & WALK_THRU_BREAKABLES); + } + } + + return false; } -stock Float:GetGroundHeight(const Float:vecPos[3], pIgnoreEnt, Float:vecNormal[3] = {0.0, 0.0, 0.0}) { +stock Float:GetGroundHeight(const Float:vecPos[], pIgnoreEnt, Float:vecNormal[] = {0.0, 0.0, 0.0}) { enum GroundLayerInfo { - Float:GroundLayerInfo_ground, - Float:GroundLayerInfo_normal[3] + Float:GroundLayerInfo_Ground, + Float:GroundLayerInfo_Normal[3] }; + static Float:vecFrom[3]; xs_vec_copy(vecPos, vecFrom); static Float:vecTo[3]; xs_vec_set(vecTo, vecPos[0], vecPos[1], -8192.0); - static pIgnore; pIgnore = pIgnoreEnt; - // new Float:ground = 0.0; - static const Float:flMaxOffset = 100.0; static const Float:flInc = 10.0; - const MAX_GROUND_LAYERS = 16; - static rgLayer[MAX_GROUND_LAYERS][GroundLayerInfo]; + static rgLayer[MAX_NAV_GROUND_LAYERS][GroundLayerInfo]; static iLayerCount; iLayerCount = 0; + static pIgnore; pIgnore = pIgnoreEnt; static Float:flOffset; + for (flOffset = 1.0; flOffset < flMaxOffset; flOffset += flInc) { - static Float:vecFrom[3]; xs_vec_set(vecFrom, vecPos[0], vecPos[1], vecPos[2] + flOffset); + vecFrom[2] = vecPos[2] + flOffset; engfunc(EngFunc_TraceLine, vecFrom, vecTo, IGNORE_MONSTERS, pIgnore, g_pTrace); static Float:flFraction; get_tr2(g_pTrace, TR_flFraction, flFraction); - static bool:bStartSolid; bStartSolid = bool:get_tr2(g_pTrace, TR_StartSolid); - static pHit; pHit = get_tr2(g_pTrace, TR_pHit); - static Float:vecPlaneNormal[3]; get_tr2(g_pTrace, TR_vecPlaneNormal, vecPlaneNormal); - static Float:vecEndPos[3]; get_tr2(g_pTrace, TR_vecEndPos, vecEndPos); - - if (flFraction != 1.0 && pHit > 0) { - // ignoring any entities that we can walk through - if (IsEntityWalkable(pHit, WALK_THRU_DOORS | WALK_THRU_BREAKABLES)) { - pIgnore = pHit; - continue; + + if (flFraction != 1.0) { + static pHit; pHit = get_tr2(g_pTrace, TR_pHit); + if (pHit > 0) { + // ignoring any entities that we can walk through + if (IsEntityWalkable(pHit, WALK_THRU_DOORS | WALK_THRU_BREAKABLES)) { + pIgnore = pHit; + continue; + } } } + static bool:bStartSolid; bStartSolid = bool:get_tr2(g_pTrace, TR_StartSolid); + if (!bStartSolid) { - if (iLayerCount == 0 || vecEndPos[2] > rgLayer[iLayerCount - 1][GroundLayerInfo_ground]) { - rgLayer[iLayerCount][GroundLayerInfo_ground] = vecEndPos[2]; - xs_vec_copy(vecPlaneNormal, rgLayer[iLayerCount][GroundLayerInfo_normal]); + static Float:vecEndPos[3]; get_tr2(g_pTrace, TR_vecEndPos, vecEndPos); + + if (iLayerCount == 0 || vecEndPos[2] > rgLayer[iLayerCount - 1][GroundLayerInfo_Ground]) { + static Float:vecPlaneNormal[3]; get_tr2(g_pTrace, TR_vecPlaneNormal, vecPlaneNormal); + + rgLayer[iLayerCount][GroundLayerInfo_Ground] = vecEndPos[2]; + xs_vec_copy(vecPlaneNormal, rgLayer[iLayerCount][GroundLayerInfo_Normal]); iLayerCount++; - if (iLayerCount == MAX_GROUND_LAYERS) break; + if (iLayerCount == MAX_NAV_GROUND_LAYERS) break; } } } @@ -3023,60 +2974,50 @@ stock Float:GetGroundHeight(const Float:vecPos[3], pIgnoreEnt, Float:vecNormal[3 static i; for (i = 0; i < iLayerCount - 1; i++) { - if (rgLayer[i + 1][GroundLayerInfo_ground] - rgLayer[i][GroundLayerInfo_ground] >= HalfHumanHeight) { + if (rgLayer[i + 1][GroundLayerInfo_Ground] - rgLayer[i][GroundLayerInfo_Ground] >= HalfHumanHeight) { break; } } - xs_vec_copy(rgLayer[i][GroundLayerInfo_normal], vecNormal); + xs_vec_copy(rgLayer[i][GroundLayerInfo_Normal], vecNormal); - return rgLayer[i][GroundLayerInfo_ground]; + return rgLayer[i][GroundLayerInfo_Ground]; } -stock bool:IsEntityWalkable(pEntity, iFlags) { - static szClassName[32]; pev(pEntity, pev_classname, szClassName, charsmax(szClassName)); - - // if we hit a door, assume its walkable because it will open when we touch it - if (equal(szClassName, "func_door") || equal(szClassName, "func_door_rotating")) { - return !!(iFlags & WALK_THRU_DOORS); - } - - if (equal(szClassName, "func_breakable")) { - // if we hit a breakable object, assume its walkable because we will shoot it when we touch it - static Float:flTakeDamage; - pev(pEntity, pev_takedamage, flTakeDamage); - if (flTakeDamage == DAMAGE_YES) { - return !!(iFlags & WALK_THRU_BREAKABLES); - } +stock NavDirType:OppositeDirection(NavDirType:iDir) { + switch (iDir) { + case NORTH: return SOUTH; + case EAST: return WEST; + case SOUTH: return NORTH; + case WEST: return EAST; } - return false; + return NORTH; } -// Can we see this area? -// For now, if we can see any corner, we can see the area -// TODO: Need to check LOS to more than the corners for large and/or long areas -stock bool:IsAreaVisible(const Float:vecPos[3], Struct:sArea) { - static Float:vecCorner[3]; - for (new i = 0; i < _:NUM_CORNERS; i++) { - @NavArea_GetCorner(sArea, NavCornerType:i, vecCorner); - vecCorner[2] += 0.75 * HumanHeight; - - engfunc(EngFunc_TraceLine, vecPos, vecCorner, IGNORE_MONSTERS, nullptr, g_pTrace); +stock NavDirType:DirectionLeft(NavDirType:iDir) { + switch (iDir) { + case NORTH: return WEST; + case SOUTH: return EAST; + case EAST: return NORTH; + case WEST: return SOUTH; + } - static Float:flFraction; - get_tr2(g_pTrace, TR_flFraction, flFraction); + return NORTH; +} - if (flFraction == 1.0) { - // we can see this area - return true; - } +stock NavDirType:DirectionRight(NavDirType:iDir) { + switch (iDir) { + case NORTH: return EAST; + case SOUTH: return WEST; + case EAST: return SOUTH; + case WEST: return NORTH; } - return false; + return NORTH; } -stock AddDirectionVector(Float:vecInput[3], NavDirType:iDir, Float:flAmount) { +stock AddDirectionVector(Float:vecInput[], NavDirType:iDir, Float:flAmount) { switch (iDir) { case NORTH: vecInput[1] -= flAmount; case SOUTH: vecInput[1] += flAmount; @@ -3088,26 +3029,26 @@ stock AddDirectionVector(Float:vecInput[3], NavDirType:iDir, Float:flAmount) { stock DirectionToVector2D(NavDirType:iDir, Float:vecOutput[]) { switch (iDir) { case NORTH: { - vecOutput[0] = 0.0; + vecOutput[0] = 0.0; vecOutput[1] = -1.0; } case SOUTH: { - vecOutput[0] = 0.0; - vecOutput[1] = 1.0; + vecOutput[0] = 0.0; + vecOutput[1] = 1.0; } case EAST: { - vecOutput[0] = 1.0; - vecOutput[1] = 0.0; + vecOutput[0] = 1.0; + vecOutput[1] = 0.0; } case WEST: { vecOutput[0] = -1.0; - vecOutput[1] = 0.0; + vecOutput[1] = 0.0; } } } -stock Float:NormalizeInPlace(const Float:vecSrc[3], Float:vecOut[3]) { - new Float:flLen = xs_vec_len(vecSrc); +stock Float:NormalizeInPlace(const Float:vecSrc[], Float:vecOut[]) { + static Float:flLen; flLen = xs_vec_len(vecSrc); if (flLen > 0) { vecOut[0] = vecSrc[0] / flLen; @@ -3122,7 +3063,7 @@ stock Float:NormalizeInPlace(const Float:vecSrc[3], Float:vecOut[3]) { return flLen; } -stock UTIL_DrawArrow(pPlayer, const Float:vecSrc[3], const Float:vecTarget[3], const irgColor[3] = {255, 255, 255}, iBrightness = 255, iLifeTime = 10, iWidth = 64) { +stock UTIL_DrawArrow(pPlayer, const Float:vecSrc[], const Float:vecTarget[], const irgColor[3] = {255, 255, 255}, iBrightness = 255, iLifeTime = 10, iWidth = 64) { engfunc(EngFunc_MessageBegin, pPlayer ? MSG_ONE : MSG_ALL, SVC_TEMPENTITY, vecSrc, pPlayer); write_byte(TE_BEAMPOINTS); engfunc(EngFunc_WriteCoord, vecTarget[0]); @@ -3144,3 +3085,15 @@ stock UTIL_DrawArrow(pPlayer, const Float:vecSrc[3], const Float:vecTarget[3], c write_byte(0); message_end(); } + +stock ArrayGetArray2(const &Array:irgArray, any:iItem, any:rgOut[], any:iSize, any:iBlock) { + for (new i = 0; i < iSize; ++i) { + rgOut[i] = ArrayGetCell(irgArray, iItem, iBlock + i); + } +} + +stock ArraySetArray2(const &Array:irgArray, any:iItem, const any:rgValue[], any:iSize, any:iBlock) { + for (new i = 0; i < iSize; ++i) { + ArraySetCell(irgArray, iItem, rgValue[i], iBlock + i); + } +} diff --git a/api/navsystem/include/api_navsystem.inc b/api/navsystem/include/api_navsystem.inc index 4cd93cb..b00b8c9 100644 --- a/api/navsystem/include/api_navsystem.inc +++ b/api/navsystem/include/api_navsystem.inc @@ -8,11 +8,11 @@ #include enum NavArea { - Invalid_NavArea = 0 + Invalid_NavArea = -1 }; enum NavBuildPathTask { - Invalid_NavBuildPathTask = 0 + Invalid_NavBuildPathTask = -1 }; enum NavPath { @@ -48,9 +48,14 @@ native NavDirType:Nav_Area_ComputeDirection(NavArea:pArea, const Float:vecPoint[ native Nav_Area_ComputePortal(NavArea:pAreas, NavArea:pOther, NavDirType:iDir, Float:vecCenter[3], &Float:flHalfWidth); native bool:Nav_Area_IsOverlapping(NavArea:pArea, NavArea:pOther); native bool:Nav_Area_IsOverlappingPoint(NavArea:pArea, const Float:vecPoint[3]); +native Float:Nav_Area_GetCostSoFar(NavArea:pArea); native bool:Nav_Path_IsValid(NavPath:pPath); -native Array:Nav_Path_GetSegments(NavPath:pPath); +native Nav_Path_GetSegmentCount(NavPath:pPath); +native Nav_Path_GetSegmentPos(NavPath:pPath, iSegment, Float:vecOut[3]); +native NavTraverseType:Nav_Path_GetSegmentHow(NavPath:pPath, iSegment); +native NavArea:Nav_Path_GetSegmentArea(NavPath:pPath, iSegment); +native bool:Nav_Path_FindClosestPoint(NavPath:pPath, const Float:vecWorldPos[3], iStartIndex, iEndIndex, Float:vecClose[3]); /** * Use the A* algorithm to find the shortest path asynchronous @@ -87,7 +92,4 @@ native bool:Nav_Path_FindTask_IsFinished(NavBuildPathTask:pTask); native bool:Nav_Path_FindTask_IsSuccessed(NavBuildPathTask:pTask); native bool:Nav_Path_FindTask_IsTerminated(NavBuildPathTask:pTask); native any:Nav_Path_FindTask_GetUserToken(NavBuildPathTask:pTask); - -native Nav_Path_Segment_GetPos(NavPathSegment:pSegment, Float:vecOut[3]); -native NavTraverseType:Nav_Path_Segment_GetHow(NavPathSegment:pSegment); -native NavArea:Nav_Path_Segment_GetArea(NavPathSegment:pSegment); +native any:Nav_Path_FindTask_GetIterationsNum(NavBuildPathTask:pTask); diff --git a/api/navsystem/include/api_navsystem_const.inc b/api/navsystem/include/api_navsystem_const.inc index 7c05c2b..f42ea59 100644 --- a/api/navsystem/include/api_navsystem_const.inc +++ b/api/navsystem/include/api_navsystem_const.inc @@ -10,6 +10,9 @@ #define nullptr -1 #define HASH_TABLE_SIZE 256 #define MAX_PATH_SEGMENTS 256 +#define MAX_NAV_AREAS 4096 +#define MAX_NAV_PATH_TASKS 1024 +#define MAX_NAV_GROUND_LAYERS 16 #define UNDEFINED_PLACE 0 #define ANY_PLACE 0xFFFF diff --git a/entities/entity_base_monster.sma b/entities/entity_base_monster.sma index 980809a..7e3f314 100644 --- a/entities/entity_base_monster.sma +++ b/entities/entity_base_monster.sma @@ -15,16 +15,16 @@ #define VERSION "1.0.0" #define AUTHOR "Hedgehog Fog" -#define EVENT_CLIENT 5000 -#define STUDIO_LOOPING 0x0001 - #define IS_PLAYER(%1) (%1 >= 1 && %1 <= MaxClients) #define IS_MONSTER(%1) (!!(pev(%1, pev_flags) & FL_MONSTER)) #define ENTITY_NAME BASE_MONSTER_ENTITY_NAME +#define EVENT_CLIENT 5000 +#define STUDIO_LOOPING 0x0001 #define DIST_TO_CHECK 200.0 #define MONSTER_CUT_CORNER_DIST 8.0 +#define MAX_WORLD_SOUNDS 64 #define CHAR_TEX_CONCRETE 'C' #define CHAR_TEX_METAL 'M' @@ -40,6 +40,14 @@ #define CHAR_TEX_FLESH 'F' #define CHAR_TEX_SNOW 'N' +enum Sound { + Sound_Emitter, + Sound_Type, + Sound_Volume, + Float:Sound_ExpiredTime, + Float:Sound_Origin[3] +}; + enum ModelEvent { ModelEvent_Frame, ModelEvent_Event, @@ -359,16 +367,6 @@ new Float:g_vecAttackDir[3]; new Float:g_flGameTime = 0.0; -#define MAX_WORLD_SOUNDS 64 - -enum Sound { - Sound_Emitter, - Sound_Type, - Sound_Volume, - Float:Sound_ExpiredTime, - Float:Sound_Origin[3] -}; - new Struct:g_rgSharedSchedules[MONSTER_SHARED_SCHED] = { _:Invalid_Struct, ... }; new g_rgSounds[MAX_WORLD_SOUNDS][Sound]; @@ -389,6 +387,7 @@ public plugin_precache() { CE_RegisterHook(ENTITY_NAME, CEFunction_Init, "@Monster_Init"); CE_RegisterHook(ENTITY_NAME, CEFunction_Spawned, "@Monster_Spawned"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Remove, "@Monster_Remove"); CE_RegisterHook(ENTITY_NAME, CEFunction_Kill, "@Monster_Kill"); CE_RegisterHook(ENTITY_NAME, CEFunction_Think, "@Monster_Think"); @@ -415,6 +414,27 @@ public plugin_precache() { CE_RegisterVirtualMethod(ENTITY_NAME, MeleeAttack1, "@Monster_MeleeAttack1"); CE_RegisterVirtualMethod(ENTITY_NAME, MeleeAttack2, "@Monster_MeleeAttack2"); + CE_RegisterVirtualMethod(ENTITY_NAME, IsCurTaskContinuousMove, "@Monster_IsCurTaskContinuousMove"); + CE_RegisterVirtualMethod(ENTITY_NAME, GetScheduleOfType, "@Monster_GetScheduleOfType", CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, GetSchedule, "@Monster_GetSchedule"); + CE_RegisterVirtualMethod(ENTITY_NAME, SetActivity, "@Monster_SetActivity", CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, ChangeSchedule, "@Monster_ChangeSchedule", CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, RunTask, "@Monster_RunTask", CE_MP_Cell, CE_MP_Cell); + CE_RegisterVirtualMethod(ENTITY_NAME, StartTask, "@Monster_StartTask", CE_MP_Cell, CE_MP_Cell); + + CE_RegisterVirtualMethod(ENTITY_NAME, HandlePathTask, "@Monster_HandlePathTask"); + CE_RegisterVirtualMethod(ENTITY_NAME, MoveExecute, "@Monster_MoveExecute", CE_MP_Cell, CE_MP_FloatArray, 3, CE_MP_Float); + + CE_RegisterMethod(ENTITY_NAME, SetConditions, "@Monster_SetConditions", CE_MP_Cell); + CE_RegisterMethod(ENTITY_NAME, ClearConditions, "@Monster_ClearConditions", CE_MP_Cell); + CE_RegisterMethod(ENTITY_NAME, HasConditions, "@Monster_HasConditions", CE_MP_Cell); + CE_RegisterMethod(ENTITY_NAME, HasAllConditions, "@Monster_HasAllConditions", CE_MP_Cell); + CE_RegisterMethod(ENTITY_NAME, Remember, "@Monster_Remember", CE_MP_Cell); + CE_RegisterMethod(ENTITY_NAME, Forget, "@Monster_Forget", CE_MP_Cell); + CE_RegisterMethod(ENTITY_NAME, HasMemory, "@Monster_HasMemory", CE_MP_Cell); + CE_RegisterMethod(ENTITY_NAME, HasAllMemory, "@Monster_HasAllMemory", CE_MP_Cell); + + CE_RegisterMethod(ENTITY_NAME, GetSharedSchedule, "@Monster_GetSharedSchedule", CE_MP_Cell); CE_RegisterMethod(ENTITY_NAME, MoveToEnemy, "@Monster_MoveToEnemy", CE_MP_Cell, CE_MP_Float); CE_RegisterMethod(ENTITY_NAME, MoveToTarget, "@Monster_MoveToTarget", CE_MP_Cell, CE_MP_Float); CE_RegisterMethod(ENTITY_NAME, MoveToLocation, "@Monster_MoveToLocation", CE_MP_Cell, CE_MP_Float, CE_MP_FloatArray, 3); @@ -443,8 +463,6 @@ public plugin_init() { RegisterHam(Ham_Classify, CE_BASE_CLASSNAME, "HamHook_Base_Classify", .Post = 0); RegisterHam(Ham_TraceAttack, CE_BASE_CLASSNAME, "HamHook_Base_TraceAttack", .Post = 0); - - register_forward(FM_EmitSound, "FMHook_EmitSound"); } public HamHook_Base_Classify(pEntity) { @@ -536,6 +554,7 @@ public plugin_end() { CE_SetMember(this, m_bSequenceFinished, false); CE_SetMember(this, m_iActivity, 0); CE_SetMember(this, m_iMovementGoal, 0); + CE_SetMember(this, m_pPathTask, Invalid_NavBuildPathTask); CE_SetMember(this, m_flMoveWaitTime, 0.0); CE_SetMember(this, m_flHungryTime, 0.0); CE_SetMember(this, m_pGoalEnt, FM_NULLENT); @@ -619,7 +638,15 @@ bool:@Monster_ShouldGibMonster(this, iGib) { return false; } -@Monster_Remove(this) {} +@Monster_Remove(this) { + @Monster_RouteNew(this); + + new Array:irgRoute = CE_GetMember(this, m_irgRoute); + ArrayDestroy(irgRoute); + + new Array:irgOldEnemies = CE_GetMember(this, m_irgOldEnemies); + ArrayDestroy(irgOldEnemies); +} @Monster_Think(this) { g_flGameTime = get_gametime(); @@ -810,9 +837,6 @@ stock Float:UTIL_FrameRatioToFrame(Float:flRatio, iFramesNum) { } @Monster_HandleAnimEvent(this, iEventId, const rgOptions[]) { - // static iSequence; iSequence = pev(this, pev_sequence); - // client_print_color(0, print_team_red, "^3[Event Detected]^1 Entity: ^4%d^1, Sequence: ^4%d^1, Event: ^4%d^1, Options: ^4^"%s^"^1", this, iSequence, iEventId, rgOptions); - switch (iEventId) { case SCRIPT_EVENT_DEAD: { if (CE_GetMember(this, m_iMonsterState) == MONSTER_STATE_SCRIPT) { @@ -889,23 +913,9 @@ stock Float:UTIL_FrameRatioToFrame(Float:flRatio, iFramesNum) { } Float:@Monster_GetPathCost(this, NavArea:newArea, NavArea:prevArea, iMoveFlags) { - static Float:vecMins[3]; pev(this, pev_mins, vecMins); - - static Float:vecSrc[3]; - - if (prevArea != Invalid_NavArea) { - Nav_Area_GetCenter(prevArea, vecSrc); - } else { - pev(this, pev_origin, vecSrc); - vecSrc[2] += vecMins[2]; - } - - static Float:vecTarget[3]; Nav_Area_GetClosestPointOnArea(newArea, vecSrc, vecTarget); + if (prevArea == Invalid_NavArea) return 1.0; - vecTarget[2] = Nav_Area_GetZ(newArea); - - vecSrc[2] += -vecMins[2]; - vecTarget[2] += -vecMins[2]; + static Float:vecMins[3]; pev(this, pev_mins, vecMins); static pTargetEnt; pTargetEnt = FM_NULLENT; if (iMoveFlags & MF_TO_ENEMY) { @@ -914,13 +924,30 @@ Float:@Monster_GetPathCost(this, NavArea:newArea, NavArea:prevArea, iMoveFlags) pTargetEnt = CE_GetMember(this, m_pTargetEnt); } + static Float:vecSrc[3]; + Nav_Area_GetCenter(prevArea, vecSrc); + vecSrc[2] += -vecMins[2]; + + static Float:vecMiddle[3]; + Nav_Area_GetClosestPointOnArea(newArea, vecSrc, vecMiddle); + vecMiddle[2] += -vecMins[2]; + + static Float:vecTarget[3]; + Nav_Area_GetCenter(newArea, vecTarget); + vecTarget[2] += -vecMins[2]; + static Float:flDist; - if (@Monster_CheckLocalMove(this, vecSrc, vecTarget, pTargetEnt, true, flDist) != MONSTER_LOCALMOVE_VALID) { + if (@Monster_CheckLocalMove(this, vecSrc, vecMiddle, pTargetEnt, false, flDist) != MONSTER_LOCALMOVE_VALID) { return -1.0; } + if (@Monster_CheckLocalMove(this, vecMiddle, vecTarget, pTargetEnt, false, flDist) != MONSTER_LOCALMOVE_VALID) { + return -1.0; + } - return 1.0; + static Float:flCost; flCost = get_distance_f(vecSrc, vecTarget); + + return flCost; } /*--------------------------------[ Function ]--------------------------------*/ @@ -952,25 +979,21 @@ public HamHook_Base_TakeDamage_Post(pEntity, pInflictor, pAttacker, Float:flDama /*--------------------------------[ Callbacks ]--------------------------------*/ -public Float:NavPathCost(NavBuildPathTask:pTask, NavArea:newArea, NavArea:prevArea) { - static pEntity; pEntity = Nav_Path_FindTask_GetUserToken(pTask); - if (!pEntity) return 1.0; +#if defined _api_navsystem_included + public Float:NavPathCost(NavBuildPathTask:pTask, NavArea:newArea, NavArea:prevArea) { + static pEntity; pEntity = Nav_Path_FindTask_GetUserToken(pTask); + if (!pEntity) return 1.0; - return @Monster_GetPathCost(pEntity, newArea, prevArea, MF_TO_ENEMY); -} + return @Monster_GetPathCost(pEntity, newArea, prevArea, MF_TO_ENEMY); + // return CE_CallMethod(pEntity, GetPathCost, newArea, prevArea); + } -public NavPathCallback(NavBuildPathTask:pTask) { - #if defined _api_navsystem_included + public NavPathCallback(NavBuildPathTask:pTask) { new pEntity = Nav_Path_FindTask_GetUserToken(pTask); - if (Nav_Path_FindTask_IsSuccessed(pTask)) { - new NavPath:pPath = Nav_Path_FindTask_GetPath(pTask); - @Monster_MoveNavPath(pEntity, pPath); - } - - @Monster_ReleasePathTask(pEntity); - #endif -} + return CE_CallMethod(pEntity, HandlePathTask); + } +#endif /*--------------------------------[ Stocks ]--------------------------------*/ @@ -1323,10 +1346,14 @@ DestroySharedSchedule() { } } -Struct:GetSharedSchedule(MONSTER_SHARED_SCHED:iSchedule) { +Struct:_GetSharedSchedule(MONSTER_SHARED_SCHED:iSchedule) { return g_rgSharedSchedules[iSchedule]; } +Struct:@Monster_GetSharedSchedule(this, MONSTER_SHARED_SCHED:iSchedule) { + return _GetSharedSchedule(iSchedule); +} + Struct:CreateSchedule(const rgTask[][MONSTER_TASK_DATA], iSize, iInterruptMask, iSoundMask, MONSTER_SHARED_SCHED:iSharedId = MONSTER_SHARED_SCHED_INVALID) { new Struct:sSchedule = StructCreate(MONSTER_SCHEDULE_DATA); StructSetCell(sSchedule, MONSTER_SCHEDULE_DATA_SHARED_ID, iSharedId); @@ -1413,14 +1440,14 @@ Struct:CreateSchedule(const rgTask[][MONSTER_TASK_DATA], iSize, iInterruptMask, if (@Monster_HasConditions(this, COND_TASK_FAILED) && iMonsterState == iIdealMonsterState) { static MONSTER_SCHEDULE_TYPE:iFailSchedule; iFailSchedule = CE_GetMember(this, m_iFailSchedule); - pNewSchedule = @Monster_GetScheduleOfType(this, iFailSchedule != MONSTER_SCHED_NONE ? iFailSchedule : MONSTER_SCHED_FAIL); + pNewSchedule = CE_CallMethod(this, GetScheduleOfType, iFailSchedule != MONSTER_SCHED_NONE ? iFailSchedule : MONSTER_SCHED_FAIL); } else { @Monster_SetState(this, iIdealMonsterState); - pNewSchedule = @Monster_GetSchedule(this); + pNewSchedule = CE_CallMethod(this, GetSchedule); } - @Monster_ChangeSchedule(this, pNewSchedule); + CE_CallMethod(this, ChangeSchedule, pNewSchedule); } static MONSTER_TASK_STATUS:iTaskStatus; iTaskStatus = CE_GetMember(this, m_iTaskStatus); @@ -1430,14 +1457,14 @@ Struct:CreateSchedule(const rgTask[][MONSTER_TASK_DATA], iSize, iInterruptMask, if (@Monster_GetTask(this, rgTask) == -1) return; @Monster_TaskBegin(this); - @Monster_StartTask(this, rgTask[MONSTER_TASK_DATA_ID], rgTask[MONSTER_TASK_DATA_DATA]); + CE_CallMethod(this, StartTask, rgTask[MONSTER_TASK_DATA_ID], rgTask[MONSTER_TASK_DATA_DATA]); } static Activity:iActivity; iActivity = CE_GetMember(this, m_iActivity); static Activity:iIdealActivity; iIdealActivity = CE_GetMember(this, m_iIdealActivity); if (iActivity != iIdealActivity) { - @Monster_SetActivity(this, iIdealActivity); + CE_CallMethod(this, SetActivity, iIdealActivity); } if (!@Monster_TaskIsComplete(this) && iTaskStatus != MONSTER_TASK_STATUS_NEW) break; @@ -1447,17 +1474,22 @@ Struct:CreateSchedule(const rgTask[][MONSTER_TASK_DATA], iSize, iInterruptMask, static rgTask[MONSTER_TASK_DATA]; if (@Monster_GetTask(this, rgTask) == -1) return; - @Monster_RunTask(this, rgTask[MONSTER_TASK_DATA_ID], rgTask[MONSTER_TASK_DATA_DATA]); + CE_CallMethod(this, RunTask, rgTask[MONSTER_TASK_DATA_ID], rgTask[MONSTER_TASK_DATA_DATA]); + + // CE_CallMethod(this, RunTaskOverlay); } static Activity:iActivity; iActivity = CE_GetMember(this, m_iActivity); static Activity:iIdealActivity; iIdealActivity = CE_GetMember(this, m_iIdealActivity); if (iActivity != iIdealActivity) { - @Monster_SetActivity(this, iIdealActivity); + CE_CallMethod(this, SetActivity, iIdealActivity); } } +// @Monster_StartTaskOverlay(this) {} +// @Monster_RunTaskOverlay(this) {} + @Monster_MonsterInit(this) { static Float:vecAngles[3]; pev(this, pev_angles, vecAngles); static Float:flHealth; pev(this, pev_health, flHealth); @@ -1492,7 +1524,7 @@ Struct:CreateSchedule(const rgTask[][MONSTER_TASK_DATA], iSize, iInterruptMask, CE_SetMember(this, m_pCine, FM_NULLENT); CE_SetMember(this, m_bSequenceFinished, false); CE_SetMember(this, m_iActivity, 0); - CE_SetMember(this, m_iMovementGoal, 0); + CE_SetMember(this, m_iMovementGoal, MOVEGOAL_NONE); CE_SetMember(this, m_flMoveWaitTime, 0.0); CE_SetMember(this, m_flHungryTime, 0.0); CE_SetMember(this, m_pGoalEnt, FM_NULLENT); @@ -1587,7 +1619,7 @@ Struct:CreateSchedule(const rgTask[][MONSTER_TASK_DATA], iSize, iInterruptMask, @Monster_RefreshRoute(this); @Monster_SetState(this, MONSTER_STATE_IDLE); - @Monster_ChangeSchedule(this, @Monster_GetScheduleOfType(this, MONSTER_SCHED_IDLE_WALK)); + CE_CallMethod(this, ChangeSchedule, CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_IDLE_WALK)); } } @@ -1597,8 +1629,8 @@ Struct:CreateSchedule(const rgTask[][MONSTER_TASK_DATA], iSize, iInterruptMask, if (!equal(szTargetname, NULL_STRING)) { @Monster_SetState(this, MONSTER_STATE_IDLE); - @Monster_SetActivity(this, ACT_IDLE); - @Monster_ChangeSchedule(this, @Monster_GetScheduleOfType(this, MONSTER_SCHED_WAIT_TRIGGER)); + CE_CallMethod(this, SetActivity, ACT_IDLE); + CE_CallMethod(this, ChangeSchedule, CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_WAIT_TRIGGER)); } set_pev(this, pev_nextthink, g_flGameTime + random_float(0.1, 0.4)); @@ -2020,15 +2052,15 @@ bool:@Monster_CanCheckAttacks(this) { if (@Monster_HasHumanGibs(this)) { if (get_cvar_float("violence_hgibs") != 0.0) { // TODO: Implement gibs - // @Entity_SpawnHeadGib(this); - // @Entity_SpawnRandomGibs(this, 4, 1); // throw some human gibs. + // @Monster_SpawnHeadGib(this); + // @Monster_SpawnRandomGibs(this, 4, 1); // throw some human gibs. } bGibbed = true; } else if (@Monster_HasAlienGibs(this)) { if (get_cvar_float("violence_agibs") != 0.0) { // TODO: Implement gibs - // @Entity_SpawnRandomGibs(this, 4, 0); // Throw alien gibs + // @Monster_SpawnRandomGibs(this, 4, 0); // Throw alien gibs } bGibbed = true; @@ -2073,12 +2105,12 @@ bool:@Monster_CanCheckAttacks(this) { if (flRenderAmt > 7.0) { set_pev(this, pev_renderamt, flRenderAmt - 7.0); set_pev(this, pev_nextthink, g_flGameTime + 0.1); - } else { + } else { set_pev(this, pev_renderamt, 0.0); set_pev(this, pev_nextthink, g_flGameTime + 0.1); CE_CallMethod(this, SetThink, "@Monster_SUB_Remove"); - } + } } @Monster_SUB_Remove(this) { @@ -2230,6 +2262,8 @@ bool:@Monster_CheckMeleeAttack2(this, Float:flDot, Float:flDistance) { @Monster_PrescheduleThink(this) {} @Monster_Move(this, Float:flInterval) { + if (@Monster_HasConditions(this, COND_WAIT_FOR_PATH)) return; + if (@Monster_IsRouteClear(this)) { if (CE_GetMember(this, m_iMovementGoal) == MOVEGOAL_NONE || !@Monster_RefreshRoute(this)) { @Monster_TaskFail(this); @@ -2246,6 +2280,8 @@ bool:@Monster_CheckMeleeAttack2(this, Float:flDot, Float:flDistance) { static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + if (!ArraySize(irgRoute)) return; + static rgWaypoint[MONSTER_WAYPOINT]; ArrayGetArray(irgRoute, CE_GetMember(this, m_iRouteIndex), rgWaypoint[any:0], _:MONSTER_WAYPOINT); static Float:flWaypointDist; flWaypointDist = xs_vec_distance_2d(vecOrigin, rgWaypoint[MONSTER_WAYPOINT_LOCATION]); static Float:flCheckDist; flCheckDist = floatmin(flWaypointDist, DIST_TO_CHECK); @@ -2286,7 +2322,6 @@ bool:@Monster_CheckMeleeAttack2(this, Float:flDot, Float:flDistance) { } } else { static Float:vecApex[3]; - if (@Monster_Triangulate(this, vecOrigin, rgWaypoint[MONSTER_WAYPOINT_LOCATION], flDist, pTargetEnt, vecApex)) { @Monster_RouteSimplify(this, pTargetEnt); @Monster_InsertWaypoint(this, vecApex, MF_TO_DETOUR); @@ -2328,7 +2363,7 @@ bool:@Monster_CheckMeleeAttack2(this, Float:flDot, Float:flDistance) { flInterval = flCheckDist / flGroundSpeed; } - @Monster_MoveExecute(this, pTargetEnt, vecDir, flInterval); + CE_CallMethod(this, MoveExecute, pTargetEnt, vecDir, flInterval); if (@Monster_MovementIsComplete(this)) { @Monster_Stop(this); @@ -2358,6 +2393,15 @@ bool:@Monster_CheckMeleeAttack2(this, Float:flDot, Float:flDistance) { ArrayInsertArrayBefore(irgRoute, iRouteIndex, rgWaypoint[any:0]); } +@Monster_PushWaypoint(this, const Float:vecLocation[3], iMoveFlag) { + new rgWaypoint[MONSTER_WAYPOINT]; + xs_vec_copy(vecLocation, rgWaypoint[MONSTER_WAYPOINT_LOCATION]); + rgWaypoint[MONSTER_WAYPOINT_TYPE] = iMoveFlag | MF_IS_GOAL; + + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + ArrayPushArray(irgRoute, rgWaypoint[any:0]); +} + bool:@Monster_ShouldAdvanceRoute(this, Float:flWaypointDist) { return flWaypointDist <= MONSTER_CUT_CORNER_DIST; } @@ -2375,7 +2419,7 @@ bool:@Monster_ShouldAdvanceRoute(this, Float:flWaypointDist) { if (rgCurrentWaypoint[MONSTER_WAYPOINT_TYPE] & MF_IS_GOAL) { if (flDistance < Float:CE_GetMember(this, m_flGroundSpeed) * 0.2) { - @Monster_MovementComplete(this); + @Monster_MovementComplete(this); } return; @@ -2545,6 +2589,19 @@ bool:@Monster_PopEnemy(this) { return rgTask[MONSTER_TASK_DATA_ID]; } +@Monster_IsCurTaskContinuousMove(this) { + static rgTask[MONSTER_TASK_DATA]; + if (@Monster_GetTask(this, rgTask) == -1) return false; + + switch (rgTask[MONSTER_TASK_DATA_ID]) { + case TASK_WAIT_FOR_MOVEMENT: { + return true; + } + } + + return false; +} + bool:@Monster_CanActiveIdle(this) { return false; } @@ -2589,37 +2646,37 @@ Struct:@Monster_GetSchedule(this) { switch (iMonsterState) { case MONSTER_STATE_PRONE: { - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_BARNACLE_VICTIM_GRAB); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_BARNACLE_VICTIM_GRAB); } case MONSTER_STATE_IDLE: { if (@Monster_HasConditions(this, COND_HEAR_SOUND)) { - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_ALERT_FACE); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_ALERT_FACE); } else if (!@Monster_IsRouteClear(this)) { - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_IDLE_WALK); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_IDLE_WALK); } else { - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_IDLE_STAND); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_IDLE_STAND); } } case MONSTER_STATE_ALERT: { if (@Monster_HasConditions(this, COND_ENEMY_DEAD) && @Monster_LookupActivity(this, ACT_VICTORY_DANCE) != ACTIVITY_NOT_AVAILABLE) { - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_VICTORY_DANCE); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_VICTORY_DANCE); } if (@Monster_HasConditions(this, COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE)) { static Float:flFieldOfView; flFieldOfView = CE_GetMember(this, m_flFieldOfView); if (floatabs(@Monster_YawDiff(this)) < (1.0 - flFieldOfView) * 60) { - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_TAKE_COVER_FROM_ORIGIN); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_TAKE_COVER_FROM_ORIGIN); } - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_ALERT_SMALL_FLINCH); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_ALERT_SMALL_FLINCH); } if (@Monster_HasConditions(this, COND_HEAR_SOUND)) { - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_ALERT_FACE); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_ALERT_FACE); } - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_ALERT_STAND); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_ALERT_STAND); } case MONSTER_STATE_COMBAT: { if (@Monster_HasConditions(this, COND_ENEMY_DEAD)) { @@ -2631,48 +2688,48 @@ Struct:@Monster_GetSchedule(this) { @Monster_SetState(this, MONSTER_STATE_ALERT); } - return @Monster_GetSchedule(this); + return CE_CallMethod(this, GetSchedule); } if (@Monster_HasConditions(this, COND_NEW_ENEMY)) { - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_WAKE_ANGRY); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_WAKE_ANGRY); } if (@Monster_HasConditions(this, COND_LIGHT_DAMAGE) && !@Monster_HasMemory(this, MEMORY_FLINCHED)) { - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_SMALL_FLINCH); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_SMALL_FLINCH); } if (!@Monster_HasConditions(this, COND_SEE_ENEMY)) { if (!@Monster_HasConditions(this, COND_ENEMY_OCCLUDED)) { - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_COMBAT_FACE); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_COMBAT_FACE); } - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_CHASE_ENEMY); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_CHASE_ENEMY); } - if (@Monster_HasConditions(this, COND_CAN_RANGE_ATTACK1)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_RANGE_ATTACK1); - if (@Monster_HasConditions(this, COND_CAN_RANGE_ATTACK2)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_RANGE_ATTACK2); - if (@Monster_HasConditions(this, COND_CAN_MELEE_ATTACK1)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_MELEE_ATTACK1); - if (@Monster_HasConditions(this, COND_CAN_MELEE_ATTACK2)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_MELEE_ATTACK2); - if (!@Monster_HasConditions(this, COND_CAN_RANGE_ATTACK1 | COND_CAN_MELEE_ATTACK1)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_CHASE_ENEMY); - if (!@Monster_FacingIdeal(this)) return @Monster_GetScheduleOfType(this, MONSTER_SCHED_COMBAT_FACE); + if (@Monster_HasConditions(this, COND_CAN_RANGE_ATTACK1)) return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_RANGE_ATTACK1); + if (@Monster_HasConditions(this, COND_CAN_RANGE_ATTACK2)) return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_RANGE_ATTACK2); + if (@Monster_HasConditions(this, COND_CAN_MELEE_ATTACK1)) return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_MELEE_ATTACK1); + if (@Monster_HasConditions(this, COND_CAN_MELEE_ATTACK2)) return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_MELEE_ATTACK2); + if (!@Monster_HasConditions(this, COND_CAN_RANGE_ATTACK1 | COND_CAN_MELEE_ATTACK1)) return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_CHASE_ENEMY); + if (!@Monster_FacingIdeal(this)) return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_COMBAT_FACE); } case MONSTER_STATE_DEAD: { - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_DIE); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_DIE); } case MONSTER_STATE_SCRIPT: { new pCine = CE_GetMember(this, m_pCine); if (!pCine) { @Monster_CineCleanup(this); - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_IDLE_STAND); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_IDLE_STAND); } - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_AISCRIPT); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_AISCRIPT); } } - return GetSharedSchedule(MONSTER_SHARED_SCHED_ERROR); + return _GetSharedSchedule(MONSTER_SHARED_SCHED_ERROR); } Struct:@Monster_GetScheduleOfType(this, MONSTER_SCHEDULE_TYPE:iType) { @@ -2682,57 +2739,57 @@ Struct:@Monster_GetScheduleOfType(this, MONSTER_SCHEDULE_TYPE:iType) { if (!pCine) { @Monster_CineCleanup(this); - return @Monster_GetScheduleOfType(this, MONSTER_SCHED_IDLE_STAND); + return CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHED_IDLE_STAND); } new iMoveTo = CE_GetMember(pCine, "iMoveTo"); switch (iMoveTo) { - case 0, 4: return GetSharedSchedule(MONSTER_SHARED_SCHED_WAIT_SCRIPT); - case 1: return GetSharedSchedule(MONSTER_SHARED_SCHED_WALK_TO_SCRIPT); - case 2: return GetSharedSchedule(MONSTER_SHARED_SCHED_RUN_TO_SCRIPT); - case 5: return GetSharedSchedule(MONSTER_SHARED_SCHED_FACE_SCRIPT); + case 0, 4: return _GetSharedSchedule(MONSTER_SHARED_SCHED_WAIT_SCRIPT); + case 1: return _GetSharedSchedule(MONSTER_SHARED_SCHED_WALK_TO_SCRIPT); + case 2: return _GetSharedSchedule(MONSTER_SHARED_SCHED_RUN_TO_SCRIPT); + case 5: return _GetSharedSchedule(MONSTER_SHARED_SCHED_FACE_SCRIPT); } } case MONSTER_SCHED_IDLE_STAND: { if (random(14) == 0 && @Monster_CanActiveIdle(this)) { - return GetSharedSchedule(MONSTER_SHARED_SCHED_ACTIVE_IDLE); + return _GetSharedSchedule(MONSTER_SHARED_SCHED_ACTIVE_IDLE); } - return GetSharedSchedule(MONSTER_SHARED_SCHED_IDLE_STAND); - } - case MONSTER_SCHED_IDLE_WALK: return GetSharedSchedule(MONSTER_SHARED_SCHED_IDLE_WALK); - case MONSTER_SCHED_WAIT_TRIGGER: return GetSharedSchedule(MONSTER_SHARED_SCHED_WAIT_TRIGGER); - case MONSTER_SCHED_WAKE_ANGRY: return GetSharedSchedule(MONSTER_SHARED_SCHED_WAKE_ANGRY); - case MONSTER_SCHED_ALERT_FACE: return GetSharedSchedule(MONSTER_SHARED_SCHED_ALERT_FACE); - case MONSTER_SCHED_ALERT_STAND: return GetSharedSchedule(MONSTER_SHARED_SCHED_ALERT_STAND); - case MONSTER_SCHED_COMBAT_STAND: return GetSharedSchedule(MONSTER_SHARED_SCHED_COMBAT_STAND); - case MONSTER_SCHED_COMBAT_FACE: return GetSharedSchedule(MONSTER_SHARED_SCHED_COMBAT_FACE); - case MONSTER_SCHED_CHASE_ENEMY: return GetSharedSchedule(MONSTER_SHARED_SCHED_CHASE_ENEMY); - case MONSTER_SCHED_CHASE_ENEMY_FAILED: return GetSharedSchedule(MONSTER_SHARED_SCHED_FAIL); - case MONSTER_SCHED_SMALL_FLINCH: return GetSharedSchedule(MONSTER_SHARED_SCHED_SMALL_FLINCH); - case MONSTER_SCHED_ALERT_SMALL_FLINCH: return GetSharedSchedule(MONSTER_SHARED_SCHED_ALERT_SMALL_FLINCH); - case MONSTER_SCHED_RELOAD: return GetSharedSchedule(MONSTER_SHARED_SCHED_RELOAD); - case MONSTER_SCHED_ARM_WEAPON: return GetSharedSchedule(MONSTER_SHARED_SCHED_ARM_WEAPON); - case MONSTER_SCHED_STANDOFF: return GetSharedSchedule(MONSTER_SHARED_SCHED_STANDOFF); - case MONSTER_SCHED_RANGE_ATTACK1: return GetSharedSchedule(MONSTER_SHARED_SCHED_RANGE_ATTACK1); - case MONSTER_SCHED_RANGE_ATTACK2: return GetSharedSchedule(MONSTER_SHARED_SCHED_RANGE_ATTACK2); - case MONSTER_SCHED_MELEE_ATTACK1: return GetSharedSchedule(MONSTER_SHARED_SCHED_MELEE_ATTACK1); - case MONSTER_SCHED_MELEE_ATTACK2: return GetSharedSchedule(MONSTER_SHARED_SCHED_MELEE_ATTACK2); - case MONSTER_SCHED_SPECIAL_ATTACK1: return GetSharedSchedule(MONSTER_SHARED_SCHED_SPECIAL_ATTACK1); - case MONSTER_SCHED_SPECIAL_ATTACK2: return GetSharedSchedule(MONSTER_SHARED_SCHED_SPECIAL_ATTACK2); - case MONSTER_SCHED_TAKE_COVER_FROM_BEST_SOUND: return GetSharedSchedule(MONSTER_SHARED_SCHED_TAKE_COVER_FROM_BEST_SOUND); - case MONSTER_SCHED_TAKE_COVER_FROM_ENEMY: return GetSharedSchedule(MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ENEMY); - case MONSTER_SCHED_COWER: return GetSharedSchedule(MONSTER_SHARED_SCHED_COWER); - case MONSTER_SCHED_AMBUSH: return GetSharedSchedule(MONSTER_SHARED_SCHED_AMBUSH); - case MONSTER_SCHED_BARNACLE_VICTIM_GRAB: return GetSharedSchedule(MONSTER_SHARED_SCHED_BARNACLE_VICTIM_GRAB); - case MONSTER_SCHED_BARNACLE_VICTIM_CHOMP: return GetSharedSchedule(MONSTER_SHARED_SCHED_BARNACLE_VICTIM_CHOMP); - case MONSTER_SCHED_INVESTIGATE_SOUND: return GetSharedSchedule(MONSTER_SHARED_SCHED_INVESTIGATE_SOUND); - case MONSTER_SCHED_DIE: return GetSharedSchedule(MONSTER_SHARED_SCHED_DIE); - case MONSTER_SCHED_TAKE_COVER_FROM_ORIGIN: return GetSharedSchedule(MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ORIGIN); - case MONSTER_SCHED_VICTORY_DANCE: return GetSharedSchedule(MONSTER_SHARED_SCHED_VICTORY_DANCE); - case MONSTER_SCHED_FAIL: return GetSharedSchedule(MONSTER_SHARED_SCHED_FAIL); - default: return GetSharedSchedule(MONSTER_SHARED_SCHED_IDLE_STAND); + return _GetSharedSchedule(MONSTER_SHARED_SCHED_IDLE_STAND); + } + case MONSTER_SCHED_IDLE_WALK: return _GetSharedSchedule(MONSTER_SHARED_SCHED_IDLE_WALK); + case MONSTER_SCHED_WAIT_TRIGGER: return _GetSharedSchedule(MONSTER_SHARED_SCHED_WAIT_TRIGGER); + case MONSTER_SCHED_WAKE_ANGRY: return _GetSharedSchedule(MONSTER_SHARED_SCHED_WAKE_ANGRY); + case MONSTER_SCHED_ALERT_FACE: return _GetSharedSchedule(MONSTER_SHARED_SCHED_ALERT_FACE); + case MONSTER_SCHED_ALERT_STAND: return _GetSharedSchedule(MONSTER_SHARED_SCHED_ALERT_STAND); + case MONSTER_SCHED_COMBAT_STAND: return _GetSharedSchedule(MONSTER_SHARED_SCHED_COMBAT_STAND); + case MONSTER_SCHED_COMBAT_FACE: return _GetSharedSchedule(MONSTER_SHARED_SCHED_COMBAT_FACE); + case MONSTER_SCHED_CHASE_ENEMY: return _GetSharedSchedule(MONSTER_SHARED_SCHED_CHASE_ENEMY); + case MONSTER_SCHED_CHASE_ENEMY_FAILED: return _GetSharedSchedule(MONSTER_SHARED_SCHED_FAIL); + case MONSTER_SCHED_SMALL_FLINCH: return _GetSharedSchedule(MONSTER_SHARED_SCHED_SMALL_FLINCH); + case MONSTER_SCHED_ALERT_SMALL_FLINCH: return _GetSharedSchedule(MONSTER_SHARED_SCHED_ALERT_SMALL_FLINCH); + case MONSTER_SCHED_RELOAD: return _GetSharedSchedule(MONSTER_SHARED_SCHED_RELOAD); + case MONSTER_SCHED_ARM_WEAPON: return _GetSharedSchedule(MONSTER_SHARED_SCHED_ARM_WEAPON); + case MONSTER_SCHED_STANDOFF: return _GetSharedSchedule(MONSTER_SHARED_SCHED_STANDOFF); + case MONSTER_SCHED_RANGE_ATTACK1: return _GetSharedSchedule(MONSTER_SHARED_SCHED_RANGE_ATTACK1); + case MONSTER_SCHED_RANGE_ATTACK2: return _GetSharedSchedule(MONSTER_SHARED_SCHED_RANGE_ATTACK2); + case MONSTER_SCHED_MELEE_ATTACK1: return _GetSharedSchedule(MONSTER_SHARED_SCHED_MELEE_ATTACK1); + case MONSTER_SCHED_MELEE_ATTACK2: return _GetSharedSchedule(MONSTER_SHARED_SCHED_MELEE_ATTACK2); + case MONSTER_SCHED_SPECIAL_ATTACK1: return _GetSharedSchedule(MONSTER_SHARED_SCHED_SPECIAL_ATTACK1); + case MONSTER_SCHED_SPECIAL_ATTACK2: return _GetSharedSchedule(MONSTER_SHARED_SCHED_SPECIAL_ATTACK2); + case MONSTER_SCHED_TAKE_COVER_FROM_BEST_SOUND: return _GetSharedSchedule(MONSTER_SHARED_SCHED_TAKE_COVER_FROM_BEST_SOUND); + case MONSTER_SCHED_TAKE_COVER_FROM_ENEMY: return _GetSharedSchedule(MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ENEMY); + case MONSTER_SCHED_COWER: return _GetSharedSchedule(MONSTER_SHARED_SCHED_COWER); + case MONSTER_SCHED_AMBUSH: return _GetSharedSchedule(MONSTER_SHARED_SCHED_AMBUSH); + case MONSTER_SCHED_BARNACLE_VICTIM_GRAB: return _GetSharedSchedule(MONSTER_SHARED_SCHED_BARNACLE_VICTIM_GRAB); + case MONSTER_SCHED_BARNACLE_VICTIM_CHOMP: return _GetSharedSchedule(MONSTER_SHARED_SCHED_BARNACLE_VICTIM_CHOMP); + case MONSTER_SCHED_INVESTIGATE_SOUND: return _GetSharedSchedule(MONSTER_SHARED_SCHED_INVESTIGATE_SOUND); + case MONSTER_SCHED_DIE: return _GetSharedSchedule(MONSTER_SHARED_SCHED_DIE); + case MONSTER_SCHED_TAKE_COVER_FROM_ORIGIN: return _GetSharedSchedule(MONSTER_SHARED_SCHED_TAKE_COVER_FROM_ORIGIN); + case MONSTER_SCHED_VICTORY_DANCE: return _GetSharedSchedule(MONSTER_SHARED_SCHED_VICTORY_DANCE); + case MONSTER_SCHED_FAIL: return _GetSharedSchedule(MONSTER_SHARED_SCHED_FAIL); + default: return _GetSharedSchedule(MONSTER_SHARED_SCHED_IDLE_STAND); } return Invalid_Struct; @@ -3006,7 +3063,7 @@ MONSTER_STATE:@Monster_GetIdealState(this) { } } case MONSTER_STATE_ALERT: { - if (iConditions & (COND_NEW_ENEMY|COND_SEE_ENEMY)) { + if (iConditions & (COND_NEW_ENEMY | COND_SEE_ENEMY)) { CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_COMBAT); } else if (iConditions & COND_HEAR_SOUND) { CE_SetMember(this, m_iIdealMonsterState, MONSTER_STATE_ALERT); @@ -3023,7 +3080,7 @@ MONSTER_STATE:@Monster_GetIdealState(this) { } } case MONSTER_STATE_SCRIPT: { - if (iConditions & (COND_TASK_FAILED|COND_LIGHT_DAMAGE|COND_HEAVY_DAMAGE)) { + if (iConditions & (COND_TASK_FAILED | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE)) { @Monster_ExitScriptedSequence(this); } } @@ -3218,13 +3275,9 @@ bool:@Monster_MoveStep(this, const Float:vecMove[3], bool:bRelink) { // If move forward failed then try to make height step and repeat if (!bSuccessed) { - get_tr2(g_pTrace, TR_vecEndPos, vecSrc); xs_vec_set(vecEnd, vecSrc[0], vecSrc[1], vecSrc[2] + flStepHeight); - @Monster_Trace(this, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, g_pTrace); - - static Float:vecMins[3]; pev(this, pev_mins, vecMins); - static Float:vecEndPos[3]; get_tr2(g_pTrace, TR_vecEndPos, vecEndPos); + @Monster_Trace(this, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, g_pTrace); get_tr2(g_pTrace, TR_vecEndPos, vecSrc); xs_vec_add(vecSrc, vecMove, vecEnd); @@ -3241,18 +3294,27 @@ bool:@Monster_MoveStep(this, const Float:vecMove[3], bool:bRelink) { get_tr2(g_pTrace, TR_vecEndPos, vecSrc); xs_vec_set(vecEnd, vecSrc[0], vecSrc[1], vecSrc[2] - flStepHeight - OFFSET_TO_HIT_GROUND); - @Monster_Trace(this, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, g_pTrace); + + if (!@Monster_Trace(this, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, this, g_pTrace)) { + get_tr2(g_pTrace, TR_vecEndPos, vecOrigin); + } else { + xs_vec_copy(vecEnd, vecOrigin); + } - static Float:vecPlaneNormal[3]; get_tr2(g_pTrace, TR_vecPlaneNormal, vecPlaneNormal); + // static Float:vecPlaneNormal[3]; get_tr2(g_pTrace, TR_vecPlaneNormal, vecPlaneNormal); - bSuccessed = vecPlaneNormal[2] > 0.5; - } + // bSuccessed = vecPlaneNormal[2] > 0.5; - get_tr2(g_pTrace, TR_vecEndPos, vecOrigin); + // if (vecPlaneNormal[2] <= 0.5) { + // log_amx("vecPlaneNormal[2] %f", vecPlaneNormal[2]); + // } + } // TODO: Investigate ability to allow monsters to fall } + get_tr2(g_pTrace, TR_vecEndPos, vecOrigin); + if (bSuccessed) { if (bRelink) { engfunc(EngFunc_SetOrigin, this, vecOrigin); @@ -3281,7 +3343,13 @@ bool:@Monster_Trace(this, const Float:vecSrc[3], const Float:vecEnd[3], iTraceFl CE_SetMember(this, m_iRouteIndex, 0); - @Monster_ReleasePathTask(this); + if (@Monster_HasConditions(this, COND_WAIT_FOR_PATH)) { + static NavBuildPathTask:pTask; pTask = CE_GetMember(this, m_pPathTask); + Nav_Path_FindTask_Abort(pTask); + + @Monster_ClearConditions(this, COND_WAIT_FOR_PATH); + CE_SetMember(this, m_pPathTask, Invalid_NavBuildPathTask); + } } @Monster_RouteSimplify(this, pTarget) {} @@ -3308,44 +3376,49 @@ bool:@Monster_GetNodeRoute(this, const Float:vecDest[3]) { #endif } -@Monster_MoveNavPath(this, NavPath:pPath) { - if (!Nav_Path_IsValid(pPath)) return false; - +@Monster_HandlePathTask(this) { + if (!@Monster_HasConditions(this, COND_WAIT_FOR_PATH)) return; + + @Monster_ClearConditions(this, COND_WAIT_FOR_PATH); + + static NavBuildPathTask:pTask; pTask = CE_GetMember(this, m_pPathTask); + + if (Nav_Path_FindTask_IsSuccessed(pTask)) { + new NavPath:pPath = Nav_Path_FindTask_GetPath(pTask); + if (Nav_Path_IsValid(pPath)) { + @Monster_MoveNavPath(this, pPath); + } else { + @Monster_TaskFail(this); + } + } else { + @Monster_TaskFail(this); + } + + CE_SetMember(this, m_pPathTask, Invalid_NavBuildPathTask); +} + +@Monster_MoveNavPath(this, NavPath:pPath) { @Monster_RouteNew(this); + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); - static Array:irgSegments; irgSegments = Nav_Path_GetSegments(pPath); - static iSegmentsNum; iSegmentsNum = ArraySize(irgSegments); + static iSegmentsNum; iSegmentsNum = Nav_Path_GetSegmentCount(pPath); + + for (new iSegment = 0; iSegment < iSegmentsNum; ++iSegment) { + static Float:vecPos[3]; Nav_Path_GetSegmentPos(pPath, iSegment, vecPos); - for (new i = 0; i < iSegmentsNum; ++i) { - static NavPathSegment:pSegment; pSegment = ArrayGetCell(irgSegments, i); - static Float:vecPos[3]; Nav_Path_Segment_GetPos(pSegment, vecPos); - static rgWaypoint[MONSTER_WAYPOINT]; xs_vec_copy(vecPos, rgWaypoint[MONSTER_WAYPOINT_LOCATION]); rgWaypoint[MONSTER_WAYPOINT_TYPE] = MF_TO_NODE; - if (i == iSegmentsNum - 1) { + if (iSegment == iSegmentsNum - 1) { rgWaypoint[MONSTER_WAYPOINT_TYPE] = MF_IS_GOAL; } ArrayPushArray(irgRoute, rgWaypoint[any:0]); } - - return true; -} - -@Monster_ReleasePathTask(this) { - if (!@Monster_HasConditions(this, COND_WAIT_FOR_PATH)) return; - - static NavBuildPathTask:pTask; pTask = CE_GetMember(this, m_pPathTask); - if (!Nav_Path_FindTask_IsFinished(pTask)) { - Nav_Path_FindTask_Abort(pTask); - } - - @Monster_ClearConditions(this, COND_WAIT_FOR_PATH); - CE_SetMember(this, m_pPathTask, Invalid_NavBuildPathTask); } bool:@Monster_MoveToNode(this, Activity:iActivity, Float:flWaitTime, const Float:vecGoal[3]) { @@ -3395,10 +3468,15 @@ bool:@Monster_Triangulate(this, const Float:vecStart[], const Float:vecEnd[], Fl xs_vec_sub_scaled(vecOrigin, vecDirUp, (flSizeZ * 3), vecBottom); } - static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); - static rgWaypoint[MONSTER_WAYPOINT]; ArrayGetArray(irgRoute, CE_GetMember(this, m_iRouteIndex), rgWaypoint[any:0], _:MONSTER_WAYPOINT); + static Float:vecFarSide[3]; - static Float:vecFarSide[3]; xs_vec_copy(rgWaypoint[MONSTER_WAYPOINT_LOCATION], vecFarSide); + static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + if (ArraySize(irgRoute)) { + static rgWaypoint[MONSTER_WAYPOINT]; ArrayGetArray(irgRoute, CE_GetMember(this, m_iRouteIndex), rgWaypoint[any:0], _:MONSTER_WAYPOINT); + xs_vec_copy(rgWaypoint[MONSTER_WAYPOINT_LOCATION], vecFarSide); + } else { + xs_vec_copy(vecEnd, vecFarSide); + } for (new i = 0; i < 8; i++) { static Float:flDistance; @@ -3446,42 +3524,45 @@ bool:@Monster_Triangulate(this, const Float:vecStart[], const Float:vecEnd[], Fl } bool:@Monster_BuildRoute(this, const Float:vecGoal[3], iMoveFlag, pTarget) { - // TODO: Investigate cases when monster have to cancel current path task - if (@Monster_HasConditions(this, COND_WAIT_FOR_PATH)) return false; - @Monster_RouteNew(this); - static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); - static iMovementGoal; iMovementGoal = @Monster_RouteClassify(this, iMoveFlag); CE_SetMember(this, m_iMovementGoal, iMovementGoal); - static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); + if (@Monster_BuildSimpleRoute(this, vecGoal, iMoveFlag, pTarget)) { + return true; + } - new rgGoalWaypoint[MONSTER_WAYPOINT]; - xs_vec_copy(vecGoal, rgGoalWaypoint[MONSTER_WAYPOINT_LOCATION]); - rgGoalWaypoint[MONSTER_WAYPOINT_TYPE] = iMoveFlag | MF_IS_GOAL; + if (@Monster_GetNodeRoute(this, vecGoal)) { + CE_SetMemberVec(this, m_vecMoveGoal, vecGoal); + @Monster_RouteSimplify(this, pTarget); + return true; + } - ArrayPushArray(irgRoute, rgGoalWaypoint[any:0]); + return false; +} + +@Monster_BuildSimpleRoute(this, const Float:vecGoal[3], iMoveFlag, pTarget) { + static Float:vecOrigin[3]; pev(this, pev_origin, vecOrigin); static Float:flDistance; flDistance = 0.0; static MONSTER_LOCALMOVE:iLocalMove; iLocalMove = @Monster_CheckLocalMove(this, vecOrigin, vecGoal, pTarget, true, flDistance); - if (iLocalMove == MONSTER_LOCALMOVE_VALID) return true; - - static Float:vecApex[3]; - if (iLocalMove != MONSTER_LOCALMOVE_INVALID_DONT_TRIANGULATE && @Monster_Triangulate(this, vecOrigin, vecGoal, flDistance, pTarget, vecApex)) { - @Monster_InsertWaypoint(this, vecApex, iMoveFlag | MF_TO_DETOUR); - @Monster_RouteSimplify(this, pTarget); + if (iLocalMove == MONSTER_LOCALMOVE_VALID) { + @Monster_PushWaypoint(this, vecGoal, iMoveFlag | MF_IS_GOAL); return true; } - if (@Monster_GetNodeRoute(this, vecGoal)) { - CE_SetMemberVec(this, m_vecMoveGoal, vecGoal); - @Monster_RouteSimplify(this, pTarget); - return true; - } + if (iLocalMove != MONSTER_LOCALMOVE_INVALID_DONT_TRIANGULATE) { + static Float:vecApex[3]; + if (@Monster_Triangulate(this, vecOrigin, vecGoal, flDistance, pTarget, vecApex)) { + @Monster_PushWaypoint(this, vecGoal, iMoveFlag | MF_IS_GOAL); + @Monster_InsertWaypoint(this, vecApex, iMoveFlag | MF_TO_DETOUR); + @Monster_RouteSimplify(this, pTarget); + return true; + } + } return false; } @@ -3514,6 +3595,7 @@ bool:@Monster_BuildNearestRoute(this, const Float:vecThreat[3], const Float:vecV @Monster_IsRouteClear(this) { if (CE_GetMember(this, m_iMovementGoal) == MOVEGOAL_NONE) return true; + if (@Monster_HasConditions(this, COND_WAIT_FOR_PATH)) return false; static Array:irgRoute; irgRoute = CE_GetMember(this, m_irgRoute); if (!ArraySize(irgRoute)) return true; @@ -3549,28 +3631,28 @@ bool:@Monster_RefreshRoute(this) { } return true; - } - case MOVEGOAL_ENEMY: { - new pEnemy = CE_GetMember(this, m_pEnemy); - new Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); - return @Monster_BuildRoute(this, vecEnemyLKP, MF_TO_ENEMY, pEnemy); - } - case MOVEGOAL_LOCATION: { - new Float:vecMoveGoal[3]; CE_GetMemberVec(this, m_vecMoveGoal, vecMoveGoal); - return @Monster_BuildRoute(this, vecMoveGoal, MF_TO_LOCATION, FM_NULLENT); - } - case MOVEGOAL_TARGETENT: { - new pTarget = CE_GetMember(this, m_pTargetEnt); - new Float:vecTarget[3]; pev(pTarget, pev_origin, vecTarget); + } + case MOVEGOAL_ENEMY: { + new pEnemy = CE_GetMember(this, m_pEnemy); + new Float:vecEnemyLKP[3]; CE_GetMemberVec(this, m_vecEnemyLKP, vecEnemyLKP); + return @Monster_BuildRoute(this, vecEnemyLKP, MF_TO_ENEMY, pEnemy); + } + case MOVEGOAL_LOCATION: { + new Float:vecMoveGoal[3]; CE_GetMemberVec(this, m_vecMoveGoal, vecMoveGoal); + return @Monster_BuildRoute(this, vecMoveGoal, MF_TO_LOCATION, FM_NULLENT); + } + case MOVEGOAL_TARGETENT: { + new pTarget = CE_GetMember(this, m_pTargetEnt); + new Float:vecTarget[3]; pev(pTarget, pev_origin, vecTarget); - if (pTarget != FM_NULLENT) { - return @Monster_BuildRoute(this, vecTarget, MF_TO_TARGETENT, pTarget); + if (pTarget != FM_NULLENT) { + return @Monster_BuildRoute(this, vecTarget, MF_TO_TARGETENT, pTarget); + } + } + case MOVEGOAL_NODE: { + new Float:vecMoveGoal[3]; CE_GetMemberVec(this, m_vecMoveGoal, vecMoveGoal); + return @Monster_GetNodeRoute(this, vecMoveGoal); } - } - case MOVEGOAL_NODE: { - new Float:vecMoveGoal[3]; CE_GetMemberVec(this, m_vecMoveGoal, vecMoveGoal); - return @Monster_GetNodeRoute(this, vecMoveGoal); - } } return false; @@ -3842,7 +3924,7 @@ Float:@Monster_DamageForce(this, Float:flDamage) { return 1; } -@Monster_StartTask(this, iTask, any:data) { +@Monster_StartTask(this, iTask, any:data) { switch (iTask) { case TASK_TURN_RIGHT: { new Float:vecAngles[3]; pev(this, pev_angles, vecAngles); @@ -3906,10 +3988,10 @@ Float:@Monster_DamageForce(this, Float:flDamage) { // CE_SetMember(this, m_iIdealActivity, iActivity); } case TASK_SET_SCHEDULE: { - new Struct:sNewSchedule = @Monster_GetScheduleOfType(this, MONSTER_SCHEDULE_TYPE:data); + new Struct:sNewSchedule = CE_CallMethod(this, GetScheduleOfType, MONSTER_SCHEDULE_TYPE:data); if (sNewSchedule != Invalid_Struct) { - @Monster_ChangeSchedule(this, sNewSchedule); + CE_CallMethod(this, ChangeSchedule, sNewSchedule); } else { @Monster_TaskFail(this); } @@ -4058,11 +4140,9 @@ Float:@Monster_DamageForce(this, Float:flDamage) { } else { CE_SetMemberVec(this, m_vecMoveGoal, vecTarget); - // if (CE_GetMember(this, m_pPathTask) == Invalid_NavBuildPathTask) { - if (!@Monster_MoveToTarget(this, ACT_WALK, 2.0)) { - @Monster_TaskFail(this); - } - // } + if (!@Monster_MoveToTarget(this, ACT_WALK, 2.0)) { + @Monster_TaskFail(this); + } } } case TASK_RUN_TO_TARGET, TASK_WALK_TO_TARGET: { @@ -4079,12 +4159,10 @@ Float:@Monster_DamageForce(this, Float:flDamage) { if (@Monster_LookupActivity(this, iNewActivity) == ACTIVITY_NOT_AVAILABLE) { @Monster_TaskComplete(this); } else { - // if (CE_GetMember(this, m_pPathTask) == Invalid_NavBuildPathTask) { - if (pTargetEnt == FM_NULLENT || !@Monster_MoveToTarget(this, iNewActivity, 2.0)) { - @Monster_TaskFail(this); - @Monster_RouteClear(this); - } - // } + if (pTargetEnt == FM_NULLENT || !@Monster_MoveToTarget(this, iNewActivity, 2.0)) { + @Monster_TaskFail(this); + @Monster_RouteClear(this); + } } } @@ -4179,14 +4257,13 @@ Float:@Monster_DamageForce(this, Float:flDamage) { new Activity:iMovementActivity = CE_GetMember(this, m_iMovementActivity); new pTargetEnt = CE_GetMember(this, m_pTargetEnt); - // if (CE_GetMember(this, m_pPathTask) == Invalid_NavBuildPathTask) { - @Monster_RouteClear(this); - if (pTargetEnt != FM_NULLENT && @Monster_MoveToTarget(this, iMovementActivity, 1.0)) { - @Monster_TaskComplete(this); - } else { - @Monster_TaskFail(this); - } - // } + @Monster_RouteClear(this); + + if (pTargetEnt != FM_NULLENT && @Monster_MoveToTarget(this, iMovementActivity, 1.0)) { + @Monster_TaskComplete(this); + } else { + @Monster_TaskFail(this); + } } case TASK_GET_PATH_TO_HINTNODE: { // TODO: Implement @@ -4884,7 +4961,7 @@ Float:MapTextureTypeVolume(chTextureType) { case 3: emit_sound(this, CHAN_BODY, "player/pl_snow4.wav", flVolume, ATTN_NORM, 0, PITCH_NORM); } } - } + } CE_SetMember(this, m_iStepLeft, !iStepLeft); } diff --git a/entities/entity_base_npc.sma b/entities/entity_base_npc.sma index dd4d544..958b63c 100644 --- a/entities/entity_base_npc.sma +++ b/entities/entity_base_npc.sma @@ -613,10 +613,10 @@ bool:@Entity_ProcessPath(this) { static Array:irgPath; irgPath = CE_GetMember(this, m_irgPath); ArrayClear(irgPath); - static Array:irgSegments; irgSegments = Nav_Path_GetSegments(pPath); - for (new i = 0; i < ArraySize(irgSegments); ++i) { - static NavPathSegment:pSegment; pSegment = ArrayGetCell(irgSegments, i); - static Float:vecPos[3]; Nav_Path_Segment_GetPos(pSegment, vecPos); + static iSegmentsNum; iSegmentsNum = Nav_Path_GetSegmentCount(pPath); + + for (new iSegment = 0; iSegment < iSegmentsNum; ++iSegment) { + static Float:vecPos[3]; Nav_Path_GetSegmentPos(pPath, iSegment, vecPos); ArrayPushArray(irgPath, vecPos, sizeof(vecPos)); } diff --git a/entities/include/entity_base_monster_const.inc b/entities/include/entity_base_monster_const.inc index 79cf184..617d6af 100644 --- a/entities/include/entity_base_monster_const.inc +++ b/entities/include/entity_base_monster_const.inc @@ -488,4 +488,20 @@ enum { #define ClearConditions "ClearConditions" #define HasConditions "HasConditions" #define HasAllConditions "HasAllConditions" -#define IgnoreConditions "IgnoreConditions" \ No newline at end of file +#define IgnoreConditions "IgnoreConditions" +#define GetScheduleOfType "GetScheduleOfType" +#define GetSchedule "GetSchedule" +#define GetSharedSchedule "GetSharedSchedule" +#define IsCurTaskContinuousMove "IsCurTaskContinuousMove" +#define RunTask "RunTask" +#define StartTask "StartTask" +#define MoveExecute "MoveExecute" + +#define SetActivity "SetActivity" +#define ChangeSchedule "ChangeSchedule" +#define HandlePathTask "HandlePathTask" + +#define Remember "Remember" +#define Forget "Forget" +#define HasMemory "HasMemory" +#define HasAllMemory "HasAllMemory" diff --git a/util/cellclass.inc b/util/cellclass.inc index 9c71df6..d5df55f 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -215,6 +215,15 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const Function: TrieSetCell(itMethods, szMethod, sMethod); } +stock Function:ClassGetMethodFunction(const &Class:class, const szMethod[]) { + static Trie:itMethods; itMethods = StructGetCell(Struct:class, __cls_Data_Methods); + + static Struct:sMethod; + if (!TrieGetCell(itMethods, szMethod, sMethod)) return Invalid_FunctionPointer; + + return StructGetCell(sMethod, __cls_MethodData_Function); +} + stock ClassAddSetter(const &Class:class, const szMember[], const Function:func, iType, iSize = 1) { __cls_AddMemberAccessorMethod(class, szMember, func, __cls_MethodType_Setter, iType, iSize); } From 081a5e53c0aec66e7bcea67bc365f60ade47e11f Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 16 Apr 2024 19:21:52 +0200 Subject: [PATCH 200/231] fix native params --- api/custom-entities/include/api_custom_entities.inc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/api/custom-entities/include/api_custom_entities.inc b/api/custom-entities/include/api_custom_entities.inc index 46a42fa..4617f61 100644 --- a/api/custom-entities/include/api_custom_entities.inc +++ b/api/custom-entities/include/api_custom_entities.inc @@ -36,7 +36,7 @@ native CE:CE_RegisterDerived(const szClassname[], const szBase[], bool:bAbstract * * @return Entity index */ -native CE_Create(const szClassname[], const Float:vecOrigin[3] = {0.0, 0.0, 0.0}, bool:bTemp = true); +native CE_Create(const szClassname[], const Float:vecOrigin[] = {0.0, 0.0, 0.0}, bool:bTemp = true); /** * Restart entity @@ -167,7 +167,7 @@ native CE_SetMember(pEntity, const szMember[], any:value, bool:bReplace = true); * @param szMember Member name * @param vecOut Output vector */ -native bool:CE_GetMemberVec(pEntity, const szMember[], Float:vecOut[3]); +native bool:CE_GetMemberVec(pEntity, const szMember[], Float:vecOut[]); /** * Sets vector member of an entity @@ -176,7 +176,7 @@ native bool:CE_GetMemberVec(pEntity, const szMember[], Float:vecOut[3]); * @param szMember Member name * @param vecValue Vector to set */ -native CE_SetMemberVec(pEntity, const szMember[], const Float:vecValue[3], bool:bReplace = true); +native CE_SetMemberVec(pEntity, const szMember[], const Float:vecValue[], bool:bReplace = true); /** * Gets string member of an entity @@ -216,3 +216,5 @@ native any:CE_CallMethod(pEntity, const szMethod[], any:...); * @return Method return value */ native any:CE_CallBaseMethod(any:...); + +native CE_GetCallPluginId(); From 1227501117ae4cfc0924a58367a95ba44d9de04f Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 17 Apr 2024 16:38:55 +0200 Subject: [PATCH 201/231] add example for monster_base entity --- entities/docs/entity_base_monster.md | 216 +++++++++++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 entities/docs/entity_base_monster.md diff --git a/entities/docs/entity_base_monster.md b/entities/docs/entity_base_monster.md new file mode 100644 index 0000000..fe8c162 --- /dev/null +++ b/entities/docs/entity_base_monster.md @@ -0,0 +1,216 @@ +Here is an example how to implement HL Zombie using monster_base entity. You can test zombies on map `c1a1a`. + +```cpp +#include +#include +#include +#include + +#include + +#include + +#define ENTITY_NAME "monster_zombie" + +#define ZOMBIE_AE_ATTACK_RIGHT 0x01 +#define ZOMBIE_AE_ATTACK_LEFT 0x02 +#define ZOMBIE_AE_ATTACK_BOTH 0x03 + +#define ZOMBIE_FLINCH_DELAY 2.0 + +#define m_flNextFlinch "flNextFlinch" + +new const g_szModel[] = "models/zombie.mdl"; + +new const g_rgpAttackHitSounds[][] = { + "zombie/claw_strike1.wav", + "zombie/claw_strike2.wav", + "zombie/claw_strike3.wav", +}; + +new const g_rgpAttackMissSounds[][] = { + "zombie/claw_miss1.wav", + "zombie/claw_miss2.wav", +}; + +new const g_rgpAttackSounds[][] = { + "zombie/zo_attack1.wav", + "zombie/zo_attack2.wav", +}; + +new const g_rgpIdleSounds[][] = { + "zombie/zo_idle1.wav", + "zombie/zo_idle2.wav", + "zombie/zo_idle3.wav", + "zombie/zo_idle4.wav", +}; + +new const g_rgpAlertSounds[][] = { + "zombie/zo_alert10.wav", + "zombie/zo_alert20.wav", + "zombie/zo_alert30.wav", +}; + +new const g_rgpPainSounds[][] = { + "zombie/zo_pain1.wav", + "zombie/zo_pain2.wav", +}; + +public plugin_precache() { + precache_model(g_szModel); + + for (new i = 0; i < sizeof(g_rgpAttackHitSounds); ++i) precache_sound(g_rgpAttackHitSounds[i]); + for (new i = 0; i < sizeof(g_rgpAttackMissSounds); ++i) precache_sound(g_rgpAttackMissSounds[i]); + for (new i = 0; i < sizeof(g_rgpAttackSounds); ++i) precache_sound(g_rgpAttackSounds[i]); + for (new i = 0; i < sizeof(g_rgpIdleSounds); ++i) precache_sound(g_rgpIdleSounds[i]); + for (new i = 0; i < sizeof(g_rgpAlertSounds); ++i) precache_sound(g_rgpAlertSounds[i]); + for (new i = 0; i < sizeof(g_rgpPainSounds); ++i) precache_sound(g_rgpPainSounds[i]); + + CE_RegisterDerived(ENTITY_NAME, BASE_MONSTER_ENTITY_NAME); + + CE_RegisterHook(ENTITY_NAME, CEFunction_Init, "@Entity_Init"); + CE_RegisterHook(ENTITY_NAME, CEFunction_InitPhysics, "@Entity_InitPhysics"); + CE_RegisterHook(ENTITY_NAME, CEFunction_Spawned, "@Entity_Spawned"); + + CE_RegisterVirtualMethod(ENTITY_NAME, IgnoreConditions, "@Entity_IgnoreConditions"); + CE_RegisterVirtualMethod(ENTITY_NAME, SetYawSpeed, "@Entity_SetYawSpeed"); + CE_RegisterVirtualMethod(ENTITY_NAME, HandleAnimEvent, "@Entity_HandleAnimEvent", CE_MP_Cell, CE_MP_Array, 64); + + CE_RegisterMethod(ENTITY_NAME, AlertSound, "@Entity_AlertSound"); + CE_RegisterMethod(ENTITY_NAME, IdleSound, "@Entity_IdleSound"); + CE_RegisterMethod(ENTITY_NAME, PainSound, "@Entity_PainSound"); + + CE_RegisterVirtualMethod(ENTITY_NAME, Classify, "@Entity_Classify"); +} + +public plugin_init() { + register_plugin("[Entity] Zombie Monster", "1.0.0", "Hedgehog Fog"); +} + +@Entity_Init(this) { + CE_SetMemberVec(this, CE_MEMBER_MINS, Float:{-16.0, -16.0, 0.0}); + CE_SetMemberVec(this, CE_MEMBER_MAXS, Float:{16.0, 16.0, 72.0}); + CE_SetMemberString(this, CE_MEMBER_MODEL, g_szModel, false); + CE_SetMember(this, CE_MEMBER_BLOODCOLOR, 195); +} + +@Entity_InitPhysics(this) { + set_pev(this, pev_solid, SOLID_SLIDEBOX); + set_pev(this, pev_movetype, MOVETYPE_STEP); +} + +@Entity_Spawned(this) { + set_pev(this, pev_spawnflags, pev(this, pev_spawnflags) | SF_MONSTER_FADECORPSE); + set_pev(this, pev_health, 100.0); + set_pev(this, pev_view_ofs, Float:{0.0, 0.0, 28.0}); + CE_SetMember(this, m_flFieldOfView, 0.5); + CE_SetMember(this, m_iMonsterState, MONSTER_STATE_NONE); + + CE_SetMember(this, m_flMeleeAttack1Range, 70.0); + CE_SetMember(this, m_flMeleeAttack1Damage, 10.0); + + CE_SetMember(this, m_flMeleeAttack2Range, 70.0); + CE_SetMember(this, m_flMeleeAttack2Damage, 24.0); +} + +@Entity_AlertSound(this) { + emit_sound(this, CHAN_WEAPON, g_rgpAlertSounds[random(sizeof(g_rgpAlertSounds))], VOL_NORM, ATTN_NORM, 0, 100 + random_num(-5, 5)); +} + +@Entity_IdleSound(this) { + emit_sound(this, CHAN_WEAPON, g_rgpIdleSounds[random(sizeof(g_rgpIdleSounds))], VOL_NORM, ATTN_NORM, 0, 100 + random_num(-5, 5)); +} + +@Entity_PainSound(this) { + emit_sound(this, CHAN_WEAPON, g_rgpPainSounds[random(sizeof(g_rgpPainSounds))], VOL_NORM, ATTN_NORM, 0, 100 + random_num(-5, 5)); +} + +@Entity_SetYawSpeed(this) { + set_pev(this, pev_yaw_speed, 120.0); +} + +@Entity_HandleAnimEvent(this, iEventId, const rgOptions[]) { + CE_CallBaseMethod(iEventId, rgOptions); + + static Float:vecAimAngles[3]; + pev(this, pev_angles, vecAimAngles); + vecAimAngles[0] = -vecAimAngles[0]; + + static Float:vecForward[3]; angle_vector(vecAimAngles, ANGLEVECTOR_FORWARD, vecForward); + static Float:vecRight[3]; angle_vector(vecAimAngles, ANGLEVECTOR_RIGHT, vecRight); + + switch (iEventId) { + case ZOMBIE_AE_ATTACK_RIGHT, ZOMBIE_AE_ATTACK_LEFT, ZOMBIE_AE_ATTACK_BOTH: { + static pHurt; pHurt = CE_CallMethod(this, ZOMBIE_AE_ATTACK_BOTH ? MeleeAttack2 : MeleeAttack1); + + if (pHurt != FM_NULLENT && pev(pHurt, pev_flags) & (FL_MONSTER | FL_CLIENT)) { + static Float:vecVictimPunchAngle[3]; pev(pHurt, pev_punchangle, vecVictimPunchAngle); + static Float:vecVictimVelocity[3]; pev(pHurt, pev_velocity, vecVictimVelocity); + + vecVictimPunchAngle[0] = 5.0; + + switch (iEventId) { + case ZOMBIE_AE_ATTACK_RIGHT, ZOMBIE_AE_ATTACK_LEFT: { + static iDirection; iDirection = (iEventId == ZOMBIE_AE_ATTACK_RIGHT ? -1 : 1); + + vecVictimPunchAngle[2] = (18.0 * iDirection); + xs_vec_add_scaled(vecVictimVelocity, vecRight, 100.0 * iDirection, vecVictimVelocity); + } + case ZOMBIE_AE_ATTACK_BOTH: { + xs_vec_add_scaled(vecVictimVelocity, vecForward, 100.0, vecVictimVelocity); + } + } + + set_pev(pHurt, pev_punchangle, vecVictimPunchAngle); + set_pev(pHurt, pev_velocity, vecVictimVelocity); + } + + if (pHurt != FM_NULLENT) { + emit_sound(this, CHAN_WEAPON, g_rgpAttackHitSounds[random(sizeof(g_rgpAttackHitSounds))], VOL_NORM, ATTN_NORM, 0, 100 + random_num(-5, 5)); + } else { + emit_sound(this, CHAN_WEAPON, g_rgpAttackMissSounds[random(sizeof(g_rgpAttackMissSounds))], VOL_NORM, ATTN_NORM, 0, 100 + random_num(-5, 5)); + } + + if (random(2)) @Entity_AttackSound(this); + } + case SCRIPT_EVENT_SOUND: { + if (equal(rgOptions, "common/npc_step", 15)) { + CE_CallMethod(this, StepSound); + } + } + default: { + // CE_CallBaseMethod(iEventId, rgOptions); + } + } +} + +@Entity_AttackSound(this) { + emit_sound(this, CHAN_VOICE, g_rgpAttackSounds[random(sizeof(g_rgpAttackSounds))], VOL_NORM, ATTN_NORM, 0, 100 + random_num(-5, 5)); +} + +@Entity_Classify(this) { + return CLASS_ALIEN_MONSTER; +} + +@Entity_IgnoreConditions(this) { + new iIgnore = CE_CallBaseMethod(); + + static Float:flGameTime; flGameTime = get_gametime(); + static Float:flNextFlinch; flNextFlinch = CE_GetMember(this, m_flNextFlinch); + static Activity:iActivity; iActivity = CE_GetMember(this, m_iActivity); + + if ((iActivity == ACT_MELEE_ATTACK1) || (iActivity == ACT_MELEE_ATTACK1)) { + if (flNextFlinch >= flGameTime) { + iIgnore |= (COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE); + } + } + + if ((iActivity == ACT_SMALL_FLINCH) || (iActivity == ACT_BIG_FLINCH)) { + if (flNextFlinch < flGameTime) { + flNextFlinch = flGameTime + ZOMBIE_FLINCH_DELAY; + } + } + + return iIgnore; +} +``` \ No newline at end of file From 43dd9270bb885386d163f9aa696572a560da7a4d Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 18 Apr 2024 18:17:27 +0200 Subject: [PATCH 202/231] add readme --- api/player-model/README.md | 392 +++++++++++++++++++++++++++++++++++++ 1 file changed, 392 insertions(+) create mode 100644 api/player-model/README.md diff --git a/api/player-model/README.md b/api/player-model/README.md new file mode 100644 index 0000000..c85dd88 --- /dev/null +++ b/api/player-model/README.md @@ -0,0 +1,392 @@ + +# Player Model API + +## Working With Models + +To change player model use `PlayerModel_Set` and `PlayerModel_Update` natives. +`PlayerModel_Set` is using to set player model, calling `PlayerModel_Update` will force update model. +```cpp +PlayerModel_Set(pPlayer, "player/model/vip/vip.mdl"); // set current player model +PlayerModel_Update(pPlayer); // force update player model +``` + + +## Working with animations + +The API supports loading custom animations, including additional weapon animations from separate files. + +### Precaching animation + +To precache the animation use `PlayerModel_PrecacheAnimation` native, it will precache animation from `animations` directory. This example will precache animation from `cstrike/animations/my-mod/player.mdl`: +```cpp +PlayerModel_PrecacheAnimation("my-mod/player.mdl"); +``` + +### Set custom weapon animation + +Customize weapon animations by set `m_szAnimExtension` member. The following example sets the animation to `ref_aim_mysupergun`: +```cpp +static const szCustonWeaponExt[] = "mysupergun"; + +set_ent_data_string(pPlayer, "CBasePlayer", "m_szAnimExtention", szCustonWeaponExt); +set_ent_data(pPlayer, "CBaseMonster", "m_Activity", ACT_IDLE); +rg_set_animation(pPlayer, PLAYER_IDLE); +``` + + +## Making animations file + +### Creating Animation Files + +#### Basic Animations +Fist of all you have to provide basic player sequences like `walk`, `run`, `flitch`, etc. + +

    + Example + + ```cpp + $sequence "dummy" { + "anims/dummy" + fps 24 + loop + } + $sequence "idle1" { + "anims/idle1" + ACT_IDLE 1 + fps 15 + loop + } + $sequence "crouch_idle" { + "anims/crouch_idle" + ACT_CROUCHIDLE 1 + fps 10 + loop + } + $sequence "walk" { + "anims/walk" + ACT_WALK 1 + fps 30 + loop + LX + } + $sequence "run" { + "anims/run" + ACT_RUN 1 + fps 60 + loop + LX + } + $sequence "crouchrun" { + "anims/crouchrun" + ACT_CROUCH 1 + fps 30 + loop + LX + } + $sequence "jump" { + "anims/jump" + ACT_HOP 1 + fps 36 + } + $sequence "longjump" { + "anims/longjump" + ACT_LEAP 1 + fps 36 + } + $sequence "swim" { + "anims/swim" + ACT_SWIM 1 + fps 30 + loop + } + $sequence "treadwater" { "anims/treadwater" + ACT_HOVER 1 + fps 24 + loop + } + $sequence "gut_flinch" { + "anims/gut_flinch_blend01" + "anims/gut_flinch_blend02" + "anims/gut_flinch_blend03" + "anims/gut_flinch_blend04" + "anims/gut_flinch_blend05" + "anims/gut_flinch_blend06" + "anims/gut_flinch_blend07" + "anims/gut_flinch_blend08" + "anims/gut_flinch_blend09" + blend XR -90 90 + fps 30 + } + $sequence "head_flinch" { + "anims/head_flinch_blend01" + "anims/head_flinch_blend02" + "anims/head_flinch_blend03" + "anims/head_flinch_blend04" + "anims/head_flinch_blend05" + "anims/head_flinch_blend06" + "anims/head_flinch_blend07" + "anims/head_flinch_blend08" + "anims/head_flinch_blend09" + blend XR -90 90 + fps 30 + } + ``` +
    + + +#### Fake reference +Ensure your animation model includes at least one polygon. Here's an example SMD file for a fake reference: + +
    + animreference.smd + + ```cpp + version 1 + nodes + 0 "Bip01" -1 + 1 "Bip01 Pelvis" 0 + 2 "Bip01 Spine" 1 + 3 "Bip01 Spine1" 2 + 4 "Bip01 Spine2" 3 + 5 "Bip01 Spine3" 4 + 6 "Bip01 Neck" 5 + 7 "Bip01 Head" 6 + 8 "Bone01" 7 + 9 "Bip01 L Clavicle" 6 + 10 "Bip01 L UpperArm" 9 + 11 "Bip01 L Forearm" 10 + 12 "Bip01 L Hand" 11 + 13 "Bip01 L Finger0" 12 + 14 "Bip01 L Finger01" 13 + 15 "Bip01 L Finger1" 12 + 16 "Bip01 L Finger11" 15 + 17 "-- L knuckle" 15 + 18 "-- L Forearm twist" 11 + 19 "-- L wrist" 11 + 20 "-- L Elbow" 10 + 21 "-- L bicep twist" 10 + 22 "-- L shoulder outside" 9 + 23 "-- L Shoulder inside" 9 + 24 "Bip01 R Clavicle" 6 + 25 "Bip01 R UpperArm" 24 + 26 "Bip01 R Forearm" 25 + 27 "Bip01 R Hand" 26 + 28 "Bip01 R Finger0" 27 + 29 "Bip01 R Finger01" 28 + 30 "Bip01 R Finger1" 27 + 31 "Bip01 R Finger11" 30 + 32 "-- R knuckle" 30 + 33 "-- R wrist" 26 + 34 "-- R forearm twist" 26 + 35 "-- R Elbow" 25 + 36 "-- R bicep twist" 25 + 37 "-- R Shoulder inside" 24 + 38 "-- R shoulder outside" 24 + 39 "-- Neck smooth" 5 + 40 "-- R Butt" 1 + 41 "-- L butt" 1 + 42 "Bip01 L Thigh" 1 + 43 "Bip01 L Calf" 42 + 44 "Bip01 L Foot" 43 + 45 "Bip01 L Toe0" 44 + 46 "-- L ankle" 43 + 47 "-- L Knee" 42 + 48 "Bip01 R Thigh" 1 + 49 "Bip01 R Calf" 48 + 50 "Bip01 R Foot" 49 + 51 "Bip01 R Toe0" 50 + 52 "-- R Ankle" 49 + end + skeleton + time 0 + 0 0.233849 -2.251689 38.192150 0.000000 0.000000 -1.570795 + 1 -2.276935 0.000003 -1.238186 -1.570795 -1.570451 0.000000 + 2 1.797145 0.711796 -0.000002 -0.000004 -0.000001 0.000739 + 3 4.118605 -0.003279 0.000000 0.000000 0.000000 0.000035 + 4 4.118601 -0.003280 0.000000 0.000000 0.000000 0.000049 + 5 4.118600 -0.003280 0.000000 0.000000 0.000000 -0.000009 + 6 4.118531 -0.003538 0.000000 0.000000 0.000000 -0.019437 + 7 4.443601 0.000000 0.000000 0.000000 -0.000001 0.201740 + 8 1.426626 0.072724 0.002913 2.958476 -1.570796 0.000000 + 9 0.000004 0.003534 1.732721 -0.000040 -1.501696 -3.122911 + 10 6.384776 0.000000 0.000001 0.025648 -0.046980 0.004099 + 11 10.242682 0.000000 -0.000002 0.000000 0.000000 -0.008014 + 12 11.375562 0.000000 0.000005 -1.580468 -0.132234 0.009455 + 13 0.728679 0.023429 -1.008292 1.705251 0.347372 0.567022 + 14 2.136497 0.000000 0.000001 0.000000 0.000000 0.287979 + 15 3.115505 -0.886041 -0.021431 -0.000782 0.000152 0.191986 + 16 2.011151 0.000000 0.000000 0.000000 0.000000 0.659566 + 17 1.734173 0.000003 0.000000 0.000000 0.000000 0.330185 + 18 6.000001 0.000000 0.000000 -1.578050 0.000000 0.000000 + 19 11.375562 0.000000 0.000005 -1.575523 -0.074433 0.005312 + 20 10.510129 0.000000 0.000000 0.000000 0.000000 -1.574800 + 21 5.500000 0.000000 -0.000001 -0.011814 0.000000 0.000000 + 22 6.551491 0.000000 -0.000001 0.019708 -0.055281 0.008457 + 23 6.551491 0.000000 -0.000001 0.010051 -0.028020 0.004425 + 24 0.000004 0.003543 -1.732721 -0.000040 1.501696 -3.122992 + 25 6.384777 0.000000 -0.000001 -0.025648 0.046980 0.004099 + 26 10.242681 0.000000 0.000002 0.000000 0.000000 -0.008014 + 27 11.375562 0.000000 -0.000002 1.580468 0.132234 0.009455 + 28 0.728679 0.023429 1.008292 -1.705251 -0.347372 0.567022 + 29 2.136496 -0.000001 0.000000 0.000000 0.000000 0.287979 + 30 3.115505 -0.886040 0.021431 0.000782 -0.000152 0.191986 + 31 2.011151 0.000000 0.000000 0.000000 0.000000 0.659566 + 32 1.734173 -0.000001 0.000000 0.000000 0.000000 0.330185 + 33 11.389366 -0.000819 0.158785 1.575523 0.074433 0.005312 + 34 6.000001 0.000000 0.000003 1.575523 0.000000 0.000000 + 35 10.510130 0.000000 -0.000001 0.000000 0.000000 -1.574800 + 36 5.499999 0.000000 0.000001 0.010051 0.000000 0.000000 + 37 6.551491 0.000000 0.000001 -0.010051 0.028020 0.004424 + 38 6.551491 0.000000 0.000001 -0.010051 0.028020 0.004424 + 39 4.226144 -0.003201 0.000000 0.000000 0.000000 0.000000 + 40 0.000005 -0.000005 -3.713579 -0.006814 3.056983 -0.063787 + 41 -0.000005 0.000005 3.713579 0.005299 -3.071082 -0.053070 + 42 -0.000005 0.000007 3.619081 0.011132 -3.002289 -0.086533 + 43 16.573919 0.000000 0.000000 0.000000 0.000000 -0.162458 + 44 15.128179 0.000000 0.000001 0.000920 -0.139743 0.076637 + 45 5.758665 4.244730 0.000000 0.000000 0.000000 1.570796 + 46 15.708952 0.000001 0.000000 0.001562 -0.077726 0.040998 + 47 17.210194 0.000000 0.000001 0.000000 0.000000 -1.486823 + 48 0.000005 -0.000003 -3.619081 -0.011130 3.002286 -0.086533 + 49 16.573919 0.000000 0.000000 0.000000 0.000000 -0.162458 + 50 15.128179 0.000000 0.000000 -0.000920 0.139743 0.076637 + 51 5.758665 4.244731 0.000000 0.000000 0.000000 1.570796 + 52 15.708952 0.000000 0.000000 -0.001364 0.104219 0.055002 + end + triangles + black.bmp + 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + end + ``` +
    + +Use the `$body` command in your QC file to add this reference: + +```cpp +$body "studio" "animreference" +``` + +#### Protecting Bones + +Use a compiler like `DoomMusic's StudioMDL` to protect bones. Add `$protection` for each animation bone before references and sequences in the `.qc`: + +
    + Example + + ```cpp + $protected "Bip01" + $protected "Bip01 Pelvis" + $protected "Bip01 Spine" + $protected "Bip01 Spine1" + $protected "Bip01 Spine2" + $protected "Bip01 Spine3" + $protected "Bip01 Neck" + $protected "Bip01 Head" + $protected "Bone01" + $protected "Bip01 L Clavicle" + $protected "Bip01 L UpperArm" + $protected "Bip01 L Forearm" + $protected "Bip01 L Hand" + $protected "Bip01 L Finger0" + $protected "Bip01 L Finger01" + $protected "Bip01 L Finger1" + $protected "Bip01 L Finger11" + $protected "-- L knuckle" + $protected "-- L Forearm twist" + $protected "-- L wrist" + $protected "-- L Elbow" + $protected "-- L bicep twist" + $protected "-- L shoulder outside" + $protected "-- L Shoulder inside" + $protected "Bip01 R Clavicle" + $protected "Bip01 R UpperArm" + $protected "Bip01 R Forearm" + $protected "Bip01 R Hand" + $protected "Bip01 R Finger0" + $protected "Bip01 R Finger01" + $protected "Bip01 R Finger1" + $protected "Bip01 R Finger11" + $protected "-- R knuckle" + $protected "-- R wrist" + $protected "-- R forearm twist" + $protected "-- R Elbow" + $protected "-- R bicep twist" + $protected "-- R Shoulder inside" + $protected "-- R shoulder outside" + $protected "-- Neck smooth" + $protected "-- R Butt" + $protected "-- L butt" + $protected "Bip01 L Thigh" + $protected "Bip01 L Calf" + $protected "Bip01 L Foot" + $protected "Bip01 L Toe0" + $protected "-- L ankle" + $protected "-- L Knee" + $protected "Bip01 R Thigh" + $protected "Bip01 R Calf" + $protected "Bip01 R Foot" + $protected "Bip01 R Toe0" + $protected "-- R Ankle" + ``` +
    + +#### Custom Animation Sequences + +Add your custom weapon animations: + +
    + Example + + ```cpp + $sequence "crouch_aim_myweapon" { + "crouch_aim_myweapon_blend1" + "crouch_aim_myweapon_blend2" + "crouch_aim_myweapon_blend3" + "crouch_aim_myweapon_blend4" + "crouch_aim_myweapon_blend5" + "crouch_aim_myweapon_blend6" + "crouch_aim_myweapon_blend7" + "crouch_aim_myweapon_blend8" + "crouch_aim_myweapon_blend9" + blend XR -90 90 fps 30 loop + } + $sequence "crouch_shoot_myweapon" { + "crouch_shoot_grenade_blend1" + "crouch_shoot_grenade_blend2" + "crouch_shoot_grenade_blend3" + "crouch_shoot_grenade_blend4" + "crouch_shoot_grenade_blend5" + "crouch_shoot_grenade_blend6" + "crouch_shoot_grenade_blend7" + "crouch_shoot_grenade_blend8" + "crouch_shoot_grenade_blend9" + blend XR -90 90 fps 30 + } + $sequence "ref_aim_myweapon" { + "ref_aim_myweapon_blend1" + "ref_aim_myweapon_blend2" + "ref_aim_myweapon_blend3" + "ref_aim_myweapon_blend4" + "ref_aim_myweapon_blend5" + "ref_aim_myweapon_blend6" + "ref_aim_myweapon_blend7" + "ref_aim_myweapon_blend8" + "ref_aim_myweapon_blend9" + blend XR -90 90 fps 30 loop + } + $sequence "ref_shoot_myweapon" { + "ref_shoot_grenade_blend1" + "ref_shoot_grenade_blend2" + "ref_shoot_grenade_blend3" + "ref_shoot_grenade_blend4" + "ref_shoot_grenade_blend5" + "ref_shoot_grenade_blend6" + "ref_shoot_grenade_blend7" + "ref_shoot_grenade_blend8" + "ref_shoot_grenade_blend9" + blend XR -90 90 fps 30 + } + ``` +
    From 4df22c709aefa1ea3e4de4313510969a3d7f049c Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 18 Apr 2024 18:21:32 +0200 Subject: [PATCH 203/231] update readme --- api/player-model/README.md | 520 ++++++++++++++++++------------------- 1 file changed, 256 insertions(+), 264 deletions(-) diff --git a/api/player-model/README.md b/api/player-model/README.md index c85dd88..3e69a50 100644 --- a/api/player-model/README.md +++ b/api/player-model/README.md @@ -44,93 +44,91 @@ Fist of all you have to provide basic player sequences like `walk`, `run`, `flit
    Example - ```cpp - $sequence "dummy" { - "anims/dummy" - fps 24 - loop - } - $sequence "idle1" { - "anims/idle1" - ACT_IDLE 1 - fps 15 - loop - } - $sequence "crouch_idle" { - "anims/crouch_idle" - ACT_CROUCHIDLE 1 - fps 10 - loop - } - $sequence "walk" { - "anims/walk" - ACT_WALK 1 - fps 30 - loop - LX - } - $sequence "run" { - "anims/run" - ACT_RUN 1 - fps 60 - loop - LX - } - $sequence "crouchrun" { - "anims/crouchrun" - ACT_CROUCH 1 - fps 30 - loop - LX - } - $sequence "jump" { - "anims/jump" - ACT_HOP 1 - fps 36 - } - $sequence "longjump" { - "anims/longjump" - ACT_LEAP 1 - fps 36 - } - $sequence "swim" { - "anims/swim" - ACT_SWIM 1 - fps 30 - loop - } - $sequence "treadwater" { "anims/treadwater" - ACT_HOVER 1 - fps 24 - loop - } - $sequence "gut_flinch" { - "anims/gut_flinch_blend01" - "anims/gut_flinch_blend02" - "anims/gut_flinch_blend03" - "anims/gut_flinch_blend04" - "anims/gut_flinch_blend05" - "anims/gut_flinch_blend06" - "anims/gut_flinch_blend07" - "anims/gut_flinch_blend08" - "anims/gut_flinch_blend09" - blend XR -90 90 - fps 30 - } - $sequence "head_flinch" { - "anims/head_flinch_blend01" - "anims/head_flinch_blend02" - "anims/head_flinch_blend03" - "anims/head_flinch_blend04" - "anims/head_flinch_blend05" - "anims/head_flinch_blend06" - "anims/head_flinch_blend07" - "anims/head_flinch_blend08" - "anims/head_flinch_blend09" - blend XR -90 90 - fps 30 - } - ``` + $sequence "dummy" { + "anims/dummy" + fps 24 + loop + } + $sequence "idle1" { + "anims/idle1" + ACT_IDLE 1 + fps 15 + loop + } + $sequence "crouch_idle" { + "anims/crouch_idle" + ACT_CROUCHIDLE 1 + fps 10 + loop + } + $sequence "walk" { + "anims/walk" + ACT_WALK 1 + fps 30 + loop + LX + } + $sequence "run" { + "anims/run" + ACT_RUN 1 + fps 60 + loop + LX + } + $sequence "crouchrun" { + "anims/crouchrun" + ACT_CROUCH 1 + fps 30 + loop + LX + } + $sequence "jump" { + "anims/jump" + ACT_HOP 1 + fps 36 + } + $sequence "longjump" { + "anims/longjump" + ACT_LEAP 1 + fps 36 + } + $sequence "swim" { + "anims/swim" + ACT_SWIM 1 + fps 30 + loop + } + $sequence "treadwater" { "anims/treadwater" + ACT_HOVER 1 + fps 24 + loop + } + $sequence "gut_flinch" { + "anims/gut_flinch_blend01" + "anims/gut_flinch_blend02" + "anims/gut_flinch_blend03" + "anims/gut_flinch_blend04" + "anims/gut_flinch_blend05" + "anims/gut_flinch_blend06" + "anims/gut_flinch_blend07" + "anims/gut_flinch_blend08" + "anims/gut_flinch_blend09" + blend XR -90 90 + fps 30 + } + $sequence "head_flinch" { + "anims/head_flinch_blend01" + "anims/head_flinch_blend02" + "anims/head_flinch_blend03" + "anims/head_flinch_blend04" + "anims/head_flinch_blend05" + "anims/head_flinch_blend06" + "anims/head_flinch_blend07" + "anims/head_flinch_blend08" + "anims/head_flinch_blend09" + blend XR -90 90 + fps 30 + }
    @@ -140,126 +138,124 @@ Ensure your animation model includes at least one polygon. Here's an example SMD
    animreference.smd - ```cpp - version 1 - nodes - 0 "Bip01" -1 - 1 "Bip01 Pelvis" 0 - 2 "Bip01 Spine" 1 - 3 "Bip01 Spine1" 2 - 4 "Bip01 Spine2" 3 - 5 "Bip01 Spine3" 4 - 6 "Bip01 Neck" 5 - 7 "Bip01 Head" 6 - 8 "Bone01" 7 - 9 "Bip01 L Clavicle" 6 - 10 "Bip01 L UpperArm" 9 - 11 "Bip01 L Forearm" 10 - 12 "Bip01 L Hand" 11 - 13 "Bip01 L Finger0" 12 - 14 "Bip01 L Finger01" 13 - 15 "Bip01 L Finger1" 12 - 16 "Bip01 L Finger11" 15 - 17 "-- L knuckle" 15 - 18 "-- L Forearm twist" 11 - 19 "-- L wrist" 11 - 20 "-- L Elbow" 10 - 21 "-- L bicep twist" 10 - 22 "-- L shoulder outside" 9 - 23 "-- L Shoulder inside" 9 - 24 "Bip01 R Clavicle" 6 - 25 "Bip01 R UpperArm" 24 - 26 "Bip01 R Forearm" 25 - 27 "Bip01 R Hand" 26 - 28 "Bip01 R Finger0" 27 - 29 "Bip01 R Finger01" 28 - 30 "Bip01 R Finger1" 27 - 31 "Bip01 R Finger11" 30 - 32 "-- R knuckle" 30 - 33 "-- R wrist" 26 - 34 "-- R forearm twist" 26 - 35 "-- R Elbow" 25 - 36 "-- R bicep twist" 25 - 37 "-- R Shoulder inside" 24 - 38 "-- R shoulder outside" 24 - 39 "-- Neck smooth" 5 - 40 "-- R Butt" 1 - 41 "-- L butt" 1 - 42 "Bip01 L Thigh" 1 - 43 "Bip01 L Calf" 42 - 44 "Bip01 L Foot" 43 - 45 "Bip01 L Toe0" 44 - 46 "-- L ankle" 43 - 47 "-- L Knee" 42 - 48 "Bip01 R Thigh" 1 - 49 "Bip01 R Calf" 48 - 50 "Bip01 R Foot" 49 - 51 "Bip01 R Toe0" 50 - 52 "-- R Ankle" 49 - end - skeleton - time 0 - 0 0.233849 -2.251689 38.192150 0.000000 0.000000 -1.570795 - 1 -2.276935 0.000003 -1.238186 -1.570795 -1.570451 0.000000 - 2 1.797145 0.711796 -0.000002 -0.000004 -0.000001 0.000739 - 3 4.118605 -0.003279 0.000000 0.000000 0.000000 0.000035 - 4 4.118601 -0.003280 0.000000 0.000000 0.000000 0.000049 - 5 4.118600 -0.003280 0.000000 0.000000 0.000000 -0.000009 - 6 4.118531 -0.003538 0.000000 0.000000 0.000000 -0.019437 - 7 4.443601 0.000000 0.000000 0.000000 -0.000001 0.201740 - 8 1.426626 0.072724 0.002913 2.958476 -1.570796 0.000000 - 9 0.000004 0.003534 1.732721 -0.000040 -1.501696 -3.122911 - 10 6.384776 0.000000 0.000001 0.025648 -0.046980 0.004099 - 11 10.242682 0.000000 -0.000002 0.000000 0.000000 -0.008014 - 12 11.375562 0.000000 0.000005 -1.580468 -0.132234 0.009455 - 13 0.728679 0.023429 -1.008292 1.705251 0.347372 0.567022 - 14 2.136497 0.000000 0.000001 0.000000 0.000000 0.287979 - 15 3.115505 -0.886041 -0.021431 -0.000782 0.000152 0.191986 - 16 2.011151 0.000000 0.000000 0.000000 0.000000 0.659566 - 17 1.734173 0.000003 0.000000 0.000000 0.000000 0.330185 - 18 6.000001 0.000000 0.000000 -1.578050 0.000000 0.000000 - 19 11.375562 0.000000 0.000005 -1.575523 -0.074433 0.005312 - 20 10.510129 0.000000 0.000000 0.000000 0.000000 -1.574800 - 21 5.500000 0.000000 -0.000001 -0.011814 0.000000 0.000000 - 22 6.551491 0.000000 -0.000001 0.019708 -0.055281 0.008457 - 23 6.551491 0.000000 -0.000001 0.010051 -0.028020 0.004425 - 24 0.000004 0.003543 -1.732721 -0.000040 1.501696 -3.122992 - 25 6.384777 0.000000 -0.000001 -0.025648 0.046980 0.004099 - 26 10.242681 0.000000 0.000002 0.000000 0.000000 -0.008014 - 27 11.375562 0.000000 -0.000002 1.580468 0.132234 0.009455 - 28 0.728679 0.023429 1.008292 -1.705251 -0.347372 0.567022 - 29 2.136496 -0.000001 0.000000 0.000000 0.000000 0.287979 - 30 3.115505 -0.886040 0.021431 0.000782 -0.000152 0.191986 - 31 2.011151 0.000000 0.000000 0.000000 0.000000 0.659566 - 32 1.734173 -0.000001 0.000000 0.000000 0.000000 0.330185 - 33 11.389366 -0.000819 0.158785 1.575523 0.074433 0.005312 - 34 6.000001 0.000000 0.000003 1.575523 0.000000 0.000000 - 35 10.510130 0.000000 -0.000001 0.000000 0.000000 -1.574800 - 36 5.499999 0.000000 0.000001 0.010051 0.000000 0.000000 - 37 6.551491 0.000000 0.000001 -0.010051 0.028020 0.004424 - 38 6.551491 0.000000 0.000001 -0.010051 0.028020 0.004424 - 39 4.226144 -0.003201 0.000000 0.000000 0.000000 0.000000 - 40 0.000005 -0.000005 -3.713579 -0.006814 3.056983 -0.063787 - 41 -0.000005 0.000005 3.713579 0.005299 -3.071082 -0.053070 - 42 -0.000005 0.000007 3.619081 0.011132 -3.002289 -0.086533 - 43 16.573919 0.000000 0.000000 0.000000 0.000000 -0.162458 - 44 15.128179 0.000000 0.000001 0.000920 -0.139743 0.076637 - 45 5.758665 4.244730 0.000000 0.000000 0.000000 1.570796 - 46 15.708952 0.000001 0.000000 0.001562 -0.077726 0.040998 - 47 17.210194 0.000000 0.000001 0.000000 0.000000 -1.486823 - 48 0.000005 -0.000003 -3.619081 -0.011130 3.002286 -0.086533 - 49 16.573919 0.000000 0.000000 0.000000 0.000000 -0.162458 - 50 15.128179 0.000000 0.000000 -0.000920 0.139743 0.076637 - 51 5.758665 4.244731 0.000000 0.000000 0.000000 1.570796 - 52 15.708952 0.000000 0.000000 -0.001364 0.104219 0.055002 - end - triangles - black.bmp - 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - end - ``` + version 1 + nodes + 0 "Bip01" -1 + 1 "Bip01 Pelvis" 0 + 2 "Bip01 Spine" 1 + 3 "Bip01 Spine1" 2 + 4 "Bip01 Spine2" 3 + 5 "Bip01 Spine3" 4 + 6 "Bip01 Neck" 5 + 7 "Bip01 Head" 6 + 8 "Bone01" 7 + 9 "Bip01 L Clavicle" 6 + 10 "Bip01 L UpperArm" 9 + 11 "Bip01 L Forearm" 10 + 12 "Bip01 L Hand" 11 + 13 "Bip01 L Finger0" 12 + 14 "Bip01 L Finger01" 13 + 15 "Bip01 L Finger1" 12 + 16 "Bip01 L Finger11" 15 + 17 "-- L knuckle" 15 + 18 "-- L Forearm twist" 11 + 19 "-- L wrist" 11 + 20 "-- L Elbow" 10 + 21 "-- L bicep twist" 10 + 22 "-- L shoulder outside" 9 + 23 "-- L Shoulder inside" 9 + 24 "Bip01 R Clavicle" 6 + 25 "Bip01 R UpperArm" 24 + 26 "Bip01 R Forearm" 25 + 27 "Bip01 R Hand" 26 + 28 "Bip01 R Finger0" 27 + 29 "Bip01 R Finger01" 28 + 30 "Bip01 R Finger1" 27 + 31 "Bip01 R Finger11" 30 + 32 "-- R knuckle" 30 + 33 "-- R wrist" 26 + 34 "-- R forearm twist" 26 + 35 "-- R Elbow" 25 + 36 "-- R bicep twist" 25 + 37 "-- R Shoulder inside" 24 + 38 "-- R shoulder outside" 24 + 39 "-- Neck smooth" 5 + 40 "-- R Butt" 1 + 41 "-- L butt" 1 + 42 "Bip01 L Thigh" 1 + 43 "Bip01 L Calf" 42 + 44 "Bip01 L Foot" 43 + 45 "Bip01 L Toe0" 44 + 46 "-- L ankle" 43 + 47 "-- L Knee" 42 + 48 "Bip01 R Thigh" 1 + 49 "Bip01 R Calf" 48 + 50 "Bip01 R Foot" 49 + 51 "Bip01 R Toe0" 50 + 52 "-- R Ankle" 49 + end + skeleton + time 0 + 0 0.233849 -2.251689 38.192150 0.000000 0.000000 -1.570795 + 1 -2.276935 0.000003 -1.238186 -1.570795 -1.570451 0.000000 + 2 1.797145 0.711796 -0.000002 -0.000004 -0.000001 0.000739 + 3 4.118605 -0.003279 0.000000 0.000000 0.000000 0.000035 + 4 4.118601 -0.003280 0.000000 0.000000 0.000000 0.000049 + 5 4.118600 -0.003280 0.000000 0.000000 0.000000 -0.000009 + 6 4.118531 -0.003538 0.000000 0.000000 0.000000 -0.019437 + 7 4.443601 0.000000 0.000000 0.000000 -0.000001 0.201740 + 8 1.426626 0.072724 0.002913 2.958476 -1.570796 0.000000 + 9 0.000004 0.003534 1.732721 -0.000040 -1.501696 -3.122911 + 10 6.384776 0.000000 0.000001 0.025648 -0.046980 0.004099 + 11 10.242682 0.000000 -0.000002 0.000000 0.000000 -0.008014 + 12 11.375562 0.000000 0.000005 -1.580468 -0.132234 0.009455 + 13 0.728679 0.023429 -1.008292 1.705251 0.347372 0.567022 + 14 2.136497 0.000000 0.000001 0.000000 0.000000 0.287979 + 15 3.115505 -0.886041 -0.021431 -0.000782 0.000152 0.191986 + 16 2.011151 0.000000 0.000000 0.000000 0.000000 0.659566 + 17 1.734173 0.000003 0.000000 0.000000 0.000000 0.330185 + 18 6.000001 0.000000 0.000000 -1.578050 0.000000 0.000000 + 19 11.375562 0.000000 0.000005 -1.575523 -0.074433 0.005312 + 20 10.510129 0.000000 0.000000 0.000000 0.000000 -1.574800 + 21 5.500000 0.000000 -0.000001 -0.011814 0.000000 0.000000 + 22 6.551491 0.000000 -0.000001 0.019708 -0.055281 0.008457 + 23 6.551491 0.000000 -0.000001 0.010051 -0.028020 0.004425 + 24 0.000004 0.003543 -1.732721 -0.000040 1.501696 -3.122992 + 25 6.384777 0.000000 -0.000001 -0.025648 0.046980 0.004099 + 26 10.242681 0.000000 0.000002 0.000000 0.000000 -0.008014 + 27 11.375562 0.000000 -0.000002 1.580468 0.132234 0.009455 + 28 0.728679 0.023429 1.008292 -1.705251 -0.347372 0.567022 + 29 2.136496 -0.000001 0.000000 0.000000 0.000000 0.287979 + 30 3.115505 -0.886040 0.021431 0.000782 -0.000152 0.191986 + 31 2.011151 0.000000 0.000000 0.000000 0.000000 0.659566 + 32 1.734173 -0.000001 0.000000 0.000000 0.000000 0.330185 + 33 11.389366 -0.000819 0.158785 1.575523 0.074433 0.005312 + 34 6.000001 0.000000 0.000003 1.575523 0.000000 0.000000 + 35 10.510130 0.000000 -0.000001 0.000000 0.000000 -1.574800 + 36 5.499999 0.000000 0.000001 0.010051 0.000000 0.000000 + 37 6.551491 0.000000 0.000001 -0.010051 0.028020 0.004424 + 38 6.551491 0.000000 0.000001 -0.010051 0.028020 0.004424 + 39 4.226144 -0.003201 0.000000 0.000000 0.000000 0.000000 + 40 0.000005 -0.000005 -3.713579 -0.006814 3.056983 -0.063787 + 41 -0.000005 0.000005 3.713579 0.005299 -3.071082 -0.053070 + 42 -0.000005 0.000007 3.619081 0.011132 -3.002289 -0.086533 + 43 16.573919 0.000000 0.000000 0.000000 0.000000 -0.162458 + 44 15.128179 0.000000 0.000001 0.000920 -0.139743 0.076637 + 45 5.758665 4.244730 0.000000 0.000000 0.000000 1.570796 + 46 15.708952 0.000001 0.000000 0.001562 -0.077726 0.040998 + 47 17.210194 0.000000 0.000001 0.000000 0.000000 -1.486823 + 48 0.000005 -0.000003 -3.619081 -0.011130 3.002286 -0.086533 + 49 16.573919 0.000000 0.000000 0.000000 0.000000 -0.162458 + 50 15.128179 0.000000 0.000000 -0.000920 0.139743 0.076637 + 51 5.758665 4.244731 0.000000 0.000000 0.000000 1.570796 + 52 15.708952 0.000000 0.000000 -0.001364 0.104219 0.055002 + end + triangles + black.bmp + 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + end
    Use the `$body` command in your QC file to add this reference: @@ -275,61 +271,59 @@ Use a compiler like `DoomMusic's StudioMDL` to protect bones. Add `$protection`
    Example - ```cpp - $protected "Bip01" - $protected "Bip01 Pelvis" - $protected "Bip01 Spine" - $protected "Bip01 Spine1" - $protected "Bip01 Spine2" - $protected "Bip01 Spine3" - $protected "Bip01 Neck" - $protected "Bip01 Head" - $protected "Bone01" - $protected "Bip01 L Clavicle" - $protected "Bip01 L UpperArm" - $protected "Bip01 L Forearm" - $protected "Bip01 L Hand" - $protected "Bip01 L Finger0" - $protected "Bip01 L Finger01" - $protected "Bip01 L Finger1" - $protected "Bip01 L Finger11" - $protected "-- L knuckle" - $protected "-- L Forearm twist" - $protected "-- L wrist" - $protected "-- L Elbow" - $protected "-- L bicep twist" - $protected "-- L shoulder outside" - $protected "-- L Shoulder inside" - $protected "Bip01 R Clavicle" - $protected "Bip01 R UpperArm" - $protected "Bip01 R Forearm" - $protected "Bip01 R Hand" - $protected "Bip01 R Finger0" - $protected "Bip01 R Finger01" - $protected "Bip01 R Finger1" - $protected "Bip01 R Finger11" - $protected "-- R knuckle" - $protected "-- R wrist" - $protected "-- R forearm twist" - $protected "-- R Elbow" - $protected "-- R bicep twist" - $protected "-- R Shoulder inside" - $protected "-- R shoulder outside" - $protected "-- Neck smooth" - $protected "-- R Butt" - $protected "-- L butt" - $protected "Bip01 L Thigh" - $protected "Bip01 L Calf" - $protected "Bip01 L Foot" - $protected "Bip01 L Toe0" - $protected "-- L ankle" - $protected "-- L Knee" - $protected "Bip01 R Thigh" - $protected "Bip01 R Calf" - $protected "Bip01 R Foot" - $protected "Bip01 R Toe0" - $protected "-- R Ankle" - ``` + $protected "Bip01" + $protected "Bip01 Pelvis" + $protected "Bip01 Spine" + $protected "Bip01 Spine1" + $protected "Bip01 Spine2" + $protected "Bip01 Spine3" + $protected "Bip01 Neck" + $protected "Bip01 Head" + $protected "Bone01" + $protected "Bip01 L Clavicle" + $protected "Bip01 L UpperArm" + $protected "Bip01 L Forearm" + $protected "Bip01 L Hand" + $protected "Bip01 L Finger0" + $protected "Bip01 L Finger01" + $protected "Bip01 L Finger1" + $protected "Bip01 L Finger11" + $protected "-- L knuckle" + $protected "-- L Forearm twist" + $protected "-- L wrist" + $protected "-- L Elbow" + $protected "-- L bicep twist" + $protected "-- L shoulder outside" + $protected "-- L Shoulder inside" + $protected "Bip01 R Clavicle" + $protected "Bip01 R UpperArm" + $protected "Bip01 R Forearm" + $protected "Bip01 R Hand" + $protected "Bip01 R Finger0" + $protected "Bip01 R Finger01" + $protected "Bip01 R Finger1" + $protected "Bip01 R Finger11" + $protected "-- R knuckle" + $protected "-- R wrist" + $protected "-- R forearm twist" + $protected "-- R Elbow" + $protected "-- R bicep twist" + $protected "-- R Shoulder inside" + $protected "-- R shoulder outside" + $protected "-- Neck smooth" + $protected "-- R Butt" + $protected "-- L butt" + $protected "Bip01 L Thigh" + $protected "Bip01 L Calf" + $protected "Bip01 L Foot" + $protected "Bip01 L Toe0" + $protected "-- L ankle" + $protected "-- L Knee" + $protected "Bip01 R Thigh" + $protected "Bip01 R Calf" + $protected "Bip01 R Foot" + $protected "Bip01 R Toe0" + $protected "-- R Ankle"
    #### Custom Animation Sequences @@ -339,7 +333,6 @@ Add your custom weapon animations:
    Example - ```cpp $sequence "crouch_aim_myweapon" { "crouch_aim_myweapon_blend1" "crouch_aim_myweapon_blend2" @@ -388,5 +381,4 @@ Add your custom weapon animations: "ref_shoot_grenade_blend9" blend XR -90 90 fps 30 } - ```
    From 738c7eadecc17cbf377c2a7041e72ae7ec469314 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 18 Apr 2024 18:25:48 +0200 Subject: [PATCH 204/231] update readme --- api/player-model/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/api/player-model/README.md b/api/player-model/README.md index 3e69a50..2eb0a68 100644 --- a/api/player-model/README.md +++ b/api/player-model/README.md @@ -11,22 +11,22 @@ PlayerModel_Update(pPlayer); // force update player model ``` -## Working with animations +## Working With Animations The API supports loading custom animations, including additional weapon animations from separate files. -### Precaching animation +### Precaching Animation To precache the animation use `PlayerModel_PrecacheAnimation` native, it will precache animation from `animations` directory. This example will precache animation from `cstrike/animations/my-mod/player.mdl`: ```cpp PlayerModel_PrecacheAnimation("my-mod/player.mdl"); ``` -### Set custom weapon animation +### Set Custom Weapon Animation -Customize weapon animations by set `m_szAnimExtension` member. The following example sets the animation to `ref_aim_mysupergun`: +Customize weapon animations by set `m_szAnimExtension` member. The following example sets the animation to `ref_aim_myweapon`: ```cpp -static const szCustonWeaponExt[] = "mysupergun"; +static const szCustonWeaponExt[] = "myweapon"; set_ent_data_string(pPlayer, "CBasePlayer", "m_szAnimExtention", szCustonWeaponExt); set_ent_data(pPlayer, "CBaseMonster", "m_Activity", ACT_IDLE); @@ -34,7 +34,7 @@ rg_set_animation(pPlayer, PLAYER_IDLE); ``` -## Making animations file +## Making Animations File ### Creating Animation Files @@ -132,7 +132,7 @@ Fist of all you have to provide basic player sequences like `walk`, `run`, `flit -#### Fake reference +#### Fake Reference Ensure your animation model includes at least one polygon. Here's an example SMD file for a fake reference:
    From d88c8eda739bcd6dfdbc15e73e70f890ae069caf Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 18 Apr 2024 18:27:36 +0200 Subject: [PATCH 205/231] update readme --- api/player-model/README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/api/player-model/README.md b/api/player-model/README.md index 2eb0a68..62e14ea 100644 --- a/api/player-model/README.md +++ b/api/player-model/README.md @@ -1,7 +1,7 @@ # Player Model API -## Working With Models +## 🧍Working With Models To change player model use `PlayerModel_Set` and `PlayerModel_Update` natives. `PlayerModel_Set` is using to set player model, calling `PlayerModel_Update` will force update model. @@ -10,8 +10,7 @@ PlayerModel_Set(pPlayer, "player/model/vip/vip.mdl"); // set current player mode PlayerModel_Update(pPlayer); // force update player model ``` - -## Working With Animations +## 🕺Working With Animations The API supports loading custom animations, including additional weapon animations from separate files. @@ -33,8 +32,7 @@ set_ent_data(pPlayer, "CBaseMonster", "m_Activity", ACT_IDLE); rg_set_animation(pPlayer, PLAYER_IDLE); ``` - -## Making Animations File +## 📄 Making Animations File ### Creating Animation Files From 90b74b7d4ee047550d4be0a7178c40c59718614e Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Thu, 18 Apr 2024 18:33:00 +0200 Subject: [PATCH 206/231] add PlayerModel_UpdateAnimation native --- api/player-model/api_player_model.sma | 11 +++++++++++ api/player-model/include/api_player_model.inc | 1 + 2 files changed, 12 insertions(+) diff --git a/api/player-model/api_player_model.sma b/api/player-model/api_player_model.sma index aa89506..9045e52 100644 --- a/api/player-model/api_player_model.sma +++ b/api/player-model/api_player_model.sma @@ -59,6 +59,7 @@ public plugin_natives() { register_native("PlayerModel_Set", "Native_SetPlayerModel"); register_native("PlayerModel_Reset", "Native_ResetPlayerModel"); register_native("PlayerModel_Update", "Native_UpdatePlayerModel"); + register_native("PlayerModel_UpdateAnimation", "Native_UpdatePlayerAnimation"); register_native("PlayerModel_SetSequence", "Native_SetPlayerSequence"); register_native("PlayerModel_PrecacheAnimation", "Native_PrecacheAnimation"); } @@ -144,6 +145,16 @@ public Native_UpdatePlayerModel(iPluginId, iArgc) { @Player_UpdateCurrentModel(pPlayer); } +public Native_UpdatePlayerAnimation(iPluginId, iArgc) { + new pPlayer = get_param(1); + + if (!is_user_connected(pPlayer)) { + NATIVE_ERROR_NOT_CONNECTED(pPlayer); + } + + @Player_UpdateAnimationModel(pPlayer); +} + public Native_SetPlayerSequence(iPluginId, iArgc) { new pPlayer = get_param(1); diff --git a/api/player-model/include/api_player_model.inc b/api/player-model/include/api_player_model.inc index 687f2fb..994acd4 100644 --- a/api/player-model/include/api_player_model.inc +++ b/api/player-model/include/api_player_model.inc @@ -11,6 +11,7 @@ native PlayerModel_GetEntity(pPlayer); native bool:PlayerModel_HasCustom(pPlayer); native PlayerModel_Set(pPlayer, const szModel[]); native PlayerModel_Update(pPlayer); +native PlayerModel_UpdateAnimation(pPlayer); native PlayerModel_Reset(pPlayer); native PlayerModel_SetSequence(pPlayer, const szSequence[]); native PlayerModel_PrecacheAnimation(const szAnimation[]); From d334f5d969a43f9b384780058c7c0e33866d4034 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 23 Apr 2024 08:44:10 +0200 Subject: [PATCH 207/231] update readme --- api/custom-entities/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/api/custom-entities/README.md b/api/custom-entities/README.md index 7f8af1e..2bbb7e9 100644 --- a/api/custom-entities/README.md +++ b/api/custom-entities/README.md @@ -1,5 +1,3 @@ -Certainly! Let's create documentation for the Custom Entities API: - # Custom Entities API The Custom Entities API provides a flexible framework for managing and creating custom entities. This API allows developers to register, spawn, manipulate, and interact with custom entities, defining their behavior through hooks and methods. From f4d584611e3342a7bef9838ecb946eea5cf95d56 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 23 Apr 2024 11:13:11 +0200 Subject: [PATCH 208/231] add future version --- api/custom-entities/future/README.md | 212 ++ .../future/api_custom_entities.sma | 2147 +++++++++++++++++ .../future/include/api_custom_entities.inc | 249 ++ .../include/api_custom_entities_const.inc | 136 ++ 4 files changed, 2744 insertions(+) create mode 100644 api/custom-entities/future/README.md create mode 100644 api/custom-entities/future/api_custom_entities.sma create mode 100644 api/custom-entities/future/include/api_custom_entities.inc create mode 100644 api/custom-entities/future/include/api_custom_entities_const.inc diff --git a/api/custom-entities/future/README.md b/api/custom-entities/future/README.md new file mode 100644 index 0000000..614c033 --- /dev/null +++ b/api/custom-entities/future/README.md @@ -0,0 +1,212 @@ +# Custom Entities API + +The Custom Entities API provides a flexible framework for managing and creating custom entities. This API allows developers to register, spawn, manipulate, and interact with custom entities, defining their behavior through hooks and methods. + +## Implementing a Custom Entity + +### 📚 Registering a New Entity Class + +To implement a custom entity, the first thing you need to do is register a new entity class using the `CE_RegisterClass` native function. This can be done in the `plugin_precache` function, allowing you to place your entities directly on the map using the registered class as the `classname`. + +Let's create a `key` item entity: + +```cpp +#include +#include +#include + +public plugin_precache() { + CE_RegisterClass("item_key", CEPreset_Item); +} +``` + +In this example, the `CEPreset_Item` preset class is used to implement the item. It inherits logic for items such as pickup methods. + +### ⚙️ Setting Entity Members + +The entity currently lacks a model and size, so let's provide them by implementing the `Allocate` method for the entity to supply all the necessary members: + +```cpp +public plugin_precache() { + // Precaching key model + precache_model("models/w_security.mdl"); + + CE_RegisterClass("item_key", CEPreset_Item); + + CE_ImplementClassMethod("item_key", CEMethod_Allocate, "@KeyItem_Allocate"); +} + +@KeyItem_Allocate(const this) { + CE_CallBaseMethod(); // Calling the base Allocate method + + CE_SetMemberString(this, CE_MEMBER_MODEL, "models/w_security.mdl"); + CE_SetMemberVec(this, CE_MEMBER_MINS, Float:{-8.0, -8.0, 0.0}); + CE_SetMemberVec(this, CE_MEMBER_MAXS, Float:{8.0, 8.0, 8.0}); +} +``` + +In the implementation of the `Allocate` method, the `CE_CallBaseMethod()` call allows us to invoke the base `Allocate` method of the `CEPreset_Item` preset class, allowing it to handle its own allocation logic before executing custom logic. Make sure to include this call in every implemented or overridden method unless you need to fully rewrite the implementation. + +> Caution: When calling CE_CallBaseMethod, you need to pass all method arguments to ensure the base method receives the necessary context for its operations. + +Natives like `CE_SetMemberString` and `CE_SetMemberVec` are used to set members/properties for the entity instance. Constants such as `CE_MEMBER_*` are used to specify the property names that will set the model each time the entity is spawned or its variables are reset. For example, `CE_MEMBER_MODEL` sets `pev->model` of the entity every respawn. Similarly, `CE_MEMBER_MINS` and `CE_MEMBER_MAXS` specify the entity's bounding box. + +### 💡 Writing Logic for the Entity + +Our `item_key` entity is functional, allowing you to place the entity with the classname `item_key` on your map. It will spawn in the game and can be picked up. + +However, we still need to add some logic to the entity, as it currently does not perform any specific actions. Let's implement the `Pickup` and `CanPickup` methods in the same way we implemented `Allocate`: + +```cpp +new g_rgbPlayerHasKey[MAX_PLAYERS + 1]; + +public plugin_precache() { + CE_RegisterClass("item_key", CEPreset_Item); + + CE_ImplementClassMethod("item_key", CEMethod_Allocate, "@KeyItem_Allocate"); + CE_ImplementClassMethod("item_key", CEMethod_CanPickup, "@KeyItem_CanPickup"); + CE_ImplementClassMethod("item_key", CEMethod_Pickup, "@KeyItem_Pickup"); +} + +@KeyItem_Allocate(const this) { ... } + +@KeyItem_CanPickup(const this, const pPlayer) { + // Base implementation returns false if the item is not on the ground + if (!CE_CallBaseMethod(pPlayer)) return false; + + // Can't pick up if already holding a key + if (g_rgbPlayerHasKey[pPlayer]) return false; + + return true; +} + +@KeyItem_Pickup(const this, const pPlayer) { + CE_CallBaseMethod(pPlayer); + + client_print(pPlayer, print_center, "You have found a key!"); + + g_rgbPlayerHasKey[pPlayer] = true; +} +``` + +This simple implementation will display the text `"You have found a key!"` to the player who picks up the key and mark that the player has picked up a key. + +### 🧩 Custom Members + +If you want to implement different key types, you can use custom members. Let's update our logic and improve the code: + +```cpp +#include +#include + +#include + +#define ENTITY_CLASSNAME "item_key" + +#define m_iType "iType" + +enum KeyType { + KeyType_Red = 0, + KeyType_Yellow, + KeyType_Green, + KeyType_Blue +}; + +new const KEY_NAMES[KeyType][] = { "red", "yellow", "green", "blue" }; + +new const Float:KEY_COLORS_F[KeyType][3] = { + {255.0, 0.0, 0.0}, + {255.0, 255.0, 0.0}, + {0.0, 255.0, 0.0}, + {0.0, 0.0, 255.0}, +}; + +new const g_szModel[] = "models/w_security.mdl"; + +new bool:g_rgbPlayerHasKey[MAX_PLAYERS + 1][KeyType]; + +public plugin_precache() { + precache_model(g_szModel); + + CE_RegisterClass(ENTITY_CLASSNAME, CEPreset_Item); + + CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_Allocate, "@KeyItem_Allocate"); + CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_Spawn, "@KeyItem_Spawn"); + CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_CanPickup, "@KeyItem_CanPickup"); + CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_Pickup, "@KeyItem_Pickup"); + + // Bind the "type" entity key to the "m_iType" entity member + CE_RegisterClassKeyMemberBinding(ENTITY_CLASSNAME, "type", m_iType, CEMemberType_Cell); +} + +@KeyItem_Allocate(const this) { + CE_CallBaseMethod(); + + CE_SetMemberString(this, CE_MEMBER_MODEL, g_szModel); + CE_SetMemberVec(this, CE_MEMBER_MINS, Float:{-8.0, -8.0, 0.0}); + CE_SetMemberVec(this, CE_MEMBER_MAXS, Float:{8.0, 8.0, 8.0}); + + CE_SetMember(this, m_iType, KeyType_Red); // Default key type +} + +@KeyItem_Spawn(const this) { + CE_CallBaseMethod(); + + new KeyType:iType = CE_GetMember(this, m_iType); + + // Adding rendering effect based on key type + set_pev(this, pev_renderfx, kRenderFxGlowShell); + set_pev(this, pev_renderamt, 1.0); + set_pev(this, pev_rendercolor, KEY_COLORS_F[iType]); +} + +@KeyItem_CanPickup(const this, const pPlayer) { + if (!CE_CallBaseMethod(pPlayer)) return false; + + new KeyType:iType = CE_GetMember(this, m_iType); + + if (g_rgbPlayerHasKey[pPlayer][iType]) return false; + + return true; +} + +@KeyItem_Pickup(const this, const pPlayer) { + CE_CallBaseMethod(pPlayer); + + new KeyType:iType = CE_GetMember(this, m_iType); + + client_print(pPlayer, print_center, "You have found a %s key!", KEY_NAMES[iType]); + + g_rgbPlayerHasKey[pPlayer][iType] = true; +} +``` + +Here, we added `KeyType` constants to represent different key types and implemented the `Spawn` method to set rendering effects based on the key type. + +You may have noticed the constant `m_iType`, which is a string constant used for the custom member we work with using `CE_GetMember` and `CE_SetMember` natives. We also use `CE_RegisterClassKeyMemberBinding` to bind this member to the entity key `type`, allowing us to change the key type by setting the `type` key-value on the map. + +### 🕵️‍♂️ Testing and Debugging + +> What if we don't have a map yet to test it? Is there another way to spawn our entity? + +Yes, there are a few ways to do it! + +#### Spawning an Entity Using the Console + +You can spawn an entity using the console command `ce_spawn [...members]`. The `` parameter is the `classname` of the registered entity, and `[...members]` are optional parameters to set before spawning. Let's spawn a `"Green"` key: + +```cpp +ce_spawn "item_key" "iType" 3 +``` + +### Spawning an Entity with Code + +You can also create the entity using the `CE_Create` native function and then call the engine `Spawn` function on it: + +```cpp +new pKey = CE_Create("item_key", vecOrigin); + +if (pKey != FM_NULLENT) { + dllfunc(DLLFunc_Spawn, pKey); +} +``` \ No newline at end of file diff --git a/api/custom-entities/future/api_custom_entities.sma b/api/custom-entities/future/api_custom_entities.sma new file mode 100644 index 0000000..e6f3aa7 --- /dev/null +++ b/api/custom-entities/future/api_custom_entities.sma @@ -0,0 +1,2147 @@ +#pragma semicolon 1 + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#define IS_PLAYER(%1) (%1 >= 1 && %1 <= MaxClients) + +#define ERROR_IS_ALREADY_REGISTERED "%s Entity with class ^"%s^" is already registered." +#define ERROR_IS_NOT_REGISTERED "%s Entity ^"%s^" is not registered." +#define ERROR_FUNCTION_NOT_FOUND "%s Function ^"%s^" not found in plugin ^"%s^"." +#define ERROR_IS_NOT_REGISTERED_BASE "%s Cannot extend entity class ^"%s^". The class is not exists!" +#define ERROR_CANNOT_CREATE_UNREGISTERED "%s Failed to create entity ^"%s^"! Entity is not registered!" +#define ERROR_CANNOT_CREATE_ABSTRACT "%s Failed to create entity ^"%s^"! Entity is abstract!" + +#define LOG_PREFIX "[CE]" + +#define MAX_ENTITIES 2048 +#define MAX_ENTITY_CLASSES 512 + +#define CLASS_METADATA_NAME "__NAME" +#define CLASS_METADATA_CE_ID "__CE_ID" + +#define CE_INVALID_ID -1 +#define CE_INVALID_HOOK_ID -1 + +enum _:GLOBALESTATE { GLOBAL_OFF = 0, GLOBAL_ON = 1, GLOBAL_DEAD = 2 }; + +enum EntityFlags (<<=1) { + EntityFlag_None = 0, + EntityFlag_Abstract = 1, +} + +enum Entity { + Entity_Id, + Class:Entity_Class, + EntityFlags:Entity_Flags, + Trie:Entity_KeyMemberBindings, + Array:Entity_Hierarchy, + Array:Entity_MethodPreHooks[CEMethod], + Array:Entity_MethodPostHooks[CEMethod], + Entity_TotalHooksCounter[CEMethod] // Used as cache to increase hook call performance +}; + +enum EntityMethodPointer { + EntityMethodPointer_Think, + EntityMethodPointer_Touch, + EntityMethodPointer_Use, + EntityMethodPointer_Blocked +}; + +enum EntityMethodParams { + EntityMethodParams_Num, + EntityMethodParams_Types[6] +}; + +STACK_DEFINE(METHOD_PLUGIN); +STACK_DEFINE(METHOD_RETURN); +STACK_DEFINE(PREHOOK_RETURN); + +new const g_rgEntityMethodParams[CEMethod][EntityMethodParams] = { + /* Allocate */ {2, {CMP_Cell, CMP_Cell}}, + /* Free */ {0}, + /* KeyValue */ {2, {CMP_String, CMP_String}}, + /* SpawnInit */ {0}, + /* Spawn */ {0}, + /* ResetVariables */ {0}, + /* UpdatePhysics */ {0}, + /* UpdateModel */ {0}, + /* UpdateSize */ {0}, + /* Touch */ {1, {CMP_Cell}}, + /* Think */ {0}, + /* CanPickup */ {1, {CMP_Cell}}, + /* Pickup */ {1, {CMP_Cell}}, + /* CanTrigger */ {1, {CMP_Cell}}, + /* Trigger */ {1, {CMP_Cell}}, + /* Restart */ {0}, + /* Kill */ {2, {CMP_Cell, CMP_Cell}}, + /* IsMasterTriggered */ {1, {CMP_Cell}}, + /* ObjectCaps */ {0}, + /* BloodColor */ {0}, + /* Use */ {4, {CMP_Cell, CMP_Cell, CMP_Cell, CMP_Cell}}, + /* Blocked */ {1, {CMP_Cell}}, + /* GetDelay */ {0}, + /* Classify */ {0}, + /* IsTriggered */ {1, {CMP_Cell}}, + /* GetToggleState */ {0}, + /* SetToggleState */ {1, {CMP_Cell}}, + /* Respawn */ {0}, + /* TraceAttack */ {6, {CMP_Cell, CMP_Cell, CMP_Array, 3, CMP_Cell, CMP_Cell}} +}; + +new g_iszBaseClassName; +new bool:g_bIsCStrike = false; + +new g_rgPresetEntityIds[CEPreset]; +new Trie:g_itEntityIds = Invalid_Trie; + +new g_rgEntities[MAX_ENTITY_CLASSES][Entity]; +new g_iEntityClassesNum = 0; + +new Struct:g_rgEntityMethodPointers[MAX_ENTITIES][EntityMethodPointer]; +new ClassInstance:g_rgEntityClassInstances[MAX_ENTITIES]; + +new HamHook:g_rgMethodHamHooks[CEMethod]; + +public plugin_precache() { + g_bIsCStrike = !!cstrike_running(); + g_iszBaseClassName = engfunc(EngFunc_AllocString, CE_BASE_CLASSNAME); + + InitStorages(); + InitBaseClasses(); + InitHooks(); +} + +public plugin_init() { + register_plugin("[API] Custom Entities", "2.0.0", "Hedgehog Fog"); + + register_concmd("ce_spawn", "Command_Spawn", ADMIN_CVAR); + register_concmd("ce_get_member", "Command_GetMember", ADMIN_CVAR); + register_concmd("ce_get_member_float", "Command_GetMemberFloat", ADMIN_CVAR); + register_concmd("ce_get_member_string", "Command_GetMemberString", ADMIN_CVAR); + register_concmd("ce_set_member", "Command_SetMember", ADMIN_CVAR); + register_concmd("ce_call_method", "Command_CallMethod", ADMIN_CVAR); + register_concmd("ce_list", "Command_List", ADMIN_CVAR); +} + +public plugin_natives() { + register_library("api_custom_entities"); + + register_native("CE_RegisterClass", "Native_Register"); + register_native("CE_RegisterClassDerived", "Native_RegisterDerived"); + register_native("CE_RegisterClassAlias", "Native_RegisterAlias"); + + register_native("CE_RegisterClassKeyMemberBinding", "Native_RegisterKeyMemberBinding"); + register_native("CE_RemoveClassKeyMemberBinding", "Native_RemoveMemberBinding"); + register_native("CE_RegisterClassMethod", "Native_RegisterMethod"); + register_native("CE_ImplementClassMethod", "Native_ImplementMethod"); + register_native("CE_RegisterClassVirtualMethod", "Native_RegisterVirtualMethod"); + + register_native("CE_RegisterClassHook", "Native_RegisterHook"); + register_native("CE_GetMethodReturn", "Native_GetMethodReturn"); + register_native("CE_SetMethodReturn", "Native_SetMethodReturn"); + + register_native("CE_GetClassHandler", "Native_GetHandler"); + register_native("CE_GetHandler", "Native_GetHandlerByEntity"); + register_native("CE_Create", "Native_Create"); + register_native("CE_Kill", "Native_Kill"); + register_native("CE_Remove", "Native_Remove"); + register_native("CE_Restart", "Native_Restart"); + register_native("CE_IsInstanceOf", "Native_IsInstanceOf"); + + register_native("CE_HasMember", "Native_HasMember"); + register_native("CE_GetMember", "Native_GetMember"); + register_native("CE_DeleteMember", "Native_DeleteMember"); + register_native("CE_SetMember", "Native_SetMember"); + register_native("CE_GetMemberVec", "Native_GetMemberVec"); + register_native("CE_SetMemberVec", "Native_SetMemberVec"); + register_native("CE_GetMemberString", "Native_GetMemberString"); + register_native("CE_SetMemberString", "Native_SetMemberString"); + + register_native("CE_CallMethod", "Native_CallMethod"); + register_native("CE_CallBaseMethod", "Native_CallBaseMethod"); + register_native("CE_GetCallPluginId", "Native_GetCallPluginId"); + + register_native("CE_SetThink", "Native_SetThink"); + register_native("CE_SetTouch", "Native_SetTouch"); + register_native("CE_SetUse", "Native_SetUse"); + register_native("CE_SetBlocked", "Native_SetBlocked"); +} + +public plugin_end() { + DestroyRegisteredClasses(); + DestroyStorages(); +} + +/*--------------------------------[ Natives ]--------------------------------*/ + +public Native_Register(iPluginId, iArgc) { + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + new CEPreset:iPreset = CEPreset:get_param(2); + new bool:bAbstract = bool:get_param(3); + + if (iPreset == CEPreset_Invalid) { + log_amx("Cannot register entity without preset!"); + return -1; + } + + new EntityFlags:iFlags = bAbstract ? EntityFlag_Abstract : EntityFlag_None; + + return RegisterEntityClass(szClassname, iPreset, iFlags); +} + +public Native_RegisterDerived(iPluginId, iArgc) { + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + new szBaseClassName[CE_MAX_NAME_LENGTH]; get_string(2, szBaseClassName, charsmax(szBaseClassName)); + new bool:bAbstract = bool:get_param(3); + + new EntityFlags:iFlags = bAbstract ? EntityFlag_Abstract : EntityFlag_None; + + return RegisterEntityClass(szClassname, _, iFlags, szBaseClassName); +} + +public Native_RegisterAlias(iPluginId, iArgc) { + new szAlias[CE_MAX_NAME_LENGTH]; get_string(1, szAlias, charsmax(szAlias)); + new szClassname[CE_MAX_NAME_LENGTH]; get_string(2, szClassname, charsmax(szClassname)); + + if (GetIdByClassName(szAlias) != CE_INVALID_ID) { + log_error(AMX_ERR_NATIVE, ERROR_IS_ALREADY_REGISTERED, LOG_PREFIX, szAlias); + return; + } + + new iId = GetIdByClassName(szClassname); + if (iId == CE_INVALID_ID) { + log_error(AMX_ERR_NATIVE, ERROR_IS_NOT_REGISTERED, LOG_PREFIX, szClassname); + return; + } + + TrieSetCell(g_itEntityIds, szAlias, iId); +} + +public Native_Create(iPluginId, iArgc) { + static szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + static Float:vecOrigin[3]; get_array_f(2, vecOrigin, 3); + static bool:bTemp; bTemp = !!get_param(3); + + new pEntity = CreateEntity(szClassname, vecOrigin, bTemp); + if (pEntity == FM_NULLENT) return FM_NULLENT; + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + ClassInstanceSetMember(pInstance, CE_MEMBER_PLUGINID, iPluginId); + + return pEntity; +} + +public Native_Kill(iPluginId, iArgc) { + new pEntity = get_param_byref(1); + new pKiller = get_param_byref(2); + + if (!@Entity_IsCustom(pEntity)) return; + + ExecuteMethod(CEMethod_Killed, pEntity, pKiller, false); +} + +public bool:Native_Remove(iPluginId, iArgc) { + new pEntity = get_param_byref(1); + + if (!@Entity_IsCustom(pEntity)) return; + + set_pev(pEntity, pev_flags, pev(pEntity, pev_flags) | FL_KILLME); + dllfunc(DLLFunc_Think, pEntity); +} + +public Native_Restart(iPluginId, iArgc) { + new pEntity = get_param_byref(1); + + if (!@Entity_IsCustom(pEntity)) return; + + ExecuteMethod(CEMethod_Restart, pEntity); +} + +public Native_RegisterHook(iPluginId, iArgc) { + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + new CEMethod:iMethod = CEMethod:get_param(2); + new szCallback[CE_MAX_CALLBACK_NAME_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); + new bool:bPost = bool:get_param(4); + + new Function:fnCallback = get_func_pointer(szCallback, iPluginId); + if (fnCallback == Invalid_FunctionPointer) { + new szFilename[64]; + get_plugin(iPluginId, szFilename, charsmax(szFilename)); + log_error(AMX_ERR_NATIVE, ERROR_FUNCTION_NOT_FOUND, LOG_PREFIX, szCallback, szFilename); + return; + } + + RegisterEntityClassHook(szClassname, iMethod, fnCallback, bool:bPost); +} + +public Native_RegisterMethod(iPluginId, iArgc) { + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + new szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + new szCallback[CE_MAX_CALLBACK_NAME_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); + + new Function:fnCallback = get_func_pointer(szCallback, iPluginId); + + if (fnCallback == Invalid_FunctionPointer) { + new szFilename[64]; + get_plugin(iPluginId, szFilename, charsmax(szFilename)); + log_error(AMX_ERR_NATIVE, ERROR_FUNCTION_NOT_FOUND, LOG_PREFIX, szCallback, szFilename); + return; + } + + new Array:irgParamsTypes = ReadMethodParamsFromNativeCall(4, iArgc); + AddEntityClassMethod(szClassname, szMethod, fnCallback, irgParamsTypes, false); + ArrayDestroy(irgParamsTypes); +} + +public Native_RegisterVirtualMethod(iPluginId, iArgc) { + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + new szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + new szCallback[CE_MAX_CALLBACK_NAME_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); + + new Function:fnCallback = get_func_pointer(szCallback, iPluginId); + + if (fnCallback == Invalid_FunctionPointer) { + new szFilename[64]; + get_plugin(iPluginId, szFilename, charsmax(szFilename)); + log_error(AMX_ERR_NATIVE, ERROR_FUNCTION_NOT_FOUND, LOG_PREFIX, szCallback, szFilename); + return; + } + + new Array:irgParamsTypes = ReadMethodParamsFromNativeCall(4, iArgc); + AddEntityClassMethod(szClassname, szMethod, fnCallback, irgParamsTypes, true); + ArrayDestroy(irgParamsTypes); +} + +public Native_ImplementMethod(iPluginId, iArgc) { + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + new CEMethod:iMethod = CEMethod:get_param(2); + new szCallback[CE_MAX_CALLBACK_NAME_LENGTH]; get_string(3, szCallback, charsmax(szCallback)); + + new Function:fnCallback = get_func_pointer(szCallback, iPluginId); + + if (fnCallback == Invalid_FunctionPointer) { + new szFilename[64]; + get_plugin(iPluginId, szFilename, charsmax(szFilename)); + log_error(AMX_ERR_NATIVE, ERROR_FUNCTION_NOT_FOUND, LOG_PREFIX, szCallback, szFilename); + return; + } + + ImplementEntityClassMethod(szClassname, iMethod, fnCallback); +} + +public Native_RegisterKeyMemberBinding(iPluginId, iArgc) { + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + new szKey[CE_MAX_NAME_LENGTH]; get_string(2, szKey, charsmax(szKey)); + new szMember[CE_MAX_NAME_LENGTH]; get_string(3, szMember, charsmax(szMember)); + new CEMemberType:iType = CEMemberType:get_param(4); + + RegisterEntityClassKeyMemberBinding(szClassname, szKey, szMember, iType); +} + +public Native_RemoveMemberBinding(iPluginId, iArgc) { + new szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + new szKey[CE_MAX_NAME_LENGTH]; get_string(2, szKey, charsmax(szKey)); + new szMember[CE_MAX_NAME_LENGTH]; get_string(3, szMember, charsmax(szMember)); + + RemoveEntityClassKeyMemberBinding(szClassname, szKey, szMember); +} + +public Native_GetHandler(iPluginId, iArgc) { + static szClassname[CE_MAX_NAME_LENGTH]; get_string(1, szClassname, charsmax(szClassname)); + + return GetIdByClassName(szClassname); +} + +public Native_GetHandlerByEntity(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + + static ClassInstance:pInstance; pInstance = @Entity_GetInstance(pEntity); + if (pInstance == Invalid_ClassInstance) return CE_INVALID_ID; + + return ClassInstanceGetMember(pInstance, CE_MEMBER_ID); +} + +public bool:Native_IsInstanceOf(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szClassname[CE_MAX_NAME_LENGTH]; get_string(2, szClassname, charsmax(szClassname)); + + if (!@Entity_IsCustom(pEntity)) return false; + + static iTargetId; iTargetId = GetIdByClassName(szClassname); + if (iTargetId == CE_INVALID_ID) return false; + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + + return ClassInstanceIsInstanceOf(pInstance, g_rgEntities[iTargetId][Entity_Class]); +} + +public bool:Native_HasMember(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); + + if (!@Entity_IsCustom(pEntity)) return false; + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + + return ClassInstanceHasMember(pInstance, szMember); +} + +public any:Native_GetMember(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); + + if (!@Entity_IsCustom(pEntity)) return 0; + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + + return ClassInstanceGetMember(pInstance, szMember); +} + +public Native_DeleteMember(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); + + if (!@Entity_IsCustom(pEntity)) return; + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + + ClassInstanceDeleteMember(pInstance, szMember); +} + +public Native_SetMember(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); + static iValue; iValue = get_param(3); + static bool:bReplace; bReplace = bool:get_param(4); + + if (!@Entity_IsCustom(pEntity)) return; + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + + ClassInstanceSetMember(pInstance, szMember, iValue, bReplace); +} + +public bool:Native_GetMemberVec(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); + + if (!@Entity_IsCustom(pEntity)) return false; + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + + static Float:vecValue[3]; + if (!ClassInstanceGetMemberArray(pInstance, szMember, vecValue, 3)) return false; + + set_array_f(3, vecValue, sizeof(vecValue)); + + return true; +} + +public Native_SetMemberVec(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); + static Float:vecValue[3]; get_array_f(3, vecValue, sizeof(vecValue)); + static bool:bReplace; bReplace = bool:get_param(4); + + if (!@Entity_IsCustom(pEntity)) return; + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + ClassInstanceSetMemberArray(pInstance, szMember, vecValue, 3, bReplace); +} + +public bool:Native_GetMemberString(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); + + if (!@Entity_IsCustom(pEntity)) return false; + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + + static szValue[128]; + if (!ClassInstanceGetMemberString(pInstance, szMember, szValue, charsmax(szValue))) return false; + + set_string(3, szValue, get_param(4)); + + return true; +} + +public Native_SetMemberString(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMember[CE_MAX_MEMBER_NAME_LENGTH]; get_string(2, szMember, charsmax(szMember)); + static szValue[128]; get_string(3, szValue, charsmax(szValue)); + static bool:bReplace; bReplace = bool:get_param(4); + + if (!@Entity_IsCustom(pEntity)) return; + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + ClassInstanceSetMemberString(pInstance, szMember, szValue, bReplace); +} + +public any:Native_CallMethod(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + + static ClassInstance:pInstance; pInstance = @Entity_GetInstance(pEntity); + + STACK_PUSH(METHOD_PLUGIN, iPluginId); + + ClassInstanceCallMethodBegin(pInstance, szMethod); + + ClassInstanceCallMethodPushParamCell(pEntity); + + static iParam; + for (iParam = 3; iParam <= iArgc; ++iParam) { + ClassInstanceCallMethodPushNativeParam(iParam); + } + + static any:result; result = ClassInstanceCallMethodEnd(); + + STACK_POP(METHOD_PLUGIN); + + return result; +} + +public any:Native_CallBaseMethod(iPluginId, iArgc) { + static ClassInstance:pInstance; pInstance = ClassInstanceGetCurrent(); + static pEntity; pEntity = ClassInstanceGetMember(pInstance, CE_MEMBER_POINTER); + + STACK_PUSH(METHOD_PLUGIN, iPluginId); + + ClassInstanceCallMethodBeginBase(); + + ClassInstanceCallMethodPushParamCell(pEntity); + + static iParam; + for (iParam = 1; iParam <= iArgc; ++iParam) { + ClassInstanceCallMethodPushNativeParam(iParam); + } + + static any:result; result = ClassInstanceCallMethodEnd(); + + STACK_POP(METHOD_PLUGIN); + + return result; +} + +public Native_GetCallPluginId(iPluginId, iArgc) { + return STACK_READ(METHOD_PLUGIN); +} + +Class:ResolveEntityCallClass(const &pEntity, const szClassname[]) { + if (!equal(szClassname, NULL_STRING)) { + static iId; iId = GetIdByClassName(szClassname); + return g_rgEntities[iId][Entity_Class]; + } + + static Class:cEntity; cEntity = ClassInstanceGetCurrentClass(); + if (cEntity != Invalid_Class) return cEntity; + + static ClassInstance:pInstance; pInstance = @Entity_GetInstance(pEntity); + return ClassInstanceGetClass(pInstance); +} + +public Native_SetThink(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + static szClassname[CE_MAX_NAME_LENGTH]; get_string(3, szClassname, charsmax(szClassname)); + + static Class:cCurrent; cCurrent = ResolveEntityCallClass(pEntity, szClassname); + + if (!equal(szMethod, NULL_STRING)) { + g_rgEntityMethodPointers[pEntity][EntityMethodPointer_Think] = ClassGetMethodPointer(cCurrent, szMethod); + } else { + g_rgEntityMethodPointers[pEntity][EntityMethodPointer_Think] = Invalid_Struct; + } + + ClassGetMetadataString(cCurrent, CLASS_METADATA_NAME, szClassname, charsmax(szClassname)); +} + +public Native_SetTouch(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + static szClassname[CE_MAX_NAME_LENGTH]; get_string(3, szClassname, charsmax(szClassname)); + + static Class:cCurrent; cCurrent = ResolveEntityCallClass(pEntity, szClassname); + + if (!equal(szMethod, NULL_STRING)) { + g_rgEntityMethodPointers[pEntity][EntityMethodPointer_Touch] = ClassGetMethodPointer(cCurrent, szMethod); + } else { + g_rgEntityMethodPointers[pEntity][EntityMethodPointer_Touch] = Invalid_Struct; + } +} + +public Native_SetUse(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + static szClassname[CE_MAX_NAME_LENGTH]; get_string(3, szClassname, charsmax(szClassname)); + + static Class:cCurrent; cCurrent = ResolveEntityCallClass(pEntity, szClassname); + + if (!equal(szMethod, NULL_STRING)) { + g_rgEntityMethodPointers[pEntity][EntityMethodPointer_Use] = ClassGetMethodPointer(cCurrent, szMethod); + } else { + g_rgEntityMethodPointers[pEntity][EntityMethodPointer_Use] = Invalid_Struct; + } +} + +public Native_SetBlocked(iPluginId, iArgc) { + static pEntity; pEntity = get_param_byref(1); + static szMethod[CE_MAX_METHOD_NAME_LENGTH]; get_string(2, szMethod, charsmax(szMethod)); + static szClassname[CE_MAX_NAME_LENGTH]; get_string(3, szClassname, charsmax(szClassname)); + + static Class:cCurrent; cCurrent = ResolveEntityCallClass(pEntity, szClassname); + + if (!equal(szMethod, NULL_STRING)) { + g_rgEntityMethodPointers[pEntity][EntityMethodPointer_Blocked] = ClassGetMethodPointer(cCurrent, szMethod); + } else { + g_rgEntityMethodPointers[pEntity][EntityMethodPointer_Blocked] = Invalid_Struct; + } +} + +public any:Native_GetMethodReturn(iPluginId, iArgc) { + return STACK_READ(METHOD_RETURN); +} + +public any:Native_SetMethodReturn(iPluginId, iArgc) { + STACK_PATCH(METHOD_RETURN, any:get_param(1)); +} + +/*--------------------------------[ Commands ]--------------------------------*/ + +public Command_Spawn(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 2)) return PLUGIN_HANDLED; + + static szClassname[32]; read_argv(1, szClassname, charsmax(szClassname)); + + if (equal(szClassname, NULL_STRING)) return PLUGIN_HANDLED; + + new Float:vecOrigin[3]; pev(pPlayer, pev_origin, vecOrigin); + + new pEntity = CreateEntity(szClassname, vecOrigin, true); + if (pEntity == FM_NULLENT) return PLUGIN_HANDLED; + + new iArgsNum = read_argc(); + if (iArgsNum > 2) { + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + + for (new iArg = 2; iArg < iArgsNum; iArg += 2) { + static szMember[32]; read_argv(iArg, szMember, charsmax(szMember)); + static szValue[32]; read_argv(iArg + 1, szValue, charsmax(szValue)); + static iType; iType = UTIL_GetStringType(szValue); + + switch (iType) { + case 'i': ClassInstanceSetMember(pInstance, szMember, str_to_num(szValue)); + case 'f': ClassInstanceSetMember(pInstance, szMember, str_to_float(szValue)); + case 's': ClassInstanceSetMemberString(pInstance, szMember, szValue); + } + } + } + + dllfunc(DLLFunc_Spawn, pEntity); + + console_print(pPlayer, "Entity ^"%s^" successfully spawned! Entity index: %d", szClassname, pEntity); + + return PLUGIN_HANDLED; +} + +public Command_GetMember(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 3)) return PLUGIN_HANDLED; + + new pEntity = read_argv_int(1); + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + if (pInstance == Invalid_ClassInstance) { + console_print(pPlayer, "Entity %d is not a custom entity", pEntity); + return PLUGIN_HANDLED; + } + + static szMember[CLASS_METHOD_MAX_NAME_LENGTH]; read_argv(2, szMember, charsmax(szMember)); + + console_print(pPlayer, "Member ^"%s^" value: %d", szMember, ClassInstanceGetMember(pInstance, szMember)); + + return PLUGIN_HANDLED; +} + +public Command_GetMemberFloat(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 3)) return PLUGIN_HANDLED; + + new pEntity = read_argv_int(1); + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + if (pInstance == Invalid_ClassInstance) { + console_print(pPlayer, "Entity %d is not a custom entity", pEntity); + return PLUGIN_HANDLED; + } + + static szMember[CLASS_METHOD_MAX_NAME_LENGTH]; read_argv(2, szMember, charsmax(szMember)); + + console_print(pPlayer, "Member ^"%s^" value: %f", szMember, Float:ClassInstanceGetMember(pInstance, szMember)); + + return PLUGIN_HANDLED; +} + +public Command_GetMemberString(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 3)) return PLUGIN_HANDLED; + + new pEntity = read_argv_int(1); + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + if (pInstance == Invalid_ClassInstance) { + console_print(pPlayer, "Entity %d is not a custom entity", pEntity); + return PLUGIN_HANDLED; + } + + static szMember[CLASS_METHOD_MAX_NAME_LENGTH]; read_argv(2, szMember, charsmax(szMember)); + + static szValue[64]; ClassInstanceGetMemberString(pInstance, szMember, szValue, charsmax(szValue)); + console_print(pPlayer, "Member ^"%s^" value: ^"%s^"", szMember, szValue); + + return PLUGIN_HANDLED; +} + +public Command_SetMember(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 3)) return PLUGIN_HANDLED; + + new pEntity = read_argv_int(1); + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + if (pInstance == Invalid_ClassInstance) { + console_print(pPlayer, "Entity %d is not a custom entity", pEntity); + return PLUGIN_HANDLED; + } + + static szMember[CLASS_METHOD_MAX_NAME_LENGTH]; read_argv(3, szMember, charsmax(szMember)); + + static szValue[32]; read_argv(3, szValue, charsmax(szValue)); + static iType; iType = UTIL_GetStringType(szValue); + + switch (iType) { + case 'i': ClassInstanceSetMember(pInstance, szMember, str_to_num(szValue)); + case 'f': ClassInstanceSetMember(pInstance, szMember, str_to_float(szValue)); + case 's': ClassInstanceSetMemberString(pInstance, szMember, szValue); + } + + switch (iType) { + case 'i', 'f': console_print(pPlayer, "^"%s^" member set to %s", szMember, szValue); + case 's': console_print(pPlayer, "^"%s^" member set to ^"%s^"", szMember, szValue); + } + + return PLUGIN_HANDLED; +} + +public Command_CallMethod(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 3)) return PLUGIN_HANDLED; + + new pEntity = read_argv_int(1); + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + if (pInstance == Invalid_ClassInstance) { + console_print(pPlayer, "Entity %d is not a custom entity", pEntity); + return PLUGIN_HANDLED; + } + + static szClassname[32]; read_argv(2, szClassname, charsmax(szClassname)); + + if (equal(szClassname, NULL_STRING)) return PLUGIN_HANDLED; + + new iId = GetIdByClassName(szClassname); + if (iId == CE_INVALID_ID) return PLUGIN_HANDLED; + + if (!ClassInstanceIsInstanceOf(pInstance, g_rgEntities[iId][Entity_Class])) { + console_print(pPlayer, "Entity %d is not instance of ^"%s^"", pEntity, szClassname); + return PLUGIN_HANDLED; + } + + static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; read_argv(3, szMethod, charsmax(szMethod)); + + ClassInstanceCallMethodBegin(pInstance, szMethod, g_rgEntities[iId][Entity_Class]); + + ClassInstanceCallMethodPushParamCell(pEntity); + + new iArgsNum = read_argc(); + if (iArgsNum > 4) { + for (new iArg = 4; iArg < iArgsNum; ++iArg) { + static szArg[32]; read_argv(iArg, szArg, charsmax(szArg)); + static iType; iType = UTIL_GetStringType(szArg); + + switch (iType) { + case 'i': ClassInstanceCallMethodPushParamCell(str_to_num(szArg)); + case 'f': ClassInstanceCallMethodPushParamCell(str_to_float(szArg)); + case 's': ClassInstanceCallMethodPushParamString(szArg); + } + } + } + + new any:result = ClassInstanceCallMethodEnd(); + + console_print(pPlayer, "Call ^"%s^" result: (int)%d (float)%f", szMethod, result, result); + + return PLUGIN_HANDLED; +} + +public Command_List(pPlayer, iLevel, iCId) { + if (!cmd_access(pPlayer, iLevel, iCId, 1)) return PLUGIN_HANDLED; + + new iArgsNum = read_argc(); + + static szFilter[32]; + + if (iArgsNum >= 2) { + read_argv(1, szFilter, charsmax(szFilter)); + } else { + copy(szFilter, charsmax(szFilter), "*"); + } + + new iStart = iArgsNum >= 3 ? read_argv_int(2) : 0; + new iLimit = iArgsNum >= 4 ? read_argv_int(3) : 10; + + new iShowedEntitiesNum = 0; + new iEntitiesNum = 0; + + // console_print(pPlayer, "Finding entities { Start: %d; Limit: %d; Filter: ^"%s^" }", iStart, iLimit, szFilter); + // console_print(pPlayer, "---- Found entities ----"); + + for (new pEntity = iStart; pEntity < sizeof(g_rgEntityClassInstances); ++pEntity) { + if (g_rgEntityClassInstances[pEntity] == Invalid_ClassInstance) continue; + + static ClassInstance:pInstance; pInstance = g_rgEntityClassInstances[pEntity]; + static Class:class; class = ClassInstanceGetClass(pInstance); + // static iId; iId = ClassGetMetadata(class, CLASS_METADATA_CE_ID); + static szClassname[CE_MAX_NAME_LENGTH]; ClassGetMetadataString(class, CLASS_METADATA_NAME, szClassname, charsmax(szClassname)); + + if (!equal(szFilter, "*") && strfind(szClassname, szFilter, true) == -1) continue; + + static Float:vecOrigin[3]; pev(pEntity, pev_origin, vecOrigin); + + if (iShowedEntitiesNum < iLimit) { + console_print(pPlayer, "[%d]^t%s^t{%.3f, %.3f, %.3f}", pEntity, szClassname, vecOrigin[0], vecOrigin[1], vecOrigin[2]); + iShowedEntitiesNum++; + } + + iEntitiesNum++; + } + + // console_print(pPlayer, "Found %d entities. %d of %d are entities showed.", iEntitiesNum, iShowedEntitiesNum, iEntitiesNum); + + return PLUGIN_HANDLED; +} + +/*--------------------------------[ Hooks ]--------------------------------*/ + +public FMHook_OnFreeEntPrivateData(pEntity) { + if (!pev_valid(pEntity)) return; + + if (@Entity_IsCustom(pEntity)) { + ExecuteMethod(CEMethod_Free, pEntity); + } +} + +public FMHook_KeyValue(pEntity, hKVD) { + @Entity_KeyValue(pEntity, hKVD); + + return FMRES_HANDLED; +} + +public FMHook_Spawn(pEntity) { + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + + // Update entity classname (in case entity spawned by the engine) + if (pInstance != Invalid_ClassInstance) { + static Class:class; class = ClassInstanceGetClass(pInstance); + + static szClassname[CE_MAX_NAME_LENGTH]; + ClassGetMetadataString(class, CLASS_METADATA_NAME, szClassname, charsmax(szClassname)); + set_pev(pEntity, pev_classname, szClassname); + } +} + +public HamHook_Base_Spawn(pEntity) { + if (@Entity_IsCustom(pEntity)) { + ExecuteMethod(CEMethod_Spawn, pEntity); + + return HAM_SUPERCEDE; + } + + return HAM_IGNORED; +} + +public HamHook_Base_ObjectCaps(pEntity) { + if (@Entity_IsCustom(pEntity)) { + new iObjectCaps = ExecuteMethod(CEMethod_ObjectCaps, pEntity); + SetHamReturnInteger(iObjectCaps); + + return HAM_OVERRIDE; + } + + return HAM_IGNORED; +} + +public HamHook_Base_Restart_Post(pEntity) { + if (@Entity_IsCustom(pEntity)) { + ExecuteMethod(CEMethod_Restart, pEntity); + + return HAM_HANDLED; + } + + return HAM_IGNORED; +} + +public HamHook_Base_Touch_Post(pEntity, pToucher) { + if (@Entity_IsCustom(pEntity)) { + ExecuteMethod(CEMethod_Touch, pEntity, pToucher); + + return HAM_HANDLED; + } + + return HAM_IGNORED; +} + +public HamHook_Base_Use_Post(pEntity, pCaller, pActivator, iUseType, Float:flValue) { + if (@Entity_IsCustom(pEntity)) { + ExecuteMethod(CEMethod_Use, pEntity, pCaller, pActivator, iUseType, flValue); + + return HAM_HANDLED; + } + + return HAM_IGNORED; +} + +public HamHook_Base_Blocked_Post(pEntity, pOther) { + if (@Entity_IsCustom(pEntity)) { + ExecuteMethod(CEMethod_Blocked, pEntity, pOther); + + return HAM_HANDLED; + } + + return HAM_IGNORED; +} + +public HamHook_Base_Killed(pEntity, pKiller, iShouldGib) { + if (@Entity_IsCustom(pEntity)) { + ExecuteMethod(CEMethod_Killed, pEntity, pKiller, iShouldGib); + + return HAM_SUPERCEDE; + } + + return HAM_IGNORED; +} + +public HamHook_Base_Think(pEntity) { + if (@Entity_IsCustom(pEntity)) { + ExecuteMethod(CEMethod_Think, pEntity); + + return HAM_HANDLED; + } + + return HAM_IGNORED; +} + +public HamHook_Base_BloodColor(pEntity) { + if (@Entity_IsCustom(pEntity)) { + static iBloodColor; iBloodColor = ExecuteMethod(CEMethod_BloodColor, pEntity); + SetHamReturnInteger(iBloodColor); + + return HAM_OVERRIDE; + } + + return HAM_IGNORED; +} + +public HamHook_Base_GetDelay(pEntity) { + if (@Entity_IsCustom(pEntity)) { + static Float:flDelay; flDelay = ExecuteMethod(CEMethod_GetDelay, pEntity); + SetHamReturnFloat(flDelay); + + return HAM_OVERRIDE; + } + + return HAM_IGNORED; +} + +public HamHook_Base_Classify(pEntity) { + if (@Entity_IsCustom(pEntity)) { + static iClass; iClass = ExecuteMethod(CEMethod_Classify, pEntity); + SetHamReturnInteger(iClass); + + return HAM_OVERRIDE; + } + + return HAM_IGNORED; +} + +public HamHook_Base_IsTriggered(pEntity, pActivator) { + if (@Entity_IsCustom(pEntity)) { + static iTriggered; iTriggered = ExecuteMethod(CEMethod_IsTriggered, pEntity, pActivator); + SetHamReturnInteger(iTriggered); + + return HAM_OVERRIDE; + } + + return HAM_IGNORED; +} + +public HamHook_Base_GetToggleState(pEntity) { + if (@Entity_IsCustom(pEntity)) { + static iState; iState = ExecuteMethod(CEMethod_GetToggleState, pEntity); + SetHamReturnInteger(iState); + + return HAM_OVERRIDE; + } + + return HAM_IGNORED; +} + +public HamHook_Base_SetToggleState(pEntity, iState) { + if (@Entity_IsCustom(pEntity)) { + ExecuteMethod(CEMethod_SetToggleState, pEntity, iState); + + return HAM_HANDLED; + } + + return HAM_IGNORED; +} + +public HamHook_Base_Respawn_Post(pEntity) { + if (@Entity_IsCustom(pEntity)) { + ExecuteMethod(CEMethod_Respawn, pEntity); + + return HAM_HANDLED; + } + + return HAM_IGNORED; +} + +public HamHook_Base_TraceAttack_Post(pEntity, pAttacker, Float:flDamage, const Float:vecDirection[3], pTrace, iDamageBits) { + if (@Entity_IsCustom(pEntity)) { + ExecuteMethod(CEMethod_TraceAttack, pEntity, pAttacker, flDamage, vecDirection, pTrace, iDamageBits); + + return HAM_HANDLED; + } + + return HAM_IGNORED; +} + +/*--------------------------------[ Entity Hookable Methods ]--------------------------------*/ + +@Entity_KeyValue(const &this, const &hKVD) { + new szKey[32]; get_kvd(hKVD, KV_KeyName, szKey, charsmax(szKey)); + new szValue[32]; get_kvd(hKVD, KV_Value, szValue, charsmax(szValue)); + + if (equal(szKey, "classname")) { + new iId = GetIdByClassName(szValue); + if (iId != CE_INVALID_ID) { + // using set_kvd leads to duplicate kvd emit, this check will fix the issue + if (@Entity_GetInstance(this) == Invalid_ClassInstance) { + if (~g_rgEntities[iId][Entity_Flags] & EntityFlag_Abstract) { + set_kvd(hKVD, KV_Value, CE_BASE_CLASSNAME); + + ExecuteMethod(CEMethod_Allocate, this, iId, false); + } + } + } else { + // if for some reason data was not assigned + if (@Entity_GetInstance(this) != Invalid_ClassInstance) { + ExecuteMethod(CEMethod_Free, this); + } + } + } + + if (@Entity_GetInstance(this) != Invalid_ClassInstance) { + @Entity_HandleKeyMemberBinding(this, szKey, szValue); + } +} + +@Entity_HandleKeyMemberBinding(const &this, const szKey[], const szValue[]) { + new iResult = CE_IGNORED; + + new ClassInstance:pInstance = @Entity_GetInstance(this); + + new Array:irgHierarchy = Invalid_Array; + new iHierarchySize = 0; + + { + static Class:cClass; cClass = ClassInstanceGetClass(pInstance); + + static iId; iId = ClassGetMetadata(cClass, CLASS_METADATA_CE_ID); + irgHierarchy = g_rgEntities[iId][Entity_Hierarchy]; + iHierarchySize = ArraySize(irgHierarchy); + } + + for (new iHierarchyPos = 0; iHierarchyPos < iHierarchySize; ++iHierarchyPos) { + static iId; iId = ArrayGetCell(irgHierarchy, iHierarchyPos); + + if (g_rgEntities[iId][Entity_KeyMemberBindings] == Invalid_Trie) continue; + + static Trie:itMemberTypes; itMemberTypes = Invalid_Trie; + if (!TrieGetCell(g_rgEntities[iId][Entity_KeyMemberBindings], szKey, itMemberTypes)) continue; + + static TrieIter:itMemberTypesIter; + + for (itMemberTypesIter = TrieIterCreate(itMemberTypes); !TrieIterEnded(itMemberTypesIter); TrieIterNext(itMemberTypesIter)) { + new szMember[32]; TrieIterGetKey(itMemberTypesIter, szMember, charsmax(szMember)); + new CEMemberType:iType; TrieIterGetCell(itMemberTypesIter, iType); + + // log_amx("%s => %s (%s, %d)", szKey, szMember, szValue, iType); + + switch (iType) { + case CEMemberType_Cell: { + ClassInstanceSetMember(pInstance, szMember, str_to_num(szValue)); + } + case CEMemberType_Float: { + ClassInstanceSetMember(pInstance, szMember, str_to_float(szValue)); + } + case CEMemberType_String: { + ClassInstanceSetMemberString(pInstance, szMember, szValue); + } + case CEMemberType_Vector: { + new Float:vecValue[3]; + UTIL_ParseVector(szValue, vecValue); + ClassInstanceSetMemberArray(pInstance, szMember, vecValue, 3); + } + } + } + + TrieIterDestroy(itMemberTypesIter); + } + + return iResult; +} + +ClassInstance:@Entity_GetInstance(const &this) { + return g_rgEntityClassInstances[this]; +} + +@Entity_IsCustom(const &this) { + return g_rgEntityClassInstances[this] != Invalid_ClassInstance; +} + +/*--------------------------------[ Base Class Methods ]--------------------------------*/ + +@Base_Allocate(const this) {} + +@Base_Free(const this) {} + +@Base_Spawn(const this) { + set_pev(this, pev_deadflag, DEAD_NO); + set_pev(this, pev_effects, pev(this, pev_effects) & ~EF_NODRAW); + set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); +} + +@Base_Respawn(const this) { + dllfunc(DLLFunc_Spawn, this); + + return this; +} + +@Base_TraceAttack(const this, const pAttacker, Float:flDamage, const Float:vecDirection[3], pTrace, iDamageBits) {} + +@Base_Restart(this) { + new iObjectCaps = ExecuteHamB(Ham_ObjectCaps, this); + + if (!g_bIsCStrike) { + if (iObjectCaps & FCAP_MUST_RELEASE) { + set_pev(this, pev_globalname, GLOBAL_DEAD); + set_pev(this, pev_solid, SOLID_NOT); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); + set_pev(this, pev_targetname, ""); + + return; + } + } + + if (~iObjectCaps & FCAP_ACROSS_TRANSITION) { + ExecuteHamB(Ham_Respawn, this); + } +} + +@Base_ResetVariables(const this) { + new ClassInstance:pInstance = ClassInstanceGetCurrent(); + + if (ClassInstanceHasMember(pInstance, CE_MEMBER_ORIGIN)) { + static Float:vecOrigin[3]; + ClassInstanceGetMemberArray(pInstance, CE_MEMBER_ORIGIN, vecOrigin, 3); + engfunc(EngFunc_SetOrigin, this, vecOrigin); + } + + if (ClassInstanceHasMember(pInstance, CE_MEMBER_ANGLES)) { + static Float:vecAngles[3]; + ClassInstanceGetMemberArray(pInstance, CE_MEMBER_ANGLES, vecAngles, 3); + set_pev(this, pev_angles, vecAngles); + } + + if (ClassInstanceHasMember(pInstance, CE_MEMBER_TARGETNAME)) { + static szTargetname[32]; + ClassInstanceGetMemberString(pInstance, CE_MEMBER_TARGETNAME, szTargetname, charsmax(szTargetname)); + set_pev(this, pev_targetname, szTargetname); + } + + if (ClassInstanceHasMember(pInstance, CE_MEMBER_TARGET)) { + static szTarget[32]; + ClassInstanceGetMemberString(pInstance, CE_MEMBER_TARGET, szTarget, charsmax(szTarget)); + set_pev(this, pev_target, szTarget); + } + + ClassInstanceCallMethod(pInstance, CE_METHOD_NAMES[CEMethod_UpdatePhysics], this); + ClassInstanceCallMethod(pInstance, CE_METHOD_NAMES[CEMethod_UpdateModel], this); + ClassInstanceCallMethod(pInstance, CE_METHOD_NAMES[CEMethod_UpdateSize], this); + + static bool:bIsWorld; bIsWorld = ClassInstanceGetMember(pInstance, CE_MEMBER_WORLD); + + static Float:flLifeTime; flLifeTime = 0.0; + if (!bIsWorld && ClassInstanceHasMember(pInstance, CE_MEMBER_LIFETIME)) { + flLifeTime = ClassInstanceGetMember(pInstance, CE_MEMBER_LIFETIME); + } + + if (flLifeTime > 0.0) { + static Float:flGameTime; flGameTime = get_gametime(); + ClassInstanceSetMember(pInstance, CE_MEMBER_NEXTKILL, flGameTime + flLifeTime); + set_pev(this, pev_nextthink, flGameTime + flLifeTime); + } else { + ClassInstanceSetMember(pInstance, CE_MEMBER_NEXTKILL, 0.0); + } +} + +@Base_UpdatePhysics(const this) {} + +@Base_UpdateModel(this) { + static ClassInstance:pInstance; pInstance = ClassInstanceGetCurrent(); + + if (ClassInstanceHasMember(pInstance, CE_MEMBER_MODEL)) { + static szModel[MAX_RESOURCE_PATH_LENGTH]; + ClassInstanceGetMemberString(pInstance, CE_MEMBER_MODEL, szModel, charsmax(szModel)); + engfunc(EngFunc_SetModel, this, szModel); + } +} + +@Base_UpdateSize(this) { + static ClassInstance:pInstance; pInstance = ClassInstanceGetCurrent(); + + if (ClassInstanceHasMember(pInstance, CE_MEMBER_MINS) && ClassInstanceHasMember(pInstance, CE_MEMBER_MAXS)) { + static Float:vecMins[3]; ClassInstanceGetMemberArray(pInstance, CE_MEMBER_MINS, vecMins, 3); + static Float:vecMaxs[3]; ClassInstanceGetMemberArray(pInstance, CE_MEMBER_MAXS, vecMaxs, 3); + engfunc(EngFunc_SetSize, this, vecMins, vecMaxs); + } +} + +@Base_Killed(this, const &pKiller, iShouldGib) { + static ClassInstance:pInstance; pInstance = ClassInstanceGetCurrent(); + + ClassInstanceSetMember(pInstance, CE_MEMBER_NEXTKILL, 0.0); + + set_pev(this, pev_takedamage, DAMAGE_NO); + set_pev(this, pev_effects, pev(this, pev_effects) | EF_NODRAW); + set_pev(this, pev_solid, SOLID_NOT); + set_pev(this, pev_movetype, MOVETYPE_NONE); + set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); + + new bool:bIsWorld = ClassInstanceGetMember(pInstance, CE_MEMBER_WORLD); + + if (bIsWorld) { + if (ClassInstanceHasMember(pInstance, CE_MEMBER_RESPAWNTIME)) { + new Float:flRespawnTime = ClassInstanceGetMember(pInstance, CE_MEMBER_RESPAWNTIME); + new Float:flGameTime = get_gametime(); + + ClassInstanceSetMember(pInstance, CE_MEMBER_NEXTRESPAWN, flGameTime + flRespawnTime); + set_pev(this, pev_deadflag, DEAD_RESPAWNABLE); + set_pev(this, pev_nextthink, flGameTime + flRespawnTime); + } else { + set_pev(this, pev_deadflag, DEAD_DEAD); + } + } else { + set_pev(this, pev_deadflag, DEAD_DISCARDBODY); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_KILLME); + } +} + +@Base_Think(this) { + if (Struct:g_rgEntityMethodPointers[this][EntityMethodPointer_Think] != Invalid_Struct) { + static ClassInstance:pInstance; pInstance = @Entity_GetInstance(this); + ClassInstanceCallMethodByPointer(pInstance, Struct:g_rgEntityMethodPointers[this][EntityMethodPointer_Think], this); + } +} + +@Base_Touch(const this, pToucher) { + if (Struct:g_rgEntityMethodPointers[this][EntityMethodPointer_Touch] != Invalid_Struct) { + static ClassInstance:pInstance; pInstance = @Entity_GetInstance(this); + ClassInstanceCallMethodByPointer(pInstance, Struct:g_rgEntityMethodPointers[this][EntityMethodPointer_Touch], this, pToucher); + } +} + +@Base_Use(const this, const pCaller, const pActivator, iUseType, Float:flValue) { + if (Struct:g_rgEntityMethodPointers[this][EntityMethodPointer_Use] != Invalid_Struct) { + static ClassInstance:pInstance; pInstance = @Entity_GetInstance(this); + ClassInstanceCallMethodByPointer(pInstance, Struct:g_rgEntityMethodPointers[this][EntityMethodPointer_Use], this, pCaller, pActivator, iUseType, flValue); + } +} + +@Base_Blocked(const this, const pBlocker) { + if (Struct:g_rgEntityMethodPointers[this][EntityMethodPointer_Blocked] != Invalid_Struct) { + static ClassInstance:pInstance; pInstance = @Entity_GetInstance(this); + ClassInstanceCallMethodByPointer(pInstance, Struct:g_rgEntityMethodPointers[this][EntityMethodPointer_Blocked], this, pBlocker); + } +} + +bool:@Base_IsMasterTriggered(const this, pActivator) { + new ClassInstance:pInstance = ClassInstanceGetCurrent(); + + static szMaster[32]; ClassInstanceGetMemberString(pInstance, CE_MEMBER_MASTER, szMaster, charsmax(szMaster)); + + return UTIL_IsMasterTriggered(szMaster, pActivator); +} + +@Base_ObjectCaps(const this) { + new ClassInstance:pInstance = ClassInstanceGetCurrent(); + + new bool:bIgnoreRound = ClassInstanceGetMember(pInstance, CE_MEMBER_IGNOREROUNDS); + new bool:bIsWorld = ClassInstanceGetMember(pInstance, CE_MEMBER_WORLD); + + new iObjectCaps = 0; + + if (bIgnoreRound) { + iObjectCaps |= FCAP_ACROSS_TRANSITION; + } else { + iObjectCaps |= bIsWorld ? FCAP_MUST_RESET : FCAP_MUST_RELEASE; + } + + return iObjectCaps; +} + +@Base_BloodColor(const this) { + new ClassInstance:pInstance = ClassInstanceGetCurrent(); + + if (!ClassInstanceHasMember(pInstance, CE_MEMBER_BLOODCOLOR)) return -1; + + return ClassInstanceGetMember(pInstance, CE_MEMBER_BLOODCOLOR); +} + +Float:@Base_GetDelay(const this) { + static ClassInstance:pInstance; pInstance = ClassInstanceGetCurrent(); + + return Float:ClassInstanceGetMember(pInstance, CE_MEMBER_DELAY); +} + +@Base_Classify(const this) { + return 0; +} + +bool:@Base_IsTriggered(const this, const pActivator) { + return true; +} + +@Base_GetToggleState(const this) { + static ClassInstance:pInstance; pInstance = ClassInstanceGetCurrent(); + + return ClassInstanceGetMember(pInstance, CE_MEMBER_TOGGLESTATE); +} + +@Base_SetToggleState(const this, iState) { + static ClassInstance:pInstance; pInstance = ClassInstanceGetCurrent(); + + ClassInstanceSetMember(pInstance, CE_MEMBER_TOGGLESTATE, iState); +} + +/*--------------------------------[ BaseItem Class Methods ]--------------------------------*/ + +@BaseItem_Spawn(const this) { + ClassInstanceCallBaseMethod(this); + + new ClassInstance:pInstance = ClassInstanceGetCurrent(); + ClassInstanceSetMember(pInstance, CE_MEMBER_PICKED, false); +} + +@BaseItem_UpdatePhysics(const this) { + ClassInstanceCallBaseMethod(this); + + set_pev(this, pev_solid, SOLID_TRIGGER); + set_pev(this, pev_movetype, MOVETYPE_TOSS); + set_pev(this, pev_takedamage, DAMAGE_NO); +} + +@BaseItem_Touch(const this, const pToucher) { + if (!IS_PLAYER(pToucher)) return; + + if (!ExecuteMethod(CEMethod_CanPickup, this, pToucher)) return; + + ExecuteMethod(CEMethod_Pickup, this, pToucher); + + static ClassInstance:pInstance; pInstance = ClassInstanceGetCurrent(); + ClassInstanceSetMember(pInstance, CE_MEMBER_PICKED, true); + ExecuteHamB(Ham_Killed, this, pToucher, 0); +} + +bool:@BaseItem_CanPickup(const this, const pToucher) { + if (pev(this, pev_deadflag) != DEAD_NO) return false; + if (~pev(this, pev_flags) & FL_ONGROUND) return false; + + return true; +} + +@BaseItem_Pickup(const this, const pToucher) {} + +/*--------------------------------[ BaseProp Class Methods ]--------------------------------*/ + +@BaseProp_UpdatePhysics(const this) { + ClassInstanceCallBaseMethod(this); + + set_pev(this, pev_solid, SOLID_BBOX); + set_pev(this, pev_movetype, MOVETYPE_FLY); + set_pev(this, pev_takedamage, DAMAGE_NO); +} + +/*--------------------------------[ BaseMonster Class Methods ]--------------------------------*/ + +@BaseMonster_Spawn(const this) { + ClassInstanceCallBaseMethod(this); + + set_pev(this, pev_flags, pev(this, pev_flags) | FL_MONSTER); +} + +@BaseMonster_UpdatePhysics(const this) { + ClassInstanceCallBaseMethod(this); + + set_pev(this, pev_solid, SOLID_BBOX); + set_pev(this, pev_movetype, MOVETYPE_PUSHSTEP); + set_pev(this, pev_takedamage, DAMAGE_AIM); + + set_pev(this, pev_controller_0, 125); + set_pev(this, pev_controller_1, 125); + set_pev(this, pev_controller_2, 125); + set_pev(this, pev_controller_3, 125); + + set_pev(this, pev_gamestate, 1); + set_pev(this, pev_gravity, 1.0); + set_pev(this, pev_fixangle, 1); + set_pev(this, pev_friction, 0.25); +} + +/*--------------------------------[ BaseTrigger Class Methods ]--------------------------------*/ + +@BaseTrigger_Spawn(const this) { + ClassInstanceCallBaseMethod(this); + + new ClassInstance:pInstance = ClassInstanceGetCurrent(); + ClassInstanceSetMember(pInstance, CE_MEMBER_DELAY, 0.1); +} + +@BaseTrigger_UpdatePhysics(const this) { + ClassInstanceCallBaseMethod(this); + + set_pev(this, pev_solid, SOLID_TRIGGER); + set_pev(this, pev_movetype, MOVETYPE_NONE); + set_pev(this, pev_effects, EF_NODRAW); +} + +bool:@BaseTrigger_IsTriggered(const this, const pActivator) { + static ClassInstance:pInstance; pInstance = ClassInstanceGetCurrent(); + + return ClassInstanceGetMember(pInstance, CE_MEMBER_TRIGGERED); +} + +@BaseTrigger_Touch(const this, const pToucher) { + if (ExecuteMethod(CEMethod_CanTrigger, this, pToucher)) { + ExecuteMethod(CEMethod_Trigger, this, pToucher); + } +} + +bool:@BaseTrigger_CanTrigger(const this, const pActivator) { + static Float:flNextThink; pev(this, pev_nextthink, flNextThink); + + if (flNextThink > get_gametime()) return false; + + if (!ExecuteMethod(CEMethod_IsMasterTriggered, this, pActivator)) return false; + + return true; +} + +bool:@BaseTrigger_Trigger(const this, const pActivator) { + static Float:flDelay; ExecuteHamB(Ham_GetDelay, this, flDelay); + + set_pev(this, pev_nextthink, get_gametime() + flDelay); + + return true; +} + +/*--------------------------------[ BaseBSP Class Methods ]--------------------------------*/ + +@BaseBSP_UpdatePhysics(const this) { + ClassInstanceCallBaseMethod(this); + + set_pev(this, pev_movetype, MOVETYPE_PUSH); + set_pev(this, pev_solid, SOLID_BSP); + set_pev(this, pev_flags, pev(this, pev_flags) | FL_WORLDBRUSH); +} + +/*--------------------------------[ Functions ]--------------------------------*/ + +InitStorages() { + g_itEntityIds = TrieCreate(); + + for (new pEntity = 0; pEntity < sizeof(g_rgEntityClassInstances); ++pEntity) { + g_rgEntityClassInstances[pEntity] = Invalid_ClassInstance; + + for (new EntityMethodPointer:iFunctionPointer = EntityMethodPointer:0; iFunctionPointer < EntityMethodPointer; ++iFunctionPointer) { + g_rgEntityMethodPointers[pEntity][iFunctionPointer] = Invalid_Struct; + } + } +} + +DestroyStorages() { + TrieDestroy(g_itEntityIds); +} + +InitBaseClasses() { + new const BASE_ENTITY_NAMES[CEPreset][] = { + "ce_base", + "ce_baseitem", + "ce_basemonster", + "ce_baseprop", + "ce_basetrigger", + "ce_basebsp" + }; + + g_rgPresetEntityIds[CEPreset_Base] = RegisterEntityClass(BASE_ENTITY_NAMES[CEPreset_Base], CEPreset_Invalid, EntityFlag_Abstract); + + for (new CEPreset:iPreset = CEPreset:0; iPreset < CEPreset; ++iPreset) { + if (iPreset == CEPreset_Base) continue; + + g_rgPresetEntityIds[iPreset] = RegisterEntityClass(BASE_ENTITY_NAMES[iPreset], CEPreset_Base, EntityFlag_Abstract); + } + + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_Allocate, get_func_pointer("@Base_Allocate")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_Free, get_func_pointer("@Base_Free")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_KeyValue, get_func_pointer("@Base_KeyValue")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_Spawn, get_func_pointer("@Base_Spawn")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_ResetVariables, get_func_pointer("@Base_ResetVariables")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_UpdatePhysics, get_func_pointer("@Base_UpdatePhysics")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_UpdateModel, get_func_pointer("@Base_UpdateModel")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_UpdateSize, get_func_pointer("@Base_UpdateSize")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_Touch, get_func_pointer("@Base_Touch")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_Think, get_func_pointer("@Base_Think")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_Restart, get_func_pointer("@Base_Restart")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_Killed, get_func_pointer("@Base_Killed")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_IsMasterTriggered, get_func_pointer("@Base_IsMasterTriggered")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_ObjectCaps, get_func_pointer("@Base_ObjectCaps")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_BloodColor, get_func_pointer("@Base_BloodColor")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_Use, get_func_pointer("@Base_Use")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_Blocked, get_func_pointer("@Base_Blocked")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_GetDelay, get_func_pointer("@Base_GetDelay")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_Classify, get_func_pointer("@Base_Classify")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_IsTriggered, get_func_pointer("@Base_IsTriggered")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_GetToggleState, get_func_pointer("@Base_GetToggleState")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_SetToggleState, get_func_pointer("@Base_SetToggleState")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_Respawn, get_func_pointer("@Base_Respawn")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Base], CEMethod_TraceAttack, get_func_pointer("@Base_TraceAttack")); + + RegisterEntityClassKeyMemberBinding(BASE_ENTITY_NAMES[CEPreset_Base], "origin", CE_MEMBER_ORIGIN, CEMemberType_Vector); + RegisterEntityClassKeyMemberBinding(BASE_ENTITY_NAMES[CEPreset_Base], "angles", CE_MEMBER_ANGLES, CEMemberType_Vector); + RegisterEntityClassKeyMemberBinding(BASE_ENTITY_NAMES[CEPreset_Base], "master", CE_MEMBER_MASTER, CEMemberType_String); + RegisterEntityClassKeyMemberBinding(BASE_ENTITY_NAMES[CEPreset_Base], "targetname", CE_MEMBER_TARGETNAME, CEMemberType_String); + RegisterEntityClassKeyMemberBinding(BASE_ENTITY_NAMES[CEPreset_Base], "target", CE_MEMBER_TARGET, CEMemberType_String); + RegisterEntityClassKeyMemberBinding(BASE_ENTITY_NAMES[CEPreset_Base], "model", CE_MEMBER_MODEL, CEMemberType_String); + + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Prop], CEMethod_UpdatePhysics, get_func_pointer("@BaseProp_UpdatePhysics")); + + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Item], CEMethod_Spawn, get_func_pointer("@BaseItem_Spawn")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Item], CEMethod_Touch, get_func_pointer("@BaseItem_Touch")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Item], CEMethod_CanPickup, get_func_pointer("@BaseItem_CanPickup")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Item], CEMethod_Pickup, get_func_pointer("@BaseItem_Pickup")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Item], CEMethod_UpdatePhysics, get_func_pointer("@BaseItem_UpdatePhysics")); + + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Monster], CEMethod_Spawn, get_func_pointer("@BaseMonster_Spawn")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Monster], CEMethod_UpdatePhysics, get_func_pointer("@BaseMonster_UpdatePhysics")); + + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Trigger], CEMethod_Spawn, get_func_pointer("@BaseTrigger_Spawn")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Trigger], CEMethod_Touch, get_func_pointer("@BaseTrigger_Touch")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Trigger], CEMethod_CanTrigger, get_func_pointer("@BaseTrigger_CanTrigger")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Trigger], CEMethod_Trigger, get_func_pointer("@BaseTrigger_Trigger")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Trigger], CEMethod_UpdatePhysics, get_func_pointer("@BaseTrigger_UpdatePhysics")); + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_Trigger], CEMethod_IsTriggered, get_func_pointer("@BaseTrigger_IsTriggered")); + + ImplementEntityClassMethod(BASE_ENTITY_NAMES[CEPreset_BSP], CEMethod_UpdatePhysics, get_func_pointer("@BaseBSP_UpdatePhysics")); +} + +InitHooks() { + register_forward(FM_Spawn, "FMHook_Spawn"); + register_forward(FM_KeyValue, "FMHook_KeyValue"); + register_forward(FM_OnFreeEntPrivateData, "FMHook_OnFreeEntPrivateData"); +} + +DestroyRegisteredClasses() { + for (new iId = 0; iId < g_iEntityClassesNum; ++iId) { + FreeEntityClass(g_rgEntities[iId][Entity_Class]); + } +} + +RegisterEntityClass(const szClassname[], CEPreset:iPreset = CEPreset_Invalid, const EntityFlags:iFlags = EntityFlag_None, const szParent[] = "") { + new iId = g_iEntityClassesNum; + + new Class:cParent = Invalid_Class; + + if (!equal(szParent, NULL_STRING)) { + new iParentId = CE_INVALID_ID; + if (!TrieGetCell(g_itEntityIds, szParent, iParentId)) { + log_error(AMX_ERR_NATIVE, ERROR_IS_NOT_REGISTERED_BASE, LOG_PREFIX, szParent); + return CE_INVALID_ID; + } + + cParent = g_rgEntities[iParentId][Entity_Class]; + } else if (iPreset != CEPreset_Invalid) { + new iPresetEntityId = g_rgPresetEntityIds[iPreset]; + cParent = g_rgEntities[iPresetEntityId][Entity_Class]; + } + + new Class:cEntity = ClassCreate(cParent); + ClassSetMetadataString(cEntity, CLASS_METADATA_NAME, szClassname); + + ClassSetMetadata(cEntity, CLASS_METADATA_CE_ID, iId); + g_rgEntities[iId][Entity_Id] = iId; + g_rgEntities[iId][Entity_Class] = cEntity; + g_rgEntities[iId][Entity_Flags] = iFlags; + g_rgEntities[iId][Entity_Hierarchy] = CreateClassHierarchyList(cEntity); + g_rgEntities[iId][Entity_KeyMemberBindings] = Invalid_Trie; + + for (new CEMethod:iMethod = CEMethod:0; iMethod < CEMethod; ++iMethod) { + g_rgEntities[iId][Entity_MethodPreHooks][iMethod] = Invalid_Array; + g_rgEntities[iId][Entity_MethodPostHooks][iMethod] = Invalid_Array; + g_rgEntities[iId][Entity_TotalHooksCounter][iMethod] = 0; + } + + TrieSetCell(g_itEntityIds, szClassname, iId); + + g_iEntityClassesNum++; + + log_amx("%s Entity ^"%s^" successfully registred.", LOG_PREFIX, szClassname); + + return iId; +} + +FreeEntityClass(&Class:cEntity) { + new iId = ClassGetMetadata(cEntity, CLASS_METADATA_CE_ID); + + for (new CEMethod:iMethod = CEMethod:0; iMethod < CEMethod; ++iMethod) { + if (g_rgEntities[iId][Entity_MethodPreHooks][iMethod] != Invalid_Array) { + ArrayDestroy(g_rgEntities[iId][Entity_MethodPreHooks][iMethod]); + } + + if (g_rgEntities[iId][Entity_MethodPostHooks][iMethod] != Invalid_Array) { + ArrayDestroy(g_rgEntities[iId][Entity_MethodPostHooks][iMethod]); + } + } + + ArrayDestroy(g_rgEntities[iId][Entity_Hierarchy]); + + if (g_rgEntities[iId][Entity_KeyMemberBindings] != Invalid_Trie) { + new TrieIter:itKeyMemberBindingsIter = TrieIterCreate(g_rgEntities[iId][Entity_KeyMemberBindings]); + + while (!TrieIterEnded(itKeyMemberBindingsIter)) { + new Trie:itMemberTypes; TrieIterGetCell(itKeyMemberBindingsIter, itMemberTypes); + TrieDestroy(itMemberTypes); + TrieIterNext(itKeyMemberBindingsIter); + } + + TrieIterDestroy(itKeyMemberBindingsIter); + + TrieDestroy(g_rgEntities[iId][Entity_KeyMemberBindings]); + } + + ClassDestroy(cEntity); +} + +InitMethodHamHook(CEMethod:iMethod) { + if (!g_rgMethodHamHooks[iMethod]) { + g_rgMethodHamHooks[iMethod] = RegisterMethodHamHook(iMethod); + } +} + +HamHook:RegisterMethodHamHook(CEMethod:iMethod) { + switch (iMethod) { + case CEMethod_Spawn: return RegisterHam(Ham_Spawn, CE_BASE_CLASSNAME, "HamHook_Base_Spawn", .Post = 0); + case CEMethod_ObjectCaps: return RegisterHam(Ham_ObjectCaps, CE_BASE_CLASSNAME, "HamHook_Base_ObjectCaps", .Post = 0); + case CEMethod_Touch: return RegisterHam(Ham_Touch, CE_BASE_CLASSNAME, "HamHook_Base_Touch_Post", .Post = 1); + case CEMethod_Use: return RegisterHam(Ham_Use, CE_BASE_CLASSNAME, "HamHook_Base_Use_Post", .Post = 1); + case CEMethod_Blocked: return RegisterHam(Ham_Blocked, CE_BASE_CLASSNAME, "HamHook_Base_Blocked_Post", .Post = 1); + case CEMethod_Killed: return RegisterHam(Ham_Killed, CE_BASE_CLASSNAME, "HamHook_Base_Killed", .Post = 0); + case CEMethod_Think: return RegisterHam(Ham_Think, CE_BASE_CLASSNAME, "HamHook_Base_Think", .Post = 0); + case CEMethod_BloodColor: return RegisterHam(Ham_BloodColor, CE_BASE_CLASSNAME, "HamHook_Base_BloodColor", .Post = 0); + case CEMethod_GetDelay: return RegisterHam(Ham_GetDelay, CE_BASE_CLASSNAME, "HamHook_Base_GetDelay", .Post = 0); + case CEMethod_Classify: return RegisterHam(Ham_Classify, CE_BASE_CLASSNAME, "HamHook_Base_Classify", .Post = 0); + case CEMethod_IsTriggered: return RegisterHam(Ham_IsTriggered, CE_BASE_CLASSNAME, "HamHook_Base_IsTriggered", .Post = 0); + case CEMethod_GetToggleState: return RegisterHam(Ham_GetToggleState, CE_BASE_CLASSNAME, "HamHook_Base_GetToggleState", .Post = 0); + case CEMethod_SetToggleState: return RegisterHam(Ham_SetToggleState, CE_BASE_CLASSNAME, "HamHook_Base_SetToggleState", .Post = 0); + case CEMethod_Respawn: return RegisterHam(Ham_Respawn, CE_BASE_CLASSNAME, "HamHook_Base_Respawn_Post", .Post = 1); + case CEMethod_TraceAttack: return RegisterHam(Ham_TraceAttack, CE_BASE_CLASSNAME, "HamHook_Base_TraceAttack_Post", .Post = 1); + case CEMethod_Restart: { + if (g_bIsCStrike) { + return RegisterHam(Ham_CS_Restart, CE_BASE_CLASSNAME, "HamHook_Base_Restart_Post", .Post = 1); + } + } + } + + return HamHook:0; +} + +AddEntityClassMethod(const szClassname[], const szMethod[], const Function:fnCallback, Array:irgParamTypes, bool:bVirtual) { + new iId = GetIdByClassName(szClassname); + + ClassAddMethod(g_rgEntities[iId][Entity_Class], szMethod, fnCallback, bVirtual, CMP_Cell, CMP_ParamsCellArray, irgParamTypes); +} + +AddEntityClassNativeMethod(const &Class:class, CEMethod:iMethod, Function:fnCallback) { + new Array:irgParams = ArrayCreate(_, 8); + + for (new iParam = 0; iParam < g_rgEntityMethodParams[iMethod][EntityMethodParams_Num]; ++iParam) { + ArrayPushCell(irgParams, g_rgEntityMethodParams[iMethod][EntityMethodParams_Types][iParam]); + } + + ClassAddMethod(class, CE_METHOD_NAMES[iMethod], fnCallback, true, CMP_Cell, CMP_ParamsCellArray, irgParams); + + ArrayDestroy(irgParams); + + InitMethodHamHook(iMethod); +} + +ImplementEntityClassMethod(const szClassname[], const CEMethod:iMethod, const Function:fnCallback) { + new iId = GetIdByClassName(szClassname); + if (iId == CE_INVALID_ID) { + log_error(AMX_ERR_NATIVE, ERROR_IS_NOT_REGISTERED, LOG_PREFIX, szClassname); + return; + } + + AddEntityClassNativeMethod(g_rgEntities[iId][Entity_Class], iMethod, fnCallback); +} + +RegisterEntityClassKeyMemberBinding(const szClassname[], const szKey[], const szMember[], CEMemberType:iType) { + new iId = GetIdByClassName(szClassname); + if (iId == CE_INVALID_ID) { + log_error(AMX_ERR_NATIVE, ERROR_IS_NOT_REGISTERED, LOG_PREFIX, szClassname); + return; + } + + if (g_rgEntities[iId][Entity_KeyMemberBindings] == Invalid_Trie) { + g_rgEntities[iId][Entity_KeyMemberBindings] = TrieCreate(); + } + + new Trie:itMemberTypes = Invalid_Trie; + if (!TrieGetCell(g_rgEntities[iId][Entity_KeyMemberBindings], szKey, itMemberTypes)) { + itMemberTypes = TrieCreate(); + TrieSetCell(g_rgEntities[iId][Entity_KeyMemberBindings], szKey, itMemberTypes); + } + + TrieSetCell(itMemberTypes, szMember, iType); +} + +RemoveEntityClassKeyMemberBinding(const szClassname[], const szKey[], const szMember[]) { + new iId = GetIdByClassName(szClassname); + if (iId == CE_INVALID_ID) { + log_error(AMX_ERR_NATIVE, ERROR_IS_NOT_REGISTERED, LOG_PREFIX, szClassname); + return; + } + + if (g_rgEntities[iId][Entity_KeyMemberBindings] == Invalid_Trie) return; + + new Trie:itMemberTypes = Invalid_Trie; + if (!TrieGetCell(g_rgEntities[iId][Entity_KeyMemberBindings], szKey, itMemberTypes)) return; + + TrieDeleteKey(itMemberTypes, szMember); +} + +RegisterEntityClassHook(const szClassname[], CEMethod:iMethod, const Function:fnCallback, bool:bPost) { + new iId = GetIdByClassName(szClassname); + if (iId == CE_INVALID_ID) { + log_error(AMX_ERR_NATIVE, ERROR_IS_NOT_REGISTERED, LOG_PREFIX, szClassname); + return CE_INVALID_HOOK_ID; + } + + new Array:irgHooks = Invalid_Array; + if (bPost) { + if (g_rgEntities[iId][Entity_MethodPostHooks][iMethod] == Invalid_Array) { + g_rgEntities[iId][Entity_MethodPostHooks][iMethod] = ArrayCreate(); + } + + irgHooks = g_rgEntities[iId][Entity_MethodPostHooks][iMethod]; + } else { + if (g_rgEntities[iId][Entity_MethodPreHooks][iMethod] == Invalid_Array) { + g_rgEntities[iId][Entity_MethodPreHooks][iMethod] = ArrayCreate(); + } + + irgHooks = g_rgEntities[iId][Entity_MethodPreHooks][iMethod]; + } + + // Incrementing hook counter for the class and all child classes + { + g_rgEntities[iId][Entity_TotalHooksCounter][iMethod]++; + + for (new iOtherId = iId + 1; iOtherId < g_iEntityClassesNum; ++iOtherId) { + ClassIsChildOf(g_rgEntities[iOtherId][Entity_Class], g_rgEntities[iId][Entity_Class]); + g_rgEntities[iOtherId][Entity_TotalHooksCounter][iMethod]++; + } + } + + new iHookId = ArrayPushCell(irgHooks, fnCallback); + + return iHookId; +} + +CreateEntity(const szClassname[], const Float:vecOrigin[3], bool:bTemp) { + new iId = GetIdByClassName(szClassname); + if (iId == CE_INVALID_ID) { + log_error(AMX_ERR_NATIVE, ERROR_CANNOT_CREATE_UNREGISTERED, LOG_PREFIX, szClassname); + return FM_NULLENT; + } + + static EntityFlags:iFlags; iFlags = g_rgEntities[iId][Entity_Flags]; + if (iFlags & EntityFlag_Abstract) { + log_error(AMX_ERR_NATIVE, ERROR_CANNOT_CREATE_ABSTRACT, LOG_PREFIX, szClassname); + return FM_NULLENT; + } + + new this = engfunc(EngFunc_CreateNamedEntity, g_iszBaseClassName); + set_pev(this, pev_classname, szClassname); + engfunc(EngFunc_SetOrigin, this, vecOrigin); + // set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); + + ExecuteMethod(CEMethod_Allocate, this, iId, bTemp); + + new ClassInstance:pInstance = @Entity_GetInstance(this); + ClassInstanceSetMemberArray(pInstance, CE_MEMBER_ORIGIN, vecOrigin, 3); + + return this; +} + +GetIdByClassName(const szClassname[]) { + static iId; + if (!TrieGetCell(g_itEntityIds, szClassname, iId)) return CE_INVALID_ID; + + return iId; +} + +/* + price - 0.0011 + engine func price - 0.0004 + hooks price - 0.0003 ms + method call price - 0.0005 ms + CallEntityMethodHook price - 0.00015 ms +*/ +#define HOOKABLE_METHOD_IMPLEMENTATION(%1,%2,%0) {\ + static iPreHookResult; iPreHookResult = CallEntityMethodHook(%2, %1, false, %0);\ + STACK_PUSH(PREHOOK_RETURN, iPreHookResult); \ + \ + static ClassInstance:pInstance; pInstance = @Entity_GetInstance(%2);\ + \ + static any:result;\ + if (STACK_READ(PREHOOK_RETURN) != CE_SUPERCEDE) result = ClassInstanceCallMethod(pInstance, CE_METHOD_NAMES[%1], %2, %0);\ + if (STACK_POP(PREHOOK_RETURN) <= CE_HANDLED) STACK_PATCH(METHOD_RETURN, result);\ + \ + CallEntityMethodHook(%2, %1, true, %0);\ +} + +any:ExecuteMethod(CEMethod:iMethod, const &pEntity, any:...) { + STACK_PUSH(METHOD_RETURN, 0); + + switch (iMethod) { + case CEMethod_Allocate: { + new iId = getarg(2); + + g_rgEntityClassInstances[pEntity] = ClassInstanceCreate(g_rgEntities[iId][Entity_Class]); + ClassInstanceSetMember(g_rgEntityClassInstances[pEntity], CE_MEMBER_ID, iId); + ClassInstanceSetMember(g_rgEntityClassInstances[pEntity], CE_MEMBER_POINTER, pEntity); + ClassInstanceSetMember(g_rgEntityClassInstances[pEntity], CE_MEMBER_IGNOREROUNDS, false); + ClassInstanceSetMember(g_rgEntityClassInstances[pEntity], CE_MEMBER_WORLD, !getarg(3)); + + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Allocate, pEntity, 0) + } + case CEMethod_Free: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Free, pEntity, 0) + + ClassInstanceDestroy(g_rgEntityClassInstances[pEntity]); + g_rgEntityClassInstances[pEntity] = Invalid_ClassInstance; + } + case CEMethod_KeyValue: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_KeyValue, pEntity, getarg(2)) + } + case CEMethod_SpawnInit: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_SpawnInit, pEntity, 0) + } + case CEMethod_Spawn: { + if (!pev_valid(pEntity) || pev(pEntity, pev_flags) & FL_KILLME) return 0; + + ExecuteMethod(CEMethod_ResetVariables, pEntity); + + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Spawn, pEntity, 0) + + new ClassInstance:pInstance = @Entity_GetInstance(pEntity); + ClassInstanceSetMember(pInstance, CE_MEMBER_LASTSPAWN, get_gametime()); + } + case CEMethod_ResetVariables: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_ResetVariables, pEntity, 0) + } + case CEMethod_UpdatePhysics: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_UpdatePhysics, pEntity, 0) + } + case CEMethod_UpdateModel: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_UpdateModel, pEntity, 0) + } + case CEMethod_UpdateSize: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_UpdateSize, pEntity, 0) + } + case CEMethod_Touch: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Touch, pEntity, getarg(2)) + } + case CEMethod_Think: { + if (pev(pEntity, pev_flags) & FL_KILLME) return 0; + + static iDeadFlag; iDeadFlag = pev(pEntity, pev_deadflag); + + switch (iDeadFlag) { + case DEAD_NO: { + static ClassInstance:pInstance; pInstance = @Entity_GetInstance(pEntity); + static Float:flNextKill; flNextKill = ClassInstanceGetMember(pInstance, CE_MEMBER_NEXTKILL); + if (flNextKill > 0.0 && flNextKill <= get_gametime()) { + ExecuteHamB(Ham_Killed, pEntity, 0, 0); + } + } + case DEAD_RESPAWNABLE: { + static ClassInstance:pInstance; pInstance = @Entity_GetInstance(pEntity); + static Float:flNextRespawn; flNextRespawn = ClassInstanceGetMember(pInstance, CE_MEMBER_NEXTRESPAWN); + if (flNextRespawn <= get_gametime()) { + ExecuteHamB(Ham_Respawn, pEntity); + } + } + } + + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Think, pEntity, 0) + } + case CEMethod_CanPickup: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_CanPickup, pEntity, getarg(2)) + } + case CEMethod_Pickup: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Pickup, pEntity, getarg(2)) + } + case CEMethod_CanTrigger: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_CanTrigger, pEntity, getarg(2)) + } + case CEMethod_Trigger: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Trigger, pEntity, getarg(2)) + } + case CEMethod_Restart: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Restart, pEntity, 0) + } + case CEMethod_Killed: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Killed, pEntity, getarg(2), getarg(3)) + } + case CEMethod_IsMasterTriggered: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_IsMasterTriggered, pEntity, getarg(2)) + } + case CEMethod_ObjectCaps: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_ObjectCaps, pEntity, 0) + } + case CEMethod_BloodColor: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_BloodColor, pEntity, 0) + } + case CEMethod_Use: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Use, pEntity, getarg(2), getarg(3), getarg(4), Float:getarg(5)) + } + case CEMethod_Blocked: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Blocked, pEntity, getarg(2)) + } + case CEMethod_GetDelay: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_GetDelay, pEntity, 0) + } + case CEMethod_Classify: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Classify, pEntity, 0) + } + case CEMethod_IsTriggered: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_IsTriggered, pEntity, getarg(2)) + } + case CEMethod_GetToggleState: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_GetToggleState, pEntity, 0) + } + case CEMethod_SetToggleState: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_SetToggleState, pEntity, getarg(2)) + } + case CEMethod_Respawn: { + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Respawn, pEntity, 0) + } + case CEMethod_TraceAttack: { + new Float:vecDirection[3]; xs_vec_set(vecDirection, Float:getarg(4, 0), Float:getarg(4, 1), Float:getarg(4, 2)); + HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_TraceAttack, pEntity, getarg(2), Float:getarg(3), vecDirection, getarg(5), getarg(6)) + } + } + + return STACK_POP(METHOD_RETURN); +} + +CallEntityMethodHook(const &pEntity, CEMethod:iMethod, const bool:bPost, any:...) { + static const iParamOffset = 3; + + static ClassInstance:pInstance; pInstance = @Entity_GetInstance(pEntity); + static Class:cClass; cClass = ClassInstanceGetClass(pInstance); + + static iId; iId = ClassGetMetadata(cClass, CLASS_METADATA_CE_ID); + if (!g_rgEntities[iId][Entity_TotalHooksCounter][iMethod]) return CE_IGNORED; + + new iResult = CE_IGNORED; + + new Array:irgHierarchy = g_rgEntities[iId][Entity_Hierarchy]; + new iHierarchySize = ArraySize(irgHierarchy); + + new Array:irgHooks = Invalid_Array; + new irgHooksNum = 0; + + for (new iHierarchyPos = 0; iHierarchyPos < iHierarchySize; ++iHierarchyPos) { + static iId; iId = ArrayGetCell(irgHierarchy, iHierarchyPos); + + irgHooks = ( + bPost + ? g_rgEntities[iId][Entity_MethodPostHooks][iMethod] + : g_rgEntities[iId][Entity_MethodPreHooks][iMethod] + ); + + if (irgHooks == Invalid_Array) continue; + + irgHooksNum = ArraySize(irgHooks); + + for (new iHookId = 0; iHookId < irgHooksNum; ++iHookId) { + static Function:fnCallback; fnCallback = ArrayGetCell(irgHooks, iHookId); + + if (callfunc_begin_p(fnCallback) == 1) { + callfunc_push_int(pEntity); + + static iParam; + for (iParam = 0; iParam < g_rgEntityMethodParams[iMethod][EntityMethodParams_Num]; ++iParam) { + switch (g_rgEntityMethodParams[iMethod][EntityMethodParams_Types][iParam]) { + case CMP_Cell: { + callfunc_push_int(getarg(iParam + iParamOffset)); + } + case CMP_String: { + static szBuffer[MAX_STRING_LENGTH]; + + static iPos; + for (iPos = 0; iPos < charsmax(szBuffer); ++iPos) { + szBuffer[iPos] = getarg(iParam + iParamOffset, iPos); + if (szBuffer[iPos] == '^0') break; + } + + callfunc_push_str(szBuffer, false); + } + case CMP_Array: { + static iSize; iSize = g_rgEntityMethodParams[iMethod][EntityMethodParams_Types][++iParam]; + + for (new iIndex = 0; iIndex < iSize; ++iIndex) { + callfunc_push_int(any:getarg(iParam + iParamOffset, iIndex)); + } + } + // TODO: Implement other types + } + } + + iResult = max(callfunc_end(), iResult); + } + } + } + + return iResult; +} + +Array:CreateClassHierarchyList(const &Class:class) { + new Array:irgHierarchy = ArrayCreate(); + + new iSize = 0; + + for (new Class:cCurrent = class; cCurrent != Invalid_Class; cCurrent = ClassGetBaseClass(cCurrent)) { + new iId = ClassGetMetadata(cCurrent, CLASS_METADATA_CE_ID); + if (iId == CE_INVALID_ID) continue; + + if (iSize) { + ArrayInsertCellBefore(irgHierarchy, 0, iId); + } else { + ArrayPushCell(irgHierarchy, iId); + } + + iSize++; + } + + return irgHierarchy; +} + +Array:ReadMethodParamsFromNativeCall(iStartArg, iArgc) { + static Array:irgParams; irgParams = ArrayCreate(); + + for (new iParam = iStartArg; iParam <= iArgc; ++iParam) { + static iType; iType = get_param_byref(iParam); + + switch (iType) { + case CE_MP_Cell: { + ArrayPushCell(irgParams, CMP_Cell); + } + case CE_MP_String: { + ArrayPushCell(irgParams, CMP_String); + } + case CE_MP_Array: { + ArrayPushCell(irgParams, CMP_Array); + ArrayPushCell(irgParams, get_param_byref(iParam + 1)); + iParam++; + } + case CE_MP_Vector: { + ArrayPushCell(irgParams, CMP_Array); + ArrayPushCell(irgParams, 3); + } + } + } + + return irgParams; +} + +/*--------------------------------[ Stocks ]--------------------------------*/ + +stock UTIL_ParseVector(const szBuffer[], Float:vecOut[3]) { + static rgszOrigin[3][8]; + parse(szBuffer, rgszOrigin[0], charsmax(rgszOrigin[]), rgszOrigin[1], charsmax(rgszOrigin[]), rgszOrigin[2], charsmax(rgszOrigin[])); + + for (new i = 0; i < 3; ++i) { + vecOut[i] = str_to_float(rgszOrigin[i]); + } +} + +stock bool:UTIL_IsMasterTriggered(const szMaster[], const &pActivator) { + if (equal(szMaster, NULL_STRING)) return false; + + new pMaster = engfunc(EngFunc_FindEntityByString, 0, "targetname", szMaster); + if (pMaster && (ExecuteHam(Ham_ObjectCaps, pMaster) & FCAP_MASTER)) { + return !!ExecuteHamB(Ham_IsTriggered, pMaster, pActivator); + } + + return true; +} + +stock UTIL_GetStringType(const szString[]) { + enum { + string_type = 's', + integer_type = 'i', + float_type = 'f' + }; + + static bool:bIsFloat; bIsFloat = false; + + for (new i = 0; szString[i] != '^0'; ++i) { + if (isalpha(szString[i])) return string_type; + + if (szString[i] == '.') { + if (bIsFloat) return string_type; + + bIsFloat = true; + } + } + + return bIsFloat ? float_type : integer_type; +} diff --git a/api/custom-entities/future/include/api_custom_entities.inc b/api/custom-entities/future/include/api_custom_entities.inc new file mode 100644 index 0000000..b75ca6a --- /dev/null +++ b/api/custom-entities/future/include/api_custom_entities.inc @@ -0,0 +1,249 @@ +#if defined _api_custom_entities_included + #endinput +#endif +#define _api_custom_entities_included + +#pragma reqlib api_custom_entities + +#include + +/** + * Register entity + * + * @param szClassname Name of an entity + * @param iPreset Preset for an entity + * + * @return Handler of the registered entity + */ +native CE:CE_RegisterClass(const szClassname[], CEPreset:iPreset = CEPreset_Base, bool:bAbstract = false); + +/** + * Extend entity + * + * @param szClassname Name of an entity + * @param szBase Name of a parent entity + * @param bAbstract Abstract flag + * + * @return Handler of the registered entity + */ +native CE:CE_RegisterClassDerived(const szClassname[], const szBase[], bool:bAbstract = false); + +/** + * Extend entity + * + * @param szAlias Name of an alias + * @param szClassname Name of an entity + * + * @return Handler of the registered entity + */ +native CE:CE_RegisterClassAlias(const szAlias[], const szClassname[]); + +/** + * Spawn entity + * + * @param szClassname Name of entity + * @param vecOrigin Spawn origin + * @param bTemp Mark entity as an temporary entity + * + * @return Entity index + */ +native CE_Create(const szClassname[], const Float:vecOrigin[] = {0.0, 0.0, 0.0}, bool:bTemp = true); +/** + * Restart entity + * + * @param pEntity Entity index + */ +native bool:CE_Restart(const &pEntity); + +/** + * Kill entity + * + * @param pEntity Entity index + * @param pKiller Index of killer + */ +native bool:CE_Kill(const &pEntity, const &pKiller = 0); + +/** + * Remove entity correctly + * + * @param pEntity Entity index + * + * @return Result true/false + */ +native bool:CE_Remove(const &pEntity); + +/** + * Register new hook for entity + * + * @param method Function handler + * @param szClassname Name of entity + * @param szCallback Callback + */ +native CE_RegisterClassHook(const szClassname[], CEMethod:method, const szCallback[], bool:bPost); + +native any:CE_GetMethodReturn(); +native CE_SetMethodReturn(any:value); + +native CE_RegisterClassKeyMemberBinding(const szClassname[], const szKey[], const any:szMember[], CEMemberType:iType); + +native CE_RemoveClassKeyMemberBinding(const szClassname[], const szKey[], const any:szMember[]); + +/** + * Registers a new method for entity. + * + * @param szClassname Name of entity + * @param szMethod Name of method + * @param szCallback Callback + * + * @noreturn +*/ +native CE_RegisterClassMethod(const szClassname[], const szMethod[], const szCallback[], any:...); + +/** + * Implements a native method for entity. + * + * @param szClassname Name of entity + * @param iMethod Method to implement + * @param szCallback Callback + * + * @noreturn +*/ +native CE_ImplementClassMethod(const szClassname[], CEMethod:iMethod, const szCallback[]); + +/** + * Registers a new virtual method for entity. + * + * @param szClassname Name of entity + * @param szMethod Name of method + * @param szCallback Callback + * + * @noreturn +*/ +native CE_RegisterClassVirtualMethod(const szClassname[], const szMethod[], const szCallback[], any:...); + +/** + * Gets handler of entity by name + * + * @param szClassname Name of entity + * + * @return Handler of the registered entity or -1 otherwise + */ +native CE:CE_GetClassHandler(const szClassname[]); + +/** + * Gets handler of entity by index + * + * @param pEntity Entity index + * + * @return Handler of the entity or -1 otherwise + */ +native CE:CE_GetHandler(const &pEntity); + +/** + * Checks if entity is an instance of specific custom entity + * + * @param pEntity Entity index + * @param szTargetName Name of target entity to check + * + * @return Result true/false + */ +native bool:CE_IsInstanceOf(const &pEntity, const szTargetName[]); + +/** + * Checks if entity has member + * + * @param pEntity Entity index + * @param szMember Member name + */ +native bool:CE_HasMember(const &pEntity, const any:szMember[]); + +/** + * Deletes member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + */ +native CE_DeleteMember(const &pEntity, const any:szMember[]); + +/** + * Gets member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + * + * @return Member value + */ +native any:CE_GetMember(const &pEntity, const any:szMember[]); + +/** + * Sets member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + * @param value Value to set + */ +native CE_SetMember(const &pEntity, const any:szMember[], any:value, bool:bReplace = true); + +/** + * Gets vector member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + * @param vecOut Output vector + */ +native bool:CE_GetMemberVec(const &pEntity, const any:szMember[], Float:vecOut[3]); + +/** + * Sets vector member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + * @param vecValue Vector to set + */ +native CE_SetMemberVec(const &pEntity, const any:szMember[], const Float:vecValue[], bool:bReplace = true); + +/** + * Gets string member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + * @param szOut Buffer to copy the value + * @param iLen Maximum size of buffer + */ +native bool:CE_GetMemberString(const &pEntity, const any:szMember[], szOut[], iLen); + +/** + * Sets string member of an entity + * + * @param pEntity Entity index + * @param szMember Member name + * @param szValue String value to set + */ +native CE_SetMemberString(const &pEntity, const any:szMember[], const szValue[], bool:bReplace = true); + +/** + * Call a method for entity. + * + * @param pEntity Entity index + * @param szMethod Name of method + * + * @return Method return value +*/ +native any:CE_CallMethod(const &pEntity, const szMethod[], any:...); + +/** + * Call a base method for entity. + * + * @param pEntity Entity index + * @param szMethod Name of method + * + * @return Method return value +*/ +native any:CE_CallBaseMethod(any:...); + +native CE_GetCallPluginId(); + +native CE_SetThink(const &pEntity, const szMethod[], const szClassname[] = NULL_STRING); +native CE_SetTouch(const &pEntity, const szMethod[], const szClassname[] = NULL_STRING); +native CE_SetUse(const &pEntity, const szMethod[], const szClassname[] = NULL_STRING); +native CE_SetBlocked(const &pEntity, const szMethod[], const szClassname[] = NULL_STRING); diff --git a/api/custom-entities/future/include/api_custom_entities_const.inc b/api/custom-entities/future/include/api_custom_entities_const.inc new file mode 100644 index 0000000..3fad722 --- /dev/null +++ b/api/custom-entities/future/include/api_custom_entities_const.inc @@ -0,0 +1,136 @@ +#if defined _api_custom_entities_const_included + #endinput +#endif +#define _api_custom_entities_const_included + +#define CE_BASE_CLASSNAME "info_target" +#define CE_ENTITY_SECRET ('c'+'e'+'2') + +#define CE_MAX_NAME_LENGTH 64 +#define CE_MAX_MEMBER_NAME_LENGTH 64 +#define CE_MAX_CALLBACK_NAME_LENGTH 64 +#define CE_MAX_METHOD_NAME_LENGTH 64 + +#define CE_MEMBER_ID "_id" +#define CE_MEMBER_POINTER "_ptr" +#define CE_MEMBER_WORLD "_bWorld" +#define CE_MEMBER_ORIGIN "_vecOrigin" +#define CE_MEMBER_ANGLES "_vecAngles" +#define CE_MEMBER_MASTER "_szMaster" +#define CE_MEMBER_MODEL "_szModel" +#define CE_MEMBER_DELAY "_flDelay" +#define CE_MEMBER_NEXTKILL "_flNextKill" +#define CE_MEMBER_NEXTRESPAWN "_flNextRespawn" +#define CE_MEMBER_BLOODCOLOR "_iBloodColor" +#define CE_MEMBER_LIFETIME "_flLifeTime" +#define CE_MEMBER_IGNOREROUNDS "_bIgnoreRounds" +#define CE_MEMBER_RESPAWNTIME "_flRespawnTime" +#define CE_MEMBER_MINS "_vecMins" +#define CE_MEMBER_MAXS "_vecMaxs" +#define CE_MEMBER_LASTSPAWN "_flLastSpawn" +#define CE_MEMBER_PLUGINID "_iPluginId" +#define CE_MEMBER_TARGETNAME "_szTargetname" +#define CE_MEMBER_TARGET "_szTarget" +#define CE_MEMBER_PICKED "_bPicked" +#define CE_MEMBER_TOGGLESTATE "_iToggleState" +#define CE_MEMBER_TRIGGERED "_bTriggered" + +#define CE_IGNORED 0 +#define CE_HANDLED 1 +#define CE_OVERRIDE 2 +#define CE_SUPERCEDE 3 + +enum CE { + CE_InvalidHandler = -1 +}; + +enum CEPreset { + CEPreset_Invalid = -1, + CEPreset_Base, + CEPreset_Item, + CEPreset_Monster, + CEPreset_Prop, + CEPreset_Trigger, + CEPreset_BSP +}; + +enum CEMethod { + CEMethod_Invalid = -1, + CEMethod_Allocate, // Calls when entity instance allocated + CEMethod_Free, // Called when an instance of an object is about to be destroyed + CEMethod_KeyValue, // Calls when new key value obtained + CEMethod_SpawnInit, // Calls when entity is initialized (on first spawn) + CEMethod_Spawn, // Calls during entity spawn + CEMethod_ResetVariables, // Calls when entity is initialized (on first spawn) + CEMethod_UpdatePhysics, // Calls during on entity physics initialization + CEMethod_UpdateModel, // Calls during on entity model initialization + CEMethod_UpdateSize, // Calls during on entity size initialization + CEMethod_Touch, // Calls during entity touch + CEMethod_Think, // Calls when entity thinking + CEMethod_CanPickup, + CEMethod_Pickup, // Calls when player touch item. Should return PLUGIN_HANDLED if picked + CEMethod_CanTrigger, // Calls every trigger activation check + CEMethod_Trigger, // Calls every trigger activation check + CEMethod_Restart, // Calls when entity is restarting + CEMethod_Killed, // Calls when something killing entity. return PLUGIN_HANDLED to block the kill. + CEMethod_IsMasterTriggered, // Calls when entity is initialized (on first spawn) + CEMethod_ObjectCaps, + CEMethod_BloodColor, + CEMethod_Use, + CEMethod_Blocked, + CEMethod_GetDelay, + CEMethod_Classify, + CEMethod_IsTriggered, + CEMethod_GetToggleState, + CEMethod_SetToggleState, + CEMethod_Respawn, + CEMethod_TraceAttack +}; + +stock const CE_METHOD_NAMES[CEMethod][] = { + "Allocate", + "Free", + "KeyValue", + "SpawnInit", + "Spawn", + "UpdateVariables", + "UpdatePhysics", + "UpdateModel", + "UpdateSize", + "Touch", + "Think", + "CanPickup", + "Pickup", + "CanTrigger", + "Trigger", + "Restart", + "Killed", + "IsMasterTriggered", + "ObjectCaps", + "BloodColor", + "Use", + "Blocked", + "GetDelay", + "Classify", + "IsTriggered", + "GetToggleState", + "SetToggleState", + "Respawn", + "TraceAttack" +}; + +enum CEMemberType { + CEMemberType_Invalid = -1, + CEMemberType_Cell, + CEMemberType_Float, + CEMemberType_String, + CEMemberType_Vector +}; + +enum { + CE_MP_Invalid = -1, + CE_MP_Cell, + CE_MP_String, + CE_MP_Array, + CE_MP_Vector +}; From ba61323d72e4c53ae3bd61a081ced165e8fd4793 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 23 Apr 2024 11:23:40 +0200 Subject: [PATCH 209/231] update future readme --- api/custom-entities/future/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/api/custom-entities/future/README.md b/api/custom-entities/future/README.md index 614c033..3fac827 100644 --- a/api/custom-entities/future/README.md +++ b/api/custom-entities/future/README.md @@ -47,7 +47,9 @@ public plugin_precache() { In the implementation of the `Allocate` method, the `CE_CallBaseMethod()` call allows us to invoke the base `Allocate` method of the `CEPreset_Item` preset class, allowing it to handle its own allocation logic before executing custom logic. Make sure to include this call in every implemented or overridden method unless you need to fully rewrite the implementation. -> Caution: When calling CE_CallBaseMethod, you need to pass all method arguments to ensure the base method receives the necessary context for its operations. +> **Caution:** The `Allocate` method is called during entity initialization. Modifying entity variables or invoking engine functions on the entity within this method may lead to unexpected results. Use this method only for initializing custom entity members! + +> **Caution:** When calling `CE_CallBaseMethod`, you need to pass all method arguments to ensure the base method receives the necessary context for its operations. Natives like `CE_SetMemberString` and `CE_SetMemberVec` are used to set members/properties for the entity instance. Constants such as `CE_MEMBER_*` are used to specify the property names that will set the model each time the entity is spawned or its variables are reset. For example, `CE_MEMBER_MODEL` sets `pev->model` of the entity every respawn. Similarly, `CE_MEMBER_MINS` and `CE_MEMBER_MAXS` specify the entity's bounding box. From 7e063dfac2b1f1922cdf5af3dee2918851c82a79 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 23 Apr 2024 11:29:12 +0200 Subject: [PATCH 210/231] update future doc --- api/custom-entities/future/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/api/custom-entities/future/README.md b/api/custom-entities/future/README.md index 3fac827..80694ab 100644 --- a/api/custom-entities/future/README.md +++ b/api/custom-entities/future/README.md @@ -209,6 +209,7 @@ You can also create the entity using the `CE_Create` native function and then ca new pKey = CE_Create("item_key", vecOrigin); if (pKey != FM_NULLENT) { + CE_SetMember(pKey, "iType", 3); dllfunc(DLLFunc_Spawn, pKey); } ``` \ No newline at end of file From badace8b55ef33e8bb9f0ba0b65f694f878768c9 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 23 Apr 2024 12:02:27 +0200 Subject: [PATCH 211/231] add doc for custom methods --- api/custom-entities/future/README.md | 71 +++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/api/custom-entities/future/README.md b/api/custom-entities/future/README.md index 80694ab..6a8e61a 100644 --- a/api/custom-entities/future/README.md +++ b/api/custom-entities/future/README.md @@ -187,6 +187,59 @@ Here, we added `KeyType` constants to represent different key types and implemen You may have noticed the constant `m_iType`, which is a string constant used for the custom member we work with using `CE_GetMember` and `CE_SetMember` natives. We also use `CE_RegisterClassKeyMemberBinding` to bind this member to the entity key `type`, allowing us to change the key type by setting the `type` key-value on the map. +### 📦 Custom Methods + +This implementation has a small issue: changing the `iType` member does not immediately update the entity's color until the entity respawns. To resolve this, let's add `SetType` and `UpdateColor` methods to change the type correctly and update the entity's color in real time: + +```cpp +#define SetType "SetType" +#define UpdateColor "UpdateColor" + +public plugin_precache() { + precache_model(g_szModel); + + CE_RegisterClass(ENTITY_CLASSNAME, CEPreset_Item); + + CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_Allocate, "@KeyItem_Allocate"); + CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_Spawn, "@KeyItem_Spawn"); + CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_CanPickup, "@KeyItem_CanPickup"); + CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_Pickup, "@KeyItem_Pickup"); + + // Registering new class methods + CE_RegisterClassMethod(ENTITY_CLASSNAME, SetType, "@KeyItem_SetType", CE_MP_Cell); + CE_RegisterClassMethod(ENTITY_CLASSNAME, UpdateColor, "@KeyItem_UpdateColor"); + + CE_RegisterClassKeyMemberBinding(ENTITY_CLASSNAME, "type", m_iType, CEMemberType_Cell); +} + +@KeyItem_Allocate(const this) { ... } + +@KeyItem_Spawn(const this) { + CE_CallBaseMethod(); + + // Calling UpdateColor method to set color + CE_CallMethod(this, UpdateColor); +} + +@KeyItem_CanPickup(const this, const pPlayer) { ... } +@KeyItem_Pickup(const this, const pPlayer) { ... } + +@KeyItem_SetType(const this, const iType) { + CE_SetMember(this, m_iType, iType); + + // Calling UpdateColor method to apply color change + CE_CallMethod(this, UpdateColor); +} + +@KeyItem_UpdateColor(const this) { + new KeyType:iType = CE_GetMember(this, m_iType); + + set_pev(this, pev_renderfx, kRenderFxGlowShell); + set_pev(this, pev_renderamt, 1.0); + set_pev(this, pev_rendercolor, KEY_COLORS_F[iType]); +} +``` + ### 🕵️‍♂️ Testing and Debugging > What if we don't have a map yet to test it? Is there another way to spawn our entity? @@ -195,12 +248,21 @@ Yes, there are a few ways to do it! #### Spawning an Entity Using the Console -You can spawn an entity using the console command `ce_spawn [...members]`. The `` parameter is the `classname` of the registered entity, and `[...members]` are optional parameters to set before spawning. Let's spawn a `"Green"` key: +You can spawn an entity using the console command `ce_spawn [...members]`. The `` parameter is the `classname` of the registered entity, and `[...members]` are optional parameters to set members before spawning. Let's spawn a `"Green"` key: ```cpp ce_spawn "item_key" "iType" 3 ``` +You can also invoke methods using the console command `ce_call_method [...params]`. In this command, the `` parameter is the entity index, `` is the entity class, `` is the method to call, and `[...params]` are optional parameters for method arguments. For example, to use the `SetType` method to change the key type to `Blue`, use: + +```cpp +ce_call_method "item_key" "SetType" 3 +``` + +Replace `` with the desired entity index, which you can obtain from the console message after executing `ce_spawn` or by running `ce_list` to get a list of custom entities. + + ### Spawning an Entity with Code You can also create the entity using the `CE_Create` native function and then call the engine `Spawn` function on it: @@ -212,4 +274,9 @@ if (pKey != FM_NULLENT) { CE_SetMember(pKey, "iType", 3); dllfunc(DLLFunc_Spawn, pKey); } -``` \ No newline at end of file +``` + +You can also call the `SetType` method to change the key type to `Blue`: +```cpp +CE_CallMethod(pKey, "SetType", 3); +``` From 72a3053e8b369d8f1abb1c73fc821b48b6def210 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 23 Apr 2024 12:14:21 +0200 Subject: [PATCH 212/231] update cautions --- api/custom-entities/future/README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/api/custom-entities/future/README.md b/api/custom-entities/future/README.md index 6a8e61a..14cba19 100644 --- a/api/custom-entities/future/README.md +++ b/api/custom-entities/future/README.md @@ -47,9 +47,13 @@ public plugin_precache() { In the implementation of the `Allocate` method, the `CE_CallBaseMethod()` call allows us to invoke the base `Allocate` method of the `CEPreset_Item` preset class, allowing it to handle its own allocation logic before executing custom logic. Make sure to include this call in every implemented or overridden method unless you need to fully rewrite the implementation. -> **Caution:** The `Allocate` method is called during entity initialization. Modifying entity variables or invoking engine functions on the entity within this method may lead to unexpected results. Use this method only for initializing custom entity members! +>[!CAUTION] +> +> The `Allocate` method is called during entity initialization. Modifying entity variables or invoking engine functions on the entity within this method may lead to unexpected results. Use this method only for initializing custom entity members! -> **Caution:** When calling `CE_CallBaseMethod`, you need to pass all method arguments to ensure the base method receives the necessary context for its operations. +>[!CAUTION] +> +> When calling `CE_CallBaseMethod`, you need to pass all method arguments to ensure the base method receives the necessary context for its operations. Natives like `CE_SetMemberString` and `CE_SetMemberVec` are used to set members/properties for the entity instance. Constants such as `CE_MEMBER_*` are used to specify the property names that will set the model each time the entity is spawned or its variables are reset. For example, `CE_MEMBER_MODEL` sets `pev->model` of the entity every respawn. Similarly, `CE_MEMBER_MINS` and `CE_MEMBER_MAXS` specify the entity's bounding box. From d10d908d0b1041ae8a32fffbe775b205d513fc83 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 23 Apr 2024 12:17:06 +0200 Subject: [PATCH 213/231] fix title --- api/custom-entities/future/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/custom-entities/future/README.md b/api/custom-entities/future/README.md index 14cba19..768fc8d 100644 --- a/api/custom-entities/future/README.md +++ b/api/custom-entities/future/README.md @@ -267,7 +267,7 @@ ce_call_method "item_key" "SetType" 3 Replace `` with the desired entity index, which you can obtain from the console message after executing `ce_spawn` or by running `ce_list` to get a list of custom entities. -### Spawning an Entity with Code +#### Spawning an Entity with Code You can also create the entity using the `CE_Create` native function and then call the engine `Spawn` function on it: From 153d60187ada8880717682837cfaa39c648a97ad Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 23 Apr 2024 12:18:14 +0200 Subject: [PATCH 214/231] update syntax highlight --- api/custom-entities/future/README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/api/custom-entities/future/README.md b/api/custom-entities/future/README.md index 768fc8d..71ec568 100644 --- a/api/custom-entities/future/README.md +++ b/api/custom-entities/future/README.md @@ -10,7 +10,7 @@ To implement a custom entity, the first thing you need to do is register a new e Let's create a `key` item entity: -```cpp +```pawn #include #include #include @@ -26,7 +26,7 @@ In this example, the `CEPreset_Item` preset class is used to implement the item. The entity currently lacks a model and size, so let's provide them by implementing the `Allocate` method for the entity to supply all the necessary members: -```cpp +```pawn public plugin_precache() { // Precaching key model precache_model("models/w_security.mdl"); @@ -63,7 +63,7 @@ Our `item_key` entity is functional, allowing you to place the entity with the c However, we still need to add some logic to the entity, as it currently does not perform any specific actions. Let's implement the `Pickup` and `CanPickup` methods in the same way we implemented `Allocate`: -```cpp +```pawn new g_rgbPlayerHasKey[MAX_PLAYERS + 1]; public plugin_precache() { @@ -101,7 +101,7 @@ This simple implementation will display the text `"You have found a key!"` to th If you want to implement different key types, you can use custom members. Let's update our logic and improve the code: -```cpp +```pawn #include #include @@ -195,7 +195,7 @@ You may have noticed the constant `m_iType`, which is a string constant used for This implementation has a small issue: changing the `iType` member does not immediately update the entity's color until the entity respawns. To resolve this, let's add `SetType` and `UpdateColor` methods to change the type correctly and update the entity's color in real time: -```cpp +```pawn #define SetType "SetType" #define UpdateColor "UpdateColor" @@ -254,13 +254,13 @@ Yes, there are a few ways to do it! You can spawn an entity using the console command `ce_spawn [...members]`. The `` parameter is the `classname` of the registered entity, and `[...members]` are optional parameters to set members before spawning. Let's spawn a `"Green"` key: -```cpp +```bash ce_spawn "item_key" "iType" 3 ``` You can also invoke methods using the console command `ce_call_method [...params]`. In this command, the `` parameter is the entity index, `` is the entity class, `` is the method to call, and `[...params]` are optional parameters for method arguments. For example, to use the `SetType` method to change the key type to `Blue`, use: -```cpp +```bash ce_call_method "item_key" "SetType" 3 ``` @@ -271,7 +271,7 @@ Replace `` with the desired entity index, which you can obtain from the You can also create the entity using the `CE_Create` native function and then call the engine `Spawn` function on it: -```cpp +```pawn new pKey = CE_Create("item_key", vecOrigin); if (pKey != FM_NULLENT) { @@ -281,6 +281,6 @@ if (pKey != FM_NULLENT) { ``` You can also call the `SetType` method to change the key type to `Blue`: -```cpp +```pawn CE_CallMethod(pKey, "SetType", 3); ``` From b5152617ef2cc0719bb439d7072ab3bc8eb29ad1 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 23 Apr 2024 12:21:10 +0200 Subject: [PATCH 215/231] update methods example --- api/custom-entities/future/README.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/api/custom-entities/future/README.md b/api/custom-entities/future/README.md index 71ec568..f83ec1f 100644 --- a/api/custom-entities/future/README.md +++ b/api/custom-entities/future/README.md @@ -200,20 +200,13 @@ This implementation has a small issue: changing the `iType` member does not imme #define UpdateColor "UpdateColor" public plugin_precache() { - precache_model(g_szModel); - - CE_RegisterClass(ENTITY_CLASSNAME, CEPreset_Item); - - CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_Allocate, "@KeyItem_Allocate"); - CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_Spawn, "@KeyItem_Spawn"); - CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_CanPickup, "@KeyItem_CanPickup"); - CE_ImplementClassMethod(ENTITY_CLASSNAME, CEMethod_Pickup, "@KeyItem_Pickup"); + ... // Registering new class methods CE_RegisterClassMethod(ENTITY_CLASSNAME, SetType, "@KeyItem_SetType", CE_MP_Cell); CE_RegisterClassMethod(ENTITY_CLASSNAME, UpdateColor, "@KeyItem_UpdateColor"); - CE_RegisterClassKeyMemberBinding(ENTITY_CLASSNAME, "type", m_iType, CEMemberType_Cell); + ... } @KeyItem_Allocate(const this) { ... } From cf38cca80c8f950d6282012a5f7cf48cacd43a85 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 23 Apr 2024 12:25:21 +0200 Subject: [PATCH 216/231] update file names for future --- .../{api_custom_entities.sma => api_custom_entities_future.sma} | 0 .../{api_custom_entities.inc => api_custom_entities_future.inc} | 0 ...om_entities_const.inc => api_custom_entities_future_const.inc} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename api/custom-entities/future/{api_custom_entities.sma => api_custom_entities_future.sma} (100%) rename api/custom-entities/future/include/{api_custom_entities.inc => api_custom_entities_future.inc} (100%) rename api/custom-entities/future/include/{api_custom_entities_const.inc => api_custom_entities_future_const.inc} (100%) diff --git a/api/custom-entities/future/api_custom_entities.sma b/api/custom-entities/future/api_custom_entities_future.sma similarity index 100% rename from api/custom-entities/future/api_custom_entities.sma rename to api/custom-entities/future/api_custom_entities_future.sma diff --git a/api/custom-entities/future/include/api_custom_entities.inc b/api/custom-entities/future/include/api_custom_entities_future.inc similarity index 100% rename from api/custom-entities/future/include/api_custom_entities.inc rename to api/custom-entities/future/include/api_custom_entities_future.inc diff --git a/api/custom-entities/future/include/api_custom_entities_const.inc b/api/custom-entities/future/include/api_custom_entities_future_const.inc similarity index 100% rename from api/custom-entities/future/include/api_custom_entities_const.inc rename to api/custom-entities/future/include/api_custom_entities_future_const.inc From 9e487deed0d2793e59be5e0d7b09d5d691f99159 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 23 Apr 2024 19:14:08 +0200 Subject: [PATCH 217/231] update util --- util/cellclass.inc | 375 ++++++++++++++++++++++++++------------------- util/stack.inc | 14 ++ 2 files changed, 232 insertions(+), 157 deletions(-) create mode 100644 util/stack.inc diff --git a/util/cellclass.inc b/util/cellclass.inc index d5df55f..7f3547c 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -31,11 +31,13 @@ // Error messages +#define __cls_err_NotImplementedMethod "Method ^"%s^" is not implemented!" +#define __cls_err_AddMethodWithoutFunctionPointer "Cannot add unimplemented method ^"%s^"!" #define __cls_err_MethodAlreadyRegistered "Method ^"%s^" is already registered for the class!" #define __cls_err_VMethodArgumentsMismatch "Arguments mismatch in the overridden virtual method ^"%s^"!" #define __cls_err_ClassIdNotFound "Class with id %d is not registered!" #define __cls_err_MethodNotFound "Method ^"%s^" is not registered for the instance (%d)!" -#define __cls_err_CallMethodOutsideContext "Calling a base method is not allowed outside of the execution context!" +#define __cls_err_CallMethodOutsideContext "Calling a method is not allowed outside of the execution context!" #define __cls_err_ClassHasNoBaseClass "Cannot call base method of class without base class!" #define __cls_err_MethodNotFoundInBaseClass "Cannot find method ^"%s^" in base classes!" #define __cls_err_MaxCallStackSizeExceeded "Maximum call stack size exceeded!" @@ -59,18 +61,22 @@ enum _:__cls_ParamTypes { CMP_Cell, CMP_String, CMP_Array, + CMP_CellRef, CMP_StringRef, CMP_ArrayRef, - CMP_ParamsCellArray + CMP_ParamsCellArray, + CMP_Variadic }; stock const __cls_ParamTypeNames[__cls_ParamTypes][64] = { "Cell", "String", "Array", + "CellRef", "StringRef", "ArrayRef", - "ParamsCellArray" + "ParamsCellArray", + "..." }; // Internal structures @@ -100,6 +106,7 @@ enum __cls_MethodData { __cls_MethodData_Name[CLASS_METHOD_MAX_NAME_LENGTH], Class:__cls_MethodData_Class, __cls_MethodData_Function, + __cls_MethodData_VariadicParams, __cls_MethodType:__cls_MethodData_Type, __cls_MethodData_ParamTypesNum, __cls_MethodData_ParamTypes[__cls_MethodParamOffset(CLASS_METHOD_MAX_ARGUMENTS + 1)] @@ -185,10 +192,37 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const Function: return; } + if (func == Invalid_FunctionPointer && !bVirtual) { + set_fail_state(__cls_err_AddMethodWithoutFunctionPointer, szMethod); + return; + } + new Array:irgArgs = ArrayCreate(); + new bool:bVariadicParams = false; + + // Some arguments are used to decribe type properties, so we need to skip type check for these arguments + new bool:bSkipTypeCheck = false; for (new iArg = iArgOffset; iArg < iArgc; ++iArg) { - ArrayPushCell(irgArgs, getarg(iArg)); + new any:arg = getarg(iArg); + + + if (!bSkipTypeCheck) { + switch (arg) { + case CMP_Array, CMP_ArrayRef, CMP_ParamsCellArray: { + bSkipTypeCheck = true; + } + case CMP_Variadic: { + iArgc = iArg; + bVariadicParams = true; + break; + } + } + } else { + bSkipTypeCheck = false; + } + + ArrayPushCell(irgArgs, arg); } new Array:irgParamTypes; irgParamTypes = ArrayCreate(_:__cls_MethodParamData, iArgc - iArgOffset); @@ -208,7 +242,7 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const Function: } } - new Struct:sMethod = __cls_CreateMethod(class, szMethod, func, irgParamTypes, bVirtual ? __cls_MethodType_Virtual : __cls_MethodType_Method); + new Struct:sMethod = __cls_CreateMethod(class, szMethod, func, irgParamTypes, bVirtual ? __cls_MethodType_Virtual : __cls_MethodType_Method, bVariadicParams); ArrayDestroy(irgParamTypes); @@ -224,6 +258,15 @@ stock Function:ClassGetMethodFunction(const &Class:class, const szMethod[]) { return StructGetCell(sMethod, __cls_MethodData_Function); } +stock Struct:ClassGetMethodPointer(const &Class:class, const szMethod[]) { + static Trie:itMethods; itMethods = StructGetCell(Struct:class, __cls_Data_Methods); + + static Struct:sMethod; + if (!TrieGetCell(itMethods, szMethod, sMethod)) return Invalid_Struct; + + return sMethod; +} + stock ClassAddSetter(const &Class:class, const szMember[], const Function:func, iType, iSize = 1) { __cls_AddMemberAccessorMethod(class, szMember, func, __cls_MethodType_Setter, iType, iSize); } @@ -339,59 +382,74 @@ stock Class:ClassInstanceGetCurrentClass() { return __cls_callstack_class[__cls_callstack_iLastItem]; } -stock ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], any:...) { - __cls_CallMethodBegin(pInstance, szMethod, __cls_MethodType_Method); +#define __cls_READ_METHOD_CALL_PARAMS(%1) {\ + static iParamsNum; iParamsNum = min(__cls_call_iParamTypesNum, numargs() - %1);\ +\ + for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) {\ + static iArgument; iArgument = %1 + iMethodParam;\ + static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Type);\ +\ + switch (iType) {\ + case CMP_Cell, CMP_CellRef: {\ + __cls_rgBuffer[__cls_call_iBufferPos] = any:getarg(iArgument);\ +\ + switch (iType) {\ + case CMP_CellRef: ClassInstanceCallMethodPushParamCellRef(__cls_rgBuffer[__cls_call_iBufferPos]);\ + case CMP_Cell: ClassInstanceCallMethodPushParamCell(__cls_rgBuffer[__cls_call_iBufferPos]);\ + }\ +\ + __cls_call_iBufferPos++;\ + }\ + case CMP_String, CMP_StringRef: {\ + static iMaxLen; iMaxLen = charsmax(__cls_rgBuffer) - __cls_call_iBufferPos;\ +\ + static iLen;\ + for (iLen = 0; iLen < iMaxLen && __cls_rgBuffer[__cls_call_iBufferPos - 1] != '^0'; ++iLen)\ + __cls_rgBuffer[__cls_call_iBufferPos++] = getarg(iArgument, iLen);\ +\ + switch (iType) {\ + case CMP_StringRef: ClassInstanceCallMethodPushParamStringRef(__cls_rgBuffer[__cls_call_iBufferPos], iLen);\ + case CMP_String: ClassInstanceCallMethodPushParamString(__cls_rgBuffer[__cls_call_iBufferPos]);\ + }\ + }\ + case CMP_Array, CMP_ArrayRef: {\ + static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Size);\ +\ + static i;\ + for (i = 0; i < iSize; ++i)\ + __cls_rgBuffer[__cls_call_iBufferPos + i] = any:getarg(iArgument, i);\ +\ + switch (iType) {\ + case CMP_ArrayRef: ClassInstanceCallMethodPushParamArrayRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize);\ + case CMP_Array: ClassInstanceCallMethodPushParamArray(__cls_rgBuffer[__cls_call_iBufferPos], iSize);\ + }\ +\ + __cls_call_iBufferPos += iSize;\ + }\ + }\ + }\ +} + +stock any:ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], any:...) { + __cls_CallMethodBegin(pInstance, szMethod, _, __cls_MethodType_Method); + + __cls_READ_METHOD_CALL_PARAMS(2) - for (new iMethodParam = 0; iMethodParam < __cls_call_iParamTypesNum; ++iMethodParam) { - static iParam; iParam = 2 + iMethodParam; - static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Type); - static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Size); - static bool:bUseDefault; bUseDefault = iParam > numargs(); + return ClassInstanceCallMethodEnd(); +} - switch (iType) { - case CMP_Cell: { - ClassInstanceCallMethodPushParamCell(bUseDefault ? __cls_DefaultValue_Cell : any:getarg(iParam)); - } - case CMP_String, CMP_StringRef: { - static iLen; iLen = 0; - - if (bUseDefault) { - copy(__cls_rgBuffer[__cls_call_iBufferPos], charsmax(__cls_rgBuffer) - __cls_call_iBufferPos, __cls_DefaultValue_String); - } else { - for (new i = 0; i < charsmax(__cls_rgBuffer) - __cls_call_iBufferPos; ++i) { - __cls_rgBuffer[__cls_call_iBufferPos + i] = getarg(iParam, i); - if (__cls_rgBuffer[__cls_call_iBufferPos + i] == '^0') break; - iLen++; - } - } +stock ClassInstanceCallMethodOf(const &ClassInstance:pInstance, const szMethod[], const &Class:class = Invalid_Class, any:...) { + __cls_CallMethodBegin(pInstance, szMethod, class, __cls_MethodType_Method); - if (iType == CMP_StringRef) { - ClassInstanceCallMethodPushParamStringRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize); - } else { - ClassInstanceCallMethodPushParamString(__cls_rgBuffer[__cls_call_iBufferPos]); - } + __cls_READ_METHOD_CALL_PARAMS(3) - __cls_call_iBufferPos += iLen; - } - case CMP_Array, CMP_ArrayRef: { - if (bUseDefault) { - arrayset(__cls_rgBuffer[__cls_call_iBufferPos], __cls_DefaultValue_Float, iSize); - } else { - for (new i = 0; i < iSize; ++i) { - __cls_rgBuffer[__cls_call_iBufferPos + i] = getarg(iParam, i); - } - } + return ClassInstanceCallMethodEnd(); +} - if (iType == CMP_ArrayRef) { - ClassInstanceCallMethodPushParamArrayRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize); - } else { - ClassInstanceCallMethodPushParamArray(__cls_rgBuffer[__cls_call_iBufferPos], iSize); - } +stock ClassInstanceCallMethodByPointer(const &ClassInstance:pInstance, const &Struct:sMethod, any:...) { + __cls_CallMethodByPointerBegin(pInstance, sMethod); - __cls_call_iBufferPos += iSize; - } - } - } + __cls_READ_METHOD_CALL_PARAMS(2) return ClassInstanceCallMethodEnd(); } @@ -399,62 +457,13 @@ stock ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], stock ClassInstanceCallBaseMethod(any:...) { ClassInstanceCallMethodBeginBase(); - for (new iMethodParam = 0; iMethodParam < __cls_call_iParamTypesNum; ++iMethodParam) { - static iParam; iParam = 0 + iMethodParam; - static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Type); - static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Size); - static bool:bUseDefault; bUseDefault = iParam > numargs(); - - switch (iType) { - case CMP_Cell: { - ClassInstanceCallMethodPushParamCell(bUseDefault ? __cls_DefaultValue_Cell : any:getarg(iParam)); - } - case CMP_String, CMP_StringRef: { - static iLen; iLen = 0; - - if (bUseDefault) { - copy(__cls_rgBuffer[__cls_call_iBufferPos], charsmax(__cls_rgBuffer) - __cls_call_iBufferPos, __cls_DefaultValue_String); - } else { - for (new i = 0; i < charsmax(__cls_rgBuffer) - __cls_call_iBufferPos; ++i) { - __cls_rgBuffer[__cls_call_iBufferPos + i] = getarg(iParam, i); - if (__cls_rgBuffer[__cls_call_iBufferPos + i] == '^0') break; - iLen++; - } - } - - if (iType == CMP_StringRef) { - ClassInstanceCallMethodPushParamStringRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize); - } else { - ClassInstanceCallMethodPushParamString(__cls_rgBuffer[__cls_call_iBufferPos]); - } - - __cls_call_iBufferPos += iLen; - } - case CMP_Array, CMP_ArrayRef: { - if (bUseDefault) { - arrayset(__cls_rgBuffer[__cls_call_iBufferPos], __cls_DefaultValue_Float, iSize); - } else { - for (new i = 0; i < iSize; ++i) { - __cls_rgBuffer[__cls_call_iBufferPos + i] = getarg(iParam, i); - } - } - - if (iType == CMP_ArrayRef) { - ClassInstanceCallMethodPushParamArrayRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize); - } else { - ClassInstanceCallMethodPushParamArray(__cls_rgBuffer[__cls_call_iBufferPos], iSize); - } - - __cls_call_iBufferPos += iSize; - } - } - } + __cls_READ_METHOD_CALL_PARAMS(0) return ClassInstanceCallMethodEnd(); } -stock ClassInstanceCallMethodBegin(const &ClassInstance:pInstance, const szMethod[]) { - __cls_CallMethodBegin(pInstance, szMethod, __cls_MethodType_Method); +stock ClassInstanceCallMethodBegin(const &ClassInstance:pInstance, const szMethod[], const &Class:class = Invalid_Class) { + __cls_CallMethodBegin(pInstance, szMethod, class, __cls_MethodType_Method); } stock ClassInstanceCallMethodBeginBase(any:...) { @@ -474,7 +483,7 @@ stock ClassInstanceCallMethodBeginBase(any:...) { __cls_InitMethodCall(__cls_callstack_pInstance[__cls_callstack_iLastItem], szMethod, class, iMethodType); - static Function:func; func = StructGetCell(__cls_call_sMethod, __cls_MethodData_Function); + static Function:func; func = __cls_GetCallMethodFunctionPointer(); if (callfunc_begin_p(func) != 1) { static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethod, charsmax(szMethod)); @@ -489,6 +498,11 @@ stock any:ClassInstanceCallMethodEnd() { return 0; } + while (__cls_call_iParamsNum < __cls_call_iParamTypesNum) { + callfunc_push_int(0); + __cls_call_iParamsNum++; + } + static any:result; result = __cls_ExecuteMethod(); if (!__cls_callstack_size) { @@ -498,70 +512,74 @@ stock any:ClassInstanceCallMethodEnd() { return result; } -stock __cls_ValidateParamPush(iParam, iType) { - if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) { - set_fail_state(__cls_err_NumberOfParametersExceeded); - return 0; +stock __cls_ValidateParamPush(iType) { + if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) { + if (StructGetCell(__cls_call_sMethod, __cls_MethodData_VariadicParams)) { + return 1; } - static iExpectedType; iExpectedType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iParam) + _:__cls_MethodParamData_Type); + set_fail_state(__cls_err_NumberOfParametersExceeded); + return 0; + } + + static iExpectedType; iExpectedType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(__cls_call_iParamsNum) + _:__cls_MethodParamData_Type); - if (iType != iExpectedType) { - static szMethodName[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethodName, charsmax(szMethodName)); - set_fail_state(__cls_err_InvalidParamType, iParam, szMethodName, __cls_ParamTypeNames[iType], __cls_ParamTypeNames[iExpectedType]); - return 0; - } + if (iType != iExpectedType) { + static szMethodName[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethodName, charsmax(szMethodName)); + set_fail_state(__cls_err_InvalidParamType, __cls_call_iParamsNum, szMethodName, __cls_ParamTypeNames[iExpectedType], __cls_ParamTypeNames[iType]); + return 0; + } - return 1; + return 1; } stock ClassInstanceCallMethodPushParamCell(any:value) { - if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_Cell)) return; + if (!__cls_ValidateParamPush(CMP_Cell)) return; - callfunc_push_int(value); + callfunc_push_int(value); - __cls_call_iParamsNum++; + __cls_call_iParamsNum++; } stock ClassInstanceCallMethodPushParamCellRef(&any:value) { - if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_Cell)) return; + if (!__cls_ValidateParamPush(CMP_CellRef)) return; - callfunc_push_intrf(value); + callfunc_push_intrf(value); - __cls_call_iParamsNum++; + __cls_call_iParamsNum++; } stock ClassInstanceCallMethodPushParamString(const szValue[]) { - if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_String)) return; + if (!__cls_ValidateParamPush(CMP_String)) return; - callfunc_push_str(szValue, false); + callfunc_push_str(szValue, false); - __cls_call_iParamsNum++; + __cls_call_iParamsNum++; } -stock ClassInstanceCallMethodPushParamArray(const any:rgValue[], iSize) { - if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_Array)) return; +stock ClassInstanceCallMethodPushParamStringRef(szValue[], iLen) { + if (!__cls_ValidateParamPush(CMP_StringRef)) return; - callfunc_push_array(rgValue, iSize, false); + arrayset(szValue, 1, iLen); + callfunc_push_str(szValue, true); - __cls_call_iParamsNum++; + __cls_call_iParamsNum++; } -stock ClassInstanceCallMethodPushParamStringRef(szValue[], iLen) { - if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_StringRef)) return; +stock ClassInstanceCallMethodPushParamArray(const any:rgValue[], iSize) { + if (!__cls_ValidateParamPush(CMP_Array)) return; - arrayset(szValue, 1, iLen); - callfunc_push_str(szValue, true); + callfunc_push_array(rgValue, iSize, false); - __cls_call_iParamsNum++; + __cls_call_iParamsNum++; } stock ClassInstanceCallMethodPushParamArrayRef(rgValue[], iSize) { - if (!__cls_ValidateParamPush(__cls_call_iParamsNum, CMP_ArrayRef)) return; + if (!__cls_ValidateParamPush(CMP_ArrayRef)) return; - callfunc_push_array(rgValue, iSize, true); + callfunc_push_array(rgValue, iSize, true); - __cls_call_iParamsNum++; + __cls_call_iParamsNum++; } stock ClassInstanceCallMethodPushNativeParam(iParam) { @@ -571,9 +589,15 @@ stock ClassInstanceCallMethodPushNativeParam(iParam) { static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(__cls_call_iParamsNum) + _:__cls_MethodParamData_Size); switch (iType) { - case CMP_Cell: { - // log_amx("Param%d: %d %f", iParam, any:get_param_byref(iParam), any:get_param_byref(iParam)); - callfunc_push_int(any:get_param_byref(iParam)); + case CMP_Cell, CMP_CellRef: { + __cls_rgBuffer[__cls_call_iBufferPos] = any:get_param_byref(iParam); + + switch (iType) { + case CMP_CellRef: callfunc_push_intrf(__cls_rgBuffer[__cls_call_iBufferPos]); + case CMP_Cell: callfunc_push_int(__cls_rgBuffer[__cls_call_iBufferPos]); + } + + __cls_call_iBufferPos++; } case CMP_Array, CMP_ArrayRef: { get_array(iParam, __cls_rgBuffer[__cls_call_iBufferPos], iSize); @@ -685,10 +709,16 @@ stock ClassInstanceSetMemberArray(const &ClassInstance:pInstance, const szMember } stock bool:ClassInstanceIsInstanceOf(const &ClassInstance:pInstance, const &Class:class) { - new Class:sCurrentClass = __cls_GetInstanceClass(pInstance); + static Class:cInstance; cInstance = __cls_GetInstanceClass(pInstance); + + return ClassIsChildOf(cInstance, class); +} + +stock bool:ClassIsChildOf(const &Class:class, const &Class:cOther) { + static Class:sCurrentClass; sCurrentClass = class; do { - if (sCurrentClass == class) return true; + if (sCurrentClass == cOther) return true; sCurrentClass = StructGetCell(Struct:sCurrentClass, __cls_Data_Base); } while (sCurrentClass != Invalid_Class); @@ -735,7 +765,7 @@ stock Trie:__cls_GetInstanceSettersTrie(const &ClassInstance:pInstance) { return __cls_cache_InstanceSetters[__cls_InstanceCache_Value]; } -stock __cls_ParseParamTypes(Array:irgArgs, &Array:irgParamTypes) { +stock __cls_ParseParamTypes(&Array:irgArgs, &Array:irgParamTypes) { new iArgc = ArraySize(irgArgs); new rgParam[__cls_MethodParamData]; @@ -746,14 +776,12 @@ stock __cls_ParseParamTypes(Array:irgArgs, &Array:irgParamTypes) { switch (rgParam[__cls_MethodParamData_Type]) { case CMP_Array: { - rgParam[__cls_MethodParamData_Size] = ArrayGetCell(irgArgs, iArg + 1); - iArg++; + rgParam[__cls_MethodParamData_Size] = ArrayGetCell(irgArgs, ++iArg); } case CMP_ParamsCellArray: { rgParam[__cls_MethodParamData_Size] = 0; - new Array:irgExtraParamTypes = ArrayGetCell(irgArgs, iArg + 1); - iArg++; + new Array:irgExtraParamTypes = ArrayGetCell(irgArgs, ++iArg); __cls_ParseParamTypes(irgExtraParamTypes, irgParamTypes); } } @@ -777,6 +805,14 @@ stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], con } } +stock __cls_InitMethodCallByPointer(const &ClassInstance:pInstance, const &Struct:sMethod) { + __cls_call_class = StructGetCell(sMethod, __cls_MethodData_Class); + __cls_call_pInstance = pInstance; + __cls_call_sMethod = sMethod; + __cls_call_iParamsNum = 0; + __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); +} + stock __cls_FreeMethodCall() { __cls_call_class = Invalid_Class; __cls_call_pInstance = Invalid_ClassInstance; @@ -786,8 +822,19 @@ stock __cls_FreeMethodCall() { __cls_call_iBufferPos = 0; } -stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], __cls_MethodType:iMethodType = __cls_MethodType_Method) { - __cls_InitMethodCall(pInstance, szMethod, _, iMethodType); +stock Function:__cls_GetCallMethodFunctionPointer() { + static Function:func; func = StructGetCell(__cls_call_sMethod, __cls_MethodData_Function); + + if (func == Invalid_FunctionPointer) { + static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethod, charsmax(szMethod)); + set_fail_state(__cls_err_NotImplementedMethod, szMethod); + } + + return func; +} + +stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], const &Class:class = Invalid_Class, __cls_MethodType:iMethodType = __cls_MethodType_Method) { + __cls_InitMethodCall(pInstance, szMethod, class, iMethodType); // Check for virtual method call // If we are already in the execution context and the method is virual then jump to top level context @@ -806,7 +853,19 @@ stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], __ return; } - static Function:func; func = StructGetCell(__cls_call_sMethod, __cls_MethodData_Function); + static Function:func; func = __cls_GetCallMethodFunctionPointer(); + + if (callfunc_begin_p(func) != 1) { + static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethod, charsmax(szMethod)); + set_fail_state(__cls_err_FailedToCallMethodFunction, szMethod); + return; + } +} + +stock __cls_CallMethodByPointerBegin(const &ClassInstance:pInstance, const &Struct:sMethod) { + __cls_InitMethodCallByPointer(pInstance, sMethod); + + static Function:func; func = __cls_GetCallMethodFunctionPointer(); if (callfunc_begin_p(func) != 1) { static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethod, charsmax(szMethod)); @@ -816,13 +875,13 @@ stock __cls_CallMethodBegin(const &ClassInstance:pInstance, const szMethod[], __ } stock any:__cls_CallCellGetter(const &ClassInstance:pInstance, const szMember[]) { - __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Getter); + __cls_CallMethodBegin(pInstance, szMember, _, __cls_MethodType_Getter); return ClassInstanceCallMethodEnd(); } stock any:__cls_CallArrayGetter(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iSize) { - __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Getter); + __cls_CallMethodBegin(pInstance, szMember, _, __cls_MethodType_Getter); ClassInstanceCallMethodPushParamArrayRef(rgOut, iSize); ClassInstanceCallMethodPushParamCell(iSize); @@ -831,7 +890,7 @@ stock any:__cls_CallArrayGetter(const &ClassInstance:pInstance, const szMember[] } stock any:__cls_CallStringGetter(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iLen) { - __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Getter); + __cls_CallMethodBegin(pInstance, szMember, _, __cls_MethodType_Getter); ClassInstanceCallMethodPushParamStringRef(rgOut, iLen); ClassInstanceCallMethodPushParamCell(iLen); @@ -840,7 +899,7 @@ stock any:__cls_CallStringGetter(const &ClassInstance:pInstance, const szMember[ } stock __cls_CallCellSetter(const &ClassInstance:pInstance, const szMember[], any:value) { - __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Setter); + __cls_CallMethodBegin(pInstance, szMember, _, __cls_MethodType_Setter); ClassInstanceCallMethodPushParamCell(value); @@ -848,7 +907,7 @@ stock __cls_CallCellSetter(const &ClassInstance:pInstance, const szMember[], any } stock __cls_CallArraySetter(const &ClassInstance:pInstance, const szMember[], const any:rgValue[], iSize) { - __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Setter); + __cls_CallMethodBegin(pInstance, szMember, _, __cls_MethodType_Setter); ClassInstanceCallMethodPushParamArray(rgValue, iSize); @@ -856,7 +915,7 @@ stock __cls_CallArraySetter(const &ClassInstance:pInstance, const szMember[], co } stock __cls_CallStringSetter(const &ClassInstance:pInstance, const szMember[], const szValue[]) { - __cls_CallMethodBegin(pInstance, szMember, __cls_MethodType_Setter); + __cls_CallMethodBegin(pInstance, szMember, _, __cls_MethodType_Setter); ClassInstanceCallMethodPushParamString(szValue); @@ -937,12 +996,13 @@ stock __cls_ResolveAccessorParamType(iType, __cls_MethodType:iMethodType) { return iType; } -stock Struct:__cls_CreateMethod(Class:class, const szName[], const Function:func, Array:irgParamTypes, __cls_MethodType:iType = __cls_MethodType_Method) { +stock Struct:__cls_CreateMethod(Class:class, const szName[], const Function:func, Array:irgParamTypes, __cls_MethodType:iType = __cls_MethodType_Method, bool:bVariadicParams = false) { new Struct:sMethod = StructCreate(__cls_MethodData); StructSetCell(sMethod, __cls_MethodData_Class, class); StructSetString(sMethod, __cls_MethodData_Name, szName); StructSetCell(sMethod, __cls_MethodData_Function, func); StructSetCell(sMethod, __cls_MethodData_Type, iType); + StructSetCell(sMethod, __cls_MethodData_VariadicParams, bVariadicParams); new iParamTypesNum = ArraySize(irgParamTypes); for (new iParam = 0; iParam < iParamTypesNum; ++iParam) { @@ -1015,6 +1075,7 @@ stock Struct:__cls_FindClassMethodInHierarchy(const &Class:class, const szMethod stock __cls_PushMethodCallToCallStack() { if (__cls_callstack_size >= CLASS_METHOD_CALL_STACK_SIZE) { set_fail_state(__cls_err_MaxCallStackSizeExceeded); + return; } __cls_callstack_pInstance[__cls_callstack_size] = any:__cls_call_pInstance; diff --git a/util/stack.inc b/util/stack.inc new file mode 100644 index 0000000..9e1ce05 --- /dev/null +++ b/util/stack.inc @@ -0,0 +1,14 @@ +#if defined _stack_included + #endinput +#endif +#define _stack_included + +#if !defined STACK_MAX_SIZE + #define STACK_MAX_SIZE 256 +#endif + +#define STACK_DEFINE(%1) static __stack_%1_size = 0; static __stack_%1_data[STACK_MAX_SIZE] +#define STACK_PUSH(%1,%2) __stack_%1_data[__stack_%1_size++] = %2 +#define STACK_POP(%1) __stack_%1_data[--__stack_%1_size] +#define STACK_READ(%1) __stack_%1_data[__stack_%1_size - 1] +#define STACK_PATCH(%1,%2) __stack_%1_data[__stack_%1_size - 1] = %2 From eadc489aae5642f6ea1ddf3aa05eff13f38faefa Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 24 Apr 2024 02:05:22 +0200 Subject: [PATCH 218/231] optimizations --- api/advanced-pushing/api_advanced_pushing.sma | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/api/advanced-pushing/api_advanced_pushing.sma b/api/advanced-pushing/api_advanced_pushing.sma index f4bbcce..190a602 100644 --- a/api/advanced-pushing/api_advanced_pushing.sma +++ b/api/advanced-pushing/api_advanced_pushing.sma @@ -28,31 +28,31 @@ public plugin_natives() { } public Native_Push(iPluginId, iArgc) { - new pEntity = get_param(1); - new Float:vecForce[3]; get_array_f(2, vecForce, sizeof(vecForce)); - new APS_Flags:iFlags = APS_Flags:get_param(3); + static pEntity; pEntity = get_param(1); + static Float:vecForce[3]; get_array_f(2, vecForce, sizeof(vecForce)); + static APS_Flags:iFlags; iFlags = APS_Flags:get_param(3); @Base_Push(pEntity, vecForce, iFlags); } public Native_PushFromOrigin(iPluginId, iArgc) { - new pEntity = get_param(1); - new Float:flForce = get_param_f(2); - new Float:vecPushOrigin[3]; get_array_f(3, vecPushOrigin, sizeof(vecPushOrigin)); - new APS_Flags:iFlags = APS_Flags:get_param(4); + static pEntity; pEntity = get_param(1); + static Float:flForce; flForce = get_param_f(2); + static Float:vecPushOrigin[3]; get_array_f(3, vecPushOrigin, sizeof(vecPushOrigin)); + static APS_Flags:iFlags; iFlags = APS_Flags:get_param(4); @Base_PushFromOrigin(pEntity, flForce, vecPushOrigin, iFlags); } public Native_PushFromBBox(iPluginId, iArgc) { - new pEntity = get_param(1); - new Float:flForce = get_param_f(2); - new Float:vecAbsMin[3]; get_array_f(3, vecAbsMin, sizeof(vecAbsMin)); - new Float:vecAbsMax[3]; get_array_f(4, vecAbsMax, sizeof(vecAbsMax)); - new Float:flMinDepthRatio = get_param_f(5); - new Float:flMaxDepthRatio = get_param_f(6); - new Float:flDepthInfluenceMin = get_param_f(7); - new Float:flDepthInfluenceMax = get_param_f(8); - new APS_Flags:iFlags = APS_Flags:get_param(9); + static pEntity; pEntity = get_param(1); + static Float:flForce; flForce = get_param_f(2); + static Float:vecAbsMin[3]; get_array_f(3, vecAbsMin, sizeof(vecAbsMin)); + static Float:vecAbsMax[3]; get_array_f(4, vecAbsMax, sizeof(vecAbsMax)); + static Float:flMinDepthRatio; flMinDepthRatio = get_param_f(5); + static Float:flMaxDepthRatio; flMaxDepthRatio = get_param_f(6); + static Float:flDepthInfluenceMin; flDepthInfluenceMin = get_param_f(7); + static Float:flDepthInfluenceMax; flDepthInfluenceMax = get_param_f(8); + static APS_Flags:iFlags; iFlags = APS_Flags:get_param(9); @Base_PushFromBBox(pEntity, flForce, vecAbsMin, vecAbsMax, flMinDepthRatio, flMaxDepthRatio, flDepthInfluenceMin, flDepthInfluenceMax, iFlags); } From c82c94a071de4a1f625e8ebdf18dc7c4832d5dc6 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 24 Apr 2024 09:53:04 +0200 Subject: [PATCH 219/231] fix allocate params + strict calls --- .../future/api_custom_entities_future.sma | 49 +++++++++++-------- .../include/api_custom_entities_future.inc | 4 +- util/cellclass.inc | 18 +++++-- 3 files changed, 45 insertions(+), 26 deletions(-) diff --git a/api/custom-entities/future/api_custom_entities_future.sma b/api/custom-entities/future/api_custom_entities_future.sma index e6f3aa7..c67cc62 100644 --- a/api/custom-entities/future/api_custom_entities_future.sma +++ b/api/custom-entities/future/api_custom_entities_future.sma @@ -67,7 +67,7 @@ STACK_DEFINE(METHOD_RETURN); STACK_DEFINE(PREHOOK_RETURN); new const g_rgEntityMethodParams[CEMethod][EntityMethodParams] = { - /* Allocate */ {2, {CMP_Cell, CMP_Cell}}, + /* Allocate */ {0}, /* Free */ {0}, /* KeyValue */ {2, {CMP_String, CMP_String}}, /* SpawnInit */ {0}, @@ -139,9 +139,11 @@ public plugin_natives() { register_native("CE_RegisterClass", "Native_Register"); register_native("CE_RegisterClassDerived", "Native_RegisterDerived"); register_native("CE_RegisterClassAlias", "Native_RegisterAlias"); + register_native("CE_GetClassHandler", "Native_GetHandler"); register_native("CE_RegisterClassKeyMemberBinding", "Native_RegisterKeyMemberBinding"); register_native("CE_RemoveClassKeyMemberBinding", "Native_RemoveMemberBinding"); + register_native("CE_RegisterClassMethod", "Native_RegisterMethod"); register_native("CE_ImplementClassMethod", "Native_ImplementMethod"); register_native("CE_RegisterClassVirtualMethod", "Native_RegisterVirtualMethod"); @@ -150,14 +152,18 @@ public plugin_natives() { register_native("CE_GetMethodReturn", "Native_GetMethodReturn"); register_native("CE_SetMethodReturn", "Native_SetMethodReturn"); - register_native("CE_GetClassHandler", "Native_GetHandler"); - register_native("CE_GetHandler", "Native_GetHandlerByEntity"); register_native("CE_Create", "Native_Create"); register_native("CE_Kill", "Native_Kill"); register_native("CE_Remove", "Native_Remove"); register_native("CE_Restart", "Native_Restart"); + register_native("CE_GetHandler", "Native_GetHandlerByEntity"); register_native("CE_IsInstanceOf", "Native_IsInstanceOf"); + register_native("CE_SetThink", "Native_SetThink"); + register_native("CE_SetTouch", "Native_SetTouch"); + register_native("CE_SetUse", "Native_SetUse"); + register_native("CE_SetBlocked", "Native_SetBlocked"); + register_native("CE_HasMember", "Native_HasMember"); register_native("CE_GetMember", "Native_GetMember"); register_native("CE_DeleteMember", "Native_DeleteMember"); @@ -169,12 +175,7 @@ public plugin_natives() { register_native("CE_CallMethod", "Native_CallMethod"); register_native("CE_CallBaseMethod", "Native_CallBaseMethod"); - register_native("CE_GetCallPluginId", "Native_GetCallPluginId"); - - register_native("CE_SetThink", "Native_SetThink"); - register_native("CE_SetTouch", "Native_SetTouch"); - register_native("CE_SetUse", "Native_SetUse"); - register_native("CE_SetBlocked", "Native_SetBlocked"); + register_native("CE_GetCallerPlugin", "Native_GetCallPluginId"); } public plugin_end() { @@ -1033,6 +1034,16 @@ public HamHook_Base_TraceAttack_Post(pEntity, pAttacker, Float:flDamage, const F /*--------------------------------[ Entity Hookable Methods ]--------------------------------*/ +@Entity_Allocate(const &this, iId, bool:bTemp) { + g_rgEntityClassInstances[this] = ClassInstanceCreate(g_rgEntities[iId][Entity_Class]); + ClassInstanceSetMember(g_rgEntityClassInstances[this], CE_MEMBER_ID, iId); + ClassInstanceSetMember(g_rgEntityClassInstances[this], CE_MEMBER_POINTER, this); + ClassInstanceSetMember(g_rgEntityClassInstances[this], CE_MEMBER_IGNOREROUNDS, false); + ClassInstanceSetMember(g_rgEntityClassInstances[this], CE_MEMBER_WORLD, !bTemp); + + ExecuteMethod(CEMethod_Allocate, this); +} + @Entity_KeyValue(const &this, const &hKVD) { new szKey[32]; get_kvd(hKVD, KV_KeyName, szKey, charsmax(szKey)); new szValue[32]; get_kvd(hKVD, KV_Value, szValue, charsmax(szValue)); @@ -1045,7 +1056,7 @@ public HamHook_Base_TraceAttack_Post(pEntity, pAttacker, Float:flDamage, const F if (~g_rgEntities[iId][Entity_Flags] & EntityFlag_Abstract) { set_kvd(hKVD, KV_Value, CE_BASE_CLASSNAME); - ExecuteMethod(CEMethod_Allocate, this, iId, false); + @Entity_Allocate(this, iId, false); } } } else { @@ -1805,12 +1816,15 @@ CreateEntity(const szClassname[], const Float:vecOrigin[3], bool:bTemp) { return FM_NULLENT; } + // szClassname can be an alias, so we need to get the classname from the metadata to make sure the classname is real + static szRealClassname[CE_MAX_NAME_LENGTH]; ClassGetMetadataString(g_rgEntities[iId][Entity_Class], CLASS_METADATA_NAME, szRealClassname, charsmax(szRealClassname)); + new this = engfunc(EngFunc_CreateNamedEntity, g_iszBaseClassName); - set_pev(this, pev_classname, szClassname); + set_pev(this, pev_classname, szRealClassname); engfunc(EngFunc_SetOrigin, this, vecOrigin); // set_pev(this, pev_flags, pev(this, pev_flags) & ~FL_ONGROUND); - ExecuteMethod(CEMethod_Allocate, this, iId, bTemp); + @Entity_Allocate(this, iId, bTemp); new ClassInstance:pInstance = @Entity_GetInstance(this); ClassInstanceSetMemberArray(pInstance, CE_MEMBER_ORIGIN, vecOrigin, 3); @@ -1850,14 +1864,6 @@ any:ExecuteMethod(CEMethod:iMethod, const &pEntity, any:...) { switch (iMethod) { case CEMethod_Allocate: { - new iId = getarg(2); - - g_rgEntityClassInstances[pEntity] = ClassInstanceCreate(g_rgEntities[iId][Entity_Class]); - ClassInstanceSetMember(g_rgEntityClassInstances[pEntity], CE_MEMBER_ID, iId); - ClassInstanceSetMember(g_rgEntityClassInstances[pEntity], CE_MEMBER_POINTER, pEntity); - ClassInstanceSetMember(g_rgEntityClassInstances[pEntity], CE_MEMBER_IGNOREROUNDS, false); - ClassInstanceSetMember(g_rgEntityClassInstances[pEntity], CE_MEMBER_WORLD, !getarg(3)); - HOOKABLE_METHOD_IMPLEMENTATION(CEMethod_Allocate, pEntity, 0) } case CEMethod_Free: { @@ -2077,7 +2083,8 @@ Array:CreateClassHierarchyList(const &Class:class) { Array:ReadMethodParamsFromNativeCall(iStartArg, iArgc) { static Array:irgParams; irgParams = ArrayCreate(); - for (new iParam = iStartArg; iParam <= iArgc; ++iParam) { + static iParam; + for (iParam = iStartArg; iParam <= iArgc; ++iParam) { static iType; iType = get_param_byref(iParam); switch (iType) { diff --git a/api/custom-entities/future/include/api_custom_entities_future.inc b/api/custom-entities/future/include/api_custom_entities_future.inc index b75ca6a..ff35983 100644 --- a/api/custom-entities/future/include/api_custom_entities_future.inc +++ b/api/custom-entities/future/include/api_custom_entities_future.inc @@ -137,7 +137,7 @@ native CE:CE_GetClassHandler(const szClassname[]); * * @return Handler of the entity or -1 otherwise */ -native CE:CE_GetHandler(const &pEntity); +native CE:CE_GetClassHandlerByEntity(const &pEntity); /** * Checks if entity is an instance of specific custom entity @@ -241,7 +241,7 @@ native any:CE_CallMethod(const &pEntity, const szMethod[], any:...); */ native any:CE_CallBaseMethod(any:...); -native CE_GetCallPluginId(); +native CE_GetCallerPlugin(); native CE_SetThink(const &pEntity, const szMethod[], const szClassname[] = NULL_STRING); native CE_SetTouch(const &pEntity, const szMethod[], const szClassname[] = NULL_STRING); diff --git a/util/cellclass.inc b/util/cellclass.inc index 7f3547c..ef5b423 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -42,7 +42,8 @@ #define __cls_err_MethodNotFoundInBaseClass "Cannot find method ^"%s^" in base classes!" #define __cls_err_MaxCallStackSizeExceeded "Maximum call stack size exceeded!" #define __cls_err_ClassMethodCallEndWithoutStart "Call ClassInstanceCallMethodEnd but method call is not started!" -#define __cls_err_NumberOfParametersExceeded "Number of parameters exceeded!" +#define __cls_err_NumberOfParametersExceeded "Number of argument(s) to call ^"%s^" exceeded! Expected %d, got %d." +#define __cls_err_MissingRequiredArguments "Missing required argument(s) to call ^"%s^"! Expected %d, got %d." #define __cls_err_InvalidParamType "Invalid parameter type at position %d for call method %s. Expected: ^"%s^" got ^"%s^"!" #define __cls_err_FailedToCallMethodFunction "Failed to call method ^"%s^" function!" @@ -135,6 +136,7 @@ stock Class:__cls_call_class = Invalid_Class; stock ClassInstance:__cls_call_pInstance = Invalid_ClassInstance; stock Struct:__cls_call_sMethod = Invalid_Struct; stock __cls_call_iParamTypesNum = 0; +stock __cls_call_iRequiredParamsNum = 0; stock __cls_call_iParamsNum = 0; stock __cls_call_iBufferPos = 0; @@ -498,6 +500,12 @@ stock any:ClassInstanceCallMethodEnd() { return 0; } + if (__cls_call_iParamsNum < __cls_call_iRequiredParamsNum) { + static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethod, charsmax(szMethod)); + set_fail_state(__cls_err_MissingRequiredArguments, szMethod, __cls_call_iRequiredParamsNum, __cls_call_iParamsNum); + return 0; + } + while (__cls_call_iParamsNum < __cls_call_iParamTypesNum) { callfunc_push_int(0); __cls_call_iParamsNum++; @@ -518,7 +526,8 @@ stock __cls_ValidateParamPush(iType) { return 1; } - set_fail_state(__cls_err_NumberOfParametersExceeded); + static szMethod[CLASS_METHOD_MAX_NAME_LENGTH]; StructGetString(__cls_call_sMethod, __cls_MethodData_Name, szMethod, charsmax(szMethod)); + set_fail_state(__cls_err_NumberOfParametersExceeded, szMethod, __cls_call_iParamTypesNum, __cls_call_iParamsNum); return 0; } @@ -798,6 +807,7 @@ stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], con __cls_call_sMethod = __cls_FindClassMethodInHierarchy(__cls_call_class, szMethod, iMethodType); __cls_call_iParamsNum = 0; __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); + __cls_call_iRequiredParamsNum = __cls_call_iParamTypesNum; if (__cls_call_sMethod == Invalid_Struct) { set_fail_state(__cls_err_MethodNotFoundInBaseClass, szMethod); @@ -811,6 +821,7 @@ stock __cls_InitMethodCallByPointer(const &ClassInstance:pInstance, const &Struc __cls_call_sMethod = sMethod; __cls_call_iParamsNum = 0; __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); + __cls_call_iRequiredParamsNum = __cls_call_iParamTypesNum; } stock __cls_FreeMethodCall() { @@ -818,8 +829,9 @@ stock __cls_FreeMethodCall() { __cls_call_pInstance = Invalid_ClassInstance; __cls_call_sMethod = Invalid_Struct; __cls_call_iParamsNum = 0; - __cls_call_iParamTypesNum = 0; __cls_call_iBufferPos = 0; + __cls_call_iParamTypesNum = 0; + __cls_call_iRequiredParamsNum = 0; } stock Function:__cls_GetCallMethodFunctionPointer() { From 058e22ed1a64ed4f1dc7e5a1a92c806b7eb3c9db Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 24 Apr 2024 11:11:28 +0200 Subject: [PATCH 220/231] optimizations --- util/cellclass.inc | 180 +++++++++++++++++++++++++++++++-------------- 1 file changed, 124 insertions(+), 56 deletions(-) diff --git a/util/cellclass.inc b/util/cellclass.inc index ef5b423..405bc22 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -155,26 +155,34 @@ stock any:__cls_rgBuffer[CLASS_PARAM_BUFFER_LENGTH]; stock Class:ClassCreate(const &Class:sBaseClass = Invalid_Class) { new Struct:class = StructCreate(__cls_Data); StructSetCell(class, __cls_Data_Base, sBaseClass); - StructSetCell(class, __cls_Data_Methods, TrieCreate()); - StructSetCell(class, __cls_Data_Members, TrieCreate()); - StructSetCell(class, __cls_Data_Setters, TrieCreate()); - StructSetCell(class, __cls_Data_Getters, TrieCreate()); + StructSetCell(class, __cls_Data_Members, Invalid_Trie); + StructSetCell(class, __cls_Data_Methods, Invalid_Trie); + StructSetCell(class, __cls_Data_Setters, Invalid_Trie); + StructSetCell(class, __cls_Data_Getters, Invalid_Trie); return Class:class; } stock ClassDestroy(&Class:class) { new Trie:itMethods = StructGetCell(Struct:class, __cls_Data_Methods); - __cls_DestroyMethodsTrie(itMethods); + if (itMethods != Invalid_Trie) { + __cls_DestroyMethodsTrie(itMethods); + } new Trie:itGetters = StructGetCell(Struct:class, __cls_Data_Getters); - __cls_DestroyMethodsTrie(itGetters); + if (itGetters != Invalid_Trie) { + __cls_DestroyMethodsTrie(itGetters); + } new Trie:itSetters = StructGetCell(Struct:class, __cls_Data_Setters); - __cls_DestroyMethodsTrie(itSetters); + if (itSetters != Invalid_Trie) { + __cls_DestroyMethodsTrie(itSetters); + } new Trie:itMembers = StructGetCell(Struct:class, __cls_Data_Members); - TrieDestroy(itMembers); + if (itMembers != Invalid_Trie) { + TrieDestroy(itMembers); + } StructDestroy(Struct:class); @@ -187,7 +195,7 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const Function: new iArgc = numargs(); new Class:sBaseClass = StructGetCell(Struct:class, __cls_Data_Base); - new Trie:itMethods = StructGetCell(Struct:class, __cls_Data_Methods); + new Trie:itMethods = __cls_GetClassMethodsTrie(class, __cls_MethodType_Method, true); if (TrieKeyExists(itMethods, szMethod)) { set_fail_state(__cls_err_MethodAlreadyRegistered, szMethod); @@ -252,7 +260,9 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const Function: } stock Function:ClassGetMethodFunction(const &Class:class, const szMethod[]) { - static Trie:itMethods; itMethods = StructGetCell(Struct:class, __cls_Data_Methods); + static Trie:itMethods; itMethods = __cls_GetClassMethodsTrie(class, __cls_MethodType_Method, false); + + if (itMethods == Invalid_Trie) return Invalid_FunctionPointer; static Struct:sMethod; if (!TrieGetCell(itMethods, szMethod, sMethod)) return Invalid_FunctionPointer; @@ -261,7 +271,9 @@ stock Function:ClassGetMethodFunction(const &Class:class, const szMethod[]) { } stock Struct:ClassGetMethodPointer(const &Class:class, const szMethod[]) { - static Trie:itMethods; itMethods = StructGetCell(Struct:class, __cls_Data_Methods); + static Trie:itMethods; itMethods = __cls_GetClassMethodsTrie(class, __cls_MethodType_Method, false); + + if (itMethods == Invalid_Trie) return Invalid_Struct; static Struct:sMethod; if (!TrieGetCell(itMethods, szMethod, sMethod)) return Invalid_Struct; @@ -282,51 +294,61 @@ stock Class:ClassGetBaseClass(const &Class:class) { } stock bool:ClassHasMetadata(const &Class:class, const szMember[]) { - static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + static Trie:itMembers; itMembers = __cls_GetClassMembersTrie(class, false); + + if (itMembers == Invalid_Trie) return false; return TrieKeyExists(itMembers, szMember); } stock ClassDeleteMetadata(const &Class:class, const szMember[]) { - static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + static Trie:itMembers; itMembers = __cls_GetClassMembersTrie(class, false); + + if (itMembers == Invalid_Trie) return; TrieDeleteKey(itMembers, szMember); } stock any:ClassGetMetadata(const &Class:class, const szMember[]) { - static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + static Trie:itMembers; itMembers = __cls_GetClassMembersTrie(class, false); + + if (itMembers == Invalid_Trie) return 0; static any:value; return TrieGetCell(itMembers, szMember, value) ? value : 0; } stock ClassSetMetadata(const &Class:class, const szMember[], any:value, bool:bReplace = true) { - static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + static Trie:itMembers; itMembers = __cls_GetClassMembersTrie(class, true); TrieSetCell(itMembers, szMember, value, bReplace); } stock bool:ClassGetMetadataString(const &Class:class, const szMember[], szOut[], iMaxLen) { - static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + static Trie:itMembers; itMembers = __cls_GetClassMembersTrie(class, false); + + if (itMembers == Invalid_Trie) return false; copy(szOut, iMaxLen, NULL_STRING); return !!TrieGetString(itMembers, szMember, szOut, iMaxLen); } stock ClassSetMetadataString(const &Class:class, const szMember[], const szValue[], bool:bReplace = true) { - static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + static Trie:itMembers; itMembers = __cls_GetClassMembersTrie(class, true); TrieSetString(itMembers, szMember, szValue, bReplace); } stock bool:ClassGetMetadataArray(const &Class:class, const szMember[], any:rgOut[], iLen) { - static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + static Trie:itMembers; itMembers = __cls_GetClassMembersTrie(class, false); + + if (itMembers == Invalid_Trie) return false; return !!TrieGetArray(itMembers, szMember, rgOut, iLen); } stock ClassSetMetadataArray(const &Class:class, const szMember[], const any:rgValue[], iLen, bool:bReplace = true) { - static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + static Trie:itMembers; itMembers = __cls_GetClassMembersTrie(class, true); TrieSetArray(itMembers, szMember, rgValue, iLen, bReplace); } @@ -336,7 +358,7 @@ stock ClassSetMetadataArray(const &Class:class, const szMember[], const any:rgVa stock ClassInstance:ClassInstanceCreate(const &Class:class) { static Struct:sInstance; sInstance = StructCreate(__cls_InstanceData); StructSetCell(sInstance, __cls_InstanceData_Class, class); - StructSetCell(sInstance, __cls_InstanceData_Members, TrieCreate()); + StructSetCell(sInstance, __cls_InstanceData_Members, Invalid_Trie); return ClassInstance:sInstance; } @@ -358,8 +380,10 @@ stock ClassInstanceDestroy(&ClassInstance:pInstance) { __cls_cache_InstanceSetters[__cls_InstanceCache_Instance] = Invalid_ClassInstance; } - static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); - TrieDestroy(itMembers); + static Trie:itMembers; itMembers = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + if (itMembers != Invalid_Trie) { + TrieDestroy(itMembers); + } StructDestroy(Struct:pInstance); @@ -615,7 +639,6 @@ stock ClassInstanceCallMethodPushNativeParam(iParam) { } case CMP_String, CMP_StringRef: { static iSize; iSize = get_string(iParam, __cls_rgBuffer[__cls_call_iBufferPos], charsmax(__cls_rgBuffer) - __cls_call_iBufferPos); - // log_amx("Param%d: ^"%s^"", iParam, __cls_rgBuffer); callfunc_push_str(__cls_rgBuffer[__cls_call_iBufferPos], iType == CMP_StringRef); __cls_call_iBufferPos += iSize; } @@ -629,13 +652,17 @@ stock Class:ClassInstanceGetClass(const &ClassInstance:pInstance) { } stock bool:ClassInstanceHasMember(const &ClassInstance:pInstance, const szMember[]) { - static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance, false); + + if (itMembers == Invalid_Trie) return false; return TrieKeyExists(itMembers, szMember); } stock ClassInstanceDeleteMember(const &ClassInstance:pInstance, const szMember[]) { - static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance, false); + + if (itMembers == Invalid_Trie) return; TrieDeleteKey(itMembers, szMember); } @@ -643,11 +670,13 @@ stock ClassInstanceDeleteMember(const &ClassInstance:pInstance, const szMember[] stock any:ClassInstanceGetMember(const &ClassInstance:pInstance, const szMember[]) { static Trie:itGetters; itGetters = __cls_GetInstanceGettersTrie(pInstance); - if (TrieKeyExists(itGetters, szMember)) { + if (itGetters != Invalid_Trie && TrieKeyExists(itGetters, szMember)) { return __cls_CallCellGetter(pInstance, szMember); } - static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance, false); + + if (itMembers == Invalid_Trie) return 0; static any:value; return TrieGetCell(itMembers, szMember, value) ? value : 0; @@ -656,12 +685,12 @@ stock any:ClassInstanceGetMember(const &ClassInstance:pInstance, const szMember[ stock ClassInstanceSetMember(const &ClassInstance:pInstance, const szMember[], any:value, bool:bReplace = true) { static Trie:itSetters; itSetters = __cls_GetInstanceSettersTrie(pInstance); - if (TrieKeyExists(itSetters, szMember)) { + if (itSetters != Invalid_Trie && TrieKeyExists(itSetters, szMember)) { __cls_CallCellSetter(pInstance, szMember, value); return; } - static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance, true); TrieSetCell(itMembers, szMember, value, bReplace); } @@ -669,11 +698,13 @@ stock ClassInstanceSetMember(const &ClassInstance:pInstance, const szMember[], a stock bool:ClassInstanceGetMemberString(const &ClassInstance:pInstance, const szMember[], szOut[], iMaxLen) { static Trie:itGetters; itGetters = __cls_GetInstanceGettersTrie(pInstance); - if (TrieKeyExists(itGetters, szMember)) { + if (itGetters != Invalid_Trie && TrieKeyExists(itGetters, szMember)) { return __cls_CallStringGetter(pInstance, szMember, szOut, iMaxLen); } - static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance, false); + + if (itMembers == Invalid_Trie) return false; copy(szOut, iMaxLen, NULL_STRING); return !!TrieGetString(itMembers, szMember, szOut, iMaxLen); @@ -682,12 +713,12 @@ stock bool:ClassInstanceGetMemberString(const &ClassInstance:pInstance, const sz stock ClassInstanceSetMemberString(const &ClassInstance:pInstance, const szMember[], const szValue[], bool:bReplace = true) { static Trie:itSetters; itSetters = __cls_GetInstanceSettersTrie(pInstance); - if (TrieKeyExists(itSetters, szMember)) { + if (itSetters != Invalid_Trie && TrieKeyExists(itSetters, szMember)) { __cls_CallStringSetter(pInstance, szMember, szValue); return; } - static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance, true); TrieSetString(itMembers, szMember, szValue, bReplace); } @@ -695,11 +726,13 @@ stock ClassInstanceSetMemberString(const &ClassInstance:pInstance, const szMembe stock bool:ClassInstanceGetMemberArray(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iLen) { static Trie:itGetters; itGetters = __cls_GetInstanceGettersTrie(pInstance); - if (TrieKeyExists(itGetters, szMember)) { + if (itGetters != Invalid_Trie && TrieKeyExists(itGetters, szMember)) { return __cls_CallArrayGetter(pInstance, szMember, rgOut, iLen); } - static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance, false); + + if (itMembers == Invalid_Trie) return false; return !!TrieGetArray(itMembers, szMember, rgOut, iLen); } @@ -707,12 +740,12 @@ stock bool:ClassInstanceGetMemberArray(const &ClassInstance:pInstance, const szM stock ClassInstanceSetMemberArray(const &ClassInstance:pInstance, const szMember[], const any:rgValue[], iLen, bool:bReplace = true) { static Trie:itSetters; itSetters = __cls_GetInstanceSettersTrie(pInstance); - if (TrieKeyExists(itSetters, szMember)) { + if (itSetters != Invalid_Trie && TrieKeyExists(itSetters, szMember)) { __cls_CallArraySetter(pInstance, szMember, rgValue, iLen); return; } - static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance); + static Trie:itMembers; itMembers = __cls_GetInstanceMembersTrie(pInstance, true); TrieSetArray(itMembers, szMember, rgValue, iLen, bReplace); } @@ -745,9 +778,18 @@ stock Class:__cls_GetInstanceClass(const &ClassInstance:pInstance) { return __cls_cache_InstanceClass[__cls_InstanceCache_Value]; } -stock Trie:__cls_GetInstanceMembersTrie(const &ClassInstance:pInstance) { - if (pInstance != __cls_cache_InstanceMembers[__cls_InstanceCache_Instance]) { +stock Trie:__cls_GetInstanceMembersTrie(const &ClassInstance:pInstance, bool:bWrite = false) { + if ( + pInstance != __cls_cache_InstanceMembers[__cls_InstanceCache_Instance] || + (__cls_cache_InstanceMembers[__cls_InstanceCache_Value] == Invalid_Trie && bWrite) + ) { __cls_cache_InstanceMembers[__cls_InstanceCache_Value] = StructGetCell(Struct:pInstance, __cls_InstanceData_Members); + + if (__cls_cache_InstanceMembers[__cls_InstanceCache_Value] == Invalid_Trie && bWrite) { + __cls_cache_InstanceMembers[__cls_InstanceCache_Value] = TrieCreate(); + StructSetCell(Struct:pInstance, __cls_InstanceData_Members, __cls_cache_InstanceMembers[__cls_InstanceCache_Value]); + } + __cls_cache_InstanceMembers[__cls_InstanceCache_Instance] = pInstance; } @@ -757,7 +799,7 @@ stock Trie:__cls_GetInstanceMembersTrie(const &ClassInstance:pInstance) { stock Trie:__cls_GetInstanceGettersTrie(const &ClassInstance:pInstance) { if (pInstance != __cls_cache_InstanceGetters[__cls_InstanceCache_Instance]) { static Class:class; class = __cls_GetInstanceClass(pInstance); - __cls_cache_InstanceGetters[__cls_InstanceCache_Value] = StructGetCell(Struct:class, __cls_Data_Getters); + __cls_cache_InstanceGetters[__cls_InstanceCache_Value] = __cls_GetClassMethodsTrie(class, __cls_MethodType_Getter, false); __cls_cache_InstanceGetters[__cls_InstanceCache_Instance] = pInstance; } @@ -767,7 +809,7 @@ stock Trie:__cls_GetInstanceGettersTrie(const &ClassInstance:pInstance) { stock Trie:__cls_GetInstanceSettersTrie(const &ClassInstance:pInstance) { if (pInstance != __cls_cache_InstanceSetters[__cls_InstanceCache_Instance]) { static Class:class; class = __cls_GetInstanceClass(pInstance); - __cls_cache_InstanceSetters[__cls_InstanceCache_Value] = StructGetCell(Struct:class, __cls_Data_Setters); + __cls_cache_InstanceSetters[__cls_InstanceCache_Value] = __cls_GetClassMethodsTrie(class, __cls_MethodType_Setter, false); __cls_cache_InstanceSetters[__cls_InstanceCache_Instance] = pInstance; } @@ -959,20 +1001,9 @@ stock __cls_DestroyMethodsTrie(&Trie:itMethods) { } stock __cls_AddMemberAccessorMethod(const &Class:class, const szMember[], const Function:func, __cls_MethodType:iMethodType, iType, iSize) { - new iStructField = -1; + if (iMethodType != __cls_MethodType_Getter && iMethodType != __cls_MethodType_Setter) return; - switch (iMethodType) { - case __cls_MethodType_Getter: { - iStructField = __cls_Data_Getters; - } - case __cls_MethodType_Setter: { - iStructField = __cls_Data_Setters; - } - } - - if (iStructField == -1) return; - - new Trie:itMethods = StructGetCell(Struct:class, iStructField); + new Trie:itMethods = __cls_GetClassMethodsTrie(class, iMethodType, true); new Array:irgParamTypes; irgParamTypes = ArrayCreate(_:__cls_MethodParamData, 1); @@ -1075,8 +1106,10 @@ stock Struct:__cls_FindClassMethodInHierarchy(const &Class:class, const szMethod do { static Trie:itMethods; itMethods = StructGetCell(Struct:sCurrentClass, iStructMethodsField); - static Struct:sMethod; - if (TrieGetCell(itMethods, szMethod, sMethod)) return sMethod; + if (itMethods != Invalid_Trie) { + static Struct:sMethod; + if (TrieGetCell(itMethods, szMethod, sMethod)) return sMethod; + } sCurrentClass = StructGetCell(Struct:sCurrentClass, __cls_Data_Base); } while (sCurrentClass != Invalid_Class); @@ -1116,6 +1149,41 @@ stock Class:__cls_GetCallMethodClass(const &ClassInstance:pInstance) { return __cls_GetInstanceClass(pInstance); } +stock Trie:__cls_GetClassMembersTrie(const &Class:class, bool:bWrite = false) { + static Trie:itMembers; itMembers = StructGetCell(Struct:class, __cls_Data_Members); + + if (itMembers == Invalid_Trie && bWrite) { + itMembers = TrieCreate(); + StructSetCell(Struct:class, __cls_Data_Members, itMembers); + } + + return itMembers; +} + +stock Trie:__cls_GetClassMethodsTrie(const &Class:class, __cls_MethodType:iMethodType, bool:bWrite = false) { + static iStructMethodsField = __cls_MethodType_Invalid; + switch (iMethodType) { + case __cls_MethodType_Method, __cls_MethodType_Virtual: { + iStructMethodsField = __cls_Data_Methods; + } + case __cls_MethodType_Getter: { + iStructMethodsField = __cls_Data_Getters; + } + case __cls_MethodType_Setter: { + iStructMethodsField = __cls_Data_Setters; + } + } + + static Trie:itMethods; itMethods = StructGetCell(Struct:class, iStructMethodsField); + + if (itMethods == Invalid_Trie && bWrite) { + itMethods = TrieCreate(); + StructSetCell(Struct:class, iStructMethodsField, itMethods); + } + + return itMethods; +} + stock __cls_LogExecution() { #if defined __cls_DEBUG static Struct:sClass; sClass = StructGetCell(__cls_call_sMethod, __cls_MethodData_Class); From 7bfaacde69adedeabb81d830323896c456b0d660 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 24 Apr 2024 11:15:54 +0200 Subject: [PATCH 221/231] fix natives --- .../future/include/api_custom_entities_future.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/custom-entities/future/include/api_custom_entities_future.inc b/api/custom-entities/future/include/api_custom_entities_future.inc index ff35983..1e78266 100644 --- a/api/custom-entities/future/include/api_custom_entities_future.inc +++ b/api/custom-entities/future/include/api_custom_entities_future.inc @@ -137,7 +137,7 @@ native CE:CE_GetClassHandler(const szClassname[]); * * @return Handler of the entity or -1 otherwise */ -native CE:CE_GetClassHandlerByEntity(const &pEntity); +native CE:CE_GetHandler(const &pEntity); /** * Checks if entity is an instance of specific custom entity From 5d6337704e58c96534337b9416eb0c59636c55c4 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 24 Apr 2024 21:00:31 +0200 Subject: [PATCH 222/231] add ref types + fix setters/getters --- util/cellclass.inc | 214 ++++++++++++++++++++++++++++++++------------- 1 file changed, 152 insertions(+), 62 deletions(-) diff --git a/util/cellclass.inc b/util/cellclass.inc index 405bc22..d043b3e 100644 --- a/util/cellclass.inc +++ b/util/cellclass.inc @@ -127,6 +127,8 @@ enum __cls_InstanceCache { stock ClassInstance:__cls_callstack_pInstance[CLASS_METHOD_CALL_STACK_SIZE]; stock Class:__cls_callstack_class[CLASS_METHOD_CALL_STACK_SIZE]; stock Struct:__cls_callstack_sMethod[CLASS_METHOD_CALL_STACK_SIZE]; +stock __cls_callstack_iBufferPos[CLASS_METHOD_CALL_STACK_SIZE]; +stock __cls_callstack_iLastRefArg[CLASS_METHOD_CALL_STACK_SIZE]; stock __cls_callstack_size = 0; #define __cls_callstack_iLastItem (__cls_callstack_size - 1) @@ -139,6 +141,7 @@ stock __cls_call_iParamTypesNum = 0; stock __cls_call_iRequiredParamsNum = 0; stock __cls_call_iParamsNum = 0; stock __cls_call_iBufferPos = 0; +stock __cls_call_iLastRefArg = 0; // Cache stock __cls_cache_InstanceClass[__cls_InstanceCache] = { Invalid_ClassInstance, Invalid_Class }; @@ -216,10 +219,9 @@ stock Class:ClassAddMethod(const &Class:class, const szMethod[], const Function: for (new iArg = iArgOffset; iArg < iArgc; ++iArg) { new any:arg = getarg(iArg); - if (!bSkipTypeCheck) { switch (arg) { - case CMP_Array, CMP_ArrayRef, CMP_ParamsCellArray: { + case CMP_Array, CMP_ArrayRef, CMP_StringRef, CMP_ParamsCellArray: { bSkipTypeCheck = true; } case CMP_Variadic: { @@ -414,40 +416,41 @@ stock Class:ClassInstanceGetCurrentClass() { for (new iMethodParam = 0; iMethodParam < iParamsNum; ++iMethodParam) {\ static iArgument; iArgument = %1 + iMethodParam;\ static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Type);\ +\ + if (__cls_IsRefType(iType)) __cls_call_iLastRefArg = iMethodParam;\ \ switch (iType) {\ - case CMP_Cell, CMP_CellRef: {\ + case CMP_Cell: {\ __cls_rgBuffer[__cls_call_iBufferPos] = any:getarg(iArgument);\ -\ - switch (iType) {\ - case CMP_CellRef: ClassInstanceCallMethodPushParamCellRef(__cls_rgBuffer[__cls_call_iBufferPos]);\ - case CMP_Cell: ClassInstanceCallMethodPushParamCell(__cls_rgBuffer[__cls_call_iBufferPos]);\ - }\ -\ + ClassInstanceCallMethodPushParamCell(__cls_rgBuffer[__cls_call_iBufferPos]);\ __cls_call_iBufferPos++;\ }\ - case CMP_String, CMP_StringRef: {\ - static iMaxLen; iMaxLen = charsmax(__cls_rgBuffer) - __cls_call_iBufferPos;\ + case CMP_CellRef: {\ + __cls_rgBuffer[__cls_call_iBufferPos] = any:getarg(iArgument);\ + ClassInstanceCallMethodPushParamCellRef(__cls_rgBuffer[__cls_call_iBufferPos]);\ + __cls_call_iBufferPos++;\ + }\ + case CMP_String: {\ + static iPos; iPos = __cls_call_iBufferPos;\ + static iSize; iSize = 0;\ + do\ + __cls_rgBuffer[iPos] = getarg(iArgument, iSize++);\ + while (__cls_rgBuffer[iPos++] != '^0' && iPos < charsmax(__cls_rgBuffer));\ \ - static iLen;\ - for (iLen = 0; iLen < iMaxLen && __cls_rgBuffer[__cls_call_iBufferPos - 1] != '^0'; ++iLen)\ - __cls_rgBuffer[__cls_call_iBufferPos++] = getarg(iArgument, iLen);\ + ClassInstanceCallMethodPushParamString(__cls_rgBuffer[__cls_call_iBufferPos]);\ \ - switch (iType) {\ - case CMP_StringRef: ClassInstanceCallMethodPushParamStringRef(__cls_rgBuffer[__cls_call_iBufferPos], iLen);\ - case CMP_String: ClassInstanceCallMethodPushParamString(__cls_rgBuffer[__cls_call_iBufferPos]);\ - }\ + __cls_call_iBufferPos += iSize;\ }\ - case CMP_Array, CMP_ArrayRef: {\ + case CMP_Array, CMP_ArrayRef, CMP_StringRef: {\ static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Size);\ \ static i;\ - for (i = 0; i < iSize; ++i)\ - __cls_rgBuffer[__cls_call_iBufferPos + i] = any:getarg(iArgument, i);\ + for (i = 0; i < iSize; ++i) __cls_rgBuffer[__cls_call_iBufferPos + i] = any:getarg(iArgument, i);\ \ switch (iType) {\ - case CMP_ArrayRef: ClassInstanceCallMethodPushParamArrayRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize);\ case CMP_Array: ClassInstanceCallMethodPushParamArray(__cls_rgBuffer[__cls_call_iBufferPos], iSize);\ + case CMP_ArrayRef: ClassInstanceCallMethodPushParamArrayRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize);\ + case CMP_StringRef: ClassInstanceCallMethodPushParamStringRef(__cls_rgBuffer[__cls_call_iBufferPos], iSize);\ }\ \ __cls_call_iBufferPos += iSize;\ @@ -456,12 +459,52 @@ stock Class:ClassInstanceGetCurrentClass() { }\ } +#define __cls_UPDATE_METHOD_CALL_REF_PARAMS(%1) {\ + static iBufferOffset; iBufferOffset = __cls_call_iBufferPos;\ +\ + for (new iMethodParam = 0; iMethodParam <= __cls_call_iLastRefArg; ++iMethodParam) {\ + static iArgument; iArgument = %1 + iMethodParam;\ + static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Type);\ +\ + switch (iType) {\ + case CMP_Cell: {\ + iBufferOffset++;\ + }\ + case CMP_CellRef: {\ + setarg(iArgument, _, __cls_rgBuffer[iBufferOffset++]);\ + }\ + case CMP_String: {\ + while (__cls_rgBuffer[iBufferOffset] != '^0') iBufferOffset++;\ + iBufferOffset++;\ + }\ + case CMP_Array, CMP_ArrayRef, CMP_StringRef: {\ + static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(iMethodParam) + _:__cls_MethodParamData_Size);\ +\ + static i;\ + if (iType == CMP_ArrayRef)\ + for (i = 0; i < iSize; ++i) setarg(iArgument, i, __cls_rgBuffer[iBufferOffset + i]);\ + else if (iType == CMP_StringRef)\ + for (i = 0; i < (iSize - 1) && __cls_rgBuffer[iBufferOffset + i] != '^0'; ++i)\ + setarg(iArgument, i, __cls_rgBuffer[iBufferOffset + i]);\ +\ + if (iType == CMP_StringRef) setarg(iArgument, i, '^0');\ +\ + iBufferOffset += iSize;\ + }\ + }\ + }\ +} + stock any:ClassInstanceCallMethod(const &ClassInstance:pInstance, const szMethod[], any:...) { __cls_CallMethodBegin(pInstance, szMethod, _, __cls_MethodType_Method); __cls_READ_METHOD_CALL_PARAMS(2) - return ClassInstanceCallMethodEnd(); + static any:result; result = ClassInstanceCallMethodEnd(); + + __cls_UPDATE_METHOD_CALL_REF_PARAMS(2) + + return result; } stock ClassInstanceCallMethodOf(const &ClassInstance:pInstance, const szMethod[], const &Class:class = Invalid_Class, any:...) { @@ -469,7 +512,11 @@ stock ClassInstanceCallMethodOf(const &ClassInstance:pInstance, const szMethod[] __cls_READ_METHOD_CALL_PARAMS(3) - return ClassInstanceCallMethodEnd(); + static any:result; result = ClassInstanceCallMethodEnd(); + + __cls_UPDATE_METHOD_CALL_REF_PARAMS(3) + + return result; } stock ClassInstanceCallMethodByPointer(const &ClassInstance:pInstance, const &Struct:sMethod, any:...) { @@ -477,7 +524,11 @@ stock ClassInstanceCallMethodByPointer(const &ClassInstance:pInstance, const &St __cls_READ_METHOD_CALL_PARAMS(2) - return ClassInstanceCallMethodEnd(); + static any:result; result = ClassInstanceCallMethodEnd(); + + __cls_UPDATE_METHOD_CALL_REF_PARAMS(2) + + return result; } stock ClassInstanceCallBaseMethod(any:...) { @@ -485,7 +536,11 @@ stock ClassInstanceCallBaseMethod(any:...) { __cls_READ_METHOD_CALL_PARAMS(0) - return ClassInstanceCallMethodEnd(); + static any:result; result = ClassInstanceCallMethodEnd(); + + __cls_UPDATE_METHOD_CALL_REF_PARAMS(0) + + return result; } stock ClassInstanceCallMethodBegin(const &ClassInstance:pInstance, const szMethod[], const &Class:class = Invalid_Class) { @@ -538,7 +593,7 @@ stock any:ClassInstanceCallMethodEnd() { static any:result; result = __cls_ExecuteMethod(); if (!__cls_callstack_size) { - __cls_FreeMethodCall(); + // __cls_FreeMethodCall(); } return result; @@ -590,15 +645,6 @@ stock ClassInstanceCallMethodPushParamString(const szValue[]) { __cls_call_iParamsNum++; } -stock ClassInstanceCallMethodPushParamStringRef(szValue[], iLen) { - if (!__cls_ValidateParamPush(CMP_StringRef)) return; - - arrayset(szValue, 1, iLen); - callfunc_push_str(szValue, true); - - __cls_call_iParamsNum++; -} - stock ClassInstanceCallMethodPushParamArray(const any:rgValue[], iSize) { if (!__cls_ValidateParamPush(CMP_Array)) return; @@ -615,31 +661,43 @@ stock ClassInstanceCallMethodPushParamArrayRef(rgValue[], iSize) { __cls_call_iParamsNum++; } +stock ClassInstanceCallMethodPushParamStringRef(rgValue[], iMaxLen) { + if (!__cls_ValidateParamPush(CMP_StringRef)) return; + + // arrayset(rgValue, 1, iMaxLen); + rgValue[iMaxLen + 1] = '^0'; + callfunc_push_array(rgValue, iMaxLen, true); + + __cls_call_iParamsNum++; +} + stock ClassInstanceCallMethodPushNativeParam(iParam) { if (__cls_call_iParamsNum >= __cls_call_iParamTypesNum) return; static iType; iType = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(__cls_call_iParamsNum) + _:__cls_MethodParamData_Type); static iSize; iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, __cls_MethodParamOffset(__cls_call_iParamsNum) + _:__cls_MethodParamData_Size); + if (__cls_IsRefType(iType)) __cls_call_iLastRefArg = __cls_call_iParamsNum; + switch (iType) { - case CMP_Cell, CMP_CellRef: { + case CMP_Cell: { __cls_rgBuffer[__cls_call_iBufferPos] = any:get_param_byref(iParam); - - switch (iType) { - case CMP_CellRef: callfunc_push_intrf(__cls_rgBuffer[__cls_call_iBufferPos]); - case CMP_Cell: callfunc_push_int(__cls_rgBuffer[__cls_call_iBufferPos]); - } - + callfunc_push_int(__cls_rgBuffer[__cls_call_iBufferPos]); __cls_call_iBufferPos++; } - case CMP_Array, CMP_ArrayRef: { - get_array(iParam, __cls_rgBuffer[__cls_call_iBufferPos], iSize); - callfunc_push_array(__cls_rgBuffer[__cls_call_iBufferPos], iSize, iType == CMP_ArrayRef); - __cls_call_iBufferPos += iSize; + case CMP_CellRef: { + __cls_rgBuffer[__cls_call_iBufferPos] = any:get_param_byref(iParam); + callfunc_push_intrf(__cls_rgBuffer[__cls_call_iBufferPos]); + __cls_call_iBufferPos++; } - case CMP_String, CMP_StringRef: { + case CMP_String: { static iSize; iSize = get_string(iParam, __cls_rgBuffer[__cls_call_iBufferPos], charsmax(__cls_rgBuffer) - __cls_call_iBufferPos); - callfunc_push_str(__cls_rgBuffer[__cls_call_iBufferPos], iType == CMP_StringRef); + callfunc_push_str(__cls_rgBuffer[__cls_call_iBufferPos]); + __cls_call_iBufferPos += iSize; + } + case CMP_Array, CMP_ArrayRef, CMP_StringRef: { + get_array(iParam, __cls_rgBuffer[__cls_call_iBufferPos], iSize); + callfunc_push_array(__cls_rgBuffer[__cls_call_iBufferPos], iSize, iType == CMP_ArrayRef); __cls_call_iBufferPos += iSize; } } @@ -826,7 +884,7 @@ stock __cls_ParseParamTypes(&Array:irgArgs, &Array:irgParamTypes) { rgParam[__cls_MethodParamData_Size] = 1; switch (rgParam[__cls_MethodParamData_Type]) { - case CMP_Array: { + case CMP_Array, CMP_ArrayRef, CMP_StringRef: { rgParam[__cls_MethodParamData_Size] = ArrayGetCell(irgArgs, ++iArg); } case CMP_ParamsCellArray: { @@ -848,13 +906,15 @@ stock __cls_InitMethodCall(const &ClassInstance:pInstance, const szMethod[], con __cls_call_pInstance = pInstance; __cls_call_sMethod = __cls_FindClassMethodInHierarchy(__cls_call_class, szMethod, iMethodType); __cls_call_iParamsNum = 0; - __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); - __cls_call_iRequiredParamsNum = __cls_call_iParamTypesNum; + __cls_call_iLastRefArg = -1; if (__cls_call_sMethod == Invalid_Struct) { set_fail_state(__cls_err_MethodNotFoundInBaseClass, szMethod); return; } + + __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); + __cls_call_iRequiredParamsNum = __cls_call_iParamTypesNum; } stock __cls_InitMethodCallByPointer(const &ClassInstance:pInstance, const &Struct:sMethod) { @@ -862,6 +922,7 @@ stock __cls_InitMethodCallByPointer(const &ClassInstance:pInstance, const &Struc __cls_call_pInstance = pInstance; __cls_call_sMethod = sMethod; __cls_call_iParamsNum = 0; + __cls_call_iLastRefArg = -1; __cls_call_iParamTypesNum = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypesNum); __cls_call_iRequiredParamsNum = __cls_call_iParamTypesNum; } @@ -872,6 +933,7 @@ stock __cls_FreeMethodCall() { __cls_call_sMethod = Invalid_Struct; __cls_call_iParamsNum = 0; __cls_call_iBufferPos = 0; + __cls_call_iLastRefArg = -1; __cls_call_iParamTypesNum = 0; __cls_call_iRequiredParamsNum = 0; } @@ -934,20 +996,25 @@ stock any:__cls_CallCellGetter(const &ClassInstance:pInstance, const szMember[]) return ClassInstanceCallMethodEnd(); } -stock any:__cls_CallArrayGetter(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iSize) { +stock any:__cls_CallArrayGetter(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iSize = -1) { __cls_CallMethodBegin(pInstance, szMember, _, __cls_MethodType_Getter); + if (iSize == -1) { + iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, _:__cls_MethodParamData_Size); + } + ClassInstanceCallMethodPushParamArrayRef(rgOut, iSize); ClassInstanceCallMethodPushParamCell(iSize); return ClassInstanceCallMethodEnd(); } -stock any:__cls_CallStringGetter(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iLen) { +stock any:__cls_CallStringGetter(const &ClassInstance:pInstance, const szMember[], any:rgOut[], iMaxLen) { __cls_CallMethodBegin(pInstance, szMember, _, __cls_MethodType_Getter); - ClassInstanceCallMethodPushParamStringRef(rgOut, iLen); - ClassInstanceCallMethodPushParamCell(iLen); + ClassInstanceCallMethodPushParamStringRef(rgOut, iMaxLen); + ClassInstanceCallMethodPushParamCell(iMaxLen); + rgOut[iMaxLen + 1] = '^0'; return ClassInstanceCallMethodEnd(); } @@ -960,10 +1027,15 @@ stock __cls_CallCellSetter(const &ClassInstance:pInstance, const szMember[], any return ClassInstanceCallMethodEnd(); } -stock __cls_CallArraySetter(const &ClassInstance:pInstance, const szMember[], const any:rgValue[], iSize) { +stock __cls_CallArraySetter(const &ClassInstance:pInstance, const szMember[], const any:rgValue[], iSize = -1) { __cls_CallMethodBegin(pInstance, szMember, _, __cls_MethodType_Setter); + if (iSize == -1) { + iSize = StructGetCell(__cls_call_sMethod, __cls_MethodData_ParamTypes, _:__cls_MethodParamData_Size); + } + ClassInstanceCallMethodPushParamArray(rgValue, iSize); + ClassInstanceCallMethodPushParamCell(iSize); return ClassInstanceCallMethodEnd(); } @@ -1007,13 +1079,17 @@ stock __cls_AddMemberAccessorMethod(const &Class:class, const szMember[], const new Array:irgParamTypes; irgParamTypes = ArrayCreate(_:__cls_MethodParamData, 1); - new rgParam[__cls_MethodParamData]; - rgParam[__cls_MethodParamData_Type] = __cls_ResolveAccessorParamType(iType, iMethodType); - rgParam[__cls_MethodParamData_Size] = iSize; + // Input value or output reference + if (iMethodType == __cls_MethodType_Setter || (iType == CMP_String || iType == CMP_Array)) { + new rgParam[__cls_MethodParamData]; + rgParam[__cls_MethodParamData_Type] = __cls_ResolveAccessorParamType(iType, iMethodType); + rgParam[__cls_MethodParamData_Size] = iSize; - ArrayPushArray(irgParamTypes, rgParam[any:0], _:__cls_MethodParamData); + ArrayPushArray(irgParamTypes, rgParam[any:0], _:__cls_MethodParamData); + } - if (iType == CMP_String || iType == CMP_Array) { + // Max size for arrays and string getters + if (iType == CMP_Array || (iType == CMP_String && iMethodType == __cls_MethodType_Getter)) { new rgSizeParam[__cls_MethodParamData]; rgSizeParam[__cls_MethodParamData_Type] = CMP_Cell; rgSizeParam[__cls_MethodParamData_Size] = 1; @@ -1039,6 +1115,14 @@ stock __cls_ResolveAccessorParamType(iType, __cls_MethodType:iMethodType) { return iType; } +stock __cls_IsRefType(iType) { + switch (iType) { + case CMP_CellRef, CMP_ArrayRef, CMP_StringRef: return true; + } + + return false; +} + stock Struct:__cls_CreateMethod(Class:class, const szName[], const Function:func, Array:irgParamTypes, __cls_MethodType:iType = __cls_MethodType_Method, bool:bVariadicParams = false) { new Struct:sMethod = StructCreate(__cls_MethodData); StructSetCell(sMethod, __cls_MethodData_Class, class); @@ -1126,6 +1210,8 @@ stock __cls_PushMethodCallToCallStack() { __cls_callstack_pInstance[__cls_callstack_size] = any:__cls_call_pInstance; __cls_callstack_class[__cls_callstack_size] = any:StructGetCell(__cls_call_sMethod, __cls_MethodData_Class); __cls_callstack_sMethod[__cls_callstack_size] = any:__cls_call_sMethod; + __cls_callstack_iBufferPos[__cls_callstack_size] = __cls_call_iBufferPos; + __cls_callstack_iLastRefArg[__cls_callstack_size] = __cls_call_iLastRefArg; __cls_callstack_size++; } @@ -1136,6 +1222,10 @@ stock __cls_PopMethodFromCallStack() { if (__cls_callstack_size) { __cls_call_pInstance = __cls_callstack_pInstance[__cls_callstack_iLastItem]; __cls_call_sMethod = __cls_callstack_sMethod[__cls_callstack_iLastItem]; + __cls_call_iBufferPos = __cls_callstack_iBufferPos[__cls_callstack_iLastItem]; + __cls_call_iLastRefArg = __cls_callstack_iLastRefArg[__cls_callstack_iLastItem]; + } else { + __cls_call_iBufferPos = 0; } } From 3369ab802656ebc5c935621bb3961a9483741964 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 6 Aug 2024 23:09:53 +0000 Subject: [PATCH 223/231] add push forward --- api/advanced-pushing/api_advanced_pushing.sma | 7 +++++++ api/advanced-pushing/include/api_advanced_pushing.inc | 2 ++ 2 files changed, 9 insertions(+) diff --git a/api/advanced-pushing/api_advanced_pushing.sma b/api/advanced-pushing/api_advanced_pushing.sma index 190a602..ce1ac0c 100644 --- a/api/advanced-pushing/api_advanced_pushing.sma +++ b/api/advanced-pushing/api_advanced_pushing.sma @@ -11,6 +11,8 @@ #define IS_PLAYER(%1) (%1 >= 1 && %1 <= MaxClients) +new g_fwPush; + new Float:g_flPlayerReleaseClimbBlock[MAX_PLAYERS + 1]; public plugin_init() { @@ -18,6 +20,8 @@ public plugin_init() { RegisterHamPlayer(Ham_Spawn, "HamHook_Player_Spawn_Post", .Post = 1); RegisterHamPlayer(Ham_Player_PostThink, "HamHook_Player_PostThink_Post", .Post = 1); + + g_fwPush = CreateMultiForward("APS_Fw_Push", ET_IGNORE, FP_CELL, FP_ARRAY, FP_CELL); } public plugin_natives() { @@ -101,6 +105,9 @@ public HamHook_Player_PostThink_Post(pPlayer) { } } + static ivecForce; ivecForce = PrepareArray(any:vecForce, 3, 0); + ExecuteForward(g_fwPush, _, this, ivecForce, iFlags); + set_pev(this, pev_velocity, vecVelocity); if (IS_PLAYER(this) && ~pev(this, pev_iuser3) & PLAYER_PREVENT_CLIMB) { diff --git a/api/advanced-pushing/include/api_advanced_pushing.inc b/api/advanced-pushing/include/api_advanced_pushing.inc index 22bc55e..58ea0c9 100644 --- a/api/advanced-pushing/include/api_advanced_pushing.inc +++ b/api/advanced-pushing/include/api_advanced_pushing.inc @@ -61,3 +61,5 @@ native APS_PushFromBBox( Float:flDepthInfluenceMax = 1.0, APS_Flags:iFlags = APS_Flag_None ); + +forward APS_Fw_Push(pEntity, const Float:vecForce[3], APS_Flags:iFlags); From 3e39e7259749fe04c5f8e86b8994e1c804e216d1 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Wed, 14 Aug 2024 02:07:29 +0000 Subject: [PATCH 224/231] fix model user info exploit --- api/player-model/api_player_model.sma | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/api/player-model/api_player_model.sma b/api/player-model/api_player_model.sma index 9045e52..74dacb8 100644 --- a/api/player-model/api_player_model.sma +++ b/api/player-model/api_player_model.sma @@ -7,7 +7,7 @@ #tryinclude #define PLUGIN "[API] Player Model" -#define VERSION "1.0.0" +#define VERSION "1.0.1" #define AUTHOR "Hedgehog Fog" #define NATIVE_ERROR_NOT_CONNECTED(%1) log_error(AMX_ERR_NATIVE, "User %d is not connected", %1) @@ -216,6 +216,15 @@ public HamHook_Player_PostThink_Post(pPlayer) { @PlayerSubModel_Think(g_rgpPlayerSubModel[pPlayer]); } + if (@Player_ShouldUseCurrentModel(pPlayer)) { + static szModel[MAX_RESOURCE_PATH_LENGTH]; + get_user_info(pPlayer, "model", szModel, charsmax(szModel)); + + if (!equal(szModel, NULL_STRING)) { + set_user_info(pPlayer, "model", ""); + } + } + if (!g_bIsCStrike) { static szModel[MAX_RESOURCE_PATH_LENGTH]; get_user_info(pPlayer, "model", szModel, charsmax(szModel)); From 4fda53e16d7bc83fef48b9442a15b61070d5c404 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 20 Aug 2024 06:37:25 +0000 Subject: [PATCH 225/231] add states api --- api/states/README.md | 119 ++++++++ api/states/api_states.sma | 356 ++++++++++++++++++++++++ api/states/include/api_states.inc | 149 ++++++++++ api/states/include/api_states_const.inc | 12 + 4 files changed, 636 insertions(+) create mode 100644 api/states/README.md create mode 100644 api/states/api_states.sma create mode 100644 api/states/include/api_states.inc create mode 100644 api/states/include/api_states_const.inc diff --git a/api/states/README.md b/api/states/README.md new file mode 100644 index 0000000..09038ea --- /dev/null +++ b/api/states/README.md @@ -0,0 +1,119 @@ +# States API + +The **States API** provides a flexible and efficient way to manage different states. This API allows you to define states, register hooks for transitions, and manage the state lifecycle of the game or entities, such as players or game objects. + +## Key Features: +- **State Contexts**: Group and manage related states under a single context. +- **Hooks**: Register callbacks for state changes, entries, exits, and transitions. +- **State Manager**: Create and control state managers for individual entities. +- **State Transitions**: Schedule and manage timed transitions between states. + +--- + +## Usage Example: Player Health State + +In this example, we'll demonstrate how to use the **States API** to handle the health states of a player in a game. + +### 📃 Creating a States Enum + +First, we need to define three state constants: `Healthy`, `Injured`, and `Critical`. + +```pawn +enum HealthState { + HealthState_Healthy, + HealthState_Injured, + HealthState_Critical +}; +``` + +### 🪪 Registering a State Context + +Next, we'll register a context for the player's health states. + +```pawn +#include + +public plugin_precache() { + State_Context_Register("player_health", HealthState_Healthy); +} +``` + +### 🪝 Registering Hooks + +Now it's time to register hooks to handle entering and exiting different health states. + +```pawn +public plugin_precache() { + // Register the health context + State_Context_Register("player_health", HealthState_Healthy); + + // Register enter hooks for different health states + State_Context_RegisterEnterHook("player_health", HealthState_Healthy, "@State_Healthy_Enter"); + State_Context_RegisterEnterHook("player_health", HealthState_Injured, "@State_Injured_Enter"); + State_Context_RegisterEnterHook("player_health", HealthState_Critical, "@State_Critical_Enter"); + + // Register exit hook for the 'Critical' state + State_Context_RegisterExitHook("player_health", HealthState_Critical, "@State_Critical_Exit"); +} + +@State_Healthy_Enter(const StateManager:this) { + static pPlayer; pPlayer = State_Manager_GetUserToken(this); + client_print(pPlayer, print_center, "You are healthy!"); +} + +@State_Injured_Enter(const StateManager:this) { + static pPlayer; pPlayer = State_Manager_GetUserToken(this); + client_print(pPlayer, print_center, "You are injured. Be careful!"); +} + +@State_Critical_Enter(const StateManager:this) { + static pPlayer; pPlayer = State_Manager_GetUserToken(this); + client_print(pPlayer, print_center, "You are in critical condition! Find a medkit!"); +} + +@State_Critical_Exit(const StateManager:this) { + static pPlayer; pPlayer = State_Manager_GetUserToken(this); + client_print(pPlayer, print_center, "You have recovered from critical condition."); +} +``` + +### 🔧 Setting Up the State Manager + +To use the state manager in your game logic, you need to create a manager instance for each player. + +```pawn +new StateManager:g_rgpPlayerStateManagers[MAX_PLAYERS + 1]; + +public client_connect(pPlayer) { + g_rgpPlayerStateManagers[pPlayer] = State_Manager_Create("player_health", pPlayer); +} + +public client_disconnect(pPlayer) { + State_Manager_Destroy(g_rgpPlayerStateManagers[pPlayer]); +} +``` + +### 🔄 Managing State Transitions + +Finally, let's manage transitions between these states based on the player's health. + +```pawn +@Player_UpdateState(const this) { + static StateManager:pManager; pManager = g_rgpPlayerStateManagers[this]; + static Float:flHealth; pev(this, pev_health, flHealth); + + if (flHealth < 10.0) { + State_Manager_SetState(pManager, HealthState_Critical); + } else if (flHealth < 50.0) { + State_Manager_SetState(pManager, HealthState_Injured); + } else { + State_Manager_SetState(pManager, HealthState_Healthy); + } +} +``` + +--- + +## Conclusion + +The **States API** simplifies the handling of complex state transitions and ensures your game logic remains clean and maintainable. By following the example above, you can easily integrate this API into your game and manage various states of the game. diff --git a/api/states/api_states.sma b/api/states/api_states.sma new file mode 100644 index 0000000..599a95d --- /dev/null +++ b/api/states/api_states.sma @@ -0,0 +1,356 @@ +#pragma semicolon 1 + +#include +#include + +#include + +enum StateContext { + StateContext_Id, + StateContext_HooksNum, + StateContext_InitialState, + StateContext_Context[STATE_CONTEXT_MAX_NAME_LEN], + StateContext_Hooks[STATE_MAX_CONTEXT_HOOKS], +}; + +enum StateManager { + StateManager_ContextId, + bool:StateManager_Free, + any:StateManager_State, + any:StateManager_NextState, + any:StateManager_PrevState, + Float:StateManager_ChangeTime, + any:StateManager_UserToken +}; + +enum StateHookType { + StateHookType_Change = 0, + StateHookType_Enter, + StateHookType_Exit, + StateHookType_Transition +}; + +enum StateHook { + StateHookType:StateHook_Type, + any:StateHook_From, + any:StateHook_To, + Function:StateHook_Function +}; + +new g_rgStateHooks[STATE_MAX_HOOKS][StateHook]; +new g_iStateHooksNum = 0; + +new Trie:g_itStateContexts = Invalid_Trie; +new g_rgStateContexts[STATE_MAX_CONTEXTS][StateContext]; +new g_iStateContextsNum = 0; + +new g_rgStateManagers[STATE_MAX_MANAGERS][StateManager]; +new g_iStateManagersNum = 0; + +new g_iFreeStateManagersNum = 0; + +/*--------------------------------[ Initialization ]--------------------------------*/ + +public plugin_precache() { + g_itStateContexts = TrieCreate(); +} + +public plugin_init() { + register_plugin("[API] States", "1.0.0", "Hedgehog Fog"); +} + +public plugin_natives() { + register_library("api_states"); + + register_native("State_Context_Register", "Native_RegisterContext"); + register_native("State_Context_RegisterChangeHook", "Native_RegisterContextChangeHook"); + register_native("State_Context_RegisterEnterHook", "Native_RegisterContextEnterHook"); + register_native("State_Context_RegisterExitHook", "Native_RegisterContextExitHook"); + register_native("State_Context_RegisterTransitionHook", "Native_RegisterContextTransitionHook"); + + register_native("State_Manager_Create", "Native_CreateManager"); + register_native("State_Manager_Destroy", "Native_DestroyManager"); + register_native("State_Manager_ResetState", "Native_ResetManagerState"); + register_native("State_Manager_SetState", "Native_SetManagerState"); + register_native("State_Manager_GetState", "Native_GetManagerState"); + register_native("State_Manager_GetPrevState", "Native_GetManagerPrevState"); + register_native("State_Manager_GetNextState", "Native_GetManagerNextState"); + register_native("State_Manager_GetUserToken", "Native_GetManagerUserToken"); + + register_native("State_Manager_IsInTransition", "Native_IsManagerInTransition"); + register_native("State_Manager_EndTransition", "Native_EndManagerTransition"); + register_native("State_Manager_CancelTransition", "Native_CancelManagerTransition"); +} + +/*--------------------------------[ Natives ]--------------------------------*/ + +public Native_RegisterContext(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new any:initialState = any:get_param(2); + + return State_RegisterContext(szContext, initialState); +} + +public Native_RegisterContextChangeHook(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(2, szFunction, charsmax(szFunction)); + + return State_RegisterHook(szContext, StateHookType_Change, _, _, get_func_pointer(szFunction, iPluginId)); +} + +public Native_RegisterContextEnterHook(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new any:toState = any:get_param(2); + new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(3, szFunction, charsmax(szFunction)); + + return State_RegisterHook(szContext, StateHookType_Enter, _, toState, get_func_pointer(szFunction, iPluginId)); +} + +public Native_RegisterContextExitHook(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new any:fromState = any:get_param(2); + new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(3, szFunction, charsmax(szFunction)); + + return State_RegisterHook(szContext, StateHookType_Exit, fromState, _, get_func_pointer(szFunction, iPluginId)); +} + +public Native_RegisterContextTransitionHook(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new any:fromState = any:get_param(2); + new any:toState = any:get_param(3); + new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(4, szFunction, charsmax(szFunction)); + + return State_RegisterHook(szContext, StateHookType_Transition, fromState, toState, get_func_pointer(szFunction, iPluginId)); +} + +public Native_CreateManager(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new any:userToken = any:get_param(2); + + return State_Manager_Create(szContext, userToken); +} + +public Native_DestroyManager(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + State_Manager_Destroy(iManagerId); +} + +public Native_ResetManagerState(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + State_Manager_ResetState(iManagerId); +} + +public Native_SetManagerState(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + static any:newState; newState = any:get_param(2); + static Float:flTransitionTime; flTransitionTime = get_param_f(3); + static bool:bForce; bForce = bool:get_param(4); + + State_Manager_SetState(iManagerId, newState, flTransitionTime, bForce); +} + +public any:Native_GetManagerState(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + return g_rgStateManagers[iManagerId][StateManager_State]; +} + +public any:Native_GetManagerPrevState(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + return g_rgStateManagers[iManagerId][StateManager_PrevState]; +} + +public any:Native_GetManagerNextState(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + return g_rgStateManagers[iManagerId][StateManager_NextState]; +} + +public any:Native_GetManagerUserToken(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + return g_rgStateManagers[iManagerId][StateManager_UserToken]; +} + +public bool:Native_IsManagerInTransition(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + return State_Manager_IsInTransition(iManagerId); +} + +public Native_CancelManagerTransition(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + State_Manager_CancelTransition(iManagerId); +} + +public Native_EndManagerTransition(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + State_Manager_EndTransition(iManagerId); +} + +/*--------------------------------[ Functions ]--------------------------------*/ + +State_RegisterContext(const szContext[], any:initialState) { + new iId = g_iStateContextsNum; + + g_rgStateContexts[iId][StateContext_Id] = iId; + g_rgStateContexts[iId][StateContext_InitialState] = initialState; + copy(g_rgStateContexts[iId][StateContext_Context], charsmax(g_rgStateContexts[][StateContext_Context]), szContext); + + g_iStateContextsNum++; + + return iId; +} + +State_RegisterHook(const szContext[], StateHookType:iType, any:fromState = 0, any:toState = 0, Function:fnCallback) { + new iId = g_iStateHooksNum; + + g_rgStateHooks[iId][StateHook_From] = fromState; + g_rgStateHooks[iId][StateHook_To] = toState; + g_rgStateHooks[iId][StateHook_Function] = fnCallback; + g_rgStateHooks[iId][StateHook_Type] = iType; + + new iContextId; TrieGetCell(g_itStateContexts, szContext, iContextId); + new iContextHookId = g_rgStateContexts[iContextId][StateContext_HooksNum]; + + g_rgStateContexts[iContextId][StateContext_Hooks][iContextHookId] = iId; + g_rgStateContexts[iContextId][StateContext_HooksNum]++; + + g_iStateHooksNum++; + + return iId; +} + +State_Manager_Create(const szContext[], any:userToken) { + new iId = State_Manager_AllocateId(); + + new iContextId; TrieGetCell(g_itStateContexts, szContext, iContextId); + + g_rgStateManagers[iId][StateManager_ContextId] = iContextId; + g_rgStateManagers[iId][StateManager_Free] = false; + g_rgStateManagers[iId][StateManager_UserToken] = userToken; + + State_Manager_ResetState(iId); + + g_iStateManagersNum++; + + return iId; +} + +State_Manager_AllocateId() { + if (g_iFreeStateManagersNum) { + for (new iId = 0; iId < g_iStateManagersNum; ++iId) { + if (g_rgStateManagers[iId][StateManager_Free]) { + g_rgStateManagers[iId][StateManager_Free] = false; + g_iFreeStateManagersNum--; + return iId; + } + } + } + + return g_iStateManagersNum < STATE_MAX_MANAGERS ? g_iStateManagersNum : -1; +} + +State_Manager_Destroy(const iManagerId) { + if (iManagerId == g_iStateManagersNum - 1) { + g_iStateManagersNum--; + return; + } + + g_rgStateManagers[iManagerId][StateManager_Free] = true; + g_iFreeStateManagersNum++; +} + +State_Manager_ResetState(const iManagerId) { + static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; + + g_rgStateManagers[iManagerId][StateManager_State] = g_rgStateContexts[iContextId][StateContext_InitialState]; + g_rgStateManagers[iManagerId][StateManager_PrevState] = g_rgStateContexts[iContextId][StateContext_InitialState]; + g_rgStateManagers[iManagerId][StateManager_NextState] = g_rgStateContexts[iContextId][StateContext_InitialState]; + g_rgStateManagers[iManagerId][StateManager_ChangeTime] = 0.0; + + remove_task(iManagerId); +} + +State_Manager_SetState(const iManagerId, any:newState, Float:flTransitionTime, bool:bForce = false) { + static Float:flGameTime; flGameTime = get_gametime(); + + if (g_rgStateManagers[iManagerId][StateManager_ChangeTime] > flGameTime) { + if (!bForce) return; + State_Manager_CancelTransition(iManagerId); + } + + g_rgStateManagers[iManagerId][StateManager_NextState] = newState; + g_rgStateManagers[iManagerId][StateManager_ChangeTime] = flGameTime + flTransitionTime; + + if (flTransitionTime > 0.0) { + set_task(flTransitionTime, "Task_UpdateManagerState", iManagerId); + } else { + State_Manager_Update(iManagerId); + } +} + +bool:State_Manager_IsInTransition(const iManagerId) { + return g_rgStateManagers[iManagerId][StateManager_ChangeTime] > get_gametime(); +} + +State_Manager_EndTransition(const iManagerId) { + remove_task(iManagerId); + g_rgStateManagers[iManagerId][StateManager_ChangeTime] = get_gametime(); + State_Manager_Update(iManagerId); +} + +State_Manager_CancelTransition(const iManagerId) { + remove_task(iManagerId); + g_rgStateManagers[iManagerId][StateManager_NextState] = g_rgStateManagers[iManagerId][StateManager_State]; + g_rgStateManagers[iManagerId][StateManager_ChangeTime] = get_gametime(); +} + +State_Manager_Update(const iManagerId) { + static any:currentState; currentState = g_rgStateManagers[iManagerId][StateManager_State]; + static any:nextState; nextState = g_rgStateManagers[iManagerId][StateManager_NextState]; + + if (currentState == nextState) return; + if (State_Manager_IsInTransition(iManagerId)) return; + + g_rgStateManagers[iManagerId][StateManager_State] = nextState; + g_rgStateManagers[iManagerId][StateManager_PrevState] = currentState; + + // Handle hooks + static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; + static iHooksNum; iHooksNum = g_rgStateContexts[iContextId][StateContext_HooksNum]; + + for (new iHook = 0; iHook < iHooksNum; ++iHook) { + static iHookId; iHookId = g_rgStateContexts[iContextId][StateContext_Hooks][iHook]; + + switch (g_rgStateHooks[iHookId][StateHook_Type]) { + case StateHookType_Transition: { + if (g_rgStateHooks[iHookId][StateHook_From] != currentState) continue; + if (g_rgStateHooks[iHookId][StateHook_To] != nextState) continue; + } + case StateHookType_Enter: { + if (g_rgStateHooks[iHookId][StateHook_To] != nextState) continue; + } + case StateHookType_Exit: { + if (g_rgStateHooks[iHookId][StateHook_From] != currentState) continue; + } + } + + callfunc_begin_p(g_rgStateHooks[iHookId][StateHook_Function]); + callfunc_push_int(iManagerId); + callfunc_push_int(currentState); + callfunc_push_int(nextState); + callfunc_end(); + } +} + +public Task_UpdateManagerState(iTaskId) { + static iManagerId; iManagerId = iTaskId; + + State_Manager_Update(iManagerId); +} diff --git a/api/states/include/api_states.inc b/api/states/include/api_states.inc new file mode 100644 index 0000000..c9cf7da --- /dev/null +++ b/api/states/include/api_states.inc @@ -0,0 +1,149 @@ +#if defined _api_states_included + #endinput +#endif +#define _api_states_included + +#pragma reqlib api_states + +#include + +/** + * Registers a new state context with an initial state. + * + * @param szContext The name of the state context. + * @param initialState The initial state to set for the context. + * @noreturn + */ +native State_Context_Register(const szContext[], any:initialState = 0); + +/** + * Registers a callback to be invoked when any state changes within the context. + * + * @param szContext The name of the state context. + * @param szCallback The name of the callback function to invoke on state change. + * @noreturn + */ +native State_Context_RegisterChangeHook(const szContext[], const szCallback[]); + +/** + * Registers a callback to be invoked when entering a specific state within the context. + * + * @param szContext The name of the state context. + * @param toState The state that triggers the callback when entered. + * @param szCallback The name of the callback function to invoke on entering the specified state. + * @noreturn + */ +native State_Context_RegisterEnterHook(const szContext[], any:toState, const szCallback[]); + +/** + * Registers a callback to be invoked when exiting a specific state within the context. + * + * @param szContext The name of the state context. + * @param fromState The state that triggers the callback when exited. + * @param szCallback The name of the callback function to invoke on exiting the specified state. + * @noreturn + */ +native State_Context_RegisterExitHook(const szContext[], any:fromState, const szCallback[]); + +/** + * Registers a callback to be invoked when transitioning from one state to another within the context. + * + * @param szContext The name of the state context. + * @param fromState The state from which the transition begins. + * @param toState The state to which the transition occurs. + * @param szCallback The name of the callback function to invoke during the transition. + * @noreturn + */ +native State_Context_RegisterTransitionHook(const szContext[], any:fromState, any:toState, const szCallback[]); + +/** + * Creates a new state manager for a given context and user token. + * + * @param szContext The name of the state context. + * @param userToken A unique identifier associated with the user or object being managed. + * @return A handle to the created state manager. + */ +native StateManager:State_Manager_Create(const szContext[], any:userToken); + +/** + * Destroys a state manager and releases associated resources. + * + * @param pManager The state manager handle. + * @noreturn + */ +native State_Manager_Destroy(const &StateManager:pManager); + +/** + * Resets the state of the state manager to its initial state. + * + * @param pManager The state manager handle. + * @noreturn + */ +native State_Manager_ResetState(const &StateManager:pManager); + +/** + * Sets a new state for the state manager with optional transition time. + * + * @param pManager The state manager handle. + * @param newState The new state to set. + * @param flTransitionTime The time in seconds for the transition to occur. Default is 0.0. + * @param bForce If true, forces the state transition even if a transition is already in progress. Default is false. + * @noreturn + */ +native State_Manager_SetState(const &StateManager:pManager, any:newState, Float:flTransitionTime = 0.0, bool:bForce = false); + +/** + * Retrieves the current state from the state manager. + * + * @param pManager The state manager handle. + * @return The current state. + */ +native any:State_Manager_GetState(const &StateManager:pManager); + +/** + * Retrieves the previous state from the state manager. + * + * @param pManager The state manager handle. + * @return The previous state. + */ +native any:State_Manager_GetPrevState(const &StateManager:pManager); + +/** + * Retrieves the next state from the state manager. + * + * @param pManager The state manager handle. + * @return The next state. + */ +native any:State_Manager_GetNextState(const &StateManager:pManager); + +/** + * Retrieves the user token associated with the state manager. + * + * @param pManager The state manager handle. + * @return The user token. + */ +native any:State_Manager_GetUserToken(const &StateManager:pManager); + +/** + * Checks if the state manager is currently in a state transition. + * + * @param pManager The state manager handle. + * @return True if a transition is in progress, false otherwise. + */ +native bool:State_Manager_IsInTransition(const &StateManager:pManager); + +/** + * Ends the pending state transition immediately. + * + * @param pManager The state manager handle. + * @noreturn + */ +native bool:State_Manager_EndTransition(const &StateManager:pManager); + +/** + * Cancels the scheduled state transition, if any. + * + * @param pManager The state manager handle. + * @noreturn + */ +native bool:State_Manager_CancelTransition(const &StateManager:pManager); diff --git a/api/states/include/api_states_const.inc b/api/states/include/api_states_const.inc new file mode 100644 index 0000000..b27f453 --- /dev/null +++ b/api/states/include/api_states_const.inc @@ -0,0 +1,12 @@ +#if defined _api_states_const_included + #endinput +#endif +#define _api_states_const_included + +#define STATE_CONTEXT_MAX_NAME_LEN 64 +#define STATE_MAX_CONTEXTS 32 +#define STATE_MAX_CONTEXT_HOOKS 64 +#define STATE_MAX_HOOKS (STATE_MAX_CONTEXTS * STATE_MAX_CONTEXT_HOOKS) +#define STATE_MAX_MANAGERS 256 + +enum StateManager { StateManager_Invalid = -1 }; From 0be3c3fd2508cc0f3a1e04cad3e28c2fd892e8fb Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 20 Aug 2024 07:26:24 +0000 Subject: [PATCH 226/231] fix eol --- api/states/api_states.sma | 712 ++++++++++++------------ api/states/include/api_states.inc | 298 +++++----- api/states/include/api_states_const.inc | 24 +- 3 files changed, 517 insertions(+), 517 deletions(-) diff --git a/api/states/api_states.sma b/api/states/api_states.sma index 599a95d..104a733 100644 --- a/api/states/api_states.sma +++ b/api/states/api_states.sma @@ -1,356 +1,356 @@ -#pragma semicolon 1 - -#include -#include - -#include - -enum StateContext { - StateContext_Id, - StateContext_HooksNum, - StateContext_InitialState, - StateContext_Context[STATE_CONTEXT_MAX_NAME_LEN], - StateContext_Hooks[STATE_MAX_CONTEXT_HOOKS], -}; - -enum StateManager { - StateManager_ContextId, - bool:StateManager_Free, - any:StateManager_State, - any:StateManager_NextState, - any:StateManager_PrevState, - Float:StateManager_ChangeTime, - any:StateManager_UserToken -}; - -enum StateHookType { - StateHookType_Change = 0, - StateHookType_Enter, - StateHookType_Exit, - StateHookType_Transition -}; - -enum StateHook { - StateHookType:StateHook_Type, - any:StateHook_From, - any:StateHook_To, - Function:StateHook_Function -}; - -new g_rgStateHooks[STATE_MAX_HOOKS][StateHook]; -new g_iStateHooksNum = 0; - -new Trie:g_itStateContexts = Invalid_Trie; -new g_rgStateContexts[STATE_MAX_CONTEXTS][StateContext]; -new g_iStateContextsNum = 0; - -new g_rgStateManagers[STATE_MAX_MANAGERS][StateManager]; -new g_iStateManagersNum = 0; - -new g_iFreeStateManagersNum = 0; - -/*--------------------------------[ Initialization ]--------------------------------*/ - -public plugin_precache() { - g_itStateContexts = TrieCreate(); -} - -public plugin_init() { - register_plugin("[API] States", "1.0.0", "Hedgehog Fog"); -} - -public plugin_natives() { - register_library("api_states"); - - register_native("State_Context_Register", "Native_RegisterContext"); - register_native("State_Context_RegisterChangeHook", "Native_RegisterContextChangeHook"); - register_native("State_Context_RegisterEnterHook", "Native_RegisterContextEnterHook"); - register_native("State_Context_RegisterExitHook", "Native_RegisterContextExitHook"); - register_native("State_Context_RegisterTransitionHook", "Native_RegisterContextTransitionHook"); - - register_native("State_Manager_Create", "Native_CreateManager"); - register_native("State_Manager_Destroy", "Native_DestroyManager"); - register_native("State_Manager_ResetState", "Native_ResetManagerState"); - register_native("State_Manager_SetState", "Native_SetManagerState"); - register_native("State_Manager_GetState", "Native_GetManagerState"); - register_native("State_Manager_GetPrevState", "Native_GetManagerPrevState"); - register_native("State_Manager_GetNextState", "Native_GetManagerNextState"); - register_native("State_Manager_GetUserToken", "Native_GetManagerUserToken"); - - register_native("State_Manager_IsInTransition", "Native_IsManagerInTransition"); - register_native("State_Manager_EndTransition", "Native_EndManagerTransition"); - register_native("State_Manager_CancelTransition", "Native_CancelManagerTransition"); -} - -/*--------------------------------[ Natives ]--------------------------------*/ - -public Native_RegisterContext(iPluginId, iArgc) { - new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); - new any:initialState = any:get_param(2); - - return State_RegisterContext(szContext, initialState); -} - -public Native_RegisterContextChangeHook(iPluginId, iArgc) { - new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); - new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(2, szFunction, charsmax(szFunction)); - - return State_RegisterHook(szContext, StateHookType_Change, _, _, get_func_pointer(szFunction, iPluginId)); -} - -public Native_RegisterContextEnterHook(iPluginId, iArgc) { - new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); - new any:toState = any:get_param(2); - new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(3, szFunction, charsmax(szFunction)); - - return State_RegisterHook(szContext, StateHookType_Enter, _, toState, get_func_pointer(szFunction, iPluginId)); -} - -public Native_RegisterContextExitHook(iPluginId, iArgc) { - new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); - new any:fromState = any:get_param(2); - new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(3, szFunction, charsmax(szFunction)); - - return State_RegisterHook(szContext, StateHookType_Exit, fromState, _, get_func_pointer(szFunction, iPluginId)); -} - -public Native_RegisterContextTransitionHook(iPluginId, iArgc) { - new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); - new any:fromState = any:get_param(2); - new any:toState = any:get_param(3); - new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(4, szFunction, charsmax(szFunction)); - - return State_RegisterHook(szContext, StateHookType_Transition, fromState, toState, get_func_pointer(szFunction, iPluginId)); -} - -public Native_CreateManager(iPluginId, iArgc) { - new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); - new any:userToken = any:get_param(2); - - return State_Manager_Create(szContext, userToken); -} - -public Native_DestroyManager(iPluginId, iArgc) { - static iManagerId; iManagerId = get_param_byref(1); - - State_Manager_Destroy(iManagerId); -} - -public Native_ResetManagerState(iPluginId, iArgc) { - static iManagerId; iManagerId = get_param_byref(1); - - State_Manager_ResetState(iManagerId); -} - -public Native_SetManagerState(iPluginId, iArgc) { - static iManagerId; iManagerId = get_param_byref(1); - static any:newState; newState = any:get_param(2); - static Float:flTransitionTime; flTransitionTime = get_param_f(3); - static bool:bForce; bForce = bool:get_param(4); - - State_Manager_SetState(iManagerId, newState, flTransitionTime, bForce); -} - -public any:Native_GetManagerState(iPluginId, iArgc) { - static iManagerId; iManagerId = get_param_byref(1); - - return g_rgStateManagers[iManagerId][StateManager_State]; -} - -public any:Native_GetManagerPrevState(iPluginId, iArgc) { - static iManagerId; iManagerId = get_param_byref(1); - - return g_rgStateManagers[iManagerId][StateManager_PrevState]; -} - -public any:Native_GetManagerNextState(iPluginId, iArgc) { - static iManagerId; iManagerId = get_param_byref(1); - - return g_rgStateManagers[iManagerId][StateManager_NextState]; -} - -public any:Native_GetManagerUserToken(iPluginId, iArgc) { - static iManagerId; iManagerId = get_param_byref(1); - - return g_rgStateManagers[iManagerId][StateManager_UserToken]; -} - -public bool:Native_IsManagerInTransition(iPluginId, iArgc) { - static iManagerId; iManagerId = get_param_byref(1); - - return State_Manager_IsInTransition(iManagerId); -} - -public Native_CancelManagerTransition(iPluginId, iArgc) { - static iManagerId; iManagerId = get_param_byref(1); - - State_Manager_CancelTransition(iManagerId); -} - -public Native_EndManagerTransition(iPluginId, iArgc) { - static iManagerId; iManagerId = get_param_byref(1); - - State_Manager_EndTransition(iManagerId); -} - -/*--------------------------------[ Functions ]--------------------------------*/ - -State_RegisterContext(const szContext[], any:initialState) { - new iId = g_iStateContextsNum; - - g_rgStateContexts[iId][StateContext_Id] = iId; - g_rgStateContexts[iId][StateContext_InitialState] = initialState; - copy(g_rgStateContexts[iId][StateContext_Context], charsmax(g_rgStateContexts[][StateContext_Context]), szContext); - - g_iStateContextsNum++; - - return iId; -} - -State_RegisterHook(const szContext[], StateHookType:iType, any:fromState = 0, any:toState = 0, Function:fnCallback) { - new iId = g_iStateHooksNum; - - g_rgStateHooks[iId][StateHook_From] = fromState; - g_rgStateHooks[iId][StateHook_To] = toState; - g_rgStateHooks[iId][StateHook_Function] = fnCallback; - g_rgStateHooks[iId][StateHook_Type] = iType; - - new iContextId; TrieGetCell(g_itStateContexts, szContext, iContextId); - new iContextHookId = g_rgStateContexts[iContextId][StateContext_HooksNum]; - - g_rgStateContexts[iContextId][StateContext_Hooks][iContextHookId] = iId; - g_rgStateContexts[iContextId][StateContext_HooksNum]++; - - g_iStateHooksNum++; - - return iId; -} - -State_Manager_Create(const szContext[], any:userToken) { - new iId = State_Manager_AllocateId(); - - new iContextId; TrieGetCell(g_itStateContexts, szContext, iContextId); - - g_rgStateManagers[iId][StateManager_ContextId] = iContextId; - g_rgStateManagers[iId][StateManager_Free] = false; - g_rgStateManagers[iId][StateManager_UserToken] = userToken; - - State_Manager_ResetState(iId); - - g_iStateManagersNum++; - - return iId; -} - -State_Manager_AllocateId() { - if (g_iFreeStateManagersNum) { - for (new iId = 0; iId < g_iStateManagersNum; ++iId) { - if (g_rgStateManagers[iId][StateManager_Free]) { - g_rgStateManagers[iId][StateManager_Free] = false; - g_iFreeStateManagersNum--; - return iId; - } - } - } - - return g_iStateManagersNum < STATE_MAX_MANAGERS ? g_iStateManagersNum : -1; -} - -State_Manager_Destroy(const iManagerId) { - if (iManagerId == g_iStateManagersNum - 1) { - g_iStateManagersNum--; - return; - } - - g_rgStateManagers[iManagerId][StateManager_Free] = true; - g_iFreeStateManagersNum++; -} - -State_Manager_ResetState(const iManagerId) { - static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; - - g_rgStateManagers[iManagerId][StateManager_State] = g_rgStateContexts[iContextId][StateContext_InitialState]; - g_rgStateManagers[iManagerId][StateManager_PrevState] = g_rgStateContexts[iContextId][StateContext_InitialState]; - g_rgStateManagers[iManagerId][StateManager_NextState] = g_rgStateContexts[iContextId][StateContext_InitialState]; - g_rgStateManagers[iManagerId][StateManager_ChangeTime] = 0.0; - - remove_task(iManagerId); -} - -State_Manager_SetState(const iManagerId, any:newState, Float:flTransitionTime, bool:bForce = false) { - static Float:flGameTime; flGameTime = get_gametime(); - - if (g_rgStateManagers[iManagerId][StateManager_ChangeTime] > flGameTime) { - if (!bForce) return; - State_Manager_CancelTransition(iManagerId); - } - - g_rgStateManagers[iManagerId][StateManager_NextState] = newState; - g_rgStateManagers[iManagerId][StateManager_ChangeTime] = flGameTime + flTransitionTime; - - if (flTransitionTime > 0.0) { - set_task(flTransitionTime, "Task_UpdateManagerState", iManagerId); - } else { - State_Manager_Update(iManagerId); - } -} - -bool:State_Manager_IsInTransition(const iManagerId) { - return g_rgStateManagers[iManagerId][StateManager_ChangeTime] > get_gametime(); -} - -State_Manager_EndTransition(const iManagerId) { - remove_task(iManagerId); - g_rgStateManagers[iManagerId][StateManager_ChangeTime] = get_gametime(); - State_Manager_Update(iManagerId); -} - -State_Manager_CancelTransition(const iManagerId) { - remove_task(iManagerId); - g_rgStateManagers[iManagerId][StateManager_NextState] = g_rgStateManagers[iManagerId][StateManager_State]; - g_rgStateManagers[iManagerId][StateManager_ChangeTime] = get_gametime(); -} - -State_Manager_Update(const iManagerId) { - static any:currentState; currentState = g_rgStateManagers[iManagerId][StateManager_State]; - static any:nextState; nextState = g_rgStateManagers[iManagerId][StateManager_NextState]; - - if (currentState == nextState) return; - if (State_Manager_IsInTransition(iManagerId)) return; - - g_rgStateManagers[iManagerId][StateManager_State] = nextState; - g_rgStateManagers[iManagerId][StateManager_PrevState] = currentState; - - // Handle hooks - static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; - static iHooksNum; iHooksNum = g_rgStateContexts[iContextId][StateContext_HooksNum]; - - for (new iHook = 0; iHook < iHooksNum; ++iHook) { - static iHookId; iHookId = g_rgStateContexts[iContextId][StateContext_Hooks][iHook]; - - switch (g_rgStateHooks[iHookId][StateHook_Type]) { - case StateHookType_Transition: { - if (g_rgStateHooks[iHookId][StateHook_From] != currentState) continue; - if (g_rgStateHooks[iHookId][StateHook_To] != nextState) continue; - } - case StateHookType_Enter: { - if (g_rgStateHooks[iHookId][StateHook_To] != nextState) continue; - } - case StateHookType_Exit: { - if (g_rgStateHooks[iHookId][StateHook_From] != currentState) continue; - } - } - - callfunc_begin_p(g_rgStateHooks[iHookId][StateHook_Function]); - callfunc_push_int(iManagerId); - callfunc_push_int(currentState); - callfunc_push_int(nextState); - callfunc_end(); - } -} - -public Task_UpdateManagerState(iTaskId) { - static iManagerId; iManagerId = iTaskId; - - State_Manager_Update(iManagerId); -} +#pragma semicolon 1 + +#include +#include + +#include + +enum StateContext { + StateContext_Id, + StateContext_HooksNum, + StateContext_InitialState, + StateContext_Context[STATE_CONTEXT_MAX_NAME_LEN], + StateContext_Hooks[STATE_MAX_CONTEXT_HOOKS], +}; + +enum StateManager { + StateManager_ContextId, + bool:StateManager_Free, + any:StateManager_State, + any:StateManager_NextState, + any:StateManager_PrevState, + Float:StateManager_ChangeTime, + any:StateManager_UserToken +}; + +enum StateHookType { + StateHookType_Change = 0, + StateHookType_Enter, + StateHookType_Exit, + StateHookType_Transition +}; + +enum StateHook { + StateHookType:StateHook_Type, + any:StateHook_From, + any:StateHook_To, + Function:StateHook_Function +}; + +new g_rgStateHooks[STATE_MAX_HOOKS][StateHook]; +new g_iStateHooksNum = 0; + +new Trie:g_itStateContexts = Invalid_Trie; +new g_rgStateContexts[STATE_MAX_CONTEXTS][StateContext]; +new g_iStateContextsNum = 0; + +new g_rgStateManagers[STATE_MAX_MANAGERS][StateManager]; +new g_iStateManagersNum = 0; + +new g_iFreeStateManagersNum = 0; + +/*--------------------------------[ Initialization ]--------------------------------*/ + +public plugin_precache() { + g_itStateContexts = TrieCreate(); +} + +public plugin_init() { + register_plugin("[API] States", "1.0.0", "Hedgehog Fog"); +} + +public plugin_natives() { + register_library("api_states"); + + register_native("State_Context_Register", "Native_RegisterContext"); + register_native("State_Context_RegisterChangeHook", "Native_RegisterContextChangeHook"); + register_native("State_Context_RegisterEnterHook", "Native_RegisterContextEnterHook"); + register_native("State_Context_RegisterExitHook", "Native_RegisterContextExitHook"); + register_native("State_Context_RegisterTransitionHook", "Native_RegisterContextTransitionHook"); + + register_native("State_Manager_Create", "Native_CreateManager"); + register_native("State_Manager_Destroy", "Native_DestroyManager"); + register_native("State_Manager_ResetState", "Native_ResetManagerState"); + register_native("State_Manager_SetState", "Native_SetManagerState"); + register_native("State_Manager_GetState", "Native_GetManagerState"); + register_native("State_Manager_GetPrevState", "Native_GetManagerPrevState"); + register_native("State_Manager_GetNextState", "Native_GetManagerNextState"); + register_native("State_Manager_GetUserToken", "Native_GetManagerUserToken"); + + register_native("State_Manager_IsInTransition", "Native_IsManagerInTransition"); + register_native("State_Manager_EndTransition", "Native_EndManagerTransition"); + register_native("State_Manager_CancelTransition", "Native_CancelManagerTransition"); +} + +/*--------------------------------[ Natives ]--------------------------------*/ + +public Native_RegisterContext(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new any:initialState = any:get_param(2); + + return State_RegisterContext(szContext, initialState); +} + +public Native_RegisterContextChangeHook(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(2, szFunction, charsmax(szFunction)); + + return State_RegisterHook(szContext, StateHookType_Change, _, _, get_func_pointer(szFunction, iPluginId)); +} + +public Native_RegisterContextEnterHook(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new any:toState = any:get_param(2); + new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(3, szFunction, charsmax(szFunction)); + + return State_RegisterHook(szContext, StateHookType_Enter, _, toState, get_func_pointer(szFunction, iPluginId)); +} + +public Native_RegisterContextExitHook(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new any:fromState = any:get_param(2); + new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(3, szFunction, charsmax(szFunction)); + + return State_RegisterHook(szContext, StateHookType_Exit, fromState, _, get_func_pointer(szFunction, iPluginId)); +} + +public Native_RegisterContextTransitionHook(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new any:fromState = any:get_param(2); + new any:toState = any:get_param(3); + new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(4, szFunction, charsmax(szFunction)); + + return State_RegisterHook(szContext, StateHookType_Transition, fromState, toState, get_func_pointer(szFunction, iPluginId)); +} + +public Native_CreateManager(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new any:userToken = any:get_param(2); + + return State_Manager_Create(szContext, userToken); +} + +public Native_DestroyManager(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + State_Manager_Destroy(iManagerId); +} + +public Native_ResetManagerState(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + State_Manager_ResetState(iManagerId); +} + +public Native_SetManagerState(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + static any:newState; newState = any:get_param(2); + static Float:flTransitionTime; flTransitionTime = get_param_f(3); + static bool:bForce; bForce = bool:get_param(4); + + State_Manager_SetState(iManagerId, newState, flTransitionTime, bForce); +} + +public any:Native_GetManagerState(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + return g_rgStateManagers[iManagerId][StateManager_State]; +} + +public any:Native_GetManagerPrevState(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + return g_rgStateManagers[iManagerId][StateManager_PrevState]; +} + +public any:Native_GetManagerNextState(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + return g_rgStateManagers[iManagerId][StateManager_NextState]; +} + +public any:Native_GetManagerUserToken(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + return g_rgStateManagers[iManagerId][StateManager_UserToken]; +} + +public bool:Native_IsManagerInTransition(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + return State_Manager_IsInTransition(iManagerId); +} + +public Native_CancelManagerTransition(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + State_Manager_CancelTransition(iManagerId); +} + +public Native_EndManagerTransition(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + State_Manager_EndTransition(iManagerId); +} + +/*--------------------------------[ Functions ]--------------------------------*/ + +State_RegisterContext(const szContext[], any:initialState) { + new iId = g_iStateContextsNum; + + g_rgStateContexts[iId][StateContext_Id] = iId; + g_rgStateContexts[iId][StateContext_InitialState] = initialState; + copy(g_rgStateContexts[iId][StateContext_Context], charsmax(g_rgStateContexts[][StateContext_Context]), szContext); + + g_iStateContextsNum++; + + return iId; +} + +State_RegisterHook(const szContext[], StateHookType:iType, any:fromState = 0, any:toState = 0, Function:fnCallback) { + new iId = g_iStateHooksNum; + + g_rgStateHooks[iId][StateHook_From] = fromState; + g_rgStateHooks[iId][StateHook_To] = toState; + g_rgStateHooks[iId][StateHook_Function] = fnCallback; + g_rgStateHooks[iId][StateHook_Type] = iType; + + new iContextId; TrieGetCell(g_itStateContexts, szContext, iContextId); + new iContextHookId = g_rgStateContexts[iContextId][StateContext_HooksNum]; + + g_rgStateContexts[iContextId][StateContext_Hooks][iContextHookId] = iId; + g_rgStateContexts[iContextId][StateContext_HooksNum]++; + + g_iStateHooksNum++; + + return iId; +} + +State_Manager_Create(const szContext[], any:userToken) { + new iId = State_Manager_AllocateId(); + + new iContextId; TrieGetCell(g_itStateContexts, szContext, iContextId); + + g_rgStateManagers[iId][StateManager_ContextId] = iContextId; + g_rgStateManagers[iId][StateManager_Free] = false; + g_rgStateManagers[iId][StateManager_UserToken] = userToken; + + State_Manager_ResetState(iId); + + g_iStateManagersNum++; + + return iId; +} + +State_Manager_AllocateId() { + if (g_iFreeStateManagersNum) { + for (new iId = 0; iId < g_iStateManagersNum; ++iId) { + if (g_rgStateManagers[iId][StateManager_Free]) { + g_rgStateManagers[iId][StateManager_Free] = false; + g_iFreeStateManagersNum--; + return iId; + } + } + } + + return g_iStateManagersNum < STATE_MAX_MANAGERS ? g_iStateManagersNum : -1; +} + +State_Manager_Destroy(const iManagerId) { + if (iManagerId == g_iStateManagersNum - 1) { + g_iStateManagersNum--; + return; + } + + g_rgStateManagers[iManagerId][StateManager_Free] = true; + g_iFreeStateManagersNum++; +} + +State_Manager_ResetState(const iManagerId) { + static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; + + g_rgStateManagers[iManagerId][StateManager_State] = g_rgStateContexts[iContextId][StateContext_InitialState]; + g_rgStateManagers[iManagerId][StateManager_PrevState] = g_rgStateContexts[iContextId][StateContext_InitialState]; + g_rgStateManagers[iManagerId][StateManager_NextState] = g_rgStateContexts[iContextId][StateContext_InitialState]; + g_rgStateManagers[iManagerId][StateManager_ChangeTime] = 0.0; + + remove_task(iManagerId); +} + +State_Manager_SetState(const iManagerId, any:newState, Float:flTransitionTime, bool:bForce = false) { + static Float:flGameTime; flGameTime = get_gametime(); + + if (g_rgStateManagers[iManagerId][StateManager_ChangeTime] > flGameTime) { + if (!bForce) return; + State_Manager_CancelTransition(iManagerId); + } + + g_rgStateManagers[iManagerId][StateManager_NextState] = newState; + g_rgStateManagers[iManagerId][StateManager_ChangeTime] = flGameTime + flTransitionTime; + + if (flTransitionTime > 0.0) { + set_task(flTransitionTime, "Task_UpdateManagerState", iManagerId); + } else { + State_Manager_Update(iManagerId); + } +} + +bool:State_Manager_IsInTransition(const iManagerId) { + return g_rgStateManagers[iManagerId][StateManager_ChangeTime] > get_gametime(); +} + +State_Manager_EndTransition(const iManagerId) { + remove_task(iManagerId); + g_rgStateManagers[iManagerId][StateManager_ChangeTime] = get_gametime(); + State_Manager_Update(iManagerId); +} + +State_Manager_CancelTransition(const iManagerId) { + remove_task(iManagerId); + g_rgStateManagers[iManagerId][StateManager_NextState] = g_rgStateManagers[iManagerId][StateManager_State]; + g_rgStateManagers[iManagerId][StateManager_ChangeTime] = get_gametime(); +} + +State_Manager_Update(const iManagerId) { + static any:currentState; currentState = g_rgStateManagers[iManagerId][StateManager_State]; + static any:nextState; nextState = g_rgStateManagers[iManagerId][StateManager_NextState]; + + if (currentState == nextState) return; + if (State_Manager_IsInTransition(iManagerId)) return; + + g_rgStateManagers[iManagerId][StateManager_State] = nextState; + g_rgStateManagers[iManagerId][StateManager_PrevState] = currentState; + + // Handle hooks + static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; + static iHooksNum; iHooksNum = g_rgStateContexts[iContextId][StateContext_HooksNum]; + + for (new iHook = 0; iHook < iHooksNum; ++iHook) { + static iHookId; iHookId = g_rgStateContexts[iContextId][StateContext_Hooks][iHook]; + + switch (g_rgStateHooks[iHookId][StateHook_Type]) { + case StateHookType_Transition: { + if (g_rgStateHooks[iHookId][StateHook_From] != currentState) continue; + if (g_rgStateHooks[iHookId][StateHook_To] != nextState) continue; + } + case StateHookType_Enter: { + if (g_rgStateHooks[iHookId][StateHook_To] != nextState) continue; + } + case StateHookType_Exit: { + if (g_rgStateHooks[iHookId][StateHook_From] != currentState) continue; + } + } + + callfunc_begin_p(g_rgStateHooks[iHookId][StateHook_Function]); + callfunc_push_int(iManagerId); + callfunc_push_int(currentState); + callfunc_push_int(nextState); + callfunc_end(); + } +} + +public Task_UpdateManagerState(iTaskId) { + static iManagerId; iManagerId = iTaskId; + + State_Manager_Update(iManagerId); +} diff --git a/api/states/include/api_states.inc b/api/states/include/api_states.inc index c9cf7da..7c2744f 100644 --- a/api/states/include/api_states.inc +++ b/api/states/include/api_states.inc @@ -1,149 +1,149 @@ -#if defined _api_states_included - #endinput -#endif -#define _api_states_included - -#pragma reqlib api_states - -#include - -/** - * Registers a new state context with an initial state. - * - * @param szContext The name of the state context. - * @param initialState The initial state to set for the context. - * @noreturn - */ -native State_Context_Register(const szContext[], any:initialState = 0); - -/** - * Registers a callback to be invoked when any state changes within the context. - * - * @param szContext The name of the state context. - * @param szCallback The name of the callback function to invoke on state change. - * @noreturn - */ -native State_Context_RegisterChangeHook(const szContext[], const szCallback[]); - -/** - * Registers a callback to be invoked when entering a specific state within the context. - * - * @param szContext The name of the state context. - * @param toState The state that triggers the callback when entered. - * @param szCallback The name of the callback function to invoke on entering the specified state. - * @noreturn - */ -native State_Context_RegisterEnterHook(const szContext[], any:toState, const szCallback[]); - -/** - * Registers a callback to be invoked when exiting a specific state within the context. - * - * @param szContext The name of the state context. - * @param fromState The state that triggers the callback when exited. - * @param szCallback The name of the callback function to invoke on exiting the specified state. - * @noreturn - */ -native State_Context_RegisterExitHook(const szContext[], any:fromState, const szCallback[]); - -/** - * Registers a callback to be invoked when transitioning from one state to another within the context. - * - * @param szContext The name of the state context. - * @param fromState The state from which the transition begins. - * @param toState The state to which the transition occurs. - * @param szCallback The name of the callback function to invoke during the transition. - * @noreturn - */ -native State_Context_RegisterTransitionHook(const szContext[], any:fromState, any:toState, const szCallback[]); - -/** - * Creates a new state manager for a given context and user token. - * - * @param szContext The name of the state context. - * @param userToken A unique identifier associated with the user or object being managed. - * @return A handle to the created state manager. - */ -native StateManager:State_Manager_Create(const szContext[], any:userToken); - -/** - * Destroys a state manager and releases associated resources. - * - * @param pManager The state manager handle. - * @noreturn - */ -native State_Manager_Destroy(const &StateManager:pManager); - -/** - * Resets the state of the state manager to its initial state. - * - * @param pManager The state manager handle. - * @noreturn - */ -native State_Manager_ResetState(const &StateManager:pManager); - -/** - * Sets a new state for the state manager with optional transition time. - * - * @param pManager The state manager handle. - * @param newState The new state to set. - * @param flTransitionTime The time in seconds for the transition to occur. Default is 0.0. - * @param bForce If true, forces the state transition even if a transition is already in progress. Default is false. - * @noreturn - */ -native State_Manager_SetState(const &StateManager:pManager, any:newState, Float:flTransitionTime = 0.0, bool:bForce = false); - -/** - * Retrieves the current state from the state manager. - * - * @param pManager The state manager handle. - * @return The current state. - */ -native any:State_Manager_GetState(const &StateManager:pManager); - -/** - * Retrieves the previous state from the state manager. - * - * @param pManager The state manager handle. - * @return The previous state. - */ -native any:State_Manager_GetPrevState(const &StateManager:pManager); - -/** - * Retrieves the next state from the state manager. - * - * @param pManager The state manager handle. - * @return The next state. - */ -native any:State_Manager_GetNextState(const &StateManager:pManager); - -/** - * Retrieves the user token associated with the state manager. - * - * @param pManager The state manager handle. - * @return The user token. - */ -native any:State_Manager_GetUserToken(const &StateManager:pManager); - -/** - * Checks if the state manager is currently in a state transition. - * - * @param pManager The state manager handle. - * @return True if a transition is in progress, false otherwise. - */ -native bool:State_Manager_IsInTransition(const &StateManager:pManager); - -/** - * Ends the pending state transition immediately. - * - * @param pManager The state manager handle. - * @noreturn - */ -native bool:State_Manager_EndTransition(const &StateManager:pManager); - -/** - * Cancels the scheduled state transition, if any. - * - * @param pManager The state manager handle. - * @noreturn - */ -native bool:State_Manager_CancelTransition(const &StateManager:pManager); +#if defined _api_states_included + #endinput +#endif +#define _api_states_included + +#pragma reqlib api_states + +#include + +/** + * Registers a new state context with an initial state. + * + * @param szContext The name of the state context. + * @param initialState The initial state to set for the context. + * @noreturn + */ +native State_Context_Register(const szContext[], any:initialState = 0); + +/** + * Registers a callback to be invoked when any state changes within the context. + * + * @param szContext The name of the state context. + * @param szCallback The name of the callback function to invoke on state change. + * @noreturn + */ +native State_Context_RegisterChangeHook(const szContext[], const szCallback[]); + +/** + * Registers a callback to be invoked when entering a specific state within the context. + * + * @param szContext The name of the state context. + * @param toState The state that triggers the callback when entered. + * @param szCallback The name of the callback function to invoke on entering the specified state. + * @noreturn + */ +native State_Context_RegisterEnterHook(const szContext[], any:toState, const szCallback[]); + +/** + * Registers a callback to be invoked when exiting a specific state within the context. + * + * @param szContext The name of the state context. + * @param fromState The state that triggers the callback when exited. + * @param szCallback The name of the callback function to invoke on exiting the specified state. + * @noreturn + */ +native State_Context_RegisterExitHook(const szContext[], any:fromState, const szCallback[]); + +/** + * Registers a callback to be invoked when transitioning from one state to another within the context. + * + * @param szContext The name of the state context. + * @param fromState The state from which the transition begins. + * @param toState The state to which the transition occurs. + * @param szCallback The name of the callback function to invoke during the transition. + * @noreturn + */ +native State_Context_RegisterTransitionHook(const szContext[], any:fromState, any:toState, const szCallback[]); + +/** + * Creates a new state manager for a given context and user token. + * + * @param szContext The name of the state context. + * @param userToken A unique identifier associated with the user or object being managed. + * @return A handle to the created state manager. + */ +native StateManager:State_Manager_Create(const szContext[], any:userToken); + +/** + * Destroys a state manager and releases associated resources. + * + * @param pManager The state manager handle. + * @noreturn + */ +native State_Manager_Destroy(const &StateManager:pManager); + +/** + * Resets the state of the state manager to its initial state. + * + * @param pManager The state manager handle. + * @noreturn + */ +native State_Manager_ResetState(const &StateManager:pManager); + +/** + * Sets a new state for the state manager with optional transition time. + * + * @param pManager The state manager handle. + * @param newState The new state to set. + * @param flTransitionTime The time in seconds for the transition to occur. Default is 0.0. + * @param bForce If true, forces the state transition even if a transition is already in progress. Default is false. + * @noreturn + */ +native State_Manager_SetState(const &StateManager:pManager, any:newState, Float:flTransitionTime = 0.0, bool:bForce = false); + +/** + * Retrieves the current state from the state manager. + * + * @param pManager The state manager handle. + * @return The current state. + */ +native any:State_Manager_GetState(const &StateManager:pManager); + +/** + * Retrieves the previous state from the state manager. + * + * @param pManager The state manager handle. + * @return The previous state. + */ +native any:State_Manager_GetPrevState(const &StateManager:pManager); + +/** + * Retrieves the next state from the state manager. + * + * @param pManager The state manager handle. + * @return The next state. + */ +native any:State_Manager_GetNextState(const &StateManager:pManager); + +/** + * Retrieves the user token associated with the state manager. + * + * @param pManager The state manager handle. + * @return The user token. + */ +native any:State_Manager_GetUserToken(const &StateManager:pManager); + +/** + * Checks if the state manager is currently in a state transition. + * + * @param pManager The state manager handle. + * @return True if a transition is in progress, false otherwise. + */ +native bool:State_Manager_IsInTransition(const &StateManager:pManager); + +/** + * Ends the pending state transition immediately. + * + * @param pManager The state manager handle. + * @noreturn + */ +native bool:State_Manager_EndTransition(const &StateManager:pManager); + +/** + * Cancels the scheduled state transition, if any. + * + * @param pManager The state manager handle. + * @noreturn + */ +native bool:State_Manager_CancelTransition(const &StateManager:pManager); diff --git a/api/states/include/api_states_const.inc b/api/states/include/api_states_const.inc index b27f453..09b9032 100644 --- a/api/states/include/api_states_const.inc +++ b/api/states/include/api_states_const.inc @@ -1,12 +1,12 @@ -#if defined _api_states_const_included - #endinput -#endif -#define _api_states_const_included - -#define STATE_CONTEXT_MAX_NAME_LEN 64 -#define STATE_MAX_CONTEXTS 32 -#define STATE_MAX_CONTEXT_HOOKS 64 -#define STATE_MAX_HOOKS (STATE_MAX_CONTEXTS * STATE_MAX_CONTEXT_HOOKS) -#define STATE_MAX_MANAGERS 256 - -enum StateManager { StateManager_Invalid = -1 }; +#if defined _api_states_const_included + #endinput +#endif +#define _api_states_const_included + +#define STATE_CONTEXT_MAX_NAME_LEN 64 +#define STATE_MAX_CONTEXTS 32 +#define STATE_MAX_CONTEXT_HOOKS 64 +#define STATE_MAX_HOOKS (STATE_MAX_CONTEXTS * STATE_MAX_CONTEXT_HOOKS) +#define STATE_MAX_MANAGERS 256 + +enum StateManager { StateManager_Invalid = -1 }; From 3b7b0c40687db10ffd0065f4a981c09a8c0e9142 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 20 Aug 2024 07:50:54 +0000 Subject: [PATCH 227/231] add State_Manager_GetTransitionProgress native --- api/states/api_states.sma | 22 ++++++++++++++++++++++ api/states/include/api_states.inc | 8 ++++++++ 2 files changed, 30 insertions(+) diff --git a/api/states/api_states.sma b/api/states/api_states.sma index 104a733..c18cc30 100644 --- a/api/states/api_states.sma +++ b/api/states/api_states.sma @@ -19,6 +19,7 @@ enum StateManager { any:StateManager_State, any:StateManager_NextState, any:StateManager_PrevState, + Float:StateManager_StartChangeTime, Float:StateManager_ChangeTime, any:StateManager_UserToken }; @@ -80,6 +81,7 @@ public plugin_natives() { register_native("State_Manager_IsInTransition", "Native_IsManagerInTransition"); register_native("State_Manager_EndTransition", "Native_EndManagerTransition"); register_native("State_Manager_CancelTransition", "Native_CancelManagerTransition"); + register_native("State_Manager_GetTransitionProgress", "Native_GetManagerTransitionProgress"); } /*--------------------------------[ Natives ]--------------------------------*/ @@ -193,6 +195,12 @@ public Native_EndManagerTransition(iPluginId, iArgc) { State_Manager_EndTransition(iManagerId); } +public Float:Native_GetManagerTransitionProgress(iPluginId, iArgc) { + static iManagerId; iManagerId = get_param_byref(1); + + return State_Manager_GetTransitionProgress(iManagerId); +} + /*--------------------------------[ Functions ]--------------------------------*/ State_RegisterContext(const szContext[], any:initialState) { @@ -272,6 +280,7 @@ State_Manager_ResetState(const iManagerId) { g_rgStateManagers[iManagerId][StateManager_State] = g_rgStateContexts[iContextId][StateContext_InitialState]; g_rgStateManagers[iManagerId][StateManager_PrevState] = g_rgStateContexts[iContextId][StateContext_InitialState]; g_rgStateManagers[iManagerId][StateManager_NextState] = g_rgStateContexts[iContextId][StateContext_InitialState]; + g_rgStateManagers[iManagerId][StateManager_StartChangeTime] = 0.0; g_rgStateManagers[iManagerId][StateManager_ChangeTime] = 0.0; remove_task(iManagerId); @@ -286,6 +295,7 @@ State_Manager_SetState(const iManagerId, any:newState, Float:flTransitionTime, b } g_rgStateManagers[iManagerId][StateManager_NextState] = newState; + g_rgStateManagers[iManagerId][StateManager_StartChangeTime] = flGameTime; g_rgStateManagers[iManagerId][StateManager_ChangeTime] = flGameTime + flTransitionTime; if (flTransitionTime > 0.0) { @@ -299,6 +309,18 @@ bool:State_Manager_IsInTransition(const iManagerId) { return g_rgStateManagers[iManagerId][StateManager_ChangeTime] > get_gametime(); } +Float:State_Manager_GetTransitionProgress(const iManagerId) { + static Float:flStartTime; flStartTime = g_rgStateManagers[iManagerId][StateManager_StartChangeTime]; + static Float:flChangeTime; flChangeTime = g_rgStateManagers[iManagerId][StateManager_ChangeTime]; + static Float:flDuration; flDuration = floatmax(flChangeTime - flStartTime, 0.0); + + if (!flDuration) return 1.0; + + static Float:flTimeLeft; flTimeLeft = floatmax(flChangeTime - get_gametime(), 0.0); + + return (1.0 - (flTimeLeft / flDuration)); +} + State_Manager_EndTransition(const iManagerId) { remove_task(iManagerId); g_rgStateManagers[iManagerId][StateManager_ChangeTime] = get_gametime(); diff --git a/api/states/include/api_states.inc b/api/states/include/api_states.inc index 7c2744f..bd68f43 100644 --- a/api/states/include/api_states.inc +++ b/api/states/include/api_states.inc @@ -147,3 +147,11 @@ native bool:State_Manager_EndTransition(const &StateManager:pManager); * @noreturn */ native bool:State_Manager_CancelTransition(const &StateManager:pManager); + +/** + * Retrieves the current progress of the state transition. + * + * @param pManager The state manager handle. + * @return The progress of the transition, expressed as a float value between 0.0 and 1.0. + */ +native Float:State_Manager_GetTransitionProgress(const &StateManager:pManager); From fe14de201b4eafdb823978e52a44ef8bb7ec9a74 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 20 Aug 2024 08:54:29 +0000 Subject: [PATCH 228/231] add guards --- api/states/api_states.sma | 69 +++++++++++++++++++++++-- api/states/include/api_states.inc | 9 ++++ api/states/include/api_states_const.inc | 4 ++ 3 files changed, 79 insertions(+), 3 deletions(-) diff --git a/api/states/api_states.sma b/api/states/api_states.sma index c18cc30..d7158db 100644 --- a/api/states/api_states.sma +++ b/api/states/api_states.sma @@ -1,6 +1,7 @@ #pragma semicolon 1 #include +#include #include #include @@ -8,8 +9,10 @@ enum StateContext { StateContext_Id, StateContext_HooksNum, + StateContext_GuardsNum, StateContext_InitialState, - StateContext_Context[STATE_CONTEXT_MAX_NAME_LEN], + StateContext_Name[STATE_CONTEXT_MAX_NAME_LEN], + Function:StateContext_Guards[STATE_MAX_CONTEXT_GUARDS], StateContext_Hooks[STATE_MAX_CONTEXT_HOOKS], }; @@ -50,6 +53,8 @@ new g_iStateManagersNum = 0; new g_iFreeStateManagersNum = 0; +new bool:g_bDebug = false; + /*--------------------------------[ Initialization ]--------------------------------*/ public plugin_precache() { @@ -58,12 +63,19 @@ public plugin_precache() { public plugin_init() { register_plugin("[API] States", "1.0.0", "Hedgehog Fog"); + + #if AMXX_VERSION_NUM < 183 + g_bDebug = !!get_cvar_num("developer"); + #else + bind_pcvar_num(get_cvar_pointer("developer"), g_bDebug); + #endif } public plugin_natives() { register_library("api_states"); register_native("State_Context_Register", "Native_RegisterContext"); + register_native("State_Context_RegisterChangeGuard", "Native_RegisterContextChangeGuard"); register_native("State_Context_RegisterChangeHook", "Native_RegisterContextChangeHook"); register_native("State_Context_RegisterEnterHook", "Native_RegisterContextEnterHook"); register_native("State_Context_RegisterExitHook", "Native_RegisterContextExitHook"); @@ -93,6 +105,13 @@ public Native_RegisterContext(iPluginId, iArgc) { return State_RegisterContext(szContext, initialState); } +public Native_RegisterContextChangeGuard(iPluginId, iArgc) { + new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); + new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(2, szFunction, charsmax(szFunction)); + + return State_RegisterGuard(szContext, get_func_pointer(szFunction, iPluginId)); +} + public Native_RegisterContextChangeHook(iPluginId, iArgc) { new szContext[STATE_CONTEXT_MAX_NAME_LEN]; get_string(1, szContext, charsmax(szContext)); new szFunction[STATE_CONTEXT_MAX_NAME_LEN]; get_string(2, szFunction, charsmax(szFunction)); @@ -208,13 +227,23 @@ State_RegisterContext(const szContext[], any:initialState) { g_rgStateContexts[iId][StateContext_Id] = iId; g_rgStateContexts[iId][StateContext_InitialState] = initialState; - copy(g_rgStateContexts[iId][StateContext_Context], charsmax(g_rgStateContexts[][StateContext_Context]), szContext); + copy(g_rgStateContexts[iId][StateContext_Name], charsmax(g_rgStateContexts[][StateContext_Name]), szContext); g_iStateContextsNum++; return iId; } +State_RegisterGuard(const szContext[], Function:fnCallback) { + new iContextId; TrieGetCell(g_itStateContexts, szContext, iContextId); + new iContextGuardId = g_rgStateContexts[iContextId][StateContext_GuardsNum]; + + g_rgStateContexts[iContextId][StateContext_Guards][iContextGuardId] = fnCallback; + g_rgStateContexts[iContextId][StateContext_GuardsNum]++; + + return iContextGuardId; +} + State_RegisterHook(const szContext[], StateHookType:iType, any:fromState = 0, any:toState = 0, Function:fnCallback) { new iId = g_iStateHooksNum; @@ -284,9 +313,40 @@ State_Manager_ResetState(const iManagerId) { g_rgStateManagers[iManagerId][StateManager_ChangeTime] = 0.0; remove_task(iManagerId); + + if (g_bDebug) { + engfunc(EngFunc_AlertMessage, at_aiconsole, "Reset state of context ^"%s^". User Token: ^"%d^".^n", g_rgStateContexts[iContextId][StateContext_Name], g_rgStateManagers[iManagerId][StateManager_UserToken]); + } +} + +bool:State_Manager_CanChangeState(const iManagerId, any:fromState, any:toState) { + static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; + static iGuardsNum; iGuardsNum = g_rgStateContexts[iContextId][StateContext_GuardsNum]; + + for (new iContextGuardId = 0; iContextGuardId < iGuardsNum; ++iContextGuardId) { + callfunc_begin_p(g_rgStateContexts[iContextId][StateContext_Guards][iContextGuardId]); + callfunc_push_int(iManagerId); + callfunc_push_int(fromState); + callfunc_push_int(toState); + if (callfunc_end() == STATE_GUARD_BLOCK) return false; + } + + return true; } State_Manager_SetState(const iManagerId, any:newState, Float:flTransitionTime, bool:bForce = false) { + static any:currentState; currentState = g_rgStateManagers[iManagerId][StateManager_State]; + if (currentState == newState) return; + + if (!State_Manager_CanChangeState(iManagerId, currentState, newState)) { + if (g_bDebug) { + static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; + engfunc(EngFunc_AlertMessage, at_aiconsole, "State of context ^"%s^" change blocked by guard. Change from ^"%d^" to ^"%d^". User Token: ^"%d^".^n", g_rgStateContexts[iContextId][StateContext_Name], currentState, newState, g_rgStateManagers[iManagerId][StateManager_UserToken]); + } + + return; + } + static Float:flGameTime; flGameTime = get_gametime(); if (g_rgStateManagers[iManagerId][StateManager_ChangeTime] > flGameTime) { @@ -343,10 +403,13 @@ State_Manager_Update(const iManagerId) { g_rgStateManagers[iManagerId][StateManager_State] = nextState; g_rgStateManagers[iManagerId][StateManager_PrevState] = currentState; - // Handle hooks static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; static iHooksNum; iHooksNum = g_rgStateContexts[iContextId][StateContext_HooksNum]; + if (g_bDebug) { + engfunc(EngFunc_AlertMessage, at_aiconsole, "State of context ^"%s^" changed from ^"%d^" to ^"%d^". User Token: ^"%d^".^n", g_rgStateContexts[iContextId][StateContext_Name], currentState, nextState, g_rgStateManagers[iManagerId][StateManager_UserToken]); + } + for (new iHook = 0; iHook < iHooksNum; ++iHook) { static iHookId; iHookId = g_rgStateContexts[iContextId][StateContext_Hooks][iHook]; diff --git a/api/states/include/api_states.inc b/api/states/include/api_states.inc index bd68f43..f558ee3 100644 --- a/api/states/include/api_states.inc +++ b/api/states/include/api_states.inc @@ -16,6 +16,15 @@ */ native State_Context_Register(const szContext[], any:initialState = 0); +/** + * Registers a guard callback to be invoked when any state changes within the context. + * + * @param szContext The name of the state context. + * @param szCallback The name of the callback function to invoke on state change. + * @noreturn + */ +native State_Context_RegisterChangeGuard(const szContext[], const szCallback[]); + /** * Registers a callback to be invoked when any state changes within the context. * diff --git a/api/states/include/api_states_const.inc b/api/states/include/api_states_const.inc index 09b9032..926e12e 100644 --- a/api/states/include/api_states_const.inc +++ b/api/states/include/api_states_const.inc @@ -6,7 +6,11 @@ #define STATE_CONTEXT_MAX_NAME_LEN 64 #define STATE_MAX_CONTEXTS 32 #define STATE_MAX_CONTEXT_HOOKS 64 +#define STATE_MAX_CONTEXT_GUARDS 64 #define STATE_MAX_HOOKS (STATE_MAX_CONTEXTS * STATE_MAX_CONTEXT_HOOKS) #define STATE_MAX_MANAGERS 256 +#define STATE_GUARD_CONTINUE 0 +#define STATE_GUARD_BLOCK 1 + enum StateManager { StateManager_Invalid = -1 }; From e509ac96cb4e4e2f95b2ce17aa918bd87c110ec2 Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Tue, 20 Aug 2024 11:40:40 +0200 Subject: [PATCH 229/231] Update README.md --- api/states/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/states/README.md b/api/states/README.md index 09038ea..180443f 100644 --- a/api/states/README.md +++ b/api/states/README.md @@ -88,7 +88,7 @@ public client_connect(pPlayer) { g_rgpPlayerStateManagers[pPlayer] = State_Manager_Create("player_health", pPlayer); } -public client_disconnect(pPlayer) { +public client_disconnected(pPlayer) { State_Manager_Destroy(g_rgpPlayerStateManagers[pPlayer]); } ``` From 402baaa4e6508961b6b504a23f2ae9f3cdd4668a Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Sat, 14 Sep 2024 14:51:07 +0200 Subject: [PATCH 230/231] fix context id --- api/states/api_states.sma | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api/states/api_states.sma b/api/states/api_states.sma index d7158db..605e73c 100644 --- a/api/states/api_states.sma +++ b/api/states/api_states.sma @@ -229,6 +229,8 @@ State_RegisterContext(const szContext[], any:initialState) { g_rgStateContexts[iId][StateContext_InitialState] = initialState; copy(g_rgStateContexts[iId][StateContext_Name], charsmax(g_rgStateContexts[][StateContext_Name]), szContext); + TrieSetCell(g_itStateContexts, szContext, iId); + g_iStateContextsNum++; return iId; From 581d976bb12c0e099f99a97c200e9ac03974601a Mon Sep 17 00:00:00 2001 From: Hedgehog Fog Date: Mon, 7 Oct 2024 12:27:57 +0000 Subject: [PATCH 231/231] fix state change processing during hooks call --- api/states/api_states.sma | 58 ++++++++++++++++++++++++++++--- api/states/include/api_states.inc | 4 +-- 2 files changed, 56 insertions(+), 6 deletions(-) diff --git a/api/states/api_states.sma b/api/states/api_states.sma index 605e73c..8b86ad0 100644 --- a/api/states/api_states.sma +++ b/api/states/api_states.sma @@ -41,6 +41,13 @@ enum StateHook { Function:StateHook_Function }; +enum StateChange { + bool:StateChange_Scheduled, + any:StateChange_Value, + Float:StateChange_TransitionTime, + bool:StateChange_Force +}; + new g_rgStateHooks[STATE_MAX_HOOKS][StateHook]; new g_iStateHooksNum = 0; @@ -53,6 +60,10 @@ new g_iStateManagersNum = 0; new g_iFreeStateManagersNum = 0; +// Used to correctly handle state changes during hook calls +new bool:g_bProcessingStateChange = false; +new g_rgScheduledChange[StateChange] = { false, 0, 0.0, false }; + new bool:g_bDebug = false; /*--------------------------------[ Initialization ]--------------------------------*/ @@ -336,9 +347,28 @@ bool:State_Manager_CanChangeState(const iManagerId, any:fromState, any:toState) return true; } -State_Manager_SetState(const iManagerId, any:newState, Float:flTransitionTime, bool:bForce = false) { +bool:State_Manager_SetState(const iManagerId, any:newState, Float:flTransitionTime, bool:bForce = false) { + if (g_bProcessingStateChange) { + if (g_bDebug && g_rgScheduledChange[StateChange_Scheduled]) { + static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; + engfunc(EngFunc_AlertMessage, at_aiconsole, "An override of a scheduled change was detected for the state of context ^"%s^"!^n", g_rgStateContexts[iContextId][StateContext_Name]); + } + + g_rgScheduledChange[StateChange_Value] = newState; + g_rgScheduledChange[StateChange_TransitionTime] = flTransitionTime; + g_rgScheduledChange[StateChange_Force] = bForce; + g_rgScheduledChange[StateChange_Scheduled] = true; + + if (g_bDebug) { + static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; + engfunc(EngFunc_AlertMessage, at_aiconsole, "State of context ^"%s^" change scheduled. Change to ^"%d^". User Token: ^"%d^".^n", g_rgStateContexts[iContextId][StateContext_Name], newState, g_rgStateManagers[iManagerId][StateManager_UserToken]); + } + + return true; + } + static any:currentState; currentState = g_rgStateManagers[iManagerId][StateManager_State]; - if (currentState == newState) return; + if (currentState == newState) return false; if (!State_Manager_CanChangeState(iManagerId, currentState, newState)) { if (g_bDebug) { @@ -346,13 +376,13 @@ State_Manager_SetState(const iManagerId, any:newState, Float:flTransitionTime, b engfunc(EngFunc_AlertMessage, at_aiconsole, "State of context ^"%s^" change blocked by guard. Change from ^"%d^" to ^"%d^". User Token: ^"%d^".^n", g_rgStateContexts[iContextId][StateContext_Name], currentState, newState, g_rgStateManagers[iManagerId][StateManager_UserToken]); } - return; + return false; } static Float:flGameTime; flGameTime = get_gametime(); if (g_rgStateManagers[iManagerId][StateManager_ChangeTime] > flGameTime) { - if (!bForce) return; + if (!bForce) return false; State_Manager_CancelTransition(iManagerId); } @@ -363,8 +393,13 @@ State_Manager_SetState(const iManagerId, any:newState, Float:flTransitionTime, b if (flTransitionTime > 0.0) { set_task(flTransitionTime, "Task_UpdateManagerState", iManagerId); } else { + g_bProcessingStateChange = true; State_Manager_Update(iManagerId); + g_bProcessingStateChange = false; + State_Manager_ProcessScheduledChange(iManagerId); } + + return true; } bool:State_Manager_IsInTransition(const iManagerId) { @@ -436,6 +471,21 @@ State_Manager_Update(const iManagerId) { } } +State_Manager_ProcessScheduledChange(const iManagerId) { + if (!g_rgScheduledChange[StateChange_Scheduled]) return; + + static any:currentState; currentState = g_rgStateManagers[iManagerId][StateManager_State]; + static iContextId; iContextId = g_rgStateManagers[iManagerId][StateManager_ContextId]; + + if (g_bDebug) { + engfunc(EngFunc_AlertMessage, at_aiconsole, "Processing scheduled change of context ^"%s^". Change from ^"%d^" to ^"%d^". Transition Time: %0.3f User Token: ^"%d^".^n", g_rgStateContexts[iContextId][StateContext_Name], currentState, g_rgScheduledChange[StateChange_Value], g_rgScheduledChange[StateChange_TransitionTime], g_rgStateManagers[iManagerId][StateManager_UserToken]); + } + + g_rgScheduledChange[StateChange_Scheduled] = false; + + State_Manager_SetState(iManagerId, g_rgScheduledChange[StateChange_Value], g_rgScheduledChange[StateChange_TransitionTime], g_rgScheduledChange[StateChange_Force]); +} + public Task_UpdateManagerState(iTaskId) { static iManagerId; iManagerId = iTaskId; diff --git a/api/states/include/api_states.inc b/api/states/include/api_states.inc index f558ee3..a1c3ee3 100644 --- a/api/states/include/api_states.inc +++ b/api/states/include/api_states.inc @@ -72,7 +72,7 @@ native State_Context_RegisterTransitionHook(const szContext[], any:fromState, an * @param userToken A unique identifier associated with the user or object being managed. * @return A handle to the created state manager. */ -native StateManager:State_Manager_Create(const szContext[], any:userToken); +native StateManager:State_Manager_Create(const szContext[], any:userToken = 0); /** * Destroys a state manager and releases associated resources. @@ -99,7 +99,7 @@ native State_Manager_ResetState(const &StateManager:pManager); * @param bForce If true, forces the state transition even if a transition is already in progress. Default is false. * @noreturn */ -native State_Manager_SetState(const &StateManager:pManager, any:newState, Float:flTransitionTime = 0.0, bool:bForce = false); +native bool:State_Manager_SetState(const &StateManager:pManager, any:newState, Float:flTransitionTime = 0.0, bool:bForce = false); /** * Retrieves the current state from the state manager.

    DR2byO()Ol*NA4U-J!$3;<8* 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 z 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 Dq~qBb78%4>Yt@uE+ocnh_4J># zc0SCxZaT$N@bU>ToFHkC{amI04hk1%AT9%glIJfk=(yHzgupBY?F@;8rdvR&^IZS?5LYJmP=)R$dw(IrXi;4 zsNd&(r;PA4)9*mh*Je+G!uO<^g=emP77^&;*d2YMKmF<+@vrm)(V@izVC|XL)11nw z-(?$fc}Qm_NFh~t;IQz`sT-Xfy-9(+b~iF>vore*zs~%@-1x{v0Jv#$6#wrpCwNQ< z?7Y{LTQE1O6T&FNC=tJU{=`+PsGLTmX#8B#JBjv+mT%@T*;(Li)Y3s)`hjvlrjFW!>#>9ggLF+)hUyz;noh1i2uy zF^3<2;R>QrhBB51fT?3uTz|LA8_zLG`^>1NA))Z$b|zRC7fTgVUeAl4)lGQ3M=^Zb z{)2wUbtfMyF;i*CLyiHF#tG~BxytI3r%82}B`M^i>lucArlCpXaZmDFO}ahZs#7AX z)Khhl+-`nB5wd5Bk+p2%tAlmV{vkdKEuG9Jx!ALeuJw0kKA>cIBYuJ1>=T`pYa7Nc z(LEGvWk4VFpoZC)rq5+6cIvQ$JhcC@6dn>l&$Ot@ zMs1?(7&J#dzzRR8)@naO?z7>STiBGF1N*`!JwkXDHMn5eT&}aPH`R=l(@M*h<$UMJ zeb1J^yQucE7XRI!NmZIfdD3Jbvj{rRUq<)UkliFwQOcL((3{hPwWF7|ZLG--Nw^#_ zIz5i82;H=SXCvi=kWYL}sFK^|Z5uV^!Fw&)t_rkn-f^uqPBc&PU>ya`vn`@QF1O35 zH$whfa)_l5$LLL%?L++BMu*b;LwGE;MlY@5zV{ef$dup#wsHg`;s8(Cee8P?(;)V- zb24U-L*-NUH$pzuvH}E>>ysr9mn2gKla_;MBRp8w9$dkJ=qv)d&9kE?RjDZd%Mw0l z=42wRCNc$n6^EAFEsH4*t1nIc3!ws#Zgwp*d-zEC2YrpZi9b%w9UR21fQ8TRYg~2q z+H|Okg%lbVTfCft{U@6$%vDL9Xhrll2&sd&-0mcKIq1PzTXGjWM4@+?321Pn$(t>WDNO@+lpm9B z&&V_Y6z5j84tdKgVbwoMI2Zh{#wSl|vrmcZbEZt>W&Z#r$H_F08k&CQDE4;%`~__z zt3-d{A~Vl2-^Y<*aJswj8T(*$EwtVT(g(gcP*Zaa@abgUk}oreN(SA2mv>f{V-bcL z-4>KgdB}P{Bi((T!{E5g-B?LzsFL!jp}%o%5E7|d%;y|PHE#U#1xJ7E zVAEu-8)i__--U{=h)yYS9CU1tg$U#NV#XV!Ji`c_LAeI8WJQj6LvBy2)cFp%L@dn^ zL;Eo#5e%%7ah_dyz;w`)qHc~VN~w;|wH7hQql^L0D2DQxOJWq98Lu*hu5!42d8djo$pRpfpWq^f9ZSIooG}D$K zGNYwZ+d1&|FjykR#3om&SNr6fxqB#&2p2olAX8a|1B@$`VFEC$r+e~&si{|}2vAiE zZ5e5Gu0!jHm|OL|h{tQ8Z4H2gFN;QPG>Jj@Luc7f3SN(uoY?^y1}+n{9NVF)dW&Ds zyNl&iJq@aWspN?SLs$u0)Xn+As2R0NoLLFC?P}lA1d3RUuk@1j5(U6imh z>uX)7EKfNOA~aMw$M-BoIW9Ud3v#a4YMuQBW9-X3x#aGKw3AbcqUx#t&$(}L4bXL33dI_Q4@Q313kH68o8-dHVk)bLnL82 z9u~GS4V446^(pTHsQIjm(gw=3^%vJ8(EFeghV03bAZp^}(}{gw*RZaCnN+vn#I;7h zR;g?z0KJ}_UhB`=9@3&x6+)?@hT>(f@u?=CJy7h3$dj*3*tgk&7e;whqMlte;vcL% z6JaBv_vGD_xYz37!GhX?;k+b8h&(#*B!}Jm1hDWEb+*K>41|J zKPbo)N_*4iiCbc@{+w!ySs9CFDO%0VeN>@a;Ny+ZM!|_A3&R-J`yEdkRwk_~me#IZ z*;9?Io~Aa~!_;pN%k}~W{inR@PaQco@i~WcBKG)@EC=86HoMg^`;gN_fhbqSnTp(G z$_hs(NYBvdc+}cux2h1T4~vo$6FifrK+X+-=wx|j?BRS0Ft+nFKw&(K}recL1IX_;C^2v6TGu`TqI07qntqy8hE%>rMUb-ptEsvW85>`AHv z{G^SwlJ!*5z1^=_(6GWZB1a_{(pjJ0+3$ z=a&8y@iGCFuC9K3^2(%%+&b&b`pkr?7kG{-@m%>WiW77%QbRF?vf*nr0KYQ>#AgkH{SMg*G-4Mwu)b_o0ow=tkh2%x8E6=(W z(cesxDjfZ#twNcBOP+N5=eSxF&5?;-rV*e>E!qSx1`>-YyNbRV&6}9T!kHRFCpB7n4Bu==cD=d2CBIG|O z?$^ND%WMaq5)4F9dtCq6$cI*1B&IW*Y7el4Q^blLL_(lUKm+#hiy%Gk z64oF;oXUlqEL=*Fiovl`r9MG^lllTVb1ccP6R{1zD-EUI?K!M{L*?n_ZCMa$-Vh=& z0$BzK6!z`abr9Pvui>wX#m?R+Www5Itbm!n${({Z2V!2&V9qkZ;1}Zu_KuRru9?l9 zj+c^Ypml-s;5224X~0)sJDY7Axh>J{Gp*wnf+tZX33q7D<_9PFv9uXz14`*&pLvJ} zfTh$s#@inI{3V3FlkOEh-p7CYYsY#Js~Vh|>-D36(48skW8ibcDQRQodlUfHKt{I| zxnAx&erm*L=XadUV8(md`)w6q<6^|KRN0q&$JORKT;ugE%Cffqz{=FCC_0_NnkaTk z{3KqAbMGl3>zO7H4^R&vHFgX2a{W~~W#a#s^j%tiT=M`Ku+r8HO}ec1H>ExEC$x_! zdKr$!ym;a#AE(Tg>UMx|zo*brDu7q228S9H#$A9n^K#Z63gGQ;J}Seod?x2e6i^JF%z{R7>;N+GtY2+k@SR~_cs$uMX`Hivl+`|Rfu6*qv#5fCgd+e*k;DA)a9 za+o?zagKis{{W|Ke*;6sx8vfW7newDJXPQzm_ZmC(@ z(lSW9;+@&IS2ELdoY8JARza0%$fMi39_k^3T27ql(GtyqDidYV+5Fy-P}->nhqWPJ z>RQLNjydmS_iBjp`u7kWHhJ##Bac)L(LMi;*aUI2@r#eM5nlpJvyCayXZua-y)R+H zQW^D~#ELZE)t!VrGY-fMCFyT<>BBmgvJO{FdtICE2)<3dJ$=@ysxj<}NhE3KC#}n- zloSd8f}|zn+j~S)Bw%n>mblYqyDWhtt~haCz4~Q-cwuRpiO+|sr)6L3ABxPT?O6n; z1=Y@p?JXuW4>h2a#%)JDD#mtOUo+xmuk`ER zHnYAt-x`4_%$A%sC{4E4EmYlhKSIsm2-3V z*8*)qFiwo0&Cz4x^g6e9g6783Hn!}zX>6qs4-2EeTA0bs>OQ1_&rQ9#DGuqIs_Jk{ zTQP0tu2r1|_LP&F<~TUtMYY48)vFcV=*->Uu~CP_yGJ=brr+qbdOY>AB`JUZFgal% zt<5VkUt>+!k1}6fwkpz{^vrh17*+qO`iQX5qMN-d7W(gu*J95Nv%#$hv9B?T&bnH) zBD9O4iBDUUdPZ4fe@EYAzFuC3QGwUf7?FaycfqyBbjeWF2cJ}>vCBcZZI0|SnSFG# zyT%iC%4SGKZU7*6bDhzhs(=b9@ond?TdLYF@#4o5YkvIb zG*w?vLmelysb$LVIDlxSPc}8h zbW-aS#nu%I+q^riF{QI|?rJ}F6dGo!#G>q?v@K!!O!oWUKJ`OC7;V~bVLD>I?uv}k{{qxVR&CUD&1gVcat)}cCC?yc%k@IW`>nT`2C%Ml7}|TSMc0Hm z`tGdeE%&SgDMWEo`uK7+!TfM%gH&>-!}f1(=J&YM$z}1*v~v^|D*x2k$n<`R7(V;O zM>PqT(O0iP5$Srnnw3i9g&=GR=pc6*MiK(%52Mo^{-HzJ9@!G9X7^vTGGWp0*Z>h| zzz{uxylGr$wc8sp(+&mIido}su~55gA)0!yA5CthR(k!Ds#R>jrJcTXVp$m6fb?(p zqS2+DX($2p8{iOslmFIJW3SJW8*R1(dXEm%O<-2fFppMp0QPEqt)fzE&#O4SvOaTB zl~dYnK#5c+01EmxasDvhkHSf6dmIUTd0g6i16zgIg{g`l#lLs7_8X&oUcj zzgY&Y z-ne6>%pGJOmd1ZqnwTY4vnQ8RgEjFuNha_{3U~9k1z?Z1gWO z7fkiL$ACy|3?fWUy%Cf?&-Fx=#S0z~=?W&Ja}8^dLGbrT=8ntqZcQ z#dj3$GD8#Q_95vfq3yb%t+pq}Dji4z8Quz|-~?H0U;lIX7gB)<$n+VE3Eqm2pMaQZVX+I<}t3b@Wp$NsQySJJY@yokbD+@GMsv+ZON|?FKrug3Z)IH472W5Wvs=Zka6-ebRrvI+z zGTHW&{yDRdQ+J0>XN10&$iKCK6DV-ZJ8777WQ@ftuaYy*8`x2G-O(|hGPQ5TEqd%E zC5osJz0uH*nuZ_SZnArf=2@buWXwmY)&B9&f>QFBgT~M+LB`y?6A+E2%4)}Ue>}k$ z`3VY=$t-~#%uWbS>+obZSlkEc{7^%G$yUI#Rn_@t6ExpBDugm1`P&0&`@1GS)u+ld zt_7h#6)cu#gUm-|HMCtwY7v=MGFf3u6Z1(qR=rsmagR#PYoeNhFWA4ABR@m5$ldRJ zioQIHAWA^T10yH^$YDKP{83c8m7{>QQTft7x_TM4Uc$yV3?Yt_zpkCEf7@iDGL@G1 zYK7dcE#&V!)Dk^}OHS*oEjvToKC6-ik`3EZV6H?Cj9=mf|oX z)nQk~9qmU~*9RfG1cFet4Iw7GEI>ob6;D*)8ce(2MFh04Tk;O!t&B;MXAy&RT!+Eo z`q*AZP>ieEG=AT6tFuwoR%?RV;Zu@wRL8;V`43yA+6RhNR#9b9>TDs1Bm|KG;M>>i z7hhASCy?uelo8 z>DQ})?v(Dq$a6%f+(`o&d8b@&R)<8@lxdO% zVH{wIKS91n051=ZvLT3F@0H7knx?{WY(JbF-u@dTevi<&$oB3X9C|DuZ8F8TzXWu5 zIJDGDPzBzz8U=%l>w;lbwbKKsQzoQ=cLAdg;~<(pJN?$l*n1SH-ul11P;w{!BG0{% z5m{RySP(SnRZ&I@<1bZ%YAhIjkNL4}glkx+L?_#pz}BEZ-&twcXl5dR;P1Mh$iJ+4 z)L#HzckzpHy0-OErblCcbQp3sK`KnpoXJM628-A7!Hk(m&0Ja=(lmHgjr;nGI^Y!Ujs%*j^b0sMa1dT=No zGHh_vLf~BsrfTNc5E~_ICWsZ9F{b^WZq+}S)IFfquRpxv@KRtfc-0>D+BWti{I9WxI6fiwBWeZeKI8oxtItHvAi^ZYDheWbPaw(Uqw<|kWeyXS z!k4G7J>3p&d+!XrX7xQ@GIhP^=>xmxkrKzhqf#gHjn_ev46)S0Y2qX*^{bo6kMq47 z4^7*BhL)P%kuL9z{(zSF&J(BJKO;VG23)l@rsbU{ciG7|PN&?6@4s3>29-GL-#OY->#Cv$3Xbt4W)pBo+I{|S#aQR(*nSxq&bB z3%^d(0n_S%gFVTpK0fU#$> zb~O`xnW3&6W!&`o&@%Iop6%{vT5?l}LV>O5YX__x?#9QIA7&ss7-Ful>H|n7zThZn zo ztxM(Q=u5Y1BQo~3V;wK^{W``{oC%QCM?^V`qAc>L&BLMgHB|*(p4m) ziEdi5w`oM8E2q4>b3HoLNF?{Ye)5c;c;VV_7q!Vj?^M2yzO7WlYQ?4)5fNtB1lsE; zz~~NE)YJ5D*q}$lbV(Twv}R2{9#cWV@R=9C=ffBI#IOHLuDG^zQBz;q>#&N6Y1Nw} zS-1A`D6|dnj|&^~@nC{nctr8{a< zaFP$(A!;U!6ZM9jli`QG3=b=7-yaf`=cw{>THOLUNhtZaq_X?kmb^@YXdOrhn{>2Td zNiQD?VCwYmCOL!;O+!^zu!tY^m77+lF9IyDSvf|XMQ(;WzL)sgiH8Y~_>n`9O^y4v zC=tBe4kHYr^R|BWH>LZZz;}*>{?56*EKyr#Cl#sT?W2Bemaif)kjZA>iw=IneQLn_ zj#_Paps6hhklCuppjk3#1^^=IJy`NPPsXoH&&e z4qLR-M~$6o)*FO1oVy=<=4gof6Ta@CK+JymA<^hiyDc3ZrS(!x zyW(LmYqF35J(d5hy{l%Ac9M}xdb-dmJc8W!793AN;7^2Wy{4W9Oa+HJ(byJzWWe%% z@wOuYRJNXNrH+wcHy3DFMsWn`pQc}pK)LAar5pKx4``}Ox(tM@`x(+!=;lS`_nQ8S zHVnX*N&AJL%W^re)az23kF|6b6@S%7EcTm`tj(vZrG~D1ooi}P4L%Uv;`$@xzzYI2 z7wm;%o8=CyjTcIC+j!N%L6c0a*`~{m0ts|fqMNqv)BYaE%wF<=g6BU*?+LBT1m^yp z%|sNF5fX41WYYU$L~C(cJm@>o zs!QDp%)lS1X2TbVV8X5-O#qD)Zu1+~#~=HzKG3mE*C0M<53SW7oWfU(q=`Hnu+RGS zt9J?RS1lJBh_3wjt4&%p^-1H|SCx3zBNomSkKpgUIOm-XD~m8||8WHJ#6_E{&wV>s z`NJ&ACh%)Uc{sytp8e`AS2D!HDtpB`Fx}bV^6sZMYxMrwrAZwn} z-|iAD?#-muJ73tF<;GsgYe|LXwEr3xBFz{RhXub}Um(i#w5pliHTB;;qtLuyw9mNu z*L&Jl`EJ2ah=&0X&z%z+a9ufBR>XnxHT^|SdElxx-;h_fa?Vnyp|kZK-wFL`CW2>^ z>YT-3Q#8ynTQHh?FwHLfvLJl&!7clgqIDlV~xM1Vw#ZpTy&xfPgPXWt;rD>2O+v=dVs#vz@p1?P9 zb;QzG7w5NKX`?n^BKjRWI2!v{>5!E-4^?9L*wO^`CuL4FFyeZJ>au0;-hjwODX3P@ zk++`k^V3MYZR4nnx-7i$&bzx?dtDT@ltrh^Z(`ot98$f++m>Hd_3rdTTKOV|vc>YW zqHt=w%)BDKa0+uvYvrS*y6&XKSYqjnK<6IfsP7>+MUhCwKwxu#vv4ie(ydw)H{f!wN2;K+)1M+ekiDe&2Qj`2){kxQs zC1&o*F}d2qD@+I*kVcBKlx0$ub+ay95hF08SA&3 zWo%k{0ZCAO(A-}rR~4jHliab{iq=lqAj#_;dhyQYiYWn2J(HD_XL$-mNx*-XreW4uwDARd=?GtKUgko6+z=sx7X*7y7B>jJ6xlE{sF058 zw^Ke(3g%!Q`89xKEa&Oz5+}z51LDEGec|Y15DbK&GILjvYJ8KEiDn$TJtTIcM6*iS zb#ATsQWoaij0DPjvq*xzSP4a_#P$uz6ey=y%bNoFFbE1$K=mo`THQxA&Hw&{pc*&M zy?#M@v*`rxg%C(J39S?TJg+X((1_-wKlD=#zY%)-TIW;qgVbmc?0$9a&nd2iDSiQ7 zBR{TtI+y-W^_e`Kd^@X64erK~+t154`dufNkg~8JjXaw4GtHO*v~?nNSi-9rII;ox zk3L_ds`CV0N#;aaE7GR{5j{T|U8^efVG`E5&gji>%-PmmiNYu-nx*?U8r&K*B5 z-CbeAqn>{6B(;&*d?)eQlM9ems{AKwf=R57JaO`6_?Z72#b8j zhE2kuG6EJtDaciBHkN&-q0wTuEsj_UcBpq5C-l9uI-s^Wl}3J?`*sqcimfZb#C|;? z@#hIr@j1nyml1wmyTMkNUhm{LldBjyit32XFh5aT>R&sGSK3l<_!Z=yL`olt0&q0V zf<)qHw5J0Ohnv3qyMjEpH6rUj&eh!#s+yf|^{%!`S8P3j3fU@^st~f2=Qr&SGfLa} z-JB`{$y`M!aApBGtEqgj??#x|ngFV($HJ4g1oXt8Mb~E&Q7LE+9=)2b3-F?({j&48 zD1d0rXW*SlV7ZGzWp;`X8Qnjy2iNb>vi1GO(Y1G$8`Dp9x6AP<^fs3SD2Z(^*|JEm z_c)9%z5!YS8~F6gxZ|_*R*`zvhGK3AHuUNS_Zqp~ ztQtFFlJYJDX;kqDmV^8nJf36pFH17NxjSb&OKRsmWS=hwTy7{)bI$Skeo7*0;R0Qz znygi|tmk?ma!TnjCF|c#T5(HBwnr*-@9U2X%e!Ja-#PhECH1JYM z&I+^qtZACfaQ%H$xXB83t_5j2>@ag9fJ6G(ISP?J#;TA`hZ#@?^)jknM0NC5zw&L! z{krHx-UE7;=z!4aDRwN+yWiSQ(=aMMi&793YiIV_>IFF*wdovalp?DgFlEfAcnerk z8^D-HIRjG9zdDY+Y!r_{zv+omfZPvFvCvtY2+;dlAy$XhLFlQAu&}$*2w)J@&5@5$ zndO%6b5YBf@wZhO9IrgSDuC1(*&6x6+33DQ5?_k;&-^JK*vM7WQ3EyXVYgf`G_Kw; z&!3@?1Fv&or`uH;JWaeCE00eWQPFG_)Ay>fnfo;>oGwd;Ruj(u{b-e{j#yYf=`&yy zdaa=Ro#gGdPiccde^=gsbTVZ+4H0}z|5U5Ex0tM?*|SE`%X~M%J}lNmV@V!p<%9P# zI}+4*5LZP#6Za#tn{eC1n8%{7MEQQa7$yGSGv!OS#bz`Te>Sq`%~W=l*f-z*d2I&n zJlj)0mq+w+sk2ImY+C@b9{?z-Tg>B;XdT5e2KnLY^IIs9J4mbHqw}M8l+C7TFz}EV zM1E^Ts>R(clUzr7MdhOC8(w*wEQ6G@n#WzPm2)3%^syr$Dt=K4t{P2|qR4kuKXTy~ z(?}aqiDItja`iXq)%Nc6HBDq)T%AFi-0s7yh|VMd`v@%K4gvas23R4L-rvlu1M z;Ns6at&MS{bfs-80e-6PW#x>)L)qDko2q7(qzza5OE?a^+}OYN7Wla0?}ZX0j^$Et z;YL+?u}c<~*lzOG@>2;+DR7Vyfz*`VBPp+xwD4iXU%NRjG;;{2N|gd9Q&%I0sA!!M zItzXCRtfGfWHvXeb$O@9UH4 zgg$K;=sOLTXUJa&g6kA31*EHsI`zHj`r$0n$2iPbSNIm-Q3@AE?JdRSxTSB@nTRLhK%;6(bwEHp$d(RAMdH7!?|l<2cNHe@!gp_14?)?; zA=u}%I3RIDbU2ru48Tc0J-0-#QsvtOX~~r?U67}O4H#Jmxjs?*JPhdSE@W_rAzT?Q zR}gn}?X@;j&2#TQ*onq-kS;Ita*#r}Z=Wo9S|g(9jGtYQbL1QE^fgHIGEiFxI>__~ z#Tn|1K+mDA#Vd5fxW2$ai!iE4HV^89`T}Ebz)o`!iyJOG6q0Sg=OFBQgWTi7;M&epd5=yGNghnHl-EctR|fe!`#zO{-+D64WYLTRuU1?|X(lmJ1l%smlYXgoULTZNyHea^4D0KzgB;UGRhNZe2W7^h&# zm#%M=RUo6w_N$!Ekr(0ic*e;)@--c&!KHndY*+;ByIMd3M)r*pOat@EK`9Ks549vx zK2r=b5gfna<>n$tn(3+i8D1i>3eh~_+u^b22nC+UE$1b`)WWcH-=&!SM=u#``BN0F zgh1@CnBd~dV>Yt3YM4icDlXGnZoWFlq0&dVo(5hAcx!YjSzo>`Cb3`hQ3!159d;6o z^YK!@B%OD|y}oJ%J0#;9U9aJZQMtGb9PLvo8HKtf5%b?=x!!S9VEW?FiNAuN9nXM! zhCR*&`_@18z#&O2c}U3`>|b}^)hf(w!tRkdaEt*zjXtdh_BS?aaF>C{jyRql@#^t` zx7eYBxFDwuSi~$`$`l@lW?w%F5cea$~&6^HWcS983At z*zQS7411d-9Rwo=1)f>*gKkOP*pDHVco;tocI`scmg2&><)vyK{v5(_jlcy=V&$^e zBV-JfY8TbImAVHAJ{NmGlHNm7YdqE)u zU2~578hhSI7grp;4`lw&9mw8Br1T_7Czuc}h2rA=Bp**3_}CbVd?Ub*Oh=XH}b%^c7f;Ud{I8?$p{X^H3OvbFZO z2x?GE$qI4udQ?TJVC?7%um=UL!HiyE0Sm2VMYwhm-^q3cSnHPD2tD)A1bQhPN+c%F z_~LZ$cl-2oyDnkzd?)#vJ~|QAuV#R-FF=LPps+8%(_U^nZ%#X?DUm=&uWg>q)2>|T ziL0P;!~Qi#vAk}7WkT*=d#QGFweqG{xb~IOW|0thuL{^DtKbeky81TPd;;>tOeMKn zi+RsIA^rmYo4W5WhF;(9{fK&OeV2S!h98x38T2rbAIJdLURnbt8=)OfgrF3Hsiiot z5BHR(vHlyd^L{#@ui9zu>M3{fC%-jRKq1&1dtEP4zIPY&9LTiry<%_aO&`AW*ujYY zvoI;B9F^;L@%B+~!<(WFSP(;jngBb}r+A)kTXOVaP=qs>^-o8Lc6|u62Xe>P1EgRJ zBzF4kDC+G+x5ql6cki(VHIhH&_&E!lE*UA*WoznG@?HD1i>a+~;|&*+I1h^i1z7$uz)YBkGdGbt&Q$pE&<)}P%r2Q@lPE`b6{y-4_2c@{yvM+E+S8$9m@@*ea0(h{4v0XaBR`zX7RUg!P! zO$Q(Xv-jxf9yJ`Bq_B>2i0U!L#o^wPl1rMU8$KjqDW@xJZV!3-`gA*VbwN)s;76Ho z!#Z0`w7-9+sSnfMN>A>(qW9N98)7VQ?wb^jejsZY+|i@|+6^?0Ot6Tqgozo90S8OY zlw4{-%iqj*6#^yxjvH`QYfY_#dLZvW29sYNefP1_Lc{l=%`;bNPz?5=ErdqCI*x@0 zb0OAWREEAv?L$DR^BITi6^>vOsIw`Ye!L0sI=2F?WfFq|s(%?&tI1S7!Xr=)P3c-w zH3reu#ZV(#Swn9*l^OFyp{NdrIZ_;Fm@GoqMOAI)i!C(Sl5YJ**w>nNOr3tU7QwK(|Y7$;r-U@1NgAT7ctnL4N-s8Zu14vYMBSjjC<#$Vj3L zI;i}B%2;EeXaVLdn}C)pP>}X6z64uI!=Jlf;~Sg2 z^2O`FVxSRuI)f@Zo`NZ$f<5arquk9uJ`gVKt7sqiCtOAj{>eRrX`WyuuhDWmm0NiX zAEx}%yQMt2sqqGt?%IJ96h*+D`A#IU>z7b4)Y85@0I0gsbijSO=%*FkE%#i;84&}j z;GQENcfIc`KB)?taT`7`r}V8{>7rauz|pfs&ujcJ)v6TG!VEasOm4>o?afsFu>~HJ zn;!d9c5J$7=%Bu;kWjp-DsK2tFP3PKlR$z(oZCY5 zdnI+z>8?3B5%5E4yp_C~%hwW&tl@>@kgVxj7o(eHFCSN!1ZG9NWf$HdsD1-_$Ajo} zSo9sE-3GD_Pes<<>eU%TTTKhXrMvsy*R)?6nH#}alh6sT!#au|x=vp;X&8>;7^%kX zc`qMu&$oeH>2(8N%LIV$rMSbHwcu`_0P;4w5F$4 zE)M)DUD?+-(1ELT`ipvvC*Rc`jl>a7e^F_P$3!Y(E9DHdLSZDX{`lPayWo${{nHHGR>6_%#0eIzE3Ww^WOg!tP&fT z_5OI)Gmj1LJi{=pgM7`0b6110;P^kM<7<4!IY0%?Lc{W?GizWIhT>$BUx7TO&~a`fyX}4pk#M`$3wLehL;3NAXU9(qG(q8kF|QB&evY`0aMSNXJZiB?wo!Rn zaNqq^lF^aCbK;o>A>bEx~?eulX5H z?EQ)LJxj=m!aQAH+bB4S_^WlPxu-}Ara%W7Fe`Y*7M~5FF%)?h;jMKkwDXSWug7u- zypQGRxNf%f#G!~~d69|ux>ph_3qHwXg2IL#X@;-GD)2PKjjisiCGgJ?OuWVnv zxrWNt13SIhJ_;VUBpk?)T;C;~PN!MzR2c?0=jAFMPOqj14UXoh(#Opf2{Z&(GkLOe z@~hzxMbYS4$y{qzAy?~&|Gn)IjiDE5CTqN3BTrG;EF)O>`oF}y;xx;hG4x`C!!k-T ztt{u;XHZr{@;F2}Obre&b0lv8_SQ14*c5A+vC?# zKO_2$O4OE@SmYgechC80^N*RdSXk8biI8i!r+atGM+H}#VX{USlUwUV{XNriB2A@O z`m(CnCEMGRGm}*hHq#8Bw6B&l{jiiZ;R3s)YR#;h4`iOZy0^}CYa~;#M5Zm@D7Ed= z6;wF7twk{g@!0xOx7mj3;leiO=K4@QuDKeYTHP^L{y{kGV5z(_{QJ6Qw95xwQIS zt}cZ7K39L~-&~|#=hoYFDWg#U6i=TAPMSQ$F6ZtaMso^p&Mx-B8#XqKded-!o9k>2 z#Rld7j{*YTBp&W0NGidr`_j|w|B-Ihhwl>iHJCyNt)cGNbup0zY{BSR+Hgt;Tz-eO zb|palzQ;g%t=Vb(4SI^6cxQZ%M2E>M?6(OPL;>tftyhjjRn`}P58&@eN9C&i`n{As zXtD}8tdOs~#wNqqltUAR+mtSPUFWwe*OvuWczmkxhpM?%!oFVp8M772!T+Y;C!!D|@gZ*+bBTO&F4ser?OB(Ku0L7| z@1MkHR%`?z<+qeZ$@etBt7V74?*&UXKzyg8{6{uebOZSZpr^c-xVZkbAKB_5pA+kG z848a_*)f~R^pz`T^{)bM$_JnamRLJ~BLZ{b@gK#^tFu!`=-#&)(+<;?w>vvo*%Oj+ z8_Mqfv+&B^@CeITckA#CFv~{`>Cowcymb>|fLKaZ`%*=}O+?tTkVlIQ$0^C*iVQZ^ z_2Yr;Qtm87bCiMDhi6m1%4>Xl0B~02f<;mfjExLK1?dj-d=v?$bw(l-V@N&zzgjOd z`#6^Vf)W1fZGfij^^dBQEx-$_n>W%JFtP@KDi&#HR#)41ro>NSL$Mo@xhW=fPkQ{j zm`#gqZ!3oPKHa~>7+m)^*FUMor)mettK$QXe^yMF8_8yyJ%|l77UTo(cs)=~0YKiK z82vv*_a4t=|NjAeCp+0}4r9*4oDVsSkl1EpYCpffuRpHqkI&l^y75d*qv6>&quol-s zhi^2y9r35C(^ya+xji4IV-UT=s=;Mm=Ir>tU{f8wT*K`c@z|nt=hWS+X2SC>zERH% zJJoq|Lz6T_IWnSa&>oVvAXpX202=%r2{_Y+)(m}J=d~BaH~*6w3T|MdVU|$00)WP* zZiTY@7x7qRTi?L23pgl)$NUVf z7ZZcS_Si|IZG?Jm%H$^BQMR^8lLf9lldztk2w*TlI!w97j#)~LS9YO#Sm=h3|0*_> zeD$93p=eDx_EtWyulJRCpkW|`9pgULscRcBJB5gKLqR6bb01Kc_$p>buH0v4e#^#1 zPSYhcjwigeV@3uL(Q1%uL@efW`HckMP2aU+lkZ9usDhu`|k$; z#X157-uLB1VgO>KIfW zEp3BKYV|*d1hWfDxb4!klaUH?b+hLuX6pEFW!e@=5 zXVWAqX5%dQEAfJ!>2qf0U?|w|{x=>fiJ(z5`b@tZ$GJa;_0^#JDMu_k4}@yAu%ZP z3*~ay`9lV2?}<=K=cA4!iHG&6ukqAb?~7Su`uo)2-pChArN?Oht%fOjB3D(Np@HOXx95ZUGh<8B3y!fSgN%lBC9m}Sc@+0o z&dy=-wKhD3;NT7HpHlhE5tEOkhZEsD14q9 zxm8_W4i%8PQY|8=xNWpIW=A}B=Dt%8W(FklR7y`dl)WCjQ=HS*S$ON_Y5 zpo(dG#!6AHtakJ7Vru0ng3POd4E7KMZFimaO@tI0icZZ+!9<$|!AkUvZJ&G0U>1;U zDEc-c6o!_{yU)6RJgM=%YBj5-cNb!G#5^paqRgsAx4)jlR9w@MTvpV+_5t^QH2d6P zF7nZQ3IKUj00$-5HA3(^AKpWXe(s{Y0Z%^7;C{x65-Fwj-tI>zR2u-UM{w5f0Ec>t zOB7T&blcqQ=cZra*{IplX*UG4wM;#642ReLk6HU^RA>_qBvf!v{qRa7f!R_m25WSz z+pgG~S22%C$P%p}P-in63VkFbrm)I~U~F7AnOmlg=Tj<9VNC?!5Y5My7yt*UlpkBb zqrGPZzHHv-8@e8LB~$oPoGb4?LC?{4n#HJ14_;)^3f!St{*`4L>02=)p*66%>e&(} zHn=+5`1JhUwKA|3v$t^;lxTv6X99-2!Pa;rvYUN06UfhV{yDGZC_mOXBGRQGYYA0N zDzKUXhB)#PQJRC%b)0?+yvBNu`bFGz7Vq_4kX36(>*BNu_SB%M_qlE@qs}SrKPnUI5MYa~*Rz zrg&Z*2-rR1eZo@9t>I)>CgP(J(oNBMwMxpt+D~|w*eR+%-q(900nhBJo5|t|!LCQg zEUP3QCj}*S{Wr^++`?kY8#4LySzZ(SlygD_Y5tfZP8KCQvr^>%o*YL5ruVf?~5HoAF>s?!=?MYE~ndZ zZ;ho7t6Sr|?#Q@MM*@Il0xjUY)$v>%F&8DcXi;Nue-=0Xrv8eX?oahsX@ze2P$Tae ztE9I8ZIlbNhBuEgxcG^BRJ_iTN^@_6@W6$VF0t@oAXxQAY#YNDd+YFW&0y8=D;>N@ z<1_y8{2LqP|4-jjHH(v+RaaH~l10CgfM|o&xwb`p(A#3iR zuH99(5yjOOMpYS#>SXW)p#7JzibM(z&(Y~RbJyzCO~ChK;J`87bncB4mgSvEaVt@&CcKs}zIUCQmwCwyeUupJi)wf^3Z_nIXn-Qs=PkuhQjKuuD=9{w=GgZrbRplnb)sG^S5Cbef%{n}8Wjh~;EWR=m1c4fS@Vsx+(Vz%ZyFoalX2)}Hi)4JENSrh^s zVv4Nou2*Jy{)5;4xx3Vz#l4v_Ji|$nR@CU$o9PzV4~skPtKrSLt;-8KVQxv}XaDYw zzG&ELZn$(W1hnzM``Dk?0s8l=ID}e>?S7<3G46J0FV~Cp#@c=jr@Vy^^g!iCE0FN!>f_ED+ zIwm-5kT<#AdG?{-#!_>9Ra(aNY$aAOaeaf0b_a97Sr#_S&=S|I?0o&Y_JnJP(O@@2 zudjq|tBV0%2*Es}bXIs_7IAo4c+`hLcP}f=o!$QezoA3dM!+E#fQ;IsPRur&gR6ZA z!bSD2;0ER?bD6G_cU3ro0(c_yw&Rt#C41O&JY=Q+1Ww%i#_@^guRVFjMH`aztcv7z zn)J&dDY`_PW9&O}(s2UlK2ek<(O?oF4ifH4u-Z7E>mmbF0UDR}H5|yi9BD76hO=Uj z*NDMbO;FE5OpwLP(GimDe91HUnzsq8ea1XftgfK<9HNd9t1CJOx+8YVfd(QyqO!_$ zz-#-(`haQV5=>*Ze&7&lWD0bJ6D$PSrzeMd8w*^AgkT!SDgXA3O2=J3ayuvL>0I#d zR!!X&V8{VbTSNavGg*KW@12Nv2a9k5qt14vQ9%L+H2_`qC92JEyGc z-h{QsL?_YwLzd0XcsE2#@12GtI$H)nJ?X>e*NJZ4#~97C>1slfi>Hvfw(9W0bIpEs zmuXr35)f#$vzK6{=L(Gc&q5cjb<*;zH;db3=(r@QHX@%OkvC#S0d{tSC7m2C51#*u zN}F3gQ?SZpS{rjjP%La(SE1iqgHL=_k9V!#q5 zAory=GNvt;`TzX;=}*p)r2Svt**2`mcu^O(73{MBaPBd9wOQZSJF~K{fiVL@@X>wy zj!1u8nIPHOV}#VoRmb-J%W=*<;6Go1iRZ+tGqmlsLfB>kjoh>{Jlt3gK;l8m-5lTe zt7n)%V^;)st8uZ{V8R?C)onk{6}WT|dn}Z9#6(n^#cke@e|p~8pp%!fxz2Z-YWx8p)%?GvCIxT#yO)kZk;_~oPRD;Z(lWxxnnyE-Z*WK1w{D&+>O{(q1I zFF1hb?ppvFaQ3~6;hmOvcDJkQmGG!K4bNZPS)wRfa~EH*_%NcnNZq-d$}OD!m$0>7 zLU!Zv=pMVj)!V0H*Y)Z^U)}m;JNwGSSKqkNO=jC4uvRy!->!FlsMLASRc|-J!mH9! zyB$W-|KL&6_V~KRFMR<{G}MiJ%b6`gr;?#qNOCR| zX&Z84dE;Wn5Z+IH7jS1Rx3bUN9sAcKrqkkCQBH_#`|RuV6!WwI(%Rm_yQMbe*FYAI zG*<%)e~9|)XhjL7uXF#58s&7NRpGHQ@lk$NdeCv3H0yN{x356p24=pumgZl(35?IS zUuj%aK`k8iE;A|Ij2*o#{(coXjIkf(M~_&g&OCw?*7=yKYm-x$@RR;m(8m>H0XkQn zp2<<${dkzMx`Aney*mt`#h`!HsN&Wxf8~YRq{jyBg7$Ify6Y6_SonsnpATX1bV)5v zFP_8!=`L5VTuCIV;sEFQ4LIm@pRPgX&@}%D^x6KIfQuI)32BtvuITuLg7#h___bMQ>zM-1n&&D>R@O29{6mn)Ndy z7uT?|#jl*4RH8!;ODO2XFy<^ z1vdIUjtVx&67M?Sx`}wO2VK#!z=s*$ny144^Wp%VB{}nCh#E^3Kx5e~ry}SkR|3ph zvJ{Cq7=Dsz@bXD=puwSWz#PHgPv9kV7G&}sAunZ}i$Na4>qCIoyfOw#0CaFEG9zLu zx_oj3Vh;VzS&&_OsY(y5Y7}LoH#$|_MVf-^G`d!|0hDOJ1nKr7!;$V(wD9;zW?-&* zDr*!S+3~%J5+cwp#@p$gd~W9SWdU>bMGA4-)vmfqjjL9vzVFROk=n{Gs4yqWs9>ph zlu){`sZv~!$eCOqe4X<0oJU{z55&xL2NSEf@mH5J0yv2Q z*{=WFDH-*j=12hY`?0~aX+$2pCe4LT^&wF#wdc@h?{@Ludd?uO+s7dM(kto9?}`mn z0POfr@U2_L-~t6VbZY#JVfO-I$Jptzu13C2fdnagB!_E7>-{7_G#onmjpyYRgwjz$ z7$7!gkcIOowXnIok#Dzk5!0(mcHN2Jlw-8}mbZPO)4gr|m~tY|e0Ej@P3||oBsqZ@ z2WSN3i-J&8zcor=fWvh%)GxZ|#ll@nf94P#5I1yGDhI0xxzy#FpGBtl;=`?o(%czrYJrl7teqd^|)9WDLKfP$bl{)*s(^pQEateap^UR3Iv%ZfrGzZVK z)+61cd2@1PqV@nP|34|BqmPi18@O;}t$I;+x=*i(b+ z>eoFZ#|rIQ%71b)MUZC6nQxzM4vzHVXb3$&w`1UNW|a;4H3XBSL|s{~K0HVO>zRZ& z&ZTT7pJJZ%m?L|I&61ge65GfO;XcNkI*rZ=jy0~b3`3-@sT&V+lhNKJGY(Z0 zyC;j`$vwp3kvLn3!sf7KnDY1c)2k*lt9Uv0te1$R_e~XHI}7;VXFgQONP{{>giq`WAqRqQn>N+NfuYTo{hL2%QUpRa)DRSY*EeE7ARH9<<`Gi*D!^Rhf1SGXVZ3Lmhp=*4yuo9h*4M&6+aBadLB;3NW9 zaIHW&h#Mw9MtxH_f3cQ{)(~TC6 z(b!LV%h+AT&eCGrBtwVc@WCWme&4xzPT=JRa5Ctt_L-S;Vx!Ou_duDs)h#k=Z8urjy868CFLVCoZM9wRDXn+uZvsU_7?0Zi8Dp)u^#_^>B92hNR{)*)YDtRGi%}+&m>RIPw_qdfgtP%!6w5lkZtD*aTm)WtJ@XVvzvb1 zR3Bn%ZhHGL@ixEc&6~8a)yXn?f3@Dm&4+g<#WMqcyr};ACleK#4>l+mTYKk`jdvb? zc%ivUFS6zMJg*eB7?G=ifm1L;tmGj4o`eewLK;3Yrc zC*>9^64z|$g*YrBLU1?k4=>iKZ{j+v91k&?Ej%(bd?H@ChowPfLy?4d4IfHw3h3J!Pj}SY_^9~!WBtF@+A0_OUTIj zTL=cFPoF^7+C8w~*|#u3Inph(eO$H0Cr*cUdc88fOk87$R~8Jhb(e}v7#8Y901%e* zhyeha1J9reHltiQv!9-5KO^UJKz^e=`Pv}(HxBex=^MKh2JzuW`FPS0WkU$$VOdB- z8X`7RZ@YB^UG<>h;wwGhVk{y#CT+|_OgZ!(7@coEH$lrq)dWlU|8y9pr%~ei<+FbR zQ8eA^u>Qp4P<_|aTGxwB;wwYjB71axl0&c^Y)1N zZKBISQl9zt1GqqMVb$#|IsHH+W3c3~p=}FbT?5brp}jFh7v26Q;t5VdSJL#5)b4?m zW=OITKO6$YbTjTVLiML%J6;Hn%(Kx~?`6!9u@k{uCE-@q=#u@GpJCJCu8P?L>#$E1 z2jgk(LNSFsf|%nxG!^>axw|=*rVF^MQNvcp5tP3mgJ!yOcSk&JL6Y$L;zg* z|DyejF@JmIn9H-|A_lJcczf!76UC{g z#=0<0Niiu1`??lb4|$dNo^yNx@^Cl|@hio22xY=VnlO;3G-`42oYeR}UGIs2w*Qb2 zPWoSjOj``ls{ro%{t&8sL}GJ4{%L@Afqdcv-Sa3h zv*Q6|iiuQ#C>Qlh-!A@AKCl;UbQokWnJ&gbBFE1O`6&3r1_STG02Hvjp6%bF$ovLO zb>fTyO?4)?_^(YgD zm02!l#RAfmY8nvwwrI`rYPOzUpA<;u#3_Zy9NnJoEK)0<3K%(+Mu9Tf&Xcv2Ifa=L zT|=g9Hd0{ply?{22iRG@bt_BD1#Z4bc)AQue{upj4y;2?HhNP+h9ev%Yjx-Jz0#}E zuZ!7sAwPXMo2BEZTV{yU6fOYzVv`2#TLx}`VrN0u%`M!#^8T0xn(@c%JCZExFEp(M zevYRh^8lE7y>(sdv?*35WMFMbKQHeDX}xxu1~TndEgfEsBvW+q$ouyKFU;$+1^{rW z;=th^X#JoXEt4OwqPR0ahVz`rZ*szW%F1f7gy3&D*do?W;s8PHI%`_)NupTvDwNhxe$r{kxf9J61L1IxX|CLGLNS*>d-Ck@w$D0`j?~?^dDmd5 z)a<6PEBXwFs8%CcP5d$cU+FPTWMlmv};%uTtrztcg@{Z)OU>PLsHlWJBU#p@YPAM#M z1$Hjs;7Qx2wo_vA$y?pV=~u>%zM$Q($IvD?CU7nxEiu>`xZOu@3>tLSzDRtFqJHy( zZCoLTDHVlp&2lU>zwEt`{7Jt1205l(`9D3($;UQ`L9)3!$2d%(@>E1=!LU-m>KPy| z{uFeDB(9)zKLbFV6&g$cEbVTUA4RdYMpLe&YsAw(!_h3W$)GW4qoR=7r_)U~H4W)F z%*MPAuH0Th&q0`dd%sRzsA71VgXb;j@IPy5sL8FyVN`<9SWgAHU=~26z&?^+#X^o9&YX#-@Z$GgXu#u zSNz6{Lp430<_b*6Yo_zx7@EA&m7S&!am;88Xxcw?Z|&G_p=5hi8nJI-UXgy7zhy)| zyS(S0zD;#{&$MKtw3)}z3z0#l6JV(x7)^f!l9T^!+k3 z5+U4ATMt?C6HED`3fUt7=PXOHKnZ~->@1f9=@;8|Qo}JsEjd#Vx_mUXaUf9>R#NJIixx^)kS#F@a9H=cPw=PvUT5BZvZVen^hsV!Q zYeHDjMWpgbO=IPE{6JQr=k^Glh1p`=nN7dD=nh&5PWr<*&l9E$?h$tE8mnr-^$>=~ zo`2|31m`~9m>HG1Rfp;5q@8$#UWc*yXrGcz1Y+#Tnl(1-qA04}5v&t5}8sImEx2AZHlEPNQ$6_Nvo1c zz?J;fik0~N#fdZCP-;COWGbXSliu+MaKUtR`!mGuBa;TlIm8#q48Y(4mK>WG>{tM@ zo0Dzc(uQOLec0TKWCb>}b-VVZ_jij9osC<}DY~C12>L`nWCz36n0T$FL@KJZee|jE zeKEB6I|lOTnKgQ?5izqAH9hTkFzzGXRKzyq)3#qPXAYjOcR$i$9y2F5UQ*WdZ88bV zjlEtJsNxXtLHhivxVqM(-+-^-uZBhtejtr6;u`wA6)Cb@I$JC))e5-7HZjTUI}AuG zq`R-2UYRq(3M@#%{eek_#XcM}C55sn^!p7CJ|4JHDP%vABPZngPT{5ppE;E={5%TH z+LN<`S|Vro>_mv;cjci1&%PNCIQjdWtYwwRrg?1mFu?nM8ZD0C;yhhN!2+8F8rv4M z*VVfPTPRaiW1Y1e)2XUdSIUWm+4tI9^KTFPHn%lIE4=1<(0S`ju?lDUe*q&IKWKcQ ze=a8xvYnEl#yTrahS-KI3?Z2xXE)%QtZ0k5p^>g2awaT?fRW@8K2dlCa3j%~b~VJ~ z17NT`77_v%tj}dj;|oKj;m~dchS+h6KdK9UY6B)1J zC+YR%@eX=Gxt^Yk%p20#x4J0KZ-f~R#H4XHlyseVYO_v>7R=sz{`JXVO=zQl88xIB zDy}d!LFm?h;2S9n0}EkcClG%DbPxIfD`ZyKw3LKEP;7ZnngUpE*mPr={$IB+GKDH1NPv^$CA?o0FbssA?CTIO7k} z>${T=`Hiq|DRfYKRwixxKPd8Z$qv?iQDHHUMBl<`12cDln;QNiPmnPHWyw+Sx#j!p z6xFe#qRnZ7uYq?1Y_PBg@WnL3Nj(zucl_d);eVaM>U4{&cV~|srAAADzi4o@?@nsQ zG_~`g{FFt=WQg~CZy_GMy^8M8}$Cd&gD-VF=O?Lci$#fSTNu(W~2YRTUNVzET=u_KGfjE-U&?o zWcttdEgPAQ_QM*fcaM^G{9Wh4B)Kf%`NWG?ml_=GSQnhs_>|(+@upS|2A4)^ zrEW&kS*33Izj4y_>V%$Rz4>KW!%?!GMVn!Jfu-fPPxn)xHtiMDU{uwfkLCt`lZrNs zdxflYpSmh}m6MqDy38$FCFjGuEYdoS<3p#RXmUpo&u^@oQ|_a8Cb`I5+~0_>AeV}4 z&yD;E#zxUMaZ}?zT8CiM)jmzfY?cVEgf$_c6ffQsO3l421N`s5=l60y1Rjfb+h;Gm z8g!_v@2IRar(EYS-(<&;mdIBq~lO(aE^s?JMg*56)HM9@3vx(pumJcj73(dDct)3c*DV4>Re<;S_ zo3Ep+N?iwp#-uW)-;}EkaJz(iX=&VcH-DGN~B|U8O6KvKdSmuo?nWC(Q4eeHG z=9#be!V=PN_Y|AvzZE}~#lKL1uY8GJBX!H1moHVWE1?Po|=d2OgjQ1Vir;D;V$E3w@MMF*eady+e{(pL!0$y`M~j zP<67SN{GILWGF<(*}$oUNM8Bh*`G%WQH5z-(L`WnlL|qjc)Vy!6j5>Z2YxNtYJn|!TBEV=5lzwAG>B~dG( zpGrSrdB;Z0M0hn)cxF`xTAXu7gge@FJf8i;_;)uzV`e!fGh}z`*8^L(R{~o;xOUo9 z*rGQ|o?u!|-Wav}j#%8bPFGp%D;c6^xIZr$IVkB051&3R*Sk=BmD$h9mAI9K1cpS_ zLL)@)0&+};4Mjc`hUIB{F4zlG^q%Q8I{dds&8&brT#(%L|6m@(4*b}dG7htcBRyGI zo(XQ#M?6I%zF!V@m5Vmbr|9!X$WT`a*JvDrh$XkX3o3;6nyrbY)5L2= zS1M3!^(twYl8O{gYzxlLZpLkE7ndyWr>{EBwo)7}-;EpB2q5itFwWLauDRb3R0UB( z?0#9>-j6O)+s*cFY6oHZg9Psq$C`6h<|bma@#Wk%7lywzCleG_y4gz4XF}Nr(Ea#Z%_cTtV9K7@Fx|>; z>nCb7ECVtP%Kzow@6AhlY~<3I^1>VDLok8=w@$G9as=kOHbl$3L`3Lh6?xZi3hRl( z!TuisZHbHjUvG&Fd*|>Zw z-DI7v{O66gvW1O0_7r^PH@@w-L~}YJ%=Q%PPQND<5+UJXf1m6n$o3MfT^HTz2A&WE zn3JbYmFm7Xf;dgYXCI!{OZk3!>sUejMdyRtG=H!#Lww@N5X=%wJJt#A0ys8D!}!WD zTG>Q>3dX3H_FHZZ1=5Wyzzdnb<*zA(dn=Q;hn73FY5-K}`rriq$;C z(uRv5vA|Aj6xRa0f^M*=@P*?{pja{0>?# z-=9A=qH2i{)#(G#84^$b4-rZNBA>9|?hCjx6!AY>t!1dR$R5rHz)o0dZocQ%Pqoll z_3$cr^O%rWM06@R@1!iT6Ia6Wh-_~*cnIBbFqZ(ZDrvLSe8MM^hk4`gc76Lm9Aaq^ z8&Z-$FZ^~{?`{kT<7*mOXi@{08S2+*NYJH&ti5;B2otmCWmNlU%|znogyZMS@Q@UK zP<2>O|Iq6{em%_&OC$E(2 zfc)ed3<)Gu0_!BO#VM9E1WghdoY{aQE1+ZmeX<2JRYny3ho-$nu7?)}!4fLywqg8% zpj5Bjw)>Y5CKm|^c?vX#OXN#{!U*E6x2xi9suNwTGg%;OOD#d@*Zkc7PJ%RC!;i;G zZhjsjHKwdLdACQb23;!suou4D;u;HBQ0gs@xaY8sl(^tZ8IuJww##f#y%pqo9BZiL;wr~Z3KO}OVrfc zLy%Zrt{)knV(ftQz(1%^HDts=mPWnGm$YYfO3&`D`)>Y#K?dkkDIi3D3;_kwpbba< zCToy1;*LWuosmab-UIU`2(pU60w3$r9922rI70Alyx?GBeRDF+1?!wkXt^=d>)&W6ajlWtDG7AAoPKl>md1##U>LEH6ChL6gs?jVM&)HDs z;2=)%QEq)4Dik|WJ;SKsQ-VuvbBNf1m{om8GE(7d+4>KXb!7y2fn2Ls-G*{0BuX#F zdrB}|iXM%wHAv8!BWrnQugeQM;9zqQN{yvb*B_TylabSt0-qN=!xM~uPP$Sf1 zZRVjTe_J}_FnzoSBkD;qw)Ukt=|T>4<3RJS78Y{;OG3rFRgA`c^0#N=&qEIKAE&JJ zS#k>t0O)Vq2(GW453_ki+oTSnV@Zvf0qnzUK*+ejE#Z^fcw=lPE2T*@kJRdPkg(t1 zHhya%(NFrywNIS^(DawAWRnf+mDzlNBCm<(Uq1_PPw z*E*J)8=4{4Vw1(0Hd_9v@G6DzqI^X|^=_AIN%*1SN^s`a!ZRxLhm1iKQ>&nn_kgU! z&ZsVpb-ozJV-#VS66g;?Xd?*j&mO&lg1e5vq#;_vZ&5w-vD4!Wra_*Z(JIRdJ9tf) zU2Jvh!yY9SN&K7$W@O} z!OmfS@Rv>xQYZm@7gSKR&1p{Z^+RyW(00tndx)2!G3Ewns0uX}rl*pFN7&iw5_GEj zc#>sWV+yL14{Qxl%=Hpa+s6NpZGHeRi|x$(pA}xavkY)7Wsd6Ux@+UwetQ`deUkAm2i%H^PSNrEsH67AZ97Y3W8KXqWs zVM%iQr(TEUj8#FahKfG#Oao*q&sF6=(yRUWZ)2n56e}DFe%hGwxW_V4PZfE- zWCuHcKAvH@o8&KdL~!jIsiD(dC?mDiA?@!WW2znJ%3?hMR*$f84^;AQ_DS)+*$nw@ z8*1?Z0)hpA<^%S7XLS4?ir6(+M$%Z_x$V3kO=E`pk(ut}MWeL5QT`3|x%qDMCX|Cw zGqef?@n(Zu0C714Z!Fa_`#%?0j?GH~x~pwJ3`HIpw%#%LZavjzY!OKrjOiqxe~>9Z zBw7(p4)QN85&+y?lFly;-{y@Ty673ZA}E~b6?wJKE^&Y`uyK%Sj)Ez-SfpMQWI9H05J5u4etc7ne7K-u7HXpi1D zOMbCPs+A*$-jF~^gj+{v4t2o%|5CcGq*^x!=;aL_=FPWPOAoPWcexTLAC^W<+d4Aq z-<<%#)5eJ1+<{xe;6p#5xh2Hi+xA>#Y4F(|5)j=^3EpElu*4743v^+V&%;2s;#A#3 zzs;4s0hgp_cghhzjA@g^LDx~x)hvu^%pbg zJ-CY9^H;Gm0suiCx^_SeTi%K1q>*;mqmGmkjWnrCc^F2LpA3S28MBT~B|cDDH3eNk zoA%+Ez$2 zkID}oXzHNhj+&Di%-S@6ko|Xpk>W{;K)IHi_N~omdX8{Y5LRE4WAQj!<7M`tbwfmG z;sA(GUkSwZKyZ<+epUro%ll`VdT9N6)<0CM@o{i(`N}Q6i@}45u+=j?a1#ySO|{gs z`@tkd?}h}W)xG0VK@S+lCI1FI@s{3fBS+G{Q<6fqUw<_GPkFPi1WX;;wq2MdJ@gU! zy5;lUO4;v28+f$EuK`?nM9pNNYLqWhHu;dc3Mx+Fp2exC3ipGL0}|h=CHlC ztH5bt|Lb`k*;OxlX-tj3mD%tYoUPjY$;|yYah=y0O;MbmKJP!3v&$IQF(pt+;AKhn#p>DYtl^m1)bVPik2XL1EvXi1QG2M3*c*VQ`4^y z1K1nDOv4sfqS@pxkCU{dBI4aXlUd8MMNo+LC0hDKz?twVttZ`_`{vrj~(2cc(p`mLhSU*%LtIOt0vK zdT1iy8zwZKu<8-(WhcG0x?cT&oRqvb^=y+*oPnvbV(;;zX1_pLRXv5(9-g!a{v!j? z7Kz!qlR!|KUGWWiFBO8k*J|poh7J^YXO2v{Yrw7_(RViAb+4{gsg32aHal zF84xo_qAb_`T_0q$0Bjo6LXWT^~u5d%umfAy=>}qQwS>Vt&-_3VFnwxFJt+-sY#=J zlaP2tu>Q&{3kV}gT`Mz!B!rdyIU=E^I@2%8AuwY1-Wsf#Ufy`7Z-e$*Hfopkn}9tv zHYYLubE+O#8qhi_dMrFRHN*GUxN_ab+`8DH6Iu%xlU1Yg#{v29#(S0rC2mosPxYI1 z7`dCTG(~^uD>m1UFV(yku&@KZb-i7F22E{xNI-ioG}N<>PEzYPpETW<3rUVPpMmwD zLf4+RpxL^1SOz|K(+mFB?!$d>wdR5xGWcix_lKyR__sxQyOtKdu+WvH(I~8QM{fXQ z{ZeFKRu>Us;G{7+R-KphG+{#mM4M*Ryq7-Lq0>-FH{Ucq(ua2NyEtB_u4e@rC6v}) zL3;@xpJ;hfLT@h$m>j6awsb;U_C2kk6j*VpUnT+6aC((0cOi4dqqx+8>Z;+eQJh8;bKZNlK^(=Z}T|_ z@4<)(O}cvt4hARdv=fvShI+CMp>lveWQI>j8*+%ZLuY08^bIacPytH{{ZEgoV{!ac z&n(c+g9HL;N`<7Vm+wK2yMkT*@SvY{dZ5?IVCx<2@i7OvH${6xie%ZACMxbtr|S|S zyniKzPC=Abo%9@=_Hs;R#Ab}N>p!;9+&2NX2*eWw>@*RyE>OQ~iRd!KUYQY73%La2 z2V@$C<{M~E3RG1q! z;U{?9O2e<_a|b9m!xVZl?t?j3j$0Qu;Dkw12`bNvN;}{29G6oO|2dSIwUAG^sqWvwHGjaGrn0S=bx;3~p)>Jk!vEv=?t`(- z=Ga^t!<@~PvuraOp*a$znlnm;E}eE^uFQRe=Eza>9jSD0t|%2!UrIGnsc-e8RMN4Z zf8q0aJl>Db=kiz33NZbk$MUg;J!LwfTqkd-Q`&*f&m&b#G$RdV?St;s2&Cvfwu^xpNiZ(3&G%@W8q^gR?^D<}ziEWu@7c{~f%#{!ia+t8ss}`K-vc zbUBQYuJk&L$r8@j!;c?p3lVUJ8%S}ch#5do(VI!FxPpPG@uaF_f@iO8mu}QA;*aPt zfoeP!C2ggVmvHoDVc3UuDy;*X@!a+t-7F+^vRBa6Onjov+8I8)g_*o67t^eE+zzwQ z*>@cwOlH80Wdfglv2fMJk=i2*0U~n>MP%8`&+PgoQK)QSX=BY z*yO1EA}Uoe+Vml`&8~o)E*C0a(qNAZ7>TZR3gV~k`HY%G8`8+qj`wCmIvt3AlP)m$ zS*;?i(Y4T?byY!uBrM^hbju{Z*Aaa5jz=v5ylYmD8X5g3`QLIf>g;`#sELxvXB47++YeXkLE5Ps<&6p zsI8Ca4av;PRx3~~{*zDv{```JczbWz_fVX8Q*dq7J$gTEJ0Nby*WDqHe>Y<74bi1} z4zSH*T&!oOH^H}m>-UB1E0b65DPQw$T%^5&-8?Z3heYD>u2tjC(Fl%fvs^!!T)Z{k zyKC~hOV-UJ0!Zhk*Q$ERwZf-k zw4G#Vt4I@D&V}KHYqhLt9P>q2Ux^7^ymeiQzj+ycO|X3+-Cjm9jpuGR>cggRz}}sL z2H-jrnQHE>=eM{4RgbX#qWuGG{@Q^NJ_Z-c;U`AnFD&-E#Q14+!6P_p*6`MU)3WE# zK;JBm$CnX`>AIvwAT`CrcL8Ma1+90I?Jgk&_%5a@%Wk|-1uW}^$=~~GB#ion!<&zMy)JYQ6r1Vd!167 zIvH2RnBz{^_Bke9=96$_$3A>S7#40!2d*tPq8{8pO4YZDPo>Hod^$m(m<=ie`Hmy8 z5QoRQ&SSupuR!~vjKFeW7wa&_9#7@KcE16dUIE+EfH>|!l@x%HMrZ=!b?HE+PkPr_ z_`|hW?Q9#j?;^}hC=PCH$Ti*L1B_BaNcLc=40|YRYyVx0)dbCo=9_1(e|cS@sNvbTKy9$r^d#pExPX_r zet(hic?Ax7d3#i;{f_t|RJ5@#Y4s_ExTvRPk+bQK35ga;Q14<4Vl5YD;4eg5=Uf~o z!Z7Ixm~O~sRIshV9E>A9-n5$87zGEB@>C=UQ%Y3tii%Fdt4?4x25~9P=}ydXKkIQi zrbzsx7#ROWhY!Rqj6;o5MRo$Fp)5;<0e|};cErS3%Q9ACO}}9)qWM9pl=Z*JyA1%l z;7`|<12;Q_hSySdf9f<{L|~U(S(*~iF`giS#=U>ZQx<2JVo$+gbpq4vm@-@HYQCz- z$U#fTiW7W*8iDCI3P=%7*n1y+ovaVE4T7w4w{W3zxF4@gAHxYN#p}$Auqi3F8wiGN zLvW_np1vtjxPTBfif|}1B+e8XbFnJA)JXy6bsy;1Wp9)Udi5oPnBt-_VL_oMF{-kS zJ9Yoy$SqIlc`;t6ILFo(!{~hC`9>}OMT}~H{W|h8+LCL%<+awH$YXBH;BcAOK{|Xt z$8rBC*nc&tK!WU7Qbx=m!LxRC-_W16%-#wD+3s-0LiCnYlh~!w6K2Vdj){Z=E=Nj$ z#+Oj2V1F7kS_-op1z~`|bP3{6qy<0Q$P0{p$4s~`s*O_MnxWXwJ1tp#&lAH37g;^PwF}UW3J@zD>V(z`^)_~y!X1aeT zBbH#MO^pQH!vw~W!eu*EZyFO~#|*4Yv~1JJq+s)R{i{4l7Ywo%akf2@>Ja^l}^sQBPMUs0I$VHSx2dKZiT^aZk!21Ebr?r)Lqx)!@p zVz=izY$GqKX{qqA0GigD`28M+HVBOBKgXv8-z){9vbG)|k<8^7T8c@j?>1d-sF9Ry zm)`g*6t6o9PLsi7l(2QQjq^C|mL{T@LZR8i&L7-&X9&EF2J;R*h{3{Ip?R^*CaB;R zl)cCKUNeVcBQqss_vHism`Vm3{3Q_M#K&ufFS)<%)n0QqCY59W$6lFiU^#NPFe#mw zF)-yDP;UXKI)3@s;S};8EwIu`*H?tGaCF3AvzB%{0Nd7B%Agw*gd#O;$N=WA+vZ~= zI9&;|QWzOtuHC+yWL>;vCCwy%iGsdcpBvm;Lapwd zIiaiEHLyze<7_`H@Nl=F7(ItIw?2HonyKUYOid)JUN`#0ReTCSy>=K-AB!_`=uzsj!Y@K5B5eW%7z&d|v z10%&FRhxL61LttT$F*?Qa%jV0=TV?sCFydO;l3ur*GdkDj6r8Z@OdO8nxS9d;lI+` zaN(`i)jq=!fB&6S(+nGZv>@Gugq_)~ogf5i93V(S;EQe!ACG!+lC;HJ!00hgdT_?> zFJLnh({3QNV-TK1kDS1>7woH69f_B2(r+EnkBVkJa>V9g;NQofX;%urAI5aqgHtbu zw3uIEPgsM#+_^Q|X%(`)3RVzYWG`#oRp9B^0t(dIcKC?>MwRX;?W8LfiNt>EwO_?; z*Os;&cyjS}i+FSw_W=a!J`Sq-84$i1yC;bi(6KT78W<%{H2b)#tq&d?4E|=~NF^Gd z?=;jW?>=;+B3EpC9O;yN4eB;xhF}bISdjj8i$4xJ($WtBnfPCCC7Q`Bj$iI1ran)$ zEctmJ?{7irC7ZrFw7XzWpqaPzCeHa_XIQ+mLqNe1aft_eZ67{5{S`ej{C1cVLi^X@}9D`$!+mS zT;wI}v6%f@xQ#F^p@p*WaS^7rD)&b$L=XlVDIlmeI~e-PKyksVfo!ccfN(vD1j{=R z&gZab+D2uV4_oj`#zQ5)!Z`}G$OfIdoa-w$-ey8P6m5h{Wtzw_`mG6ZNq9s#(bY%K zXR!uTZxcQH5|c_kp0 z^yZyo8y**lOD!4OZo4MAw%`~ImDL~ybyt_gariv!w}P@w8T*b(`s{n^=$m#yiY-U} zCc5-l-_hM&ogn?x^3wtP>`I|sm*lFCP|J0(I^>t-C-_>93$I3AdT%Z!*B+k51cPiB zfYoe>-pU2s7(H!|_W!(Vi>Ej!EI4MgCA<+EN`tz%8}BZ5nIF;S$hMqR;H+Q6WIs-C zQsOzwXe~oH1PE`VlD4kLntA`j9K^svh?~a^BLu7UkAcSl_-DF3N57e-F2_4ju|_h` zt3ka|@9tMqLrtcyq`~&XN8Z|)yPXOJYrZPquD}Taf+k!J*R>`E!zP4=lO#I6eNGk#RU=td%;px2)s5>xC#@#`V%yJ~J1ZpMVL=^yrjp>uAu<{ZK!t z7lxtKW&#Z`#Ro9BZPMl47`#vLG=p~gLP$%`DdM(@_K`o7#L-_4^}Ev7lA6PbGrD)0 zOWb$KafVW@z){=mtuPtnMM7@dlWcYz|M@MZO(1^eP8sgrMdAUe`@bEm?rl_MCR@0B z2F3UXkeUFKWax2zdoLFbW~$q1{=5r7lPKg)ur>Mf%a*AcB-IVLwz+Qdf@^24Z z-2JkQ^_aAiC1%k?59AnW?n~iDHKIyn6Y}48n_g1V+T!2YUq5^4yWY^_kDEnn;8bcV z(=TX*#33Gr3rl4R)u_HfdVXx#U8t6-)M_1n<`rDy_!-*acBkkHqE-HH$s*X%Ktyy2 zs$8fSYP+bY%6-_u0{zLrkNYffE#5*@OjPA*yM`w)jr!c5`*Z=6^hpQmWk~Lx(?{$_PJ_&+${FvK$>sC*C1KQ#*p)X&5 zP!6tls>U!8f0yWuh3gl*#i8qD+}YNQ<_7PHf3&VEbJ;#`)X4vg3LbGp2|fP_QCcyx zA~bP?ZmFAC`Pz7L`ZruOc6eYGjIYKV?!1vMi)qfF{B9B6I=NAgw{!S^f*U!^G zoaH)e%#P^A#UGr=xS0MLNi3)PqksOLL3g;6^FCbko&9AIB4(8`ET5+wdi>0}ut1no z{)5<;ZED!)>?8X6e2_#iSeaWi`*Lf8_(xjD?YxPs@^qt+>b3Sh>ql52; z_aDv^m&Jf4DC;X5L^Dm9*KTJtXf{Bs+m{jblj0YM% z5;b%jGA~*36@xXqo&0iaCpXT+?<( zd=N%+)tM3nA7rm2mc`hhs11G@c?ocJC88J$L9UFRS`v7 z_boem0O}cH-2FH7(aWnyEO=2L^S=9nfYKlBWIo0=;4DGA#K$NVDCeu`(9AM@TgM04ppGE&x;I{KvU3aLN;nBUgm6DgUEdz;WHgeUqhdD)Dm z8N2kJUhUn0O!qlI^hocFZ@06SNY7e*wz%x;_t|RCU}_M-Rg98JM5}-jSS25X4>A=x zd|b`OF-vwln>d5I34j{P_}sX0Bh!P?8z9#r4XZ~*gAXJvQp-s8NuvL=ME!_{9610mmi=`Y=t{(_@;mzDZG1tn4Gfir8mbrLct6G}|5# zW7ANdX(T4z0xC9+W)mN2JL7 zZ12l;Tt{J!2>>8ND}*yplW3YG4c_=jgc;$@8wW1aduXvD2aYCrwJ1J04ho8`N;P#} z)H7(IWqv!vLvlvxkiTTubu+~#M14UZqNy1l_ofU{AEdDx6F76r50w$f4zezhtoz9D zJ~Ro&?M@NgdPq_~s4TSDJPP$F%WOOD*Qe1B6=_eNv#9(HKkoDm-Q(12S67p$;{?h6 zfIyaiT9kXaVyrXB{a#vQ*34rhYgD4t$+k8RDCXm_)HR6{v^WL0#w z<6d9Nic@~xH{VkKukTBV_&dN!L+dBpfCGT8CzbgkkX1&WKMf21^nr~578!{$;lJ8Y zTP8={IN&4*Kuscqd zyg-pA$ZVL(16ZIr3vu8l--P&h{3a*S!Xt%&43UT`o(8~-<)BwuOgo1QQq7PcJ_fQV z;*y(O#)y_bK0}ylNr|FUts^2HO@a=XH~A!ZWAwR8;Ak_8IzYG84G^9Ex|f0tWe88; zmtpS97I6n%RU0jfhPBBLcv<8XL&U*<|DpVXn0U1^Hg1yL7Rgqcif8OFbW}{oC>^mM z!=$UQ*~m5UL@Bx-&x(xtufWr&U^T8XMjUmedD{Z|9wy|2{qbycBpYL(W}WB+ zm>B-enB&B3j7 z5tZL|nf@991;c=XE6XiDZ0LE3ercwi;QhtThjD675)0Qv082v)e7mTauXBQq<^Q^? zp`uTujLaQ2^%_egVNFWRYo71(nlDf)F)c)d?`S$>NXrfYTHl%j#+^4CidrAmBR$-j zL|2R39PV)KKMODNR}`+9V7K>yf9n=!Z;XKS!S`kSBh;6@@CeV1*-xbqr@~K~2^bN9 z$4%7Ln)bCjlGqN}1JmQ|(N){9>V7QA!T)o_wIpHNijBWT>*LGG{F7kkz0s)XAuW74 z@tN&tF3D2K(@O7iso}mg8+oSCPS28D0_;Fl> zd1-dF?!ls99cWC4eJ39N;*(E8k^O{I)wivD9`EaEgY_cbd5cE9#S6BCG4Q4fD%q$S z3FErPWm4G5tSFL}7xA?4Jgu8z^IL7j5uE~*66himy#J~G`;xwhn^S?IlM>w~Q|e&# zb>p&}RVL;cHxK-@b4MtS1_X7n!8LT}V~#}zxrJ_{;L+>q6Yf>}J@V?5g>IEX-vfH3 zM-c^;z~2}Feu4K;sSwe?PD&6l@#c440bz)zzDk(3L}&~N`d(LLaBDvIx_o>s;8Qhy z-SjS8%hLj1az#)rXl>h(It6^}>&2>zm1<>?($xWswrsoJp&M&NV=)3X!*dEXGQX9Tj#A>Gmio^o$ zwlBaju*d$hAP{UELQ&VkARbux4Ow1>cNbd8b8;Pk=cyBd`TgRO#9)xXAm>&v|5XSk zZA`rcBbDg&_M;xkPzTom!a*0$kIOBCb{>J7)zj75NPC0~8g_V>yV<|l7wNj=Z%=HCU@ z)+(T3W7&(v-YUI%n=?c^B`+@#r0VPPV;X+vlq1_;+MN~kDmE+ ztTH ztJMF~883BJOBXUnS0dc`-<5(yj15M;x_#mUALN3<0iBV@hXpTPn`}r|8?+RWRX{2m zOl%T=a(^JA*ILjG^Nxb=+^F0V=_dl5tBU{yc7k~!mIR>ix zxoAWHSKZM`FSna|^C2$JqwKOpqRAsUD5EJXtA~fwGc`&Comhu>E*A(%VofEWvquFo zH}ifXMdJby=XmFcJbniIjFGgy&P}YDDEXSpqLd0Nk}AKapX>HRbgl5po-onrn+K$2 zsZo*_?>!6dgTfoG7U6YDBA$v;^6kWU4zMKeM3r}gl|WjuGmMXxmTg%H?kv!;p0pLs zSE!3m->6iVKUa5`^0iU~{(gDfqrD=YS^z^`Gzn_e+b&%Ib}|qsW z(Dt>giXADuBqIh4BFu2zA&;bCEqRL zZhb^$n=JI*W!iR3ZXIj(0hJWERtTm1?$+l|w_RA7wzZ$^csbc& zO{;kMLhvCBWX91c0e}qe&r~4WTOaeV{!t=!j-GmchU5}UiO*GU)VoqJpmqDhd93yb z?#XCR&6M~c%doO^H3XxV*jI0^GmaAEcI)9B)H*^9oL|U{vKB&O)qU5dKt0V zPb#bjjGusl@@@0h?twUA$R#oPxSxReg8BjL7X^Ab*N{0BOr5a|yw?rPd3(1i$ssDz zYKIShIJ7*o`(3%L;9;msv8>!__+Jr5y;dCMF=}mwAsO+WJFns{h5$$reU;^02r)X0 zL$*BYyVXcm!xP^C`~NgeuZQktE7s?))t=-bsvS z3`sNC5dZ4O7%M{~+}t?@`1Zy#>RgpG`mOF zb(b84+p1hWNCw4`k%tmExku$4|q6kyWO=n#$PH9?rr=x_m(k6L*%A=L0BlHj!FrsnXYO2L&gU~{TnP2L^QiUX`%LQuk41GZY`&L%i~1ShJ^Hp=&4t?6 z)no1{G?#<#0%CJ>?F!V_wVhI(H~x!z^-~)AEfM&inB4d^j&8GoZgc zP8Km2x36~#u<;@;=wWbZqI;m@bAb{2Sp!I5{NeU09M)A_@cwAiDU+PXCrXOgm*rOK zH`42`%_AK{YUX1HwcjJxRW@uncJ7|Ey^fT}yWY7hGj?BAH%S8B@4cP$-dRaFN5-HqkMk06 zetv{nNBMJ<s73h3``thQiEuOd)A91eK)Md43uu?$10y0Agtta_6{P}D4N@7CA zzE*A#o|dj$(4ICR%CXd3oMUy9u_l>z_6G2*j@v#}_Ny5E94fL#s^k9ta$8Ek#CfN) zkw1u?V7hzEU3%$hrqD^KUO0R;8&fy67)~9{bCCkk^T4*0IxRi$MOTD#`x&~LJS+Xo z=wVmsBGJW~A3Y}!dJzjctNB!+9v4$Q+<(jUi({hq#z?)=33P>L)&6h1^11tl6>(}m9JFJMo`f?oU!agG~bZ{e4TT@rBp+|cg`4uf(=gC5Mz2%*7 zU~Ai-V8M_}cA(x`+h4}=mvtCWtE9+YPk7(*W*tp0#i#o!Qb+xtN*CEjXAr_XqO0_~rLYV|{ryU>&xE5%2~C}`qr>GH@zi3QBw2rzwOyCf&%2blGP7MZ z%Mmf-rwtq<{Xx-R_`Rqz41wp-@$msKP0Q(k8HINytVETNZ%<7eyK^4)sWkdaAsHt^ zXxv-AYBuLZ#e1U$|_S*pWP_UQ?yA7tQEi^~;F|3epV9ISZ(G9edIR2=&I5Z}RU zl<__4(_jDe-BGvrTgIM=fs4^b7hS8c5t+~QBkuLr4;_l@?NV+1pFR6E6KO#i`wi~3 z7|y1h^op3ev?W!U;j-`drA08bx7F-5rQ+Dat8C+rtB}RT|Dgu#5BaTBV&`6|wA>;i z94)Pn!vb|3mu_A&nag2#=Aa%{x*vieDZgKjdHKqL{czGZIujP&{Z`?%-c#YDhOejf zp&arvUwFmaQ|{_*{zlGbFh=DA2C&p<&LPSe2|_&RM80d3D(jw&^tSC}1#ij6_M;$# z?z6c!-!Gz#C`cw&ciV3g7!z1izkwio@O_i+XzF5?I_5ifRR35HozKv|s1)sExQ?+H zzF*evFj@PFi!oFo7{P=!L9KAzRR^f|(RWps-v;6Lros-XoW|g~%k?e#EWG8Q7RHy; z-v_r`SgYrA%peJ~$Ly$f1Pnh$evJzMy}9a;9pPZ+kxipxchg~+s#FmA_|mt+xY0ic z1|qNj@ow0;Mkv&v&c$pF8R2G*HohWhp$_>tJX07UQZXXBlg5(nHjCm2Ga79e(@ckv{59r->h< zJQ}VO|Ls2(MyL?q)ld3e;!C`opu?)&afs7rbc))db1-7*n?Ub)ZG3d(0&#-%Ko`{c zspinS`fS6@FBQ=J3m3VD#FK20(|{ws32wMSa20yl_yN5S=lA#0EA8w*-hBpV{~l-} zZCqdDlR+54*fCKBaRYcz`2sowpF@T{T@Fs)NsQ!9Zws~zQI!fBRg~mb#-=8~S))WL z5Nnv2QiQ{`mjzcd0z7{z;E^M#Fx^XkLwD`34DPOuGMj2DV+e#lym5}{oM@(Tzjk(k zRf5qzIJG;h7^QpG{_*M!C-^c>rDnv-V7@;j^QRQJ%D&hG~Faogk-b z7v01oJyi_f31uk*lsmCshqwxL#y9~O$$K6h;wAM^28tjfrQgujLk#SH3J|D@XS2SN zg*ak@ys&Ty;X_KXIpAvG*HA9@WsM*o1xs@WH+0~p-W*6Ib2M&h%Q7kfJ7L%OYGHJd z-a)QKpiCIug}HO;4;XAd%0vF0VWzf8ksBOU!VN~Qu0ED`kt1#3A^BJI%SnZ1(!Ag< zsu%9D#HUa5gT4P^ue*${0@3Q(#B>~_aFXw`GUH85mh&IbS}34{-g+Tdb&8kh$U_|d zRjIVx(aAUQro&J)^NUOFM7=ufJyW-uE3`@==fU0&8OaiL7;S(oy@jo6l0-~*`bN7| zJq)CgCRnZ4L0HfCwMCiw=CZyRlOhy?)?KGthe-V0C;a=rthN%N(kVZ#+EQ@9k3 z*~{{dC5}VRXotE{+G2H`7IgL>s)sTAwJ4jFfx@M8kX!~=!$J8Vsp}qTwh4ioUMSRE z8n6Vl199cCLZVXw`m#M+Lsb`dUH3$eBWI}T&|D0J+RultkqOp}r30WfTLmZJv?wP?qUl11MItN-);}&{o8t%gu3m$5yj?l3Xgvr4A>Y8aaR4VXp>*( zk1WvY);m3P_xqwSS&^@{S1XVPJ#y59cRTRf}8;Y$d7V&V6(rrT8i??MV_vny@=m-VyaBv>Jsr=X*Bu-NeA(Ukad^{L7?gr zaHrr`U;YtV+R+tuD*J3w&1JV9?K7*MT#;M;j7IwCJ-u=n_&TDY8cBvG6;0!`%b`+}LL^91w+N@?&8GMN| z=Si1GJjwlW85LAya+A@AOVMwW3sN2nZW}HG;R%qs9J#=wpSUL#$i=zZ>)xn zN`BNu+k_XJWS-|^*P4PsejraHH!#M1^>Z)k zACKpVj6VRNC1?2Pv(?2DH8js|${Ka+1tKT#Wp(jyF8XOgWdnU}pb+!N7&QStV^^h9 zH~~0)bQhQ5I~#Z|l%jcDCg}17Wuxhr$x5?9QW^R0lpn~*-1ST5#_}VA7ClqOXtcV&3L$v;%NL7rB0F)f zMm~Kq{>Qp%4$Rn5Fp_Ejp{^2?llv+)rU9QQ1E^%!4}*~`NS2{!VB|^vf_U&NGXVA`h||F7m|ePs~K816Xpg z(TKueu3ywI-kS-pEG_#S;DbyDoJt9LlgL&@>9;nGYk#Cyc8hRwwNoi%-FC6j^af+8 zB1nQTN(tCJ0+I7p2O{uYPaW&`fOHX1H596%YoS%wfR_}Z`sJ+9rA+Juzc*T89M3bP z_Lh7cn_E|}Zl8@URf8ySF_{cK1RqXS=tLR$@kF!87pT9(N!R4sO1^cL;|DXt>&j>XsBq zWo1Ty;T_+iFsMzK6A#0rk5;QI=yDvO?0L8i3<`O~Y<&(ua?*P4#^dAtMsY}L-MOY9 z_wN`l+mhjvB7AhS#{Q!2vMjK9NkzZE7uJoCwfQ-^n={AbIh=}5d z=4(!mon9JT<^{7(!*Cs>?fbC2@m{ehYF^}v&&AwAUV_p(X!`~>bE+2|uc z4KJcYrq~qtoua3D$(388l}{1O%+8>2p7d#Y*_L={3na$G#_yDpF_pr{NPToT0dXe) zxbFV{^)nU%Le)kANvf&A+3C1*$OjL(`Q0f#+-3hk)WefabmZJKla!I7RlwIW;J^I1 za?44rn?Rx`XWpKXA%38r&v+qwm_Fnu3d@A2XCDcxG)U8U8!SRg9^zA5VO!aGu7tia z*jcAsFrSPVlCz^868aH$-Vef8ck@@&m?r?}Zk^t5ob4g3=~B6+;Z)I+x-iU69f{b0 z17Br%E=K!*f;JzL0$^M@^f!2Q-LtoAYvga9fsMeh5_ml^x4P+ckW;RI=EJmHf^M8B z<2K{ubX>TT|He{ibrYbUjV6lDn%Gd%v5M7!-&3jxqO*)XaArs4zW9NPIPF~&*bf$f zNqQ5la%CX9Spy%tGgfS z;6>SUVMPz!}cjv+@c>qg)_t2rq!1$Y#1v<>Hl-Gq3UwQeU(}$NV zZaGfLjtaAET<2Fd@mBs<{s$!{NwWTur(Yy9Hj5Z&5v$}xHm-@TMg_8Y+51%U{M$tj zR}Vhf?Oqgh{SbNHMIy+-wdUG|ogy7G1e_ABZGAin4bAdOro*xa^`!>$(5x;&uqg+heZ%9b7Xn2h4mmd0~4U^!h4jP7jR_Tczhx_%ISsreR zz2ENWZV)I^MqHIjiz4uI80YDGEEtFzji2`&US@;p3v@(01Oe z!JxBM1RJ#}gF5|kF(i%hK9ehE5k;7ZVUv##qE&^~B(jYVv{A4zBiIf@`7d|cFCzqU z3RA8g#e?5$oU%#Wp3gt^TdjRUl=TOE$jag^_UVO*%)pNbpPRs+Gj|{UG*hE$V(__! z0LH%GePgR@*boSOq$+Zxz{du5qB0vN+5fN}FgTrqnV+5?s;U~#Ns6p8cwOC`sODD< z*;mwm7E^u}g?rJObHGkfGm{|F>;I6yfj!~3Cm`U$Z{Db?n-$D@HWWF9Lp^#Ir&qhO zkaC(&qNZS$&u&>#$5DN?T-gKdT*zcy*K+?HGq0zIbwuIgXQQ2Q%hX4Y5l_uR1;ncI zqrPxh|65ke<2+)^ax~iIM`=={T?3k>+y2P>45%PKPI>OuYRy{USmanODYH4TAk<;% zeJ<-MKkv`C`w^uUEy3)!MliJ~h5m?KhxarlLSMI1k#&&G#2{{ednjfyfKk{CopV1MdL^(-ydz6f3k{P%5n+q zbf-1|utMRpf7gClj;HENcw8`J0hoak-EHFE)DSpj6% zqU&_`@1)^va6WRy`Z5R$0^BXz(U8g@Ci5%e`Hr7n1kL|&)fO`*e19MV>9%?5kKE#EqdWo33)^=MayL6SMfW;i-<*E^V!r*8PZi0l>6PdCcSCw_GIhrSWR1VoM zdr~y7fhY-zwfcT^F7t`&x!s_$tYys%o*dcFgURLlSB&AVj}D9!(6t7%Hdje^Z||3E zowF(Kl`UnaI-LN?Y^uBB~#_c=A88K&{UtoFV^;n$Sp>(qX(K zHh1@jj09%pXKqnV-t>c1?)a7PK<~8Xr*=iggGXUy$;gnR-iD&Uf0z{3#%}U^hhZ-# zkcKESstP)8uj?n$Wa^%l`f5lfiRje07Wao`nIBr7=xH6o6<`TZ$;*;|y*v|8+#AjndB)N2 zrsqWDiu%iDvX>@?2~V^U%c-0oq~p}E{>Fvs6Fvmj!0q+OJGH^4O?;{B$>1-z&9+>I z?`G|Dk*rF6zc_qDz>YG15b9dV-ZPL89Zxrnt3MpFO}}m03qOZxFZje89e%T4H$BsZ z%+kS}T~*Z7l07&4H~|%`Wx&l>sCB2ajScaYkc?0dM=LvvYBQKU zHH^u3$byVbJ-^RO2zj3MQNJ#j+==W&ep9z>GYw#5gs^Emra90 z6>m{(vEI{@;q8quBquJ_R25x8?-T~EC-#p=zrN$T{l|&F7K0jvnrnLghQ=%$-atyb zSIQ54w^KuCL5rJP6l60#SbLOKt`<~fXBa>I&;WCN>M$?-Rh`I$2{~L)-hUt2ug|*c zOi(H9_YnW<%)icSw0kO<{Q$>1ec-W#yMI~aWjHvsnrLWr#lYIHNQS5uhz}%i*4vd` zIg4|NF?o(QeatMh7396KO_=}USrYXO8Byo(EIL0Qa34`%@oH$OMMkewP-lA8kxhid z3(+~&eK&gVnq6FoHYreJ&h+QkB*ysU?}!R+)T-%wAT>-m^W`idQ92_~7fkl5;4Z47 z$6mq{630gSNqm2xCuF!aRQQs1kHo$;9n&I_Mda0I_)CC!Vew*9b*(=&Krxz{5~GO-E!AT?RxF0i)aOWfh1ZvN zsk#02V^Xws&hszeU%EcXR66ty^dPjV74k&DIVf7CoNI-U4UMsMb~I!{!oMsSS6NR+)b6Wj#59K zWu-QN-NcnW`|?_D{hCxr~AH*yRO=>O>aj5qK9nn`4{I2 z!n7J77FNumObfnwdJBP}Bn6)dVe{2XcAQ+W6of2i?^Ed3$71CV-!`{b#2HYED{i_arHx zm~ep+mkas*9$xJkA+|$%&^{c&Kv*eymAtg=s-zi8&N@THr_3ZT;y==`*Nf5*H zyCluBj*^onhW*#m>H7y1UZ%b5^HJSWVw4i@_qd_$Ee$+rpXs02qp?P#waHkLi3s+2Lu#URrHO#3MZj1JZh40j5RM(Sj6DoJf|38TASR< z7T@RUCNoA!ltKh}ldsPA2OWWXtt~(1vUNn*$&VXQshlka)YtCX!^&-;=Ye=sv4d`O zJ(6rG{Np5m=9kt(_O&Wc-4tLQsT8P@-f0Fk611vNA`fGt)F2iRO~edJtBvz6h5`$X z&SgX-25U5jopD$mjxRiqXEaxo^o`bIPx_(G(4Di)0C&M|M?udM<$O{NpS&r$S4SWN zhg{=E9;|*jS@R9;(Vckyk+(NS#th+}Qrf9ffH|Iz`Kt;vYy#MOKE1edEMD7;zAVnj zX9^!qQLIiT_8WJ0pKDz{XVt43Gx|oibS%&t57K$>PjK=dBVg)b2Fvn>@dQk-Q%S{1 zx_9WW825tynSI2xoQstqS6TJ-Xv-b|oaQDHJoEXSeU{r}CRVVH?`<*GiV3$E+;yRPs3y+0oy z8hyAy0@ziI%bM<#Z)j+Ad|Ugg;~MetINQq`HH29w<5Izcl8K-}@pC>8VgHkc9jm6f zC294(i6M~+^CnMA{(Aoj=&)1a46(~uT*bTN(rF+Xf{G_R-sv@a3yN_GDKOnLG~Wje zg8>^ngq>j&V36oj@r-xgqHa*9@m#3Oy4ON3H4ys1<|b_gRHTxyBP9w215^-1J3b$q zbdbJ(LQq7z_5xp#FrqONV62+l9O0;{;&k72zA13Vgx`1F^NxSd#8w{Co$*S-st){T zRdg?QzdNF?!hXjc^3t#eikoVCQ+`|+w9oC_vFks;8pRFvB7#XqNk!@^OE@+=#Ki;( zH59lLs8nFM!d#{SSJ?cr227VC<=m}IKsK&P?{!%bgEX~uS@sAHBu(CL`CE$s=`Ern zf`x5PB(A<}l4L_&e?FQ0%pljX_;TxJb32?6KJo}9%Vy~SGo7u`*^VvEnI4RHPT0-S zVo4b%Wy_DDhTRv>@9O-l+5X-e^>B{<@$J7@d&xV7y4-UQ+$@TcI?L1lBck_Mo4)8r zjijVRY({%gRKL@Ltgnvx*S4P1UBNYD;b>Vm%MRdd=IJN20}Qk-TW0rIy9>fBJXjb+ zevj$F-fsWw!1#XVs_Gv}mOt8`D*UNzhYo9g=612>B3yGjZx8%$@K9pYE zqDHUJj^lHj7b(Qleu%+i8$nyW9?pT$~44OzsHWCoFa&Fg#< z_d0gb_!GQ`0Q1!d?Q_FmYdAWaiMzi9wP#As3-Rl0Mrr}>M6vyhgoJ|Ef7=|08*}iC zD6vE2R$Q?Mf~E}2XT5|cf9;%>9I}&f*V-cKz&^R-G1v&fS=gMES{EV^A50mF#W;cG z!PrZnfa^?TagxN<#`b~yu=l#7#;a2GIvJvg80~*F_a>mW8zOuUin}_h0j7USqoZ~M2wabRE9X?VJKx7tvjP1 zJHh-0(vl*PDuVGkhK}?;YGX0zf4nr(2d&sC5T>q2;&qdu8K-%xLG#0At<|pw^(c~1-C5F^Fq2VnJ8@;je~m@f(6Pu7FH`vLz-& zh~^3DRFH_IuOZd`vMu_~*OHj4Of~a)OF0?=G1sup{A>M`N$VJT{BI;BhPGOb`{9b3 z5QwuEnLE}Ik2u)%nN;cPy801pZ`-Db7^BXOc}%S+tG280x~yJf>blBvYo}ObdbKy7L5%%qeHdK8QQM^TRgB!<=~XaT#q!Qe3POL*|R_ zNk=k8u)xQ65{Lbqz-@1agfTuo z^O7Jf#(TFVTuUtEj9OhKgN3wvIS*r_=#Uy>+2%e=S$lzS@) zjvqxP={p<~S!{JhZ9w1jHJv;Of}SetpB21cS=gi!?Zh-`t1(Qq$cd7Vt`@zgJ_*;) zujnsl2RmKuSi8DSqpv4Vs6>Agdhb(cJ}`@yR*TW`*Gf81CC>{q?7sAp=1f3P{6dA^ z4_R2S0Cf_CSqEY4*~Z+jiPO*ah}e4OF>u2?lb#J`{Fus4Og(AqN9s({juqHv${zObZrH~7euu| zozwTD6AIY+PaadmtNOc-1?C&L#fs5?o>v5sNN$Vv+RkJPefJ4h$(a`TmX`h0qE$1- z<_O+fzlC=@)~PxlVK5(G9_!W5RQVJ`ZY2iJj_U%Ap?@Ls{5#V3vC<=`-ug=(@A+X# z-yjW-y$42g^Vc*jIMOM`{xR3~ZeXPC>l$Vs=@fo7A05h~gigdM_)S~UCUszqu3RQNfk!yWc+3~%{G6X;vk-+gu!0xwbOyrI)47;ip8^yD%R zPn?&HWxigC-Pbx&ZQoe9_oI^)ADunD$25&Rvt*+yxZvn$@v_s-__RS3zNhmmTw`&f z{9#U~Hq;bE-GAL~UJANLq=mS?|Mi{L^=B536X6pg4?NjJm6VSo9+ z$iGH*r~D2wh^d!B(NZvySbc@?5wLu#9Up_>m-c$}h!9(O4X3n;eSB-(Um0=uju1LlvSkM0 z#DnQ|`wNIu9Wjl^raTZBmD4@GOf0w3X@GC>Y+l^QA2>!Sc*{Kq4^WJpLQyJWoEl&D z2+$f+CId_5;5_N?xVy2`i764mA4;rPl5|RcBH4%~#*96>P$)%5B{|Bd%$dx1ByG3p zPvNH}AtQ}m85U7VlQoH7-jPj6G#5X5XDO-WwZ}V#Zd`a zN@D4BnKK*w84*a^59Eh#gZc=@`1P`P*}d)O$uElS@?G{`-#MZM&c2{~1fvlTZJL^~ zV^j(~ct}J%mZ`adNRomE@?*2p0foqiojKTb0k%I>h}cnrYDtDYgNh08KfacaxuMRf z=$}_0(Vm3&<4FFf>-D5;x7`L1-Q;=EjYSuaJrIgU%*tYnIHf$NGyXnNbcvi z3-LZKPFjJGi*?H~y_Q<#AZdHL?gUkOKNK~6?8Q6sfGyQna1pB2N*^&2L=1&mwKhu5 zM@W9QuOx<_r3>~1H}$w1seQ3ldWyDZtpb-k($%rTWwVu6*vW$BjacOm6v_ffLSr6t zo-7qnpyM3{?_&qlQiIFVBx8oCOUa%79U=Kd>o;btu%8v7UPL6_B) zI{Zl&`WhGH=!Blw2M>p=GjrVfJ{Em-BHuT~I2}rElGM$(?D~Y*km39=T+hnL0qQwq4<*F&6MAVQCX<~rh&r|9ohsZ0`#u4b{ z+nss#)aWhz^KCtH`!(Au{H;sTUk!#O^&7`P^B;g+!QP# zwx!N5G%wd1#cw}7H|_fT!tM;}C2R9fJJI#=jn|oLA1~wW;wkAgN1pV>+=%?L&p=e z6AJj}3evi^1dy1_%U5BO`V;-m#k^s4pX*yZawPJMv^dsE7draD5Pn3$VSHq@601yw zo$E$b@OmuZ>$gq=p64ib4yfPDW}`!muz!Cx5SssKbnba$zv-GiM_0jrjPOe++(;SM zO^}RBK7;)A-_2sREM1u*<@7Ip(`tG~a!&d9VoN9ruXYx!V22BIRP-7LXpRmRKYf+M zKyxGcn1gLR2|JePq6hQ@vmlX`iE~xcB>g1NQtx%ckn{U+Z)v(9PEdeSOIo3N7PWz{ z?8RRlPP6`RdJt3sr#?}?w!oxkZ>6lt6=%{r@*BODwJ8u9KQa?oR?#cBF(utvjb)&D$~)zdw% z5t$WH@K7nSd2+-vB>QJI%>_oNOSWyv96b>?%l~+?ym#!g!|zSL!VXSr^|eF&8xCBy z?Hn#BED8ND78Ty5_W`MDtOL+Y8q8c{cr|Q4DcB=EZ2)r^Jnf*^FLDIR@V#)9gVIZy zZ|HH;VNX~MK@C&lQTR~)FPU2-$BkEi{jDTXu*)U%yHVzWcHgl4!cJee+j$Zpi@-(AgV!%}ExhO6?GbA<&`;tl*|b)%9iLLba1 z2f}v;GV`SN?F>uND!`d>7bW>WzEaQPwkoAG@1Apct-s0)I4rg`5>nGCnTH}CLEPT= zCh1$dxDAK33pHTYn}?jl{cFC8hXoB>$u!%IVKrk}QoS&KYiYze-OlWVLs===P3sW< zGZ*RGK^`AjN?V%^n=0@Ca#ExUJ2kReaQU(d2We^##1qZ_z0t-_yIgT)^8P?PD$;;f zidbv=$Jiu2IGpvXcSQBrnKh1N=gVgbQZRY)NVJCy4tBB0ta<9v{Ju<@UySu6855Qn znJ3g$d-(29%+yMPr&vFd-J)K#OngS1RQSn|yOr|w*doCV!_$UgSq<2$rzQ7pM-L#0 z6?mI|Y%gklrvviIxAQ0+%?0HCNqMOEeaGYd5ukAUCvsKwI2RwY>^GUB{RYj`4)FNC$(5-nuj+fK%s+g#1 z=Tzn7#1JxmR#Xd%eD&L3Smg4WfI2{u2J$UYO_C6)YSuKpx&~pNGUuJy1=ZYQ6sf$% zOC58|ldacNE|?Xd7e*e@MU4I~`RfuNF{((bF0SD$Uh0wDdBn=AXFD&{(~m(=ra^tV zYR}HyRpXGS}~9uV$5} zy3=n|BoWXa=I{K1c63Sg_;$>i21Hy{cxpMmCarr=VPfFwmkpFpp&8vPmBkhB|I?Fl z0+rlziJB*0@0%csE)nt`UpL<9sls%>^?J@M%z61u(~5JAQR4xqI-wF1>s~f3Gc~v( zu+;nGctw@LT?H|nyXal&ej1}xXO6e`qsMgFx*i-Emybq08cK-4?`-yz;nTVtmsUlP zPp?bxE+F@#KWpLET_4##p-=cIN|7afQu5PH^}jEjvxuKmkXQ~x*M0qswFWi7GDLZ- z7`D>eQ)ZrN_{mF%YG6;n(w$_(Ne3>7t4vBpN3-4xn#x!I$1bJvW8bB~%4?sG>*%M< zaohYEdpG2kuJ>5W={{$Fkl$e@WPTr1+BgQ+%>H(9pPk|&-3mC}C2rP&KBA)6S2w(^n3Wm0o`zK`xp6^JGzs@@ zqDw*EyIi*+JylDFgTyYM#qX=~RTB>$;KDo!$CW$jAKQ9&M?~TtVV=q*jSxcKDq`mT67LE&{1s(Z;*g7`ZF87*S&;-g6!w4Y#&R!C}Ilo;WbBq}laZD%@ZQ4$Ihf2e=3I+!ee|(f z+mn*T-B;fUU4fuj01Ad=fncsqK-8)QltXz%1B`aW94sZQSsa56H)TOI@p2R)cnA#t z=npkv!gKHl@&@ifp=%fqe&xH8&nnEsidMmvFPfvMN5XZ|?Oz4RrZTjy+}53`IY_Tk z`1XT#K0qUM@L+U4M3W1NUEe7^FCsBus0t6}Ai{~$0dpo|yvcC56;?^$FdoXfHE6&6 zjo6vCgjkt9cQ&}imGg+QB}~fAOj0O|l;4xcD1i(WIN-nsrv(8m!LkP3;gKS6hyd9+ z?=aF0TpZD^=(0|ck!f}Xs@VwR1roCwOsCj=UsIwq5zVO@cl?gX(xI^p2TCX=K5Qdf zv%?_h2_246(lYdr0G?5mDw}>{HW*@V3e70S886_}@Wz|3D7S|8zM3jE4Ac!tJFw`e z{+BMy7hfnnDRbLR+ooD3SrLgcOGseijMolInYm!h$UCe+V!{Drx7Lvi|##akR=Y|CrDzuqHFcI5JNxgxU#;6F8BSVY#LSD|4zEjqP?l4r<^>a>pA- zbfJnM&fY>;_kvtcFMJ1Tw?I2ZYLqE#u+pE@HwWngRh2KI%J~T8|FjX0zT?SLvgNxE z*$BXU9#JrJ24zDYGOoZsW@g@VOjfs?%mPj)on%BHKclO?3V`gAl`}R)Wb$^toW3#( zA@Q>&<+~CAT(UT*T{o)a*#%96IIV{U!}cRG#w~ z(cyAmY!ol+{b02g0G(Y2TjZ;Hud2Qns~VP9vE#$i1<0me7@1FOiuBG9LN%E{=xW)( zVWOCAd0C5-xQ5%T$|~OZpC^%L+IDL}OE%W>jn-ry#3B4Pp*z|u{eGRC4Xg)n8P3Tt zZ-Uve;E}6{NY;r?*a@12g(nOCEnS|*=cejtYGfWdHmUR}evkScxF^FY;k)AK?%k9; z%E_BL$Au_gw&mt6$SVref~QPpDoUiCNN4Q%ZynpdjyTr>{Do3DCLWYaN<7$bnh3|K zX|F-IVv%vYXbdjOvkO-GT`8nNq0|3>KEw&$5ZFW@Z}-6MMbN?qH5~#nOrWQ_WST=j z$t)Z?F{xNvn?01C93m(#Jqq8fN-Z}dC{u`I=_<+7Nv+Yl-sIWiKs6YGi;?c}LxQT* zSMc2osQC*SdweWoI#bt={EX zHi~XMY<$@Cim7NA7q+W&C$C7s!g6}p!a+g(c z!V)kEdh)coMXQm65Ufm%9wvnD@eAC?vJB>v-_^mQSWeo0ac(d69j96)20&f9Wd8YV zTt)ER$FPif2|tNP@65mdfx|y0g)_x3t{$fZG^ICH*k88P|7F#fP7(7Q%n z`e=l%GPYwmkp;y%OqhL>#ctCS!!?#JRp+G>Kzt21UB~A1UuQ4SWREmz%p9p1J|u2~ z^*95zf-09{3wF9g+VIU=kTSc-n9d=+NZ?4cNV|UOR(yB)-bqumIfCDN;`hfxd48tE z9+{^-$k%H+a`=;B?i!+yX3rHElTNInwA>_X_V~$(cEGA#G%VeME~LGEMXXeeBCFna zI&Dfy+M_X?^daC(1fW)$t|@&@{gyn=rd#&7EE_)(qeLZ+q#?Ltno5!I{28zk16nPF zKj?#cwE|&LDu0*WHV{J(=u#aS)Nm~sT(>*0=ubiuvaaA{eP~wfTW(+HDEXf__@l~tH-s4zrCq4N+Hj56dGlFyL3PMOT_o2vS4c)3Sv zt~20wW#n!>a>u`FDy8bwyMQvo9A;xy+6bI~Q=B7mjt3Z+ITKTnOc)F9$%G-&ptrtj z*Fa#>uNbUJm|Lvzy}Te79>CRd^$?WWnG!CXrc6iW!(@CK=9|(Y`J)kXco59550VoM z{oI3O^gz5p$io1VvC4I`rqs7smqB0-tNzEjx(*J>IDp`EL~-EQ1g3%b?y*hcUX6}< zu$maJst0nap{Od=YFC>vb3k^QRfy6?B)C_9$I3C*BikE*Xg7qiK*(Jnst#U_B-r^} z>;we7_%5Tv^f}%WSVU8E8^!DLj8y~%w-z^w_o8y%B&cxS&8&}RfjMniR2 zP!%TQrh(=G8Cl9?-!B5f7Q_{s!W@~hvXtb%r<~K+fmx#6|ALd_=Z=0{^SA)P%Rn{1 zcPmK5lpQ0WT26c2R}P^EAg2wdT}EM1Ot`jNU}ekBrYAD|#V+h?SYe)Pg@ko5-U3at z(tPd70u99JjKU$PZBktcx!N8{nv+ZOpJU`2=wE?gM^4)vev^2zxn@y-#eEk zOMsKlM~!3+=ERvoA%<#E%NKtQRqfCz!}&0@9k5GQtya={TO5EeF;gjXw0h)!QipRR z@JEXC<_p;j-F!c}o15T50?fSXSuB858q;G40pC0q^bZZ$DFq!-z=>}Cu)}lF&psBG zQqscoT@)2-puy=JJqM?p>$3VTB~+xGeq1VSA0FyLMI!&~jm_}58sIUft=V4x3YNAj zvyq&p{(K(nE4fRF9T3rAyIb#6tsYg5-sLfKxGeGP(<#@Z&NO5O>F?HPjhp+=obvC% z9!8KEP6ry}EpaLqJyuv6M3D+nW`Px{Q7&Cw!Hry?HmeW}Pum5gGmw@{*f9ZF)-m)i zcR)wbb#fa1d28x+rUPl{VqV7dY8^P2X63-V=^$p6A-X5UtNzJO(B*Qad)5O@gL2P* zd&Ey7ll)%tT-@O|VabHQ&&K9kbm^-#oKB8J@+%55wfbdtnXG2r^4*19 z7D@19%xmF$q6Z0#%48U2jg7tw>~~T-G=%Jc$QhZbyeB}zenDOE39*1$7;zvcNbfix zXCN{(iVWYs_(js#H^j47?YXf}H9|SSGEV56$b(0iy!l$*z^w5)1cBlCw^_`OX#m4y zu=rY!{!B~O2*JCi$HlBB&}0?7zcn5)2i5~Y`qPM9OO^73wnjfoZ$9zezw5;WIqxn= z=^Y@Cs`e=J<-Y?EWnO5(ckNOY1UCEc8F&7Hn!W2|0R?|KoLBU7xhwl8A;7#c99o#8wzkEIVguv^>-twcT&n?XtO;y_1s0c|NpOrfJj% zv`!34A`e=DIYReyR=ey|W;ZH_X|;IjZ1L&Qr-MdRb~en9xKK+z^ksG<{?msFyV8%m z`lc)T4{J57A$A#Y`gDLQ=GS(2e`>yD?!zAV@~69XJU6Y*{_xwMpDU!v9+}k8c_te0 z>APjS9B4Ge3-4?GZ}*kwjl-&kA%1^1Yd>_Z7Lv9GYRpm67sa2g+v1IBs`l?ft=&z_ zYIgP^?a6Md(F>Jic3}Cx-yDamkPfdIw{$iJPa7q_?kZ!gJM`Z3n`Q2?fg%;fCrL5V zHc$3HNc+uGcwXPcOHA#4aUz? zc%S(ybt`n-BCP)J%S+OwTBly5O*T9dYk}lIRfHyp}9hq?JR(+RYSLG>EqP^~e^U+QAa@~0-D>>^^ z&6P?SLrwo1m+-1wP`Rabin87%EY;k<`UEj#f$=oU=gN9?8g)F@Z8E7`aWkv!7tN!M zH)gImbXpN7Z)#oH8&hVDvRy7(?GXK~`Fdy>T=3xwORKC?vU%0Lp4~M!)EOA__+IYH z29lnivcab<`t&$f+fjNJNY9yD5`Bu=w#&Vmp~)UsbD6iAhB_^y&{v2HTj(?w_;r4MR}k2{R0|Ix zY{KAhkQihL+Id9aRS*az28q#XZe9GrJd~_{#CX@-19ixat&F*@MrUrca4WnghJP+! z(@(N~?U0KCM|;U4k;^zWXsB&sEcf%9H~oTi5a!F8?;{5tTMjRx-@nzb$?)cJxqca` zi`-~f++6gP5@qxFkNml)%&}^-uuzKn-YF(vi}uxUzRLI_I2E$z`bE#%#x!H~g4gdP z)-H$RiI4usx3A-QrJgMsF+I0aWvh&{w{AApwlKMA&4mZ={U*sOYruD^%%({r2I&(P zRZRi>**iMBWeq1*(}y*avESs!?(DYb{8TyJhZ^`ztrAm}V#<&4k$DdGs++GOL}mF; zyOk7+r+@C9jols<4;r2OOdUfW%(&jouvyPtj-FZO+Mi0A4DaiY8-kT(y>;E}8dk`V zBn@Lj`M)bu#}6KeYAk5<5<)@uf*mw7eH0!w=Xc=zWO|K8r@8k z!);HGIxtZA|I2hQj)Y^Elz%psf043SaQ-vda@NuA(r@21LkK#w3&}7WzBIrLeXS=DF4Q_4jm+2fW5K?{# zuVy{yOERI=P}Ur8!5{IQ99Pr>W4y&9zs`3dj0h{=>YwtC(G2B353A-ZbC7#|`3*(X zx1GVlFYy2NPGU(_A1`wd4Q%jVZ*R0HWW?eYFLg@a_ZvtSXa*`}ugK0sC>#>r;yL+7 z=mT1^8N%glGeO}ky07BVcl+!4l%l{-IY`>hm{l8gl7qFmT;(48(-f&A*+GnFaW7*i zcIWzC@me$T$N&6l?Wot?m&WAgcQjsnzwVRmx`L$N zymP}0)gjEZX`X+Ij^$SuQ03hSBpELawZ4)(!xc^b>#`>8Se}`5bM*gM6Z9Rm0s&P? zNV>_P7H0BfXQ-$2h12M5g82iZm_u)>7aVSp0J6JG(OUCPYmow#)+`_szI=!UvJFu(OwP#entC;Ip`%K{z+x!3%dJkt-P`SH{Q+g}T zO}-9vu#-ROO!B>X**vm#PvEN^Dm?_Z%33nNpRTW)5hg1JcV zZ{Y5UA*3h}N|^RBXN;B$5D`Zmw`9^U%D-LKbW$STU^I&9+?fo#nrW>wLkNZw{0L#Z zytf-#a@;^qgl?Tew0}QuhvBJflPyIXEV^(y!4=^shfauN^M9h9$R&P-t`NDp3&7j1W-Cs<@`6*4($bO-J{hJQ{a}I^Xa#cWdkdOwLVZZS}9x2|Q{XOrut$k6MF%;q`!VST?bc zY}YMmzJn48?y3)$UyQ(|xK%f!E^-<_<*nayYd;hHdXc}XnX*Mwre+MO(|hrxb1$l? zIYR65NJ*~nz&=I^CA1_)nh%yrKQAcI5}&IiRhBf;9?t%x7(y?b+b`;}Fgv2JtJEXM6`ky9ZCi(>|Iae`>&t zE>g<>i{Tka>;H3Ea~Xuj(C_AVoi@DdkIKn@9J*4VohVPJIC+MC9ukX?STc~#i86p{ z>z(aRx`Q2X(nVdcth|4Mf~jY(g0&AbuhbmoXCwUc?hu@4&!bSW|2wUGWmg4y7ZaPx zb8M_pGASL``=Fu>IhC6NaYVPf9;Suhx}}>tBy6gWsL}K8J=@TIPumyyc28CQI2>-R z@wtyG8(r{vC4#(sgI2$yFOPK+8^(0w9ozI}BVq@UGI~69%7RQgU%;H`G;~rW_2-s1 z#}2bLSFjCWDNAoRwP1Cm zA^w#K5cHN>N=oKTeAfNUo1yV-U9tn4+3yNkP_a>nDIjYmQRsNi_5MXy6byoR!$F?8 z)<|xkqH@gW({kx|_q<0CGGR2?vywwgmn9AJ79XA>_Ux5`VebA=WyM0KjAuZ*fs_4ZfuNSkwu6KM zZItH87kzy+f~}6Y&aZ3^RFD)8-W}Eb&wkTP>y)hp^*C?J4(sL}x7a*Wufvy{ub(D-R(kPisv$(c4n_dGod@)r9egB&~xV&NbHn; z_~qX0)&^E8K?Jiz`76pj@FhIT$2{FC%95B*9f_or+ip$T~LZ73t6)8G0@_u~pbV&Yx`+*9#7>S#U#`q|L!2A;k$vwL{_$(0N- zPgS=pI%^x!c!D7;!LK462ABiM`VMx8Q0qM`$&Il_|sfr6XB zdmb>g>Luo39YX;@9PpEsFVPJ?v&ou9Har2q(R>O zw6ZDuJ{UpTX7`?p8FEh_0u~}@d>8UnJm4#!p&D>TaMPb+dSG8+*zlkWQr^z!J9O`E z;2i=Nas*iZiDdyAQWTXqGqsB4lc#Y!bT=H~SR+q>eF+4<98PkMMaJ^1nsLR@29vHH zgZ{LW64^4T^RS{x_IazlU$|-+y#b^&Kjhl3iUx4>u;!8<)aVN2o+1z1Y}ZAv$>Ji8 zwy3_%Q^i`?WdNtA%~j0K0r2l~mWL}1yE*WiY`@G97(r@)Eh!eLPO-`$-I8Le#5bTk zk&GQ02VTRmZ{@MSx};TE&=E2&CM_A>XrkhG?m`qo!C4`^U6p1kr)f%y;i#DlVa;jk zM}A_L{LYcHbTk%qe9er)sSz{F1%LX(e~WL~9drSldr}C^NE&NT93eemS@H2v1Ixgj z)9hl-qF9HSde@+8t}_(Qjr>heRuIN};dp0Mw#H86lGM}zhDwE(|B7sPBSWfpWN z*M}cTfpU%R)s8(3X7+WScBMt{Pd?_0|c*nS3rlVx{qmTzZW4C z_}8QmxtifrBH6<3sTL5&FGZxqF30Uq-^-@p`=mJ72dJjT0KgKjI83NVcAxMc(Wg)^ ztC&Kb>;f$FHE#U?llo<)Oq1XgxE(WF%&7P_$q0C1WZrjDqX|g5qXg-`Ot}JpKSPTK zqI80kA{P)aFy!&es)=Bm-+_pmd2mg3!FfoS>~E}ogHyOj`@hkhQ$TARXX%bt#__@>C9 zUIg(J@AMmnVio6L=LTh9K~Pfx?5!h{($(;YQrxu{(7-ER_;g0XPu(!>X5YFCtl=hl zE}?>>#>ZU}GaU)F0FhJhAiZia9`7ZB{TOoj5$k`dWK;MK zBz*NqJJbyRiGCbIGyV~8aKRNB!JzMCSJ|wjH^qvcprqY3Nw~Cb*TG)II`%nfpL4MH z+2|M-a4ec8T^F>+22=o{LBmUcs*kV`HZnRn3o_l7O!v8RT7zq zKQwSiUthQ znvfiXGA=@rV3E>{ygRLT^>3qvK^^c|!`r*+i!a*q+;*gkI;rUhRcqjMSPgnjj^wZQ zXF$n;Uwh{mvG5m_ME4qQ(Ci>+$0|L+aO@(ilmBkf49L$#&FNH?-1?oa*0mz@YU<#F zhizgi1P6fCL4Kzr0n%#6@eH}q26gb~hu6W^z-53`y1W!P%n_`l3^+21sNCIU)BNA;#ft^KwSt{!DDpn~2s4>K@ z4=9uM{|v*oWu0gO@Ug;7Wwx4n6+D0iQ5Pnmb`oDRcq;zJE+(wf`6)uHWGWrFAEEHn z4AJ!N8O#hSfi8X!g?MsKP%f^5^ZR?9!-3`tz%1aRRE_;EG^@FnL9%rd0MZELhzW}DvjEc#&^!}fYX@9=Y0>46kQ(THfvfoZFYI|kr3_b=oT~TyVCb`b zH6dpZ_?MaYhGjZkocfU2FE3 z`#_)sPA0MgUd0>Al%ZFF&l3q1{m*5V&tW(U35@x&>*0F;V!^%rDNZW4_5~!+kZ)c& z92Fyqp@Z;;Z)|$LJjuJJ{wmVo!6hXIfDGor9!{6MPWK793eyun#hEyz?QarDSW>qm z#<6}T@*Ui7&n=w~n$ZZb1YTN0{<*&#vMT7_D%#}l#%U73=Se`SkkdaKp?=s0G_WII z5%m;)CK*_I9ehw;er@66tBZo07vNiKoKU>Bk3C?6-eoEnDB*(b00`-k`5 z%L6hQ`kN`C{l|X^Cw%WOD3qs_x5eI=h{mmWHKgL6l=%I%i}o(FtEQ}LB7?8*(*>0y zz&fY!;xbirA=r+gi1=pt5K3N&#ymfB z>rL$Qv0=t%mV1eu^VQt^ZS=pS@)y)(u?zNRU%6si?q#2*7`xT!R_{gew$z(7lk)1e z5Y|<-==7xry}QMc8p}hSuEpMU3H3QL&JT;^0#nn5@*{HL!QzU8t!FUt!N09( z9!tq(j_T4s6ACrG7^aou$6bIL?OY};p|DKts($B%lLnt}EbAUa-L2?)&3%x2^50av zwTf4AN%zc-$n)26Mk;@fv=v|2hxj9ExUBKmAdmAs=Si!;|0)LFQr!k7n$5CT?21=C zA9X1QSS9L1OO7oM?1-ZsTQep+(ljN0&2$UH%^8(TK(v!<_+bl?KLP?_ILVRMBxvB#QFNSUk@Vfww2L6 zn7mb4qGp(Xrd_fAiSdWsc)BAVjNHrGS+}o#+^kNqYe%CulcQ!9w*9ajxjib&H#jdT zfYkOPGlhTNYaVjP=%a99a`#v|x^Yco9#l}8&+P5iLwUPPngx5IU!RTvO*LEKF<(iB z#q;2%8?B~>C61?U+RL?Q9^Wq?IcuTyA@{0XyMD3P)1Hz4xEuV&e& z(|NNfziOjl`q`O}mvLwKU~}VF2Bs}Zxm^-vhV0kamSg8Y*?einhEmJV`M(5h=82 zwg0&?o13lOW2ECT{_{am_FZPVHut5)tnyIrqvF6YOl^y@tj8~pE&Fwesc(z?@0vE- zDQ{cj{R*}&s|BP-70USoK!J2<-{;e>snMT%y?uzV603HP`9r50d)w1_W0ra)B!+VW za)}~zLlnLrl6g`~X#CyqFl-8%c)G86&R4sK|1ZJtAK|GL>p!pGHa|@C$id^=>^~z@ zy89351?GzJ`?%WrZRMJMxu`oGdjkJ7M;0W^w-2e>4BO;-L-bDmYfr6{T|ZKd?eYyk z=DU4RnfYs@VI&4SH%Wy+;Z}HnOexMI`oz*|l~%=?-XJc}FUrSz6`&1DpE_i(DW9(Y zOi=!JV%bGYa(^>Xu}KxBJoSQ;TPM&aM7b*ti1NJ>*~Vh#WA~rySl!u{63=pv|NJS} zAMO-f_F1{Bh=fjgwob*+cCgyYDo^`uBmlH~d{B6}yCqwwJ>lsd-huBe$`m+jCJ+_G zIOHDN$D}f=CS`6Bu5;vxO+~~1u#7IQyeSN$WBMrIk`>RjH3t5@`w>BGW-RSefW6=~ ztQ^(@py`WnTjq}RC<<=e7{k_{42O5OJ^DpW$E$RaJ0$|yZhy)omqN7R^ z4dJ9)IGihJ2*$SOsa6Xd3s*mCQpGWk{;aO^@Vquka}@giR5L?mN>Zs?_VxV_t{<-J z@%dcu>-Bm*HPeJ(Tk6AG(bxQM6Lw_yA2;?n#55|mH#lOVY3fr$hjB*?@T339AT|cT z=6&XfbjMN6Ek|*$s+aLm_a0+T{IsuF5?SJp`)NLbE2bnHRu$Dx6Ulab)x8ZgDZm|} zvPA+O_3^S^Bq@9eZ4f{%F>F3*XSM%A@2*LePsP;FigPShh3||ymBXZe`afK28&7Ht za!O9_U({BL{_7G&oN6aN|R^@uJe(k{0Xh_-sA}ZmGJx&YK+Vz)QQ~ zqo(-gb|{}sa)m(l_ZK(htW3OC8aFEc?=Cd`x?Zp5gNs`=cU`*Nx%2aNhGGF6aqP3| ztu5qb0~e}0qJjq9{lnjUzv{+QDfguQ0eVV z{xknsZ?nM^8F6iy>>3en*7^qZ@uDEd-AFzbm;7ldQ|W8py++I1c3l5Kq=q{eDV^r- zf6|^is`2&At9f3Es#$K zto)u_lAHcxxMF7w)N$HCPRAtFC#0<{cRN|V#c|Yx-~s=qj!_7{IwZ&2{s}Vp1B?Ii z-rbD=hC1Cdc^7m)+3K;ze|!td6+J5K#_i{?BJ0PB=cNTMCqr3S6~&i>q!g z$23EeO^l8AYeKnPbH3+i z=(BD5bxP$mSumB z9von+PM16*@kTTFt^I{6zKEATc~j1E?#ch=hT&CH@U%t^t3^;rY92WQd_kLc^EmI* zK~+MKVrvXsMWd-C$i@_2Y`)C;Z&nSOX2%j&|NJ1B>(4Xp&od8m5D*o(YfO6HwsRNN zzTr!foe`_8dDY$EY#i7rW3YW0Anj>5E01%&9wnbVp#7C^bFRB?OG1ZZhI)=fDM-

  2. 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

    ~GJTc`hH~tT^u9n%By( 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�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℞wS1fW)~KcK6e@v>AD_N@2E*R@=LQ%i(&N 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

dMhC#`YS_AxIz~7jhpqf*y_nEEO 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%0DOPMK{l;VclpW59xU|wp8;31BfKAEp%&0dt$Ityd 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%0DxB!ORz7C%4rjDREs!*v*W2ZG^7w3*-0=&trH0 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𝔐xJ6kFi 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