backup for the working code, i hate c++ and its vague errors

This commit is contained in:
EricPlayZ
2025-01-07 00:51:27 +02:00
parent 8552e28bcd
commit 35bf50de2e
2 changed files with 17 additions and 8 deletions

View File

@ -59,6 +59,13 @@ namespace EGSDK::GamePH {
class EGameSDK_API PlayerVarVector {
public:
PlayerVarVector() = default;
PlayerVarVector(const PlayerVarVector&) = delete; // Prevent copying
PlayerVarVector& operator=(const PlayerVarVector&) = delete; // Prevent assignment
PlayerVarVector(PlayerVarVector&&) = default; // Allow moving
PlayerVarVector& operator=(PlayerVarVector&&) = default; // Allow move assignment
std::unique_ptr<PlayerVariable>& emplace_back(std::unique_ptr<PlayerVariable> playerVar) {
_playerVars.emplace_back(std::move(playerVar));
return _playerVars.back();

View File

@ -94,7 +94,7 @@ namespace EGSDK::GamePH {
auto floatPlayerVar = reinterpret_cast<FloatPlayerVariable*>(playerVar);
floatPlayerVar->SetValues(value);
} else if constexpr (std::is_same_v<T, bool>) {
auto boolPlayerVar = dynamic_cast<BoolPlayerVariable*>(playerVar);
auto boolPlayerVar = reinterpret_cast<BoolPlayerVariable*>(playerVar);
boolPlayerVar->SetValues(value);
}
}
@ -165,6 +165,13 @@ namespace EGSDK::GamePH {
}
}
}
static void processPlayerVarSafe(DWORD64*(*playerVarsGetter)(), std::unique_ptr<PlayerVariable>& playerVarPtr) {
__try {
processPlayerVar(playerVarsGetter, playerVarPtr);
} __except (EXCEPTION_EXECUTE_HANDLER) {
SPDLOG_ERROR("Failed to process player variable: {}", playerVarPtr->GetName());
}
}
void PlayerVariables::GetPlayerVars() {
if (gotPlayerVars)
@ -174,13 +181,8 @@ namespace EGSDK::GamePH {
if (!Get())
return;
for (auto& playerVarPtr : playerVars) {
__try {
processPlayerVar(reinterpret_cast<DWORD64*(*)()>(&Get), playerVarPtr);
} __except (EXCEPTION_EXECUTE_HANDLER) {
SPDLOG_ERROR("Failed to process player variable: {}", playerVarPtr->GetName());
}
}
for (auto& playerVarPtr : playerVars)
processPlayerVarSafe(reinterpret_cast<DWORD64*(*)()>(&Get), playerVarPtr);
gotPlayerVars = true;
}