consolodate NetworkEvents

This commit is contained in:
2025-05-02 00:48:29 -05:00
parent b4ac013f18
commit 6f322cadb8
8 changed files with 129 additions and 242 deletions

View File

@@ -1,55 +0,0 @@
#include "Archimedes.h"
#include <steam/steamnetworkingsockets.h>
#include <steam/isteamnetworkingutils.h>
namespace CMEvent {
class DataRecievedEvent : public Archimedes::Event {
public:
DataRecievedEvent() : msg(nullptr) {}
DataRecievedEvent(ISteamNetworkingMessage* m) : msg(m) {}
~DataRecievedEvent() {
if(msg)
msg->Release();
}
operator std::string() const override { return "CMEvent::DataRecievedEvent"; }
ISteamNetworkingMessage* msg;
};
class DataSentEvent : public Archimedes::Event {
public:
DataSentEvent() : msg(nullptr) {}
DataSentEvent(ISteamNetworkingMessage* m) : msg(m) {}
operator std::string() const override { return "CMEvent::DataSentEvent"; }
ISteamNetworkingMessage* msg;
};
class ConnectionStatusChangedEvent : public Archimedes::Event {
public:
ConnectionStatusChangedEvent() : info(nullptr) {}
ConnectionStatusChangedEvent(SteamNetConnectionStatusChangedCallback_t* i) : info(i) {}
operator std::string() const override { return "CMEvent::ConnectionStatusChangedEvent"; }
SteamNetConnectionStatusChangedCallback_t* info;
};
}

View File

