summaryrefslogtreecommitdiffhomepage
path: root/src/gametype.h
diff options
context:
space:
mode:
authorMichael Smith <mikesmiffy128@gmail.com>2022-05-03 04:20:27 +0100
committerMichael Smith <mikesmiffy128@gmail.com>2022-05-03 16:55:46 +0100
commit6d0db0d5bee0201b732149616a691827367cfb35 (patch)
tree842936f4ec6cb8e27ce10682de77728a4ea93bf9 /src/gametype.h
parent19d96b65e1a840407a7280ab1f99d48d62932620 (diff)
Add entity property finding and L4D warp testing
This was a lot more code than expected, but it might be finally close to time to release the next beta... We'll see if any more rabbit holes present themselves to jump into, though.
Diffstat (limited to 'src/gametype.h')
-rw-r--r--src/gametype.h31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/gametype.h b/src/gametype.h
index 7c8fa3f..d7d0b3e 100644
--- a/src/gametype.h
+++ b/src/gametype.h
@@ -21,29 +21,40 @@
extern u64 _gametype_tag;
+/* general engine branches used in a bunch of stuff */
#define _gametype_tag_OE 1
-// TODO(compat): detect in con_init, even if just to fail (VEngineServer broke)
+#define _gametype_tag_OrangeBox (1 << 1)
+#define _gametype_tag_2013 (1 << 2)
+
+/* specific games with dedicated branches / engine changes */
+// TODO(compat): detect dmomm, even if only just to fail (VEngineServer broke)
// TODO(compat): buy dmomm in a steam sale to implement and test the above, lol
-#define _gametype_tag_DMoMM (1 << 1)
-#define _gametype_tag_OrangeBox (1 << 2)
-#define _gametype_tag_L4D1 (1 << 3)
-#define _gametype_tag_L4D2 (1 << 4)
-#define _gametype_tag_L4DS (1 << 5)
-#define _gametype_tag_Portal1 (1 << 6)
+#define _gametype_tag_DMoMM (1 << 3)
+#define _gametype_tag_L4D1 (1 << 4)
+#define _gametype_tag_L4D2 (1 << 5)
+#define _gametype_tag_L4DS (1 << 6) /* Survivors (weird arcade port) */
#define _gametype_tag_Portal2 (1 << 7)
-#define _gametype_tag_2013 (1 << 8)
+
+/* games needing game-specific stuff, but not tied to a singular branch */
+#define _gametype_tag_Portal1 (1 << 8)
+
+/* VEngineClient versions */
#define _gametype_tag_Client015 (1 << 9)
#define _gametype_tag_Client014 (1 << 10)
#define _gametype_tag_Client013 (1 << 11)
#define _gametype_tag_Client012 (1 << 12)
#define _gametype_tag_Server021 (1 << 13)
+/* ServerGameDLL versions */
+#define _gametype_tag_SrvDLL009 (1 << 14) // 2013-ish
+#define _gametype_tag_SrvDLL005 (1 << 15) // mostly everything else, it seems
+
+/* Matches for any multiple possible tags */
#define _gametype_tag_L4D (_gametype_tag_L4D1 | _gametype_tag_L4D2)
// XXX: *stupid* naming, refactor later (damn Survivors ruining everything)
#define _gametype_tag_L4D2x (_gametype_tag_L4D2 | _gametype_tag_L4DS)
#define _gametype_tag_L4Dx (_gametype_tag_L4D1 | _gametype_tag_L4D2x)
-#define _gametype_tag_L4Dbased \
- (_gametype_tag_L4D1 | _gametype_tag_L4D2x | _gametype_tag_Portal2)
+#define _gametype_tag_L4Dbased (_gametype_tag_L4Dx | _gametype_tag_Portal2)
#define _gametype_tag_OrangeBoxbased \
(_gametype_tag_OrangeBox | _gametype_tag_2013)