in_combat.cpp builds; entire repo builds

Doesn't mean I'm done yet.
This commit is contained in:
Kayne Ruse
2014-06-11 21:57:34 +10:00
parent 955aed2224
commit 13332bf3fc
3 changed files with 44 additions and 41 deletions
+41 -38
View File
@@ -85,11 +85,10 @@ void InCombat::FrameStart() {
} }
void InCombat::Update(double delta) { void InCombat::Update(double delta) {
SerialPacket packet; //suck in and process all waiting packets
char packetBuffer[MAX_PACKET_SIZE];
//suck in all waiting packets while(network.Receive(reinterpret_cast<SerialPacket*>(packetBuffer))) {
while(network.Receive(&packet)) { HandlePacket(reinterpret_cast<SerialPacket*>(packetBuffer));
HandlePacket(packet);
} }
//TODO: more //TODO: more
@@ -154,19 +153,19 @@ void InCombat::KeyUp(SDL_KeyboardEvent const& key) {
//Network handlers //Network handlers
//------------------------- //-------------------------
void InCombat::HandlePacket(SerialPacket packet) { void InCombat::HandlePacket(SerialPacket* const argPacket) {
switch(packet.meta.type) { switch(argPacket->type) {
case SerialPacket::Type::DISCONNECT: case SerialPacketType::DISCONNECT:
HandleDisconnect(packet); HandleDisconnect(argPacket);
break; break;
//handle errors //handle errors
default: default:
throw(std::runtime_error(std::string() + "Unknown SerialPacketType encountered in InCombat: " + to_string_custom(int(packet.meta.type)))); throw(std::runtime_error(std::string() + "Unknown SerialPacketType encountered in InCombat: " + to_string_custom(static_cast<int>(argPacket->type)) ));
break; break;
} }
} }
void InCombat::HandleDisconnect(SerialPacket) { void InCombat::HandleDisconnect(SerialPacket* const) {
SetNextScene(SceneList::RESTART); SetNextScene(SceneList::RESTART);
} }
@@ -177,52 +176,56 @@ void InCombat::HandleDisconnect(SerialPacket) {
//------------------------- //-------------------------
void InCombat::RequestSynchronize() { void InCombat::RequestSynchronize() {
SerialPacket packet; ClientPacket newPacket;
//request a sync //request a sync
packet.meta.type = SerialPacket::Type::SYNCHRONIZE; newPacket.type = SerialPacketType::SYNCHRONIZE;
packet.clientInfo.clientIndex = clientIndex; newPacket.clientIndex = clientIndex;
packet.clientInfo.accountIndex = accountIndex; newPacket.accountIndex = accountIndex;
packet.clientInfo.characterIndex = characterIndex;
network.SendTo(Channels::SERVER, &packet); network.SendTo(Channels::SERVER, &newPacket);
} }
void InCombat::SendPlayerUpdate() { void InCombat::SendPlayerUpdate() {
SerialPacket packet; CharacterPacket newPacket;
//pack the packet //pack the packet
packet.meta.type = SerialPacket::Type::CHARACTER_UPDATE; newPacket.type = SerialPacketType::CHARACTER_UPDATE;
packet.characterInfo.clientIndex = clientIndex;
packet.characterInfo.accountIndex = accountIndex;
packet.characterInfo.characterIndex = characterIndex;
// packet.characterInfo.position = localCharacter->position;
// packet.characterInfo.motion = localCharacter->motion;
//TODO: stats
network.SendTo(Channels::SERVER, &packet); newPacket.characterIndex = characterIndex;
//handle, avatar
newPacket.accountIndex = accountIndex;
// newPacket.roomIndex = localCharacter->roomIndex;
// newPacket.origin = localCharacter->origin;
// newPacket.motion = localCharacter->motion;
// newPacket.stats = localCharacter->stats;
//TODO: equipment
//TODO: items
//TODO: buffs
//TODO: debuffs
network.SendTo(Channels::SERVER, &newPacket);
} }
void InCombat::RequestDisconnect() { void InCombat::RequestDisconnect() {
SerialPacket packet; ClientPacket newPacket;
//send a disconnect request //send a disconnect request
packet.meta.type = SerialPacket::Type::DISCONNECT; newPacket.type = SerialPacketType::DISCONNECT;
packet.clientInfo.clientIndex = clientIndex; newPacket.clientIndex = clientIndex;
packet.clientInfo.accountIndex = accountIndex; newPacket.accountIndex = accountIndex;
packet.clientInfo.characterIndex = characterIndex;
network.SendTo(Channels::SERVER, &packet); network.SendTo(Channels::SERVER, &newPacket);
} }
void InCombat::RequestShutdown() { void InCombat::RequestShutdown() {
SerialPacket packet; ClientPacket newPacket;
//send a shutdown request //send a shutdown request
packet.meta.type = SerialPacket::Type::SHUTDOWN; newPacket.type = SerialPacketType::SHUTDOWN;
packet.clientInfo.clientIndex = clientIndex; newPacket.clientIndex = clientIndex;
packet.clientInfo.accountIndex = accountIndex; newPacket.accountIndex = accountIndex;
packet.clientInfo.characterIndex = characterIndex;
network.SendTo(Channels::SERVER, &packet); network.SendTo(Channels::SERVER, &newPacket);
} }
+2 -2
View File
@@ -73,8 +73,8 @@ protected:
void KeyUp(SDL_KeyboardEvent const&); void KeyUp(SDL_KeyboardEvent const&);
//Network handlers //Network handlers
void HandlePacket(SerialPacket); void HandlePacket(SerialPacket* const);
void HandleDisconnect(SerialPacket); void HandleDisconnect(SerialPacket* const);
//TODO: more network handlers //TODO: more network handlers
//Server control //Server control
+1 -1
View File
@@ -267,7 +267,7 @@ void InWorld::HandlePacket(SerialPacket* const argPacket) {
break; break;
//handle errors //handle errors
default: default:
throw(std::runtime_error(std::string() + "Unknown SerialPacketType encountered in InWorld: " + to_string_custom(int(argPacket->type)) )); throw(std::runtime_error(std::string() + "Unknown SerialPacketType encountered in InWorld: " + to_string_custom(static_cast<int>(argPacket->type)) ));
break; break;
} }
} }