Dean Herbert
78a8f60b39
IHasComboIndex -> IHasComboInformation
2018-03-22 12:35:17 +09:00
Dean Herbert
c38c26eacb
Move combo index processing to BeatmapProcessor
2018-03-20 15:57:43 +09:00
Dean Herbert
cb3d0db555
Move combo colours completely out of HitObjects
2018-03-20 15:50:12 +09:00
Dean Herbert
8d790e180d
Fix juice stream droplets spawning in incorrect locations
...
Closes #2149 .
2018-03-16 17:03:38 +09:00
Dean Herbert
7e7f8ed7a2
Merge branch 'master' into drawable-composite-hit-object
2018-03-16 15:53:16 +09:00
Dean Herbert
23ffee3d38
Merge branch 'master' into drawable-composite-hit-object
2018-03-16 15:38:52 +09:00
Dean Herbert
46f5c0fc19
Merge branch 'master' into mod-fixes
2018-03-16 15:38:41 +09:00
Dean Herbert
a42035f494
Make DrawableHitObject a CompositeDrawable
...
No reason for it to be a container.
2018-03-15 13:41:06 +09:00
Joseph Madamba
d122aa80e4
Edit mods description, multiplier, and code
2018-03-13 20:07:03 -07:00
Dean Herbert
c55d70ec13
Merge branch 'master' into fix-combo-colours
2018-03-13 19:19:45 +09:00
Dean Herbert
e43de68ad3
Move colour parsing to LegacyDecoder
2018-03-13 19:13:50 +09:00
smoogipoo
7406cb290f
Split out test beatmap from TestCasePlayer into instantiable class
2018-03-12 19:41:09 +09:00
Dean Herbert
e82cadc811
Make LegacyID nullable
...
The -1 default was getting stored to the database.
2018-03-06 17:40:14 +09:00
Dean Herbert
ed8b7d12c4
Merge branch 'master' into fix-catch-legacy-replays
2018-03-04 02:21:10 +09:00
Dean Herbert
0e928429d4
Merge branch 'master' into ruleset-replayframes
2018-03-04 01:57:43 +09:00
Dean Herbert
46d018922e
Ignore catch conversion failures
2018-03-02 20:50:12 +09:00
smoogipoo
a2c239d5e3
Rename to IBeatmapConverter, move to separate file
2018-03-02 20:19:47 +09:00
smoogipoo
71755f5363
Prettyfy some JSON
2018-03-02 20:12:29 +09:00
smoogipoo
820a852caf
Remove unnecessary .osu properties
2018-03-02 18:37:38 +09:00
smoogipoo
cdca7371a3
Replace testcases with a basic test suite
2018-03-02 18:20:33 +09:00
smoogipoo
1f21ccffb0
Add lenience to start times
2018-03-02 18:20:12 +09:00
Dan Balasescu
4aff659272
Merge branch 'master' into beatmap-conversion-testcases
2018-03-02 16:04:32 +09:00
smoogipoo
3d5fefae8c
Add TestFixtureAttribute to all tests
2018-03-02 15:34:31 +09:00
smoogipoo
6fff6da751
Ignore broken testcases
2018-03-02 14:01:34 +09:00
smoogipoo
bae598b9f4
Add a catch beatmap conversion testcase
2018-03-02 13:13:01 +09:00
smoogipoo
7d7a3bab0e
Fix catch legacy replay positions not being relative to playfield size
2018-03-01 14:43:45 +09:00
smoogipoo
a24e8b02e8
Rename catch frame's X to Position
2018-03-01 02:28:15 +09:00
smoogipoo
195b6642e6
Reimplement important frames
2018-03-01 02:28:15 +09:00
smoogipoo
cf42d5bbd5
Remove mostly-unused Score parameter
2018-03-01 02:28:14 +09:00
smoogipoo
c9c65cab53
CreateReplayFrame -> CreateConvertibleReplayFrame
2018-03-01 02:28:14 +09:00
smoogipoo
4a20513fc4
Fix catch always dashing
2018-03-01 02:28:14 +09:00
smoogipoo
222ae70062
Populate rulesets with their replay frames
2018-03-01 02:28:14 +09:00
smoogipoo
a3c7755ade
Implement a conversion process for ReplayFrames
2018-03-01 02:28:14 +09:00
smoogipoo
f5fc9cdfba
Fix catch now having incorrect offsets
2018-02-24 02:59:55 +09:00
smoogipoo
b500b76407
Merge branch 'master' into update-branch
2018-02-08 23:35:48 +09:00
smoogipoo
ccc948a0b9
Update framework (testing)
2018-02-08 12:45:51 +09:00
Dean Herbert
dfc344b47a
Update OpenTK version
2018-02-06 13:47:54 +09:00
Dean Herbert
6b35ef7063
Update OpenTK version
2018-02-05 16:13:30 +09:00
Dean Herbert
468205d450
Fix osu!catch autoplay missing bananas when running above 1x playback speed
2018-02-01 19:52:36 +09:00
Dean Herbert
3bd42e3c85
Fix catch never hitting result screen
2018-02-01 18:08:15 +09:00
Dean Herbert
daac7494dd
Fix incorrect offset check for DrawableCatchHitObjects
2018-02-01 18:08:15 +09:00
FreezyLemon
8f0ab2040f
Add Jetbrains.Annotations NuGet package
2018-01-26 12:46:28 +01:00
smoogipoo
d37844c068
Clean up off-by-one offsets from repeat-related properties
2018-01-23 13:37:25 +09:00
Dean Herbert
32b540268e
Add more human-like catch autoplay support
...
Closes #1611
2018-01-22 18:46:59 +09:00
smoogipoo
c309cc9454
Privatise OnJudgements as much as possible
2018-01-16 15:37:32 +09:00
smoogipoo
8c5ef0a330
Remove base OnJudgement from Playfield to properly accomodate nested playfields
2018-01-15 20:48:57 +09:00
Aergwyn
ae1adfd2f2
remove unnecessary empty lines
...
codefactor.io \(o.o)/
also one unnecessary semicolon
2018-01-12 19:30:34 +01:00
Dean Herbert
b4b15b7dd0
Apply review fixes
2018-01-13 00:51:20 +09:00
Dean Herbert
9e10854840
Fix banannanananana showers not exploding enough
2018-01-12 22:30:35 +09:00
Dean Herbert
7b19353ed8
Fix weird fruit not fading out
2018-01-12 22:30:35 +09:00
Dean Herbert
f03b8206da
Make banana showers always last in combo (explodey)
2018-01-12 22:30:35 +09:00
Dean Herbert
20c6f84efa
Fix banana test regression
2018-01-12 22:30:35 +09:00
Dean Herbert
93c4d58b69
Make catch plate fruit again
2018-01-12 22:30:35 +09:00
smoogipoo
90bcec42d7
Remove unused using
2018-01-12 20:48:58 +09:00
Dan Balasescu
56e4212883
Merge branch 'master' into catch-autoplay
2018-01-12 20:25:24 +09:00
Dan Balasescu
d9c47f98a8
Merge branch 'master' into catch-banana-shower
2018-01-12 20:00:00 +09:00
Dean Herbert
7bdedf802c
Fix juice streams not propagating accent colours to nested objects
2018-01-12 19:39:56 +09:00
Dean Herbert
33fdc2c1d6
Add very basic replay handling
2018-01-12 18:35:28 +09:00
Dean Herbert
9e3091bfe9
Change anchors in line with new ScrollingPlayfield implementation
...
(cherry picked from commit 079827d)
2018-01-12 18:33:41 +09:00
Dean Herbert
3b929ffd21
Make test more useful
...
(cherry picked from commit 5985115)
2018-01-12 18:33:41 +09:00
Dean Herbert
26fedd7e61
Update in line with upstream changes
...
(cherry picked from commit 2b6d991)
2018-01-12 18:33:41 +09:00
Dean Herbert
5b15073010
Add actual banana conversion/reading
...
(cherry picked from commit d353158)
2018-01-12 18:33:41 +09:00
Dean Herbert
5c79bdc41c
Use switch pattern matching in more places
...
Also switch access to many classes to public.
(cherry picked from commit 86cc3b7)
2018-01-12 18:33:41 +09:00
Dean Herbert
a36cfd4265
Add BananaShower models and representations
...
(cherry picked from commit e12e095)
2018-01-12 18:33:41 +09:00
Dean Herbert
1c3c90bac6
Add banana design
...
(cherry picked from commit 6961ca2)
2018-01-12 18:33:41 +09:00
Dean Herbert
354d781002
Merge remote-tracking branch 'upstream/master' into fix-mod-implementation-check
2018-01-12 17:49:31 +09:00
Dean Herbert
9a77005d2e
Make sure unimplemented auto mods aren't consumable
2018-01-12 14:26:23 +09:00
Dean Herbert
e5f17e3ddb
Remove scale from all but palpable fruit
2018-01-11 22:36:21 +09:00
Dean Herbert
0609fc40de
Fix up DrawableJuiceStream/BananaShower
...
(cherry picked from commit 0bfb3b6)
2018-01-11 20:56:09 +09:00
Dean Herbert
66ebe2ee66
Change anchors in line with new ScrollingPlayfield implementation
...
(cherry picked from commit 079827d)
2018-01-11 20:55:43 +09:00
Dean Herbert
5b190d3cd2
Use correct container type when removing fruit
...
(cherry picked from commit a2be7f7)
2018-01-11 20:55:25 +09:00
smoogipoo
9d00e5bb7d
Make ScrollingHitObjectContainer handle nested hitobjects
2018-01-11 15:08:30 +09:00
smoogipoo
f71d086a41
Fix post-merge issues
2018-01-10 18:08:43 +09:00
smoogipoo
86b5591583
Merge remote-tracking branch 'origin/master' into scrolling-hitobjects-rewrite
2018-01-10 18:02:49 +09:00
Dean Herbert
58626e3b30
Allow rulesets to create their own instantiation info
2018-01-10 17:04:07 +09:00
Dean Herbert
1c20fba6bc
Merge branch 'master' into drop-fruit
2018-01-10 12:29:53 +09:00
Dean Herbert
32e237d138
Merge branch 'master' into drop-fruit
2018-01-10 11:39:46 +09:00
Dean Herbert
9d099feadc
Merge branch 'master' into fix-catcher-width
2018-01-10 10:04:10 +09:00
Dean Herbert
c4490b5fe8
Fix incorrect licence header
2018-01-09 22:24:12 +09:00
Dan Balasescu
9c602f8770
Merge branch 'master' into drawable-fruit-improvements
2018-01-09 22:06:16 +09:00
Dean Herbert
b8bb0a52e3
Move mod implementations to individual files
2018-01-09 14:08:18 +09:00
Dean Herbert
37d393bca0
Update licence headers
2018-01-05 20:21:19 +09:00
smoogipoo
36e9232472
Merge master into netstandard
2018-01-05 00:42:48 +09:00
smoogipoo
a7aab21a29
Re-namespace files
2018-01-04 19:22:15 +09:00
smoogipoo
651e24e3cc
Implement proper scrolling directions
2018-01-04 19:17:40 +09:00
smoogipoo
f34131f8f4
Initial game-wide replacement of scrolling playfields
2018-01-04 18:50:17 +09:00
Dean Herbert
22fc9601ee
Add back missing code
2018-01-04 18:33:57 +09:00
Dean Herbert
5bd489863c
Rename enum
2018-01-04 18:20:23 +09:00
Dean Herbert
f28053b2fc
Drop fruit when last in combo is not caught
...
Also cleans up judgement handling a bit
2018-01-04 18:13:59 +09:00
Dean Herbert
0bbc15d24a
Clamp fruit to plate
2018-01-04 17:51:34 +09:00
Dean Herbert
5125abf681
Better plate alignment and stacking logic
2018-01-04 17:27:17 +09:00
Dean Herbert
722cad3674
Caught fruit sit behind plate
2018-01-04 17:25:51 +09:00
Dean Herbert
152b846cff
Fix incorrect scaling of hitobjects in catch
2018-01-04 16:29:53 +09:00
Dean Herbert
f45752c652
Fix catcher's catchable width being half of what it should
2018-01-04 16:29:39 +09:00
Dean Herbert
5253ee5c08
Ignore ruleset test
2018-01-04 15:34:57 +09:00
Dean Herbert
996a72b279
Degrade yearin header
2018-01-04 15:25:12 +09:00
Dean Herbert
5f1d360a69
Fix incorrect file header
2018-01-04 15:21:33 +09:00
Dean Herbert
3c06318521
Improve the look of hyperdash fruit
2018-01-03 20:55:52 +09:00
Dean Herbert
b03cbaca77
Add back random rotation
2018-01-03 20:55:44 +09:00
Dean Herbert
9bde8d3da1
Move combo colouring to test case
2018-01-03 20:52:01 +09:00
Dean Herbert
4ee845fea8
Adjust border thickness and fade out rate of border
2018-01-03 19:15:25 +09:00
Dean Herbert
b137c3b2ca
Adjust ticks size
2018-01-03 18:35:43 +09:00
Dean Herbert
921ca6956d
Improve fruit visuals
2018-01-03 18:26:54 +09:00
Dean Herbert
cf1f84cc32
Give fruit a border
2018-01-03 16:32:58 +09:00
Dean Herbert
fd34b36e1a
Add fruit drawable testcase
2018-01-03 16:32:09 +09:00
Dean Herbert
02131d75d4
Let fruits know what index they are in the beatmap to draw a visual representation
2018-01-03 16:31:57 +09:00
Aergwyn
ccb69d16d9
move HitResult in Scoring namespace to replace HitCount
2017-12-30 21:23:18 +01:00
Dean Herbert
2ca10b28c6
Use a non-broken opentk library
2017-12-29 15:42:51 +09:00
smoogipoo
7a793eaded
Merge master into netstandard
2017-12-27 20:48:53 +09:00
smoogipoo
5b529511ec
Update OpenTK nuget package
...
Fixes the recent AppVeyor errors
2017-12-27 13:18:34 +09:00
smoogipoo
d288d8a51f
Remove SampleInfoList
2017-12-25 15:40:01 +09:00
smoogipoo
6a29f6020a
Make HitObjects construct nested hit objects
2017-12-22 21:42:54 +09:00
smoogipoo
ac1d27e925
Fix possible nullref exceptions
2017-12-21 23:02:46 +09:00
smoogipoo
d80079a73a
Merge remote-tracking branch 'origin/master' into beatmap-serialization
2017-12-21 20:15:01 +09:00
smoogipoo
cb7e192aff
Determine SampleInfo defaults in DrawableHitObject
2017-12-21 16:02:33 +09:00
Dean Herbert
020d272636
Make all TestCases public
2017-12-20 21:51:00 +09:00
Dean Herbert
08727266e7
Merge branch 'master' into add-ruleset-shortname
2017-12-11 15:41:11 +09:00
FreezyLemon
4a723f7382
Added the "Service Include" tag that is used by Visual Studio's test explorer to the .csproj files
2017-12-08 11:05:00 +01:00
Dean Herbert
679134c030
Add ShortName to rulesets
2017-12-08 18:55:25 +09:00
Dean Herbert
8c3ae9430b
Add difficulty scaling considerations to hyperdash initialisation
2017-12-01 20:39:58 +09:00
Dean Herbert
997cdfaee4
Add missing licence header
2017-12-01 20:31:54 +09:00
Dean Herbert
912d5edcf6
Merge branch 'master' into catch-hyperdash
2017-12-01 20:16:37 +09:00
Dean Herbert
79e1bf3394
Remove unused testcase
2017-12-01 20:14:42 +09:00
Dean Herbert
e75d73ac1c
Change hyperdash colour again
2017-12-01 20:13:46 +09:00
Dean Herbert
bf606522c1
Make hyperdash testcase easier to win again
2017-12-01 20:13:32 +09:00
Dean Herbert
273793f185
Add comments
2017-12-01 20:08:49 +09:00
Dean Herbert
25207c51b5
Add directionality
2017-12-01 20:07:28 +09:00
Dean Herbert
445bb70ef5
Add hyperdash visual testing to TestCaseCatcherArea
...
Also tidies up hyperdash state logic
2017-12-01 19:58:00 +09:00
Dean Herbert
07081f400c
Make hyperdash testcase easier to win
2017-12-01 19:33:20 +09:00
Dean Herbert
51cae24a26
Add basic hyperdash movement
...
Doesn't restrict direction yet. Also improves readability of fruit catch detection.
2017-12-01 19:33:13 +09:00
smoogipoo
a30270658d
Merge remote-tracking branch 'origin/master' into netstandard
2017-12-01 18:50:28 +09:00
Dean Herbert
881745d756
Initial implementation of hyperdash calculation
2017-12-01 17:59:36 +09:00
Dean Herbert
76a1c7db3b
Hyperdash preparation
2017-12-01 13:10:51 +09:00
smoogipoo
36be171c29
Fix up/clean up csprojs for C#7 support
2017-11-30 02:06:03 +09:00
smoogipoo
a0c3349935
Add LangVer.props and osu.Game.props for common csproj properties
2017-11-30 00:45:37 +09:00
smoogipoo
267bb75458
Merge remote-tracking branch 'Aergwyn/master' into netstandard
2017-11-29 23:45:29 +09:00
smoogipoo
7db7fb91dd
Ignore ruleset testcases from CI
2017-11-28 21:45:24 +09:00
smoogipoo
a9cc156d7a
Merge remote-tracking branch 'origin/master' into performance-calculator
2017-11-28 21:38:26 +09:00
Dean Herbert
23b4d2163c
Fix spelling and grammar
2017-11-28 21:30:03 +09:00
Dean Herbert
2bb61e51ac
Add catcher scale based on CircleSize
2017-11-28 19:43:26 +09:00
Dean Herbert
b11de50df2
Cleanups
2017-11-28 18:42:50 +09:00
Dean Herbert
5ae9b4c791
Make CatchStacker testcase more useful
2017-11-28 18:39:54 +09:00
Dean Herbert
b517523f4a
Add back CatcherArea to simplify layout
2017-11-28 18:39:45 +09:00
Dean Herbert
8f3fd7092e
CatchBaseHit -> CatchHitObject
...
Also moves default scale to CatchHitObject.
2017-11-28 18:37:41 +09:00
Dean Herbert
2deb33ac41
Add basic fruit scaling support
2017-11-28 18:34:40 +09:00
Dean Herbert
11d406aa0c
Fix osu!catch conversion expecting full positional data, rather than just X.
...
Closes #1367 .
2017-11-24 11:49:10 +09:00
smoogipoo
f9ad4b6acb
Make categoryDifficulties return doubles to improve decimal accuracy
2017-11-21 19:55:09 +09:00
smoogipoo
b3bf6e7bee
Merge master into netstandard
2017-11-21 16:39:21 +09:00
smoogipoo
756f6f2d16
Remove net461 targets
2017-11-20 10:10:28 +09:00
smoogipoo
067c018422
Cleanups
2017-11-19 17:31:35 +09:00
smoogipoo
d2ab0621f3
Make osu.Game + rulesets compile with netstandard
2017-11-19 13:46:51 +09:00
smoogipoo
bf44b3d0ef
Cleanups
2017-11-17 16:54:50 +09:00
smoogipoo
38fe95d94a
Add basic display for pp in TestCasePerformancePoints
2017-11-17 14:37:19 +09:00
smoogipoo
95fd323c6b
Fix ManiaDifficultyCalculator possibly failing due to nullref
2017-11-17 14:37:06 +09:00
smoogipoo
ac6213d1fa
CI fixes
2017-11-17 14:26:33 +09:00
smoogipoo
62155e6dd5
Make DifficultyCalculator support mod applications
...
Fixes https://github.com/ppy/osu/issues/476 .
2017-11-17 12:36:07 +09:00
smoogipoo
f461f03b08
Make osu! compile with framework changes
2017-11-16 14:51:31 +09:00
Dean Herbert
bbc5c05055
Disable ruleset-level tests for now
2017-10-23 21:25:54 +09:00
Dean Herbert
36af0dc809
Update app config for rulesets
2017-10-19 14:59:11 +09:00
Dean Herbert
179542daf1
Standardise AssemblyInfos
2017-10-14 15:02:20 +09:00
Dean Herbert
c5046f6b3c
Add back osu.Desktop project
...
While it was nice having less projects to deal with, it meant hacks to get around circular dependencies between rulesets and osu.Game. For now, let's just restore the osu.Desktop project and call it a day.
This allows for the project to build again with default visual studio settings.
2017-10-14 14:33:05 +09:00
Dean Herbert
bb6b656ec6
Fix code review issues
2017-10-12 22:27:22 +09:00
Dean Herbert
4a4c01f221
Fix CI problems
2017-10-11 21:25:15 +09:00
Dean Herbert
744d548738
Add missing licence header
2017-10-11 20:28:10 +09:00
Dean Herbert
0b282a49bd
Add tiny droplet support
2017-10-11 20:11:29 +09:00
Dean Herbert
1b732c799a
Make all juice nested objects from ticks
2017-10-11 19:10:07 +09:00
Dean Herbert
1f1bdc6162
Make juice streams interactive (and correctly positioned)
2017-10-11 18:18:06 +09:00
Dean Herbert
e4f915e5af
Fix scoring simulation not supporting juice
2017-10-10 20:22:57 +09:00
Dean Herbert
03fbf47bc2
Add juicy streams
2017-10-10 20:22:42 +09:00
Dean Herbert
26215b4488
Create an abstract base class for drawable catch objects
2017-10-09 19:42:55 +09:00
Dean Herbert
37393ab2c9
Move brace
2017-10-02 22:24:22 +08:00
Dean Herbert
3338024c17
Fix incorrect whitespace
2017-10-02 22:12:53 +08:00
Dean Herbert
7168629b2a
Remove CatcherArea abstraction
...
Also fixes catcher size being relative to aspect ratio.
2017-10-02 21:55:37 +08:00
Dean Herbert
66afba6219
Allow TestCasePlayer to instantiate only one ruleset type
2017-10-02 20:48:24 +08:00
Sinnoh
3b9c2d1d5f
changed description for hidden
...
ctb doesn't have approach circles
2017-09-26 16:50:12 +08:00
Dean Herbert
e0911f014e
Fix ruleset target path for release builds
2017-09-19 22:50:36 +09:00
Dean Herbert
611f4df484
Add licence header
2017-09-19 21:41:51 +09:00
Dean Herbert
f96875a470
Add a catch specific player test
2017-09-19 21:40:57 +09:00
Dean Herbert
0aa152974a
Add interfaces to CatchBaseHit
2017-09-19 21:40:38 +09:00
Dean Herbert
4b68950428
Fix incorrect coordinate mapping on fruit explosion
2017-09-19 21:39:53 +09:00
Dean Herbert
c88b0784da
Use MaxValue instead of PositiveInfinity
2017-09-19 21:39:17 +09:00
Dean Herbert
d192c2d83b
Merge remote-tracking branch 'upstream/master' into ctb-improvements
2017-09-19 20:54:39 +09:00
Dean Herbert
99b512cce5
Output ruleset assemblies to the game folder rather than adding special logic
2017-09-19 19:27:14 +09:00
Dean Herbert
1f20c5eb69
Optimise project references
2017-09-19 16:07:00 +09:00
Dean Herbert
8fa76557db
Avoid unnecessary dll copies
2017-09-19 16:06:59 +09:00
Dean Herbert
6db705a3a8
Update relative paths
2017-09-19 16:06:58 +09:00
Dean Herbert
6d3d485565
And then everything became one
2017-09-19 16:06:58 +09:00
Dean Herbert
60b38b2776
Add the most basic score calculation for catch
2017-09-18 12:48:45 +09:00
Dean Herbert
d3c58c848d
Add licence header
2017-09-18 12:48:33 +09:00
Dean Herbert
e52a4fe72c
Put caught fruit in their own container to reduce casting
2017-09-18 12:33:01 +09:00
Dean Herbert
cfcb0c1c6e
Add (incorrectly) exploding fruit
2017-09-15 21:26:36 +09:00
Dean Herbert
fe221905fa
Make fruits look a bit closer to the final design
2017-09-15 20:55:04 +09:00
Dean Herbert
4e0aed4b8a
Add combo/colour metadata to CatchBaseHit
2017-09-15 20:54:34 +09:00
Dean Herbert
b9ab034f94
Fix catcher movement speed being way too slow
...
Now matches osu-stable
2017-09-15 19:32:46 +09:00
Dean Herbert
b78c516b74
Merge branch 'master' into scoring-revamp
2017-09-13 20:47:14 +09:00
Dean Herbert
fb7740a3ab
Update all dependencies in line with framework
2017-09-13 20:25:40 +09:00
smoogipooo
5e32d95ad2
Remove Ruleset's CreateScoreProcessor method
2017-09-13 16:37:05 +09:00
smoogipooo
093d82ac45
Set depths from playfield add methods instead of DrawableHitObject
2017-09-13 16:17:01 +09:00
smoogipooo
6682c3a736
Override instead of re-binding event
2017-09-13 16:15:11 +09:00
smoogipooo
3e3618d724
More cleanups
2017-09-12 21:12:57 +09:00