Fixed a few potential bugs, and set_msg_arg* no longer accepts type changes
This commit is contained in:
parent
9e194394c3
commit
842813dcbb
|
@ -26,6 +26,9 @@ void ClearHooks()
|
||||||
for (i=0; i<Thinks.size(); i++)
|
for (i=0; i<Thinks.size(); i++)
|
||||||
delete Thinks[i];
|
delete Thinks[i];
|
||||||
|
|
||||||
|
for (i=0; i<256; i++)
|
||||||
|
msgHooks[i].clear();
|
||||||
|
|
||||||
Touches.clear();
|
Touches.clear();
|
||||||
Impulses.clear();
|
Impulses.clear();
|
||||||
Thinks.clear();
|
Thinks.clear();
|
||||||
|
@ -225,14 +228,6 @@ void ServerActivate(edict_t *pEdictList, int edictCount, int clientMax)
|
||||||
{
|
{
|
||||||
for(int f = 1; f <= gpGlobals->maxClients;f++)
|
for(int f = 1; f <= gpGlobals->maxClients;f++)
|
||||||
g_player_edicts[f]=pEdictList + f;
|
g_player_edicts[f]=pEdictList + f;
|
||||||
register int i = 0, j = 0;
|
|
||||||
for (i=0; i<256; i++) {
|
|
||||||
for (j=0; j<(int)msgHooks[i].size(); j++)
|
|
||||||
if (msgHooks[i].at(j) != -1)
|
|
||||||
MF_UnregisterSPForward(msgHooks[i].at(j));
|
|
||||||
msgHooks[i].clear();
|
|
||||||
msgBlocks[i] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
RETURN_META(MRES_IGNORED);
|
RETURN_META(MRES_IGNORED);
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@ TraceResult g_tr;
|
||||||
#define BUFFERSIZE 1023
|
#define BUFFERSIZE 1023
|
||||||
char g_buffer[BUFFERSIZE + 1];
|
char g_buffer[BUFFERSIZE + 1];
|
||||||
|
|
||||||
|
|
||||||
void UTIL_SetSize(edict_t *pev, const Vector &vecMin, const Vector &vecMax)
|
void UTIL_SetSize(edict_t *pev, const Vector &vecMin, const Vector &vecMax)
|
||||||
{
|
{
|
||||||
SET_SIZE(ENT(pev), vecMin, vecMax);
|
SET_SIZE(ENT(pev), vecMin, vecMax);
|
||||||
|
|
|
@ -232,6 +232,8 @@ void pfnTouch(edict_t *pToucher, edict_t *pTouched)
|
||||||
int retVal = 0;
|
int retVal = 0;
|
||||||
const char *ptrClass = STRING(pToucher->v.classname);
|
const char *ptrClass = STRING(pToucher->v.classname);
|
||||||
const char *ptdClass = STRING(pTouched->v.classname);
|
const char *ptdClass = STRING(pTouched->v.classname);
|
||||||
|
int ptrIndex = ENTINDEX(pToucher);
|
||||||
|
int ptdIndex = ENTINDEX(pTouched);
|
||||||
META_RES res=MRES_IGNORED;
|
META_RES res=MRES_IGNORED;
|
||||||
for (i=0; i<Touches.size(); i++)
|
for (i=0; i<Touches.size(); i++)
|
||||||
{
|
{
|
||||||
|
@ -239,13 +241,13 @@ void pfnTouch(edict_t *pToucher, edict_t *pTouched)
|
||||||
{
|
{
|
||||||
if (Touches[i]->Touched.size() == 0)
|
if (Touches[i]->Touched.size() == 0)
|
||||||
{
|
{
|
||||||
retVal = MF_ExecuteForward(Touches[i]->Forward, ENTINDEX(pToucher), ENTINDEX(pTouched));
|
retVal = MF_ExecuteForward(Touches[i]->Forward, ptrIndex, ptdIndex);
|
||||||
if (retVal & 2/*PLUGIN_HANDLED_MAIN*/)
|
if (retVal & 2/*PLUGIN_HANDLED_MAIN*/)
|
||||||
RETURN_META(MRES_SUPERCEDE);
|
RETURN_META(MRES_SUPERCEDE);
|
||||||
else if (retVal)
|
else if (retVal)
|
||||||
res=MRES_SUPERCEDE;
|
res=MRES_SUPERCEDE;
|
||||||
} else if (Touches[i]->Touched.compare(ptdClass)==0) {
|
} else if (Touches[i]->Touched.compare(ptdClass)==0) {
|
||||||
retVal = MF_ExecuteForward(Touches[i]->Forward, ENTINDEX(pToucher), ENTINDEX(pTouched));
|
retVal = MF_ExecuteForward(Touches[i]->Forward, ptrIndex, ptdIndex);
|
||||||
if (retVal & 2/*PLUGIN_HANDLED_MAIN*/)
|
if (retVal & 2/*PLUGIN_HANDLED_MAIN*/)
|
||||||
RETURN_META(MRES_SUPERCEDE);
|
RETURN_META(MRES_SUPERCEDE);
|
||||||
else if (retVal)
|
else if (retVal)
|
||||||
|
@ -254,13 +256,13 @@ void pfnTouch(edict_t *pToucher, edict_t *pTouched)
|
||||||
} else if (Touches[i]->Toucher.compare(ptrClass)==0) {
|
} else if (Touches[i]->Toucher.compare(ptrClass)==0) {
|
||||||
if (Touches[i]->Touched.size() == 0)
|
if (Touches[i]->Touched.size() == 0)
|
||||||
{
|
{
|
||||||
retVal = MF_ExecuteForward(Touches[i]->Forward, ENTINDEX(pToucher), ENTINDEX(pTouched));
|
retVal = MF_ExecuteForward(Touches[i]->Forward, ptrIndex, ptdIndex);
|
||||||
if (retVal & 2/*PLUGIN_HANDLED_MAIN*/)
|
if (retVal & 2/*PLUGIN_HANDLED_MAIN*/)
|
||||||
RETURN_META(MRES_SUPERCEDE);
|
RETURN_META(MRES_SUPERCEDE);
|
||||||
else if (retVal)
|
else if (retVal)
|
||||||
res=MRES_SUPERCEDE;
|
res=MRES_SUPERCEDE;
|
||||||
} else if (Touches[i]->Touched.compare(ptdClass)==0) {
|
} else if (Touches[i]->Touched.compare(ptdClass)==0) {
|
||||||
retVal = MF_ExecuteForward(Touches[i]->Forward, ENTINDEX(pToucher), ENTINDEX(pTouched));
|
retVal = MF_ExecuteForward(Touches[i]->Forward, ptrIndex, ptdIndex);
|
||||||
if (retVal & 2/*PLUGIN_HANDLED_MAIN*/)
|
if (retVal & 2/*PLUGIN_HANDLED_MAIN*/)
|
||||||
RETURN_META(MRES_SUPERCEDE);
|
RETURN_META(MRES_SUPERCEDE);
|
||||||
else if (retVal)
|
else if (retVal)
|
||||||
|
@ -270,12 +272,12 @@ void pfnTouch(edict_t *pToucher, edict_t *pTouched)
|
||||||
}
|
}
|
||||||
/* Execute pfnTouch forwards */
|
/* Execute pfnTouch forwards */
|
||||||
if (pfnTouchForward != -1) {
|
if (pfnTouchForward != -1) {
|
||||||
retVal = MF_ExecuteForward(pfnTouchForward, ENTINDEX(pToucher), ENTINDEX(pTouched));
|
retVal = MF_ExecuteForward(pfnTouchForward, ptrIndex, ptdIndex);
|
||||||
if (retVal)
|
if (retVal)
|
||||||
RETURN_META(MRES_SUPERCEDE);
|
RETURN_META(MRES_SUPERCEDE);
|
||||||
}
|
}
|
||||||
if (VexdTouchForward != -1) {
|
if (VexdTouchForward != -1) {
|
||||||
retVal = MF_ExecuteForward(VexdTouchForward, ENTINDEX(pToucher), ENTINDEX(pTouched));
|
retVal = MF_ExecuteForward(VexdTouchForward, ptrIndex, ptdIndex);
|
||||||
if (retVal)
|
if (retVal)
|
||||||
RETURN_META(MRES_SUPERCEDE);
|
RETURN_META(MRES_SUPERCEDE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -400,7 +400,7 @@ static cell AMX_NATIVE_CALL set_msg_arg_int(AMX *amx, cell *params)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Msg.SetParam(argn, params[2]);
|
Msg.SetParam(argn, params[3]);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -428,7 +428,7 @@ static cell AMX_NATIVE_CALL set_msg_arg_float(AMX *amx, cell *params)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
REAL fVal = amx_ctof(params[2]);
|
REAL fVal = amx_ctof(params[3]);
|
||||||
|
|
||||||
Msg.SetParam(argn, fVal);
|
Msg.SetParam(argn, fVal);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user