committed fix for bug atDIVINE (kami no buggu)
This commit is contained in:
parent
6af5516005
commit
7e36a19590
@ -357,8 +357,24 @@ static cell AMX_NATIVE_CALL show_hudmessage(AMX *amx, cell *params) /* 2 param *
|
|||||||
int len = 0;
|
int len = 0;
|
||||||
g_langMngr.SetDefLang(params[1]);
|
g_langMngr.SetDefLang(params[1]);
|
||||||
char* message = NULL;
|
char* message = NULL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Earlier versions would ignore invalid bounds.
|
||||||
|
* Now, bounds are only checked for internal operations.
|
||||||
|
* "channel" stores the valid channel that core uses.
|
||||||
|
* "g_hudset.channel" stores the direct channel passed to the engine.
|
||||||
|
*/
|
||||||
|
|
||||||
bool aut = (g_hudset.channel == -1) ? true : false;
|
bool aut = (g_hudset.channel == -1) ? true : false;
|
||||||
|
int channel = -1;
|
||||||
|
if (!aut)
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* guarantee this to be between 0-4
|
||||||
|
* if it's not auto, we don't care
|
||||||
|
*/
|
||||||
|
channel = abs(g_hudset.channel % 5);
|
||||||
|
}
|
||||||
if (params[1] == 0)
|
if (params[1] == 0)
|
||||||
{
|
{
|
||||||
for (int i = 1; i <= gpGlobals->maxClients; ++i)
|
for (int i = 1; i <= gpGlobals->maxClients; ++i)
|
||||||
@ -371,10 +387,12 @@ static cell AMX_NATIVE_CALL show_hudmessage(AMX *amx, cell *params) /* 2 param *
|
|||||||
message = UTIL_SplitHudMessage(format_amxstring(amx, params, 2, len));
|
message = UTIL_SplitHudMessage(format_amxstring(amx, params, 2, len));
|
||||||
if (aut)
|
if (aut)
|
||||||
{
|
{
|
||||||
g_hudset.channel = pPlayer->NextHUDChannel();
|
channel = pPlayer->NextHUDChannel();
|
||||||
pPlayer->channels[g_hudset.channel] = gpGlobals->time;
|
pPlayer->channels[channel] = gpGlobals->time;
|
||||||
|
g_hudset.channel = channel;
|
||||||
}
|
}
|
||||||
pPlayer->hudmap[g_hudset.channel] = 0;
|
//don't need to set g_hudset!
|
||||||
|
pPlayer->hudmap[channel] = 0;
|
||||||
UTIL_HudMessage(pPlayer->pEdict, g_hudset, message);
|
UTIL_HudMessage(pPlayer->pEdict, g_hudset, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -394,10 +412,11 @@ static cell AMX_NATIVE_CALL show_hudmessage(AMX *amx, cell *params) /* 2 param *
|
|||||||
{
|
{
|
||||||
if (aut)
|
if (aut)
|
||||||
{
|
{
|
||||||
g_hudset.channel = pPlayer->NextHUDChannel();
|
channel = pPlayer->NextHUDChannel();
|
||||||
pPlayer->channels[g_hudset.channel] = gpGlobals->time;
|
pPlayer->channels[channel] = gpGlobals->time;
|
||||||
|
g_hudset.channel = channel;
|
||||||
}
|
}
|
||||||
pPlayer->hudmap[g_hudset.channel] = 0;
|
pPlayer->hudmap[channel] = 0;
|
||||||
UTIL_HudMessage(pPlayer->pEdict, g_hudset, message);
|
UTIL_HudMessage(pPlayer->pEdict, g_hudset, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user