Work on mouse selection in options menu

This commit is contained in:
2023-05-10 10:02:37 +01:00
parent ab714d63db
commit cc42a5e124
10 changed files with 130 additions and 88 deletions
+7 -5
View File
@@ -2,23 +2,25 @@ module Dodge.ListDisplayParams
( invDisplayParams
, secondColumnParams
, subInvX
, defaultListDisplayParams
) where
import Dodge.Data.ScreenPos
import Dodge.Data.CardinalPoint
import SDL (MouseButton (..))
import Dodge.Data.SelectionList
import Dodge.Data.World
import qualified Data.Map.Strict as M
import Control.Lens
import Linear
defaultListDisplayParams :: ListDisplayParams
defaultListDisplayParams =
ListDisplayParams
{ _ldpVerticalGap = 0
, _ldpScale = 1
, _ldpPosX = 0
, _ldpPosY = 0
, _ldpPos = ScreenPos {_spScreenOff = V2 (-0.5) 0.5 -- top left
, _spPixelOff = 0}
, _ldpCursorSides = mempty
, _ldpWidth = FixedSelectionWidth 15
}
@@ -28,6 +30,7 @@ invDisplayParams w =
defaultListDisplayParams
& ldpCursorSides .~ selcursortype
& ldpWidth .~ FixedSelectionWidth (determineInvSelCursorWidth w)
& ldpPos . spPixelOff .~ V2 6 (-1)
where
selcursortype
| isexaminesub || ButtonRight `M.member` _mouseButtons (_input w) = [North, South, East, West]
@@ -39,8 +42,7 @@ invDisplayParams w =
secondColumnParams :: ListDisplayParams
secondColumnParams =
defaultListDisplayParams
& ldpPosX .~ subInvX
& ldpPosY .~ 60
& ldpPos . spPixelOff .~ V2 subInvX (-61)
& ldpCursorSides .~ [North, South, West]
subInvX :: Float