mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-10 07:12:07 +00:00
game: use binary search for message translation
This commit is contained in:
parent
1f0e67621c
commit
3dd4dbf2ce
1 changed files with 35 additions and 5 deletions
|
@ -193,6 +193,38 @@ LocalizationInit(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
LocalizationSearch(const char *name)
|
||||||
|
{
|
||||||
|
int start, end;
|
||||||
|
|
||||||
|
start = 0;
|
||||||
|
end = nlocalmessages - 1;
|
||||||
|
|
||||||
|
while (start <= end)
|
||||||
|
{
|
||||||
|
int i, res;
|
||||||
|
|
||||||
|
i = start + (end - start) / 2;
|
||||||
|
|
||||||
|
res = Q_stricmp(localmessages[i].key, name);
|
||||||
|
if (res == 0)
|
||||||
|
{
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
else if (res < 0)
|
||||||
|
{
|
||||||
|
start = i + 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
end = i - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
const char*
|
const char*
|
||||||
LocalizationMessage(const char *message)
|
LocalizationMessage(const char *message)
|
||||||
{
|
{
|
||||||
|
@ -205,14 +237,12 @@ LocalizationMessage(const char *message)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < nlocalmessages; i++)
|
i = LocalizationSearch(message);
|
||||||
{
|
if (i >= 0)
|
||||||
if (!strcmp(localmessages[i].key, message))
|
|
||||||
{
|
{
|
||||||
return localmessages[i].value;
|
return localmessages[i].value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue