From 1515bc8599c99d5a637fabd13dcbe337609aeb19 Mon Sep 17 00:00:00 2001 From: Ilia Denisov Date: Wed, 11 Feb 2026 07:52:22 +0200 Subject: [PATCH] refactor: remove group & fleet --- internal/controller/ship_group.go | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/internal/controller/ship_group.go b/internal/controller/ship_group.go index 1424da5..3761aee 100644 --- a/internal/controller/ship_group.go +++ b/internal/controller/ship_group.go @@ -68,22 +68,18 @@ func (c *Cache) ShipGroupDestroyItem(i int) { sg.Number -= 1 } -func (c *Cache) DeleteShipGroup(i int) { - c.validateShipGroupIndex(i) - c.unsafeDeleteShipGroup(i) -} - func (c *Cache) DeleteKilledShipGroups() { keepFleet := make(map[uuid.UUID]bool, len(c.g.Fleets)) - for i := len(c.g.ShipGroups) - 1; i >= 0; i-- { - if c.g.ShipGroups[i].FleetID != nil { - id := *c.g.ShipGroups[i].FleetID - keepFleet[id] = keepFleet[id] || c.g.ShipGroups[i].Number > 0 + for sgi := len(c.g.ShipGroups) - 1; sgi >= 0; sgi-- { + if c.g.ShipGroups[sgi].FleetID != nil { + id := *c.g.ShipGroups[sgi].FleetID + keepFleet[id] = keepFleet[id] || c.g.ShipGroups[sgi].Number > 0 } - if c.g.ShipGroups[i].Number == 0 { - c.unsafeDeleteShipGroup(i) + if c.g.ShipGroups[sgi].Number == 0 { + c.g.ShipGroups = append(c.g.ShipGroups[:sgi], c.g.ShipGroups[sgi+1:]...) } } + c.invalidateShipGroupCache() for id, keep := range keepFleet { if keep { continue @@ -122,7 +118,7 @@ func (c *Cache) shipGroupMerge(ri int) { for i := 0; i < len(raceGroups)-1; i++ { for j := len(raceGroups) - 1; j > i; j-- { if raceGroups[i].Equal(raceGroups[j]) { - raceGroups[i].ID = raceGroups[j].ID + raceGroups[i].ID = raceGroups[j].ID // resulting group will have latest ID raceGroups[i].Number += raceGroups[j].Number raceGroups = append(raceGroups[:j], raceGroups[j+1:]...) } @@ -141,8 +137,8 @@ func (c *Cache) shipGroupMerge(ri int) { slices.Sort(toDelete) slices.Reverse(toDelete) - for _, idx := range toDelete { - c.unsafeDeleteShipGroup(idx) + for _, sgi := range toDelete { + c.unsafeDeleteShipGroup(sgi) } for i := range raceGroups {