src/rconv/private/simfile_common

    Dark Mode
Search:
Group by:
  Source   Edit

Types

Attack = ref object
  length*: float             ## For how long the attack is active
  mods*: seq[string]         ## The modifiers which will be applied
  
An attack is a modifier which occurs at a time/note for a certain time   Source   Edit
BackgroundChange = ref object
  beat*: float               ## The beat on which the change occurs
  path*: string              ## The file path (or if it's a folder path, uses "default.lua") to the script file
  updateRate*: float         ## How often the change is updated
  crossFade*: bool           ## If it should use the cross-fade effect (overruled by `effect`)
  stretchRewind*: bool       ## If it should use the stretch-rewind effect (overruled by `effect`)
  stretchNoLoop*: bool       ## If it should use the stretch-noloop effect (overruled by `effect`)
  effect*: string            ## The background-effect to use
  file2*: string             ## The second file to load/use
  transition*: string        ## The the background transitions to this state
  color1*: Color             ## First color passed to the script files
  color2*: Color             ## Second color passed to the script files
  
A background change which occurrs at a specified time   Source   Edit
BpmChange = ref object
  beat*: float               ## At which beat the change occurs
  bpm*: float                ## To what BPM it should change
  
A bpm-change in a song   Source   Edit
ChartType {.pure.} = enum
  DanceSingle = "dance-single", ## 4k - 4k in single-player
  DanceDouble = "dance-double", ## 8k - 4k with 2 pads in single-player
  DanceCouple = "dance-couple", ## 8k - 4k with 2 pads for 2 people
  DanceRoutine = "dance-routine", ## 8k - 4k with 2 pads where players rotate
  DanceSolo = "dance-solo", ## 6k - 6k in single-player
  PumpSingle = "pump-single", ## 5k - 5k in single-player
  PumpHalfdouble = "pump-halfdouble", ## 6k - 5k with 2 pads in single-player, but only inner arrows
  PumpDouble = "pump-double", ## 10k - 5k with 2 pads in single-player
  PumpCouple = "pump-couple" ## 10k - 5k with 2 pads for 2 people
The type of the game-mode for which the chart is for   Source   Edit
Color = array[4, float]
A rgba color representation   Source   Edit
ComboChange = ref object
  beat*: float               ## When the combo-change should occur
  hit*: int                  ## How much a single hit should count to the combo
  miss*: int                 ## How many misses a single miss should count
  
Changes the combo count for hits/misses   Source   Edit
Delay = ref object
  beat*: float               ## At which beat the delay occurs
  duration*: float           ## For how long the delay holds on
  
A delay segment in a song   Source   Edit
Difficulty {.pure.} = enum
  Beginner = "beginner", Easy = "easy", Medium = "medium", Hard = "hard",
  Challenge = "challenge", Edit = "edit"
The difficulty of a chart. The same difficulty may only be defined once with the same game-mode, except for the Edit. Edit-Difficulties may be present unlimited amount of times.   Source   Edit
FakeSection = ref object
  beat*: float               ## The beat from when the fake-section should begin from
  duration*: float           ## How long the fake-section should last (in beats)
  
Marker for a section to make all notes fakes   Source   Edit
InstrumentTrack = ref object
  instrument*: string        ## The instrument name
  file*: string              ## The file-path to the track/song
  
A special track for a single instrument   Source   Edit
Label = ref object
  beat*: float               ## The beat on which the label is placed on
  content*: string           ## The text/content of the label
  
Label for a certain beat   Source   Edit
Modifier = ref object
  name*: string              ## The name of the modifier
  player*: string            ## The player for which the modifier is meant for
  approachRate*: int         ## The approach-rate
  magnitude*: float          ## The magnitude of the modifier
  isPercent*: bool           ## If the '_magnitude is percent based
  
