mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-17 10:59:20 +02:00
AnimModel.cpp reaches cParser through the simulation core, not a direct import, so the previous pass missed it; the propagation now follows the whole import closure. Train.cpp, drivermode.cpp and Globals.cpp call Console:: inside _WIN32 guards without importing eu07.console - invisible on Linux, where those blocks are skipped.
97 lines
1.9 KiB
C++
97 lines
1.9 KiB
C++
module;
|
|
#include <array>
|
|
#include <chrono>
|
|
#include <cstddef>
|
|
#include <limits>
|
|
#include <mutex>
|
|
#include <sstream>
|
|
#include <type_traits>
|
|
#include <utility>
|
|
#include <vector>
|
|
#include <deque>
|
|
#include <unordered_map>
|
|
#include <queue>
|
|
#include <cstdint>
|
|
#include <istream>
|
|
#include <memory>
|
|
#include <ostream>
|
|
#include <string>
|
|
|
|
export module eu07.network.message;
|
|
import eu07.input.command;
|
|
|
|
export {
|
|
|
|
namespace network
|
|
{
|
|
struct message
|
|
{
|
|
enum type_e
|
|
{
|
|
CLIENT_HELLO = 0,
|
|
SERVER_HELLO,
|
|
FRAME_INFO,
|
|
REQUEST_COMMAND,
|
|
TYPE_MAX
|
|
};
|
|
|
|
type_e type;
|
|
|
|
message(type_e t) : type(t) {}
|
|
virtual void serialize(std::ostream &stream) const {}
|
|
virtual void deserialize(std::istream &stream) {}
|
|
};
|
|
|
|
struct client_hello : public message
|
|
{
|
|
client_hello() : message(CLIENT_HELLO) {}
|
|
|
|
virtual void serialize(std::ostream &stream) const override;
|
|
virtual void deserialize(std::istream &stream) override;
|
|
|
|
int32_t version;
|
|
uint32_t start_packet;
|
|
};
|
|
|
|
struct server_hello : public message
|
|
{
|
|
server_hello() : message(SERVER_HELLO) {}
|
|
|
|
uint32_t seed;
|
|
int64_t timestamp;
|
|
int64_t config;
|
|
std::string scenario;
|
|
|
|
virtual void serialize(std::ostream &stream) const override;
|
|
virtual void deserialize(std::istream &stream) override;
|
|
};
|
|
|
|
struct request_command : public message
|
|
{
|
|
request_command(type_e type) : message(type) {}
|
|
request_command() : message(REQUEST_COMMAND) {}
|
|
|
|
command_queue::commands_map commands;
|
|
|
|
virtual void serialize(std::ostream &stream) const override;
|
|
virtual void deserialize(std::istream &stream) override;
|
|
};
|
|
|
|
struct frame_info : public request_command
|
|
{
|
|
frame_info() : request_command(FRAME_INFO) {}
|
|
|
|
double render_dt;
|
|
double dt;
|
|
double sync;
|
|
|
|
virtual void serialize(std::ostream &stream) const override;
|
|
virtual void deserialize(std::istream &stream) override;
|
|
};
|
|
|
|
std::shared_ptr<message> deserialize_message(std::istream &stream);
|
|
void serialize_message(const message &msg, std::ostream &stream);
|
|
} // namespace network
|
|
|
|
} // export
|