This is the first update since Mapbase released on September 30th. It doesn't release much of the content I've promised yet, but it fixes a bunch of issues people have been having with Mapbase itself. It also still adds a few new features and fixes some existing code.
- Applied the nexttoken security fix (suggested by ficool2, important for MP port)
- Fixed a crash with the follower wait point start/stop using handlers
- Fixed game_ui activator crash
- Changed vphysics triggers to accept more entities
- Fixed player squadmates not obeying hint node facing (e.g. wait points)
- Fixed npc_snipers
- prop_vehicle_jeep_old no longer changes classname
- Restored and added the other CTakeDamageInfo fields for point_damageinfo
- Fixed game_metadata not saving correctly
- Fixed logic_measure_movement not functioning while possessing spawnflags
- Added scripts/mapbase_rpc.txt script with choosable app ID and game image
- Fixed some casing that broke Linux support
- Added proper WorldVertexTransition blending to translucency and selfillum (translucency may need the translucent texture to be $basetexture, not $basetexture2)
- Added modified parallax corrected cubemaps to shader code (although currently unusable)
- Fixed Variant_ParseInput
- Added/restored custom scanner speed (experimental, needs more work)
- Added a frustum to point_camera
- Added spheres to env_fog_controller
- Several miscellaneous code changes/fixes and comment adjustments
I would've released this update earlier, but it took almost a month because of some IRL issues, school, and burnout. However, I started working on other projects with Mapbase, and as I've worked on those projects, I've occasionally found Mapbase-related bugs that hindered my progress (including a few that hadn't been reported by others yet), leading me to go back to Mapbase to fix them. This helped motivate me to put out this update and I hope it continues to be a motivating factor in the future.
I had an idea about a week ago to add a "frustum" to point_camera that displays the camera's FOV in the 3D viewport, similar to projected textures and what I did for info_hint. This allows you to easily see exactly what would be visible through the camera.
As I was adding that, however, I suddenly realized env_fog_controller doesn't have wireframe spheres to display its fog start/end. I thought this was especially necessary now that Mapbase uses radial fog. This means you could adjust env_fog_controller's fog levels like you could adjust a prop's fade distance.
I didn't add these spheres to point_camera since it would get too crowded with the frustum and I didn't add them to sky_camera because the skybox scale prevents the spheres from accurately reflecting the fog values.
While browsing the shader code, I realized $translucent/$alphatest and $selfillum don't blend in between two albedos in displacement blend textures, but with a few simple line changes, they could. Getting $selfillum working was easy, but I had some trouble with transparency since it turns out the shader might not actually be able to use the second texture's alpha, meaning you could only blend the $basetexture's transparency with $basetexture2's opaqueness. They cannot both be transparent.
Before I made this change, $selfillum and translucency on WorldVertexTransition always used the $basetexture's values. This will now look different with Mapbase's shaders, but I consider intentional usage of the old behavior to be rare and easy to fix.
I added a file called mapbase_rpc in the "scripts" folder that lets Mapbase-derived mods change the app ID and large image for Discord RPC without having to modify the code. I also updated the mod templates to have them by default.
As always, post comments here, open issues on GitHub, or reach out to me on Discord if you need to report any bugs or issues.