Modifiers which may be applied to the song or on an individual note   Source   Edit
RadarValues = array[5, float]
Radar values from SM 3.9 (Stream, Voltage, Air, Freeze & Chaos)   Source   Edit
ScollSpeedChange = ref object
  beat*: float               ## The beat where the scroll-speed occurs on
  factor*: float             ## The factor of how much the scoll changes compared to the regular speed
  
Modifies the scroll speed bt a factor   Source   Edit
SpeedChange = ref object
  beat*: float               ## The beat where the speed-change occurs on
  ratio*: float              ## The ratio that will be applied
  duration*: float           ## How long it should take for the ratio to be applied (will be applied gradually)
  inSeconds*: bool           ## If the duration is specified in seconds or in beats
  
Modifies the speed of the chart by ratio   Source   Edit
Stop = ref object
  beat*: float               ## At which beat the stop occurs
  duration*: float           ## For how long the stop holds on
  
Stops/Freezes which happen in a song   Source   Edit
TickCount = ref object
  beat*: float               ## At which beat the tick-count changes
  count*: int                ## How many ticks it should change to
  
Specifies how many checkpoints a hold has in a beat.   Source   Edit
TimedAttack = ref object
  length*: float             ## For how long the attack is active
  mods*: seq[Modifier]       ## The modifiers which will be applied
  time*: float               ## The time when the attack occurs
  
An attack which happens at the specified time   Source   Edit
TimeSignature = ref object
  beat*: float               ## At which point the time-signature changes
  numerator*: int            ## The numerator of the signature
  denominator*: int          ## The deniminator of the signature
  
A time-signature change (ie. 3/4 or 7/8)   Source   Edit

Procs

func `$`(ct: ChartType): string {....raises: [], tags: [].}
  Source   Edit
func `$`(diff: Difficulty): string {....raises: [], tags: [].}
  Source   Edit
proc boolFlag(val: bool): string {....raises: [], tags: [].}
  Source   Edit
func columnCount(mode: ChartType): int {....raises: [], tags: [].}
Gets the column count for a ChartType   Source   Edit
func newAttack(length: float = 0.0; mods: seq[string] = @[]): Attack {.
    ...raises: [], tags: [].}
  Source   Edit
func newBackgroundChange(beat: float = 0.0; path: string = "";
                         updateRate: float = 0.0; crossFade: bool = false;
                         stretchRewind: bool = false;
                         stretchNoLoop: bool = false; effect: string = "";
                         file2: string = ""; transition: string = "";
                         color1: Color = [0.0, 0.0, 0.0, 0.0];
                         color2: Color = [0.0, 0.0, 0.0, 0.0]): BackgroundChange {.
    ...raises: [], tags: [].}
  Source   Edit
func newBpmChange(beat: float; bpm: float): BpmChange {....raises: [], tags: [].}
  Source   Edit
func newBpmChange(beat: Option[float]; bpm: Option[float]): BpmChange {.
    ...raises: [], tags: [].}
  Source   Edit
func newComboChange(beat: float; hit: int; miss: int): ComboChange {....raises: [],
    tags: [].}
  Source   Edit
func newComboChange(beat: Option[float]; hit: Option[int]; miss: Option[int]): ComboChange {.
    ...raises: [], tags: [].}
  Source   Edit
func newDelay(beat: float; duration: float): Delay {....raises: [], tags: [].}
  Source   Edit
func newDelay(beat: Option[float]; duration: Option[float]): Delay {....raises: [],
    tags: [].}
  Source   Edit
func newFakeSection(beat: float; duration: float): FakeSection {....raises: [],
    tags: [].}
  Source   Edit
func newFakeSection(beat: Option[float]; duration: Option[float]): FakeSection {.
    ...raises: [], tags: [].}
  Source   Edit
func newInstrumentTrack(instrument: string = ""; file: string = ""): InstrumentTrack {.
    ...raises: [], tags: [].}
  Source   Edit
func newLabel(beat: float = 0.0; content: string = ""): Label {....raises: [],
    tags: [].}
  Source   Edit
