finished level reading
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40420
This commit is contained in:
parent
afd52e1611
commit
221de124e9
@ -13,6 +13,7 @@ public Plugin:myinfo =
|
|||||||
/** Various globals */
|
/** Various globals */
|
||||||
new AdminFlag:g_FlagLetters[26]; /* Maps the flag letters */
|
new AdminFlag:g_FlagLetters[26]; /* Maps the flag letters */
|
||||||
new bool:g_LoggedFileName = false; /* Whether or not the file name has been logged */
|
new bool:g_LoggedFileName = false; /* Whether or not the file name has been logged */
|
||||||
|
new g_ErrorCount = 0;
|
||||||
|
|
||||||
public OnRebuildAdminCache(cache_flags)
|
public OnRebuildAdminCache(cache_flags)
|
||||||
{
|
{
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
new Handle:g_hLevelParser = INVALID_HANDLE;
|
new Handle:g_hLevelParser = INVALID_HANDLE;
|
||||||
new g_LevelState = LEVEL_STATE_NONE;
|
new g_LevelState = LEVEL_STATE_NONE;
|
||||||
|
|
||||||
|
/* :TODO: log line numbers? */
|
||||||
|
|
||||||
InitializeLevelParser()
|
InitializeLevelParser()
|
||||||
{
|
{
|
||||||
if (g_hLevelParser == INVALID_HANDLE)
|
if (g_hLevelParser == INVALID_HANDLE)
|
||||||
@ -35,6 +37,21 @@ LoadDefaultLetters()
|
|||||||
g_FlagLetters['z'-'a'] = Admin_Root;
|
g_FlagLetters['z'-'a'] = Admin_Root;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stock LogLevelError(const String:format[], {Handle,String,Float,_}:...)
|
||||||
|
{
|
||||||
|
decl String:buffer[512];
|
||||||
|
|
||||||
|
if (!g_LoggedFileName)
|
||||||
|
{
|
||||||
|
LogError("Error(s) detected parsing admin_level.cfg:");
|
||||||
|
g_LoggedFileName = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
VFormat(buffer, sizeof(buffer), format, 2);
|
||||||
|
|
||||||
|
LogError(" (%d) %s", ++g_ErrorCount, buffer);
|
||||||
|
}
|
||||||
|
|
||||||
public SMCResult:ReadLevels_NewSection(Handle:smc, const String:name[], bool:opt_quotes)
|
public SMCResult:ReadLevels_NewSection(Handle:smc, const String:name[], bool:opt_quotes)
|
||||||
{
|
{
|
||||||
if (g_LevelState == LEVEL_STATE_NONE)
|
if (g_LevelState == LEVEL_STATE_NONE)
|
||||||
@ -42,18 +59,12 @@ public SMCResult:ReadLevels_NewSection(Handle:smc, const String:name[], bool:opt
|
|||||||
if (StrEqual(name, "Levels"))
|
if (StrEqual(name, "Levels"))
|
||||||
{
|
{
|
||||||
g_LevelState = LEVEL_STATE_LEVELS;
|
g_LevelState = LEVEL_STATE_LEVELS;
|
||||||
} else {
|
|
||||||
/* :TODO: log error */
|
|
||||||
}
|
}
|
||||||
} else if (g_LevelState == LEVEL_STATE_LEVELS) {
|
} else if (g_LevelState == LEVEL_STATE_LEVELS) {
|
||||||
if (StrEqual(name, "Flags"))
|
if (StrEqual(name, "Flags"))
|
||||||
{
|
{
|
||||||
g_LevelState = LEVEL_STATE_FLAGS;
|
g_LevelState = LEVEL_STATE_FLAGS;
|
||||||
} else {
|
|
||||||
/* :TODO: log error */
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
/* :TODO: Log error */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return SMCParse_Continue;
|
return SMCParse_Continue;
|
||||||
@ -67,7 +78,7 @@ public SMCResult:ReadLevels_KeyValue(Handle:smc, const String:key[], const Strin
|
|||||||
|
|
||||||
if (chr < 'a' || chr > 'z')
|
if (chr < 'a' || chr > 'z')
|
||||||
{
|
{
|
||||||
/* :TODO: log error */
|
LogLevelError("Unrecognized character: \"%s\"", value);
|
||||||
return SMCParse_Continue;
|
return SMCParse_Continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +116,7 @@ public SMCResult:ReadLevels_KeyValue(Handle:smc, const String:key[], const Strin
|
|||||||
} else if (StrEqual(key, "root")) {
|
} else if (StrEqual(key, "root")) {
|
||||||
flag = Admin_Root;
|
flag = Admin_Root;
|
||||||
} else {
|
} else {
|
||||||
/* :TODO: log error */
|
LogLevelError("Unrecognized flag type: %s", key);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_FlagLetters[chr] = flag;
|
g_FlagLetters[chr] = flag;
|
||||||
@ -136,10 +147,17 @@ RefreshLevels()
|
|||||||
/* Set states */
|
/* Set states */
|
||||||
g_LevelState = LEVEL_STATE_NONE;
|
g_LevelState = LEVEL_STATE_NONE;
|
||||||
g_LoggedFileName = false;
|
g_LoggedFileName = false;
|
||||||
|
g_ErrorCount = 0;
|
||||||
|
|
||||||
new SMCError:err = SMC_ParseFile(g_hLevelParser, path);
|
new SMCError:err = SMC_ParseFile(g_hLevelParser, path);
|
||||||
if (err != SMCError_Okay)
|
if (err != SMCError_Okay)
|
||||||
{
|
{
|
||||||
/* :TODO: log error */
|
decl String:buffer[64];
|
||||||
|
if (SMC_GetErrorString(err, buffer, sizeof(buffer)))
|
||||||
|
{
|
||||||
|
LogLevelError("%s", buffer);
|
||||||
|
} else {
|
||||||
|
LogLevelError("Fatal parse error");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user