NetPlay: Remove the base NetPlay class
It's only used by the NetPlayClient. For now, keep around NetPlay.cpp, but we'll remove that soon.
This commit is contained in:
parent
3b32d3c90d
commit
9e63cebc93
|
@ -138,7 +138,7 @@ bool BootCore(const std::string& _rFilename)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NetPlay::GetNetPlayPtr())
|
if (NetPlay::IsNetPlayRunning())
|
||||||
{
|
{
|
||||||
StartUp.bDSPHLE = g_NetPlaySettings.m_DSPHLE;
|
StartUp.bDSPHLE = g_NetPlaySettings.m_DSPHLE;
|
||||||
StartUp.bEnableMemcardSaving = g_NetPlaySettings.m_WriteToMemcard;
|
StartUp.bEnableMemcardSaving = g_NetPlaySettings.m_WriteToMemcard;
|
||||||
|
|
|
@ -262,7 +262,7 @@ void Init()
|
||||||
|
|
||||||
if (Movie::IsRecordingInput() || Movie::IsPlayingInput())
|
if (Movie::IsRecordingInput() || Movie::IsPlayingInput())
|
||||||
AddDevice(Movie::IsUsingPad(i) ? (Movie::IsUsingBongo(i) ? SIDEVICE_GC_TARUKONGA : SIDEVICE_GC_CONTROLLER) : SIDEVICE_NONE, i);
|
AddDevice(Movie::IsUsingPad(i) ? (Movie::IsUsingBongo(i) ? SIDEVICE_GC_TARUKONGA : SIDEVICE_GC_CONTROLLER) : SIDEVICE_NONE, i);
|
||||||
else if (NetPlay::GetNetPlayPtr())
|
else if (NetPlay::IsNetPlayRunning())
|
||||||
AddDevice((SIDevices) g_NetPlaySettings.m_Controllers[i], i);
|
AddDevice((SIDevices) g_NetPlaySettings.m_Controllers[i], i);
|
||||||
else
|
else
|
||||||
AddDevice(SConfig::GetInstance().m_SIDevice[i], i);
|
AddDevice(SConfig::GetInstance().m_SIDevice[i], i);
|
||||||
|
@ -644,7 +644,7 @@ void RunSIBuffer()
|
||||||
int GetTicksToNextSIPoll()
|
int GetTicksToNextSIPoll()
|
||||||
{
|
{
|
||||||
// Poll for input at regular intervals (once per frame) when playing or recording a movie
|
// Poll for input at regular intervals (once per frame) when playing or recording a movie
|
||||||
if (Movie::IsPlayingInput() || Movie::IsRecordingInput() || NetPlay::GetNetPlayPtr())
|
if (Movie::IsPlayingInput() || Movie::IsRecordingInput() || NetPlay::IsNetPlayRunning())
|
||||||
{
|
{
|
||||||
return SystemTimers::GetTicksPerSecond() / VideoInterface::TargetRefreshRate;
|
return SystemTimers::GetTicksPerSecond() / VideoInterface::TargetRefreshRate;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,50 +17,19 @@
|
||||||
#include "Core.h"
|
#include "Core.h"
|
||||||
#include "ConfigManager.h"
|
#include "ConfigManager.h"
|
||||||
|
|
||||||
std::mutex crit_netplay_ptr;
|
std::mutex crit_netplay_client;
|
||||||
static NetPlay* netplay_ptr = NULL;
|
static NetPlayClient * netplay_client = NULL;
|
||||||
NetSettings g_NetPlaySettings;
|
NetSettings g_NetPlaySettings;
|
||||||
|
|
||||||
#define RPT_SIZE_HACK (1 << 16)
|
#define RPT_SIZE_HACK (1 << 16)
|
||||||
|
|
||||||
// called from ---GUI--- thread
|
NetPlayClient::Player::Player()
|
||||||
NetPlay::NetPlay(NetPlayUI* dialog)
|
|
||||||
: m_dialog(dialog), m_is_running(false), m_do_loop(true)
|
|
||||||
{
|
|
||||||
m_target_buffer_size = 20;
|
|
||||||
ClearBuffers();
|
|
||||||
}
|
|
||||||
|
|
||||||
void NetPlay_Enable(NetPlay* const np)
|
|
||||||
{
|
|
||||||
std::lock_guard<std::mutex> lk(crit_netplay_ptr);
|
|
||||||
netplay_ptr = np;
|
|
||||||
}
|
|
||||||
|
|
||||||
void NetPlay_Disable()
|
|
||||||
{
|
|
||||||
std::lock_guard<std::mutex> lk(crit_netplay_ptr);
|
|
||||||
netplay_ptr = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// called from ---GUI--- thread
|
|
||||||
NetPlay::~NetPlay()
|
|
||||||
{
|
|
||||||
std::lock_guard<std::mutex> lk(crit_netplay_ptr);
|
|
||||||
netplay_ptr = NULL;
|
|
||||||
|
|
||||||
// not perfect
|
|
||||||
if (m_is_running)
|
|
||||||
StopGame();
|
|
||||||
}
|
|
||||||
|
|
||||||
NetPlay::Player::Player()
|
|
||||||
{
|
{
|
||||||
memset(pad_map, -1, sizeof(pad_map));
|
memset(pad_map, -1, sizeof(pad_map));
|
||||||
}
|
}
|
||||||
|
|
||||||
// called from ---GUI--- thread
|
// called from ---GUI--- thread
|
||||||
std::string NetPlay::Player::ToString() const
|
std::string NetPlayClient::Player::ToString() const
|
||||||
{
|
{
|
||||||
std::ostringstream ss;
|
std::ostringstream ss;
|
||||||
ss << name << '[' << (char)(pid+'0') << "] : " << revision << " |";
|
ss << name << '[' << (char)(pid+'0') << "] : " << revision << " |";
|
||||||
|
@ -89,7 +58,7 @@ NetPad::NetPad(const SPADStatus* const pad_status)
|
||||||
}
|
}
|
||||||
|
|
||||||
// called from ---NETPLAY--- thread
|
// called from ---NETPLAY--- thread
|
||||||
void NetPlay::ClearBuffers()
|
void NetPlayClient::ClearBuffers()
|
||||||
{
|
{
|
||||||
// clear pad buffers, Clear method isn't thread safe
|
// clear pad buffers, Clear method isn't thread safe
|
||||||
for (unsigned int i=0; i<4; ++i)
|
for (unsigned int i=0; i<4; ++i)
|
||||||
|
@ -105,7 +74,7 @@ void NetPlay::ClearBuffers()
|
||||||
}
|
}
|
||||||
|
|
||||||
// called from ---CPU--- thread
|
// called from ---CPU--- thread
|
||||||
bool NetPlay::GetNetPads(const u8 pad_nb, const SPADStatus* const pad_status, NetPad* const netvalues)
|
bool NetPlayClient::GetNetPads(const u8 pad_nb, const SPADStatus* const pad_status, NetPad* const netvalues)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
std::lock_guard<std::recursive_mutex> lkp(m_crit.players);
|
std::lock_guard<std::recursive_mutex> lkp(m_crit.players);
|
||||||
|
@ -161,7 +130,7 @@ bool NetPlay::GetNetPads(const u8 pad_nb, const SPADStatus* const pad_status, Ne
|
||||||
}
|
}
|
||||||
|
|
||||||
// called from ---CPU--- thread
|
// called from ---CPU--- thread
|
||||||
void NetPlay::WiimoteInput(int _number, u16 _channelID, const void* _pData, u32 _Size)
|
void NetPlayClient::WiimoteInput(int _number, u16 _channelID, const void* _pData, u32 _Size)
|
||||||
{
|
{
|
||||||
//// in game mapping for this local wiimote
|
//// in game mapping for this local wiimote
|
||||||
unsigned int in_game_num = m_local_player->pad_map[_number]; // just using gc pad_map for now
|
unsigned int in_game_num = m_local_player->pad_map[_number]; // just using gc pad_map for now
|
||||||
|
@ -176,7 +145,7 @@ void NetPlay::WiimoteInput(int _number, u16 _channelID, const void* _pData, u32
|
||||||
}
|
}
|
||||||
|
|
||||||
// called from ---CPU--- thread
|
// called from ---CPU--- thread
|
||||||
void NetPlay::WiimoteUpdate(int _number)
|
void NetPlayClient::WiimoteUpdate(int _number)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
std::lock_guard<std::recursive_mutex> lkp(m_crit.players);
|
std::lock_guard<std::recursive_mutex> lkp(m_crit.players);
|
||||||
|
@ -211,36 +180,8 @@ void NetPlay::WiimoteUpdate(int _number)
|
||||||
Core::Callback_WiimoteInterruptChannel(_number, i->channel, &(*i)[0], (u32)i->size() + RPT_SIZE_HACK);
|
Core::Callback_WiimoteInterruptChannel(_number, i->channel, &(*i)[0], (u32)i->size() + RPT_SIZE_HACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
// called from ---GUI--- thread
|
|
||||||
bool NetPlay::StartGame(const std::string &path)
|
|
||||||
{
|
|
||||||
if (m_is_running)
|
|
||||||
{
|
|
||||||
PanicAlertT("Game is already running!");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_dialog->AppendChat(" -- STARTING GAME -- ");
|
|
||||||
|
|
||||||
m_is_running = true;
|
|
||||||
NetPlay_Enable(this);
|
|
||||||
|
|
||||||
ClearBuffers();
|
|
||||||
|
|
||||||
// boot game
|
|
||||||
m_dialog->BootGame(path);
|
|
||||||
|
|
||||||
// temporary
|
|
||||||
NetWiimote nw;
|
|
||||||
for (unsigned int i = 0; i<4; ++i)
|
|
||||||
for (unsigned int f = 0; f<2; ++f)
|
|
||||||
m_wiimote_buffer[i].Push(nw);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// called from ---GUI--- thread and ---NETPLAY--- thread (client side)
|
// called from ---GUI--- thread and ---NETPLAY--- thread (client side)
|
||||||
bool NetPlay::StopGame()
|
bool NetPlayClient::StopGame()
|
||||||
{
|
{
|
||||||
std::lock_guard<std::recursive_mutex> lkg(m_crit.game);
|
std::lock_guard<std::recursive_mutex> lkg(m_crit.game);
|
||||||
|
|
||||||
|
@ -262,7 +203,7 @@ bool NetPlay::StopGame()
|
||||||
}
|
}
|
||||||
|
|
||||||
// called from ---CPU--- thread
|
// called from ---CPU--- thread
|
||||||
u8 NetPlay::GetPadNum(u8 numPAD)
|
u8 NetPlayClient::GetPadNum(u8 numPAD)
|
||||||
{
|
{
|
||||||
// TODO: i don't like that this loop is running everytime there is rumble
|
// TODO: i don't like that this loop is running everytime there is rumble
|
||||||
unsigned int i = 0;
|
unsigned int i = 0;
|
||||||
|
@ -279,10 +220,10 @@ u8 NetPlay::GetPadNum(u8 numPAD)
|
||||||
// Actual Core function which is called on every frame
|
// Actual Core function which is called on every frame
|
||||||
bool CSIDevice_GCController::NetPlay_GetInput(u8 numPAD, SPADStatus PadStatus, u32 *PADStatus)
|
bool CSIDevice_GCController::NetPlay_GetInput(u8 numPAD, SPADStatus PadStatus, u32 *PADStatus)
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lk(crit_netplay_ptr);
|
std::lock_guard<std::mutex> lk(crit_netplay_client);
|
||||||
|
|
||||||
if (netplay_ptr)
|
if (netplay_client)
|
||||||
return netplay_ptr->GetNetPads(numPAD, &PadStatus, (NetPad*)PADStatus);
|
return netplay_client->GetNetPads(numPAD, &PadStatus, (NetPad*)PADStatus);
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -301,9 +242,9 @@ bool CSIDevice_DanceMat::NetPlay_GetInput(u8 numPAD, SPADStatus PadStatus, u32 *
|
||||||
// so all players' games get the same time
|
// so all players' games get the same time
|
||||||
u32 CEXIIPL::NetPlay_GetGCTime()
|
u32 CEXIIPL::NetPlay_GetGCTime()
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lk(crit_netplay_ptr);
|
std::lock_guard<std::mutex> lk(crit_netplay_client);
|
||||||
|
|
||||||
if (netplay_ptr)
|
if (netplay_client)
|
||||||
return 1272737767; // watev
|
return 1272737767; // watev
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -313,10 +254,10 @@ u32 CEXIIPL::NetPlay_GetGCTime()
|
||||||
// return the local pad num that should rumble given a ingame pad num
|
// return the local pad num that should rumble given a ingame pad num
|
||||||
u8 CSIDevice_GCController::NetPlay_GetPadNum(u8 numPAD)
|
u8 CSIDevice_GCController::NetPlay_GetPadNum(u8 numPAD)
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lk(crit_netplay_ptr);
|
std::lock_guard<std::mutex> lk(crit_netplay_client);
|
||||||
|
|
||||||
if (netplay_ptr)
|
if (netplay_client)
|
||||||
return netplay_ptr->GetPadNum(numPAD);
|
return netplay_client->GetPadNum(numPAD);
|
||||||
else
|
else
|
||||||
return numPAD;
|
return numPAD;
|
||||||
}
|
}
|
||||||
|
@ -336,20 +277,20 @@ u8 CSIDevice_DanceMat::NetPlay_GetPadNum(u8 numPAD)
|
||||||
//void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int _number)
|
//void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int _number)
|
||||||
void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int)
|
void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int)
|
||||||
{
|
{
|
||||||
//CritLocker crit(crit_netplay_ptr);
|
//CritLocker crit(crit_netplay_client);
|
||||||
|
|
||||||
//if (netplay_ptr)
|
//if (netplay_client)
|
||||||
// netplay_ptr->WiimoteUpdate(_number);
|
// netplay_client->WiimoteUpdate(_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
// called from ---CPU--- thread
|
// called from ---CPU--- thread
|
||||||
//
|
//
|
||||||
int CWII_IPC_HLE_WiiMote::NetPlay_GetWiimoteNum(int _number)
|
int CWII_IPC_HLE_WiiMote::NetPlay_GetWiimoteNum(int _number)
|
||||||
{
|
{
|
||||||
//CritLocker crit(crit_netplay_ptr);
|
//CritLocker crit(crit_netplay_client);
|
||||||
|
|
||||||
//if (netplay_ptr)
|
//if (netplay_client)
|
||||||
// return netplay_ptr->GetPadNum(_number); // just using gcpad mapping for now
|
// return netplay_client->GetPadNum(_number); // just using gcpad mapping for now
|
||||||
//else
|
//else
|
||||||
return _number;
|
return _number;
|
||||||
}
|
}
|
||||||
|
@ -359,9 +300,9 @@ int CWII_IPC_HLE_WiiMote::NetPlay_GetWiimoteNum(int _number)
|
||||||
//bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int _number, u16 _channelID, const void* _pData, u32& _Size)
|
//bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int _number, u16 _channelID, const void* _pData, u32& _Size)
|
||||||
bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int, u16, const void*, u32&)
|
bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int, u16, const void*, u32&)
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lk(crit_netplay_ptr);
|
std::lock_guard<std::mutex> lk(crit_netplay_client);
|
||||||
|
|
||||||
if (netplay_ptr)
|
if (netplay_client)
|
||||||
//{
|
//{
|
||||||
// if (_Size >= RPT_SIZE_HACK)
|
// if (_Size >= RPT_SIZE_HACK)
|
||||||
// {
|
// {
|
||||||
|
@ -370,7 +311,7 @@ bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int, u16, const void*, u32&)
|
||||||
// }
|
// }
|
||||||
// else
|
// else
|
||||||
// {
|
// {
|
||||||
// netplay_ptr->WiimoteInput(_number, _channelID, _pData, _Size);
|
// netplay_client->WiimoteInput(_number, _channelID, _pData, _Size);
|
||||||
// // don't use this packet
|
// // don't use this packet
|
||||||
return true;
|
return true;
|
||||||
// }
|
// }
|
||||||
|
@ -379,7 +320,19 @@ bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int, u16, const void*, u32&)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
NetPlay* NetPlay::GetNetPlayPtr()
|
bool NetPlay::IsNetPlayRunning()
|
||||||
{
|
{
|
||||||
return netplay_ptr;
|
return netplay_client != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NetPlay_Enable(NetPlayClient* const np)
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lk(crit_netplay_client);
|
||||||
|
netplay_client = np;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NetPlay_Disable()
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lk(crit_netplay_client);
|
||||||
|
netplay_client = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,33 +50,32 @@ public:
|
||||||
|
|
||||||
extern NetSettings g_NetPlaySettings;
|
extern NetSettings g_NetPlaySettings;
|
||||||
|
|
||||||
class NetPlay
|
class NetPlayClient
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NetPlay(NetPlayUI* _dialog);
|
void ThreadFunc();
|
||||||
virtual ~NetPlay();
|
|
||||||
//virtual void ThreadFunc() = 0;
|
NetPlayClient(const std::string& address, const u16 port, NetPlayUI* dialog, const std::string& name);
|
||||||
|
~NetPlayClient();
|
||||||
|
|
||||||
|
void GetPlayerList(std::string& list, std::vector<int>& pid_list);
|
||||||
|
|
||||||
bool is_connected;
|
bool is_connected;
|
||||||
|
|
||||||
|
bool StartGame(const std::string &path);
|
||||||
|
bool StopGame();
|
||||||
|
bool ChangeGame(const std::string& game);
|
||||||
|
void SendChatMessage(const std::string& msg);
|
||||||
|
|
||||||
// Send and receive pads values
|
// Send and receive pads values
|
||||||
void WiimoteInput(int _number, u16 _channelID, const void* _pData, u32 _Size);
|
void WiimoteInput(int _number, u16 _channelID, const void* _pData, u32 _Size);
|
||||||
void WiimoteUpdate(int _number);
|
void WiimoteUpdate(int _number);
|
||||||
bool GetNetPads(const u8 pad_nb, const SPADStatus* const, NetPad* const netvalues);
|
bool GetNetPads(const u8 pad_nb, const SPADStatus* const, NetPad* const netvalues);
|
||||||
virtual bool ChangeGame(const std::string& game) = 0;
|
|
||||||
virtual void GetPlayerList(std::string& list, std::vector<int>& pid_list) = 0;
|
|
||||||
virtual void SendChatMessage(const std::string& msg) = 0;
|
|
||||||
|
|
||||||
virtual bool StartGame(const std::string &path);
|
|
||||||
virtual bool StopGame();
|
|
||||||
|
|
||||||
u8 GetPadNum(u8 numPAD);
|
u8 GetPadNum(u8 numPAD);
|
||||||
static NetPlay* GetNetPlayPtr();
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//void GetBufferedPad(const u8 pad_nb, NetPad* const netvalues);
|
|
||||||
void ClearBuffers();
|
void ClearBuffers();
|
||||||
virtual void SendPadState(const PadMapping local_nb, const NetPad& np) = 0;
|
|
||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
@ -116,26 +115,6 @@ protected:
|
||||||
Player* m_local_player;
|
Player* m_local_player;
|
||||||
|
|
||||||
u32 m_current_game;
|
u32 m_current_game;
|
||||||
};
|
|
||||||
|
|
||||||
void NetPlay_Enable(NetPlay* const np);
|
|
||||||
void NetPlay_Disable();
|
|
||||||
|
|
||||||
class NetPlayClient : public NetPlay
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
void ThreadFunc();
|
|
||||||
|
|
||||||
NetPlayClient(const std::string& address, const u16 port, NetPlayUI* dialog, const std::string& name);
|
|
||||||
~NetPlayClient();
|
|
||||||
|
|
||||||
void GetPlayerList(std::string& list, std::vector<int>& pid_list);
|
|
||||||
|
|
||||||
// Send and receive pads values
|
|
||||||
//bool GetNetPads(const u8 pad_nb, const SPADStatus* const, NetPad* const netvalues);
|
|
||||||
bool StartGame(const std::string &path);
|
|
||||||
bool ChangeGame(const std::string& game);
|
|
||||||
void SendChatMessage(const std::string& msg);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void SendPadState(const PadMapping local_nb, const NetPad& np);
|
void SendPadState(const PadMapping local_nb, const NetPad& np);
|
||||||
|
@ -145,4 +124,11 @@ private:
|
||||||
std::map<PlayerId, Player> m_players;
|
std::map<PlayerId, Player> m_players;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
namespace NetPlay {
|
||||||
|
bool IsNetPlayRunning();
|
||||||
|
};
|
||||||
|
|
||||||
|
void NetPlay_Enable(NetPlayClient* const np);
|
||||||
|
void NetPlay_Disable();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -7,6 +7,10 @@
|
||||||
// called from ---GUI--- thread
|
// called from ---GUI--- thread
|
||||||
NetPlayClient::~NetPlayClient()
|
NetPlayClient::~NetPlayClient()
|
||||||
{
|
{
|
||||||
|
// not perfect
|
||||||
|
if (m_is_running)
|
||||||
|
StopGame();
|
||||||
|
|
||||||
if (is_connected)
|
if (is_connected)
|
||||||
{
|
{
|
||||||
m_do_loop = false;
|
m_do_loop = false;
|
||||||
|
@ -15,8 +19,11 @@ NetPlayClient::~NetPlayClient()
|
||||||
}
|
}
|
||||||
|
|
||||||
// called from ---GUI--- thread
|
// called from ---GUI--- thread
|
||||||
NetPlayClient::NetPlayClient(const std::string& address, const u16 port, NetPlayUI* dialog, const std::string& name) : NetPlay(dialog)
|
NetPlayClient::NetPlayClient(const std::string& address, const u16 port, NetPlayUI* dialog, const std::string& name) : m_dialog(dialog), m_is_running(false), m_do_loop(true)
|
||||||
{
|
{
|
||||||
|
m_target_buffer_size = 20;
|
||||||
|
ClearBuffers();
|
||||||
|
|
||||||
is_connected = false;
|
is_connected = false;
|
||||||
|
|
||||||
// why is false successful? documentation says true is
|
// why is false successful? documentation says true is
|
||||||
|
@ -328,12 +335,31 @@ bool NetPlayClient::StartGame(const std::string &path)
|
||||||
spac << m_current_game;
|
spac << m_current_game;
|
||||||
spac << (char *)&g_NetPlaySettings;
|
spac << (char *)&g_NetPlaySettings;
|
||||||
|
|
||||||
if (false == NetPlay::StartGame(path))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
std::lock_guard<std::recursive_mutex> lks(m_crit.send);
|
std::lock_guard<std::recursive_mutex> lks(m_crit.send);
|
||||||
m_socket.Send(spac);
|
m_socket.Send(spac);
|
||||||
|
|
||||||
|
if (m_is_running)
|
||||||
|
{
|
||||||
|
PanicAlertT("Game is already running!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_dialog->AppendChat(" -- STARTING GAME -- ");
|
||||||
|
|
||||||
|
m_is_running = true;
|
||||||
|
NetPlay_Enable(this);
|
||||||
|
|
||||||
|
ClearBuffers();
|
||||||
|
|
||||||
|
// boot game
|
||||||
|
m_dialog->BootGame(path);
|
||||||
|
|
||||||
|
// temporary
|
||||||
|
NetWiimote nw;
|
||||||
|
for (unsigned int i = 0; i<4; ++i)
|
||||||
|
for (unsigned int f = 0; f<2; ++f)
|
||||||
|
m_wiimote_buffer[i].Push(nw);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue