From 462dc9986d94039c9d295f518e45eeb3d0a73506 Mon Sep 17 00:00:00 2001 From: Vaqtincha Oshiq Date: Sat, 19 Aug 2017 22:13:45 +0500 Subject: [PATCH] Small fixes (#178) Reset m_rgRewardAccountRules on CHalfLifeMultiplay() added missing reward rule RR_TOOK_HOSTAGE --- regamedll/dlls/gamerules.h | 2 +- regamedll/dlls/hostage/hostage.cpp | 2 +- regamedll/dlls/multiplay_gamerules.cpp | 17 +++++++++++------ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/regamedll/dlls/gamerules.h b/regamedll/dlls/gamerules.h index 819a86a8..16eac2a2 100644 --- a/regamedll/dlls/gamerules.h +++ b/regamedll/dlls/gamerules.h @@ -687,7 +687,7 @@ private: void MarkLivingPlayersOnTeamAsNotReceivingMoneyNextRound(int iTeam); public: - static RewardAccount m_rgRewardAccountRules[]; + static RewardAccount m_rgRewardAccountRules[RR_END]; CVoiceGameMgr m_VoiceGameMgr; float m_flRestartRoundTime; // The global time when the round is supposed to end, if this is not 0 (deprecated name m_fTeamCount) diff --git a/regamedll/dlls/hostage/hostage.cpp b/regamedll/dlls/hostage/hostage.cpp index 56b5c897..8bfaabf3 100644 --- a/regamedll/dlls/hostage/hostage.cpp +++ b/regamedll/dlls/hostage/hostage.cpp @@ -920,7 +920,7 @@ void CHostage::GiveCTTouchBonus(CBasePlayer *pPlayer) m_bTouched = TRUE; CSGameRules()->m_iAccountCT += CSGameRules()->m_rgRewardAccountRules[RR_TOOK_HOSTAGE_ACC]; - pPlayer->AddAccount(REWARD_TOOK_HOSTAGE, RT_HOSTAGE_TOOK); + pPlayer->AddAccount(CSGameRules()->m_rgRewardAccountRules[RR_TOOK_HOSTAGE], RT_HOSTAGE_TOOK); UTIL_LogPrintf("\"%s<%i><%s>\" triggered \"Touched_A_Hostage\"\n", STRING(pPlayer->pev->netname), GETPLAYERUSERID(pPlayer->edict()), GETPLAYERAUTHID(pPlayer->edict())); } diff --git a/regamedll/dlls/multiplay_gamerules.cpp b/regamedll/dlls/multiplay_gamerules.cpp index 195fa89f..535f2baa 100644 --- a/regamedll/dlls/multiplay_gamerules.cpp +++ b/regamedll/dlls/multiplay_gamerules.cpp @@ -12,19 +12,20 @@ cvar_t *sv_clienttrace = NULL; CCStrikeGameMgrHelper g_GameMgrHelper; CHalfLifeMultiplay *g_pMPGameRules = nullptr; -RewardAccount CHalfLifeMultiplay::m_rgRewardAccountRules[] = { - REWARD_CTS_WIN, // RR_CTS_WIN +RewardAccount CHalfLifeMultiplay::m_rgRewardAccountRules[RR_END]; +RewardAccount m_rgRewardAccountRules_default[] = { + REWARD_CTS_WIN, // RR_CTS_WIN REWARD_TERRORISTS_WIN, // RR_TERRORISTS_WIN - REWARD_TARGET_BOMB, // RR_TARGET_BOMB - REWARD_VIP_ESCAPED, // RR_VIP_ESCAPED + REWARD_TARGET_BOMB, // RR_TARGET_BOMB + REWARD_VIP_ESCAPED, // RR_VIP_ESCAPED REWARD_VIP_ASSASSINATED, // RR_VIP_ASSASSINATED REWARD_TERRORISTS_ESCAPED, // RR_TERRORISTS_ESCAPED REWARD_CTS_PREVENT_ESCAPE, // RR_CTS_PREVENT_ESCAPE - REWARD_ESCAPING_TERRORISTS_NEUTRALIZED, // RR_ESCAPING_TERRORISTS_NEUTRALIZED + REWARD_ESCAPING_TERRORISTS_NEUTRALIZED, // RR_ESCAPING_TERRORISTS_NEUTRALIZED REWARD_BOMB_DEFUSED, // RR_BOMB_DEFUSED REWARD_BOMB_PLANTED, // RR_BOMB_PLANTED REWARD_BOMB_EXPLODED, // RR_BOMB_EXPLODED - REWARD_ALL_HOSTAGES_RESCUED, // RR_ALL_HOSTAGES_RESCUED + REWARD_ALL_HOSTAGES_RESCUED, // RR_ALL_HOSTAGES_RESCUED REWARD_TARGET_BOMB_SAVED, // RR_TARGET_BOMB_SAVED REWARD_HOSTAGE_NOT_RESCUED, // RR_HOSTAGE_NOT_RESCUED REWARD_VIP_NOT_ESCAPED, // RR_VIP_NOT_ESCAPED @@ -416,6 +417,7 @@ CHalfLifeMultiplay::CHalfLifeMultiplay() m_VoiceGameMgr.Init(&g_GameMgrHelper, gpGlobals->maxClients); RefreshSkillData(); + Q_memcpy(m_rgRewardAccountRules, m_rgRewardAccountRules_default, sizeof(m_rgRewardAccountRules)); m_flIntermissionEndTime = 0; m_flIntermissionStartTime = 0; @@ -3504,10 +3506,13 @@ void CHalfLifeMultiplay::ClientDisconnected(edict_t *pClient) pPlayer->DropPlayerItem("weapon_c4"); } +#ifndef REGAMEDLL_FIXES + // Why ? DropPlayerItem didn't handle item_thighpack if (pPlayer->m_bHasDefuser) { pPlayer->DropPlayerItem("item_thighpack"); } +#endif if (pPlayer->m_bIsVIP) {