Merge pull request #439 from alliedmodders/propinfo

Deprecate FindSendPropOffs and FindDataMapOffs
This commit is contained in:
Asher Baker 2015-11-04 20:55:37 +00:00
commit c1f8ebf65c

View File

@ -403,17 +403,13 @@ native SetEntDataString(entity, offset, const String:buffer[], maxlen, bool:chan
* @param prop Property name. * @param prop Property name.
* @return An offset, or -1 on failure. * @return An offset, or -1 on failure.
*/ */
#pragma deprecated Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
native FindSendPropOffs(const String:cls[], const String:prop[]); native FindSendPropOffs(const String:cls[], const String:prop[]);
/** /**
* Given a ServerClass name, finds a networkable send property offset. * Given a ServerClass name, finds a networkable send property offset.
* This information is cached for future calls. * This information is cached for future calls.
* *
* Note: This function will correctly compute nested offsets, unlike
* FindSendPropOffs(). YOU SHOULD NOT use this function to self-compute
* nested offsets. For example, it is okay to add indexes for arrays,
* but not to add DT_LocalPlayer to m_nDisguiseClass.
*
* @param cls Classname. * @param cls Classname.
* @param prop Property name. * @param prop Property name.
* @param type Optional parameter to store the type. * @param type Optional parameter to store the type.
@ -445,6 +441,7 @@ native FindSendPropInfo(const String:cls[],
* divisible by 8 (including 0 if unknown). * divisible by 8 (including 0 if unknown).
* @return An offset, or -1 on failure. * @return An offset, or -1 on failure.
*/ */
#pragma deprecated Use FindDataMapInfo instead, or HasEntProp if you just want to check for existence.
native FindDataMapOffs(entity, native FindDataMapOffs(entity,
const String:prop[], const String:prop[],
&PropFieldType:type=PropFieldType:0, &PropFieldType:type=PropFieldType:0,
@ -482,21 +479,49 @@ native FindDataMapInfo(entity,
*/ */
stock GetEntSendPropOffs(ent, const String:prop[], bool:actual=false) stock GetEntSendPropOffs(ent, const String:prop[], bool:actual=false)
{ {
decl String:cls[64]; new String:cls[64];
if (!GetEntityNetClass(ent, cls, sizeof(cls))) if (!GetEntityNetClass(ent, cls, sizeof(cls)))
{ {
return -1; return -1;
} }
new local;
new offset = FindSendPropInfo(cls, prop, _, _, local);
if (actual) if (actual)
{ {
return FindSendPropInfo(cls, prop); return offset;
} else {
return local;
} }
else }
/**
* Checks if an entity property exists on an entity.
*
* @param entity Entity/edict index.
* @param type Property type.
* @param prop Property name.
* @return Whether the property exists on the entity.
* @error Invalid entity.
*/
stock bool:HasEntProp(entity, PropType:type, const String:prop[])
{ {
return FindSendPropOffs(cls, prop); if (type == Prop_Data) {
return (FindDataMapInfo(entity, prop) != -1);
} }
if (type != Prop_Send) {
return false;
}
new String:cls[64];
if (!GetEntityNetClass(entity, cls, sizeof(cls))) {
return false;
}
return (FindSendPropInfo(cls, prop) != -1);
} }
/** /**