#include "CardManager.hpp"
#include "PlayerManager.hpp"
#include "AccountManager.hpp"
+#include "ResourceManager.hpp"
#include "../common/Logger.hpp"
#include "Client.hpp"
#include "../common/network/Utils.hpp"
}
break;
+ case ClientReceiveServerCrowdedError:
+ {
+ status_ = STATUS_ERROR_CROWDED;
+ }
+ break;
+
// サーバーデータ受信
case ClientReceiveServerInfo:
{
network::Utils::Deserialize(command->body(), & stage_);
- status_ = STATUS_READY;
+ const auto& model_list = ResourceManager::GetModelNameList();
+ if (std::find(model_list.begin(),model_list.end(), stage_) == model_list.end()) {
+ status_ = STATUS_ERROR_NOSTAGE;
+ } else {
+ status_ = STATUS_READY;
+ }
}
break;
}
break;
+ case FatalConnectionError:
+ {
+ status_ = STATUS_ERROR;
+ }
+
default:
break;
}
//
#include "MainLoop.hpp"
+#include "Title.hpp"
#include "Connect.hpp"
#include <vector>
#include <algorithm>
card_manager_(manager_accesor->card_manager().lock()),
account_manager_(manager_accesor->account_manager().lock()),
config_manager_(manager_accesor->config_manager().lock()),
- command_manager_(std::make_shared<CommandManager>(manager_accesor_))
+ command_manager_(std::make_shared<CommandManager>(manager_accesor_)),
+ return_flag_(false)
{
manager_accesor_->set_command_manager(command_manager_);
}
void Connect::Begin()
{
+
+ int width, height;
+ GetScreenState(&width, &height, nullptr);
+
+ message_.set_width(400);
+ message_.set_text(_T("\90Ú\91±\92\86..."));
+ message_.set_bgcolor(UIBase::Color(0,0,0,0));
+ message_.set_textcolor(UIBase::Color(0,0,0,255));
+ message_.set_left(40);
+ message_.set_top(40);
+
+ button_label_.set_width(100);
+ button_label_.set_text(_T("\83L\83\83\83\93\83Z\83\8b"));
+ button_label_.set_bgcolor(UIBase::Color(0,0,0,0));
+ button_label_.set_textcolor(UIBase::Color(0,0,0,255));
+ button_label_.set_left(width - button_.width() - 40 + 15);
+ button_label_.set_top(height - button_.height() + 35);
+
+ button_.set_height(32);
+ button_.set_left(width - button_.width() - 40);
+ button_.set_top(height - button_.height() - 40);
+
+ button_.set_on_click([this](){
+ return_flag_ = true;
+ });
+
+
command_manager_->set_client(
ClientUniqPtr(
new network::Client(
void Connect::Update()
{
command_manager_->Update();
+
+ switch (command_manager_->status()) {
+ case CommandManager::STATUS_ERROR:
+ message_.set_text(_T("\83G\83\89\81[\81F\90Ú\91±\82É\8e¸\94s\82µ\82Ü\82µ\82½"));
+ command_manager_->set_client(ClientUniqPtr());
+ break;
+ case CommandManager::STATUS_ERROR_CROWDED:
+ message_.set_text(_T("\83G\83\89\81[\81F\90l\90\94\82ª\91½\82·\82¬\82Ü\82·"));
+ command_manager_->set_client(ClientUniqPtr());
+ break;
+ case CommandManager::STATUS_ERROR_NOSTAGE:
+ message_.set_text(_T("\83G\83\89\81[\81F\83T\81[\83o\81[\82ª\8ew\92è\82·\82é\83X\83e\81[\83W\83\82\83f\83\8b\82ð\8e\9d\82Á\82Ä\82¢\82Ü\82¹\82ñ"));
+ command_manager_->set_client(ClientUniqPtr());
+ break;
+ }
+
+ InputManager input;
+ button_.ProcessInput(&input);
+ button_.Update();
+ button_label_.Update();
+ message_.Update();
}
void Connect::Draw()
int width, height;
GetScreenState(&width, &height, nullptr);
DrawBox(0, 0, width, height, GetColor(157, 212, 187), TRUE);
-
+
+ message_.Draw();
+ button_.Draw();
+ button_label_.Draw();
}
void Connect::End()
InputManager input;
if (command_manager_->status() == CommandManager::STATUS_READY) {
return BasePtr(new scene::MainLoop(manager_accesor_));
+ } else if (return_flag_) {
+ return BasePtr(new scene::Title(manager_accesor_));
} else {
return BasePtr();
}