Merge branch 'char-add' into develop, characters working again
This commit is contained in:
+12
-4
@@ -128,7 +128,7 @@ void InWorld::RenderFrame() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void InWorld::Render(SDL_Surface* const screen) {
|
void InWorld::Render(SDL_Surface* const screen) {
|
||||||
//draw the map0
|
//draw the map
|
||||||
for (std::list<Region>::iterator it = regionPager.GetContainer()->begin(); it != regionPager.GetContainer()->end(); it++) {
|
for (std::list<Region>::iterator it = regionPager.GetContainer()->begin(); it != regionPager.GetContainer()->end(); it++) {
|
||||||
tileSheet.DrawRegionTo(screen, &(*it), camera.x, camera.y);
|
tileSheet.DrawRegionTo(screen, &(*it), camera.x, camera.y);
|
||||||
}
|
}
|
||||||
@@ -185,6 +185,7 @@ void InWorld::KeyDown(SDL_KeyboardEvent const& key) {
|
|||||||
case SDLK_LEFT:
|
case SDLK_LEFT:
|
||||||
if (localCharacter) {
|
if (localCharacter) {
|
||||||
localCharacter->motion.x -= CHARACTER_WALKING_SPEED;
|
localCharacter->motion.x -= CHARACTER_WALKING_SPEED;
|
||||||
|
localCharacter->CorrectSprite();
|
||||||
SendPlayerUpdate();
|
SendPlayerUpdate();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -192,6 +193,7 @@ void InWorld::KeyDown(SDL_KeyboardEvent const& key) {
|
|||||||
case SDLK_RIGHT:
|
case SDLK_RIGHT:
|
||||||
if (localCharacter) {
|
if (localCharacter) {
|
||||||
localCharacter->motion.x += CHARACTER_WALKING_SPEED;
|
localCharacter->motion.x += CHARACTER_WALKING_SPEED;
|
||||||
|
localCharacter->CorrectSprite();
|
||||||
SendPlayerUpdate();
|
SendPlayerUpdate();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -199,6 +201,7 @@ void InWorld::KeyDown(SDL_KeyboardEvent const& key) {
|
|||||||
case SDLK_UP:
|
case SDLK_UP:
|
||||||
if (localCharacter) {
|
if (localCharacter) {
|
||||||
localCharacter->motion.y -= CHARACTER_WALKING_SPEED;
|
localCharacter->motion.y -= CHARACTER_WALKING_SPEED;
|
||||||
|
localCharacter->CorrectSprite();
|
||||||
SendPlayerUpdate();
|
SendPlayerUpdate();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -206,6 +209,7 @@ void InWorld::KeyDown(SDL_KeyboardEvent const& key) {
|
|||||||
case SDLK_DOWN:
|
case SDLK_DOWN:
|
||||||
if (localCharacter) {
|
if (localCharacter) {
|
||||||
localCharacter->motion.y += CHARACTER_WALKING_SPEED;
|
localCharacter->motion.y += CHARACTER_WALKING_SPEED;
|
||||||
|
localCharacter->CorrectSprite();
|
||||||
SendPlayerUpdate();
|
SendPlayerUpdate();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -218,6 +222,7 @@ void InWorld::KeyUp(SDL_KeyboardEvent const& key) {
|
|||||||
case SDLK_LEFT:
|
case SDLK_LEFT:
|
||||||
if (localCharacter) {
|
if (localCharacter) {
|
||||||
localCharacter->motion.x += CHARACTER_WALKING_SPEED;
|
localCharacter->motion.x += CHARACTER_WALKING_SPEED;
|
||||||
|
localCharacter->CorrectSprite();
|
||||||
SendPlayerUpdate();
|
SendPlayerUpdate();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -225,6 +230,7 @@ void InWorld::KeyUp(SDL_KeyboardEvent const& key) {
|
|||||||
case SDLK_RIGHT:
|
case SDLK_RIGHT:
|
||||||
if (localCharacter) {
|
if (localCharacter) {
|
||||||
localCharacter->motion.x -= CHARACTER_WALKING_SPEED;
|
localCharacter->motion.x -= CHARACTER_WALKING_SPEED;
|
||||||
|
localCharacter->CorrectSprite();
|
||||||
SendPlayerUpdate();
|
SendPlayerUpdate();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -232,6 +238,7 @@ void InWorld::KeyUp(SDL_KeyboardEvent const& key) {
|
|||||||
case SDLK_UP:
|
case SDLK_UP:
|
||||||
if (localCharacter) {
|
if (localCharacter) {
|
||||||
localCharacter->motion.y += CHARACTER_WALKING_SPEED;
|
localCharacter->motion.y += CHARACTER_WALKING_SPEED;
|
||||||
|
localCharacter->CorrectSprite();
|
||||||
SendPlayerUpdate();
|
SendPlayerUpdate();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -239,6 +246,7 @@ void InWorld::KeyUp(SDL_KeyboardEvent const& key) {
|
|||||||
case SDLK_DOWN:
|
case SDLK_DOWN:
|
||||||
if (localCharacter) {
|
if (localCharacter) {
|
||||||
localCharacter->motion.y -= CHARACTER_WALKING_SPEED;
|
localCharacter->motion.y -= CHARACTER_WALKING_SPEED;
|
||||||
|
localCharacter->CorrectSprite();
|
||||||
SendPlayerUpdate();
|
SendPlayerUpdate();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -297,11 +305,11 @@ void InWorld::HandleCharacterNew(CharacterPacket* const argPacket) {
|
|||||||
character.CorrectSprite();
|
character.CorrectSprite();
|
||||||
|
|
||||||
//catch this client's player object
|
//catch this client's player object
|
||||||
if (argPacket->characterIndex == characterIndex && !localCharacter) {
|
if (argPacket->accountIndex == accountIndex && !localCharacter) {
|
||||||
|
characterIndex = argPacket->characterIndex;
|
||||||
localCharacter = &character;
|
localCharacter = &character;
|
||||||
|
|
||||||
//setup the camera
|
//setup the camera
|
||||||
//TODO: can't change the screen size?
|
|
||||||
camera.width = GetScreen()->w;
|
camera.width = GetScreen()->w;
|
||||||
camera.height = GetScreen()->h;
|
camera.height = GetScreen()->h;
|
||||||
|
|
||||||
@@ -330,7 +338,7 @@ void InWorld::HandleCharacterUpdate(CharacterPacket* const argPacket) {
|
|||||||
|
|
||||||
CharacterData& character = characterMap[argPacket->characterIndex];
|
CharacterData& character = characterMap[argPacket->characterIndex];
|
||||||
|
|
||||||
//TODO: review this
|
//other characters moving
|
||||||
if (argPacket->characterIndex != characterIndex) {
|
if (argPacket->characterIndex != characterIndex) {
|
||||||
character.roomIndex = argPacket->roomIndex;
|
character.roomIndex = argPacket->roomIndex;
|
||||||
character.origin = argPacket->origin;
|
character.origin = argPacket->origin;
|
||||||
|
|||||||
@@ -238,5 +238,11 @@ void LobbyMenu::HandleJoinResponse(ClientPacket* const argPacket) {
|
|||||||
network.Bind(&argPacket->srcAddress, Channels::SERVER);
|
network.Bind(&argPacket->srcAddress, Channels::SERVER);
|
||||||
SetNextScene(SceneList::INWORLD);
|
SetNextScene(SceneList::INWORLD);
|
||||||
|
|
||||||
//TODO: send this player's character info
|
//send this player's character info
|
||||||
|
CharacterPacket newPacket;
|
||||||
|
newPacket.type = SerialPacketType::CHARACTER_NEW;
|
||||||
|
strncpy(newPacket.handle, config["client.handle"].c_str(), PACKET_STRING_SIZE);
|
||||||
|
strncpy(newPacket.avatar, config["client.avatar"].c_str(), PACKET_STRING_SIZE);
|
||||||
|
newPacket.accountIndex = accountIndex;
|
||||||
|
network.SendTo(Channels::SERVER, &newPacket);
|
||||||
}
|
}
|
||||||
@@ -53,6 +53,9 @@ MainMenu::MainMenu(ConfigUtility* const argConfig):
|
|||||||
startButton.SetText("Start");
|
startButton.SetText("Start");
|
||||||
optionsButton.SetText("Options");
|
optionsButton.SetText("Options");
|
||||||
quitButton.SetText("Quit");
|
quitButton.SetText("Quit");
|
||||||
|
|
||||||
|
//debug
|
||||||
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
MainMenu::~MainMenu() {
|
MainMenu::~MainMenu() {
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
struct CombatData {
|
struct CombatData {
|
||||||
enum class Terrain {
|
enum class Terrain {
|
||||||
//TODO: types of terrains
|
//TODO: types of combat terrains
|
||||||
NONE = 0,
|
NONE = 0,
|
||||||
GRASSLANDS,
|
GRASSLANDS,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -30,8 +30,8 @@
|
|||||||
|
|
||||||
#include "SDL/SDL_net.h"
|
#include "SDL/SDL_net.h"
|
||||||
|
|
||||||
#define NETWORK_VERSION 20140607
|
constexpr int NETWORK_VERSION = 20140607;
|
||||||
#define PACKET_STRING_SIZE 100
|
constexpr int PACKET_STRING_SIZE = 100;
|
||||||
|
|
||||||
struct SerialPacketBase {
|
struct SerialPacketBase {
|
||||||
//members
|
//members
|
||||||
|
|||||||
@@ -73,7 +73,6 @@ void serializePacket(SerialPacketBase* packet, void* buffer) {
|
|||||||
case SerialPacketType::COMBAT_DELETE:
|
case SerialPacketType::COMBAT_DELETE:
|
||||||
case SerialPacketType::COMBAT_UPDATE:
|
case SerialPacketType::COMBAT_UPDATE:
|
||||||
|
|
||||||
//TODO: is this the best fit?
|
|
||||||
case SerialPacketType::COMBAT_ENTER_REQUEST:
|
case SerialPacketType::COMBAT_ENTER_REQUEST:
|
||||||
case SerialPacketType::COMBAT_ENTER_RESPONSE:
|
case SerialPacketType::COMBAT_ENTER_RESPONSE:
|
||||||
case SerialPacketType::COMBAT_EXIT_REQUEST:
|
case SerialPacketType::COMBAT_EXIT_REQUEST:
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ void serializeClient(ClientPacket* packet, void* buffer) {
|
|||||||
|
|
||||||
SERIALIZE(buffer, &packet->clientIndex, sizeof(int));
|
SERIALIZE(buffer, &packet->clientIndex, sizeof(int));
|
||||||
SERIALIZE(buffer, &packet->accountIndex, sizeof(int));
|
SERIALIZE(buffer, &packet->accountIndex, sizeof(int));
|
||||||
SERIALIZE(buffer, &packet->username, sizeof(PACKET_STRING_SIZE));
|
SERIALIZE(buffer, &packet->username, PACKET_STRING_SIZE);
|
||||||
// SERIALIZE(buffer, &packet->password, sizeof(PACKET_STRING_SIZE));
|
// SERIALIZE(buffer, &packet->password, PACKET_STRING_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void deserializeClient(ClientPacket* packet, void* buffer) {
|
void deserializeClient(ClientPacket* packet, void* buffer) {
|
||||||
@@ -37,6 +37,6 @@ void deserializeClient(ClientPacket* packet, void* buffer) {
|
|||||||
|
|
||||||
DESERIALIZE(buffer, &packet->clientIndex, sizeof(int));
|
DESERIALIZE(buffer, &packet->clientIndex, sizeof(int));
|
||||||
DESERIALIZE(buffer, &packet->accountIndex, sizeof(int));
|
DESERIALIZE(buffer, &packet->accountIndex, sizeof(int));
|
||||||
DESERIALIZE(buffer, &packet->username, sizeof(PACKET_STRING_SIZE));
|
DESERIALIZE(buffer, &packet->username, PACKET_STRING_SIZE);
|
||||||
// DESERIALIZE(buffer, &packet->password, sizeof(PACKET_STRING_SIZE));
|
// DESERIALIZE(buffer, &packet->password, PACKET_STRING_SIZE);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#MKDIR=mkdir
|
#MKDIR=mkdir
|
||||||
#RM=del /y
|
#RM=del /y
|
||||||
|
|
||||||
CXXFLAGS+=-static-libgcc -static-libstdc++ -g
|
CXXFLAGS+=-static-libgcc -static-libstdc++
|
||||||
|
|
||||||
export
|
export
|
||||||
|
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ void ServerApplication::HandleBroadcastRequest(SerialPacket* const argPacket) {
|
|||||||
ServerPacket newPacket;
|
ServerPacket newPacket;
|
||||||
|
|
||||||
newPacket.type = SerialPacketType::BROADCAST_RESPONSE;
|
newPacket.type = SerialPacketType::BROADCAST_RESPONSE;
|
||||||
snprintf(newPacket.name, PACKET_STRING_SIZE, "%s", config["server.name"].c_str());
|
strncpy(newPacket.name, config["server.name"].c_str(), PACKET_STRING_SIZE);
|
||||||
newPacket.playerCount = characterMgr.GetContainer()->size();
|
newPacket.playerCount = characterMgr.GetContainer()->size();
|
||||||
newPacket.version = NETWORK_VERSION;
|
newPacket.version = NETWORK_VERSION;
|
||||||
|
|
||||||
@@ -338,7 +338,8 @@ void ServerApplication::HandleRegionRequest(RegionPacket* const argPacket) {
|
|||||||
//-------------------------
|
//-------------------------
|
||||||
|
|
||||||
void ServerApplication::HandleCharacterNew(CharacterPacket* const argPacket) {
|
void ServerApplication::HandleCharacterNew(CharacterPacket* const argPacket) {
|
||||||
int characterIndex = characterMgr.CreateCharacter(argPacket->accountIndex, argPacket->handle, argPacket->avatar);
|
//NOTE: misnomer, try to load the character first
|
||||||
|
int characterIndex = characterMgr.LoadCharacter(argPacket->accountIndex, argPacket->handle, argPacket->avatar);
|
||||||
|
|
||||||
if (characterIndex == -1) {
|
if (characterIndex == -1) {
|
||||||
//TODO: rejection packet
|
//TODO: rejection packet
|
||||||
@@ -478,8 +479,8 @@ void ServerApplication::CopyCharacterToPacket(CharacterPacket* const packet, int
|
|||||||
|
|
||||||
//TODO: keep this up to date when the character changes
|
//TODO: keep this up to date when the character changes
|
||||||
packet->characterIndex = characterIndex;
|
packet->characterIndex = characterIndex;
|
||||||
snprintf(packet->handle, PACKET_STRING_SIZE, "%s", character->handle.c_str());
|
strncpy(packet->handle, character->handle.c_str(), PACKET_STRING_SIZE);
|
||||||
snprintf(packet->avatar, PACKET_STRING_SIZE, "%s", character->avatar.c_str());
|
strncpy(packet->avatar, character->avatar.c_str(), PACKET_STRING_SIZE);
|
||||||
packet->accountIndex = character->owner;
|
packet->accountIndex = character->owner;
|
||||||
packet->roomIndex = character->roomIndex;
|
packet->roomIndex = character->roomIndex;
|
||||||
packet->origin = character->origin;
|
packet->origin = character->origin;
|
||||||
|
|||||||
Reference in New Issue
Block a user