diff --git a/Client/game_sa/CBuildingsPoolSA.cpp b/Client/game_sa/CBuildingsPoolSA.cpp index 683330ed3c..f7557ca157 100644 --- a/Client/game_sa/CBuildingsPoolSA.cpp +++ b/Client/game_sa/CBuildingsPoolSA.cpp @@ -18,6 +18,7 @@ #include "CPtrNodeSingleListSA.h" #include "MemSA.h" #include "CVehicleSA.h" +#include "CBuildingRemovalSA.h" extern CGameSA* pGame; @@ -174,6 +175,9 @@ void CBuildingsPoolSA::RestoreBackup() if (!m_pOriginalBuildingsBackup) return; + auto* worldSA = pGame->GetWorld(); + auto* buildingRemovealSA = static_cast(pGame->GetBuildingRemoval()); + auto& originalData = *m_pOriginalBuildingsBackup; auto pBuildsingsPool = (*m_ppBuildingPoolInterface); for (size_t i = 0; i < MAX_BUILDINGS; i++) @@ -184,7 +188,8 @@ void CBuildingsPoolSA::RestoreBackup() auto pBuilding = pBuildsingsPool->GetObject(i); *pBuilding = originalData[i].second; - pGame->GetWorld()->Add(pBuilding, CBuildingPool_Constructor); + worldSA->Add(pBuilding, CBuildingPool_Constructor); + buildingRemovealSA->AddDataBuilding(pBuilding); } } diff --git a/Client/game_sa/CHudSA.cpp b/Client/game_sa/CHudSA.cpp index 887f39eb89..2f5c49e366 100644 --- a/Client/game_sa/CHudSA.cpp +++ b/Client/game_sa/CHudSA.cpp @@ -837,7 +837,7 @@ void __fastcall CHudSA::RenderWeaponIcon_Sprite(void* sprite, void*, CRect* rect color->a = properties.fillColorSecondary.a; // Call CSprite2d::Draw - ((void(__thiscall*)(void*, CRect*, RwColor*))FUNC_CSprie2d_Draw)(sprite, rect, color); + ((void(__thiscall*)(void*, CRect*, RwColor*))FUNC_CSprite2d_Draw)(sprite, rect, color); } void CHudSA::RenderWeaponIcon_XLU(CVector pos, CVector2D halfSize, std::uint8_t r, std::uint8_t g, std::uint8_t b, std::uint16_t intensity, float rhw, std::uint8_t a, std::uint8_t uDir, std::uint8_t vDir) diff --git a/Client/game_sa/CHudSA.h b/Client/game_sa/CHudSA.h index 479d60a82b..134f69757a 100644 --- a/Client/game_sa/CHudSA.h +++ b/Client/game_sa/CHudSA.h @@ -46,7 +46,7 @@ #define FUNC_CStats_GetFatAndMuscleModifier 0x559AF0 #define FUNC_CSprite2d_DrawBarChart 0x728640 -#define FUNC_CSprie2d_Draw 0x728350 +#define FUNC_CSprite2d_Draw 0x728350 #define FUNC_CSprite_RenderOneXLUSprite 0x70D000 #define CODE_ShowMoney 0x58F47D diff --git a/Server/mods/deathmatch/logic/luadefs/CLuaTeamDefs.cpp b/Server/mods/deathmatch/logic/luadefs/CLuaTeamDefs.cpp index df445b5a2b..65c3fad376 100644 --- a/Server/mods/deathmatch/logic/luadefs/CLuaTeamDefs.cpp +++ b/Server/mods/deathmatch/logic/luadefs/CLuaTeamDefs.cpp @@ -127,9 +127,9 @@ std::uint32_t CLuaTeamDefs::CountPlayersInTeam(CTeam* team) noexcept return team->CountPlayers(); } -bool CLuaTeamDefs::SetPlayerTeam(CPlayer* player, CTeam* team) noexcept +bool CLuaTeamDefs::SetPlayerTeam(CPlayer* player, std::optional team) noexcept { - return CStaticFunctionDefinitions::SetPlayerTeam(player, team); + return CStaticFunctionDefinitions::SetPlayerTeam(player, team.value_or(nullptr)); } bool CLuaTeamDefs::SetTeamName(CTeam* team, const std::string name) diff --git a/Server/mods/deathmatch/logic/luadefs/CLuaTeamDefs.h b/Server/mods/deathmatch/logic/luadefs/CLuaTeamDefs.h index 7b6c6f21c2..985cc4576e 100644 --- a/Server/mods/deathmatch/logic/luadefs/CLuaTeamDefs.h +++ b/Server/mods/deathmatch/logic/luadefs/CLuaTeamDefs.h @@ -30,7 +30,7 @@ class CLuaTeamDefs : public CLuaDefs static std::uint32_t CountPlayersInTeam(CTeam* team) noexcept; // Team set funcs - static bool SetPlayerTeam(CPlayer* player, CTeam* team) noexcept; + static bool SetPlayerTeam(CPlayer* player, std::optional team) noexcept; static bool SetTeamName(CTeam* team, const std::string name); static bool SetTeamColor(CTeam* team, const std::uint8_t red, const std::uint8_t green, const std::uint8_t blue) noexcept; static bool SetTeamFriendlyFire(CTeam* team, const bool state) noexcept;