From aa9f6be4113379089970c391d495945db6550919 Mon Sep 17 00:00:00 2001 From: gravestench Date: Mon, 26 Oct 2020 09:24:04 +0000 Subject: [PATCH] Lint cleanup gocyclo (#847) * d2player/inventory.go: fixed gocyclo error, broke up render method to smaller methods * d2client/game_client.go: suppressing gocyclo error for OnPacketReceived, doesnt make sense to split * d2remoteclient/remote_client_connection.go: suppressing gocyclo error for decodeToPacket, doesnt make sense to split * d2dcc/dcc_direction.go: suppressing gocyclo error in generateFrames --- d2common/d2fileformats/d2dcc/dcc_direction.go | 2 +- d2game/d2player/inventory.go | 110 ++++++++---------- .../remote_client_connection.go | 1 + d2networking/d2client/game_client.go | 1 + 4 files changed, 51 insertions(+), 63 deletions(-) diff --git a/d2common/d2fileformats/d2dcc/dcc_direction.go b/d2common/d2fileformats/d2dcc/dcc_direction.go index 22b6900f..bdd245cd 100644 --- a/d2common/d2fileformats/d2dcc/dcc_direction.go +++ b/d2common/d2fileformats/d2dcc/dcc_direction.go @@ -265,7 +265,7 @@ func (v *DCCDirection) generateFrames(pcd *d2datautils.BitMuncher) { v.PixelBuffer = nil } -//nolint:funlen,gocognit // can't reduce +//nolint:funlen,gocognit,gocyclo // can't reduce func (v *DCCDirection) fillPixelBuffer(pcd, ec, pm, et, rp *d2datautils.BitMuncher) { var pixelMaskLookup = []int{0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4} diff --git a/d2game/d2player/inventory.go b/d2game/d2player/inventory.go index ecea40e4..6c1a5249 100644 --- a/d2game/d2player/inventory.go +++ b/d2game/d2player/inventory.go @@ -170,71 +170,59 @@ func (g *Inventory) Render(target d2interface.Surface) error { return nil } - if err := g.frame.Render(target); err != nil { - return err - } - - x, y := g.originX+1, g.originY - y += 64 - - // Panel - // Top left - if err := g.panel.SetCurrentFrame(frameInventoryTopLeft); err != nil { - return err - } - - w, h := g.panel.GetCurrentFrameSize() - - g.panel.SetPosition(x, y+h) - - if err := g.panel.Render(target); err != nil { - return err - } - - x += w - - // Top right - if err := g.panel.SetCurrentFrame(frameInventoryTopRight); err != nil { - return err - } - - _, h = g.panel.GetCurrentFrameSize() - - g.panel.SetPosition(x, y+h) - - if err := g.panel.Render(target); err != nil { - return err - } - - y += h - - // Bottom right - if err := g.panel.SetCurrentFrame(frameInventoryBottomRight); err != nil { - return err - } - - _, h = g.panel.GetCurrentFrameSize() - g.panel.SetPosition(x, y+h) - - if err := g.panel.Render(target); err != nil { - return err - } - - // Bottom left - if err := g.panel.SetCurrentFrame(frameInventoryBottomLeft); err != nil { - return err - } - - w, h = g.panel.GetCurrentFrameSize() - - g.panel.SetPosition(x-w, y+h) - - if err := g.panel.Render(target); err != nil { + if err := g.renderFrame(target); err != nil { return err } g.grid.Render(target) + g.renderItemHover(target) + + return nil +} + +func (g *Inventory) renderFrame(target d2interface.Surface) error { + if err := g.frame.Render(target); err != nil { + return err + } + + frames := []int{ + frameInventoryTopLeft, + frameInventoryTopRight, + frameInventoryBottomRight, + frameInventoryBottomLeft, + } + + x, y := g.originX+1, g.originY + y += 64 + + for _, frame := range frames { + if err := g.panel.SetCurrentFrame(frame); err != nil { + return err + } + + w, h := g.panel.GetCurrentFrameSize() + + g.panel.SetPosition(x, y+h) + + if err := g.panel.Render(target); err != nil { + return err + } + + switch frame { + case frameInventoryTopLeft: + x += w + case frameInventoryTopRight: + y += h + case frameInventoryBottomRight: + x -= w + } + } + + return nil +} + +func (g *Inventory) renderItemHover(target d2interface.Surface) { hovering := false for idx := range g.grid.items { @@ -258,8 +246,6 @@ func (g *Inventory) Render(target d2interface.Surface) error { } g.hovering = hovering - - return nil } func (g *Inventory) renderItemDescription(target d2interface.Surface, i InventoryItem) { diff --git a/d2networking/d2client/d2remoteclient/remote_client_connection.go b/d2networking/d2client/d2remoteclient/remote_client_connection.go index 36e14a35..96bd2ea4 100644 --- a/d2networking/d2client/d2remoteclient/remote_client_connection.go +++ b/d2networking/d2client/d2remoteclient/remote_client_connection.go @@ -163,6 +163,7 @@ func (r *RemoteClientConnection) bytesToJSON(buffer []byte) (string, d2netpacket // decodeToPacket unmarshals the JSON string into the correct struct // and returns a NetPacket declaring that struct. +// nolint:gocyclo // switch statement on packet type makes sense, no need to change func (r *RemoteClientConnection) decodeToPacket(t d2netpackettype.NetPacketType, data string) (d2netpacket.NetPacket, error) { var np = d2netpacket.NetPacket{} diff --git a/d2networking/d2client/game_client.go b/d2networking/d2client/game_client.go index 109580a8..43f1418f 100644 --- a/d2networking/d2client/game_client.go +++ b/d2networking/d2client/game_client.go @@ -118,6 +118,7 @@ func (g *GameClient) Destroy() error { // OnPacketReceived is called by the ClientConection and processes incoming // packets. +// nolint:gocyclo // switch statement on packet type makes sense, no need to change func (g *GameClient) OnPacketReceived(packet d2netpacket.NetPacket) error { switch packet.PacketType { case d2netpackettype.GenerateMap: