コード例 #1
0
ファイル: control.cpp プロジェクト: GoBudokai/ozifi
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());
    }
}
コード例 #2
0
ファイル: control.cpp プロジェクト: budokaii/ozifi
void TControl::OnMouseMove(QMouseEvent event) {
    if (MousePressed) {
        if (!TargetSelection) {
            World->UpdateSelection(SelectionFrom, event.pos());
            CheckSelection(SelectionFrom, event.pos());
        } else {
            CheckTargetSelection(event.pos());
        }
    }
}
コード例 #3
0
ファイル: control.cpp プロジェクト: GoBudokai/ozifi
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();
        }
    }
}