mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-18 00:49:19 +02:00
work
This commit is contained in:
10
Globals.cpp
10
Globals.cpp
@@ -768,6 +768,16 @@ global_settings::ConfigParse(cParser &Parser) {
|
|||||||
Parser.getTokens(1);
|
Parser.getTokens(1);
|
||||||
Parser >> python_mipmaps;
|
Parser >> python_mipmaps;
|
||||||
}
|
}
|
||||||
|
else if (token == "network.enabled")
|
||||||
|
{
|
||||||
|
Parser.getTokens(1);
|
||||||
|
Parser >> network_conf.enabled;
|
||||||
|
}
|
||||||
|
else if (token == "network.server")
|
||||||
|
{
|
||||||
|
Parser.getTokens(1);
|
||||||
|
Parser >> network_conf.is_server;
|
||||||
|
}
|
||||||
} while ((token != "") && (token != "endconfig")); //(!Parser->EndOfFile)
|
} while ((token != "") && (token != "endconfig")); //(!Parser->EndOfFile)
|
||||||
// na koniec trochę zależności
|
// na koniec trochę zależności
|
||||||
if (!bLoadTraction) // wczytywanie drutów i słupów
|
if (!bLoadTraction) // wczytywanie drutów i słupów
|
||||||
|
|||||||
@@ -194,6 +194,11 @@ struct global_settings {
|
|||||||
bool gfx_shadergamma = false;
|
bool gfx_shadergamma = false;
|
||||||
bool gfx_usegles = false;
|
bool gfx_usegles = false;
|
||||||
|
|
||||||
|
struct network_conf_t {
|
||||||
|
bool enabled = false;
|
||||||
|
bool is_server;
|
||||||
|
} network_conf;
|
||||||
|
|
||||||
// methods
|
// methods
|
||||||
void LoadIniFile( std::string asFileName );
|
void LoadIniFile( std::string asFileName );
|
||||||
void ConfigParse( cParser &parser );
|
void ConfigParse( cParser &parser );
|
||||||
|
|||||||
@@ -177,7 +177,8 @@ eu07_application::run() {
|
|||||||
|
|
||||||
Timer::subsystem.mainloop_total.stop();
|
Timer::subsystem.mainloop_total.stop();
|
||||||
|
|
||||||
m_network->poll();
|
if (Global.network_conf.enabled)
|
||||||
|
m_network->poll();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -592,6 +593,14 @@ eu07_application::init_modes() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool eu07_application::init_network() {
|
bool eu07_application::init_network() {
|
||||||
|
if (!Global.network_conf.enabled)
|
||||||
|
return true;
|
||||||
|
|
||||||
m_network.emplace();
|
m_network.emplace();
|
||||||
|
if (Global.network_conf.is_server)
|
||||||
|
m_network->create_server();
|
||||||
|
else
|
||||||
|
m_network->connect();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
network::manager::manager()
|
network::manager::manager()
|
||||||
{
|
{
|
||||||
create_server();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void network::manager::create_server()
|
void network::manager::create_server()
|
||||||
@@ -18,5 +17,5 @@ void network::manager::poll()
|
|||||||
|
|
||||||
void network::manager::connect()
|
void network::manager::connect()
|
||||||
{
|
{
|
||||||
|
client = std::make_shared<tcp_client>(io_context);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace network
|
|||||||
{
|
{
|
||||||
asio::io_context io_context;
|
asio::io_context io_context;
|
||||||
std::vector<std::shared_ptr<server>> servers;
|
std::vector<std::shared_ptr<server>> servers;
|
||||||
//std::shared_ptr<client> client;
|
std::shared_ptr<network::client> client;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
manager();
|
manager();
|
||||||
|
|||||||
@@ -31,7 +31,5 @@ namespace network
|
|||||||
|
|
||||||
class client
|
class client
|
||||||
{
|
{
|
||||||
protected:
|
|
||||||
std::shared_ptr<connection> srv;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,3 +112,25 @@ void network::tcp_server::handle_accept(std::shared_ptr<tcp_conn> conn, const as
|
|||||||
|
|
||||||
accept_conn();
|
accept_conn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
network::tcp_client::tcp_client(asio::io_context &io_ctx)
|
||||||
|
{
|
||||||
|
conn = std::make_shared<tcp_conn>(io_ctx);
|
||||||
|
|
||||||
|
asio::ip::tcp::endpoint endpoint(
|
||||||
|
asio::ip::address::from_string("127.0.0.1"), 7424);
|
||||||
|
conn->socket().async_connect(endpoint,
|
||||||
|
std::bind(&tcp_client::handle_accept, this, std::placeholders::_1));
|
||||||
|
}
|
||||||
|
|
||||||
|
void network::tcp_client::handle_accept(const asio::error_code &err)
|
||||||
|
{
|
||||||
|
if (!err)
|
||||||
|
{
|
||||||
|
conn->connected();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
WriteLog(std::string("net: failed to connect: " + err.message()), logtype::net);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -43,4 +43,14 @@ namespace network
|
|||||||
|
|
||||||
asio::ip::tcp::acceptor m_acceptor;
|
asio::ip::tcp::acceptor m_acceptor;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class tcp_client : public client
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
std::shared_ptr<tcp_conn> conn;
|
||||||
|
void handle_accept(const asio::error_code &err);
|
||||||
|
|
||||||
|
public:
|
||||||
|
tcp_client(asio::io_context &io_ctx);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user