Skip to content

Commit 5709147

Browse files
committed
Fix SaberColorizer
1 parent b9221e9 commit 5709147

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

include/colorizer/NoteColorizer.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
namespace Chroma {
1919
class NoteColorizer {
2020
private:
21-
static std::vector<std::optional<UnityEngine::Color>> NoteColorOverride;
21+
static std::unordered_map<int ,std::optional<UnityEngine::Color>> NoteColorOverride;
2222

2323
public:
2424
static std::optional<UnityEngine::Color> getNoteColorOverride(int color);
@@ -41,7 +41,7 @@ namespace Chroma {
4141
{
4242
private:
4343
inline static int _colorID = -1;
44-
static std::vector<std::optional<UnityEngine::Color>> _globalColor;
44+
static std::unordered_map<int, std::optional<UnityEngine::Color>> _globalColor;
4545
GlobalNamespace::ColorNoteVisuals* _cnv;
4646
GlobalNamespace::NoteController* _nc;
4747
GlobalNamespace::ColorManager* _colorManager;

src/colorizer/NoteColorizer.cpp

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ using namespace Chroma;
2121
//
2222
//std::vector<SaberColorizer::BSMColorManager *> SaberColorizer::_bsmColorManagers;
2323

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}};
2626

2727
void NoteColorizer::Reset(GlobalNamespace::NoteController *nc) {
2828
auto m = CNVColorManager::GetCNVColorManager(nc);
@@ -91,25 +91,35 @@ void NoteColorizer::EnableNoteColorOverride(GlobalNamespace::NoteController *not
9191

9292
if (customData->customData && customData->customData->value) {
9393
auto &dynData = *customData->customData->value;
94-
94+
getLogger().debug("Note color override");
9595

9696
// TODO: Do these execute a similar or exact implementation of the PC version at
9797
// https://github.com/Aeroluna/Chroma/blob/e7a72f8b848c822d860361a027034218125af135/Chroma/Colorizer/NoteColorizer.cs#L71-L72
9898

9999

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']);
106101

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;
109105
} else {
106+
NoteColorOverride[0] = std::nullopt;
110107
NoteColorOverride[1] = std::nullopt;
111108
}
112109

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+
113123

114124
}
115125
}
@@ -168,6 +178,7 @@ NoteColorizer::CNVColorManager::CNVColorManager(GlobalNamespace::ColorNoteVisual
168178
_colorManager = cnv->colorManager;
169179
if (il2cpp_functions::class_is_assignable_from(nc->noteData->klass, classof(CustomJSONData::CustomNoteData*))) {
170180
_noteData = reinterpret_cast<CustomJSONData::CustomNoteData *>(nc->noteData);
181+
171182
_noteData->customData->associatedData['C'] = new CustomData::NoteData {_globalColor[0], _globalColor[1]};
172183
}
173184
}

0 commit comments

Comments
 (0)