diff --git a/plugins/include/tf2.inc b/plugins/include/tf2.inc index 03910768..3f92a60f 100644 --- a/plugins/include/tf2.inc +++ b/plugins/include/tf2.inc @@ -108,6 +108,22 @@ enum TFHoliday TFHoliday_Birthday }; +enum TFObjectType +{ + TFObject_CartDispenser = 0, + TFObject_Dispenser = 0, + TFObject_Teleporter = 1, + TFObject_Sentry = 2, + TFObject_Sapper = 3 +}; + +enum TFObjectMode +{ + TFObjectMode_None = 0, + TFObjectMode_Entrance = 0, + TFObjectMode_Exit = 1 +}; + /** * Sets a client on fire for 10 seconds. * diff --git a/plugins/include/tf2_stocks.inc b/plugins/include/tf2_stocks.inc index f171bf9f..2a0b8758 100644 --- a/plugins/include/tf2_stocks.inc +++ b/plugins/include/tf2_stocks.inc @@ -259,3 +259,41 @@ stock TF2_GetPlayerConditionFlags(client) { return GetEntProp(client, Prop_Send, "m_nPlayerCond"); } + +/** + * Gets an entity's object type. + * + * @param entity Entity index. + * @return Current TFObjectType of entity. + * @error Invalid entity index. + */ +stock TFObjectType:TF2_GetObjectType(entity) +{ + new offset = GetEntSendPropOffs(entity, "m_iObjectType"); + + if (offset <= 0) + { + ThrowError("Entity index %d is not an object", entity); + } + + return TFObjectType:GetEntData(entity, offset); +} + +/** + * Gets an entity's object mode. + * + * @param entity Entity index. + * @return Current TFObjectMode of entity. + * @error Invalid entity index. + */ +stock TFObjectMode:TF2_GetObjectMode(entity) +{ + new offset = GetEntSendPropOffs(entity, "m_iObjectMode"); + + if (offset <= 0) + { + ThrowError("Entity index %d is not an object", entity); + } + + return TFObjectMode:GetEntData(entity, offset); +}