horsegen: generate saddles
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user