mirror of
https://github.com/rehlds/rehlds.git
synced 2024-12-28 15:45:46 +03:00
Bugfix: Prevent to pre-cache same local models twice and more (Affects #612)
This commit is contained in:
parent
87a2d170ec
commit
65c6ce593b
@ -1345,7 +1345,6 @@ void EXT_FUNC EV_SV_Playback(int flags, int clientindex, unsigned short eventind
|
|||||||
EV_Playback(flags,pEdict, eventindex, delay, origin, angles, fparam1, fparam2, iparam1, iparam2, bparam1, bparam2);
|
EV_Playback(flags,pEdict, eventindex, delay, origin, angles, fparam1, fparam2, iparam1, iparam2, bparam1, bparam2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef REHLDS_FIXES
|
|
||||||
int SV_LookupModelIndex(const char *name)
|
int SV_LookupModelIndex(const char *name)
|
||||||
{
|
{
|
||||||
if (!name || !name[0])
|
if (!name || !name[0])
|
||||||
@ -1369,7 +1368,6 @@ int SV_LookupModelIndex(const char *name)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif // REHLDS_FIXES
|
|
||||||
|
|
||||||
int EXT_FUNC PF_precache_model_I(const char *s)
|
int EXT_FUNC PF_precache_model_I(const char *s)
|
||||||
{
|
{
|
||||||
|
@ -79,6 +79,7 @@ void PF_setsize_I(edict_t *e, const float *rgflMin, const float *rgflMax);
|
|||||||
void PF_setmodel_I(edict_t *e, const char *m);
|
void PF_setmodel_I(edict_t *e, const char *m);
|
||||||
int PF_modelindex(const char *pstr);
|
int PF_modelindex(const char *pstr);
|
||||||
int ModelFrames(int modelIndex);
|
int ModelFrames(int modelIndex);
|
||||||
|
int SV_LookupModelIndex(const char *name);
|
||||||
void PF_bprint(char *s);
|
void PF_bprint(char *s);
|
||||||
void PF_sprint(char *s, int entnum);
|
void PF_sprint(char *s, int entnum);
|
||||||
void ServerPrint(const char *szMsg);
|
void ServerPrint(const char *szMsg);
|
||||||
|
@ -271,26 +271,30 @@ char *ED_ParseEdict(char *data, edict_t *ent)
|
|||||||
// local model?
|
// local model?
|
||||||
if (com_token[0] == '*')
|
if (com_token[0] == '*')
|
||||||
{
|
{
|
||||||
// find empty slot
|
// make sure that local model not pre-cached yet
|
||||||
int i;
|
if (!SV_LookupModelIndex(com_token))
|
||||||
for (i = 0; i < MAX_MODELS; i++)
|
|
||||||
{
|
{
|
||||||
if (!g_psv.model_precache[i])
|
// find empty slot
|
||||||
break;
|
int i;
|
||||||
}
|
for (i = 0; i < MAX_MODELS; i++)
|
||||||
|
{
|
||||||
|
if (!g_psv.model_precache[i])
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
int index = Q_atoi(com_token + 1);
|
int index = Q_atoi(com_token + 1);
|
||||||
|
|
||||||
g_psv.model_precache[i] = localmodels[index];
|
g_psv.model_precache[i] = localmodels[index];
|
||||||
g_psv.models[i] = Mod_ForName(localmodels[index], FALSE, FALSE);
|
g_psv.models[i] = Mod_ForName(localmodels[index], FALSE, FALSE);
|
||||||
g_psv.model_precache_flags[i] |= RES_FATALIFMISSING;
|
g_psv.model_precache_flags[i] |= RES_FATALIFMISSING;
|
||||||
|
|
||||||
#ifdef REHLDS_OPT_PEDANTIC
|
#ifdef REHLDS_OPT_PEDANTIC
|
||||||
{
|
{
|
||||||
int __itmp = i;
|
int __itmp = i;
|
||||||
g_rehlds_sv.modelsMap.put(g_psv.model_precache[i], __itmp);
|
g_rehlds_sv.modelsMap.put(g_psv.model_precache[i], __itmp);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user