Skip to content

Commit 8de70db

Browse files
Merge pull request #20 from usermicrodevices/develop
fix GameLogic warnings
2 parents f8ea42c + b1e39cb commit 8de70db

14 files changed

Lines changed: 385 additions & 119 deletions

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ project(GameServer)
44
set(CMAKE_CXX_STANDARD 17)
55
set(CMAKE_CXX_STANDARD_REQUIRED ON)
66

7+
find_package(fmt REQUIRED)
8+
79
if(NOT TARGET asio::asio)
810
message(STATUS "ASIO not found via find_package, using manual configuration")
911
set(ASIO_DIR "${CMAKE_SOURCE_DIR}/thirdparty/asio")
@@ -169,6 +171,8 @@ target_link_libraries(gameserver PRIVATE
169171
OpenSSL::SSL
170172
OpenSSL::Crypto
171173
Python3::Python
174+
fmt::fmt
175+
spdlog::spdlog
172176
)
173177

174178
# Compiler flags
@@ -178,6 +182,8 @@ else()
178182
target_compile_options(gameserver PRIVATE -Wall -Wextra -pedantic)
179183
endif()
180184

185+
target_link_options(gameserver PRIVATE -Wl,-Bsymbolic)
186+
181187
# Installation
182188
install(TARGETS gameserver DESTINATION bin)
183189
install(DIRECTORY config/ DESTINATION config)

include/game/GameLogic.hpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,15 @@
1010
// #include "logging/Logger.hpp"
1111
// #include "network/ConnectionManager.hpp"
1212
// #include "database/DbManager.hpp"
13-
//
14-
// #include "game/ChunkLOD.hpp"
15-
// #include "game/CollisionSystem.hpp"
13+
1614
#include "game/LogicCore.hpp"
1715
#include "game/PlayerManager.hpp"
16+
#include "game/InventorySystem.hpp"
17+
#include "game/LootTableManager.hpp"
18+
#include "game/MobSystem.hpp"
19+
#include "game/SkillSystem.hpp"
20+
#include "game/QuestManager.hpp"
21+
#include "game/EntityManager.hpp"
1822

