horsegen: generate saddles

This commit is contained in:
2026-02-09 20:51:25 -05:00
parent 2fcd608102
commit c58dbd19b0
10 changed files with 2336 additions and 10 deletions

View File

@@ -26,6 +26,9 @@ var skillSQL string
//go:embed race.sql
var raceSQL string
//go:embed saddle.sql
var saddleSQL string
type (
Character struct{}
SkillGroup struct{}
@@ -359,3 +362,46 @@ func Races(ctx context.Context, db *sqlitex.Pool) ([]Race, error) {
}
return r, nil
}
type Saddle struct {
ID int
Name string
Races [3]int
Type int
Primary int
Alternate int
}
func Saddles(ctx context.Context, db *sqlitex.Pool) ([]Saddle, error) {
conn, err := db.Take(ctx)
defer db.Put(conn)
if err != nil {
return nil, fmt.Errorf("couldn't get connection for saddles: %w", err)
}
stmt, _, err := conn.PrepareTransient(saddleSQL)
if err != nil {
return nil, fmt.Errorf("couldn't prepare statement for saddles: %w", err)
}
defer stmt.Finalize()
var r []Saddle
for {
ok, err := stmt.Step()
if err != nil {
return nil, fmt.Errorf("error stepping saddles: %w", err)
}
if !ok {
break
}
s := Saddle{
ID: stmt.ColumnInt(0),
Name: stmt.ColumnText(1),
Races: [3]int{stmt.ColumnInt(2), stmt.ColumnInt(3), stmt.ColumnInt(4)},
Type: stmt.ColumnInt(5),
Primary: stmt.ColumnInt(6),
Alternate: stmt.ColumnInt(7),
}
r = append(r, s)
}
return r, nil
}