diff --git a/changelog.md b/changelog.md index 5df999d..37ffb20 100644 --- a/changelog.md +++ b/changelog.md @@ -1,7 +1,12 @@ # v0.9.2 -QoL: Adding Pinboard Card. The Pinboard card allows you to pin multiple cards together, like Maps or Images before, but for a specialized card type. -FIX: Some issues with card pinning. +FIX: It wasn't possible to desaturate the color selected in the Edit Color menu previously; this is now fixed. +FIX: Crash when loading some images that are indexed. + +# v0.9.2 + +QoL: Adding Pinboard Card. The Pinboard card is just a blank card that allows you to pin multiple cards together. +FIX: Some issues with card pinning and copying cards that are pinned. FIX: Cards now properly are pinned when loading projects. QoL: Adding keybinding shortcut to cycle capitalization for highlighted text. QoL: Clicking and highlighting a word and then dragging will highlight whole words, like most text editors (there's a little work to be done here still). diff --git a/contents.go b/contents.go index 49cd05d..0bf2903 100644 --- a/contents.go +++ b/contents.go @@ -361,7 +361,7 @@ func (cc *CheckboxContents) Color() Color { if cc.Card.CustomColor != nil { color = cc.Card.CustomColor h, s, v := cc.Card.CustomColor.HSV() - completedColor = NewColorFromHSV(h+0.08, s-0.2, v+0.2) + completedColor = NewColorFromHSV(h+0.04, s-0.2, v+0.2) } if len(cc.DependentCards()) > 0 { @@ -636,7 +636,7 @@ func (nc *NumberedContents) Draw() { completionColor := getThemeColor(GUICompletedColor) if nc.Card.CustomColor != nil { h, s, v := nc.Card.CustomColor.HSV() - completionColor = NewColorFromHSV(h+30, s-0.2, v+0.2) + completionColor = NewColorFromHSV(h+0.04, s-0.2, v+0.2) } nc.Card.Result.Texture.SetColorMod(completionColor.RGB()) @@ -670,7 +670,7 @@ func (nc *NumberedContents) Color() Color { if nc.Card.CustomColor != nil { color = nc.Card.CustomColor h, s, v := nc.Card.CustomColor.HSV() - completedColor = NewColorFromHSV(h+30, s-0.2, v+0.2) + completedColor = NewColorFromHSV(h+0.04, s-0.2, v+0.2) } if !nc.Card.Properties.Get("hideMax").AsBool() && nc.PercentageComplete >= 0.99 { @@ -1507,9 +1507,11 @@ func (ic *ImageContents) Draw() { if shadowTexture != nil && (!ic.Card.VisualDragging || ic.Card.PinnedTo == nil || !ic.Card.PinnedTo.VisualDragging) { - tp := ic.Card.Page.Project.Camera.TranslatePoint(ic.Card.ShadowDisplayPosition) - tp.X += 4 - tp.Y += 4 + p := ic.Card.ShadowDisplayPosition + p.X += ic.Card.DisplayRect.W / 16 + p.Y += ic.Card.DisplayRect.H / 16 + + tp := ic.Card.Page.Project.Camera.TranslatePoint(p) dstRect := &sdl.FRect{ X: tp.X, diff --git a/go.mod b/go.mod index 25b4179..cc1e0d5 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,6 @@ module github.com/solarlune/masterplan -go 1.24.0 - -toolchain go1.24.3 +go 1.25.0 require ( github.com/Zyko0/go-sdl3 v0.0.0-20250919234044-0fbb60f62dd7 @@ -82,10 +80,10 @@ require ( github.com/ulikunitz/xz v0.5.15 // indirect go4.org v0.0.0-20230225012048-214862532bf5 // indirect golang.org/x/exp/shiny v0.0.0-20250819193227-8b4c13bb791b // indirect - golang.org/x/image v0.31.0 // indirect + golang.org/x/image v0.38.0 // indirect golang.org/x/mobile v0.0.0-20250911085028-6912353760cf // indirect golang.org/x/net v0.44.0 // indirect - golang.org/x/sync v0.17.0 // indirect + golang.org/x/sync v0.20.0 // indirect golang.org/x/sys v0.36.0 // indirect - golang.org/x/text v0.29.0 // indirect + golang.org/x/text v0.35.0 // indirect ) diff --git a/go.sum b/go.sum index b34b870..7c8ec91 100644 --- a/go.sum +++ b/go.sum @@ -274,8 +274,8 @@ golang.org/x/exp/shiny v0.0.0-20250819193227-8b4c13bb791b h1:OeyDhfAaNf4u4sBKDtc golang.org/x/exp/shiny v0.0.0-20250819193227-8b4c13bb791b/go.mod h1:QnFR+evpZFrYgSiu+d/Rn6g/6bNqLQTp+rzKaVpFoeI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.31.0 h1:mLChjE2MV6g1S7oqbXC0/UcKijjm5fnJLUYKIYrLESA= -golang.org/x/image v0.31.0/go.mod h1:R9ec5Lcp96v9FTF+ajwaH3uGxPH4fKfHHAVbUILxghA= +golang.org/x/image v0.38.0 h1:5l+q+Y9JDC7mBOMjo4/aPhMDcxEptsX+Tt3GgRQRPuE= +golang.org/x/image v0.38.0/go.mod h1:/3f6vaXC+6CEanU4KJxbcUZyEePbyKbaLoDOe4ehFYY= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -324,8 +324,8 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= -golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -358,8 +358,8 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= -golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= +golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= +golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/gui.go b/gui.go index 997fe32..7bbf6fd 100644 --- a/gui.go +++ b/gui.go @@ -3793,13 +3793,7 @@ func (cw *ColorWheel) Update() { h := float32(mpX) / float32(cw.HueStrip.W-1) - cw.SampledHue = NewColorFromHSV(float64(h), 1, 1) - - // r, g, b, _ := ColorAt(cw.HueStrip, int32(mpX), int32(mpY)) - - // fmt.Println(r, g, b) - - // cw.SampledHue = NewColor(r, g, b, 255) + cw.SampledHue = NewColorFromHSV(float64(h), float64(mpY)/float64(cw.HueStrip.H-1), 1) if cw.OnColorChange != nil { cw.OnColorChange() diff --git a/main.go b/main.go index 02ffcbd..64166c0 100644 --- a/main.go +++ b/main.go @@ -53,7 +53,7 @@ func init() { runtime.LockOSThread() - globals.Version = semver.MustParse("0.9.2") + globals.Version = semver.MustParse("0.9.3") globals.Keyboard = NewKeyboard() globals.Mouse = NewMouse() nm := NewMouse() diff --git a/resources.go b/resources.go index 7ffc618..4100e96 100644 --- a/resources.go +++ b/resources.go @@ -249,7 +249,7 @@ func (resource *Resource) Parse() { // Create shadow version - shadowSurface, _ := sdl.CreateSurface(int(w), int(h), surface.Format) + shadowSurface, _ := sdl.CreateSurface(int(w), int(h), sdl.PIXELFORMAT_RGBA32) surface.SetColorMod(0, 0, 0) surface.SetAlphaMod(20)