Changelist:
Game:
- Fixed a major oversight in Source 2013 which was causing some code to think all logic entities were worldspawn
- Added WIP background nodraw for point_cameras set to not draw skybox at all
- Fixed map-specific talker not flushing on restore
- Added optional HUD hint to code-based game instructor hints
- Added workaround for suspicious crashes in HL2 NPC rappelling code (reported by 1upD)
- Made antlions summoned by npc_antlionguard report as dead when removed with the "Kill" input
- Fixed math_mod not saving mod value (reported by Klems)
Shaders:
- Added SDK_WindowImposter, which uses the SteamPipe cubemap bug workaround and includes support for parallax corrected cubemaps
Files/Scripts:
- Deleted the invisible door geometry in the "blank" door models used in brush doors, which fixes a bug with the flashlight
- In the source code, thirdpartylegalnotices.txt has been updated to mention the Squirrel API
- Added metrocop "harass" animations to Combine soldiers and citizens. This includes the new Faceposer gestures
VScript:
- Fixed incorrect type checking for script instances in VScript
- Added a bunch of new misc. VScript constants
- Added a few new base VScript functions
- Added a separate "Clientside Script Language" keyvalue to worldspawn for VScript, allowing client scripts to use a different language from server scripts
- Fixed debug overlay functions by replacing them with a Source 2-style singleton (contributed by samisalreadytaken)
- Renamed a bunch of VScript functions to make them more in-line with later Source (2) games, still allowing the original names to be used as legacy support (contributed by samisalreadytaken)
- Added expanded support for script function thinking (contributed by samisalreadytaken)
- Fixed worldspawn crashing the game when running entity scripts (reported by krassell)
FGD:
- Added "Pretend to be in skybox" to EFlags
- Added spheres to npc_template_maker radius and ai_script_conditions distances
Compile Tools:
- Fixed manifests creating a second worldspawn, allowing them to function properly in HL2
- Added tons of remapping-related fixes for instances and manifests, including node IDs and overlay remapping
- Added a keyvalue to func_instance which allows vector axis lines to be remapped properly
- Added support for manifest root path instances in VBSP
- Added missing PrintBrushContents() contents to VBSP
- Added -nohiddenmaps parameter
- Made manifest cordon somewhat functional
The "Manifest" menu in Hammer is infamous for occupying much of the editor's screen space without ever being used for anything in the average map. This menu is supposed to be used for a special instancing feature which was partly broken and not very viable for creating a map.
This update makes a ton of changes to VBSP which allow manifest (.vmm) files to be compiled properly without any external tools or workarounds.
A manifest splits a map into special instances called "sub-maps". Manifests were already mostly functional in Hammer, but VBSP previously suffered from serious issues with compiling them directly, which made them difficult to use. By fixing VBSP's problems, this update eliminates most of the extra steps involved with compiling a manifest, effectively making manifests viable for a regular mapping workflow.
This is a picture of a blank manifest menu.
This is a picture of a manifest menu in usage.
Some of the manifest fixes affect instances as well. For example, node ID and brush side remapping have been added in this update, which can be used to incorporate AI nodes and overlays into regular instances.
Some of the other VBSP code involved with these fixes is based off of DeathByNukes's fork of the original Source 2013 repo on GitHub, which has no affiliation with Mapbase.
This update introduces a custom version of the WindowImposter shader based on source files from the Alien Swarm SDK. This shader is used for the "dev_windowportal" material, which renders cubemaps for func_areaportalwindow.
Mapbase's custom version of WindowImposter will allow it to use the SteamPipe cubemap fix and will add support for parallax corrected cubemaps. Due to the way parallax corrected cubemaps are compiled in VBSP, this also means existing instances of WindowImposter which draw from env_cubemaps with defined cubemap bounds will now utilize parallax corrected cubemaps.
This update was scheduled to be released several days ago, but I was prevented from doing so due to a mixture of IRL circumstances, wanting to work on other projects (which ironically hinged on this update), procrastination, and burnout. It seems like this happens a lot with Mapbase updates for some reason.
If you find any issues with this update, please report them here, on the Discord server, or on the repo's "Issues" page.