commit fd77bdbe8950385fe396fcf7ca335f157452c299
parent 57e8dcf57d17f728c4b175d6a2385c27db525b9a
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 21 Dec 2023 13:48:59 -0500
cleanup
Diffstat:
2 files changed, 28 insertions(+), 26 deletions(-)
diff --git a/pkg/utils/rwmtx/rwmtx.go b/pkg/utils/rwmtx/rwmtx.go
@@ -102,3 +102,21 @@ func (m *RWMtx[T]) WithE(clb func(v *T) error) error {
defer m.Unlock()
return clb(&m.v)
}
+
+//----------------------
+
+type RWMtxSlice[T any] struct {
+ RWMtx[[]T]
+}
+
+func (s *RWMtxSlice[T]) Append(els ...T) {
+ s.With(func(v *[]T) { *v = append(*v, els...) })
+}
+
+func (s *RWMtxSlice[T]) Clone() (out []T) {
+ s.RWith(func(v []T) {
+ out = make([]T, len(v))
+ copy(out, v)
+ })
+ return
+}
diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go
@@ -127,25 +127,9 @@ func (e playerEvent) getAction() PlayerAction {
var PokerInstance = newPoker()
-type rwMtxSlice[T any] struct {
- rwmtx.RWMtx[[]T]
-}
-
-func (s *rwMtxSlice[T]) append(els ...T) {
- s.With(func(v *[]T) { *v = append(*v, els...) })
-}
-
-func (s *rwMtxSlice[T]) clone() (out []T) {
- s.RWith(func(v []T) {
- out = make([]T, len(v))
- copy(out, v)
- })
- return
-}
-
type ongoingGame struct {
- logEvents rwMtxSlice[LogEvent]
- events rwMtxSlice[PokerEvent]
+ logEvents rwmtx.RWMtxSlice[LogEvent]
+ events rwmtx.RWMtxSlice[PokerEvent]
waitTurnEvent rwmtx.RWMtx[PokerWaitTurnEvent]
autoActionEvent rwmtx.RWMtx[AutoActionEvent]
players pokerPlayers
@@ -287,7 +271,7 @@ type gameResult struct {
func (g *PokerGame) GetLogs() (out []LogEvent) {
if g.ongoing != nil {
- out = g.ongoing.logEvents.clone()
+ out = g.ongoing.logEvents.Clone()
}
return
}
@@ -553,7 +537,7 @@ func (g *PokerGame) unSitPlayer(gPlayers *seatedPlayers, seatedPlayer *seatedPla
for _, card := range playerCards {
evt := PokerEvent{ID: "card" + itoa(card.idx), Name: "", Idx: card.idx, Top: BurnStackY, Left: BurnStackX, Angle: "0deg", Reveal: false}
PokerPubSub.Pub(g.roomID.Topic(), evt)
- ongoing.events.append(evt)
+ ongoing.events.Append(evt)
}
})
}
@@ -596,7 +580,7 @@ func (g *PokerGame) newLogEvent(msg string) {
logEvt := LogEvent{Message: msg}
PokerPubSub.Pub(g.roomID.LogsTopic(), logEvt)
if ongoing != nil {
- ongoing.logEvents.append(logEvt)
+ ongoing.logEvents.Append(logEvt)
}
}
@@ -622,7 +606,7 @@ func showCards(g *PokerGame, seats []Seat) {
evt2 := PokerEvent{ID: "card" + itoa(secondCard.idx), Name: secondCard.name, Idx: secondCard.idx, Top: seatData.Top, Left: seatData.Left + 53, Reveal: true}
PokerPubSub.Pub(roomTopic, evt1)
PokerPubSub.Pub(roomTopic, evt2)
- ongoing.events.append(evt1, evt2)
+ ongoing.events.Append(evt1, evt2)
}
}
}
@@ -692,7 +676,7 @@ func foldPlayer(g *PokerGame, p *pokerPlayer) {
evt2 := PokerEvent{ID: "card" + itoa(secondCardIdx), Name: "", Idx: secondCardIdx, Top: BurnStackY, Left: BurnStackX, Angle: "0deg", Reveal: false}
PokerPubSub.Pub(roomTopic, evt1)
PokerPubSub.Pub(roomTopic, evt2)
- g.ongoing.events.append(evt1, evt2)
+ g.ongoing.events.Append(evt1, evt2)
}
func doUnsit(g *PokerGame, p *pokerPlayer, playerAlive *int) int {
@@ -1059,7 +1043,7 @@ func burnCard(g *PokerGame, idx, burnIdx *int) {
Left: BurnStackX + (*burnIdx * 4),
}
PokerPubSub.Pub(g.roomID.Topic(), evt)
- ongoing.events.append(evt)
+ ongoing.events.Append(evt)
*burnIdx++
}
@@ -1076,7 +1060,7 @@ func dealCard(g *PokerGame, idx *int, dealCardIdx int) {
Reveal: true,
}
PokerPubSub.Pub(g.roomID.Topic(), evt)
- ongoing.events.append(evt)
+ ongoing.events.Append(evt)
ongoing.communityCards = append(ongoing.communityCards, card)
}
@@ -1128,7 +1112,7 @@ func dealPlayersCards(g *PokerGame, seats []Seat, idx *int) {
*pCards = append(*pCards, playerCard{idx: *idx, name: card})
})
- ongoing.events.append(evt, evt1)
+ ongoing.events.Append(evt, evt1)
}
}
}