horsegen: generate races

This commit is contained in:
2026-01-30 23:25:44 -05:00
parent 9dd18ed972
commit 34edcf97a7
11 changed files with 4316 additions and 646 deletions

View File

@@ -23,6 +23,9 @@ var skillGroupSQL string
//go:embed skill.sql
var skillSQL string
//go:embed race.sql
var raceSQL string
type (
Character struct{}
SkillGroup struct{}
@@ -315,3 +318,44 @@ func Skills(ctx context.Context, db *sqlitex.Pool) ([]Skill, error) {
}
return r, nil
}
type Race struct {
ID int
Name string
Grade int
ThumbnailID int
Primary int
}
func Races(ctx context.Context, db *sqlitex.Pool) ([]Race, error) {
conn, err := db.Take(ctx)
defer db.Put(conn)
if err != nil {
return nil, fmt.Errorf("couldn't get connection for races: %w", err)
}
stmt, _, err := conn.PrepareTransient(raceSQL)
if err != nil {
return nil, fmt.Errorf("couldn't prepare statement for races: %w", err)
}
defer stmt.Finalize()
var r []Race
for {
ok, err := stmt.Step()
if err != nil {
return nil, fmt.Errorf("error stepping races: %w", err)
}
if !ok {
break
}
race := Race{
ID: stmt.ColumnInt(0),
Name: stmt.ColumnText(1),
Grade: stmt.ColumnInt(2),
ThumbnailID: stmt.ColumnInt(3),
Primary: stmt.ColumnInt(4),
}
r = append(r, race)
}
return r, nil
}