added TaikoGradualPerformanceAttributes
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
- Added `ManiaGradualDifficultyAttributes`. Suitable to calculate a map's difficulty after every or every few objects instead of calling the `stars` function over and over.
|
||||
- Added `ManiaGradualPerformanceAttributes`. Suitable to calculate the performance on a map after every or every few objects instead of using `ManiaPP` over and over.
|
||||
- Added `TaikoGradualDifficultyAttributes`. Suitable to calculate a map's difficulty after every or every few objects instead of calling the `stars` function over and over.
|
||||
- Added `TaikoGradualPerformanceAttributes`. Suitable to calculate the performance on a map after every or every few objects instead of using `TaikoPP` over and over.
|
||||
|
||||
# v0.3.0
|
||||
|
||||
|
||||
@@ -0,0 +1,356 @@
|
||||
osu file format v14
|
||||
|
||||
[General]
|
||||
AudioFilename: audio.mp3
|
||||
AudioLeadIn: 0
|
||||
PreviewTime: 8074
|
||||
Countdown: 0
|
||||
SampleSet: Normal
|
||||
StackLeniency: 0.7
|
||||
Mode: 1
|
||||
LetterboxInBreaks: 0
|
||||
WidescreenStoryboard: 0
|
||||
|
||||
[Editor]
|
||||
DistanceSpacing: 0.6
|
||||
BeatDivisor: 4
|
||||
GridSize: 16
|
||||
TimelineZoom: 1.5
|
||||
|
||||
[Metadata]
|
||||
Title:Inferno
|
||||
TitleUnicode:インフェルノ
|
||||
Artist:9mm Parabellum Bullet
|
||||
ArtistUnicode:9mm Parabellum Bullet
|
||||
Creator:Nofool
|
||||
Version:Muzukashii
|
||||
Source:ベルセルク
|
||||
Tags:Berserk (2016)
|
||||
BeatmapID:1028484
|
||||
BeatmapSetID:481954
|
||||
|
||||
[Difficulty]
|
||||
HPDrainRate:6
|
||||
CircleSize:2
|
||||
OverallDifficulty:5
|
||||
ApproachRate:8
|
||||
SliderMultiplier:1.4
|
||||
SliderTickRate:1
|
||||
|
||||
[Events]
|
||||
//Background and Video events
|
||||
0,0,"berserk_armor_bg.jpg",0,0
|
||||
//Break Periods
|
||||
//Storyboard Layer 0 (Background)
|
||||
//Storyboard Layer 1 (Fail)
|
||||
//Storyboard Layer 2 (Pass)
|
||||
//Storyboard Layer 3 (Foreground)
|
||||
//Storyboard Sound Samples
|
||||
|
||||
[TimingPoints]
|
||||
690,307.692307692308,3,1,0,100,1,0
|
||||
15459,-100,3,1,0,100,0,1
|
||||
22536,-100,3,1,0,100,0,0
|
||||
37536,-125,3,1,0,70,0,0
|
||||
44920,-100,3,1,0,100,0,0
|
||||
78228,-100,3,1,0,100,0,1
|
||||
85305,-100,3,1,0,100,0,0
|
||||
87382,-83.3333333333333,3,1,0,100,0,0
|
||||
|
||||
|
||||
[HitObjects]
|
||||
256,192,690,1,8,0:0:0:0:
|
||||
256,192,843,1,8,0:0:0:0:
|
||||
256,192,997,1,0,0:0:0:0:
|
||||
256,192,1151,1,8,0:0:0:0:
|
||||
256,192,1459,1,0,0:0:0:0:
|
||||
256,192,1613,1,0,0:0:0:0:
|
||||
256,192,1920,1,0,0:0:0:0:
|
||||
256,192,2228,1,8,0:0:0:0:
|
||||
256,192,2536,1,8,0:0:0:0:
|
||||
256,192,2690,1,8,0:0:0:0:
|
||||
256,192,2843,1,0,0:0:0:0:
|
||||
256,192,2997,1,8,0:0:0:0:
|
||||
256,192,3305,1,0,0:0:0:0:
|
||||
256,192,3459,1,0,0:0:0:0:
|
||||
256,192,3766,1,8,0:0:0:0:
|
||||
256,192,4074,1,8,0:0:0:0:
|
||||
256,192,4382,1,8,0:0:0:0:
|
||||
256,192,4536,1,8,0:0:0:0:
|
||||
256,192,4690,1,0,0:0:0:0:
|
||||
256,192,4843,1,8,0:0:0:0:
|
||||
256,192,5151,1,0,0:0:0:0:
|
||||
256,192,5305,1,8,0:0:0:0:
|
||||
256,192,5613,1,8,0:0:0:0:
|
||||
256,192,5920,1,8,0:0:0:0:
|
||||
256,192,6228,1,8,0:0:0:0:
|
||||
256,192,6382,1,8,0:0:0:0:
|
||||
256,192,6536,1,0,0:0:0:0:
|
||||
256,192,6690,1,8,0:0:0:0:
|
||||
256,192,6997,1,0,0:0:0:0:
|
||||
256,192,7151,1,8,0:0:0:0:
|
||||
256,192,7459,1,0,0:0:0:0:
|
||||
256,192,7766,1,0,0:0:0:0:
|
||||
256,192,8074,5,4,0:0:0:0:
|
||||
256,192,8997,1,4,0:0:0:0:
|
||||
256,192,9920,1,4,0:0:0:0:
|
||||
256,192,10843,1,4,0:0:0:0:
|
||||
256,192,11766,1,8,0:0:0:0:
|
||||
256,192,11920,1,8,0:0:0:0:
|
||||
256,192,12074,1,8,0:0:0:0:
|
||||
256,192,12228,1,8,0:0:0:0:
|
||||
256,192,12382,1,8,0:0:0:0:
|
||||
256,192,12690,1,0,0:0:0:0:
|
||||
256,192,12843,1,0,0:0:0:0:
|
||||
256,192,12997,1,0,0:0:0:0:
|
||||
256,192,13151,1,0,0:0:0:0:
|
||||
256,192,13305,1,0,0:0:0:0:
|
||||
256,192,13613,1,8,0:0:0:0:
|
||||
256,192,13766,1,8,0:0:0:0:
|
||||
256,192,13920,1,8,0:0:0:0:
|
||||
256,192,14074,1,8,0:0:0:0:
|
||||
256,192,14228,1,8,0:0:0:0:
|
||||
256,192,14536,12,0,15305,0:0:0:0:
|
||||
256,192,15459,5,4,0:0:0:0:
|
||||
256,192,15766,1,8,0:0:0:0:
|
||||
256,192,15843,1,8,0:0:0:0:
|
||||
256,192,15920,1,8,0:0:0:0:
|
||||
256,192,16074,1,0,0:0:0:0:
|
||||
256,192,16228,1,8,0:0:0:0:
|
||||
256,192,16382,1,0,0:0:0:0:
|
||||
256,192,16690,1,8,0:0:0:0:
|
||||
256,192,16766,1,8,0:0:0:0:
|
||||
256,192,16843,1,8,0:0:0:0:
|
||||
256,192,16997,1,0,0:0:0:0:
|
||||
256,192,17151,1,8,0:0:0:0:
|
||||
256,192,17305,1,0,0:0:0:0:
|
||||
256,192,17613,1,8,0:0:0:0:
|
||||
256,192,17690,1,8,0:0:0:0:
|
||||
256,192,17766,1,8,0:0:0:0:
|
||||
256,192,17920,1,0,0:0:0:0:
|
||||
256,192,18074,1,8,0:0:0:0:
|
||||
256,192,18228,2,0,L|400:192,2,140
|
||||
256,192,19151,1,12,0:0:0:0:
|
||||
256,192,19459,1,0,0:0:0:0:
|
||||
256,192,19613,1,0,0:0:0:0:
|
||||
256,192,19690,1,0,0:0:0:0:
|
||||
256,192,19766,1,0,0:0:0:0:
|
||||
256,192,19920,1,0,0:0:0:0:
|
||||
256,192,20074,1,8,0:0:0:0:
|
||||
256,192,20382,1,0,0:0:0:0:
|
||||
256,192,20536,1,0,0:0:0:0:
|
||||
256,192,20613,1,0,0:0:0:0:
|
||||
256,192,20690,1,0,0:0:0:0:
|
||||
256,192,20843,1,0,0:0:0:0:
|
||||
256,192,20997,1,8,0:0:0:0:
|
||||
256,192,21305,1,0,0:0:0:0:
|
||||
256,192,21459,1,0,0:0:0:0:
|
||||
256,192,21536,1,0,0:0:0:0:
|
||||
256,192,21613,1,0,0:0:0:0:
|
||||
256,192,21766,1,8,0:0:0:0:
|
||||
256,192,21920,2,0,L|400:192,2,140
|
||||
256,192,22843,1,0,0:0:0:0:
|
||||
256,192,22920,1,0,0:0:0:0:
|
||||
256,192,22997,1,0,0:0:0:0:
|
||||
256,192,23151,1,0,0:0:0:0:
|
||||
256,192,23305,1,0,0:0:0:0:
|
||||
256,192,23613,1,0,0:0:0:0:
|
||||
256,192,23766,1,0,0:0:0:0:
|
||||
256,192,24690,1,8,0:0:0:0:
|
||||
256,192,24766,1,8,0:0:0:0:
|
||||
256,192,24843,1,8,0:0:0:0:
|
||||
256,192,24997,1,8,0:0:0:0:
|
||||
256,192,25151,1,8,0:0:0:0:
|
||||
256,192,25459,1,8,0:0:0:0:
|
||||
256,192,25613,1,8,0:0:0:0:
|
||||
256,192,26536,1,0,0:0:0:0:
|
||||
256,192,26690,1,0,0:0:0:0:
|
||||
256,192,26843,1,0,0:0:0:0:
|
||||
256,192,27459,1,8,0:0:0:0:
|
||||
256,192,27613,1,8,0:0:0:0:
|
||||
256,192,27766,1,8,0:0:0:0:
|
||||
256,192,28382,1,0,0:0:0:0:
|
||||
256,192,28459,1,0,0:0:0:0:
|
||||
256,192,28536,1,0,0:0:0:0:
|
||||
256,192,28690,1,0,0:0:0:0:
|
||||
256,192,28843,1,0,0:0:0:0:
|
||||
256,192,29151,1,0,0:0:0:0:
|
||||
256,192,29305,1,8,0:0:0:0:
|
||||
256,192,30228,1,0,0:0:0:0:
|
||||
256,192,30382,1,0,0:0:0:0:
|
||||
256,192,30536,1,8,0:0:0:0:
|
||||
256,192,30997,1,0,0:0:0:0:
|
||||
256,192,31151,1,0,0:0:0:0:
|
||||
256,192,31305,1,8,0:0:0:0:
|
||||
256,192,31459,1,0,0:0:0:0:
|
||||
256,192,31613,1,8,0:0:0:0:
|
||||
256,192,31690,1,8,0:0:0:0:
|
||||
256,192,31766,1,8,0:0:0:0:
|
||||
256,192,32074,1,0,0:0:0:0:
|
||||
256,192,32228,1,0,0:0:0:0:
|
||||
256,192,32382,1,8,0:0:0:0:
|
||||
256,192,32843,1,0,0:0:0:0:
|
||||
256,192,32997,1,8,0:0:0:0:
|
||||
256,192,33151,1,0,0:0:0:0:
|
||||
256,192,33305,1,0,0:0:0:0:
|
||||
256,192,33459,1,8,0:0:0:0:
|
||||
256,192,33536,1,8,0:0:0:0:
|
||||
256,192,33613,1,8,0:0:0:0:
|
||||
256,192,33920,1,4,0:0:0:0:
|
||||
256,192,34843,1,12,0:0:0:0:
|
||||
256,192,35766,1,4,0:0:0:0:
|
||||
256,192,36228,1,4,0:0:0:0:
|
||||
256,192,36690,1,12,0:0:0:0:
|
||||
256,192,37613,1,4,0:0:0:0:
|
||||
256,192,38536,1,0,0:0:0:0:
|
||||
256,192,39459,1,0,0:0:0:0:
|
||||
256,192,39920,1,0,0:0:0:0:
|
||||
256,192,40382,1,0,0:0:0:0:
|
||||
256,192,41305,1,12,0:0:0:0:
|
||||
256,192,42228,1,8,0:0:0:0:
|
||||
256,192,43151,1,8,0:0:0:0:
|
||||
256,192,43613,1,8,0:0:0:0:
|
||||
256,192,44074,1,8,0:0:0:0:
|
||||
256,192,44997,1,8,0:0:0:0:
|
||||
256,192,45151,1,8,0:0:0:0:
|
||||
256,192,45305,1,0,0:0:0:0:
|
||||
256,192,45459,1,8,0:0:0:0:
|
||||
256,192,45766,1,0,0:0:0:0:
|
||||
256,192,45920,1,8,0:0:0:0:
|
||||
256,192,46228,1,0,0:0:0:0:
|
||||
256,192,46536,1,8,0:0:0:0:
|
||||
256,192,46843,1,8,0:0:0:0:
|
||||
256,192,46997,1,8,0:0:0:0:
|
||||
256,192,47151,1,0,0:0:0:0:
|
||||
256,192,47305,1,8,0:0:0:0:
|
||||
256,192,47613,1,0,0:0:0:0:
|
||||
256,192,47766,1,8,0:0:0:0:
|
||||
256,192,48074,1,8,0:0:0:0:
|
||||
256,192,48382,1,8,0:0:0:0:
|
||||
256,192,48690,1,8,0:0:0:0:
|
||||
256,192,48843,1,8,0:0:0:0:
|
||||
256,192,48997,1,0,0:0:0:0:
|
||||
256,192,49151,1,8,0:0:0:0:
|
||||
256,192,49459,1,0,0:0:0:0:
|
||||
256,192,49613,1,8,0:0:0:0:
|
||||
256,192,49920,1,8,0:0:0:0:
|
||||
256,192,50228,1,0,0:0:0:0:
|
||||
256,192,50536,1,8,0:0:0:0:
|
||||
256,192,50690,1,8,0:0:0:0:
|
||||
256,192,50843,1,0,0:0:0:0:
|
||||
256,192,50997,1,8,0:0:0:0:
|
||||
256,192,51305,1,0,0:0:0:0:
|
||||
256,192,51459,1,8,0:0:0:0:
|
||||
256,192,51766,1,0,0:0:0:0:
|
||||
256,192,52074,1,8,0:0:0:0:
|
||||
256,192,52382,1,4,0:0:0:0:
|
||||
256,192,54228,1,12,0:0:0:0:
|
||||
256,192,54690,1,12,0:0:0:0:
|
||||
256,192,55151,1,12,0:0:0:0:
|
||||
256,192,55459,1,12,0:0:0:0:
|
||||
256,192,56074,1,4,0:0:0:0:
|
||||
256,192,56997,1,4,0:0:0:0:
|
||||
256,192,57920,1,4,0:0:0:0:
|
||||
256,192,58843,1,4,0:0:0:0:
|
||||
256,192,59766,1,8,0:0:0:0:
|
||||
256,192,59920,1,8,0:0:0:0:
|
||||
256,192,60074,1,8,0:0:0:0:
|
||||
256,192,60228,1,8,0:0:0:0:
|
||||
256,192,60382,1,8,0:0:0:0:
|
||||
256,192,60690,1,0,0:0:0:0:
|
||||
256,192,60843,1,0,0:0:0:0:
|
||||
256,192,60997,1,0,0:0:0:0:
|
||||
256,192,61151,1,0,0:0:0:0:
|
||||
256,192,61305,1,0,0:0:0:0:
|
||||
256,192,61613,1,8,0:0:0:0:
|
||||
256,192,61766,1,8,0:0:0:0:
|
||||
256,192,61920,1,8,0:0:0:0:
|
||||
256,192,62074,1,8,0:0:0:0:
|
||||
256,192,62228,1,8,0:0:0:0:
|
||||
256,192,62536,12,0,63305,0:0:0:0:
|
||||
256,192,63459,5,12,0:0:0:0:
|
||||
256,192,63766,1,4,0:0:0:0:
|
||||
256,192,64074,1,4,0:0:0:0:
|
||||
256,192,64382,1,12,0:0:0:0:
|
||||
256,192,64997,1,12,0:0:0:0:
|
||||
256,192,65305,1,4,0:0:0:0:
|
||||
256,192,65766,1,4,0:0:0:0:
|
||||
256,192,66228,1,12,0:0:0:0:
|
||||
256,192,67151,1,12,0:0:0:0:
|
||||
256,192,67459,1,4,0:0:0:0:
|
||||
256,192,67766,1,4,0:0:0:0:
|
||||
256,192,68074,1,12,0:0:0:0:
|
||||
256,192,68997,1,12,0:0:0:0:
|
||||
256,192,69305,1,4,0:0:0:0:
|
||||
256,192,69613,1,4,0:0:0:0:
|
||||
256,192,69920,1,12,0:0:0:0:
|
||||
256,192,70843,5,4,0:0:0:0:
|
||||
256,192,71151,1,8,0:0:0:0:
|
||||
256,192,71305,1,8,0:0:0:0:
|
||||
256,192,71459,1,8,0:0:0:0:
|
||||
256,192,71766,1,8,0:0:0:0:
|
||||
256,192,72074,1,0,0:0:0:0:
|
||||
256,192,72690,1,4,0:0:0:0:
|
||||
256,192,72997,1,8,0:0:0:0:
|
||||
256,192,73151,1,8,0:0:0:0:
|
||||
256,192,73305,1,8,0:0:0:0:
|
||||
256,192,73459,1,8,0:0:0:0:
|
||||
256,192,73613,1,0,0:0:0:0:
|
||||
256,192,73920,1,8,0:0:0:0:
|
||||
256,192,74536,1,4,0:0:0:0:
|
||||
256,192,75459,1,4,0:0:0:0:
|
||||
256,192,76382,1,4,0:0:0:0:
|
||||
256,192,77305,1,12,0:0:0:0:
|
||||
256,192,77459,1,12,0:0:0:0:
|
||||
256,192,77613,1,12,0:0:0:0:
|
||||
256,192,78228,5,4,0:0:0:0:
|
||||
256,192,78536,1,8,0:0:0:0:
|
||||
256,192,78613,1,8,0:0:0:0:
|
||||
256,192,78690,1,8,0:0:0:0:
|
||||
256,192,78843,1,0,0:0:0:0:
|
||||
256,192,78997,1,8,0:0:0:0:
|
||||
256,192,79151,1,0,0:0:0:0:
|
||||
256,192,79459,1,8,0:0:0:0:
|
||||
256,192,79536,1,8,0:0:0:0:
|
||||
256,192,79613,1,8,0:0:0:0:
|
||||
256,192,79766,1,0,0:0:0:0:
|
||||
256,192,79920,1,8,0:0:0:0:
|
||||
256,192,80074,1,0,0:0:0:0:
|
||||
256,192,80382,1,8,0:0:0:0:
|
||||
256,192,80459,1,8,0:0:0:0:
|
||||
256,192,80536,1,8,0:0:0:0:
|
||||
256,192,80690,1,0,0:0:0:0:
|
||||
256,192,80843,1,8,0:0:0:0:
|
||||
256,192,80997,2,0,L|400:192,2,140
|
||||
256,192,81920,1,12,0:0:0:0:
|
||||
256,192,82228,1,0,0:0:0:0:
|
||||
256,192,82382,1,0,0:0:0:0:
|
||||
256,192,82459,1,0,0:0:0:0:
|
||||
256,192,82536,1,0,0:0:0:0:
|
||||
256,192,82690,1,0,0:0:0:0:
|
||||
256,192,82843,1,8,0:0:0:0:
|
||||
256,192,83151,1,0,0:0:0:0:
|
||||
256,192,83305,1,0,0:0:0:0:
|
||||
256,192,83382,1,0,0:0:0:0:
|
||||
256,192,83459,1,0,0:0:0:0:
|
||||
256,192,83613,1,0,0:0:0:0:
|
||||
256,192,83766,1,8,0:0:0:0:
|
||||
256,192,84074,1,0,0:0:0:0:
|
||||
256,192,84228,1,0,0:0:0:0:
|
||||
256,192,84305,1,0,0:0:0:0:
|
||||
256,192,84382,1,0,0:0:0:0:
|
||||
256,192,84536,1,8,0:0:0:0:
|
||||
256,192,84690,2,0,L|400:192,2,140
|
||||
256,192,85613,1,8,0:0:0:0:
|
||||
256,192,85766,1,8,0:0:0:0:
|
||||
256,192,85920,1,0,0:0:0:0:
|
||||
256,192,86074,1,8,0:0:0:0:
|
||||
256,192,86228,1,8,0:0:0:0:
|
||||
256,192,86382,1,0,0:0:0:0:
|
||||
256,192,86536,1,8,0:0:0:0:
|
||||
256,192,86843,1,0,0:0:0:0:
|
||||
256,192,87151,1,8,0:0:0:0:
|
||||
256,192,87459,1,4,0:0:0:0:
|
||||
256,192,87766,1,4,0:0:0:0:
|
||||
256,192,88074,1,4,0:0:0:0:
|
||||
256,192,88382,1,4,0:0:0:0:
|
||||
-614
@@ -1,614 +0,0 @@
|
||||
osu file format v12
|
||||
|
||||
[General]
|
||||
AudioFilename: DJ Sharpnel - Ivaltek2.mp3
|
||||
AudioLeadIn: 0
|
||||
PreviewTime: 75212
|
||||
Countdown: 0
|
||||
SampleSet: Normal
|
||||
StackLeniency: 0.7
|
||||
Mode: 1
|
||||
LetterboxInBreaks: 1
|
||||
|
||||
[Editor]
|
||||
DistanceSpacing: 1.2
|
||||
BeatDivisor: 4
|
||||
GridSize: 8
|
||||
|
||||
[Metadata]
|
||||
Title:IVALTEK
|
||||
TitleUnicode:IVALTEK
|
||||
Artist:DJ Sharpnel
|
||||
ArtistUnicode:DJ Sharpnel
|
||||
Creator:happy30
|
||||
Version:Muzukashii
|
||||
Source:Final Fantasy XII
|
||||
Tags:j-core happy hardcore kiss me goodbye gladiool gladi pheon
|
||||
BeatmapID:222766
|
||||
BeatmapSetID:50429
|
||||
|
||||
[Difficulty]
|
||||
HPDrainRate:5
|
||||
CircleSize:5
|
||||
OverallDifficulty:5
|
||||
ApproachRate:5
|
||||
SliderMultiplier:1.4
|
||||
SliderTickRate:1
|
||||
|
||||
[Events]
|
||||
//Background and Video events
|
||||
0,0,"background ivaltek.jpg",0,135
|
||||
//Break Periods
|
||||
//Storyboard Layer 0 (Background)
|
||||
//Storyboard Layer 1 (Fail)
|
||||
//Storyboard Layer 2 (Pass)
|
||||
//Storyboard Layer 3 (Foreground)
|
||||
//Storyboard Sound Samples
|
||||
//Background Colour Transformations
|
||||
3,100,163,162,255
|
||||
|
||||
[TimingPoints]
|
||||
895,288.322921672273,4,1,0,60,1,0
|
||||
9833,-100,4,1,0,45,0,0
|
||||
18194,-100,4,1,0,60,0,0
|
||||
37728,-100,4,1,0,45,0,0
|
||||
38380,288.322921672273,4,1,0,60,1,0
|
||||
38380,-100,4,1,0,45,0,0
|
||||
75285,-100,4,1,0,60,0,1
|
||||
109884,-100,4,1,0,60,0,0
|
||||
112190,-100,4,1,0,60,0,1
|
||||
150249,-100,4,1,0,60,0,0
|
||||
|
||||
|
||||
[Colours]
|
||||
Combo1 : 0,0,160
|
||||
Combo2 : 255,0,0
|
||||
|
||||
[HitObjects]
|
||||
256,192,10121,5,4,0:0:0:0:
|
||||
256,192,10697,1,8,0:0:0:0:
|
||||
256,192,11274,1,0,0:0:0:0:
|
||||
256,192,11562,1,0,0:0:0:0:
|
||||
256,192,11851,1,8,0:0:0:0:
|
||||
256,192,12427,1,0,0:0:0:0:
|
||||
256,192,13004,1,8,0:0:0:0:
|
||||
256,192,13581,1,0,0:0:0:0:
|
||||
256,192,13869,1,0,0:0:0:0:
|
||||
256,192,14157,1,8,0:0:0:0:
|
||||
256,192,14734,1,0,0:0:0:0:
|
||||
256,192,15311,1,8,0:0:0:0:
|
||||
256,192,15455,1,0,0:0:0:0:
|
||||
256,192,15887,1,0,0:0:0:0:
|
||||
256,192,16464,1,8,0:0:0:0:
|
||||
256,192,16608,1,0,0:0:0:0:
|
||||
256,192,17041,1,0,0:0:0:0:
|
||||
256,192,17617,1,8,0:0:0:0:
|
||||
256,192,17761,1,0,0:0:0:0:
|
||||
256,192,18194,1,0,0:0:0:0:
|
||||
256,192,18482,1,0,0:0:0:0:
|
||||
256,192,18626,1,0,0:0:0:0:
|
||||
256,192,18771,1,8,0:0:0:0:
|
||||
256,192,19059,1,8,0:0:0:0:
|
||||
256,192,19203,1,8,0:0:0:0:
|
||||
256,192,19347,1,4,0:0:0:0:
|
||||
256,192,19635,1,0,0:0:0:0:
|
||||
256,192,19780,1,0,0:0:0:0:
|
||||
256,192,19924,1,8,0:0:0:0:
|
||||
256,192,20212,1,8,0:0:0:0:
|
||||
256,192,20356,1,8,0:0:0:0:
|
||||
256,192,20500,1,0,0:0:0:0:
|
||||
256,192,20789,1,0,0:0:0:0:
|
||||
256,192,21077,1,8,0:0:0:0:
|
||||
256,192,21365,1,0,0:0:0:0:
|
||||
256,192,21510,1,8,0:0:0:0:
|
||||
256,192,21654,1,0,0:0:0:0:
|
||||
256,192,21942,1,0,0:0:0:0:
|
||||
256,192,22086,1,0,0:0:0:0:
|
||||
256,192,22230,1,8,0:0:0:0:
|
||||
256,192,22519,1,8,0:0:0:0:
|
||||
256,192,22663,1,8,0:0:0:0:
|
||||
256,192,22807,1,0,0:0:0:0:
|
||||
256,192,23095,1,0,0:0:0:0:
|
||||
256,192,23240,1,0,0:0:0:0:
|
||||
256,192,23384,1,8,0:0:0:0:
|
||||
256,192,23672,1,8,0:0:0:0:
|
||||
256,192,23816,1,0,0:0:0:0:
|
||||
256,192,23960,1,0,0:0:0:0:
|
||||
256,192,24249,1,0,0:0:0:0:
|
||||
256,192,24393,1,0,0:0:0:0:
|
||||
256,192,24537,1,8,0:0:0:0:
|
||||
256,192,24825,1,8,0:0:0:0:
|
||||
256,192,25114,1,0,0:0:0:0:
|
||||
256,192,25402,1,0,0:0:0:0:
|
||||
256,192,25546,1,0,0:0:0:0:
|
||||
256,192,25690,1,8,0:0:0:0:
|
||||
256,192,25834,1,0,0:0:0:0:
|
||||
256,192,26123,1,0,0:0:0:0:
|
||||
256,192,26267,1,0,0:0:0:0:
|
||||
256,192,26411,1,8,0:0:0:0:
|
||||
256,192,26699,1,0,0:0:0:0:
|
||||
256,192,26844,1,0,0:0:0:0:
|
||||
256,192,26988,1,8,0:0:0:0:
|
||||
256,192,27276,1,8,0:0:0:0:
|
||||
256,192,27420,1,0,0:0:0:0:
|
||||
256,192,27564,1,0,0:0:0:0:
|
||||
256,192,27709,1,8,0:0:0:0:
|
||||
256,192,27997,1,0,0:0:0:0:
|
||||
256,192,28141,1,8,0:0:0:0:
|
||||
256,192,28429,1,8,0:0:0:0:
|
||||
256,192,28574,1,4,0:0:0:0:
|
||||
256,192,28862,1,8,0:0:0:0:
|
||||
256,192,29150,1,0,0:0:0:0:
|
||||
256,192,29294,1,8,0:0:0:0:
|
||||
256,192,29583,1,0,0:0:0:0:
|
||||
256,192,29727,1,0,0:0:0:0:
|
||||
256,192,29871,1,8,0:0:0:0:
|
||||
256,192,30015,1,0,0:0:0:0:
|
||||
256,192,30303,1,0,0:0:0:0:
|
||||
256,192,30448,1,8,0:0:0:0:
|
||||
256,192,30736,1,0,0:0:0:0:
|
||||
256,192,30880,1,0,0:0:0:0:
|
||||
256,192,31168,1,8,0:0:0:0:
|
||||
256,192,31457,1,0,0:0:0:0:
|
||||
256,192,31601,1,8,0:0:0:0:
|
||||
256,192,31889,1,8,0:0:0:0:
|
||||
256,192,32033,1,0,0:0:0:0:
|
||||
256,192,32178,1,0,0:0:0:0:
|
||||
256,192,32322,1,0,0:0:0:0:
|
||||
256,192,32610,1,0,0:0:0:0:
|
||||
256,192,32754,1,8,0:0:0:0:
|
||||
256,192,33043,1,8,0:0:0:0:
|
||||
256,192,33187,1,0,0:0:0:0:
|
||||
256,192,33331,1,8,0:0:0:0:
|
||||
256,192,33475,1,0,0:0:0:0:
|
||||
256,192,33763,1,0,0:0:0:0:
|
||||
256,192,33907,1,8,0:0:0:0:
|
||||
256,192,34196,1,8,0:0:0:0:
|
||||
256,192,34340,1,0,0:0:0:0:
|
||||
256,192,34484,1,8,0:0:0:0:
|
||||
256,192,34628,1,0,0:0:0:0:
|
||||
256,192,34917,1,0,0:0:0:0:
|
||||
256,192,35061,1,8,0:0:0:0:
|
||||
256,192,35493,12,0,37728,0:0:0:0:
|
||||
256,192,38376,1,4,0:0:0:0:
|
||||
256,192,39244,1,0,0:0:0:0:
|
||||
256,192,39533,1,8,0:0:0:0:
|
||||
256,192,40109,1,8,0:0:0:0:
|
||||
256,192,40686,1,0,0:0:0:0:
|
||||
256,192,41551,1,0,0:0:0:0:
|
||||
256,192,41839,1,8,0:0:0:0:
|
||||
256,192,42416,1,8,0:0:0:0:
|
||||
256,192,42704,1,0,0:0:0:0:
|
||||
256,192,42993,1,0,0:0:0:0:
|
||||
256,192,43858,1,0,0:0:0:0:
|
||||
256,192,44146,1,8,0:0:0:0:
|
||||
256,192,44723,1,8,0:0:0:0:
|
||||
256,192,45299,1,0,0:0:0:0:
|
||||
256,192,46164,1,0,0:0:0:0:
|
||||
256,192,46453,1,8,0:0:0:0:
|
||||
256,192,46885,1,8,0:0:0:0:
|
||||
256,192,47029,1,8,0:0:0:0:
|
||||
256,192,47318,1,8,0:0:0:0:
|
||||
256,192,47606,1,0,0:0:0:0:
|
||||
256,192,48471,1,0,0:0:0:0:
|
||||
256,192,48759,1,8,0:0:0:0:
|
||||
256,192,49336,1,8,0:0:0:0:
|
||||
256,192,49912,1,0,0:0:0:0:
|
||||
256,192,50777,1,0,0:0:0:0:
|
||||
256,192,51066,1,8,0:0:0:0:
|
||||
256,192,51498,1,8,0:0:0:0:
|
||||
256,192,51931,1,8,0:0:0:0:
|
||||
256,192,52219,1,0,0:0:0:0:
|
||||
256,192,53084,1,0,0:0:0:0:
|
||||
256,192,53372,1,8,0:0:0:0:
|
||||
256,192,53949,1,8,0:0:0:0:
|
||||
256,192,54526,1,0,0:0:0:0:
|
||||
256,192,54958,1,8,0:0:0:0:
|
||||
256,192,55102,1,0,0:0:0:0:
|
||||
256,192,55391,1,0,0:0:0:0:
|
||||
256,192,55679,1,8,0:0:0:0:
|
||||
256,192,56111,1,0,0:0:0:0:
|
||||
256,192,56256,1,8,0:0:0:0:
|
||||
256,192,56544,1,0,0:0:0:0:
|
||||
256,192,56832,1,4,0:0:0:0:
|
||||
256,192,57697,1,0,0:0:0:0:
|
||||
256,192,57985,1,8,0:0:0:0:
|
||||
256,192,58562,1,8,0:0:0:0:
|
||||
256,192,59139,1,0,0:0:0:0:
|
||||
256,192,60004,1,0,0:0:0:0:
|
||||
256,192,60292,1,8,0:0:0:0:
|
||||
256,192,60869,1,8,0:0:0:0:
|
||||
256,192,61157,1,0,0:0:0:0:
|
||||
256,192,61445,1,0,0:0:0:0:
|
||||
256,192,62310,1,0,0:0:0:0:
|
||||
256,192,62599,1,8,0:0:0:0:
|
||||
256,192,63175,1,8,0:0:0:0:
|
||||
256,192,63752,1,0,0:0:0:0:
|
||||
256,192,64617,1,0,0:0:0:0:
|
||||
256,192,64905,1,8,0:0:0:0:
|
||||
256,192,65338,1,8,0:0:0:0:
|
||||
256,192,65482,1,0,0:0:0:0:
|
||||
256,192,65770,1,8,0:0:0:0:
|
||||
256,192,66059,1,0,0:0:0:0:
|
||||
256,192,66923,1,0,0:0:0:0:
|
||||
256,192,67212,1,8,0:0:0:0:
|
||||
256,192,67788,1,0,0:0:0:0:
|
||||
256,192,68077,1,8,0:0:0:0:
|
||||
256,192,68365,1,0,0:0:0:0:
|
||||
256,192,69230,1,0,0:0:0:0:
|
||||
256,192,69518,1,8,0:0:0:0:
|
||||
256,192,70672,1,0,0:0:0:0:
|
||||
256,192,71537,1,0,0:0:0:0:
|
||||
256,192,71825,1,8,0:0:0:0:
|
||||
256,192,72257,1,8,0:0:0:0:
|
||||
256,192,72402,1,0,0:0:0:0:
|
||||
256,192,72978,1,0,0:0:0:0:
|
||||
256,192,74708,1,8,0:0:0:0:
|
||||
256,192,75285,1,4,0:0:0:0:
|
||||
256,192,75573,1,8,0:0:0:0:
|
||||
256,192,75861,1,0,0:0:0:0:
|
||||
256,192,76150,1,8,0:0:0:0:
|
||||
256,192,76438,1,0,0:0:0:0:
|
||||
256,192,76582,1,0,0:0:0:0:
|
||||
256,192,76726,1,8,0:0:0:0:
|
||||
256,192,77015,1,0,0:0:0:0:
|
||||
256,192,77303,1,8,0:0:0:0:
|
||||
256,192,77447,1,0,0:0:0:0:
|
||||
256,192,77591,1,0,0:0:0:0:
|
||||
256,192,77880,1,8,0:0:0:0:
|
||||
256,192,78168,1,0,0:0:0:0:
|
||||
256,192,78312,1,0,0:0:0:0:
|
||||
256,192,78456,1,8,0:0:0:0:
|
||||
256,192,78745,1,8,0:0:0:0:
|
||||
256,192,78889,1,8,0:0:0:0:
|
||||
256,192,79033,1,0,0:0:0:0:
|
||||
256,192,79321,1,0,0:0:0:0:
|
||||
256,192,79393,1,0,0:0:0:0:
|
||||
256,192,79466,1,0,0:0:0:0:
|
||||
256,192,79610,1,0,0:0:0:0:
|
||||
256,192,79898,1,0,0:0:0:0:
|
||||
256,192,80186,1,8,0:0:0:0:
|
||||
256,192,80475,1,0,0:0:0:0:
|
||||
256,192,80619,1,0,0:0:0:0:
|
||||
256,192,80763,1,8,0:0:0:0:
|
||||
256,192,81051,1,0,0:0:0:0:
|
||||
256,192,81340,1,8,0:0:0:0:
|
||||
256,192,81484,1,0,0:0:0:0:
|
||||
256,192,81772,1,0,0:0:0:0:
|
||||
256,192,81916,1,8,0:0:0:0:
|
||||
256,192,82205,1,0,0:0:0:0:
|
||||
256,192,82493,1,8,0:0:0:0:
|
||||
256,192,82781,1,0,0:0:0:0:
|
||||
256,192,82925,1,0,0:0:0:0:
|
||||
256,192,83070,1,8,0:0:0:0:
|
||||
256,192,83358,1,8,0:0:0:0:
|
||||
256,192,83502,1,8,0:0:0:0:
|
||||
256,192,83646,1,8,0:0:0:0:
|
||||
256,192,83935,1,0,0:0:0:0:
|
||||
256,192,84007,1,0,0:0:0:0:
|
||||
256,192,84079,1,0,0:0:0:0:
|
||||
256,192,84223,1,0,0:0:0:0:
|
||||
256,192,84511,1,0,0:0:0:0:
|
||||
256,192,84655,1,0,0:0:0:0:
|
||||
256,192,84799,1,8,0:0:0:0:
|
||||
256,192,84944,1,0,0:0:0:0:
|
||||
256,192,85232,1,0,0:0:0:0:
|
||||
256,192,85376,1,8,0:0:0:0:
|
||||
256,192,85664,1,0,0:0:0:0:
|
||||
256,192,85953,1,8,0:0:0:0:
|
||||
256,192,86097,1,0,0:0:0:0:
|
||||
256,192,86241,1,0,0:0:0:0:
|
||||
256,192,86529,1,8,0:0:0:0:
|
||||
256,192,86674,1,8,0:0:0:0:
|
||||
256,192,86818,1,0,0:0:0:0:
|
||||
256,192,87106,1,12,0:0:0:0:
|
||||
256,192,87394,1,12,0:0:0:0:
|
||||
256,192,87683,1,12,0:0:0:0:
|
||||
256,192,87971,1,4,0:0:0:0:
|
||||
256,192,88259,1,8,0:0:0:0:
|
||||
256,192,88404,1,0,0:0:0:0:
|
||||
256,192,88548,1,0,0:0:0:0:
|
||||
256,192,88620,1,0,0:0:0:0:
|
||||
256,192,88692,1,0,0:0:0:0:
|
||||
256,192,88836,1,0,0:0:0:0:
|
||||
256,192,89124,1,0,0:0:0:0:
|
||||
256,192,89268,1,0,0:0:0:0:
|
||||
256,192,89413,1,8,0:0:0:0:
|
||||
256,192,89557,1,0,0:0:0:0:
|
||||
256,192,89701,1,0,0:0:0:0:
|
||||
256,192,89845,1,0,0:0:0:0:
|
||||
256,192,89989,1,8,0:0:0:0:
|
||||
256,192,90278,1,0,0:0:0:0:
|
||||
256,192,90566,1,8,0:0:0:0:
|
||||
256,192,90854,1,8,0:0:0:0:
|
||||
256,192,91287,1,0,0:0:0:0:
|
||||
256,192,91431,1,8,0:0:0:0:
|
||||
256,192,91575,1,8,0:0:0:0:
|
||||
256,192,91719,1,8,0:0:0:0:
|
||||
256,192,92008,1,8,0:0:0:0:
|
||||
256,192,92440,1,0,0:0:0:0:
|
||||
256,192,92584,1,12,0:0:0:0:
|
||||
256,192,92873,1,12,0:0:0:0:
|
||||
256,192,93161,1,12,0:0:0:0:
|
||||
256,192,93449,1,4,0:0:0:0:
|
||||
256,192,93738,1,0,0:0:0:0:
|
||||
256,192,94026,1,8,0:0:0:0:
|
||||
256,192,94170,1,0,0:0:0:0:
|
||||
256,192,94314,1,0,0:0:0:0:
|
||||
256,192,94603,1,8,0:0:0:0:
|
||||
256,192,94891,1,0,0:0:0:0:
|
||||
256,192,95035,1,0,0:0:0:0:
|
||||
256,192,95179,1,8,0:0:0:0:
|
||||
256,192,95468,1,0,0:0:0:0:
|
||||
256,192,95756,1,8,0:0:0:0:
|
||||
256,192,95900,1,0,0:0:0:0:
|
||||
256,192,96044,1,0,0:0:0:0:
|
||||
256,192,96333,1,8,0:0:0:0:
|
||||
256,192,96621,1,0,0:0:0:0:
|
||||
256,192,96765,1,8,0:0:0:0:
|
||||
256,192,96909,1,0,0:0:0:0:
|
||||
256,192,97198,1,8,0:0:0:0:
|
||||
256,192,97342,1,8,0:0:0:0:
|
||||
256,192,97486,2,8,L|480:192,1,210
|
||||
256,192,98351,1,0,0:0:0:0:
|
||||
256,192,98639,1,8,0:0:0:0:
|
||||
256,192,98928,1,0,0:0:0:0:
|
||||
256,192,99072,1,0,0:0:0:0:
|
||||
256,192,99216,1,8,0:0:0:0:
|
||||
256,192,99504,1,0,0:0:0:0:
|
||||
256,192,99793,1,8,0:0:0:0:
|
||||
256,192,99937,1,0,0:0:0:0:
|
||||
256,192,100225,1,0,0:0:0:0:
|
||||
256,192,100369,1,8,0:0:0:0:
|
||||
256,192,100658,1,0,0:0:0:0:
|
||||
256,192,100946,1,8,0:0:0:0:
|
||||
256,192,101234,1,0,0:0:0:0:
|
||||
256,192,101378,1,0,0:0:0:0:
|
||||
256,192,101523,1,8,0:0:0:0:
|
||||
256,192,101811,1,8,0:0:0:0:
|
||||
256,192,101955,1,0,0:0:0:0:
|
||||
256,192,102099,1,8,0:0:0:0:
|
||||
256,192,102388,1,8,0:0:0:0:
|
||||
256,192,102460,1,8,0:0:0:0:
|
||||
256,192,102532,1,8,0:0:0:0:
|
||||
256,192,102676,1,8,0:0:0:0:
|
||||
256,192,102964,1,4,0:0:0:0:
|
||||
256,192,103108,1,0,0:0:0:0:
|
||||
256,192,103252,1,8,0:0:0:0:
|
||||
256,192,103397,1,0,0:0:0:0:
|
||||
256,192,103685,1,0,0:0:0:0:
|
||||
256,192,103829,1,8,0:0:0:0:
|
||||
256,192,104117,1,0,0:0:0:0:
|
||||
256,192,104406,1,8,0:0:0:0:
|
||||
256,192,104550,1,0,0:0:0:0:
|
||||
256,192,104838,1,0,0:0:0:0:
|
||||
256,192,104982,1,8,0:0:0:0:
|
||||
256,192,105127,1,8,0:0:0:0:
|
||||
256,192,105271,1,0,0:0:0:0:
|
||||
256,192,105415,1,0,0:0:0:0:
|
||||
256,192,105559,1,8,0:0:0:0:
|
||||
256,192,105703,1,0,0:0:0:0:
|
||||
256,192,105847,1,8,0:0:0:0:
|
||||
256,192,105991,1,0,0:0:0:0:
|
||||
256,192,106136,1,8,0:0:0:0:
|
||||
256,192,106424,1,0,0:0:0:0:
|
||||
256,192,106712,1,0,0:0:0:0:
|
||||
256,192,106857,1,8,0:0:0:0:
|
||||
256,192,107001,1,0,0:0:0:0:
|
||||
256,192,107073,1,0,0:0:0:0:
|
||||
256,192,107145,1,0,0:0:0:0:
|
||||
256,192,107289,1,0,0:0:0:0:
|
||||
256,192,107577,1,0,0:0:0:0:
|
||||
256,192,107721,1,0,0:0:0:0:
|
||||
256,192,107866,1,8,0:0:0:0:
|
||||
256,192,108010,1,0,0:0:0:0:
|
||||
256,192,108154,1,8,0:0:0:0:
|
||||
256,192,108298,1,0,0:0:0:0:
|
||||
256,192,108442,1,8,0:0:0:0:
|
||||
256,192,108731,1,0,0:0:0:0:
|
||||
256,192,109019,1,8,0:0:0:0:
|
||||
256,192,109163,1,0,0:0:0:0:
|
||||
256,192,109307,1,8,0:0:0:0:
|
||||
256,192,109451,1,0,0:0:0:0:
|
||||
256,192,109595,1,8,0:0:0:0:
|
||||
256,192,109884,1,8,0:0:0:0:
|
||||
256,192,110028,1,0,0:0:0:0:
|
||||
256,192,110172,1,0,0:0:0:0:
|
||||
256,192,110316,1,8,0:0:0:0:
|
||||
256,192,110461,1,0,0:0:0:0:
|
||||
256,192,110749,1,8,0:0:0:0:
|
||||
256,192,110893,1,0,0:0:0:0:
|
||||
256,192,111037,1,8,0:0:0:0:
|
||||
256,192,111181,1,0,0:0:0:0:
|
||||
256,192,111325,1,0,0:0:0:0:
|
||||
256,192,111469,1,8,0:0:0:0:
|
||||
256,192,111614,1,0,0:0:0:0:
|
||||
256,192,111902,1,8,0:0:0:0:
|
||||
256,192,112046,1,0,0:0:0:0:
|
||||
256,192,112190,1,4,0:0:0:0:
|
||||
256,192,112478,1,8,0:0:0:0:
|
||||
256,192,112766,1,0,0:0:0:0:
|
||||
256,192,113055,1,8,0:0:0:0:
|
||||
256,192,113343,1,0,0:0:0:0:
|
||||
256,192,113487,1,0,0:0:0:0:
|
||||
256,192,113631,1,8,0:0:0:0:
|
||||
256,192,113920,1,0,0:0:0:0:
|
||||
256,192,114208,1,8,0:0:0:0:
|
||||
256,192,114352,1,0,0:0:0:0:
|
||||
256,192,114496,1,0,0:0:0:0:
|
||||
256,192,114785,1,8,0:0:0:0:
|
||||
256,192,115073,1,0,0:0:0:0:
|
||||
256,192,115217,1,0,0:0:0:0:
|
||||
256,192,115361,1,8,0:0:0:0:
|
||||
256,192,115650,1,8,0:0:0:0:
|
||||
256,192,115794,1,8,0:0:0:0:
|
||||
256,192,115938,1,0,0:0:0:0:
|
||||
256,192,116226,1,0,0:0:0:0:
|
||||
256,192,116298,1,0,0:0:0:0:
|
||||
256,192,116371,1,0,0:0:0:0:
|
||||
256,192,116515,1,0,0:0:0:0:
|
||||
256,192,116659,1,8,0:0:0:0:
|
||||
256,192,116803,1,0,0:0:0:0:
|
||||
256,192,117091,1,8,0:0:0:0:
|
||||
256,192,117380,1,0,0:0:0:0:
|
||||
256,192,117524,1,0,0:0:0:0:
|
||||
256,192,117668,1,8,0:0:0:0:
|
||||
256,192,117956,1,0,0:0:0:0:
|
||||
256,192,118245,1,8,0:0:0:0:
|
||||
256,192,118389,1,0,0:0:0:0:
|
||||
256,192,118677,1,0,0:0:0:0:
|
||||
256,192,118821,1,8,0:0:0:0:
|
||||
256,192,119110,1,0,0:0:0:0:
|
||||
256,192,119398,1,8,0:0:0:0:
|
||||
256,192,119686,1,0,0:0:0:0:
|
||||
256,192,119830,1,0,0:0:0:0:
|
||||
256,192,119975,1,8,0:0:0:0:
|
||||
256,192,120263,1,8,0:0:0:0:
|
||||
256,192,120407,1,8,0:0:0:0:
|
||||
256,192,120551,1,8,0:0:0:0:
|
||||
256,192,120840,1,0,0:0:0:0:
|
||||
256,192,120912,1,0,0:0:0:0:
|
||||
256,192,120984,1,0,0:0:0:0:
|
||||
256,192,121128,1,0,0:0:0:0:
|
||||
256,192,121272,1,8,0:0:0:0:
|
||||
256,192,121416,1,0,0:0:0:0:
|
||||
256,192,121560,1,0,0:0:0:0:
|
||||
256,192,121704,1,8,0:0:0:0:
|
||||
256,192,121849,1,0,0:0:0:0:
|
||||
256,192,122137,1,0,0:0:0:0:
|
||||
256,192,122281,1,8,0:0:0:0:
|
||||
256,192,122569,1,0,0:0:0:0:
|
||||
256,192,122858,1,8,0:0:0:0:
|
||||
256,192,123002,1,0,0:0:0:0:
|
||||
256,192,123146,1,0,0:0:0:0:
|
||||
256,192,123434,1,8,0:0:0:0:
|
||||
256,192,123579,1,8,0:0:0:0:
|
||||
256,192,123723,1,0,0:0:0:0:
|
||||
256,192,124011,1,12,0:0:0:0:
|
||||
256,192,124299,1,12,0:0:0:0:
|
||||
256,192,124588,1,12,0:0:0:0:
|
||||
256,192,124876,1,4,0:0:0:0:
|
||||
256,192,125164,1,8,0:0:0:0:
|
||||
256,192,125309,1,0,0:0:0:0:
|
||||
256,192,125453,1,0,0:0:0:0:
|
||||
256,192,125525,1,0,0:0:0:0:
|
||||
256,192,125597,1,0,0:0:0:0:
|
||||
256,192,125741,1,0,0:0:0:0:
|
||||
256,192,125886,1,8,0:0:0:0:
|
||||
256,192,126029,1,0,0:0:0:0:
|
||||
256,192,126173,1,0,0:0:0:0:
|
||||
256,192,126318,1,8,0:0:0:0:
|
||||
256,192,126462,1,0,0:0:0:0:
|
||||
256,192,126606,1,0,0:0:0:0:
|
||||
256,192,126750,1,0,0:0:0:0:
|
||||
256,192,126894,1,8,0:0:0:0:
|
||||
256,192,127183,1,0,0:0:0:0:
|
||||
256,192,127471,1,8,0:0:0:0:
|
||||
256,192,127759,1,8,0:0:0:0:
|
||||
256,192,128192,1,0,0:0:0:0:
|
||||
256,192,128336,1,8,0:0:0:0:
|
||||
256,192,128480,1,8,0:0:0:0:
|
||||
256,192,128624,1,8,0:0:0:0:
|
||||
256,192,128913,1,8,0:0:0:0:
|
||||
256,192,129345,1,0,0:0:0:0:
|
||||
256,192,129489,1,12,0:0:0:0:
|
||||
256,192,129778,1,12,0:0:0:0:
|
||||
256,192,130066,1,12,0:0:0:0:
|
||||
256,192,130354,1,4,0:0:0:0:
|
||||
256,192,130643,1,0,0:0:0:0:
|
||||
256,192,130931,1,8,0:0:0:0:
|
||||
256,192,131075,1,0,0:0:0:0:
|
||||
256,192,131219,1,0,0:0:0:0:
|
||||
256,192,131508,1,8,0:0:0:0:
|
||||
256,192,131796,1,0,0:0:0:0:
|
||||
256,192,131940,1,0,0:0:0:0:
|
||||
256,192,132084,1,8,0:0:0:0:
|
||||
256,192,132373,1,0,0:0:0:0:
|
||||
256,192,132661,1,8,0:0:0:0:
|
||||
256,192,132805,1,0,0:0:0:0:
|
||||
256,192,132949,1,0,0:0:0:0:
|
||||
256,192,133238,1,8,0:0:0:0:
|
||||
256,192,133526,1,0,0:0:0:0:
|
||||
256,192,133670,1,8,0:0:0:0:
|
||||
256,192,133814,1,0,0:0:0:0:
|
||||
256,192,134103,1,8,0:0:0:0:
|
||||
256,192,134247,1,8,0:0:0:0:
|
||||
256,192,134391,2,8,L|480:192,1,210
|
||||
256,192,135256,1,0,0:0:0:0:
|
||||
256,192,135544,1,8,0:0:0:0:
|
||||
256,192,135833,1,0,0:0:0:0:
|
||||
256,192,135977,1,0,0:0:0:0:
|
||||
256,192,136121,1,8,0:0:0:0:
|
||||
256,192,136409,1,0,0:0:0:0:
|
||||
256,192,136698,1,8,0:0:0:0:
|
||||
256,192,136842,1,0,0:0:0:0:
|
||||
256,192,137130,1,0,0:0:0:0:
|
||||
256,192,137274,1,8,0:0:0:0:
|
||||
256,192,137563,1,0,0:0:0:0:
|
||||
256,192,137851,1,8,0:0:0:0:
|
||||
256,192,138139,1,0,0:0:0:0:
|
||||
256,192,138283,1,0,0:0:0:0:
|
||||
256,192,138428,1,8,0:0:0:0:
|
||||
256,192,138716,1,8,0:0:0:0:
|
||||
256,192,138860,1,0,0:0:0:0:
|
||||
256,192,139004,1,8,0:0:0:0:
|
||||
256,192,139293,1,8,0:0:0:0:
|
||||
256,192,139365,1,8,0:0:0:0:
|
||||
256,192,139437,1,8,0:0:0:0:
|
||||
256,192,139581,1,8,0:0:0:0:
|
||||
256,192,139725,1,0,0:0:0:0:
|
||||
256,192,139869,1,4,0:0:0:0:
|
||||
256,192,140013,1,0,0:0:0:0:
|
||||
256,192,140157,1,8,0:0:0:0:
|
||||
256,192,140302,1,0,0:0:0:0:
|
||||
256,192,140590,1,0,0:0:0:0:
|
||||
256,192,140734,1,8,0:0:0:0:
|
||||
256,192,141022,1,0,0:0:0:0:
|
||||
256,192,141311,1,8,0:0:0:0:
|
||||
256,192,141455,1,0,0:0:0:0:
|
||||
256,192,141599,1,0,0:0:0:0:
|
||||
256,192,141887,1,8,0:0:0:0:
|
||||
256,192,142032,1,8,0:0:0:0:
|
||||
256,192,142176,1,0,0:0:0:0:
|
||||
256,192,142320,1,0,0:0:0:0:
|
||||
256,192,142464,1,8,0:0:0:0:
|
||||
256,192,142608,1,0,0:0:0:0:
|
||||
256,192,142752,1,8,0:0:0:0:
|
||||
256,192,142896,1,0,0:0:0:0:
|
||||
256,192,143041,1,8,0:0:0:0:
|
||||
256,192,143329,1,0,0:0:0:0:
|
||||
256,192,143617,1,0,0:0:0:0:
|
||||
256,192,143762,1,8,0:0:0:0:
|
||||
256,192,143906,1,0,0:0:0:0:
|
||||
256,192,143978,1,0,0:0:0:0:
|
||||
256,192,144050,1,0,0:0:0:0:
|
||||
256,192,144194,1,0,0:0:0:0:
|
||||
256,192,144338,1,8,0:0:0:0:
|
||||
256,192,144482,1,0,0:0:0:0:
|
||||
256,192,144626,1,0,0:0:0:0:
|
||||
256,192,144771,1,8,0:0:0:0:
|
||||
256,192,144915,1,0,0:0:0:0:
|
||||
256,192,145059,1,8,0:0:0:0:
|
||||
256,192,145203,1,0,0:0:0:0:
|
||||
256,192,145347,1,8,0:0:0:0:
|
||||
256,192,145636,1,0,0:0:0:0:
|
||||
256,192,145924,1,8,0:0:0:0:
|
||||
256,192,146068,1,0,0:0:0:0:
|
||||
256,192,146212,1,8,0:0:0:0:
|
||||
256,192,146356,1,0,0:0:0:0:
|
||||
256,192,146500,1,8,0:0:0:0:
|
||||
256,192,146789,1,8,0:0:0:0:
|
||||
256,192,146933,1,0,0:0:0:0:
|
||||
256,192,147077,1,0,0:0:0:0:
|
||||
256,192,147221,1,8,0:0:0:0:
|
||||
256,192,147366,1,0,0:0:0:0:
|
||||
256,192,147654,1,8,0:0:0:0:
|
||||
256,192,147798,1,0,0:0:0:0:
|
||||
256,192,147942,1,8,0:0:0:0:
|
||||
256,192,148086,1,0,0:0:0:0:
|
||||
256,192,148230,1,0,0:0:0:0:
|
||||
256,192,148374,1,8,0:0:0:0:
|
||||
256,192,148519,1,0,0:0:0:0:
|
||||
256,192,148807,1,8,0:0:0:0:
|
||||
256,192,148951,1,0,0:0:0:0:
|
||||
256,192,149384,12,0,150249,0:0:0:0:
|
||||
+1
-1
@@ -1163,7 +1163,7 @@ mod tests {
|
||||
}
|
||||
|
||||
if cfg!(feature = "taiko") {
|
||||
map_ids.push(222766);
|
||||
map_ids.push(1028484);
|
||||
}
|
||||
|
||||
map_ids
|
||||
|
||||
@@ -379,7 +379,7 @@ mod tests {
|
||||
#[cfg(not(any(feature = "async_tokio", feature = "async_std")))]
|
||||
#[test]
|
||||
fn iter_end_eq_regular() {
|
||||
let map = Beatmap::from_path("./maps/222766.osu").expect("failed to parse map");
|
||||
let map = Beatmap::from_path("./maps/1028484.osu").expect("failed to parse map");
|
||||
let mods = 64;
|
||||
let regular = crate::taiko::stars(&map, mods, None);
|
||||
|
||||
|
||||
@@ -0,0 +1,262 @@
|
||||
use crate::{Beatmap, TaikoPP};
|
||||
|
||||
use super::{TaikoGradualDifficultyAttributes, TaikoPerformanceAttributes};
|
||||
|
||||
// TODO: Benchmark if Copy is faster than Clone
|
||||
/// Aggregation for a score's current state i.e. what was the
|
||||
/// maximum combo so far and what are the current hitresults.
|
||||
#[derive(Copy, Clone, Debug, Default)]
|
||||
pub struct TaikoScoreState {
|
||||
/// Maximum combo that the score has had so far.
|
||||
/// **Not** the maximum possible combo of the map so far.
|
||||
pub max_combo: usize,
|
||||
/// Amount of current 300s.
|
||||
pub n300: usize,
|
||||
/// Amount of current 100s.
|
||||
pub n100: usize,
|
||||
/// Amount of current misses.
|
||||
pub misses: usize,
|
||||
}
|
||||
|
||||
impl TaikoScoreState {
|
||||
/// Create a new empty score state.
|
||||
pub fn new() -> Self {
|
||||
Self::default()
|
||||
}
|
||||
}
|
||||
|
||||
/// Gradually calculate the performance attributes of an osu!taiko map.
|
||||
///
|
||||
/// After each hit object you can call
|
||||
/// [`process_next_object`](`TaikoGradualPerformanceAttributes::process_next_object`)
|
||||
/// and it will return the resulting current [`TaikoPerformanceAttributes`].
|
||||
/// To process multiple objects at once, use
|
||||
/// [`process_next_n_objects`](`TaikoGradualPerformanceAttributes::process_next_n_objects`) instead.
|
||||
///
|
||||
/// Both methods require an [`TaikoScoreState`] that contains the current
|
||||
/// hitresults as well as the maximum combo so far.
|
||||
///
|
||||
/// If you only want to calculate difficulty attributes use
|
||||
/// [`TaikoGradualDifficultyAttributes`](crate::taiko::TaikoGradualDifficultyAttributes) instead.
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// use rosu_pp::{Beatmap, taiko::{TaikoGradualPerformanceAttributes, TaikoScoreState}};
|
||||
///
|
||||
/// # /*
|
||||
/// let map: Beatmap = ...
|
||||
/// # */
|
||||
/// # let map = Beatmap::default();
|
||||
///
|
||||
/// let mods = 64; // DT
|
||||
/// let mut gradual_perf = TaikoGradualPerformanceAttributes::new(&map, mods);
|
||||
/// let mut state = TaikoScoreState::new(); // empty state, everything is on 0.
|
||||
///
|
||||
/// // The first 10 hitresults are 300s
|
||||
/// for _ in 0..10 {
|
||||
/// state.n300 += 1;
|
||||
/// state.max_combo += 1;
|
||||
///
|
||||
/// # /*
|
||||
/// let performance = gradual_perf.process_next_object(state).unwrap();
|
||||
/// println!("PP: {}", performance.pp);
|
||||
/// # */
|
||||
/// # let _ = gradual_perf.process_next_object(state);
|
||||
/// }
|
||||
///
|
||||
/// // Then comes a miss.
|
||||
/// // Note that state's max combo won't be incremented for
|
||||
/// // the next few objects because the combo is reset.
|
||||
/// state.misses += 1;
|
||||
/// # /*
|
||||
/// let performance = gradual_perf.process_next_object(state).unwrap();
|
||||
/// println!("PP: {}", performance.pp);
|
||||
/// # */
|
||||
/// # let _ = gradual_perf.process_next_object(state);
|
||||
///
|
||||
/// // The next 10 objects will be a mixture of 300s and 100s.
|
||||
/// // Notice how all 10 objects will be processed in one go.
|
||||
/// state.n300 += 3;
|
||||
/// state.n100 += 7;
|
||||
/// # /*
|
||||
/// let performance = gradual_perf.process_next_n_objects(state, 10).unwrap();
|
||||
/// println!("PP: {}", performance.pp);
|
||||
/// # */
|
||||
/// # let _ = gradual_perf.process_next_n_objects(state, 10);
|
||||
///
|
||||
/// // Now comes another 300. Note that the max combo gets incremented again.
|
||||
/// state.n300 += 1;
|
||||
/// state.max_combo += 1;
|
||||
/// # /*
|
||||
/// let performance = gradual_perf.process_next_object(state).unwrap();
|
||||
/// println!("PP: {}", performance.pp);
|
||||
/// # */
|
||||
/// # let _ = gradual_perf.process_next_object(state);
|
||||
///
|
||||
/// // Skip to the end
|
||||
/// # /*
|
||||
/// state.max_combo = ...
|
||||
/// state.n300 = ...
|
||||
/// state.n100 = ...
|
||||
/// state.misses = ...
|
||||
/// let final_performance = gradual_perf.process_next_n_objects(state, usize::MAX).unwrap();
|
||||
/// println!("PP: {}", performance.pp);
|
||||
/// # */
|
||||
/// # let _ = gradual_perf.process_next_n_objects(state, usize::MAX);
|
||||
///
|
||||
/// // Once the final performance was calculated,
|
||||
/// // attempting to process further objects will return `None`.
|
||||
/// assert!(gradual_perf.process_next_object(state).is_none());
|
||||
/// ```
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct TaikoGradualPerformanceAttributes<'map> {
|
||||
difficulty: TaikoGradualDifficultyAttributes<'map>,
|
||||
performance: TaikoPP<'map>,
|
||||
}
|
||||
|
||||
impl<'map> TaikoGradualPerformanceAttributes<'map> {
|
||||
/// Create a new gradual performance calculator for osu!taiko maps.
|
||||
pub fn new(map: &'map Beatmap, mods: u32) -> Self {
|
||||
let difficulty = TaikoGradualDifficultyAttributes::new(map, mods);
|
||||
let performance = TaikoPP::new(map).mods(mods).passed_objects(0);
|
||||
|
||||
Self {
|
||||
difficulty,
|
||||
performance,
|
||||
}
|
||||
}
|
||||
|
||||
/// Process the next hit object and calculate the
|
||||
/// performance attributes for the resulting score.
|
||||
pub fn process_next_object(
|
||||
&mut self,
|
||||
state: TaikoScoreState,
|
||||
) -> Option<TaikoPerformanceAttributes> {
|
||||
self.process_next_n_objects(state, 1)
|
||||
}
|
||||
|
||||
/// Same as [`process_next_object`](`TaikoGradualPerformanceAttributes::process_next_object`)
|
||||
/// but instead of processing only one object it process `n` many.
|
||||
///
|
||||
/// If `n` is 0 it will be considered as 1.
|
||||
/// If there are still objects to be processed but `n` is larger than the amount
|
||||
/// of remaining objects, `n` will be considered as the amount of remaining objects.
|
||||
pub fn process_next_n_objects(
|
||||
&mut self,
|
||||
state: TaikoScoreState,
|
||||
n: usize,
|
||||
) -> Option<TaikoPerformanceAttributes> {
|
||||
let n = n.min(self.difficulty.len()).saturating_sub(1);
|
||||
let difficulty = self.difficulty.nth(n)?;
|
||||
|
||||
let _ = self.performance.n300.insert(state.n300);
|
||||
let _ = self.performance.n100.insert(state.n100);
|
||||
self.performance.n_misses = state.misses;
|
||||
|
||||
let performance = self
|
||||
.performance
|
||||
.clone()
|
||||
.attributes(difficulty)
|
||||
.combo(state.max_combo)
|
||||
.passed_objects(self.difficulty.idx)
|
||||
.calculate();
|
||||
|
||||
Some(performance)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[cfg(not(any(feature = "async_tokio", feature = "async_std")))]
|
||||
#[test]
|
||||
fn correct_empty() {
|
||||
let map = Beatmap::from_path("./maps/1028484.osu").expect("failed to parse map");
|
||||
let mods = 64;
|
||||
|
||||
let mut gradual = TaikoGradualPerformanceAttributes::new(&map, mods);
|
||||
let state = TaikoScoreState::default();
|
||||
|
||||
assert!(gradual.process_next_n_objects(state, usize::MAX).is_some());
|
||||
assert!(gradual.process_next_object(state).is_none());
|
||||
}
|
||||
|
||||
#[cfg(not(any(feature = "async_tokio", feature = "async_std")))]
|
||||
#[test]
|
||||
fn next_and_next_n() {
|
||||
let map = Beatmap::from_path("./maps/1028484.osu").expect("failed to parse map");
|
||||
let mods = 64;
|
||||
let state = TaikoScoreState::default();
|
||||
|
||||
let mut gradual1 = TaikoGradualPerformanceAttributes::new(&map, mods);
|
||||
let mut gradual2 = TaikoGradualPerformanceAttributes::new(&map, mods);
|
||||
|
||||
for _ in 0..50 {
|
||||
let _ = gradual1.process_next_object(state);
|
||||
let _ = gradual2.process_next_object(state);
|
||||
}
|
||||
|
||||
let n = 200;
|
||||
|
||||
for _ in 1..n {
|
||||
let _ = gradual1.process_next_object(state);
|
||||
}
|
||||
|
||||
let state = TaikoScoreState {
|
||||
max_combo: 246,
|
||||
n300: 200,
|
||||
n100: 40,
|
||||
misses: 6,
|
||||
};
|
||||
|
||||
let next = gradual1.process_next_object(state);
|
||||
let next_n = gradual2.process_next_n_objects(state, n);
|
||||
|
||||
assert_eq!(next_n, next);
|
||||
}
|
||||
|
||||
#[cfg(not(any(feature = "async_tokio", feature = "async_std")))]
|
||||
#[test]
|
||||
fn gradual_end_eq_regular() {
|
||||
let map = Beatmap::from_path("./maps/1028484.osu").expect("failed to parse map");
|
||||
let mods = 64;
|
||||
let regular = TaikoPP::new(&map).mods(mods).calculate();
|
||||
|
||||
let mut gradual = TaikoGradualPerformanceAttributes::new(&map, mods);
|
||||
|
||||
let state = TaikoScoreState {
|
||||
max_combo: 289,
|
||||
n300: 289,
|
||||
n100: 0,
|
||||
misses: 0,
|
||||
};
|
||||
|
||||
let gradual_end = gradual.process_next_n_objects(state, usize::MAX).unwrap();
|
||||
|
||||
assert_eq!(regular, gradual_end);
|
||||
}
|
||||
|
||||
#[cfg(not(any(feature = "async_tokio", feature = "async_std")))]
|
||||
#[test]
|
||||
fn gradual_eq_regular_passed() {
|
||||
let map = Beatmap::from_path("./maps/1028484.osu").expect("failed to parse map");
|
||||
let mods = 64;
|
||||
let n = 250;
|
||||
let regular = TaikoPP::new(&map).mods(mods).passed_objects(n).calculate();
|
||||
|
||||
let mut gradual = TaikoGradualPerformanceAttributes::new(&map, mods);
|
||||
|
||||
let state = TaikoScoreState {
|
||||
max_combo: 246,
|
||||
n300: 246,
|
||||
n100: 0,
|
||||
misses: 0,
|
||||
};
|
||||
|
||||
let gradual = gradual.process_next_n_objects(state, n).unwrap();
|
||||
|
||||
assert_eq!(regular, gradual);
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -2,6 +2,7 @@
|
||||
|
||||
mod difficulty_object;
|
||||
mod gradual_difficulty;
|
||||
mod gradual_performance;
|
||||
mod hitobject_rhythm;
|
||||
mod limited_queue;
|
||||
mod pp;
|
||||
@@ -12,6 +13,7 @@ mod stamina_cheese;
|
||||
|
||||
use difficulty_object::DifficultyObject;
|
||||
pub use gradual_difficulty::*;
|
||||
pub use gradual_performance::*;
|
||||
use hitobject_rhythm::{closest_rhythm, HitObjectRhythm};
|
||||
use limited_queue::LimitedQueue;
|
||||
pub use pp::*;
|
||||
@@ -227,7 +229,7 @@ impl TaikoDifficultyAttributes {
|
||||
}
|
||||
|
||||
/// The result of a performance calculation on an osu!taiko map.
|
||||
#[derive(Clone, Debug, Default)]
|
||||
#[derive(Clone, Debug, Default, PartialEq)]
|
||||
pub struct TaikoPerformanceAttributes {
|
||||
/// The difficulty attributes that were used for the performance calculation
|
||||
pub difficulty: TaikoDifficultyAttributes,
|
||||
|
||||
+3
-3
@@ -38,11 +38,11 @@ pub struct TaikoPP<'map> {
|
||||
mods: u32,
|
||||
combo: Option<usize>,
|
||||
acc: f64,
|
||||
n_misses: usize,
|
||||
passed_objects: Option<usize>,
|
||||
|
||||
n300: Option<usize>,
|
||||
n100: Option<usize>,
|
||||
pub(crate) n300: Option<usize>,
|
||||
pub(crate) n100: Option<usize>,
|
||||
pub(crate) n_misses: usize,
|
||||
}
|
||||
|
||||
impl<'map> TaikoPP<'map> {
|
||||
|
||||
Reference in New Issue
Block a user