diff --git a/client/scenes/in_world.cpp b/client/scenes/in_world.cpp index 3cf019f..e7942e1 100644 --- a/client/scenes/in_world.cpp +++ b/client/scenes/in_world.cpp @@ -427,22 +427,39 @@ void InWorld::HandleCharacterCreate(CharacterPacket* const argPacket) { } //implicity create and retrieve the entity - BaseCharacter& character = characterMap[argPacket->characterIndex]; + BaseCharacter* character = &characterMap[argPacket->characterIndex]; //fill the character's info - character.SetOrigin({0, 0}); - character.SetMotion({0, 0}); - character.SetBounds({CHARACTER_BOUNDS_X, CHARACTER_BOUNDS_Y, CHARACTER_BOUNDS_WIDTH, CHARACTER_BOUNDS_HEIGHT}); - character.SetHandle(argPacket->handle); - character.SetAvatar(argPacket->avatar); + character->SetOrigin({0, 0}); + character->SetMotion({0, 0}); + character->SetBounds({CHARACTER_BOUNDS_X, CHARACTER_BOUNDS_Y, CHARACTER_BOUNDS_WIDTH, CHARACTER_BOUNDS_HEIGHT}); + character->SetHandle(argPacket->handle); + character->SetAvatar(argPacket->avatar); + + //TODO: check for this player's character + + //TODO: setup the camera //debug std::cout << "Create, total: " << characterMap.size() << std::endl; } void InWorld::HandleCharacterDelete(CharacterPacket* const argPacket) { - //TODO: HandleCharacterDelete() - std::cout << "HandleCharacterDelete" << std::endl; + //ignore if this character doesn't exist + std::map::iterator characterIt = characterMap.find(argPacket->characterIndex); + if (characterIt == characterMap.end()) { + //debug + std::cout << "Ignoring character deletion" << std::endl; + return; + } + + //TODO: check for this player's character + + //remove this character + characterMap.erase(characterIt); + + //debug + std::cout << "Delete, total: " << characterMap.size() << std::endl; } void InWorld::HandleCharacterQueryExists(CharacterPacket* const argPacket) { diff --git a/server/server_util.cpp b/server/server_util.cpp index c5f1729..24ed80f 100644 --- a/server/server_util.cpp +++ b/server/server_util.cpp @@ -50,7 +50,7 @@ void ServerApplication::PumpPacket(SerialPacket* const argPacket) { //find that account's client //send the packet to that client //NOTE: this is perhaps too complex; I write it if I need it -*/} +}*/ //------------------------- //common copy methods