Swap: Also switch rescue tees for /r

As reported by cheeser0613:

2player, 1die in freeze
swap 2 player by /swap
the other 1 also go die in freeze
/practice
one of them cant use /r
This commit is contained in:
def 2021-12-21 10:43:02 +01:00
parent fe0fb200a0
commit d7ea3371d6
2 changed files with 24 additions and 21 deletions

View file

@ -246,30 +246,32 @@ public:
int m_WeaponChangeTick; int m_WeaponChangeTick;
// Setters/Getters because i don't want to modify vanilla vars access modifiers // Setters/Getters because i don't want to modify vanilla vars access modifiers
int GetLastWeapon() { return m_LastWeapon; }; int GetLastWeapon() { return m_LastWeapon; }
void SetLastWeapon(int LastWeap) { m_LastWeapon = LastWeap; }; void SetLastWeapon(int LastWeap) { m_LastWeapon = LastWeap; }
int GetActiveWeapon() { return m_Core.m_ActiveWeapon; }; int GetActiveWeapon() { return m_Core.m_ActiveWeapon; }
void SetActiveWeapon(int ActiveWeap) { m_Core.m_ActiveWeapon = ActiveWeap; }; void SetActiveWeapon(int ActiveWeap) { m_Core.m_ActiveWeapon = ActiveWeap; }
void SetLastAction(int LastAction) { m_LastAction = LastAction; }; void SetLastAction(int LastAction) { m_LastAction = LastAction; }
int GetArmor() { return m_Armor; }; int GetArmor() { return m_Armor; }
void SetArmor(int Armor) { m_Armor = Armor; }; void SetArmor(int Armor) { m_Armor = Armor; }
CCharacterCore GetCore() { return m_Core; }; CCharacterCore GetCore() { return m_Core; }
void SetCore(CCharacterCore Core) { m_Core = Core; }; void SetCore(CCharacterCore Core) { m_Core = Core; }
CCharacterCore *Core() { return &m_Core; }; CCharacterCore *Core() { return &m_Core; }
bool GetWeaponGot(int Type) { return m_aWeapons[Type].m_Got; }; bool GetWeaponGot(int Type) { return m_aWeapons[Type].m_Got; }
void SetWeaponGot(int Type, bool Value) { m_aWeapons[Type].m_Got = Value; }; void SetWeaponGot(int Type, bool Value) { m_aWeapons[Type].m_Got = Value; }
int GetWeaponAmmo(int Type) { return m_aWeapons[Type].m_Ammo; }; int GetWeaponAmmo(int Type) { return m_aWeapons[Type].m_Ammo; }
void SetWeaponAmmo(int Type, int Value) { m_aWeapons[Type].m_Ammo = Value; }; void SetWeaponAmmo(int Type, int Value) { m_aWeapons[Type].m_Ammo = Value; }
bool IsAlive() { return m_Alive; }; bool IsAlive() { return m_Alive; }
void SetNinjaActivationDir(vec2 ActivationDir) { m_Ninja.m_ActivationDir = ActivationDir; }; void SetNinjaActivationDir(vec2 ActivationDir) { m_Ninja.m_ActivationDir = ActivationDir; }
void SetNinjaActivationTick(int ActivationTick) { m_Ninja.m_ActivationTick = ActivationTick; }; void SetNinjaActivationTick(int ActivationTick) { m_Ninja.m_ActivationTick = ActivationTick; }
void SetNinjaCurrentMoveTime(int CurrentMoveTime) { m_Ninja.m_CurrentMoveTime = CurrentMoveTime; }; void SetNinjaCurrentMoveTime(int CurrentMoveTime) { m_Ninja.m_CurrentMoveTime = CurrentMoveTime; }
int GetLastAction() const { return m_LastAction; } int GetLastAction() const { return m_LastAction; }
bool HasTelegunGun() { return m_Core.m_HasTelegunGun; }; bool HasTelegunGun() { return m_Core.m_HasTelegunGun; }
bool HasTelegunGrenade() { return m_Core.m_HasTelegunGrenade; }; bool HasTelegunGrenade() { return m_Core.m_HasTelegunGrenade; }
bool HasTelegunLaser() { return m_Core.m_HasTelegunLaser; }; bool HasTelegunLaser() { return m_Core.m_HasTelegunLaser; }
CSaveTee &GetRescueTeeRef() { return m_RescueTee; }
}; };
enum enum

View file

@ -890,6 +890,7 @@ void CGameTeams::SwapTeamCharacters(CPlayer *pPlayer, CPlayer *pTargetPlayer, in
swap(m_TeeStarted[pPlayer->GetCID()], m_TeeStarted[pTargetPlayer->GetCID()]); swap(m_TeeStarted[pPlayer->GetCID()], m_TeeStarted[pTargetPlayer->GetCID()]);
swap(m_TeeFinished[pPlayer->GetCID()], m_TeeFinished[pTargetPlayer->GetCID()]); swap(m_TeeFinished[pPlayer->GetCID()], m_TeeFinished[pTargetPlayer->GetCID()]);
swap(pPlayer->GetCharacter()->GetRescueTeeRef(), pTargetPlayer->GetCharacter()->GetRescueTeeRef());
GameServer()->m_World.SwapClients(pPlayer->GetCID(), pTargetPlayer->GetCID()); GameServer()->m_World.SwapClients(pPlayer->GetCID(), pTargetPlayer->GetCID());