[General]: Small cleanup (#963)

This commit is contained in:
Edo 2023-04-22 18:56:29 +02:00 committed by GitHub
parent 42e5132c5e
commit a43b95cbaa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 38 additions and 21 deletions

View File

@ -4,6 +4,23 @@ 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/). The format is based on [Keep a Changelog v0.3.0](http://keepachangelog.com/en/0.3.0/).
## r4208 - 2023-04-22
### Changed
- `Noclip` GSC method does not require `sv_cheats` to be set to "1" for it to work (#962)
- `Ufo` GSC method does not require `sv_cheats` to be set to "1" for it to work (#962)
### Fixed
- Fix `InfoString` output (#961)
- Fix parsing of the server info (client-side) (#953)
- Fix bug in the /info TCP endpoint (#955)
### Known issues
- Sound issue fix is experimental as the bug is not fully understood.
## r4193 - 2023-04-19 ## r4193 - 2023-04-19
### Added ### Added
@ -20,6 +37,7 @@ The format is based on [Keep a Changelog v0.3.0](http://keepachangelog.com/en/0.
### Fixed ### Fixed
- `sv_privatePassword` will work as intended (#908) - `sv_privatePassword` will work as intended (#908)
- Fix crash when loading bots.txt file (#927)
### Known issues ### Known issues

View File

@ -317,7 +317,7 @@ namespace Components
void Debug::Com_BugNameInc_f() void Debug::Com_BugNameInc_f()
{ {
char buf[260]{}; char buf[512]{};
if (std::strlen(BugName->current.string) < 4) if (std::strlen(BugName->current.string) < 4)
{ {

View File

@ -23,18 +23,18 @@ namespace Components
// team switch and intermission. // team switch and intermission.
// //
std::mutex SoundMutexFix::SNDMutex; std::mutex SoundMutexFix::CloseStreamMutex;
void __stdcall SoundMutexFix::LockSoundMutex(int unk) void WINAPI SoundMutexFix::AIL_close_stream_Stub(int h_stream)
{ {
std::lock_guard lock(SNDMutex); std::lock_guard lock(CloseStreamMutex);
DWORD funcPtr = *reinterpret_cast<DWORD*>(0x6D7554); // AIL_close_stream const auto ptr = *reinterpret_cast<DWORD*>(0x6D7554); // AIL_close_stream
Utils::Hook::Call<void __stdcall(int)>(funcPtr)(unk); Utils::Hook::Call<void WINAPI(int)>(ptr)(h_stream);
} }
SoundMutexFix::SoundMutexFix() SoundMutexFix::SoundMutexFix()
{ {
Utils::Hook(0x689EFE, &LockSoundMutex, HOOK_JUMP).install()->quick(); Utils::Hook(0x689EFE, &AIL_close_stream_Stub, HOOK_JUMP).install()->quick();
} }
} }

View File

@ -9,7 +9,7 @@ namespace Components
SoundMutexFix(); SoundMutexFix();
private: private:
static std::mutex SNDMutex; static std::mutex CloseStreamMutex;
static void _stdcall LockSoundMutex(int unk); static void WINAPI AIL_close_stream_Stub(int h_stream);
}; };
} }

View File

@ -10,23 +10,22 @@ namespace Game::Engine
{ {
Sys_EnterCriticalSection(this->s_); Sys_EnterCriticalSection(this->s_);
this->hasOwnership_ = true; this->hasOwnership_ = true;
return;
}
if (type == SCOPED_CRITSECT_TRY)
{
this->hasOwnership_ = Sys_TryEnterCriticalSection(this->s_);
} }
else else
{ {
if (type == SCOPED_CRITSECT_TRY) if (type == SCOPED_CRITSECT_RELEASE)
{ {
this->hasOwnership_ = Sys_TryEnterCriticalSection(this->s_); Sys_LeaveCriticalSection(this->s_);
this->isScopedRelease_ = true;
} }
else
{
if (type == SCOPED_CRITSECT_RELEASE)
{
Sys_LeaveCriticalSection(this->s_);
this->isScopedRelease_ = true;
}
this->hasOwnership_ = false; this->hasOwnership_ = false;
}
} }
} }