From 21cebf34395a599e7fb81d4a43a5953da1fd51f1 Mon Sep 17 00:00:00 2001 From: Edo Date: Fri, 31 Mar 2023 13:36:03 +0200 Subject: [PATCH] [ChangeLog]: Prep for release (#886) --- CHANGELOG.md | 25 +++++++++++++++++++++++++ src/Components/Modules/GSC/IO.cpp | 11 ++++++++++- src/Components/Modules/PlayerName.cpp | 5 +++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc6a8056..c35b7fb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,31 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog v0.3.0](http://keepachangelog.com/en/0.3.0/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [0.7.9] - 2023-03-31 + +### Added +- Game scripts can be loaded from the `scripts/mp`, `scripts/mp/` and `scripts/mp/` folders (#859) +- Add `ReadStream` GSC function (#862) +- Add `IString` GSC function (#877) + +### Changed +- Test Clients will no longer receive names from the Xlabs Patreon website. The old behaviour was restored (#852) +- Enabled `OpenFile` GSC function (#862) +- Enabled `CloseFile` GSC function (#862) +- Chat system uses "reliable message" to mitigate message duplication (#873) +- The built-in GSC compiler no longer throws fatal errors when overriding a built-in function or method (IW3 behaviour) (#880) +- `CastFloat` GSC function was renamed to `Float` (#880) + +### Fixed +- Fix bug where knife lounges would not work with a gamepad (#848) +- Fix rare RCon crash (#861) +- Fix bug where `sv_RandomBotNames` stopped working (#876) +- Fix crash caused by "Mongoose" (dependency) (#874) + +### Known issues + +- Sound issue fix is experimental as the bug is not fully understood. + ## [0.7.8] - 2023-03-17 ### Added diff --git a/src/Components/Modules/GSC/IO.cpp b/src/Components/Modules/GSC/IO.cpp index b7050237..af5ac692 100644 --- a/src/Components/Modules/GSC/IO.cpp +++ b/src/Components/Modules/GSC/IO.cpp @@ -68,7 +68,7 @@ namespace Components::GSC return; } - Logger::PrintError(Game::CON_CHANNEL_PARSERSCRIPT, "ReadStream failed.\n"); + Logger::Warning(Game::CON_CHANNEL_PARSERSCRIPT, "ReadStream failed.\n"); if (std::feof(openScriptIOFileHandle)) { @@ -219,5 +219,14 @@ namespace Components::GSC Utils::Hook::Set(0x79A864, GScr_CloseFile); Utils::Hook::Set(0x79A868, 0); + + Events::OnVMShutdown([] + { + if (openScriptIOFileHandle) + { + std::fclose(openScriptIOFileHandle); + openScriptIOFileHandle = nullptr; + } + }); } } diff --git a/src/Components/Modules/PlayerName.cpp b/src/Components/Modules/PlayerName.cpp index df583669..d03cc88f 100644 --- a/src/Components/Modules/PlayerName.cpp +++ b/src/Components/Modules/PlayerName.cpp @@ -13,6 +13,11 @@ namespace Components return true; } + if (c == '~') + { + return true; + } + if (c < 32 || c > 126) { return true;