1923
class GameLogic : public LogicCore
2024
{

include/game/InventorySystem.hpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class InventorySystem {
2626

2727
// Inventory management
2828
bool AddItem(uint64_t playerId, const LootItem& item, int quantity = 1);
29-
bool RemoveItem(uint64_t playerId, const std::string& itemId, int quantity = 1);
29+
bool RemoveItem(uint64_t playerId, uint64_t itemId, int quantity = 1);
3030
bool MoveItem(uint64_t playerId, int fromSlot, int toSlot);
3131
bool SwapItems(uint64_t playerId, int slot1, int slot2);
3232
bool SplitStack(uint64_t playerId, int slot, int splitQuantity);
@@ -35,12 +35,12 @@ class InventorySystem {
3535
// Equipment management
3636
bool EquipItem(uint64_t playerId, int inventorySlot);
3737
bool UnequipItem(uint64_t playerId, int equipmentSlot);
38-
bool AutoEquip(uint64_t playerId, const std::string& itemId);
38+
bool AutoEquip(uint64_t playerId, uint64_t itemId);
3939

4040
// Query methods
4141
std::shared_ptr<LootItem> GetItem(uint64_t playerId, int slot);
42-
int GetItemCount(uint64_t playerId, const std::string& itemId) const;
43-
bool HasItem(uint64_t playerId, const std::string& itemId, int quantity = 1) const;
42+
int GetItemCount(uint64_t playerId, uint64_t itemId) const;
43+
bool HasItem(uint64_t playerId, uint64_t itemId, int quantity = 1) const;
4444
std::vector<InventorySlot> GetInventory(uint64_t playerId) const;
4545
std::vector<InventorySlot> GetEquipment(uint64_t playerId) const;
4646

@@ -50,8 +50,8 @@ class InventorySystem {
5050
bool HasSpaceFor(uint64_t playerId, const LootItem& item, int quantity = 1) const;
5151

5252
// Trading
53-
bool CanTradeItem(uint64_t playerId, const std::string& itemId) const;
54-
bool TransferItem(uint64_t fromPlayerId, uint64_t toPlayerId, const std::string& itemId, int quantity);
53+
bool CanTradeItem(uint64_t playerId, uint64_t itemId) const;
54+
bool TransferItem(uint64_t fromPlayerId, uint64_t toPlayerId, uint64_t itemId, int quantity);
5555

5656
// Serialization
5757
bool LoadInventory(uint64_t playerId);
@@ -97,7 +97,7 @@ class InventorySystem {
9797

9898
// Helper methods
9999
bool ValidateSlot(uint64_t playerId, int slot) const;
100-
int FindItemSlot(uint64_t playerId, const std::string& itemId) const;
100+
int FindItemSlot(uint64_t playerId, uint64_t itemId) const;
101101
int FindFreeSlot(uint64_t playerId) const;
102102
bool CanStackWithSlot(const InventorySlot& slot, const LootItem& item) const;
103103
bool IsEquipmentSlot(int slot) const;

include/game/LootItem.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ struct ItemModifier {
4646
class LootItem {
4747
public:
4848
LootItem();
49-
LootItem(const std::string& id, const std::string& name, ItemType type, LootRarity rarity);
49+
LootItem(uint64_t id, const std::string& name = "", ItemType type = ItemType::MATERIAL, LootRarity rarity = LootRarity::COMMON);
5050

5151
// Getters
52-
const std::string& GetId() const { return id_; }
52+
uint64_t GetId() const { return id_; }
5353
const std::string& GetName() const { return name_; }
5454
ItemType GetType() const { return type_; }
5555
LootRarity GetRarity() const { return rarity_; }
@@ -83,7 +83,7 @@ class LootItem {
8383
bool IsConsumable() const;
8484

8585
private:
86-
std::string id_;
86+
uint64_t id_;
8787
std::string name_;
8888
std::string description_;
8989
ItemType type_;

include/game/Player.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,19 +149,19 @@ struct PlayerSettings {
149149

150150
class Player : public GameEntity {
151151
public:
152-
Player(int64_t id, const std::string& username);
152+
Player(uint64_t id, const std::string& username);
153153
Player(const glm::vec3& position);
154154
Player(const glm::vec3& position, PlayerClass player_class, PlayerRace race);
155155
virtual ~Player();
156156

157-
int64_t GetId() const { return id_; }
157+
uint64_t GetId() const { return id_; }
158158
const std::string& GetUsername() const { return username_; }
159159

160160
void UpdatePosition(float x, float y, float z);
161161
void UpdateHeartbeat();
162162
bool IsHeartbeatExpired(int timeoutSeconds) const;
163-
void ApplyDamage(int damage, int64_t attackerId);
164-
void ApplyHealing(int amount, int64_t healerId);
163+
void ApplyDamage(int damage, uint64_t attackerId);
164+
void ApplyHealing(int amount, uint64_t healerId);
165165

166166
// Player-specific properties
167167
void SetPlayerClass(PlayerClass player_class) { player_class_ = player_class; }
@@ -320,7 +320,7 @@ class Player : public GameEntity {
320320
nlohmann::json ToJson() const;
321321

322322
private:
323-
int64_t id_;
323+
uint64_t id_;
324324
std::string username_;
325325

326326
//struct Position {float x, y, z;} position_;

include/game/QuestManager.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ class QuestManager {
234234
const std::string& objective_id, int delta = 1);
235235
void OnMonsterKilled(uint64_t entity_id, const std::string& monster_id);
236236
void OnItemCollected(uint64_t entity_id, const std::string& item_id, int count = 1);
237-
void OnNPCTalkedTo(uint64_t entity_id, const std::string& npc_id);
237+
void OnNPCTalkedTo(uint64_t entity_id, uint64_t npc_id);
238238
void OnLocationVisited(uint64_t entity_id, const glm::vec3& location, float radius = 10.0f);
239239
void OnDungeonCompleted(uint64_t entity_id, const std::string& dungeon_id);
240240
void OnLevelGained(uint64_t entity_id, int new_level);
@@ -274,8 +274,8 @@ class QuestManager {
274274
uint64_t GetTrackedQuest(uint64_t entity_id) const;
275275

276276
// --- NPC Interaction ---
277-
std::vector<uint64_t> GetQuestsFromNPC(uint64_t entity_id, const std::string& npc_id) const;
278-
std::vector<uint64_t> GetQuestsToTurnIn(uint64_t entity_id, const std::string& npc_id) const;
277+
std::vector<uint64_t> GetQuestsFromNPC(uint64_t entity_id, uint64_t npc_id) const;
278+
std::vector<uint64_t> GetQuestsToTurnIn(uint64_t entity_id, uint64_t npc_id) const;
279279

280280
// --- Statistics ---
281281
int GetTotalQuestsCompleted(uint64_t entity_id) const;

include/network/ConnectionManager.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ class ConnectionManager {
6868

6969
// Statistics
7070
struct SessionStatsInfo {
71-
std::chrono::steady_clock::time_point start_time;
72-
std::chrono::steady_clock::time_point last_activity;
71+
std::chrono::system_clock::time_point start_time;
72+
std::chrono::system_clock::time_point last_activity;
7373
uint64_t messages_sent = 0;
7474
uint64_t messages_received = 0;
7575
uint64_t bytes_sent = 0;
@@ -157,8 +157,8 @@ class ConnectionManager {
157157
std::unordered_map<std::string, std::vector<EventHandler>> eventHandlers_;
158158

159159
// Maintenance
160-
std::chrono::steady_clock::time_point lastCleanup_;
161-
std::chrono::steady_clock::time_point lastMonitor_;
160+
std::chrono::system_clock::time_point lastCleanup_;
161+
std::chrono::system_clock::time_point lastMonitor_;
162162

163163
// Internal methods
164164
void AddToGroupInternal(const std::string& groupId, uint64_t sessionId);

0 commit comments

Comments
 (0)