Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions disasterserver/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ set(COMPILER_OPTIONS
)

file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
# file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)


if(ANDROID)
add_library(DisasterServerCXX SHARED "Android.cpp" ${SOURCES})
Expand Down
5 changes: 5 additions & 0 deletions disasterserver/Client.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,11 @@ namespace DisasterServer
void setExeChance(uint8_t chance) { exe_chance = chance; }
uint8_t getExeChance() { return exe_chance; }

SurvCharacters getSurvCharacter() const { return survChar; }
void setSurvCharacter(SurvCharacters character) { survChar = character; }
ExesCharacters getExeCharacter() const { return exeChar; }
void setExeCharacter(ExesCharacters character) { exeChar = character; }

void setTimeout(double value) { timeout = value; }
double getTimeout() const { return timeout; }
bool isShouldTimeout() { return should_timeout; }
Expand Down
42 changes: 26 additions & 16 deletions disasterserver/GameStateController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

using namespace DisasterServer;

GameStateController::GameStateController(Server *server) : server(server), lobby(server, this) {
GameStateController::GameStateController(Server *server): server(server), lobby(server, this), charSelect(server, this) {
}

GameStateController::~GameStateController() = default;
Expand All @@ -24,9 +24,11 @@ bool GameStateController::playerJoined(Client &peer) {

switch (state) {
case States::LOBBY:
case States::CHARSELECT:
case States::MAPVOTE: {
case States::MAPVOTE:
return lobby.joined(peer);

case States::CHARSELECT: {
return charSelect.joined(peer);
}
case States::GAME: {
return true;
Expand All @@ -48,11 +50,14 @@ void GameStateController::playerLeft(Client &peer) {
switch (state)
{
case States::LOBBY:
case States::CHARSELECT:
case States::MAPVOTE:
lobby.leaved(peer);
break;

case States::CHARSELECT:
charSelect.leaved(peer);
break;

case States::GAME:
//game_state_tick(server);
break;
Expand All @@ -63,22 +68,24 @@ void GameStateController::playerLeft(Client &peer) {
}
}


void GameStateController::tick() {
switch (state)
{
case States::LOBBY:
case States::CHARSELECT:
case States::MAPVOTE:
lobby.tick();
break;

case States::CHARSELECT:
charSelect.tick();
break;

case States::GAME:
//game_state_tick(server);
// game_state_tick(server);
break;

case States::RESULTS:
//results_state_tick(server);
// results_state_tick(server);
break;
}
}
Expand Down Expand Up @@ -137,18 +144,21 @@ bool GameStateController::handle(Client &peer, Packet &packet) {
}
switch (state) {
case States::LOBBY:
case States::CHARSELECT:
case States::MAPVOTE: {
case States::MAPVOTE:
lobby.handle(peer, packet);
break;
}
case States::GAME: {

case States::CHARSELECT:
charSelect.handle(peer, packet);
break;
}
case States::RESULTS: {

case States::GAME:
// game state handle
break;

case States::RESULTS:
// results state handle
break;
}
default: break;
}

return true;
Expand Down
20 changes: 13 additions & 7 deletions disasterserver/GameStateController.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include "Core/Packet.hpp"
#include "States/LobbyState.hpp"
#include "States/CharSelect.hpp"

namespace DisasterServer
{
Expand Down Expand Up @@ -38,20 +39,25 @@ namespace DisasterServer
States state = States::LOBBY;

LobbyState lobby;
CharSelectState charSelect;
public:
explicit GameStateController(Server *server);
explicit GameStateController(Server* server);
~GameStateController();

bool playerJoined(Client &peer);
void playerLeft(Client &peer);
bool playerJoined(Client& peer);
void playerLeft(Client& peer);
void tick();
bool handle(Client &peer, Packet &packet);
bool handle(Client& peer, Packet& packet);

commandHash cmd_parse(std::string &string);
bool cmd_handle(const Client & client, commandHash hash, const std::string & string);
commandHash cmd_parse(std::string& string);
bool cmd_handle(const Client& client, commandHash hash, const std::string& string);

States getCurrentState() const { return this->state; }
States getCurrentState() const { return state; }
void setState(States state) { this->state = state; }

CharSelectState& getCharSelect() {
return charSelect;
}
};
}

Expand Down
Loading