fixed opengl data clean up
This commit is contained in:
@@ -23,7 +23,7 @@
|
|||||||
namespace TowerGui{
|
namespace TowerGui{
|
||||||
|
|
||||||
static GLFWwindow* window;
|
static GLFWwindow* window;
|
||||||
static td::client::Client client;
|
static std::unique_ptr<td::client::Client> client = std::make_unique<td::client::Client>();
|
||||||
static std::thread* serverThread;
|
static std::thread* serverThread;
|
||||||
|
|
||||||
bool serverShouldStop = false;
|
bool serverShouldStop = false;
|
||||||
@@ -112,7 +112,7 @@ void renderMainMenu(){
|
|||||||
ImGui::InputText("Server Adress", buffer, sizeof(buffer));
|
ImGui::InputText("Server Adress", buffer, sizeof(buffer));
|
||||||
ImGui::InputInt("Port", &port, -1);
|
ImGui::InputInt("Port", &port, -1);
|
||||||
if (ImGui::Button("Rejoindre")){
|
if (ImGui::Button("Rejoindre")){
|
||||||
client.connect(buffer, port);
|
client->connect(buffer, port);
|
||||||
triedToConnect = true;
|
triedToConnect = true;
|
||||||
}
|
}
|
||||||
if (triedToConnect){
|
if (triedToConnect){
|
||||||
@@ -144,7 +144,7 @@ void renderMainMenu(){
|
|||||||
triedToCreate = true;
|
triedToCreate = true;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
client.connect("localhost", port);
|
client->connect("localhost", port);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (triedToCreate)
|
if (triedToCreate)
|
||||||
@@ -170,8 +170,8 @@ ImVec4 getImGuiTeamColor(td::game::TeamColor color){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void showPlayers(){
|
void showPlayers(){
|
||||||
if (ImGui::TreeNode(std::string("Players (" + std::to_string(client.getGame().getPlayers().size()) + ")##player_list").c_str())){
|
if (ImGui::TreeNode(std::string("Players (" + std::to_string(client->getGame().getPlayers().size()) + ")##player_list").c_str())){
|
||||||
for (auto pair : client.getGame().getPlayers()){
|
for (auto pair : client->getGame().getPlayers()){
|
||||||
const td::game::Player& player = pair.second;
|
const td::game::Player& player = pair.second;
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, getImGuiTeamColor(player.getTeamColor()));
|
ImGui::PushStyleColor(ImGuiCol_Text, getImGuiTeamColor(player.getTeamColor()));
|
||||||
ImGui::Text(player.getName().c_str());
|
ImGui::Text(player.getName().c_str());
|
||||||
@@ -182,30 +182,30 @@ void showPlayers(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void showTeamSelection(){
|
void showTeamSelection(){
|
||||||
if (client.getGame().getPlayer() == nullptr)
|
if (client->getGame().getPlayer() == nullptr)
|
||||||
return;
|
return;
|
||||||
td::game::TeamColor playerTeam = client.getGame().getPlayer()->getTeamColor();
|
td::game::TeamColor playerTeam = client->getGame().getPlayer()->getTeamColor();
|
||||||
|
|
||||||
if (ImGui::Button(std::string((playerTeam == td::game::TeamColor::Red ? "Leave" : "Join") + std::string(" Red Team")).c_str())){
|
if (ImGui::Button(std::string((playerTeam == td::game::TeamColor::Red ? "Leave" : "Join") + std::string(" Red Team")).c_str())){
|
||||||
if (playerTeam == td::game::TeamColor::Red)
|
if (playerTeam == td::game::TeamColor::Red)
|
||||||
client.selectTeam(td::game::TeamColor::None);
|
client->selectTeam(td::game::TeamColor::None);
|
||||||
else
|
else
|
||||||
client.selectTeam(td::game::TeamColor::Red);
|
client->selectTeam(td::game::TeamColor::Red);
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(std::string((playerTeam == td::game::TeamColor::Blue ? "Leave" : "Join") + std::string(" Blue Team")).c_str())){
|
if (ImGui::Button(std::string((playerTeam == td::game::TeamColor::Blue ? "Leave" : "Join") + std::string(" Blue Team")).c_str())){
|
||||||
if (playerTeam == td::game::TeamColor::Blue)
|
if (playerTeam == td::game::TeamColor::Blue)
|
||||||
client.selectTeam(td::game::TeamColor::None);
|
client->selectTeam(td::game::TeamColor::None);
|
||||||
else
|
else
|
||||||
client.selectTeam(td::game::TeamColor::Blue);
|
client->selectTeam(td::game::TeamColor::Blue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void showLobbyProgress(){
|
void showLobbyProgress(){
|
||||||
const int timePassed = LOBBY_WAITING_TIME - client.getGame().getLobbyTime();
|
const int timePassed = LOBBY_WAITING_TIME - client->getGame().getLobbyTime();
|
||||||
const float progress = (float)timePassed / (float)(LOBBY_WAITING_TIME);
|
const float progress = (float)timePassed / (float)(LOBBY_WAITING_TIME);
|
||||||
if (progress > 0 && progress < 1 && client.getGame().getPlayers().size() >= 2){
|
if (progress > 0 && progress < 1 && client->getGame().getPlayers().size() >= 2){
|
||||||
ImGui::ProgressBar(progress, ImVec2(0.0f, 0.0f), std::string(std::to_string(client.getGame().getLobbyTime() / 1000) + "s").c_str());
|
ImGui::ProgressBar(progress, ImVec2(0.0f, 0.0f), std::string(std::to_string(client->getGame().getLobbyTime() / 1000) + "s").c_str());
|
||||||
ImGui::SameLine(0.0f, ImGui::GetStyle().ItemInnerSpacing.x);
|
ImGui::SameLine(0.0f, ImGui::GetStyle().ItemInnerSpacing.x);
|
||||||
ImGui::Text("Time Remaining");
|
ImGui::Text("Time Remaining");
|
||||||
}
|
}
|
||||||
@@ -215,12 +215,12 @@ void showLobbyProgress(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void showTPS(){
|
void showTPS(){
|
||||||
ImGui::Text("Server TPS : %.1f", client.getConnexion().getServerTPS());
|
ImGui::Text("Server TPS : %.1f", client->getConnexion().getServerTPS());
|
||||||
ImGui::Text("Server Ping : %i", client.getConnexion().getServerPing());
|
ImGui::Text("Server Ping : %i", client->getConnexion().getServerPing());
|
||||||
}
|
}
|
||||||
|
|
||||||
void showStats(){
|
void showStats(){
|
||||||
ImGui::Text("Gold : %i", client.getGame().getPlayer()->getGold());
|
ImGui::Text("Gold : %i", client->getGame().getPlayer()->getGold());
|
||||||
}
|
}
|
||||||
|
|
||||||
void renderSummonMenu(){
|
void renderSummonMenu(){
|
||||||
@@ -267,7 +267,7 @@ void renderSummonMenu(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void renderGame(){
|
void renderGame(){
|
||||||
if (client.getGame().getGameState() == td::game::GameState::Lobby){
|
if (client->getGame().getGameState() == td::game::GameState::Lobby){
|
||||||
ImGui::Begin("Lobby");
|
ImGui::Begin("Lobby");
|
||||||
|
|
||||||
showTPS();
|
showTPS();
|
||||||
@@ -277,7 +277,7 @@ void renderGame(){
|
|||||||
|
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
}
|
}
|
||||||
if (client.getGame().getGameState() == td::game::GameState::Game){
|
if (client->getGame().getGameState() == td::game::GameState::Game){
|
||||||
ImGui::Begin("Game");
|
ImGui::Begin("Game");
|
||||||
|
|
||||||
showTPS();
|
showTPS();
|
||||||
@@ -294,16 +294,16 @@ void tick(){
|
|||||||
|
|
||||||
std::uint64_t delta = time - lastTime;
|
std::uint64_t delta = time - lastTime;
|
||||||
|
|
||||||
client.tick(delta);
|
client->tick(delta);
|
||||||
|
|
||||||
lastTime = td::utils::getTime();
|
lastTime = td::utils::getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
void render(){
|
void render(){
|
||||||
tick();
|
tick();
|
||||||
client.render();
|
client->render();
|
||||||
beginFrame();
|
beginFrame();
|
||||||
if (client.isConnected())
|
if (client->isConnected())
|
||||||
renderGame();
|
renderGame();
|
||||||
else
|
else
|
||||||
renderMainMenu();
|
renderMainMenu();
|
||||||
@@ -316,7 +316,8 @@ void render(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void destroy(){
|
void destroy(){
|
||||||
client.closeConnection();
|
client->closeConnection();
|
||||||
|
client.reset();
|
||||||
serverShouldStop = true;
|
serverShouldStop = true;
|
||||||
if (serverThread != nullptr){
|
if (serverThread != nullptr){
|
||||||
serverThread->join();
|
serverThread->join();
|
||||||
|
|||||||
Reference in New Issue
Block a user