From b6910667a824ce1510b8b0ba5d59430841c9c2dc Mon Sep 17 00:00:00 2001 From: Arkshine Date: Sat, 5 Sep 2015 14:28:26 +0200 Subject: [PATCH] Cstrike: Remove parsing error and update native error message --- modules/cstrike/cstrike/CstrikeItemsInfos.cpp | 34 +++++++------------ modules/cstrike/cstrike/CstrikeItemsInfos.h | 13 +++---- modules/cstrike/cstrike/CstrikeMain.cpp | 11 +++--- modules/cstrike/cstrike/CstrikeNatives.cpp | 14 ++++---- 4 files changed, 31 insertions(+), 41 deletions(-) diff --git a/modules/cstrike/cstrike/CstrikeItemsInfos.cpp b/modules/cstrike/cstrike/CstrikeItemsInfos.cpp index 41510368..27b658fb 100644 --- a/modules/cstrike/cstrike/CstrikeItemsInfos.cpp +++ b/modules/cstrike/cstrike/CstrikeItemsInfos.cpp @@ -12,21 +12,20 @@ // #include "CstrikeItemsInfos.h" +#include CsItemInfo ItemsManager; -#define PSTATE_NONE #define PSTATE_ALIASES_TYPE 0 #define PSTATE_ALIASES_ALIAS 1 #define PSTATE_ALIASES_ALIAS_DEFS 2 -CsItemInfo::CsItemInfo() - : - m_ParseState(0), +CsItemInfo::CsItemInfo() + : + m_ParseState(PSTATE_ALIASES_TYPE), m_List(nullptr), m_ListsRetrievedFromConfig(false) -{ -} +{} CsItemInfo::~CsItemInfo() { @@ -61,16 +60,16 @@ SMCResult CsItemInfo::ReadSMC_NewSection(const SMCStates *states, const char *na { m_List = &m_WeaponAliasesList; } - else if (strstr(name, "Buy")) + else if (!strcmp(name, "Buy") || !strcmp(name, "BuyEquip") || !strcmp(name, "BuyAmmo")) { m_List = &m_BuyAliasesList; } - else + + if (m_List) { - return SMCResult_HaltFail; + m_ParseState = PSTATE_ALIASES_ALIAS; } - m_ParseState = PSTATE_ALIASES_ALIAS; break; } case PSTATE_ALIASES_ALIAS: @@ -114,10 +113,6 @@ SMCResult CsItemInfo::ReadSMC_KeyValue(const SMCStates *states, const char *key, { m_AliasInfo.classname = value; } - else - { - return SMCResult_HaltFail; - } break; } } @@ -138,7 +133,7 @@ SMCResult CsItemInfo::ReadSMC_LeavingSection(const SMCStates *states) { m_List->replace(m_Alias.chars(), m_AliasInfo); m_WeaponIdToClass[m_AliasInfo.itemid] = static_cast(m_AliasInfo.classid); - + m_AliasInfo.clear(); m_ParseState = PSTATE_ALIASES_ALIAS; @@ -151,13 +146,10 @@ SMCResult CsItemInfo::ReadSMC_LeavingSection(const SMCStates *states) void CsItemInfo::ReadSMC_ParseEnd(bool halted, bool failed) { - if (halted) + if (!halted && !failed) { - MF_Log("Invalid or missing key in \"%s\" section. Please check your gamedata files.", m_Alias.chars()); - return; + m_ListsRetrievedFromConfig = true; } - - m_ListsRetrievedFromConfig = true; } bool CsItemInfo::GetAliasInfos(const char *alias, AliasInfo *info) @@ -238,4 +230,4 @@ CsWeaponClassType CsItemInfo::WeaponIdToClass(int id) } return CS_WEAPONCLASS_NONE; -} \ No newline at end of file +} diff --git a/modules/cstrike/cstrike/CstrikeItemsInfos.h b/modules/cstrike/cstrike/CstrikeItemsInfos.h index 6df10eb1..b9fa8e3f 100644 --- a/modules/cstrike/cstrike/CstrikeItemsInfos.h +++ b/modules/cstrike/cstrike/CstrikeItemsInfos.h @@ -16,6 +16,7 @@ #include "CstrikeDatas.h" #include +#include #include struct AliasInfo @@ -49,14 +50,14 @@ class CsItemInfo : public ITextListener_SMC bool HasConfigError(); public: - - SMCResult ReadSMC_NewSection(const SMCStates *states, const char *name); - SMCResult ReadSMC_KeyValue(const SMCStates *states, const char *key, const char *value); - SMCResult ReadSMC_LeavingSection(const SMCStates *states); - void ReadSMC_ParseEnd(bool halted, bool failed); + + SMCResult ReadSMC_NewSection(const SMCStates *states, const char *name) override; + SMCResult ReadSMC_KeyValue(const SMCStates *states, const char *key, const char *value) override; + SMCResult ReadSMC_LeavingSection(const SMCStates *states) override; + void ReadSMC_ParseEnd(bool halted, bool failed) override; public: - + bool GetAliasInfos(const char *alias, AliasInfo *info); bool GetAliasInfosFromBuy(const char *alias, AliasInfo *info); bool GetAliasInfosFromName(const char *classname, AliasInfo *info); diff --git a/modules/cstrike/cstrike/CstrikeMain.cpp b/modules/cstrike/cstrike/CstrikeMain.cpp index 8339f60b..f7148473 100644 --- a/modules/cstrike/cstrike/CstrikeMain.cpp +++ b/modules/cstrike/cstrike/CstrikeMain.cpp @@ -38,20 +38,17 @@ void OnAmxxAttach() ConfigManager = MF_GetConfigManager(); - char error[256]; - error[0] = '\0'; - + char error[256] = ""; ConfigManager->AddUserConfigHook("CommandsAliases", &ItemsManager); - if (!ConfigManager->LoadGameConfigFile("modules.games", &MainConfig, error, sizeof(error)) && error[0] != '\0') + if (!ConfigManager->LoadGameConfigFile("modules.games", &MainConfig, error, sizeof(error)) && *error) { MF_Log("Could not read module.games gamedata: %s", error); return; } - error[0] = '\0'; - - if (!ConfigManager->LoadGameConfigFile("common.games", &CommonConfig, error, sizeof(error)) && error[0] != '\0') + *error = '\0'; + if (!ConfigManager->LoadGameConfigFile("common.games", &CommonConfig, error, sizeof(error)) && *error) { MF_Log("Could not read common.games gamedata: %s", error); return; diff --git a/modules/cstrike/cstrike/CstrikeNatives.cpp b/modules/cstrike/cstrike/CstrikeNatives.cpp index 1c62e6fe..71640b64 100644 --- a/modules/cstrike/cstrike/CstrikeNatives.cpp +++ b/modules/cstrike/cstrike/CstrikeNatives.cpp @@ -1081,7 +1081,7 @@ static cell AMX_NATIVE_CALL cs_set_no_knives(AMX *amx, cell *params) { if (!GiveDefaultItemsDetour) { - MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_set_no_knives() is disabled"); + MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_set_no_knives() is disabled. Check your amxx logs."); return 0; } @@ -1700,7 +1700,7 @@ static cell AMX_NATIVE_CALL cs_create_entity(AMX* amx, cell* params) { if (CS_CreateNamedEntity <= 0) { - MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_create_entity() is disabled"); + MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_create_entity() is disabled. Check your amxx logs."); return 0; } @@ -1722,7 +1722,7 @@ static cell AMX_NATIVE_CALL cs_find_ent_by_class(AMX* amx, cell* params) { if (CS_UTIL_FindEntityByString <= 0) { - MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_find_ent_by_class() is disabled"); + MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_find_ent_by_class() is disabled. Check your amxx logs."); return 0; } @@ -1745,7 +1745,7 @@ static cell AMX_NATIVE_CALL cs_find_ent_by_owner(AMX* amx, cell* params) { if (CS_UTIL_FindEntityByString <= 0) { - MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_find_ent_by_owner() is disabled"); + MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_find_ent_by_owner() is disabled. Check your amxx logs."); return 0; } @@ -1781,7 +1781,7 @@ static cell AMX_NATIVE_CALL cs_get_item_id(AMX* amx, cell* params) { if (ItemsManager.HasConfigError()) { - MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_get_item_id() is disabled"); + MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_get_item_id() is disabled disabled because of missing gamedata"); return 0; } @@ -1808,7 +1808,7 @@ static cell AMX_NATIVE_CALL cs_get_translated_item_alias(AMX* amx, cell* params) { if (ItemsManager.HasConfigError()) { - MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_get_translated_item_alias() is disabled"); + MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_get_translated_item_alias() is disabled because of missing gamedata"); return 0; } @@ -1851,7 +1851,7 @@ static cell AMX_NATIVE_CALL cs_get_weapon_info(AMX* amx, cell* params) { if (GetWeaponInfo <= 0) { - MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_get_weapon_info() is disabled"); + MF_LogError(amx, AMX_ERR_NATIVE, "Native cs_get_weapon_info() is disabled. Check your amxx logs."); return 0; }