Etterna 0.74.4
Loading...
Searching...
No Matches
MetaHandInfo.h
1#pragma once
2#include "HD_BasicSequencing.h"
3#include "HD_MetaSequencing.h"
4
5/* this is a row by row sequencer that constructs basic and advanced hand based
6 * patterns given noteinfo input for a current row, and its own output of the
7 * last row */
8
9// perhaps this should contain no timing information, only pattern information?
10
26{
28 col_type _ct = col_init;
29 col_type _last_ct = col_init;
30
32 base_type _bt = base_type_init;
33 base_type _last_bt = base_type_init;
34
36 base_type last_last_bt = base_type_init;
37
38 // whomst've
39 meta_type _mt = meta_type_init;
40 meta_type _last_mt = meta_type_init;
41
43 int offhand_taps = 0;
44 int offhand_ohjumps = 0;
45
46 Calc& _calc;
47
48 explicit metaHandInfo(Calc& calc)
49 : _calc(calc)
50 {
51
52 }
53
59 {
60 _ct = col_init;
61 _last_ct = col_init;
62
63 _bt = base_type_init;
64 _last_bt = base_type_init;
65 last_last_bt = base_type_init;
66
67 _mt = meta_type_init;
68 _last_mt = meta_type_init;
69 }
70
71 void operator()(const metaHandInfo& last, const col_type& ct)
72 {
73 // this should never ever be called on col_empty
74 assert(ct != col_empty);
75
76 _ct = ct;
77
78 // set older values, yeah yeah, i know
79 _last_ct = last._ct;
80 last_last_bt = last._last_bt;
81 _last_bt = last._bt;
82 _last_mt = last._mt;
83
84 /* ok now actually do stuff */
85
86 // update this hand's cc type for this row
87 _bt = determine_base_pattern_type(ct, _last_ct);
88
89 // now that we have determined base_type, we can look for more complex
90 // patterns
91 _mt = determine_meta_type(
92 _bt, _last_bt, last_last_bt, last.last_last_bt, _last_mt);
93 }
94};
Main driver class for the difficulty calculator as a whole.
Definition MinaCalc.h:82
Definition MetaHandInfo.h:26
col_type _ct
col
Definition MetaHandInfo.h:28
base_type _bt
type of cross column hit
Definition MetaHandInfo.h:32
base_type last_last_bt
needed for the BIGGEST BRAIN PLAYS
Definition MetaHandInfo.h:36
int offhand_taps
number of offhand taps before this row
Definition MetaHandInfo.h:43
void full_reset()
Definition MetaHandInfo.h:58