commit b234b2b594f569c7de2d27192cade3570385ed9b
parent 789cd1562e4f9b02ef822004a3c7ed5ace83d414
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Tue, 5 Dec 2023 20:45:58 -0500
cleanup
Diffstat:
1 file changed, 15 insertions(+), 16 deletions(-)
diff --git a/pkg/web/handlers/poker.go b/pkg/web/handlers/poker.go
@@ -42,7 +42,7 @@ func (p *Poker) GetOrCreateGame(roomID string) *PokerGame {
if !found {
g = &PokerGame{
PlayersEventCh: make(chan PlayerEvent),
- Players: make([]PokerStandingPlayer, NbPlayers),
+ Players: make([]*PokerStandingPlayer, NbPlayers),
}
p.games[roomID] = g
}
@@ -98,7 +98,7 @@ type PlayerCard struct {
type PokerGame struct {
sync.Mutex
PlayersEventCh chan PlayerEvent
- Players []PokerStandingPlayer
+ Players []*PokerStandingPlayer
Ongoing *Ongoing
DealerIdx int
IsGameDone bool
@@ -151,11 +151,10 @@ func isRoundSettled(players []*PokerPlayer) bool {
}
func (g *PokerGame) SitPlayer(authUser *database.User, pos int) error {
- if g.Players[pos].Username != "" {
+ if g.Players[pos] != nil {
return errors.New("seat already taken")
}
- g.Players[pos].Username = authUser.Username.String()
- g.Players[pos].Cash = 1000
+ g.Players[pos] = &PokerStandingPlayer{Username: authUser.Username.String(), Cash: 1000}
return nil
}
@@ -187,7 +186,7 @@ func (g *PokerGame) Deal(roomID string) {
players := make([]*PokerPlayer, NbPlayers)
for idx := range g.Players {
var player *PokerPlayer
- if g.Players[idx].Username != "" {
+ if g.Players[idx] != nil {
player = &PokerPlayer{Username: g.Players[idx].Username, Cash: g.Players[idx].Cash}
}
players[idx] = player
@@ -473,7 +472,7 @@ func (g *PokerGame) Deal(roomID string) {
// Sync "ongoing players" with "room players" objects
for idx := range g.Players {
- if g.Ongoing.Players[idx] != nil {
+ if g.Ongoing.Players[idx] != nil && g.Players[idx] != nil {
g.Players[idx].Cash = g.Ongoing.Players[idx].Cash
}
}
@@ -490,7 +489,7 @@ func (g *PokerGame) Deal(roomID string) {
func (g *PokerGame) CountSeated() (count int) {
for _, p := range g.Players {
- if p.Username != "" {
+ if p != nil {
count++
}
}
@@ -501,7 +500,7 @@ func (g *PokerGame) IsSeated(player string) (bool, int) {
isSeated := false
pos := 0
for idx, p := range g.Players {
- if p.Username == player {
+ if p != nil && p.Username == player {
isSeated = true
pos = idx + 1
break
@@ -659,8 +658,8 @@ func PokerUnSitHandler(c echo.Context) error {
var idx int
found := false
for i, p := range g.Players {
- if p.Username == authUser.Username.String() {
- g.Players[i].Username = ""
+ if p != nil && p.Username == authUser.Username.String() {
+ g.Players[i] = nil
idx = i
found = true
break
@@ -753,7 +752,7 @@ func buildTakeSeatHtml(authUser *database.User, g *PokerGame, roomID string) str
seated, _ := g.IsSeated(authUser.Username.String())
for i, p := range g.Players {
takeSeatBtns += `<iframe src="/poker/` + roomID + `/sit/` + itoa(i+1) + `" class="takeSeat takeSeat` + itoa(i+1) + `"></iframe>`
- if p.Username != "" || seated {
+ if p != nil || seated {
takeSeatBtns += `<style>.takeSeat` + itoa(i+1) + ` { display: none; }</style>`
}
}
@@ -793,7 +792,7 @@ func buildSeatsHtml(g *PokerGame) string {
for i, p := range g.Players {
seats += `<div id="seat` + itoa(i+1) + `"></div>`
seats += `<div id="seat` + itoa(i+1) + `_cash"></div>`
- if p.Username != "" {
+ if p != nil {
seats += `<style>#seat` + itoa(i+1) + `:before { content: "` + p.Username + `"; }</style>`
seats += `<style>#seat` + itoa(i+1) + `_cash:before { content: "` + itoa(p.Cash) + `"; }</style>`
}
@@ -822,7 +821,7 @@ func drawGameStartedEvent(evt GameStartedEvent) string {
func drawGameIsDoneHtml(g *PokerGame, evt GameIsDoneEvent) (html string) {
html += `<style>#deckStr:before { content: "` + evt.DeckStr + `"; }</style>`
for i, p := range g.Players {
- if p.Username != "" {
+ if p != nil {
html += `<style>#seat` + itoa(i+1) + `_cash:before { content: "` + itoa(p.Cash) + `"; }</style>`
}
}
@@ -867,12 +866,12 @@ func drawSeatsHtml(authUser *database.User, g *PokerGame) string {
html := "<style>"
seated, _ := g.IsSeated(authUser.Username.String())
for i, p := range g.Players {
- if p.Username != "" || seated {
+ if p != nil || seated {
html += `.takeSeat` + itoa(i+1) + ` { display: none; }`
} else {
html += `.takeSeat` + itoa(i+1) + ` { display: block; }`
}
- if p.Username != "" {
+ if p != nil {
html += `#seat` + itoa(i+1) + `:before { content: "` + p.Username + `"; }`
html += `#seat` + itoa(i+1) + `_cash:before { content: "` + itoa(p.Cash) + `"; }`
} else {