1
1
#include < maniac/maniac.h>
2
2
3
+ static void reset_keys () {
4
+ auto keys = osu::Osu::get_key_subset (9 );
5
+ for (auto key : keys) {
6
+ Process::send_keypress (key, false );
7
+ }
8
+ }
9
+
3
10
namespace maniac {
4
11
void block_until_playing () {
5
12
while (true ) {
@@ -12,10 +19,7 @@ namespace maniac {
12
19
}
13
20
14
21
void play (std::vector<osu::Action> &actions) {
15
- auto keys = osu::Osu::get_key_subset (9 );
16
- for (auto key : keys) {
17
- Process::send_keypress (key, false );
18
- }
22
+ reset_keys ();
19
23
20
24
size_t cur_i = 0 ;
21
25
auto cur_time = 0 ;
@@ -38,7 +42,7 @@ namespace maniac {
38
42
}
39
43
40
44
std::vector<osu::Action> get_actions (int32_t min_time) {
41
- auto player = osu->get_map_player ();
45
+ const auto player = osu->get_map_player ();
42
46
auto hit_objects = player.manager .list .content ;
43
47
44
48
if (hit_objects.empty ()) {
@@ -47,7 +51,7 @@ namespace maniac {
47
51
return {};
48
52
}
49
53
50
- auto columns = std::max_element (hit_objects.begin (),
54
+ const auto columns = std::max_element (hit_objects.begin (),
51
55
hit_objects.end (), [](auto a, auto b) {
52
56
return a.column < b.column ; })->column + 1 ;
53
57
auto keys = osu::Osu::get_key_subset (columns);
@@ -62,9 +66,8 @@ namespace maniac {
62
66
if (hit_object.start_time < min_time)
63
67
continue ;
64
68
65
- // TODO: Make the tap time an option or something.
66
69
if (hit_object.start_time == hit_object.end_time )
67
- hit_object.end_time += 20 ;
70
+ hit_object.end_time += config. tap_time ;
68
71
69
72
actions.emplace_back (keys[hit_object.column ], true ,
70
73
hit_object.start_time + config.compensation_offset );
0 commit comments