13 stories · 1 update

Barnacle regression fixed, 3 bone weights for meshes, math_counter outputs, Autorefresh rework

Commit 280e7a on main fixes regressions in entity search (including Barnacles), allows three bone weights for procedural meshes, adds OnChangedFromMin/Max to math_counter and substantially changes Autorefresh error handling.

Details
  • Separate Linux client and SRCDS build scripts
  • Classname added to the CUtlRBTree overflow message
  • Fixed some regressions with entity search, including Barnacles
  • ErrorFromLua renamed to ErrorNoHaltStack; added CLuaInterface::FormatError
  • mesh.BoneData can be called with index 2 (weight ignored); Mesh() allows 3 bone weights and Mesh:BuildFromTriangles reads up to 3
  • Two new PhysFrame sub scopes: PhysFrame-CPhysicsEnvironment::Simulate and PhysFrame-VPhysicsShadowUpdate
  • math_counter gains OnChangedFromMin/OnChangedFromMax outputs and SetMaxValueNoFire/SetMinValueNoFire inputs
  • Improved Autorefresh error handling; fixed a memory leak with Windows auto refresh and symlinks ("hopefully without regressions, as the system was changed somewhat substantially")

Rubat: BASS can move a playing sound; the engine's sound system can't

In #lua-help, A1steaksa asked how to move a sound while it plays without attaching it to an entity, since CSoundPatch has no SetPos and needs an entity. homonovus thought it impossible without an entity. Rubat said the BASS audio system can do it but the engine sound system cannot.

Details

A1steaksa is also decoding old WAVE files by hand; Rubat asked for a sample, saying the only common format he hadn't tested with "my thing" is ADPCM, and A1steaksa's file was IMA ADPCM (format 0x11).

Nak explains his navigation system's pathfinding

In #developer-talk, Nak explained his navigation system to Zemen. It runs a double A* search from start to goal and from goal to start, meeting in the middle ("a trick GPS use"). The search tracks polygon entry points, and the system reads the map's AIN info_nodes. NPCs such as the 200 antlions in his video run a "dumb" AI while waiting for a path, so they seem to react immediately.