diff options
| author | historia <[not public]> | 2026-09-15 15:35:52 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-09-15 15:35:52 -0400 |
| commit | 0b0b25222b3131ada79ff78c28eb8bf07d977deb (patch) | |
| tree | 2ceaef5203595044f66a8f00064cd8e017f8f48d /internal/game/core_course.go | |
| parent | 396c3facb8287b9a34076cae8f3d7b300d366d99 (diff) | |
| download | thehouseoficarus-0b0b25222b3131ada79ff78c28eb8bf07d977deb.tar.gz | |
feat: single-owner game state, transactional lifecycle, durable money on server stop
Diffstat (limited to 'internal/game/core_course.go')
| -rw-r--r-- | internal/game/core_course.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/internal/game/core_course.go b/internal/game/core_course.go index 232e6dc..15bd47e 100644 --- a/internal/game/core_course.go +++ b/internal/game/core_course.go @@ -70,6 +70,10 @@ type ObstacleInfo struct { var obstacleVerbs = map[string]bool{} +// obstacleVerbsMu guards the global obstacle-verb set: course loading +// rebuilds it, and command classification reads it from session tasks. +var obstacleVerbsMu sync.RWMutex + var verbGerund = map[string]string{ "scramble": "scrambling", "jump": "jumping", @@ -251,5 +255,7 @@ func (cs *CourseStore) loadAllLocked() { return nil }) + obstacleVerbsMu.Lock() obstacleVerbs = localVerbs + obstacleVerbsMu.Unlock() } |
