Made it so you can right-click on an item to use it, but yeah it's bad. Gotta refactor.

This commit is contained in:
Zed A. Shaw 2025-08-13 11:43:23 -04:00
parent 42575ef1f5
commit ad0069e899
9 changed files with 48 additions and 61 deletions

View file

@ -192,7 +192,16 @@ namespace gui {
$dnd_loot.event(Event::INV_SELECT, data);
state(State::LOOTING);
break;
case USE_ITEM: {
auto gui_id = std::any_cast<guecs::Entity>(data);
auto& slot_name = $status_ui.$gui.name_for(gui_id);
if(System::use_item($level, slot_name)) {
$status_ui.update();
}
} break;
case MOUSE_CLICK:
fmt::println("CLICK: {}", $router.left_button);
mouse_action(false);
break;
case MOUSE_MOVE:
@ -200,6 +209,7 @@ namespace gui {
break;
case AIM_CLICK:
System::pickup($level);
break;
default:
break; // ignore everything else
}
@ -470,9 +480,13 @@ namespace gui {
case eGUI::LOOT_SELECT:
event(Event::LOOT_SELECT, data);
break;
case eGUI::INV_SELECT:
event(Event::INV_SELECT, data);
break;
case eGUI::INV_SELECT: {
if($router.left_button) {
event(Event::INV_SELECT, data);
} else {
event(Event::USE_ITEM, data);
}
} break;
case eGUI::AIM_CLICK:
event(Event::AIM_CLICK);
break;
@ -488,11 +502,11 @@ namespace gui {
event(Event::LOOT_OPEN);
} break;
case eGUI::HP_STATUS:
System::player_status($level);
break;
System::player_status($level);
break;
case eGUI::NEW_RITUAL:
$combat_ui.init();
break;
$combat_ui.init();
break;
case eGUI::ATTACK:
$temp_attack_id = std::any_cast<int>(data);
event(Event::ATTACK);
@ -500,14 +514,6 @@ namespace gui {
case eGUI::STAIRS_DOWN:
event(Event::STAIRS_DOWN);
break;
case eGUI::USE_ITEM: {
auto what = std::any_cast<DinkyECS::Entity>(data);
if(System::use_item($level, what)) {
$status_ui.update();
}
break;
}
case eGUI::DEATH: {
$status_ui.update();
if(entity != player.entity) {