Project builds, but with a lot of logic dummied out

This commit is contained in:
Kayne Ruse
2014-11-16 23:16:21 +11:00
parent ace87b438b
commit 9329274866
2 changed files with 56 additions and 38 deletions
+56 -37
View File
@@ -67,15 +67,15 @@ InWorld::InWorld(int* const argClientIndex, int* const argAccountIndex):
tileSheet.Load(config["dir.tilesets"] + "overworld.bmp", 32, 32); tileSheet.Load(config["dir.tilesets"] + "overworld.bmp", 32, 32);
//send this player's character info //send this player's character info
CharacterPacket newPacket; // CharacterPacket newPacket;
newPacket.type = SerialPacketType::CHARACTER_NEW; // newPacket.type = SerialPacketType::CHARACTER_NEW;
strncpy(newPacket.handle, config["client.handle"].c_str(), PACKET_STRING_SIZE); // strncpy(newPacket.handle, config["client.handle"].c_str(), PACKET_STRING_SIZE);
strncpy(newPacket.avatar, config["client.avatar"].c_str(), PACKET_STRING_SIZE); // strncpy(newPacket.avatar, config["client.avatar"].c_str(), PACKET_STRING_SIZE);
newPacket.accountIndex = accountIndex; // newPacket.accountIndex = accountIndex;
network.SendTo(Channels::SERVER, &newPacket); // network.SendTo(Channels::SERVER, &newPacket);
//request a sync //request a sync
RequestSynchronize(); // RequestSynchronize();
//debug //debug
// //
@@ -288,30 +288,55 @@ void InWorld::KeyUp(SDL_KeyboardEvent const& key) {
void InWorld::HandlePacket(SerialPacket* const argPacket) { void InWorld::HandlePacket(SerialPacket* const argPacket) {
switch(argPacket->type) { switch(argPacket->type) {
case SerialPacketType::PING: //heartbeat system
HandlePing(static_cast<ServerPacket*>(argPacket)); case SerialPacketType::PING: {
ServerPacket newPacket;
newPacket.type = SerialPacketType::PONG;
network.SendTo(argPacket->srcAddress, &newPacket);
}
break; break;
case SerialPacketType::PONG: case SerialPacketType::PONG:
HandlePong(static_cast<ServerPacket*>(argPacket)); // HandlePong(static_cast<ServerPacket*>(argPacket));
break; break;
case SerialPacketType::DISCONNECT:
HandleDisconnect(static_cast<ClientPacket*>(argPacket)); //game server connections
case SerialPacketType::LOGOUT_RESPONSE:
// HandleLogoutResponse(static_cast<ClientPacket*>(argPacket));
break; break;
case SerialPacketType::CHARACTER_NEW: case SerialPacketType::DISCONNECT_REQUEST:
HandleCharacterNew(static_cast<CharacterPacket*>(argPacket)); // HandleDisconnectRequest(static_cast<ClientPacket*>(argPacket));
break; break;
case SerialPacketType::CHARACTER_DELETE: case SerialPacketType::DISCONNECT_FORCED:
HandleCharacterDelete(static_cast<CharacterPacket*>(argPacket)); // HandleDisconnectForced(static_cast<ClientPacket*>(argPacket));
break;
case SerialPacketType::CHARACTER_UPDATE:
HandleCharacterUpdate(static_cast<CharacterPacket*>(argPacket));
break;
case SerialPacketType::CHARACTER_REJECTION:
HandleCharacterRejection(static_cast<TextPacket*>(argPacket));
break; break;
//data management
case SerialPacketType::REGION_CONTENT: case SerialPacketType::REGION_CONTENT:
HandleRegionContent(static_cast<RegionPacket*>(argPacket)); // HandleRegionContent(static_cast<RegionPacket*>(argPacket));
break; break;
// case SerialPacketType::QUERY_CHARACTER_EXISTS:
// case SerialPacketType::QUERY_CHARACTER_STATS:
// case SerialPacketType::QUERY_CHARACTER_LOCATION:
//character management
// case SerialPacketType::CHARACTER_NEW:
// HandleCharacterNew(static_cast<CharacterPacket*>(argPacket));
// break;
// case SerialPacketType::CHARACTER_DELETE:
// HandleCharacterDelete(static_cast<CharacterPacket*>(argPacket));
// break;
// case SerialPacketType::CHARACTER_UPDATE:
// HandleCharacterUpdate(static_cast<CharacterPacket*>(argPacket));
// break;
// case SerialPacketType::CHARACTER_REJECTION:
// HandleCharacterRejection(static_cast<TextPacket*>(argPacket));
// break;
//enemy management
//TODO: enemy management
//TODO: text
//handle errors //handle errors
default: default:
throw(std::runtime_error(std::string() + "Unknown SerialPacketType encountered in InWorld: " + to_string_custom(static_cast<int>(argPacket->type)) )); throw(std::runtime_error(std::string() + "Unknown SerialPacketType encountered in InWorld: " + to_string_custom(static_cast<int>(argPacket->type)) ));
@@ -319,12 +344,6 @@ void InWorld::HandlePacket(SerialPacket* const argPacket) {
} }
} }
void InWorld::HandlePing(ServerPacket* const argPacket) {
ServerPacket newPacket;
newPacket.type = SerialPacketType::PONG;
network.SendTo(argPacket->srcAddress, &newPacket);
}
void InWorld::HandlePong(ServerPacket* const argPacket) { void InWorld::HandlePong(ServerPacket* const argPacket) {
if (network.GetIPAddress(Channels::SERVER)->host != argPacket->srcAddress.host) { if (network.GetIPAddress(Channels::SERVER)->host != argPacket->srcAddress.host) {
throw(std::runtime_error("Heartbeat message received from an unknown source")); throw(std::runtime_error("Heartbeat message received from an unknown source"));
@@ -434,23 +453,23 @@ void InWorld::HandleRegionContent(RegionPacket* const argPacket) {
//------------------------- //-------------------------
void InWorld::RequestSynchronize() { void InWorld::RequestSynchronize() {
ClientPacket newPacket; // ClientPacket newPacket;
//request a sync //request a sync
newPacket.type = SerialPacketType::SYNCHRONIZE; // newPacket.type = SerialPacketType::SYNCHRONIZE;
newPacket.clientIndex = clientIndex; // newPacket.clientIndex = clientIndex;
newPacket.accountIndex = accountIndex; // newPacket.accountIndex = accountIndex;
//TODO: location, range for sync request //TODO: location, range for sync request
network.SendTo(Channels::SERVER, &newPacket); // network.SendTo(Channels::SERVER, &newPacket);
} }
void InWorld::SendPlayerUpdate() { void InWorld::SendPlayerUpdate() {
CharacterPacket newPacket; CharacterPacket newPacket;
//pack the packet //pack the packet
newPacket.type = SerialPacketType::CHARACTER_UPDATE; // newPacket.type = SerialPacketType::CHARACTER_UPDATE;
newPacket.characterIndex = characterIndex; newPacket.characterIndex = characterIndex;
//NOTE: omitting the handle and avatar here //NOTE: omitting the handle and avatar here
@@ -469,7 +488,7 @@ void InWorld::RequestDisconnect() {
ClientPacket newPacket; ClientPacket newPacket;
//send a disconnect request //send a disconnect request
newPacket.type = SerialPacketType::DISCONNECT; newPacket.type = SerialPacketType::DISCONNECT_REQUEST;
newPacket.clientIndex = clientIndex; newPacket.clientIndex = clientIndex;
newPacket.accountIndex = accountIndex; newPacket.accountIndex = accountIndex;
@@ -480,7 +499,7 @@ void InWorld::RequestShutDown() {
ClientPacket newPacket; ClientPacket newPacket;
//send a shutdown request //send a shutdown request
newPacket.type = SerialPacketType::SHUTDOWN; newPacket.type = SerialPacketType::SHUTDOWN_REQUEST;
newPacket.clientIndex = clientIndex; newPacket.clientIndex = clientIndex;
newPacket.accountIndex = accountIndex; newPacket.accountIndex = accountIndex;
-1
View File
@@ -73,7 +73,6 @@ protected:
//Network handlers //Network handlers
void HandlePacket(SerialPacket* const); void HandlePacket(SerialPacket* const);
void HandlePing(ServerPacket* const);
void HandlePong(ServerPacket* const); void HandlePong(ServerPacket* const);
void HandleDisconnect(ClientPacket* const); void HandleDisconnect(ClientPacket* const);
void HandleCharacterNew(CharacterPacket* const); void HandleCharacterNew(CharacterPacket* const);