/* ** Command & Conquer Renegade(tm) ** Copyright 2025 Electronic Arts Inc. ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . */ /****************************************************************************** * * FILE * $Archive: /Commando/Code/Commando/WOLGameInfo.h $ * * DESCRIPTION * * PROGRAMMER * $Author: Steve_t $ * * VERSION INFO * $Revision: 11 $ * $Modtime: 10/31/02 3:07p $ * ******************************************************************************/ #ifndef __WOLGAMEINFO_H__ #define __WOLGAMEINFO_H__ #include class cGameData; namespace WWOnline { class ChannelData; class UserData; } // Game information used to describe the type of game. class WOLGameInfo { public: static bool IsValidGameChannel(const RefPtr& channel); enum {MAX_TEXT_LENGTH = 32}; WOLGameInfo(void); WOLGameInfo(const cGameData& theGame); WOLGameInfo(const RefPtr& channel); ~WOLGameInfo(void); void Reset(void); bool IsDataValid(void) const {return mIsDataValid;} bool IsMapValid(void) const {return mIsMapValid;} void ImportFromGame(const cGameData& theGame); void ImportFromChannel(const RefPtr& channel); void ExportToChannel(const RefPtr& channel); unsigned long Version(void) const {return mVersion;}; unsigned int GameType(void) const {return mGameType;} const char* MapName(void) const {return mMapName;} const char* ModName(void) const {return mModName;} const char* Title(void) const {return mTitle;} unsigned int MinPlayers(void) const {return mMinPlayers;} unsigned int MaxPlayers(void) const {return mMaxPlayers;} unsigned int NumPlayers(void) const {return mNumPlayers;} unsigned long ClanID1(void) const {return mClanID1;} unsigned long ClanID2(void) const {return mClanID2;} bool IsLaddered(void) const {return mIsLaddered;} bool IsPassworded(void) const {return mIsPassworded;} bool IsQuickmatch(void) const {return mIsQuickmatch;} bool IsDedicated(void) const {return mIsDedicated;} bool IsFriendlyFire(void) const {return mIsFriendlyFire;} bool IsFreeWeapons(void) const {return mIsFreeWeapons;} bool IsTeamRemix(void) const {return mIsTeamRemix;} bool IsTeamChange(void) const {return mIsTeamChange;} bool IsClanGame(void) const {return mIsClanGame;} bool IsRepairBuildings(void) const {return mIsRepairBuildings;} bool IsDriverGunner(void) const {return mIsDriverGunner;} bool IsSpawnWeapons(void) const {return mSpawnWeapons;} int PingTime(void) const {return mPingTime;} // Is the clan competing in the game. bool IsClanCompeting(unsigned long clanID) const; bool IsClanGameOpen(void) const; bool CanUserJoin(const RefPtr& user); protected: // Prevent copy and assignment WOLGameInfo(const WOLGameInfo&); const WOLGameInfo& operator=(const WOLGameInfo&); protected: bool mIsDataValid; bool mIsMapValid; unsigned long mVersion; unsigned int mGameType; char mMapName[MAX_TEXT_LENGTH]; char mModName[MAX_TEXT_LENGTH]; char mTitle[MAX_TEXT_LENGTH]; unsigned int mMinPlayers; unsigned int mMaxPlayers; unsigned int mNumPlayers; unsigned long mClanID1; unsigned long mClanID2; bool mIsMod; bool mIsLaddered; bool mIsPassworded; bool mIsQuickmatch; bool mIsDedicated; bool mIsFriendlyFire; bool mIsFreeWeapons; bool mIsTeamRemix; bool mIsTeamChange; bool mIsClanGame; bool mIsRepairBuildings; bool mIsDriverGunner; bool mSpawnWeapons; int mPingTime; }; #endif // __WOLGAMEINFO_H__