From 754fb71850d24c7fecd4e15022c2ac970dc3111e Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Fri, 22 Apr 2016 08:26:19 +1000 Subject: [PATCH] Updated SQL script --- common/gameplay/item_type.hpp | 32 +++++++ rsc/fonts/Final-Fantasy.ttf | Bin 0 -> 11188 bytes rsc/graphics/interface/button_blue_30.png | Bin 0 -> 316 bytes rsc/graphics/interface/button_blue_30.xcf | Bin 0 -> 992 bytes rsc/scripts/setup_server.sql | 98 ++++++++++------------ server/Inventory/item_data.cpp | 38 +++++++++ server/Inventory/item_data.hpp | 41 +++++++++ server/Inventory/makefile | 32 +++++++ server/characters/character_manager.cpp | 38 ++------- server/makefile | 3 +- 10 files changed, 199 insertions(+), 83 deletions(-) create mode 100644 common/gameplay/item_type.hpp create mode 100644 rsc/fonts/Final-Fantasy.ttf create mode 100644 rsc/graphics/interface/button_blue_30.png create mode 100644 rsc/graphics/interface/button_blue_30.xcf create mode 100644 server/Inventory/item_data.cpp create mode 100644 server/Inventory/item_data.hpp create mode 100644 server/Inventory/makefile diff --git a/common/gameplay/item_type.hpp b/common/gameplay/item_type.hpp new file mode 100644 index 0000000..f21761c --- /dev/null +++ b/common/gameplay/item_type.hpp @@ -0,0 +1,32 @@ +/* Copyright: (c) Kayne Ruse 2013-2016 + * + * 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. +*/ +#pragma once + +enum ItemType { + //basics + POTION = 101, + + //weapons + SWORD = 201, + DAGGER = 202, + STAFF = 203 +}; \ No newline at end of file diff --git a/rsc/fonts/Final-Fantasy.ttf b/rsc/fonts/Final-Fantasy.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1c219b2fbd9d2115001c02c2d90032645a5d4f5c GIT binary patch literal 11188 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 NJYD@<);T3K0RWG;c8dT2 literal 0 HcmV?d00001 diff --git a/rsc/graphics/interface/button_blue_30.xcf b/rsc/graphics/interface/button_blue_30.xcf new file mode 100644 index 0000000000000000000000000000000000000000..0302fadb304c4ca4685d5fdfb64b96c7f13d9334 GIT binary patch literal 992 zcmZ{izfQtX7{%LC6hWiLKa)cj5*TXG2XJ8F4ICUuptPm2P|`vIVSvQR%?A)4f$$Q% zfrDXYl9>fU^qkU~lHyH%-gD2rxA%M>npUHwbTvaUEL#^aYT$_i;~a=0{#<}m@lAdw z(3e04XW%-}Ja>ijH}p+>R<#-xQ&&yb;x`5Ci$cz8_iSD99NVhp(>cS`9NTe~oIk0q zS*<9A+k!v#h`V4bkE_)^SHpeff5EF=uT{~krm5V8Z^7*CGXqcUG_AH`HMP3#@xEgi zp5Fco$lGyi>+D`-AA%vigbH)C>6v0hdp2FC)AZXW1;-9Bv*kY^6==5nDA1S$ww`A= z(je5Ch(3UlQ;hF@5g(k_-PEeieLhZy*jQ zpbWAg3FO#X8YbW^!2-;|6pUhPY1oIi0c)@VGcb;=rQz#9_?mz+$bux0V{5UVfVTt- zFb7jGimkT-$iG7obx-=f6I_%ahP$r??*2P(V$3kzWSM*si- literal 0 HcmV?d00001 diff --git a/rsc/scripts/setup_server.sql b/rsc/scripts/setup_server.sql index 572fd7b..7741519 100644 --- a/rsc/scripts/setup_server.sql +++ b/rsc/scripts/setup_server.sql @@ -20,6 +20,17 @@ * distribution. */ +------------------------- +--defines +------------------------- + +PRAGMA foreign_keys = ON; + +------------------------- +--table definitions +------------------------- + + CREATE TABLE IF NOT EXISTS UserAccounts ( uid INTEGER PRIMARY KEY AUTOINCREMENT, username varchar(100) UNIQUE, --TODO: (3) Swap username for email address @@ -39,7 +50,7 @@ CREATE TABLE IF NOT EXISTS LiveCharacters ( uid INTEGER PRIMARY KEY AUTOINCREMENT, --metadata - owner INTEGER REFERENCES Accounts(uid), + owner INTEGER REFERENCES UserAccounts(uid), handle varchar(100) UNIQUE, avatar varchar(100), birth timestamp NOT NULL DEFAULT (datetime()), @@ -47,24 +58,21 @@ CREATE TABLE IF NOT EXISTS LiveCharacters ( --physically exists in the world roomIndex INTEGER DEFAULT 0, originX INTEGER DEFAULT 0, - originY INTEGER DEFAULT 0, - boundsX INTEGER DEFAULT 0, - boundsY INTEGER DEFAULT 0, - boundsW INTEGER DEFAULT 0, - boundsH INTEGER DEFAULT 0 + originY INTEGER DEFAULT 0 ); CREATE TABLE IF NOT EXISTS DeadCharacters ( uid INTEGER PRIMARY KEY, --metadata - owner INTEGER REFERENCES Accounts(uid), + owner INTEGER REFERENCES UserAccounts(uid), handle varchar(100), avatar varchar(100), - birth timestamp NOT NULL + birth timestamp NOT NULL, + death timestamp NOT NULL DEFAULT (datetime()) ); -CREATE TABLE IF NOT EXISTS LiveMonsters ( +CREATE TABLE IF NOT EXISTS LiveCreatures ( uid INTEGER PRIMARY KEY AUTOINCREMENT, --metadata @@ -77,26 +85,14 @@ CREATE TABLE IF NOT EXISTS LiveMonsters ( --physically exists in the world roomIndex INTEGER DEFAULT 0, originX INTEGER DEFAULT 0, - originY INTEGER DEFAULT 0, - boundsX INTEGER DEFAULT 0, - boundsY INTEGER DEFAULT 0, - boundsW INTEGER DEFAULT 0, - boundsH INTEGER DEFAULT 0 -); - -CREATE TABLE IF NOT EXISTS DeadMonsters ( - uid INTEGER PRIMARY KEY, - - --metadata - handle varchar(100) UNIQUE, - avatar varchar(100) + originY INTEGER DEFAULT 0 ); ------------------------- ---Utility tables +--member tables ------------------------- -CREATE TABLE IF NOT EXISTS StatisticSets ( +CREATE TABLE IF NOT EXISTS CombatStatistics ( --metadata uid INTEGER PRIMARY KEY AUTOINCREMENT, @@ -111,48 +107,44 @@ CREATE TABLE IF NOT EXISTS StatisticSets ( defence INTEGER DEFAULT 0, intelligence INTEGER DEFAULT 0, resistance INTEGER DEFAULT 0, - speed INTEGER DEFAULT 0, accuracy REAL DEFAULT 0.0, evasion REAL DEFAULT 0.0, + speed INTEGER DEFAULT 0, luck REAL DEFAULT 0.0 ); -CREATE TABLE IF NOT EXISTS InWorldItems ( - --metadata - uid INTEGER PRIMARY KEY AUTOINCREMENT, - itemType INTEGER, - - --position in the world - roomIndex INTEGER DEFAULT 0, - originX INTEGER DEFAULT 0, - originY INTEGER DEFAULT 0, - - --unique information - stackSize INTEGER DEFAULT 0, - durability INTEGER DEFAULT 0, - stats INTEGER REFERENCES StatisticSets(uid) -); - CREATE TABLE IF NOT EXISTS InventoryItems ( --metadata uid INTEGER PRIMARY KEY AUTOINCREMENT, - owner INTEGER REFERENCES Characters(uid), itemType INTEGER, --unique information stackSize INTEGER DEFAULT 0, - durability INTEGER DEFAULT 0, - stats INTEGER REFERENCES StatisticSets(uid) + durability INTEGER DEFAULT 0 ); -CREATE TABLE IF NOT EXISTS WornEquipment ( - --metadata - uid INTEGER PRIMARY KEY AUTOINCREMENT, - owner INTEGER REFERENCES Characters(uid), - itemType INTEGER, +------------------------- +--cross reference tables +------------------------- - --unique information - durability INTEGER DEFAULT 0, - stats INTEGER REFERENCES StatisticSets(uid) - --attached script? +CREATE TABLE IF NOT EXISTS CharacterStatistics ( + character INTEGER, + statistic INTEGER, + FOREIGN KEY (character) REFERENCES LiveCharacters(uid), + FOREIGN KEY (statistic) REFERENCES CombatStatistics(uid) ); + +CREATE TABLE IF NOT EXISTS CharacterItems ( + character INTEGER, + item INTEGER, + FOREIGN KEY (character) REFERENCES LiveCharacters(uid), + FOREIGN KEY (item) REFERENCES InventoryItem(uid) +); + +CREATE TABLE IF NOT EXISTS CharacterEquipment ( + character INTEGER, + item INTEGER, + FOREIGN KEY (character) REFERENCES LiveCharacters(uid), + FOREIGN KEY (item) REFERENCES InventoryItem(uid) +); + diff --git a/server/Inventory/item_data.cpp b/server/Inventory/item_data.cpp new file mode 100644 index 0000000..d850464 --- /dev/null +++ b/server/Inventory/item_data.cpp @@ -0,0 +1,38 @@ +/* Copyright: (c) Kayne Ruse 2013-2016 + * + * 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 "item_data.hpp" + +ItemType ItemData::SetItemType(ItemType t) { + return type = t; +} + +ItemType ItemData::GetItemType() { + return type; +} + +int ItemData::SetQuantity(int i) { + return quantity = i; +} + +int ItemData::GetQuantity() { + return quantity; +} diff --git a/server/Inventory/item_data.hpp b/server/Inventory/item_data.hpp new file mode 100644 index 0000000..0b8a4e0 --- /dev/null +++ b/server/Inventory/item_data.hpp @@ -0,0 +1,41 @@ +/* Copyright: (c) Kayne Ruse 2013-2016 + * + * 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. +*/ +#pragma once + +#include "item_type.hpp" + +class ItemData { +public: + ItemData() = default; + ~ItemData() = default; + + //accessors and mutators + ItemType SetItemType(ItemType); + ItemType GetItemType(); + + int SetQuantity(int); + int GetQuantity(); + +private: + ItemType type; + int quantity = 1; +}; \ No newline at end of file diff --git a/server/Inventory/makefile b/server/Inventory/makefile new file mode 100644 index 0000000..8ec0cec --- /dev/null +++ b/server/Inventory/makefile @@ -0,0 +1,32 @@ +#config +INCLUDES+=. ../../common/gameplay +LIBS+= +CXXFLAGS+=-std=c++11 $(addprefix -I,$(INCLUDES)) + +#source +CXXSRC=$(wildcard *.cpp) + +#objects +OBJDIR=obj +OBJ+=$(addprefix $(OBJDIR)/,$(CXXSRC:.cpp=.o)) + +#output +OUTDIR=.. +OUT=$(addprefix $(OUTDIR)/,server.a) + +#targets +all: $(OBJ) $(OUT) + ar -crs $(OUT) $(OBJ) + +$(OBJ): | $(OBJDIR) + +$(OUT): | $(OUTDIR) + +$(OBJDIR): + mkdir $(OBJDIR) + +$(OUTDIR): + mkdir $(OUTDIR) + +$(OBJDIR)/%.o: %.cpp + $(CXX) $(CXXFLAGS) -c -o $@ $< diff --git a/server/characters/character_manager.cpp b/server/characters/character_manager.cpp index 159edbb..39d8267 100644 --- a/server/characters/character_manager.cpp +++ b/server/characters/character_manager.cpp @@ -39,12 +39,8 @@ static const char* CREATE_CHARACTER = "INSERT INTO LiveCharacters (" "owner, " "handle, " - "avatar, " - "boundsX, " - "boundsY, " - "boundsW, " - "boundsH" - ") VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7);"; + "avatar " + ") VALUES (?1, ?2, ?3);"; static const char* LOAD_CHARACTER = "SELECT " "uid, " @@ -53,21 +49,13 @@ static const char* LOAD_CHARACTER = "SELECT " "avatar, " "roomIndex, " "originX, " - "originY, " - "boundsX, " - "boundsY, " - "boundsW, " - "boundsH " + "originY " "FROM LiveCharacters WHERE handle = ?;"; static const char* SAVE_CHARACTER = "UPDATE OR FAIL LiveCharacters SET " "roomIndex = ?2, " "originX = ?3, " - "originY = ?4, " - "boundsX = ?5, " - "boundsY = ?6, " - "boundsW = ?7, " - "boundsH = ?8 " + "originY = ?4 " "WHERE uid = ?1;"; static const char* DELETE_CHARACTER = "DELETE FROM LiveCharacters WHERE uid = ?;"; @@ -93,10 +81,6 @@ int CharacterManager::Create(int owner, std::string handle, std::string avatar) ret |= sqlite3_bind_int(statement, 1, owner); ret |= sqlite3_bind_text(statement, 2, handle.c_str(), handle.size() + 1, SQLITE_STATIC); ret |= sqlite3_bind_text(statement, 3, avatar.c_str(), avatar.size() + 1, SQLITE_STATIC); - ret |= sqlite3_bind_int(statement, 4, CHARACTER_BOUNDS_X); - ret |= sqlite3_bind_int(statement, 5, CHARACTER_BOUNDS_Y); - ret |= sqlite3_bind_int(statement, 6, CHARACTER_BOUNDS_WIDTH); - ret |= sqlite3_bind_int(statement, 7, CHARACTER_BOUNDS_HEIGHT); //check for binding errors if (ret) { @@ -167,10 +151,10 @@ int CharacterManager::Load(int owner, std::string handle, std::string avatar) { newChar.origin.x = (double)sqlite3_column_int(statement, 5); newChar.origin.y = (double)sqlite3_column_int(statement, 6); //bounds - newChar.bounds.x = (int)sqlite3_column_int(statement, 7); - newChar.bounds.y = (int)sqlite3_column_int(statement, 8); - newChar.bounds.w = (int)sqlite3_column_int(statement, 9); - newChar.bounds.h = (int)sqlite3_column_int(statement, 10); + newChar.bounds.x = CHARACTER_BOUNDS_X; + newChar.bounds.y = CHARACTER_BOUNDS_Y; + newChar.bounds.w = CHARACTER_BOUNDS_WIDTH; + newChar.bounds.h = CHARACTER_BOUNDS_HEIGHT; //gameplay components: equipment, items, buffs, debuffs... @@ -212,12 +196,8 @@ int CharacterManager::Save(int uid) { ret |= sqlite3_bind_int(statement, 2, character.roomIndex) != SQLITE_OK; ret |= sqlite3_bind_int(statement, 3, (int)character.origin.x) != SQLITE_OK; ret |= sqlite3_bind_int(statement, 4, (int)character.origin.y) != SQLITE_OK; - ret |= sqlite3_bind_int(statement, 5, character.bounds.x) != SQLITE_OK; - ret |= sqlite3_bind_int(statement, 6, character.bounds.y) != SQLITE_OK; - ret |= sqlite3_bind_int(statement, 7, character.bounds.w) != SQLITE_OK; - ret |= sqlite3_bind_int(statement, 8, character.bounds.h) != SQLITE_OK; - //gameplay components: equipment, items, buffs, debuffs... + //TODO: gameplay components: equipment, items, buffs, debuffs... //check for binding errors if (ret) { diff --git a/server/makefile b/server/makefile index 96b7fc8..e31dbf9 100644 --- a/server/makefile +++ b/server/makefile @@ -1,5 +1,5 @@ #include directories -INCLUDES+=. accounts characters clients combat creatures entities rooms triggers ../common/debugging ../common/gameplay ../common/map ../common/network ../common/network/packet_types ../common/utilities +INCLUDES+=. accounts characters clients combat creatures entities inventory rooms triggers ../common/debugging ../common/gameplay ../common/map ../common/network ../common/network/packet_types ../common/utilities #libraries #the order of the $(LIBS) is important, at least for MinGW @@ -35,6 +35,7 @@ all: $(OBJ) $(OUT) $(MAKE) -C combat $(MAKE) -C creatures $(MAKE) -C entities + $(MAKE) -C inventory $(MAKE) -C rooms $(MAKE) -C triggers $(CXX) $(CXXFLAGS) -o $(OUT) $(OBJ) $(LIBS)