mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-26 06:45:37 +03:00
Cstrike: Remove parsing error and update native error message
This commit is contained in:
parent
e87976bc09
commit
b6910667a8
@ -12,21 +12,20 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#include "CstrikeItemsInfos.h"
|
#include "CstrikeItemsInfos.h"
|
||||||
|
#include <amxxmodule.h>
|
||||||
|
|
||||||
CsItemInfo ItemsManager;
|
CsItemInfo ItemsManager;
|
||||||
|
|
||||||
#define PSTATE_NONE
|
|
||||||
#define PSTATE_ALIASES_TYPE 0
|
#define PSTATE_ALIASES_TYPE 0
|
||||||
#define PSTATE_ALIASES_ALIAS 1
|
#define PSTATE_ALIASES_ALIAS 1
|
||||||
#define PSTATE_ALIASES_ALIAS_DEFS 2
|
#define PSTATE_ALIASES_ALIAS_DEFS 2
|
||||||
|
|
||||||
CsItemInfo::CsItemInfo()
|
CsItemInfo::CsItemInfo()
|
||||||
:
|
:
|
||||||
m_ParseState(0),
|
m_ParseState(PSTATE_ALIASES_TYPE),
|
||||||
m_List(nullptr),
|
m_List(nullptr),
|
||||||
m_ListsRetrievedFromConfig(false)
|
m_ListsRetrievedFromConfig(false)
|
||||||
{
|
{}
|
||||||
}
|
|
||||||
|
|
||||||
CsItemInfo::~CsItemInfo()
|
CsItemInfo::~CsItemInfo()
|
||||||
{
|
{
|
||||||
@ -61,16 +60,16 @@ SMCResult CsItemInfo::ReadSMC_NewSection(const SMCStates *states, const char *na
|
|||||||
{
|
{
|
||||||
m_List = &m_WeaponAliasesList;
|
m_List = &m_WeaponAliasesList;
|
||||||
}
|
}
|
||||||
else if (strstr(name, "Buy"))
|
else if (!strcmp(name, "Buy") || !strcmp(name, "BuyEquip") || !strcmp(name, "BuyAmmo"))
|
||||||
{
|
{
|
||||||
m_List = &m_BuyAliasesList;
|
m_List = &m_BuyAliasesList;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (m_List)
|
||||||
{
|
{
|
||||||
return SMCResult_HaltFail;
|
m_ParseState = PSTATE_ALIASES_ALIAS;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ParseState = PSTATE_ALIASES_ALIAS;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PSTATE_ALIASES_ALIAS:
|
case PSTATE_ALIASES_ALIAS:
|
||||||
@ -114,10 +113,6 @@ SMCResult CsItemInfo::ReadSMC_KeyValue(const SMCStates *states, const char *key,
|
|||||||
{
|
{
|
||||||
m_AliasInfo.classname = value;
|
m_AliasInfo.classname = value;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
return SMCResult_HaltFail;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -138,7 +133,7 @@ SMCResult CsItemInfo::ReadSMC_LeavingSection(const SMCStates *states)
|
|||||||
{
|
{
|
||||||
m_List->replace(m_Alias.chars(), m_AliasInfo);
|
m_List->replace(m_Alias.chars(), m_AliasInfo);
|
||||||
m_WeaponIdToClass[m_AliasInfo.itemid] = static_cast<CsWeaponClassType>(m_AliasInfo.classid);
|
m_WeaponIdToClass[m_AliasInfo.itemid] = static_cast<CsWeaponClassType>(m_AliasInfo.classid);
|
||||||
|
|
||||||
m_AliasInfo.clear();
|
m_AliasInfo.clear();
|
||||||
|
|
||||||
m_ParseState = PSTATE_ALIASES_ALIAS;
|
m_ParseState = PSTATE_ALIASES_ALIAS;
|
||||||
@ -151,13 +146,10 @@ SMCResult CsItemInfo::ReadSMC_LeavingSection(const SMCStates *states)
|
|||||||
|
|
||||||
void CsItemInfo::ReadSMC_ParseEnd(bool halted, bool failed)
|
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());
|
m_ListsRetrievedFromConfig = true;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ListsRetrievedFromConfig = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CsItemInfo::GetAliasInfos(const char *alias, AliasInfo *info)
|
bool CsItemInfo::GetAliasInfos(const char *alias, AliasInfo *info)
|
||||||
@ -238,4 +230,4 @@ CsWeaponClassType CsItemInfo::WeaponIdToClass(int id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return CS_WEAPONCLASS_NONE;
|
return CS_WEAPONCLASS_NONE;
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#include "CstrikeDatas.h"
|
#include "CstrikeDatas.h"
|
||||||
#include <ITextParsers.h>
|
#include <ITextParsers.h>
|
||||||
|
#include <am-string.h>
|
||||||
#include <sm_stringhashmap.h>
|
#include <sm_stringhashmap.h>
|
||||||
|
|
||||||
struct AliasInfo
|
struct AliasInfo
|
||||||
@ -49,14 +50,14 @@ class CsItemInfo : public ITextListener_SMC
|
|||||||
bool HasConfigError();
|
bool HasConfigError();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
SMCResult ReadSMC_NewSection(const SMCStates *states, const char *name);
|
SMCResult ReadSMC_NewSection(const SMCStates *states, const char *name) override;
|
||||||
SMCResult ReadSMC_KeyValue(const SMCStates *states, const char *key, const char *value);
|
SMCResult ReadSMC_KeyValue(const SMCStates *states, const char *key, const char *value) override;
|
||||||
SMCResult ReadSMC_LeavingSection(const SMCStates *states);
|
SMCResult ReadSMC_LeavingSection(const SMCStates *states) override;
|
||||||
void ReadSMC_ParseEnd(bool halted, bool failed);
|
void ReadSMC_ParseEnd(bool halted, bool failed) override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
bool GetAliasInfos(const char *alias, AliasInfo *info);
|
bool GetAliasInfos(const char *alias, AliasInfo *info);
|
||||||
bool GetAliasInfosFromBuy(const char *alias, AliasInfo *info);
|
bool GetAliasInfosFromBuy(const char *alias, AliasInfo *info);
|
||||||
bool GetAliasInfosFromName(const char *classname, AliasInfo *info);
|
bool GetAliasInfosFromName(const char *classname, AliasInfo *info);
|
||||||
|
@ -38,20 +38,17 @@ void OnAmxxAttach()
|
|||||||
|
|
||||||
ConfigManager = MF_GetConfigManager();
|
ConfigManager = MF_GetConfigManager();
|
||||||
|
|
||||||
char error[256];
|
char error[256] = "";
|
||||||
error[0] = '\0';
|
|
||||||
|
|
||||||
ConfigManager->AddUserConfigHook("CommandsAliases", &ItemsManager);
|
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);
|
MF_Log("Could not read module.games gamedata: %s", error);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
error[0] = '\0';
|
*error = '\0';
|
||||||
|
if (!ConfigManager->LoadGameConfigFile("common.games", &CommonConfig, error, sizeof(error)) && *error)
|
||||||
if (!ConfigManager->LoadGameConfigFile("common.games", &CommonConfig, error, sizeof(error)) && error[0] != '\0')
|
|
||||||
{
|
{
|
||||||
MF_Log("Could not read common.games gamedata: %s", error);
|
MF_Log("Could not read common.games gamedata: %s", error);
|
||||||
return;
|
return;
|
||||||
|
@ -1081,7 +1081,7 @@ static cell AMX_NATIVE_CALL cs_set_no_knives(AMX *amx, cell *params)
|
|||||||
{
|
{
|
||||||
if (!GiveDefaultItemsDetour)
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1700,7 +1700,7 @@ static cell AMX_NATIVE_CALL cs_create_entity(AMX* amx, cell* params)
|
|||||||
{
|
{
|
||||||
if (CS_CreateNamedEntity <= 0)
|
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;
|
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)
|
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;
|
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)
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1781,7 +1781,7 @@ static cell AMX_NATIVE_CALL cs_get_item_id(AMX* amx, cell* params)
|
|||||||
{
|
{
|
||||||
if (ItemsManager.HasConfigError())
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1808,7 +1808,7 @@ static cell AMX_NATIVE_CALL cs_get_translated_item_alias(AMX* amx, cell* params)
|
|||||||
{
|
{
|
||||||
if (ItemsManager.HasConfigError())
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1851,7 +1851,7 @@ static cell AMX_NATIVE_CALL cs_get_weapon_info(AMX* amx, cell* params)
|
|||||||
{
|
{
|
||||||
if (GetWeaponInfo <= 0)
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user