thing_put and thing_spawn made a new record for every Thing placed, and the world places and removes them all day (an animal's sign and bed, a drop, a fish), so play grew by a record per placement. Removed records wait in a queue compacted in place; once 32 wait, the oldest is set back as new with a new uid. ludic.base's grid_reserve makes the buckets for n rows now, since a rehash in play leaves the old bucket array behind. Tests: a record comes back only past the lag, as new, with a new uid, the indexes agree, and the spare queue stays bounded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
16 lines
501 B
Text
16 lines
501 B
Text
# ludic.things - things placed in a world (a tent, a fire ring, a branch on the ground): the game
|
|
# names the kinds and draws them; the package keeps them, answers where they are, and saves them
|
|
module ludic_things uses ludic_base
|
|
numbers float
|
|
import "ludic.base"
|
|
import "kinds.ludic"
|
|
import "port.ludic"
|
|
import "store.ludic"
|
|
import "verbs.ludic"
|
|
import "moves.ludic"
|
|
import "queries.ludic"
|
|
import "near.ludic"
|
|
import "chunks.ludic"
|
|
import "dispatch.ludic"
|
|
import "system.ludic"
|
|
import "spare.ludic"
|