func newModifier(name: string; player: string = ""; approachRate: int = 1;
                 magnitude: float = 100; isPercent: bool = true): Modifier {.
    ...raises: [], tags: [].}
  Source   Edit
func newScollSpeedChange(beat: float; factor: float): ScollSpeedChange {.
    ...raises: [], tags: [].}
  Source   Edit
func newScollSpeedChange(beat: Option[float]; factor: Option[float]): ScollSpeedChange {.
    ...raises: [], tags: [].}
  Source   Edit
func newSpeedChange(beat: float; ratio: float; duration: float; inSeconds: bool): SpeedChange {.
    ...raises: [], tags: [].}
  Source   Edit
func newSpeedChange(beat: Option[float]; ratio: Option[float];
                    duration: Option[float]; inSeconds: Option[bool]): SpeedChange {.
    ...raises: [], tags: [].}
  Source   Edit
func newStop(beat: float; duration: float): Stop {....raises: [], tags: [].}
  Source   Edit
func newStop(beat: Option[float]; duration: Option[float]): Stop {....raises: [],
    tags: [].}
  Source   Edit
func newTickCount(beat: float; count: int): TickCount {....raises: [], tags: [].}
  Source   Edit
func newTickCount(beat: Option[float]; count: Option[int]): TickCount {.
    ...raises: [], tags: [].}
  Source   Edit
func newTimeSignature(beat: float; numerator: int; denominator: int): TimeSignature {.
    ...raises: [], tags: [].}
  Source   Edit
func newTimeSignature(beat: Option[float]; numerator: Option[int];
                      denominator: Option[int]): TimeSignature {....raises: [],
    tags: [].}
  Source   Edit
func parseAttack(data: string): Attack {....raises: [], tags: [].}
  Source   Edit
func parseBackgroundChanges(data: string): seq[BackgroundChange] {....raises: [],
    tags: [].}
  Source   Edit
func parseBpms(data: string): seq[BpmChange] {....raises: [], tags: [].}
  Source   Edit
func parseColor(data: string): Color {....raises: [], tags: [].}
  Source   Edit
func parseComboChanges(data: string): seq[ComboChange] {....raises: [], tags: [].}
  Source   Edit
func parseDelays(data: string): seq[Delay] {....raises: [], tags: [].}
  Source   Edit
func parseFakeSections(data: string): seq[FakeSection] {....raises: [], tags: [].}
  Source   Edit
func parseIntrumentTracks(data: string): seq[InstrumentTrack] {....raises: [],
    tags: [].}
  Source   Edit
func parseLabels(data: string): seq[Label] {....raises: [ValueError], tags: [].}
  Source   Edit
func parseModifier(data: string): Modifier {....raises: [], tags: [].}
  Source   Edit
func parseRadarValues(data: string): RadarValues {....raises: [], tags: [].}
  Source   Edit
func parseScollSpeedChanges(data: string): seq[ScollSpeedChange] {....raises: [],
    tags: [].}
  Source   Edit
func parseSpeedChanges(data: string): seq[SpeedChange] {....raises: [], tags: [].}
  Source   Edit
func parseStops(data: string): seq[Stop] {....raises: [], tags: [].}
  Source   Edit
func parseTickCounts(data: string): seq[TickCount] {....raises: [], tags: [].}
  Source   Edit
func parseTimeSignatures(data: string): seq[TimeSignature] {....raises: [],
    tags: [].}
  Source   Edit
proc putTag(str: var string; tag: string; value: string): void {.
    ...raises: [ValueError], tags: [].}
  Source   Edit
func splitByComma(data: string; doStrip: bool = false): seq[string] {.
    ...raises: [], tags: [].}
  Source   Edit
func write(attack: TimedAttack): string {....raises: [ValueError], tags: [].}
  Source   Edit
func write(change: BackgroundChange): string {....raises: [], tags: [].}
  Source   Edit
func write(color: Color): string {....raises: [], tags: [].}
  Source   Edit
func write(modi: Modifier): string {....raises: [ValueError], tags: [].}
  Source   Edit