39 class NetworkSession :
public ClientSession
41 typedef ClientSession SUPER;
59 PlayerResult *mNextHitResult;
63 NetworkInterface mNetInterface;
64 BOOL mTimeToSendCharacterCreation;
65 BOOL mSended12SecClockUpdate;
66 BOOL mSended8SecClockUpdate;
72 int mSendedPlayerStats;
74 MainCharacter::MainCharacter *mClientCharacter[NetworkInterface::eMaxClient];
76 int mLastSendElemStateFuncTime;
77 int mLastSendElemStateTime[NetworkInterface::eMaxClient];
79 PlayerResult *mResultList;
80 PlayerResult *mHitList;
82 char mChatEditBuffer[120];
93 void BroadcastMainElementCreation(
const Util::ObjectFromFactoryId &pId,
const Model::ElementNetState &pState,
int pRoom,
int pHoverId);
95 void BroadcastAutoElementCreation(
const Util::ObjectFromFactoryId &pId,
const Model::ElementNetState &pState,
int pRoom);
96 void BroadcastPermElementState(
int pPermId,
const Model::ElementNetState &pState,
int pRoom);
97 void BroadcastMainElementState(
const Model::ElementNetState &pState);
99 void BroadcastChatMessage(
const char *pMessage);
100 void BroadcastTime();
101 void BroadcastHit(
int pHoverIdSrc);
103 void AddChatMessage(
int pPlayerIndex,
const char *Message,
int pMessageLen);
105 void AddHitEntry(
int pPlayerIndex,
int pPlayerFromID);
107 void InsertHitEntry(PlayerResult *pEntry);
112 static void ElementCreationHook(Model::FreeElement * pElement,
int pRoom,
void *pThis);
113 static void PermElementStateHook(Model::FreeElement * pElement,
int pRoom,
int pPermId,
void *pThis);
117 NetworkSession(BOOL pInternetGame,
int pMajorID,
int pMinorID, HWND pWindow);
123 BOOL LoadNew(
const char *pTitle, HoverRace::Parcel::RecordFilePtr pMazeFile,
int pNbLap,
char pGameOpts, VideoServices::VideoBuffer * pVideo);
125 BOOL CreateMainCharacter();
129 void SetPlayerName(
const char *pPlayerName);
130 const char *GetPlayerName()
const;
132 BOOL WaitConnections(HWND pWindow,
const char *pTrackName, BOOL pPromptForPort = TRUE,
134 HWND * pModalessDlg = NULL,
int pReturnMessage = 0);
135 BOOL PreConnectToServer(HWND pWindow, std::string &pTrackName);
136 BOOL ConnectToServer(HWND pWindow,
const char *pServerIP = NULL,
138 const char *pGameName = NULL, HWND * pModalessDlg = NULL,
139 int pReturnMessage = 0);
141 int ResultAvaillable()
const;
142 void GetResult(
int pPosition,
const char *&pPlayerName,
int &pId, BOOL &pConnected,
int &pNbLap,
MR_SimulationTime & pFinishTime,
MR_SimulationTime & pBestLap)
const;
143 void GetHitResult(
int pPosition,
const char *&pPlayerName,
int &pId, BOOL &pConnected,
int &pNbHitOther,
int &pNbHitHimself)
const;
145 int GetNbPlayers()
const;
146 int GetRank(
const MainCharacter::MainCharacter * pPlayer)
const;
148 void AddMessageKey(
char pKey);
149 void GetCurrentMessage(
char *pDest)
const;
151 MainCharacter::MainCharacter *GetPlayer(
int pPlayerIndex)
const;
MR_Int32 MR_SimulationTime
Definition: WorldCoordinates.h:106
std::shared_ptr< RoomList > RoomListPtr
Definition: RoomList.h:96
static Config * GetInstance()
Definition: Config.h:151
MR_FreeElementHandleClass * MR_FreeElementHandle
Definition: MazeElement.h:51
Definition: Announcement.h:24