Skip to content

Storage #13

Description

@magnetardev

Psudeo-code of some of the tables/general storage stuff we'll need:

table Game {
    id:         @unique(u64)
    name:       string
    system:     GameSystem
    boxart:     ImageRef?   // this should be a URL of some kind, ideally local (but NSCache exists so that may not be an issue)
    sha1:        data
    dateAdded:  date
    datePlayed: date?
}

table Cheat {
    id:         @unique(u64)
    game:       @foreign(Game.id)
    name:       string      // user-picked display name
    enabled:    bool
    format:     string
    code:       string
}

table SaveState {
    game:       u64
    name:       string
    date:       date
    preview:    url?
    path:       url?
}
 
 table ControlBindings {
    id:         @unique(u64)
    auxId:      string      // auxiliary identifier, this is really just used for the controller id
    kind:       ControlBindingKind
    touch:      @foreign(TouchControlBindings.id)?
    gamepad:    @foreign(GamepadControlBindings.id)?
    keyboard:   @foreign(KeyboardControlBindings.id)?
}
 
table TouchControlBindings {
    // TODO: this is a pretty complex storage type...
    id:         @unique(u64)
}

table GamepadControlBindings {
    // TODO: this is a pretty complex storage type...
    id:         @unique(u64)
}

table KeyboardControlBindings {
    // TODO: this is a pretty complex storage type...
    id:         @unique(u64)
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions