[entWatch-core] Mark items destroyed when one of their entities is destroyed.
This commit is contained in:
parent
786225b6a2
commit
386da2e248
@ -354,7 +354,7 @@ stock bool RegisterExistingItem(CConfig config, int entity, int type)
|
|||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
stock bool RegisterItemEntity(CItem item, int entity, int type)
|
stock bool RegisterItemEntity(CItem item, int entity, int type)
|
||||||
{
|
{
|
||||||
if (Entity_IsValid(entity))
|
if (Entity_IsValid(entity) && !item.bDestroyed)
|
||||||
{
|
{
|
||||||
int iOwner = Entity_GetOwner(entity);
|
int iOwner = Entity_GetOwner(entity);
|
||||||
int iParent = Entity_GetParent(entity);
|
int iParent = Entity_GetParent(entity);
|
||||||
@ -415,18 +415,21 @@ public void OnEntityDestroyed(int entity)
|
|||||||
{
|
{
|
||||||
item.iClient = INVALID_ENT_REFERENCE;
|
item.iClient = INVALID_ENT_REFERENCE;
|
||||||
item.iWeapon = INVALID_ENT_REFERENCE;
|
item.iWeapon = INVALID_ENT_REFERENCE;
|
||||||
|
item.bDestroyed = true;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (item.bButton && item.iButton == entity)
|
else if (item.bButton && item.iButton == entity)
|
||||||
{
|
{
|
||||||
item.iButton = INVALID_ENT_REFERENCE;
|
item.iButton = INVALID_ENT_REFERENCE;
|
||||||
|
item.bDestroyed = true;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (item.bTrigger && item.iTrigger == entity)
|
else if (item.bTrigger && item.iTrigger == entity)
|
||||||
{
|
{
|
||||||
item.iTrigger = INVALID_ENT_REFERENCE;
|
item.iTrigger = INVALID_ENT_REFERENCE;
|
||||||
|
item.bDestroyed = true;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,8 @@ methodmap CItem < Basic
|
|||||||
|
|
||||||
myclass.SetFloat("flWait", 0.0);
|
myclass.SetFloat("flWait", 0.0);
|
||||||
|
|
||||||
|
myclass.SetBool("bDestroyed", false);
|
||||||
|
|
||||||
return view_as<CItem>(myclass);
|
return view_as<CItem>(myclass);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,6 +126,18 @@ methodmap CItem < Basic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
property bool bDestroyed
|
||||||
|
{
|
||||||
|
public get()
|
||||||
|
{
|
||||||
|
return this.GetBool("bDestroyed");
|
||||||
|
}
|
||||||
|
public set(bool value)
|
||||||
|
{
|
||||||
|
this.SetBool("bDestroyed", value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
property bool bClient
|
property bool bClient
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user