about summary refs log tree commit diff
path: root/src/game/client/components/voting.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/client/components/voting.cpp')
-rw-r--r--src/game/client/components/voting.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/game/client/components/voting.cpp b/src/game/client/components/voting.cpp
new file mode 100644
index 00000000..b81cfb97
--- /dev/null
+++ b/src/game/client/components/voting.cpp
@@ -0,0 +1,61 @@
+#include <engine/e_client_interface.h>
+#include <game/generated/g_protocol.hpp>
+#include "voting.hpp"
+
+void VOTING::con_callvote(void *result, void *user_data)
+{
+}
+
+void VOTING::con_vote(void *result, void *user_data)
+{
+}
+	
+VOTING::VOTING()
+{
+	on_reset();
+}
+
+void VOTING::on_reset()
+{
+	closetime = 0;
+	description[0] = 0;
+	command[0] = 0;
+	yes = no = pass = total = 0;
+	voted = 0;
+}
+
+void VOTING::on_console_init()
+{
+	MACRO_REGISTER_COMMAND("callvote", "r", con_callvote, this);
+	MACRO_REGISTER_COMMAND("vote", "r", con_vote, this);
+}
+
+void VOTING::on_message(int msgtype, void *rawmsg)
+{
+	if(msgtype == NETMSGTYPE_SV_VOTE_SET)
+	{
+		NETMSG_SV_VOTE_SET *msg = (NETMSG_SV_VOTE_SET *)rawmsg;
+		if(msg->timeout)
+		{
+			on_reset();
+			str_copy(description, msg->description, sizeof(description));
+			str_copy(command, msg->command, sizeof(description));
+			closetime = time_get() + time_freq() * msg->timeout;
+		}
+		else
+			on_reset();
+	}
+	else if(msgtype == NETMSGTYPE_SV_VOTE_STATUS)
+	{
+		NETMSG_SV_VOTE_STATUS *msg = (NETMSG_SV_VOTE_STATUS *)rawmsg;
+		yes = msg->yes;
+		no = msg->no;
+		pass = msg->pass;
+		total = msg->total;
+	}	
+}
+
+void VOTING::on_render()
+{
+}
+