Skip to content

Commit

Permalink
Fix SaberColorizer
Browse files Browse the repository at this point in the history
  • Loading branch information
Fernthedev committed Mar 2, 2021
1 parent b9221e9 commit 5709147
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
4 changes: 2 additions & 2 deletions include/colorizer/NoteColorizer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
namespace Chroma {
class NoteColorizer {
private:
static std::vector<std::optional<UnityEngine::Color>> NoteColorOverride;
static std::unordered_map<int ,std::optional<UnityEngine::Color>> NoteColorOverride;

public:
static std::optional<UnityEngine::Color> getNoteColorOverride(int color);
Expand All @@ -41,7 +41,7 @@ namespace Chroma {
{
private:
inline static int _colorID = -1;
static std::vector<std::optional<UnityEngine::Color>> _globalColor;
static std::unordered_map<int, std::optional<UnityEngine::Color>> _globalColor;
GlobalNamespace::ColorNoteVisuals* _cnv;
GlobalNamespace::NoteController* _nc;
GlobalNamespace::ColorManager* _colorManager;
Expand Down
33 changes: 22 additions & 11 deletions src/colorizer/NoteColorizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ using namespace Chroma;
//
//std::vector<SaberColorizer::BSMColorManager *> SaberColorizer::_bsmColorManagers;

std::vector<std::optional<UnityEngine::Color>> NoteColorizer::NoteColorOverride = std::vector<std::optional<UnityEngine::Color>>(2, std::nullopt);
std::vector<std::optional<UnityEngine::Color>> NoteColorizer::CNVColorManager::_globalColor = std::vector<std::optional<UnityEngine::Color>>(2, std::nullopt);
std::unordered_map<int ,std::optional<UnityEngine::Color>> NoteColorizer::NoteColorOverride = {{0, std::nullopt}, {1, std::nullopt}};
std::unordered_map<int ,std::optional<UnityEngine::Color>> NoteColorizer::CNVColorManager::_globalColor = {{0, std::nullopt}, {1, std::nullopt}};

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

if (customData->customData && customData->customData->value) {
auto &dynData = *customData->customData->value;

getLogger().debug("Note color override");

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


if (dynData.MemberCount() > 0) {
// PrintJSONValue(dynData);
NoteColorOverride[0] = ChromaUtils::ChromaUtilities::GetColorFromData(&dynData, "color0");
} else {
NoteColorOverride[0] = std::nullopt;
}
CustomData::NoteData* noteData = reinterpret_cast<CustomData::NoteData*>(customData->customData->associatedData['C']);

if (dynData.MemberCount() > 1) {
NoteColorOverride[1] = ChromaUtils::ChromaUtilities::GetColorFromData(&dynData, "color1");
if (noteData != nullptr) {
NoteColorOverride[0] = noteData->_color0;
NoteColorOverride[1] = noteData->_color1;
} else {
NoteColorOverride[0] = std::nullopt;
NoteColorOverride[1] = std::nullopt;
}

// if (dynData.MemberCount() > 0) {
//// PrintJSONValue(dynData);
// NoteColorOverride[0] = ChromaUtils::ChromaUtilities::GetColorFromData(&dynData, "color0");
// } else {
// NoteColorOverride[0] = std::nullopt;
// }
//
// if (dynData.MemberCount() > 1) {
// NoteColorOverride[1] = ChromaUtils::ChromaUtilities::GetColorFromData(&dynData, "color1");
// } else {
// NoteColorOverride[1] = std::nullopt;
// }


}
}
Expand Down Expand Up @@ -168,6 +178,7 @@ NoteColorizer::CNVColorManager::CNVColorManager(GlobalNamespace::ColorNoteVisual
_colorManager = cnv->colorManager;
if (il2cpp_functions::class_is_assignable_from(nc->noteData->klass, classof(CustomJSONData::CustomNoteData*))) {
_noteData = reinterpret_cast<CustomJSONData::CustomNoteData *>(nc->noteData);

_noteData->customData->associatedData['C'] = new CustomData::NoteData {_globalColor[0], _globalColor[1]};
}
}
Expand Down

0 comments on commit 5709147

Please sign in to comment.