add confirmation for clear license action
This commit is contained in:
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
namespace MenuID {
|
namespace MenuID {
|
||||||
constexpr uint32_t MAIN = 0x11000011;
|
constexpr uint32_t MAIN = 0x11000011;
|
||||||
|
constexpr uint32_t CLEAR_LICENSE_CONFIRMATION = 0x11111111;
|
||||||
constexpr uint32_t INFORMATION = 0x22000022;
|
constexpr uint32_t INFORMATION = 0x22000022;
|
||||||
constexpr uint32_t LOBBY = 0x33000033;
|
constexpr uint32_t LOBBY = 0x33000033;
|
||||||
constexpr uint32_t GAME = 0x44000044;
|
constexpr uint32_t GAME = 0x44000044;
|
||||||
@@ -40,6 +41,11 @@ constexpr uint32_t DISCONNECT = 0x11888811;
|
|||||||
constexpr uint32_t CLEAR_LICENSE = 0x11999911;
|
constexpr uint32_t CLEAR_LICENSE = 0x11999911;
|
||||||
} // namespace MainMenuItemID
|
} // namespace MainMenuItemID
|
||||||
|
|
||||||
|
namespace ClearLicenseConfirmationMenuItemID {
|
||||||
|
constexpr uint32_t CANCEL = 0x01010101;
|
||||||
|
constexpr uint32_t CLEAR_LICENSE = 0x02020202;
|
||||||
|
} // namespace ClearLicenseConfirmationMenuItemID
|
||||||
|
|
||||||
namespace InformationMenuItemID {
|
namespace InformationMenuItemID {
|
||||||
constexpr uint32_t GO_BACK = 0x22FFFF22;
|
constexpr uint32_t GO_BACK = 0x22FFFF22;
|
||||||
}
|
}
|
||||||
|
|||||||
+25
-3
@@ -2312,10 +2312,20 @@ static void on_10(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
c->should_disconnect = true;
|
c->should_disconnect = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MainMenuItemID::CLEAR_LICENSE:
|
case MainMenuItemID::CLEAR_LICENSE: {
|
||||||
send_command(c, 0x9A, 0x04);
|
auto s = c->require_server_state();
|
||||||
c->should_disconnect = true;
|
|
||||||
|
auto conf_menu = make_shared<Menu>(MenuID::CLEAR_LICENSE_CONFIRMATION, s->name);
|
||||||
|
conf_menu->items.emplace_back(ClearLicenseConfirmationMenuItemID::CANCEL, "Go back",
|
||||||
|
"Go back to the\nmain menu", 0);
|
||||||
|
conf_menu->items.emplace_back(ClearLicenseConfirmationMenuItemID::CLEAR_LICENSE, "Clear license",
|
||||||
|
"Disconnect with an\ninvalid license error\nso you can enter a\ndifferent serial\nnumber, access key,\nor password",
|
||||||
|
MenuItem::Flag::INVISIBLE_ON_DC_PROTOS | MenuItem::Flag::INVISIBLE_ON_PC_NTE | MenuItem::Flag::INVISIBLE_ON_XB | MenuItem::Flag::INVISIBLE_ON_BB);
|
||||||
|
|
||||||
|
send_menu(c, conf_menu);
|
||||||
|
send_ship_info(c, "Are you sure?");
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
send_message_box(c, "Incorrect menu item ID.");
|
send_message_box(c, "Incorrect menu item ID.");
|
||||||
@@ -2324,6 +2334,18 @@ static void on_10(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case MenuID::CLEAR_LICENSE_CONFIRMATION: {
|
||||||
|
switch (item_id) {
|
||||||
|
case ClearLicenseConfirmationMenuItemID::CANCEL:
|
||||||
|
send_main_menu(c);
|
||||||
|
break;
|
||||||
|
case ClearLicenseConfirmationMenuItemID::CLEAR_LICENSE:
|
||||||
|
send_command(c, 0x9A, 0x04);
|
||||||
|
c->should_disconnect = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case MenuID::INFORMATION: {
|
case MenuID::INFORMATION: {
|
||||||
if (item_id == InformationMenuItemID::GO_BACK) {
|
if (item_id == InformationMenuItemID::GO_BACK) {
|
||||||
c->config.clear_flag(Client::Flag::IN_INFORMATION_MENU);
|
c->config.clear_flag(Client::Flag::IN_INFORMATION_MENU);
|
||||||
|
|||||||
Reference in New Issue
Block a user