fcafd0784c
The cause of the infamous "Index error writing string table baseline" error appears to be a timing issue between the engine's network message processing, the stringtable encoding, and command processing when adding stringtable entries in OnConfigsExecuted. When the first client connects the map is re-loaded which causes a full refresh, the game's stringtable entries are added at tick 65, the client connection is registered at tick 66, and stringtable entries added in OnConfigsExecuted are registered as being added in tick 67. The engine later calls WriteBaselines with the client's signon tick, and neglects to encode the SM added entries as it considers them from the future. To avoid this, always pass INT_MAX as the current tick when encoding the baseline, so all stringtable entries are included regardless of when they were added. Tested on both Windows and Linux. |
||
---|---|---|
.. | ||
core.games | ||
sdkhooks.games | ||
sdktools.games | ||
sm-cstrike.games | ||
funcommands.games.txt | ||
sm-tf2.games.txt |