All pastes #76938 Raw Edit

Miscellany

public text v1 · immutable
·published 2006-07-02 10:21 UTC
rendered paste body
Public Sub Tool_Lighting_Down(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error Resume Next
Dim l_litOld As Fury2LightSource
Dim l_litNew As Fury2LightSource
    If Button = 2 Then
        Select Case QuickShowMenu2(picMapViewport, X, Y, _
            Menus(MenuString("Cu&t", , , "CUT", , , Editor.CanCut), MenuString("&Copy", , , "COPY", , , Editor.CanCopy), MenuString("&Paste", , , "PASTE", , , Editor.CanPaste), MenuString("&Delete", , , "DELETE", , , Editor.CanDelete)))
        Case 1
            Select Case Tool_Lighting
            Case LightingTool_Cursor, LightingTool_Light
                CutLight
            Case LightingTool_Obstruction, LightingTool_ObstructionRectangle, LightingTool_SelectObstructions, LightingTool_MoveObstructions
                CutLightingObstructions
            Case LightingTool_Plane, LightingTool_SelectPlanes, LightingTool_MovePlanes
                CutLightingPlanes
            End Select
        Case 2
            Select Case Tool_Lighting
            Case LightingTool_Cursor, LightingTool_Light
                CopyLight
            Case LightingTool_Obstruction, LightingTool_ObstructionRectangle, LightingTool_SelectObstructions, LightingTool_MoveObstructions
                CopyLightingObstructions
            Case LightingTool_Plane, LightingTool_SelectPlanes, LightingTool_MovePlanes
                CopyLightingPlanes
            End Select
        Case 3
            Select Case Tool_Lighting
            Case LightingTool_Cursor, LightingTool_Light
                With PasteLight(, False)
                    .X = m_lngMouseX
                    .Y = m_lngMouseY
                End With
                RefreshLights
                Redraw
            Case LightingTool_Obstruction, LightingTool_ObstructionRectangle, LightingTool_SelectObstructions, LightingTool_MoveObstructions
            Case LightingTool_Plane, LightingTool_SelectPlanes, LightingTool_MovePlanes
            End Select
        Case 4
            Select Case Tool_Lighting
            Case LightingTool_Cursor, LightingTool_Light
                DeleteLight
            Case LightingTool_Obstruction, LightingTool_ObstructionRectangle, LightingTool_SelectObstructions, LightingTool_MoveObstructions
                DeleteLightingObstructions
            Case LightingTool_Plane, LightingTool_SelectPlanes, LightingTool_MovePlanes
                DeleteLightingPlanes
            End Select
        Case Else
        End Select
    Else
        Set l_litOld = SelectedLight
        Select Case Tool_Lighting
        Case LightingTool_Cursor
            Set l_litNew = LightSourceFromPoint(m_lngRealMouseX, m_lngRealMouseY)
            If l_litOld Is l_litNew Then
                m_booDraggingLight = True
                m_sngDragStartX = l_litOld.X
                m_sngDragStartY = l_litOld.Y
                MultiPropertyUndoPush l_litNew, Array("X", "Y"), Array(m_sngDragStartX, m_sngDragStartY)
            Else
                m_lngSelectedLight = SelectedLayer.Lighting.Lights.Find(l_litNew)
            End If
            If ViewOptions.AutoListSwitch Then
                If tsLists.SelectedTab.Text = "Layers" Then
                    tsLists.SelectTab tsLists.Tabs("Lights")
                End If
            End If
            RefreshLights
            Redraw
        Case LightingTool_Light
            Set l_litNew = New Fury2LightSource
            With l_litNew
                .X = m_lngMouseX
                .Y = m_lngMouseY
                .FalloffDistance = 50
                .Color = F2White
                .Visible = True
                .Name = "New Light"
                .Spread = 180
            End With
            SelectedLayer.Lighting.Lights.Add l_litNew
            m_lngSelectedLight = SelectedLayer.Lighting.Lights.Find(l_litNew)
            RefreshLights
            Redraw
        Case LightingTool_SelectObstructions
            If Button = 1 Then
                If Shift = vbCtrlMask Then
                    m_lngSelectionMode = SelectionMode_Remove
                ElseIf Shift = vbShiftMask Then
                    m_lngSelectionMode = SelectionMode_Add
                Else
                    m_lngSelectionMode = SelectionMode_Replace
                End If
                m_bytOldSelection = m_bytSelectedLightingObstructions
                m_booSelectingLightingObstructions = True
                Redraw
            End If
        Case LightingTool_SelectPlanes
            If Button = 1 Then
                If Shift = vbCtrlMask Then
                    m_lngSelectionMode = SelectionMode_Remove
                ElseIf Shift = vbShiftMask Then
                    m_lngSelectionMode = SelectionMode_Add
                Else
                    m_lngSelectionMode = SelectionMode_Replace
                End If
                m_bytOldSelection = m_bytSelectedLightingPlanes
                m_booSelectingLightingPlanes = True
                Redraw
            End If
        Case LightingTool_MoveObstructions
            If Button = 1 Then
                m_lobLightingObstructionCache = SelectedLayer.Lighting.Obstructions
                m_booDraggingLightingObstructions = True
            End If
        Case LightingTool_MovePlanes
            If Button = 1 Then
                m_plnLightingPlaneCache = SelectedLayer.Lighting.Planes
                m_booDraggingLightingPlanes = True
            End If
        Case LightingTool_Obstruction
            If Button = 1 Then
                m_fptPoints(m_lngPoint).X = m_lngMouseX
                m_fptPoints(m_lngPoint).Y = m_lngMouseY
                m_lngPoint = m_lngPoint + 1
                Redraw
            End If
        Case LightingTool_ObstructionRectangle
            If Button = 1 Then
                m_fptPoints(m_lngPoint).X = m_lngMouseX
                m_fptPoints(m_lngPoint).Y = m_lngMouseY
                m_lngPoint = m_lngPoint + 1
                Redraw
            End If
        Case LightingTool_Plane
            If Button = 1 Then
                m_fptPoints(m_lngPoint).X = m_lngMouseX
                m_fptPoints(m_lngPoint).Y = m_lngMouseY
                m_lngPoint = m_lngPoint + 1
                Redraw
            End If
        Case Else
        End Select
    End If
End Sub