/* ** 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/WWOnline/WOLLadder.h $ * * DESCRIPTION * * PROGRAMMER * $Author: Denzil_l $ * * VERSION INFO * $Revision: 6 $ * $Modtime: 1/25/02 11:51a $ * ******************************************************************************/ #ifndef __WOLLADDER_H__ #define __WOLLADDER_H__ #pragma warning(disable : 4711) #include "RefCounted.h" #include "RefPtr.h" namespace WOL { #include } namespace WWOnline { typedef enum { LadderType_Individual = (1<<16L), LadderType_Clan = (1<<23L), LadderType_Team = (1<<24L) } LadderType; #define LADDERTYPE_MASK (LadderType_Individual | LadderType_Clan | LadderType_Team) class LadderData : public RefCounted { public: static RefPtr Create(const WOL::Ladder& ladder, long time); bool UpdateData(const WOL::Ladder& ladder, long time); const char* GetName(void) const {return (const char*)mData.login_name;} unsigned int GetWins(void) const {return mData.wins;} unsigned int GetLosses(void) const {return mData.losses;} unsigned int GetPoints(void) const {return mData.points;} unsigned int GetKills(void) const {return mData.kills;} unsigned int GetRung(void) const {return mData.rung;} unsigned int GetReserved1(void) const {return mData.reserved1;} unsigned int GetReserved2(void) const {return mData.reserved2;} long GetTimeStamp(void) const {return mTimeStamp;} WOL::Ladder& GetData() {return mData;} protected: LadderData(const WOL::Ladder& ladder, long time); virtual ~LadderData(); WOL::Ladder mData; long mTimeStamp; }; class LadderInfoEvent { public: LadderInfoEvent(const wchar_t* requested, const WOL::Ladder& ladder, long time); virtual ~LadderInfoEvent() {} bool IsRanked(void) const; LadderType GetLadderType(void) const; const wchar_t* GetRequestedName(void) const {return mRequestedName;} const char* GetReceivedName(void) const {return (const char*)mWOLLadder.login_name;} const WOL::Ladder& GetWOLLadder(void) const {return mWOLLadder;} long GetTimeStamp(void) const {return mTimeStamp;} protected: // Prevent copy and assignment LadderInfoEvent(const LadderInfoEvent&); const LadderInfoEvent& operator=(const LadderInfoEvent&); const wchar_t* mRequestedName; const WOL::Ladder& mWOLLadder; long mTimeStamp; }; } #endif // __WOLLADDER_H__