Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MOAR Slash Commands, Titles, AFKs, ChatMessages, String Replacements, and other unlabeled-bits #175

Merged
merged 33 commits into from Jan 23, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
3f2231c
Tracking down un-labeled bits and their purpose. Added slash commands…
broxen Dec 2, 2017
08e8fd3
added comments for forcing the client camera to a certain pyr
broxen Dec 2, 2017
0db2c3d
MOAR ChatMessages, Slash Commands, Titles, AFKs, and borked stuff.
broxen Dec 4, 2017
a84c5e4
Cleaned up code in search of networking crash bug
broxen Dec 4, 2017
cc08bd9
fixed crashing issue and afk msg
broxen Dec 4, 2017
21d6c59
Added MOAR slash commands, setup framework for Private Messages, Work…
broxen Dec 6, 2017
de6de6a
Updates based upon review in commit. Added TODO comments and clarifie…
broxen Dec 6, 2017
8ea1102
Updated MapInstance and MapEvents.h based upon feedback.
broxen Dec 7, 2017
3e120d2
More slash commands, add fields to DB, replacement strings for chat, …
broxen Dec 10, 2017
2db4c5e
Removed some commented out code from the old SendTitles()
broxen Dec 10, 2017
3762f59
Use equality operator on argumentless slash commands instead of `.con…
broxen Dec 27, 2017
5749e31
Pulled public functions out of entity and character classes
broxen Dec 27, 2017
679e6a3
Added getEntityByName() and getEntityByIdx() functions, plus more
broxen Dec 27, 2017
63dc6be
Small changes
broxen Dec 29, 2017
041d4c7
Add update method to CharacterDatabase and fix Private chat
broxen Jan 8, 2018
bc49633
Merge remote-tracking branch 'upstream/master' into unlabeled-bits
broxen Jan 9, 2018
e844ae8
Cleaned up error messages. Work on getEntityByIdx()
broxen Jan 9, 2018
f27ec7b
Added PlayerMethods files to store utility functions.
broxen Jan 9, 2018
30cc25f
Add conditonal boolean to sendTitles and checked conditions.
broxen Jan 9, 2018
50235b7
Continued work on CharacterDatabase::update and sendTitles()
broxen Jan 10, 2018
bcec17d
Fixed Char DB update() method and added chardebug and updatechar slas…
broxen Jan 11, 2018
f215316
Fixed $target and added /stuck, /hascontrolid & /fullupdate commands
broxen Jan 16, 2018
f3bee97
Merge branch 'master' into unlabeled-bits
broxen Jan 16, 2018
7cbae6c
Merge branch 'master' into unlabeled-bits
broxen Jan 16, 2018
205741b
Began CharData and EntityData. Updated /chardebug to leverage dump()
broxen Jan 18, 2018
e9438ef
Merge branch 'unlabeled-bits' of https://github.com/broxen/Segs into …
broxen Jan 18, 2018
936b179
Merge remote-tracking branch 'upstream/master' into unlabeled-bits
broxen Jan 18, 2018
4c9e46c
Loaded Titles from Database
broxen Jan 18, 2018
868db06
Cleaned up comments and troubleshooted entity rotation
broxen Jan 18, 2018
746f267
Fixed entity rotation error caused by changing m_orientation_pyr to vec3
broxen Jan 19, 2018
c3d29ea
Progress on CharData implementation
broxen Jan 19, 2018
e13d7d6
Continued separation of member variables from Character and Entity cl…
broxen Jan 22, 2018
217b364
Fixed Linking Error and added nullptr checks for /getEntity
broxen Jan 22, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 8 additions & 0 deletions Projects/CoX/Common/GameData/CMakeLists.txt
Expand Up @@ -4,17 +4,25 @@ set(GAMEDATA_SRC
serialization_common.h
anim_serializers.cpp
anim_serializers.h
anim_definitions.h
attrib_serializers.cpp
attrib_serializers.h
attrib_definitions.h
bodypart_serializers.cpp
bodypart_serializers.h
scenegraph_serializers.h
scenegraph_serializers.cpp
charclass_definitions.h
charclass_serializers.cpp
charclass_serializers.h
chardata_definitions.h
chardata_serializers.cpp
chardata_serializers.h
def_serializers.cpp
def_serializers.h
entitydata_definitions.h
entitydata_serializers.cpp
entitydata_serializers.h
other_definitions.h
origin_definitions.h
keybind_serializers.cpp
Expand Down
12 changes: 6 additions & 6 deletions Projects/CoX/Common/GameData/attrib_definitions.h
Expand Up @@ -75,7 +75,7 @@ struct Parse_CharAttrib
float m_SpeedFlying;
float m_SpeedSwimming;
float m_SpeedJumping;
float m_JumpHeight;
float m_jump_height;
float m_MovementControl;
float m_MovementFriction;
float m_Stealth;
Expand All @@ -89,10 +89,10 @@ struct Parse_CharAttrib
float m_Afraid;
float m_Held;
float m_Immobilized;
float m_Stunned;
float m_is_stunned;
float m_Sleep;
float m_is_flying;
float m_Jumppack;
float m_has_jumppack;
float m_Teleport;
float m_Untouchable;
float m_Intangible;
Expand Down Expand Up @@ -172,7 +172,7 @@ struct Parse_CharAttribMax
std::vector<float> m_SpeedFlying;
std::vector<float> m_SpeedSwimming;
std::vector<float> m_SpeedJumping;
std::vector<float> m_JumpHeight;
std::vector<float> m_jump_height;
std::vector<float> m_MovementControl;
std::vector<float> m_MovementFriction;
std::vector<float> m_Stealth;
Expand All @@ -186,10 +186,10 @@ struct Parse_CharAttribMax
std::vector<float> m_Afraid;
std::vector<float> m_Held;
std::vector<float> m_Immobilized;
std::vector<float> m_Stunned;
std::vector<float> m_is_stunned;
std::vector<float> m_Sleep;
std::vector<float> m_is_flying;
std::vector<float> m_Jumppack;
std::vector<float> m_has_jumppack;
std::vector<float> m_Teleport;
std::vector<float> m_Untouchable;
std::vector<float> m_Intangible;
Expand Down
24 changes: 12 additions & 12 deletions Projects/CoX/Common/GameData/attrib_serializers.cpp
Expand Up @@ -86,7 +86,7 @@ void serialize(Archive & archive, Parse_CharAttrib & target)
archive(cereal::make_nvp("SpeedFlying",target.m_SpeedFlying));
archive(cereal::make_nvp("SpeedSwimming",target.m_SpeedSwimming));
archive(cereal::make_nvp("SpeedJumping",target.m_SpeedJumping));
archive(cereal::make_nvp("JumpHeight",target.m_JumpHeight));
archive(cereal::make_nvp("JumpHeight",target.m_jump_height));
archive(cereal::make_nvp("MovementControl",target.m_MovementControl));
archive(cereal::make_nvp("MovementFriction",target.m_MovementFriction));
archive(cereal::make_nvp("Stealth",target.m_Stealth));
Expand All @@ -100,10 +100,10 @@ void serialize(Archive & archive, Parse_CharAttrib & target)
archive(cereal::make_nvp("Afraid",target.m_Afraid));
archive(cereal::make_nvp("Held",target.m_Held));
archive(cereal::make_nvp("Immobilized",target.m_Immobilized));
archive(cereal::make_nvp("Stunned",target.m_Stunned));
archive(cereal::make_nvp("Stunned",target.m_is_stunned));
archive(cereal::make_nvp("Sleep",target.m_Sleep));
archive(cereal::make_nvp("Fly",target.m_is_flying));
archive(cereal::make_nvp("Jumppack",target.m_Jumppack));
archive(cereal::make_nvp("Jumppack",target.m_has_jumppack));
archive(cereal::make_nvp("Teleport",target.m_Teleport));
archive(cereal::make_nvp("Untouchable",target.m_Untouchable));
archive(cereal::make_nvp("Intangible",target.m_Intangible));
Expand Down Expand Up @@ -145,7 +145,7 @@ void serialize(Archive & archive, Parse_CharAttribMax & target)
archive(cereal::make_nvp("SpeedFlying",target.m_SpeedFlying));
archive(cereal::make_nvp("SpeedSwimming",target.m_SpeedSwimming));
archive(cereal::make_nvp("SpeedJumping",target.m_SpeedJumping));
archive(cereal::make_nvp("JumpHeight",target.m_JumpHeight));
archive(cereal::make_nvp("JumpHeight",target.m_jump_height));
archive(cereal::make_nvp("MovementControl",target.m_MovementControl));
archive(cereal::make_nvp("MovementFriction",target.m_MovementFriction));
archive(cereal::make_nvp("Stealth",target.m_Stealth));
Expand All @@ -159,10 +159,10 @@ void serialize(Archive & archive, Parse_CharAttribMax & target)
archive(cereal::make_nvp("Afraid",target.m_Afraid));
archive(cereal::make_nvp("Held",target.m_Held));
archive(cereal::make_nvp("Immobilized",target.m_Immobilized));
archive(cereal::make_nvp("Stunned",target.m_Stunned));
archive(cereal::make_nvp("Stunned",target.m_is_stunned));
archive(cereal::make_nvp("Sleep",target.m_Sleep));
archive(cereal::make_nvp("Fly",target.m_is_flying));
archive(cereal::make_nvp("Jumppack",target.m_Jumppack));
archive(cereal::make_nvp("Jumppack",target.m_has_jumppack));
archive(cereal::make_nvp("Teleport",target.m_Teleport));
archive(cereal::make_nvp("Untouchable",target.m_Untouchable));
archive(cereal::make_nvp("Intangible",target.m_Intangible));
Expand Down Expand Up @@ -208,7 +208,7 @@ bool loadFrom(BinStore *s, Parse_CharAttrib &target)
s->read(target.m_SpeedFlying);
s->read(target.m_SpeedSwimming);
s->read(target.m_SpeedJumping);
s->read(target.m_JumpHeight);
s->read(target.m_jump_height);
s->read(target.m_MovementControl);
s->read(target.m_MovementFriction);
s->read(target.m_Stealth);
Expand All @@ -222,10 +222,10 @@ bool loadFrom(BinStore *s, Parse_CharAttrib &target)
s->read(target.m_Afraid);
s->read(target.m_Held);
s->read(target.m_Immobilized);
s->read(target.m_Stunned);
s->read(target.m_is_stunned);
s->read(target.m_Sleep);
s->read(target.m_is_flying);
s->read(target.m_Jumppack);
s->read(target.m_has_jumppack);
s->read(target.m_Teleport);
s->read(target.m_Untouchable);
s->read(target.m_Intangible);
Expand Down Expand Up @@ -268,7 +268,7 @@ bool loadFrom(BinStore *s, Parse_CharAttribMax &target)
s->read(target.m_SpeedFlying);
s->read(target.m_SpeedSwimming);
s->read(target.m_SpeedJumping);
s->read(target.m_JumpHeight);
s->read(target.m_jump_height);
s->read(target.m_MovementControl);
s->read(target.m_MovementFriction);
s->read(target.m_Stealth);
Expand All @@ -282,10 +282,10 @@ bool loadFrom(BinStore *s, Parse_CharAttribMax &target)
s->read(target.m_Afraid);
s->read(target.m_Held);
s->read(target.m_Immobilized);
s->read(target.m_Stunned);
s->read(target.m_is_stunned);
s->read(target.m_Sleep);
s->read(target.m_is_flying);
s->read(target.m_Jumppack);
s->read(target.m_has_jumppack);
s->read(target.m_Teleport);
s->read(target.m_Untouchable);
s->read(target.m_Intangible);
Expand Down
29 changes: 29 additions & 0 deletions Projects/CoX/Common/GameData/chardata_definitions.h
@@ -0,0 +1,29 @@
#pragma once

#include <QtCore/QString>

struct CharacterData
{
uint32_t m_level = 0;
uint32_t m_combat_level = 0; // might be different if player is sidekick or exemplar, or hasn't trained up.
uint32_t m_experience_points = 0;
uint32_t m_experience_debt = 0;
uint32_t m_experience_patrol = 0; // planned future use
uint32_t m_influence = 0;
bool m_has_titles = false;
bool m_has_the_prefix = false;
QString m_titles[3]; // Generic, Origin, Special
QString m_battle_cry;
QString m_character_description;
bool m_afk = false;
QString m_afk_msg;
uint8_t m_lfg = 0;
uint32_t m_supergroup_id = 0;
QString m_alignment = "hero";
uint64_t m_last_costume_id;
QString m_class_name;
QString m_origin_name;
QString m_mapName;
bool m_supergroup_costume; // player has a sg costume
bool m_using_sg_costume; // player uses sg costume currently
};
75 changes: 75 additions & 0 deletions Projects/CoX/Common/GameData/chardata_serializers.cpp
@@ -0,0 +1,75 @@
#include "chardata_serializers.h"

#include "chardata_definitions.h"
#include "DataStorage.h"
#include "serialization_common.h"


template<class Archive>
void serialize(Archive & archive, CharacterData &cd)
{
char buf[128];

archive(cereal::make_nvp("Level",cd.m_level));
archive(cereal::make_nvp("CombatLevel",cd.m_combat_level));
archive(cereal::make_nvp("XP",cd.m_experience_points));
archive(cereal::make_nvp("Debt",cd.m_experience_debt));
archive(cereal::make_nvp("PatrolXP",cd.m_experience_patrol));
archive(cereal::make_nvp("Influence",cd.m_influence));
archive(cereal::make_nvp("HasTitles",cd.m_has_titles));
archive(cereal::make_nvp("ThePrefix",cd.m_has_the_prefix));
auto *titles = &cd.m_titles;
for(int i=0; i<3; ++i) {
sprintf(buf,"Title-%d",i);
archive(cereal::make_nvp(buf,titles[i]));
}
archive(cereal::make_nvp("BattleCry",cd.m_battle_cry));
archive(cereal::make_nvp("Description",cd.m_character_description));
archive(cereal::make_nvp("AFK",cd.m_afk));
archive(cereal::make_nvp("AfkMsg",cd.m_afk_msg));
archive(cereal::make_nvp("LFG",cd.m_lfg));
archive(cereal::make_nvp("SuperGroupID",cd.m_supergroup_id));
archive(cereal::make_nvp("Alignment",cd.m_alignment));
archive(cereal::make_nvp("LastCostumeID",cd.m_last_costume_id));
archive(cereal::make_nvp("Class",cd.m_class_name));
archive(cereal::make_nvp("Origin",cd.m_origin_name));
archive(cereal::make_nvp("MapName",cd.m_mapName));
archive(cereal::make_nvp("SuperGroupCostume",cd.m_supergroup_costume));
archive(cereal::make_nvp("UsingSGCostume",cd.m_using_sg_costume));
}

void saveTo(const CharacterData & target, const QString & baseName, bool text_format)
{
commonSaveTo(target,"CharacterData",baseName,text_format);
}

template
void serialize<cereal::JSONOutputArchive>(cereal::JSONOutputArchive & archive, CharacterData & m);
template
void serialize<cereal::JSONInputArchive>(cereal::JSONInputArchive & archive, CharacterData & m);

void serializeFromDb(CharacterData &data,const QByteArray &src)
{
if(src.isEmpty())
return;
std::istringstream istr;
istr.str(src.toStdString());
{
cereal::JSONInputArchive ar(istr);
ar(data);
}
}

/*
#include <iostream>
#include <cereal/archives/json.hpp>
#include <cereal/types/vector.hpp>
//......
std::stringstream ss;
{
cereal::JSONOutputArchive archive( ss );
CharacterData charData;
archive( charData );
}
m_prepared_char_insert.bindValue(":char_data", QByteArray::fromStdString(charData.str()));
*/
9 changes: 9 additions & 0 deletions Projects/CoX/Common/GameData/chardata_serializers.h
@@ -0,0 +1,9 @@
#pragma once

class QString;
struct CharacterData;

template<class Archive>
void serialize(Archive & archive, CharacterData & m);

void saveTo(const CharacterData &target,const QString &baseName,bool text_format=false);
12 changes: 12 additions & 0 deletions Projects/CoX/Common/GameData/entitydata_definitions.h
@@ -0,0 +1,12 @@
#pragma once

#include <QtCore/QString>

struct EntityData
{
uint8_t m_origin_idx = {0};
uint8_t m_class_idx = {0};
uint8_t m_type = {0};
int32_t m_idx = {0};
uint32_t m_db_id = {0};
};
52 changes: 52 additions & 0 deletions Projects/CoX/Common/GameData/entitydata_serializers.cpp
@@ -0,0 +1,52 @@
#include "entitydata_serializers.h"

#include "entitydata_definitions.h"
#include "DataStorage.h"
#include "serialization_common.h"


template<class Archive>
void serialize(Archive & archive, EntityData &ed)
{
archive(cereal::make_nvp("OriginIdx",ed.m_origin_idx));
archive(cereal::make_nvp("ClassIdx",ed.m_class_idx));
archive(cereal::make_nvp("Type",ed.m_type));
archive(cereal::make_nvp("Idx",ed.m_idx));
archive(cereal::make_nvp("dbID",ed.m_db_id));
}

void saveTo(const EntityData & target, const QString & baseName, bool text_format)
{
commonSaveTo(target,"EntityData",baseName,text_format);
}

template
void serialize<cereal::JSONOutputArchive>(cereal::JSONOutputArchive & archive, EntityData & m);
template
void serialize<cereal::JSONInputArchive>(cereal::JSONInputArchive & archive, EntityData & m);

void serializeFromDb(EntityData &data,const QByteArray &src)
{
if(src.isEmpty())
return;
std::istringstream istr;
istr.str(src.toStdString());
{
cereal::JSONInputArchive ar(istr);
ar(data);
}
}

/*
#include <iostream>
#include <cereal/archives/json.hpp>
#include <cereal/types/vector.hpp>
//......
std::stringstream ss;
{
cereal::JSONOutputArchive archive( ss );
CharacterData charData;
archive( charData );
}
m_prepared_char_insert.bindValue(":char_data", QByteArray::fromStdString(charData.str()));
*/
9 changes: 9 additions & 0 deletions Projects/CoX/Common/GameData/entitydata_serializers.h
@@ -0,0 +1,9 @@
#pragma once

class QString;
struct EntityData;

template<class Archive>
void serialize(Archive & archive, EntityData & m);

void saveTo(const EntityData &target,const QString &baseName,bool text_format=false);
2 changes: 2 additions & 0 deletions Projects/CoX/Common/NetStructures/CMakeLists.txt
Expand Up @@ -4,6 +4,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/CommonNetStructures.cpp
${CMAKE_CURRENT_SOURCE_DIR}/Costume.cpp
${CMAKE_CURRENT_SOURCE_DIR}/Powers.cpp
${CMAKE_CURRENT_SOURCE_DIR}/Entity.cpp
${CMAKE_CURRENT_SOURCE_DIR}/PlayerMethods.cpp
${CMAKE_CURRENT_SOURCE_DIR}/StateInterpolator.cpp
)
SET(target_INCLUDE
Expand All @@ -12,6 +13,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/Powers.h
${CMAKE_CURRENT_SOURCE_DIR}/Character.h
${CMAKE_CURRENT_SOURCE_DIR}/Costume.h
${CMAKE_CURRENT_SOURCE_DIR}/Entity.h
${CMAKE_CURRENT_SOURCE_DIR}/PlayerMethods.h
${CMAKE_CURRENT_SOURCE_DIR}/Contact.h
${CMAKE_CURRENT_SOURCE_DIR}/StateInterpolator.h
)
Expand Down