Hammered out server-side issues, read more
* Removed the client-only code from CharacterData, including the .cpp file * Removed CombatManager and EnemyManager instanciation
This commit is contained in:
@@ -34,7 +34,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
//TODO: encapsulate this
|
//TODO: encapsulate this and the server version
|
||||||
struct CharacterData {
|
struct CharacterData {
|
||||||
//metadata
|
//metadata
|
||||||
int owner;
|
int owner;
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
* This class needs a rewrite.
|
* This class needs a rewrite.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
//TODO: This thing is fucking terrible, fix it and the button class
|
||||||
class MenuBar {
|
class MenuBar {
|
||||||
public:
|
public:
|
||||||
MenuBar() = default;
|
MenuBar() = default;
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
/* Copyright: (c) Kayne Ruse 2014
|
|
||||||
*
|
|
||||||
* This software is provided 'as-is', without any express or implied
|
|
||||||
* warranty. In no event will the authors be held liable for any damages
|
|
||||||
* arising from the use of this software.
|
|
||||||
*
|
|
||||||
* Permission is granted to anyone to use this software for any purpose,
|
|
||||||
* including commercial applications, and to alter it and redistribute it
|
|
||||||
* freely, subject to the following restrictions:
|
|
||||||
*
|
|
||||||
* 1. The origin of this software must not be misrepresented; you must not
|
|
||||||
* claim that you wrote the original software. If you use this software
|
|
||||||
* in a product, an acknowledgment in the product documentation would be
|
|
||||||
* appreciated but is not required.
|
|
||||||
*
|
|
||||||
* 2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
* misrepresented as being the original software.
|
|
||||||
*
|
|
||||||
* 3. This notice may not be removed or altered from any source
|
|
||||||
* distribution.
|
|
||||||
*/
|
|
||||||
#include "character_data.hpp"
|
|
||||||
|
|
||||||
void CharacterData::Update(double delta) {
|
|
||||||
if (motion.x && motion.y) {
|
|
||||||
origin += motion * delta * CHARACTER_WALKING_MOD;
|
|
||||||
}
|
|
||||||
else if (motion != 0) {
|
|
||||||
origin += motion * delta;
|
|
||||||
}
|
|
||||||
#ifdef GRAPHICS
|
|
||||||
sprite.Update(delta);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef GRAPHICS
|
|
||||||
|
|
||||||
void CharacterData::DrawTo(SDL_Surface* const dest, int camX, int camY) {
|
|
||||||
sprite.DrawTo(dest, origin.x - camX, origin.y - camY);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CharacterData::CorrectSprite() {
|
|
||||||
//NOTE: These must correspond to the sprite sheet in use
|
|
||||||
if (motion.y > 0) {
|
|
||||||
sprite.SetYIndex(0);
|
|
||||||
}
|
|
||||||
else if (motion.y < 0) {
|
|
||||||
sprite.SetYIndex(1);
|
|
||||||
}
|
|
||||||
else if (motion.x > 0) {
|
|
||||||
sprite.SetYIndex(3);
|
|
||||||
}
|
|
||||||
else if (motion.x < 0) {
|
|
||||||
sprite.SetYIndex(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
//animation
|
|
||||||
if (motion != 0) {
|
|
||||||
sprite.SetDelay(0.1);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
sprite.SetDelay(0);
|
|
||||||
sprite.SetXIndex(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -22,26 +22,15 @@
|
|||||||
#ifndef CHARACTERDATA_HPP_
|
#ifndef CHARACTERDATA_HPP_
|
||||||
#define CHARACTERDATA_HPP_
|
#define CHARACTERDATA_HPP_
|
||||||
|
|
||||||
|
//components
|
||||||
|
#include "character_defines.hpp"
|
||||||
#include "vector2.hpp"
|
#include "vector2.hpp"
|
||||||
#include "statistics.hpp"
|
#include "statistics.hpp"
|
||||||
|
|
||||||
//graphics
|
|
||||||
#ifdef GRAPHICS
|
|
||||||
#include "sprite_sheet.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//std namespace
|
//std namespace
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
//the speeds that the characters move
|
|
||||||
constexpr double CHARACTER_WALKING_SPEED = 140.0;
|
|
||||||
constexpr double CHARACTER_WALKING_MOD = 1.0/sqrt(2.0);
|
|
||||||
|
|
||||||
//the bounding boxes for the characters
|
|
||||||
constexpr double CHARACTER_BOUNDS_WIDTH = 32.0;
|
|
||||||
constexpr double CHARACTER_BOUNDS_HEIGHT = 32.0;
|
|
||||||
|
|
||||||
struct CharacterData {
|
struct CharacterData {
|
||||||
//metadata
|
//metadata
|
||||||
int owner;
|
int owner;
|
||||||
@@ -58,19 +47,8 @@ struct CharacterData {
|
|||||||
|
|
||||||
//TODO: gameplay components: equipment, items, buffs, debuffs
|
//TODO: gameplay components: equipment, items, buffs, debuffs
|
||||||
|
|
||||||
//methods
|
|
||||||
void Update(double delta);
|
|
||||||
#ifdef GRAPHICS
|
|
||||||
void DrawTo(SDL_Surface* const, int camX, int camY);
|
|
||||||
void CorrectSprite();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//active gameplay members
|
//active gameplay members
|
||||||
//NOTE: these are lost when unloaded
|
//NOTE: these are lost when unloaded
|
||||||
#ifdef GRAPHICS
|
|
||||||
Vector2 bounds = {0.0,0.0};
|
|
||||||
SpriteSheet sprite;
|
|
||||||
#endif
|
|
||||||
bool inCombat = false;
|
bool inCombat = false;
|
||||||
int atbGauge = 0;
|
int atbGauge = 0;
|
||||||
//TODO: stored command
|
//TODO: stored command
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
struct ClientData {
|
struct ClientData {
|
||||||
IPaddress address = {0,0};
|
IPaddress address = {0,0};
|
||||||
|
//TODO: ping system?
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ void RoomManager::UnloadRoom(int uid) {
|
|||||||
|
|
||||||
RoomData* RoomManager::GetRoom(int uid) {
|
RoomData* RoomManager::GetRoom(int uid) {
|
||||||
return FindRoom(uid);
|
return FindRoom(uid);
|
||||||
|
//TODO: expand this to auto-create the room
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomData* RoomManager::FindRoom(int uid) {
|
RoomData* RoomManager::FindRoom(int uid) {
|
||||||
|
|||||||
@@ -21,8 +21,11 @@
|
|||||||
*/
|
*/
|
||||||
#include "server_application.hpp"
|
#include "server_application.hpp"
|
||||||
|
|
||||||
#include "sql_utility.hpp"
|
//for PACKET_BUFFER_SIZE
|
||||||
#include "serial.hpp"
|
#include "serial.hpp"
|
||||||
|
|
||||||
|
//utility functions
|
||||||
|
#include "sql_utility.hpp"
|
||||||
#include "utility.hpp"
|
#include "utility.hpp"
|
||||||
|
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
@@ -80,9 +83,7 @@ void ServerApplication::Init(int argc, char** argv) {
|
|||||||
accountMgr.SetDatabase(database);
|
accountMgr.SetDatabase(database);
|
||||||
characterMgr.SetDatabase(database);
|
characterMgr.SetDatabase(database);
|
||||||
|
|
||||||
combatMgr.SetLuaState(luaState);
|
|
||||||
roomMgr.SetLuaState(luaState);
|
roomMgr.SetLuaState(luaState);
|
||||||
enemyMgr.SetLuaState(luaState);
|
|
||||||
|
|
||||||
std::cout << "Internal managers set" << std::endl;
|
std::cout << "Internal managers set" << std::endl;
|
||||||
|
|
||||||
@@ -355,12 +356,6 @@ void ServerApplication::HandleRegionRequest(RegionPacket* const argPacket) {
|
|||||||
network.SendTo(&argPacket->srcAddress, static_cast<SerialPacket*>(&newPacket));
|
network.SendTo(&argPacket->srcAddress, static_cast<SerialPacket*>(&newPacket));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------
|
|
||||||
//combat management
|
|
||||||
//-------------------------
|
|
||||||
|
|
||||||
//TODO: combat management
|
|
||||||
|
|
||||||
//-------------------------
|
//-------------------------
|
||||||
//Character Management
|
//Character Management
|
||||||
//-------------------------
|
//-------------------------
|
||||||
@@ -439,12 +434,6 @@ void ServerApplication::HandleCharacterUpdate(CharacterPacket* const argPacket)
|
|||||||
PumpPacket(argPacket);
|
PumpPacket(argPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------
|
|
||||||
//enemy management
|
|
||||||
//-------------------------
|
|
||||||
|
|
||||||
//TODO: enemy management
|
|
||||||
|
|
||||||
//-------------------------
|
//-------------------------
|
||||||
//mismanagement
|
//mismanagement
|
||||||
//-------------------------
|
//-------------------------
|
||||||
|
|||||||
@@ -22,12 +22,10 @@
|
|||||||
#ifndef SERVERAPPLICATION_HPP_
|
#ifndef SERVERAPPLICATION_HPP_
|
||||||
#define SERVERAPPLICATION_HPP_
|
#define SERVERAPPLICATION_HPP_
|
||||||
|
|
||||||
//server specific stuff
|
//server specific stuff, mostly managers
|
||||||
|
#include "client_data.hpp"
|
||||||
#include "account_manager.hpp"
|
#include "account_manager.hpp"
|
||||||
#include "character_manager.hpp"
|
#include "character_manager.hpp"
|
||||||
#include "client_data.hpp"
|
|
||||||
#include "combat_manager.hpp"
|
|
||||||
#include "enemy_manager.hpp"
|
|
||||||
#include "room_manager.hpp"
|
#include "room_manager.hpp"
|
||||||
|
|
||||||
//common utilities
|
//common utilities
|
||||||
@@ -67,17 +65,11 @@ private:
|
|||||||
//map management
|
//map management
|
||||||
void HandleRegionRequest(RegionPacket* const);
|
void HandleRegionRequest(RegionPacket* const);
|
||||||
|
|
||||||
//combat management
|
|
||||||
//TODO: combat management
|
|
||||||
|
|
||||||
//character management
|
//character management
|
||||||
void HandleCharacterNew(CharacterPacket* const);
|
void HandleCharacterNew(CharacterPacket* const);
|
||||||
void HandleCharacterDelete(CharacterPacket* const);
|
void HandleCharacterDelete(CharacterPacket* const);
|
||||||
void HandleCharacterUpdate(CharacterPacket* const);
|
void HandleCharacterUpdate(CharacterPacket* const);
|
||||||
|
|
||||||
//enemy management
|
|
||||||
//TODO: enemy management
|
|
||||||
|
|
||||||
//mismanagement
|
//mismanagement
|
||||||
void HandleSynchronize(ClientPacket* const);
|
void HandleSynchronize(ClientPacket* const);
|
||||||
|
|
||||||
@@ -99,8 +91,6 @@ private:
|
|||||||
//managers
|
//managers
|
||||||
AccountManager accountMgr;
|
AccountManager accountMgr;
|
||||||
CharacterManager characterMgr;
|
CharacterManager characterMgr;
|
||||||
CombatManager combatMgr;
|
|
||||||
EnemyManager enemyMgr;
|
|
||||||
RoomManager roomMgr;
|
RoomManager roomMgr;
|
||||||
|
|
||||||
//misc
|
//misc
|
||||||
|
|||||||
Reference in New Issue
Block a user