about summary refs log tree commit diff
path: root/datasrc
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-08-27 15:51:09 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-08-27 15:51:09 +0000
commitb322643f1725063793228292625ad155577b30d6 (patch)
tree40212ab0b33d30dcf78b7cf97387395e887f9baa /datasrc
parentdfe499248f1b1236487156b28e4a535d7963fe35 (diff)
downloadzcatch-b322643f1725063793228292625ad155577b30d6.tar.gz
zcatch-b322643f1725063793228292625ad155577b30d6.zip
missed some files
Diffstat (limited to 'datasrc')
-rw-r--r--datasrc/compile.py25
-rw-r--r--datasrc/datatypes.py5
-rw-r--r--datasrc/network.py7
3 files changed, 35 insertions, 2 deletions
diff --git a/datasrc/compile.py b/datasrc/compile.py
index d3970ed6..6258b905 100644
--- a/datasrc/compile.py
+++ b/datasrc/compile.py
@@ -11,6 +11,16 @@ def create_enum_table(names, num):
 		lines += ["\t%s,"%name]
 	lines += ["\t%s" % num, "};"]
 	return lines
+
+def create_flags_table(names):
+	lines = []
+	lines += ["enum", "{"]
+	i = 0
+	for name in names:
+		lines += ["\t%s = 1<<%d," % (name,i)]
+		i += 1
+	lines += ["};"]
+	return lines
 	
 def EmitEnum(names, num):
 	print "enum"
@@ -20,6 +30,15 @@ def EmitEnum(names, num):
 		print "\t%s,"%name
 	print "\t%s" % num
 	print "};"
+
+def EmitFlags(names, num):
+	print "enum"
+	print "{"
+	i = 0
+	for name in names:
+		print "\t%s = 1<<%d," % (name,i)
+		i += 1
+	print "};"
 		
 
 gen_network_header = False
@@ -80,7 +99,11 @@ if gen_network_header:
 	print network.RawHeader
 	
 	for e in network.Enums:
-		for l in create_enum_table(["%s_%s"%(e.name, v) for v in e.values], "NUM_%sS"%e.name): print l
+		for l in create_enum_table(["%s_%s"%(e.name, v) for v in e.values], 'NUM_%sS'%e.name): print l
+		print ""
+
+	for e in network.Flags:
+		for l in create_flags_table(["%s_%s" % (e.name, v) for v in e.values]): print l
 		print ""
 		
 	for l in create_enum_table(["NETOBJ_INVALID"]+[o.enum_name for o in network.Objects], "NUM_NETOBJTYPES"): print l
diff --git a/datasrc/datatypes.py b/datasrc/datatypes.py
index 88678646..0b83493f 100644
--- a/datasrc/datatypes.py
+++ b/datasrc/datatypes.py
@@ -167,6 +167,11 @@ class Enum():
 		self.name = name
 		self.values = values
 
+class Flags():
+	def __init__(self, name, values):
+		self.name = name
+		self.values = values
+
 class NetObject:
 	def __init__(self, name, variables):
 		l = name.split(":")
diff --git a/datasrc/network.py b/datasrc/network.py
index 4c49f149..81b435f4 100644
--- a/datasrc/network.py
+++ b/datasrc/network.py
@@ -3,6 +3,7 @@ from datatypes import *
 Emotes = ["NORMAL", "PAIN", "HAPPY", "SURPRISE", "ANGRY", "BLINK"]
 PlayerStates = ["UNKNOWN", "PLAYING", "IN_MENU", "CHATTING"]
 GameTypes = ["DM", "TDM", "CTF"]
+GameFlags = ["TEAMS"]
 
 Emoticons = [str(x) for x in xrange(1,16)]
 
@@ -28,6 +29,10 @@ Enums = [
 	Enum("EMOTICON", Emoticons)
 ]
 
+Flags = [
+	Flags("GAMEFLAG", GameFlags)
+]
+
 Objects = [
 
 	NetObject("Player_Input", [
@@ -82,7 +87,7 @@ Objects = [
 	]),
 
 	NetObject("Game", [
-		NetIntRange("team", 0, 1),
+		NetIntRange("flags", 0, 256),
 		NetTick("round_start_tick"),
 		
 		NetIntRange("game_over", 0, 1),