OpenClonk
C4ControlVote Class Referenceabstract

#include <C4Control.h>

Inheritance diagram for C4ControlVote:
[legend]
Collaboration diagram for C4ControlVote:
[legend]

Public Member Functions

 C4ControlVote (C4ControlVoteType eType=VT_None, bool fApprove=true, int iData=0)
 
C4ControlVoteType getType () const
 
bool isApprove () const
 
int32_t getData () const
 
StdStrBuf getDesc () const
 
StdStrBuf getDescWarning () const
 
bool Sync () const override
 
int32_t getByClient () const
 
bool LocalControl () const
 
bool HostControl () const
 
void SetByClient (int32_t iByClient)
 
virtual bool PreExecute () const
 
virtual void Execute () const =0
 
virtual void PreRec (C4Record *pRecord)
 
virtual bool Lobby () const
 
void CompileFunc (StdCompiler *pComp) override
 
C4NetIOPacket pack (const C4NetIO::addr_t &addr=C4NetIO::addr_t()) const
 
C4NetIOPacket pack (uint8_t cStatus, const C4NetIO::addr_t &addr=C4NetIO::addr_t()) const
 
void unpack (const C4NetIOPacket &Pkt, char *pStatus=nullptr)
 

Protected Attributes

int32_t iByClient
 

Detailed Description

Definition at line 567 of file C4Control.h.

Constructor & Destructor Documentation

◆ C4ControlVote()

C4ControlVote::C4ControlVote ( C4ControlVoteType  eType = VT_None,
bool  fApprove = true,
int  iData = 0 
)
inline

Definition at line 570 of file C4Control.h.

571  : eType(eType), fApprove(fApprove), iData(iData)
572  { }

Member Function Documentation

◆ CompileFunc()

void C4ControlPacket::CompileFunc ( StdCompiler pComp)
overridevirtualinherited

Implements C4PacketBase.

Definition at line 70 of file C4Control.cpp.

71 {
72  // Section must be set by caller
73  pComp->Value(mkNamingAdapt(mkIntPackAdapt(iByClient), "ByClient", -1));
74 }
StdIntPackAdapt< T > mkIntPackAdapt(T &rVal)
Definition: StdAdaptors.h:791
StdNamingAdapt< T > mkNamingAdapt(T &&rValue, const char *szName)
Definition: StdAdaptors.h:92
int32_t iByClient
Definition: C4Control.h:39
void Value(const T &rStruct)
Definition: StdCompiler.h:161

References C4ControlPacket::iByClient, mkIntPackAdapt(), mkNamingAdapt(), and StdCompiler::Value().

Here is the call graph for this function:

◆ Execute()

virtual void C4ControlPacket::Execute ( ) const
pure virtualinherited

Referenced by C4GameControl::DoSyncCheck(), C4GameControl::ExecControlPacket(), and C4Control::Execute().

Here is the caller graph for this function:

◆ getByClient()

int32_t C4ControlPacket::getByClient ( ) const
inlineinherited

Definition at line 42 of file C4Control.h.

42 { return iByClient; }

References C4ControlPacket::iByClient.

Referenced by C4Network2::GetVote(), C4GameControlNetwork::HandlePacket(), and C4Network2::OpenVoteDialog().

Here is the caller graph for this function:

◆ getData()

int32_t C4ControlVote::getData ( ) const
inline

Definition at line 582 of file C4Control.h.

582 { return iData; }

Referenced by C4Network2::Execute(), C4Network2::GetVote(), and C4Network2::OpenVoteDialog().

Here is the caller graph for this function:

◆ getDesc()

StdStrBuf C4ControlVote::getDesc ( ) const

Definition at line 1675 of file C4Control.cpp.

1676 {
1677  // Describe action
1678  StdStrBuf Action;
1679  switch (eType)
1680  {
1681  case VT_Cancel:
1682  Action = LoadResStr("IDS_VOTE_CANCELTHEROUND"); break;
1683  case VT_Kick:
1684  if (iData == iByClient)
1685  Action = LoadResStr("IDS_VOTE_LEAVETHEGAME");
1686  else
1687  {
1688  C4Client *pTargetClient = Game.Clients.getClientByID(iData);
1689  Action.Format(LoadResStr("IDS_VOTE_KICKCLIENT"), pTargetClient ? pTargetClient->getName() : "???");
1690  }
1691  break;
1692  case VT_Pause:
1693  if (iData)
1694  Action = LoadResStr("IDS_TEXT_PAUSETHEGAME");
1695  else
1696  Action = LoadResStr("IDS_TEXT_UNPAUSETHEGAME");
1697  break;
1698  default:
1699  Action = "perform some mysterious action"; break;
1700  }
1701  return Action;
1702 }
@ VT_Pause
Definition: C4Control.h:564
@ VT_Cancel
Definition: C4Control.h:562
@ VT_Kick
Definition: C4Control.h:563
C4Game Game
Definition: C4Globals.cpp:52
const char * LoadResStr(const char *id)
Definition: C4Language.h:83
const char * getName() const
Definition: C4Client.h:107
C4Client * getClientByID(int32_t iID) const
Definition: C4Client.cpp:200
C4ClientList & Clients
Definition: C4Game.h:69
void Format(const char *szFmt,...) GNUC_FORMAT_ATTRIBUTE_O
Definition: StdBuf.cpp:174

References C4Game::Clients, StdStrBuf::Format(), Game, C4ClientList::getClientByID(), C4Client::getName(), C4ControlPacket::iByClient, LoadResStr(), VT_Cancel, VT_Kick, and VT_Pause.

Referenced by C4Network2::OpenVoteDialog().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getDescWarning()

