vendor!
This commit is contained in:
111
vendor/github.com/thehowl/go-osuapi/mods.go
generated
vendored
Normal file
111
vendor/github.com/thehowl/go-osuapi/mods.go
generated
vendored
Normal file
@@ -0,0 +1,111 @@
|
||||
package osuapi
|
||||
|
||||
// Mods in the game.
|
||||
const (
|
||||
ModNoFail Mods = 1 << iota
|
||||
ModEasy
|
||||
ModNoVideo
|
||||
ModHidden
|
||||
ModHardRock
|
||||
ModSuddenDeath
|
||||
ModDoubleTime
|
||||
ModRelax
|
||||
ModHalfTime
|
||||
ModNightcore
|
||||
ModFlashlight
|
||||
ModAutoplay
|
||||
ModSpunOut
|
||||
ModRelax2
|
||||
ModPerfect
|
||||
ModKey4
|
||||
ModKey5
|
||||
ModKey6
|
||||
ModKey7
|
||||
ModKey8
|
||||
ModFadeIn
|
||||
ModRandom
|
||||
ModLastMod
|
||||
ModKey9
|
||||
ModKey10
|
||||
ModKey1
|
||||
ModKey3
|
||||
ModKey2
|
||||
ModFreeModAllowed = ModNoFail | ModEasy | ModHidden | ModHardRock | ModSuddenDeath | ModFlashlight | ModFadeIn | ModRelax | ModRelax2 | ModSpunOut | ModKeyMod
|
||||
ModKeyMod = ModKey4 | ModKey5 | ModKey6 | ModKey7 | ModKey8
|
||||
)
|
||||
|
||||
// Mods is a bitwise enum of mods used in a score.
|
||||
//
|
||||
// Mods may appear complicated to use for a beginner programmer. Fear not!
|
||||
// This is how hard they can get for creation of a mod combination:
|
||||
//
|
||||
// myModCombination := osuapi.ModHardRock | osuapi.ModDoubleTime | osuapi.ModHidden | osuapi.ModSpunOut
|
||||
//
|
||||
// As for checking that an existing mod comination is enabled:
|
||||
//
|
||||
// if modCombination&osuapi.ModHardRock != 0 {
|
||||
// // HardRock is enabled
|
||||
// }
|
||||
//
|
||||
// To learn more about bitwise operators, have a look at it on wikipedia:
|
||||
// https://en.wikipedia.org/wiki/Bitwise_operation#Bitwise_operators
|
||||
type Mods int
|
||||
|
||||
var modsString = [...]string{
|
||||
"NF",
|
||||
"EZ",
|
||||
"NV",
|
||||
"HD",
|
||||
"HR",
|
||||
"SD",
|
||||
"DT",
|
||||
"RX",
|
||||
"HT",
|
||||
"NC",
|
||||
"FL",
|
||||
"AU", // Auto.
|
||||
"SO",
|
||||
"AP", // Autopilot.
|
||||
"PF",
|
||||
"K4",
|
||||
"K5",
|
||||
"K6",
|
||||
"K7",
|
||||
"K8",
|
||||
"K9",
|
||||
"RN", // Random
|
||||
"LM", // LastMod. Cinema?
|
||||
"K9",
|
||||
"K0",
|
||||
"K1",
|
||||
"K3",
|
||||
"K2",
|
||||
}
|
||||
|
||||
// ParseMods parse a string with mods in the format "HDHRDT"
|
||||
func ParseMods(mods string) (m Mods) {
|
||||
modsSl := make([]string, len(mods)/2)
|
||||
for n, modPart := range mods {
|
||||
modsSl[n/2] += string(modPart)
|
||||
}
|
||||
for _, mod := range modsSl {
|
||||
for index, availableMod := range modsString {
|
||||
if availableMod == mod {
|
||||
m |= 1 << uint(index)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (m Mods) String() (s string) {
|
||||
for i := 0; i < len(modsString); i++ {
|
||||
activated := 1&m == 1
|
||||
if activated {
|
||||
s += modsString[i]
|
||||
}
|
||||
m >>= 1
|
||||
}
|
||||
return
|
||||
}
|
Reference in New Issue
Block a user