From faf617739f53c67f663887de34342f92056ba45d Mon Sep 17 00:00:00 2001 From: jbzdarkid Date: Tue, 6 Nov 2018 09:59:34 -0800 Subject: Assorted. --- Source/RandomizerCore.cpp | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) (limited to 'Source/RandomizerCore.cpp') diff --git a/Source/RandomizerCore.cpp b/Source/RandomizerCore.cpp index d4aadef..f00dacd 100644 --- a/Source/RandomizerCore.cpp +++ b/Source/RandomizerCore.cpp @@ -3,17 +3,6 @@ #include "Random.h" #include -static int lastKnownFrame = 1 << 30; - -RandomizerCore::RandomizerCore() { - int currentFrame = _memory.ReadData({SCRIPT_FRAMES}, 1)[0]; - if (currentFrame < lastKnownFrame) { - // Time went backwards, indicates new game - WriteMetadata(0); - } - lastKnownFrame = currentFrame; -} - void RandomizerCore::Randomize(std::vector& panels, int flags) { return RandomizeRange(panels, flags, 0, panels.size()); } @@ -47,7 +36,7 @@ void RandomizerCore::SwapPanels(int panel1, int panel2, int flags) { offsets[REFLECTION_PATH_COLOR] = 16; offsets[DOT_COLOR] = 16; offsets[ACTIVE_COLOR] = 16; - offsets[BACKGROUND_REGION_COLOR] = 16; + offsets[BACKGROUND_REGION_COLOR] = 12; // Not copying alpha to preserve transparency. offsets[SUCCESS_COLOR_A] = 16; offsets[SUCCESS_COLOR_B] = 16; offsets[STROBE_COLOR_A] = 16; @@ -101,10 +90,10 @@ void RandomizerCore::SwapPanels(int panel1, int panel2, int flags) { } for (auto const& [offset, size] : offsets) { - std::vector panel1data = _memory.ReadPanelData(panel1, offset, size); - std::vector panel2data = _memory.ReadPanelData(panel2, offset, size); - _memory.WritePanelData(panel2, offset, panel1data); - _memory.WritePanelData(panel1, offset, panel2data); + std::vector panel1data = _memory->ReadPanelData(panel1, offset, size); + std::vector panel2data = _memory->ReadPanelData(panel2, offset, size); + _memory->WritePanelData(panel2, offset, panel1data); + _memory->WritePanelData(panel1, offset, panel2data); } } @@ -114,7 +103,7 @@ void RandomizerCore::ReassignTargets(const std::vector& panels, const std:: // The first panel may not have a wire to power it, so we use the panel ID itself. targets = {panels[0] + 1}; for (const int panel : panels) { - int target = _memory.ReadPanelData(panel, TARGET, 1)[0]; + int target = _memory->ReadPanelData(panel, TARGET, 1)[0]; targets.push_back(target); } } @@ -122,25 +111,29 @@ void RandomizerCore::ReassignTargets(const std::vector& panels, const std:: for (size_t i=0; i(panels[order[i]], TARGET, {panelTarget}); + _memory->WritePanelData(panels[order[i]], TARGET, {panelTarget}); } } void RandomizerCore::ReassignNames(const std::vector& panels, const std::vector& order) { std::vector names; for (const int panel : panels) { - names.push_back(_memory.ReadPanelData(panel, AUDIO_LOG_NAME, 1)[0]); + names.push_back(_memory->ReadPanelData(panel, AUDIO_LOG_NAME, 1)[0]); } for (int i=0; i(panels[i], AUDIO_LOG_NAME, {names[order[i]]}); + _memory->WritePanelData(panels[i], AUDIO_LOG_NAME, {names[order[i]]}); } } short RandomizerCore::ReadMetadata() { - return _memory.ReadData({GLOBALS + METADATA}, 1)[0]; + return _memory->ReadData({GLOBALS + METADATA}, 1)[0]; } void RandomizerCore::WriteMetadata(short metadata) { - return _memory.WriteData({GLOBALS + METADATA}, {metadata}); -} \ No newline at end of file + return _memory->WriteData({GLOBALS + METADATA}, {metadata}); +} + +int RandomizerCore::GetCurrentFrame() { + return _memory->ReadData({SCRIPT_FRAMES}, 1)[0]; +} -- cgit 1.4.1