From 374ae0fbc44db36d9abb6b5b1fe065bc3949e201 Mon Sep 17 00:00:00 2001 From: Matthew Wozniak Date: Thu, 17 Nov 2022 14:34:47 -0300 Subject: Add VGUI HUD overlay drawing feature Currently only supports Orange Box and Left 4 Dead branches. There's quite a large amount of gamedata involved in making this work, and figuring it out for the likes of Portal 2 doesn't seem like a major priority at the moment. --- gamedata/engine.kv | 26 +++++++++++++++++ gamedata/vgui2.kv | 7 +++++ gamedata/vguimatsurface.kv | 69 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 gamedata/vgui2.kv create mode 100644 gamedata/vguimatsurface.kv (limited to 'gamedata') diff --git a/gamedata/engine.kv b/gamedata/engine.kv index 9501221..b23bab5 100644 --- a/gamedata/engine.kv +++ b/gamedata/engine.kv @@ -63,6 +63,31 @@ sz_edict { L4Dbased 16 // see engineapi.h comment } +// vgui::Panel +vtidx_SetPaintEnabled { + default 67 + Client013 { + L4D1 68 + L4D2 { + default 71 + L4D2_2147plus 72 + } + } + Client014 { + L4D2 70 + } +} +vtidx_Paint { + default 123 + Client014 { L4D2 126 } // 2000 + Client013 { + L4D2 { + default 127 // 2045 + L4D2_2147plus 128 + } + } +} + // SendProp sz_SendProp { // wrapping all these in 005 for right now. @@ -104,6 +129,7 @@ vtidx_GetSpawnCount { } // IEngineVGuiInternal/CEngineVGui +vtidx_GetPanel NVDTOR vtidx_VGuiConnect { // note: the actual name is Connect() but that's too generic default "3 + NVDTOR" L4Dbased { diff --git a/gamedata/vgui2.kv b/gamedata/vgui2.kv new file mode 100644 index 0000000..6fd55a3 --- /dev/null +++ b/gamedata/vgui2.kv @@ -0,0 +1,7 @@ +// = vgui2 library = + +// ISchemeManager +vtidx_GetIScheme 8 + +// IScheme +vtidx_GetFont 3 diff --git a/gamedata/vguimatsurface.kv b/gamedata/vguimatsurface.kv new file mode 100644 index 0000000..19857be --- /dev/null +++ b/gamedata/vguimatsurface.kv @@ -0,0 +1,69 @@ +// = vguimatsurface library = + +// ISurface +vtidx_DrawSetColor { + OrangeBoxbased 10 + L4D 10 +} +vtidx_DrawFilledRect { + OrangeBoxbased 12 + L4D 12 +} +vtidx_DrawOutlinedRect { + OrangeBoxbased 14 + L4D 14 +} +vtidx_DrawLine { + OrangeBoxbased 15 + L4D 15 +} +vtidx_DrawPolyLine { + OrangeBoxbased 16 + L4D 16 +} +vtidx_DrawSetTextFont { + OrangeBoxbased 17 + L4D 17 +} +vtidx_DrawSetTextColor { + OrangeBoxbased 18 + L4D 18 +} +vtidx_DrawSetTextPos { + OrangeBoxbased 20 + L4D 20 +} +vtidx_DrawPrintText { + OrangeBoxbased 22 + L4D 22 +} +vtidx_GetScreenSize { + OrangeBoxbased 37 + L4D { + default 37 + L4D2_2147plus 35 + } +} +// Unused: currently no good way to create custom fonts without leaking them +//vtidx_CreateFont { +// OrangeBoxbased 64 +// L4D { +// default 64 +// L4D2_2147plus 63 +// } +//} +//vtidx_SetFontGlyphSet { +// OrangeBoxbased 65 +// L4D { +// default 65 +// L4D2_2147plus 64 +// } +//} +vtidx_GetFontTall { + OrangeBoxbased 67 + L4D 67 +} +vtidx_GetCharacterWidth { + OrangeBoxbased 71 + L4D 71 +} -- cgit v1.2.3