//////////////////////////////////////////////////////////////////////////////
//
// Asura_Lobby_Types.h
//
// Copyright (c) 2008 Rebellion. All rights reserved.
//
// Description:
//
//     infrequently-changing public types for lobby system
//
//////////////////////////////////////////////////////////////////////////////

// B E G I N   F I L E   W R A P P E R ///////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef ASURA_LOBBY_TYPES_H___
#define ASURA_LOBBY_TYPES_H___ 1

// I N C L U D E S ///////////////////////////////////////////////////////////
#include "Core/Asura_PlatformBasics.h"
#ifdef ASURA_SUPPORT_LOBBY
#include "Network/Online/Asura_Platform_Lobby.h"
#endif
#ifdef ASURA_USE_MERIT_SYSTEM
#include "Network/Online/Asura_Merit_Types.h"
#endif

// D E F I N E S /////////////////////////////////////////////////////////////
#ifndef ASURA_LOBBY_PLAYER_NAME_MAX_CHARS 
#define ASURA_LOBBY_PLAYER_NAME_MAX_CHARS (31) // plus NULL.
#endif
#define ASURA_LOBBY_PLAYER_NAME_BUFFER_SIZE (ASURA_LOBBY_PLAYER_NAME_MAX_CHARS+1)

// C L A S S E S /////////////////////////////////////////////////////////////

#ifndef ASURA_SUPPORT_LOBBY
//Dummy version for platforms on which we don't support the lobby system
//Will also get used for configurations which don't support the lobby system
//on platforms which do, but that shouldn't matter.
class Asura_Platform_Lobby_GameConnectData
{
public:
	u_int m_auDummy[10];	// 40 bytes
							// 40 bytes total
};
#endif

const u_int uASURA_PLATFORM_LOBBY_CONNECTDATA_SIZE = 40;

ASURA_STATIC_ASSERT(sizeof(Asura_Platform_Lobby_GameConnectData) == uASURA_PLATFORM_LOBBY_CONNECTDATA_SIZE);

class Asura_Lobby_GameConnectData : public Asura_Platform_Lobby_GameConnectData
{
public:
	void Fill()					{ Platform_Fill();				}
	void ChangeByteOrder()		{ Platform_ChangeByteOrder();	}

protected:
#ifdef ASURA_SUPPORT_LOBBY
	void Platform_Fill();
	void Platform_ChangeByteOrder();
#else
	void Platform_Fill() {}
	void Platform_ChangeByteOrder() {}
#endif
};

// E N D   F I L E   W R A P P E R ///////////////////////////////////////////

#endif // #ifndef ASURA_LOBBY_TYPES_H___
