@@ -21,8 +21,8 @@ using namespace Chroma;
21
21
//
22
22
// std::vector<SaberColorizer::BSMColorManager *> SaberColorizer::_bsmColorManagers;
23
23
24
- std::vector< std::optional<UnityEngine::Color>> NoteColorizer::NoteColorOverride = std::vector<std::optional<UnityEngine::Color>>( 2 , std::nullopt ) ;
25
- std::vector< std::optional<UnityEngine::Color>> NoteColorizer::CNVColorManager::_globalColor = std::vector<std::optional<UnityEngine::Color>>( 2 , std::nullopt ) ;
24
+ std::unordered_map< int , std::optional<UnityEngine::Color>> NoteColorizer::NoteColorOverride = {{ 0 , std::nullopt }, { 1 , std::nullopt }} ;
25
+ std::unordered_map< int , std::optional<UnityEngine::Color>> NoteColorizer::CNVColorManager::_globalColor = {{ 0 , std::nullopt }, { 1 , std::nullopt }} ;
26
26
27
27
void NoteColorizer::Reset (GlobalNamespace::NoteController *nc) {
28
28
auto m = CNVColorManager::GetCNVColorManager (nc);
@@ -91,25 +91,35 @@ void NoteColorizer::EnableNoteColorOverride(GlobalNamespace::NoteController *not
91
91
92
92
if (customData->customData && customData->customData ->value ) {
93
93
auto &dynData = *customData->customData ->value ;
94
-
94
+ getLogger (). debug ( " Note color override " );
95
95
96
96
// TODO: Do these execute a similar or exact implementation of the PC version at
97
97
// https://github.com/Aeroluna/Chroma/blob/e7a72f8b848c822d860361a027034218125af135/Chroma/Colorizer/NoteColorizer.cs#L71-L72
98
98
99
99
100
- if (dynData.MemberCount () > 0 ) {
101
- // PrintJSONValue(dynData);
102
- NoteColorOverride[0 ] = ChromaUtils::ChromaUtilities::GetColorFromData (&dynData, " color0" );
103
- } else {
104
- NoteColorOverride[0 ] = std::nullopt ;
105
- }
100
+ CustomData::NoteData* noteData = reinterpret_cast <CustomData::NoteData*>(customData->customData ->associatedData [' C' ]);
106
101
107
- if (dynData.MemberCount () > 1 ) {
108
- NoteColorOverride[1 ] = ChromaUtils::ChromaUtilities::GetColorFromData (&dynData, " color1" );
102
+ if (noteData != nullptr ) {
103
+ NoteColorOverride[0 ] = noteData->_color0 ;
104
+ NoteColorOverride[1 ] = noteData->_color1 ;
109
105
} else {
106
+ NoteColorOverride[0 ] = std::nullopt ;
110
107
NoteColorOverride[1 ] = std::nullopt ;
111
108
}
112
109
110
+ // if (dynData.MemberCount() > 0) {
111
+ // // PrintJSONValue(dynData);
112
+ // NoteColorOverride[0] = ChromaUtils::ChromaUtilities::GetColorFromData(&dynData, "color0");
113
+ // } else {
114
+ // NoteColorOverride[0] = std::nullopt;
115
+ // }
116
+ //
117
+ // if (dynData.MemberCount() > 1) {
118
+ // NoteColorOverride[1] = ChromaUtils::ChromaUtilities::GetColorFromData(&dynData, "color1");
119
+ // } else {
120
+ // NoteColorOverride[1] = std::nullopt;
121
+ // }
122
+
113
123
114
124
}
115
125
}
@@ -168,6 +178,7 @@ NoteColorizer::CNVColorManager::CNVColorManager(GlobalNamespace::ColorNoteVisual
168
178
_colorManager = cnv->colorManager ;
169
179
if (il2cpp_functions::class_is_assignable_from (nc->noteData ->klass , classof (CustomJSONData::CustomNoteData*))) {
170
180
_noteData = reinterpret_cast <CustomJSONData::CustomNoteData *>(nc->noteData );
181
+
171
182
_noteData->customData ->associatedData [' C' ] = new CustomData::NoteData {_globalColor[0 ], _globalColor[1 ]};
172
183
}
173
184
}
0 commit comments