From 4ab3b15efd06e75860ef96bad5b26501c850d0de Mon Sep 17 00:00:00 2001
From: Erik Minekus <erik@interwavestudios.com>
Date: Fri, 23 Jul 2010 21:23:35 -0400
Subject: [PATCH] Added TF2 object stocks (bug 4536, r=psychonic).

---
 plugins/include/tf2.inc        | 16 ++++++++++++++
 plugins/include/tf2_stocks.inc | 38 ++++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+)

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);
+}