@@ -6,9 +6,9 @@ ClientModule::ClientModule(Archimedes::App* a, void* h) : Archimedes::Module(a,
ClientModule::~ClientModule() {
if(app) {
app->unregisterEvent(CMEvent::DataRecievedEvent());
app->unregisterEvent(CMEvent::DataSentEvent());
app->unregisterEvent(CMEvent::ConnectionStatusChangedEvent());
app->unregisterEvent(Archimedes::DataRecievedEvent());
app->unregisterEvent(Archimedes::DataSentEvent());
app->unregisterEvent(Archimedes::ConnectionStatusChangedEvent());
GameNetworkingSockets_Kill();
}
@@ -16,9 +16,9 @@ ClientModule::~ClientModule() {
void ClientModule::onLoad() {
app->registerEvent(CMEvent::DataSentEvent());
app->registerEvent(CMEvent::DataRecievedEvent());
app->registerEvent(CMEvent::ConnectionStatusChangedEvent());
app->registerEvent(Archimedes::DataSentEvent());
app->registerEvent(Archimedes::DataRecievedEvent());
app->registerEvent(Archimedes::ConnectionStatusChangedEvent());
SteamDatagramErrMsg errMsg;
if ( !GameNetworkingSockets_Init( nullptr, errMsg ) ) {
@@ -62,9 +62,9 @@ bool ClientModule::onEvent(const Archimedes::Event& event) {
unsigned int type = app->getEventType(event);
if(eventsToHandle & CMEventEnum::ConnectionStatusChanged && type == app->getEventType(CMEvent::ConnectionStatusChangedEvent())) {
if(eventsToHandle & CMEventEnum::ConnectionStatusChanged && type == app->getEventType(Archimedes::ConnectionStatusChangedEvent())) {
CMEvent::ConnectionStatusChangedEvent& e = (CMEvent::ConnectionStatusChangedEvent&) event;
Archimedes::ConnectionStatusChangedEvent& e = (Archimedes::ConnectionStatusChangedEvent&) event;
switch(e.info->m_info.m_eState) {
@@ -114,9 +114,9 @@ bool ClientModule::onEvent(const Archimedes::Event& event) {
}
return true;
} else if(eventsToHandle & CMEventEnum::DataRecieved && type == app->getEventType(CMEvent::DataRecievedEvent())) {
} else if(eventsToHandle & CMEventEnum::DataRecieved && type == app->getEventType(Archimedes::DataRecievedEvent())) {
return true;
} else if(eventsToHandle & CMEventEnum::DataSent && type == app->getEventType(CMEvent::DataSentEvent())) {
} else if(eventsToHandle & CMEventEnum::DataSent && type == app->getEventType(Archimedes::DataSentEvent())) {
return true;
}
@@ -135,6 +135,6 @@ void ClientModule::pollIncomingData() {
assert( numMsgs == 1 && pIncomingMsg );
assert( pIncomingMsg->m_conn == connection );
app->emitEvent(new CMEvent::DataRecievedEvent(pIncomingMsg));
app->emitEvent(new Archimedes::DataRecievedEvent(pIncomingMsg));
}
}

View File

@@ -3,7 +3,7 @@
#include <steam/steamnetworkingsockets.h>
#include <steam/isteamnetworkingutils.h>
#include "ClientEvents.h"
#include "utils/Events/NetworkEvents.h"
class ClientModule : public Archimedes::Module {
@@ -25,7 +25,7 @@ class ClientModule : public Archimedes::Module {
void sendReliable(const void* data, uint32 byteCount) {
interface->SendMessageToConnection(connection, data, byteCount, k_nSteamNetworkingSend_Reliable, nullptr);
app->emitEvent(new Archimedes::DataSentEvent(data, byteCount));
}
bool isRunning() const { return running; }

View File

@@ -84,62 +84,5 @@ void ImguiModule::onLoad() {
}
bool ImguiModule::onEvent(const Archimedes::Event &event) {
/*
unsigned int type = app->getEventType(event);
ImGuiIO& io = ImGui::GetIO();
if(type == app->getEventType(Archimedes::WindowResizeEvent())) {
Archimedes::WindowResizeEvent& e = (Archimedes::WindowResizeEvent&) event;
io.DisplaySize = ImVec2(e.width, e.height);
return true;
} else if(type == app->getEventType(Archimedes::WindowKeyPressedEvent())) {
if(io.WantCaptureKeyboard) {
Archimedes::WindowKeyPressedEvent& e = (Archimedes::WindowKeyPressedEvent&) event;
io.KeysData[e.key].Down = true;
return true;
}
return false;
} else if(type == app->getEventType(Archimedes::WindowKeyReleasedEvent())) {
if(io.WantCaptureKeyboard) {
Archimedes::WindowKeyPressedEvent& e = (Archimedes::WindowKeyPressedEvent&) event;
io.KeysData[e.key].Down = false;
return true;
}
return false;
} else if(type == app->getEventType(Archimedes::WindowMouseButtonPressedEvent())) {
if(io.WantCaptureMouse) {
Archimedes::WindowMouseButtonPressedEvent& e = (Archimedes::WindowMouseButtonPressedEvent&) event;
io.MouseDown[e.button] = true;
return true;
} else
return false;
} else if(type == app->getEventType(Archimedes::WindowMouseButtonReleasedEvent())) {
if(io.WantCaptureMouse) {
Archimedes::WindowMouseButtonReleasedEvent& e = (Archimedes::WindowMouseButtonReleasedEvent&) event;
io.MouseDown[e.button] = false;
return true;
} else
return false;
return true;
} else if(type == app->getEventType(Archimedes::WindowScrollEvent())) {
if(io.WantCaptureMouse) {
Archimedes::WindowScrollEvent& e = (Archimedes::WindowScrollEvent&) event;
io.MouseWheel += e.dy;
io.MouseWheelH += e.dx;
return true;
} else
return false;
} else if(type == app->getEventType(Archimedes::WindowMouseMovedEvent())) {
if(io.WantSetMousePos) {
Archimedes::WindowMouseMovedEvent& e = (Archimedes::WindowMouseMovedEvent&) event;
io.MousePos = ImVec2(e.x, e.y);
return true;
} else
return false;
}
*/
return false;
}

View File

@@ -1,60 +0,0 @@
#include "Archimedes.h"
#include <steam/steamnetworkingsockets.h>
#include <steam/isteamnetworkingutils.h>
namespace SMEvent {
class DataRecievedEvent : public Archimedes::Event {
public:
DataRecievedEvent() : msg(nullptr) {}
~DataRecievedEvent() {
if(msg)
msg->Release();
}
DataRecievedEvent(ISteamNetworkingMessage* m) : msg(m) {}
operator std::string() const { return "SMEvent::DataRecievedEvent"; }
ISteamNetworkingMessage* msg;
};
class DataSentEvent : public Archimedes::Event {
public:
DataSentEvent() : msg(nullptr) {}
~DataSentEvent() {
if(msg)
msg->Release();
}
DataSentEvent(ISteamNetworkingMessage* m) : msg(m) {}
operator std::string() const { return "SMEvent::DataSentEvent"; }
ISteamNetworkingMessage* msg;
};
class ConnectionStatusChangedEvent : public Archimedes::Event {
public:
ConnectionStatusChangedEvent() : info(nullptr) {}
ConnectionStatusChangedEvent(SteamNetConnectionStatusChangedCallback_t* i) : info(i) {}
operator std::string() const { return "SMEvent::ConnectionStatusChangedEvent"; }
SteamNetConnectionStatusChangedCallback_t* info;
};
}

View File

@@ -2,17 +2,17 @@
WindowModule::~WindowModule() {
if(app) {
app->unregisterEvent(Archimedes::WindowResizeEvent());
app->unregisterEvent(Archimedes::WindowCloseEvent());
app->unregisterEvent(Archimedes::WindowKeyPressedEvent());
app->unregisterEvent(Archimedes::WindowKeyReleasedEvent());
app->unregisterEvent(Archimedes::WindowMouseButtonPressedEvent());
app->unregisterEvent(Archimedes::WindowMouseButtonReleasedEvent());
app->unregisterEvent(Archimedes::WindowScrollEvent());
app->unregisterEvent(Archimedes::WindowMouseMovedEvent());
app->unregisterEvent(Archimedes::WindowFocusedEvent());
app->unregisterEvent(Archimedes::WindowFocusLostEvent());
app->unregisterEvent(Archimedes::WindowMovedEvent());
app->unregisterEvent(Archimedes::ResizeWindowEvent());
app->unregisterEvent(Archimedes::CloseWindowEvent());
app->unregisterEvent(Archimedes::KeyPressedWindowEvent());
app->unregisterEvent(Archimedes::KeyReleasedWindowEvent());
app->unregisterEvent(Archimedes::MouseButtonPressedWindowEvent());
app->unregisterEvent(Archimedes::MouseButtonReleasedWindowEvent());
app->unregisterEvent(Archimedes::ScrollWindowEvent());
app->unregisterEvent(Archimedes::MouseMovedWindowEvent());
app->unregisterEvent(Archimedes::FocusedWindowEvent());
app->unregisterEvent(Archimedes::FocusLostWindowEvent());
app->unregisterEvent(Archimedes::MovedWindowEvent());
if(renderer) {
renderer->getCmdList().clear();
@@ -26,17 +26,17 @@ WindowModule::~WindowModule() {
void WindowModule::onLoad() {
app->registerEvent(Archimedes::WindowResizeEvent());
app->registerEvent(Archimedes::WindowCloseEvent());
app->registerEvent(Archimedes::WindowKeyPressedEvent());
app->registerEvent(Archimedes::WindowKeyReleasedEvent());
app->registerEvent(Archimedes::WindowMouseButtonPressedEvent());
app->registerEvent(Archimedes::WindowMouseButtonReleasedEvent());
app->registerEvent(Archimedes::WindowScrollEvent());
app->registerEvent(Archimedes::WindowMouseMovedEvent());
app->registerEvent(Archimedes::WindowFocusedEvent());
app->registerEvent(Archimedes::WindowFocusLostEvent());
app->registerEvent(Archimedes::WindowMovedEvent());
app->registerEvent(Archimedes::ResizeWindowEvent());
app->registerEvent(Archimedes::CloseWindowEvent());
app->registerEvent(Archimedes::KeyPressedWindowEvent());
app->registerEvent(Archimedes::KeyReleasedWindowEvent());
app->registerEvent(Archimedes::MouseButtonPressedWindowEvent());
app->registerEvent(Archimedes::MouseButtonReleasedWindowEvent());
app->registerEvent(Archimedes::ScrollWindowEvent());
app->registerEvent(Archimedes::MouseMovedWindowEvent());
app->registerEvent(Archimedes::FocusedWindowEvent());
app->registerEvent(Archimedes::FocusLostWindowEvent());
app->registerEvent(Archimedes::MovedWindowEvent());
renderer = new Archimedes::Renderer();
}
@@ -51,37 +51,37 @@ bool WindowModule::onEvent(const Archimedes::Event& e) {
unsigned int type = app->getEventType(e);
if(type == app->getEventType(Archimedes::WindowResizeEvent())) {
if(type == app->getEventType(Archimedes::ResizeWindowEvent())) {
window->getSize(renderer->w, renderer->h);
return true;
} else if(type == app->getEventType(Archimedes::WindowCloseEvent())) {
} else if(type == app->getEventType(Archimedes::CloseWindowEvent())) {
app->emitEvent(new Archimedes::DoUnloadModuleEvent(name));
return true;
} else if(type == app->getEventType(Archimedes::WindowKeyPressedEvent())) {
} else if(type == app->getEventType(Archimedes::KeyPressedWindowEvent())) {
return true;
} else if(type == app->getEventType(Archimedes::WindowKeyReleasedEvent())) {
} else if(type == app->getEventType(Archimedes::KeyReleasedWindowEvent())) {
return true;
} else if(type == app->getEventType(Archimedes::WindowMouseButtonPressedEvent())) {
} else if(type == app->getEventType(Archimedes::MouseButtonPressedWindowEvent())) {
return true;
} else if(type == app->getEventType(Archimedes::WindowMouseButtonReleasedEvent())) {
} else if(type == app->getEventType(Archimedes::MouseButtonReleasedWindowEvent())) {
return true;
} else if(type == app->getEventType(Archimedes::WindowScrollEvent())) {
} else if(type == app->getEventType(Archimedes::ScrollWindowEvent())) {
return true;
} else if(type == app->getEventType(Archimedes::WindowMouseMovedEvent())) {
} else if(type == app->getEventType(Archimedes::MouseMovedWindowEvent())) {
return true;
} else if(type == app->getEventType(Archimedes::WindowFocusedEvent())) {
} else if(type == app->getEventType(Archimedes::FocusedWindowEvent())) {
return true;
} else if(type == app->getEventType(Archimedes::WindowFocusLostEvent())) {
} else if(type == app->getEventType(Archimedes::FocusLostWindowEvent())) {
return true;
} else if(type == app->getEventType(Archimedes::WindowMovedEvent())) {
} else if(type == app->getEventType(Archimedes::MovedWindowEvent())) {
return true;
}