StdStrBuf C4ControlVote::getDescWarning ( ) const

Definition at line 1704 of file C4Control.cpp.

1705 {
1706  StdStrBuf Warning;
1707  switch (eType)
1708  {
1709  case VT_Cancel:
1710  Warning = LoadResStr("IDS_TEXT_WARNINGIFTHEGAMEISCANCELL"); break;
1711  case VT_Kick:
1712  Warning = LoadResStr("IDS_TEXT_WARNINGNOLEAGUEPOINTSWILL"); break;
1713  default:
1714  Warning = ""; break;
1715  }
1716  return Warning;
1717 }

References LoadResStr(), VT_Cancel, and VT_Kick.

Referenced by C4Network2::OpenVoteDialog().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getType()

C4ControlVoteType C4ControlVote::getType ( ) const
inline

Definition at line 580 of file C4Control.h.

580 { return eType; }

Referenced by C4Network2::Execute(), C4Network2::GetVote(), and C4Network2::OpenVoteDialog().

Here is the caller graph for this function:

◆ HostControl()

bool C4ControlPacket::HostControl ( ) const
inlineinherited

Definition at line 44 of file C4Control.h.

44 { return iByClient == C4ClientIDHost; }
const int32_t C4ClientIDHost
Definition: C4Client.h:25

References C4ClientIDHost, and C4ControlPacket::iByClient.

◆ isApprove()

bool C4ControlVote::isApprove ( ) const
inline

Definition at line 581 of file C4Control.h.

581 { return fApprove; }

◆ Lobby()

virtual bool C4ControlPacket::Lobby ( ) const
inlinevirtualinherited

Reimplemented in C4ControlMessage, C4ControlPlayerInfo, C4ControlClientRemove, C4ControlClientUpdate, C4ControlClientJoin, and C4ControlSet.

Definition at line 53 of file C4Control.h.

53 { return false; }

Referenced by C4GameControl::DoInput().

Here is the caller graph for this function:

◆ LocalControl()

bool C4ControlPacket::LocalControl ( ) const
inherited

Definition at line 60 of file C4Control.cpp.

61 {
62  return iByClient == ::Control.ClientID();
63 }
C4GameControl Control
int32_t ClientID() const

References C4GameControl::ClientID(), Control, and C4ControlPacket::iByClient.

Here is the call graph for this function:

◆ pack() [1/2]

C4NetIOPacket C4PacketBase::pack ( const C4NetIO::addr_t addr = C4NetIO::addr_t()) const
inherited

Definition at line 150 of file C4Packet2.cpp.

151 {
152  return C4NetIOPacket(DecompileToBuf<StdCompilerBinWrite>(*this), addr);
153 }

Referenced by MkC4NetIOPacket().

Here is the caller graph for this function:

◆ pack() [2/2]

C4NetIOPacket C4PacketBase::pack ( uint8_t  cStatus,
const C4NetIO::addr_t addr = C4NetIO::addr_t() 
) const
inherited

Definition at line 155 of file C4Packet2.cpp.

156 {
157  return C4NetIOPacket(DecompileToBuf<StdCompilerBinWrite>(mkInsertAdapt(mkDecompileAdapt(*this), cStatus)), addr);
158 }
StdInsertAdapt< T, I > mkInsertAdapt(T &&rObj, I &&rIns, bool fBefore=true)
Definition: StdAdaptors.h:469
StdDecompileAdapt< T > mkDecompileAdapt(const T &rValue)
Definition: StdAdaptors.h:153

References mkDecompileAdapt(), and mkInsertAdapt().

Here is the call graph for this function:

◆ PreExecute()

virtual bool C4ControlPacket::PreExecute ( ) const
inlinevirtualinherited

Reimplemented in C4ControlJoinPlayer.

Definition at line 48 of file C4Control.h.

48 { return true; }

Referenced by C4GameControl::ExecControlPacket(), and C4Control::PreExecute().

Here is the caller graph for this function:

◆ PreRec()

virtual void C4ControlPacket::PreRec ( C4Record pRecord)
inlinevirtualinherited

Reimplemented in C4ControlJoinPlayer.

Definition at line 50 of file C4Control.h.

50 { }

Referenced by C4Control::PreRec(), and C4Record::Rec().

Here is the caller graph for this function:

◆ SetByClient()

void C4ControlPacket::SetByClient ( int32_t  iByClient)
inherited

Definition at line 65 of file C4Control.cpp.

66 {
67  iByClient = inByClient;
68 }

References C4ControlPacket::iByClient.

◆ Sync()

bool C4ControlVote::Sync ( ) const
inlineoverridevirtual

Reimplemented from C4ControlPacket.

Reimplemented in C4ControlVoteEnd.

Definition at line 587 of file C4Control.h.

587 { return false; }

◆ unpack()

void C4PacketBase::unpack ( const C4NetIOPacket Pkt,
char *  pStatus = nullptr 
)
inherited

Definition at line 160 of file C4Packet2.cpp.

161 {
162  if (pStatus) *pStatus = Pkt.getStatus();
163  CompileFromBuf<StdCompilerBinRead>(*this, pStatus ? Pkt.getPBuf() : Pkt.getRef());
164 }
uint8_t getStatus() const
Definition: C4NetIO.h:319
StdBuf getPBuf() const
Definition: C4NetIO.h:322
C4NetIOPacket getRef() const
Definition: C4NetIO.h:325

References C4NetIOPacket::getPBuf(), C4NetIOPacket::getRef(), and C4NetIOPacket::getStatus().

Referenced by C4IDPacket::C4IDPacket(), and C4Network2IO::HandlePacket().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ iByClient


The documentation for this class was generated from the following files: