void TControl::OnMouseMove(QMouseEvent event) { if (State == CS_PlanetSelection) { World->UpdateSelection(SelectionFrom, event.pos()); CheckSelection(SelectionFrom, event.pos()); } else if (State == CS_TargetSelection) { CheckTargetSelection(event.pos()); } }
void TControl::OnMouseMove(QMouseEvent event) { if (MousePressed) { if (!TargetSelection) { World->UpdateSelection(SelectionFrom, event.pos()); CheckSelection(SelectionFrom, event.pos()); } else { CheckTargetSelection(event.pos()); } } }
void TControl::OnMouseEvent(QMouseEvent event, bool mouseDown) { if (State == CS_None) { CheckSelection(event.pos(), event.pos()); if (!World->SelectedPlanets.empty()) { State = CS_TargetSelection; } else if (mouseDown) { State = CS_PlanetSelection; SelectionFrom = event.pos(); } } else if (State == CS_PlanetSelection && !mouseDown) { if (!World->SelectedPlanets.empty()) { State = CS_TargetSelection; World->Selection.reset(); } else { State = CS_None; World->SelectedPlanets.clear(); World->Selection.reset(); World->SelectedTarget.reset(); } } else if (State == CS_TargetSelection && !mouseDown) { CheckTargetSelection(event.pos()); if (World->SelectedTarget.is_initialized()) { if (World->SelectedPlanets.size() == 1 && *World->SelectedPlanets.begin() == *World->SelectedTarget) { CheckSelection(event.pos(), event.pos()); } else { SpawnShips(); State = CS_None; World->SelectedPlanets.clear(); World->Selection.reset(); World->SelectedTarget.reset(); } } else { State = CS_None; World->SelectedPlanets.clear(); World->Selection.reset(); World->SelectedTarget.reset(); } } }