summaryrefslogtreecommitdiffhomepage
path: root/gamedata
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 /gamedata
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 'gamedata')
-rw-r--r--gamedata/engine.kv42
-rw-r--r--gamedata/entprops.kv9
-rw-r--r--gamedata/gamelib.kv26
3 files changed, 75 insertions, 2 deletions
diff --git a/gamedata/engine.kv b/gamedata/engine.kv
index a43d25c..8ee8161 100644
--- a/gamedata/engine.kv
+++ b/gamedata/engine.kv
@@ -8,7 +8,10 @@ vtidx_RecordPacket 11
// VEngineClient
vtidx_GetGameDirectory {
Client015 35 // current portal 2
- Client014 { L4D2 73 } // YES IT'S SEVENTY THREE ALL OF A SUDDEN.
+ Client014 {
+ L4D2 73 // YES IT'S SEVENTY THREE ALL OF A SUDDEN.
+ 2013 35
+ }
Client013 {
L4Dx 36 // AND THEN THEY CHANGED IT BACK LATER!
default 35 // <- most things have this!
@@ -18,4 +21,41 @@ vtidx_GetGameDirectory {
vtidx_GetEngineBuildNumber { L4D2 99 }
vtidx_PEntityOfEntIndex { OrangeBox 19 } // probably OE too but???
+sz_edict {
+ default 20
+ L4Dbased 16 // see engineapi.h comment
+}
+
+// SendProp
+sz_SendProp {
+ // wrapping all these in 005 for right now.
+ // will need at least 009 as well at some point!
+ SrvDLL005 {
+ OrangeBox 76
+ L4D1 80
+ L4D2 84
+ Portal2 84
+ }
+ //2013 80 // TODO(compat): not sure about 2013/009 yet
+}
+off_SP_varname {
+ SrvDLL005 {
+ OrangeBox 44
+ //L4Dbased 48 // TODO(compat): haven't tested Survivors
+ // for now do this instead:
+ L4D 48
+ Portal2 48
+ }
+ //2013 48 // TODO(compat): not sure about 2013/009 yet pt2
+}
+off_SP_offset {
+ SrvDLL005 {
+ OrangeBox 68
+ L4D1 72
+ L4D2 76
+ Portal2 76
+ }
+ //2013 72 // TODO(compat): not sure about 2013/009 yet pt3
+}
+
// vi: sw=4 ts=4 noet tw=80 cc=80
diff --git a/gamedata/entprops.kv b/gamedata/entprops.kv
new file mode 100644
index 0000000..cd19ae8
--- /dev/null
+++ b/gamedata/entprops.kv
@@ -0,0 +1,9 @@
+// This follows a different format to the other gamedata files.
+// It simply assigns variable names to network table property name strings.
+// Network names are classname/propname, e.g. CBasePlayer/m_fWhatever
+
+off_entpos CBaseEntity/m_vecOrigin
+// look angles, currently just for L4D1/2, can add other games as needed
+off_eyeang "CCSPlayer/m_angEyeAngles[0]"
+
+// vi: sw=4 ts=4 noet tw=80 cc=80
diff --git a/gamedata/gamelib.kv b/gamedata/gamelib.kv
index 7d8978b..e7a4302 100644
--- a/gamedata/gamelib.kv
+++ b/gamedata/gamelib.kv
@@ -9,7 +9,31 @@ vtidx_CheckJumpButton {
}
off_mv 8
+// IServerGameDLL
+vtidx_GetAllServerClasses {
+ default 10
+ 2013 11
+ // TODO(compat): BMS 11
+}
+
// I(Server|Client)Unknown
-vtidx_GetBaseEntity 4
+vtidx_GetBaseEntity "4 + NVDTOR"
+
+// CBaseEntity or CBasePlayer or something
+off_netprop_statechanged { L4D 88 }
+off_simtime { L4D 128 }
+vtidx_Teleport {
+ L4D "104 + NVDTOR"
+ L4D2 {
+ default "116 + NVDTOR" // TODO(linux): might actually be 119!?!?
+ // TODO(compat): would like to be able to specify this here.
+ // see also engineapi.c
+ //TLS "117 + NVDTOR"
+ }
+}
+
+// CGlobalVars
+off_curtime 12
+off_edicts { L4D 88 }
// vi: sw=4 ts=4 noet tw=80 cc=80