diff --git a/data_src/index.html b/data_src/index.html index 1b926b6c9dedf935884e25800c4836113a334e7e..6acf0b4c9d806716645e04df1990f38e03f30ada 100644 --- a/data_src/index.html +++ b/data_src/index.html @@ -48,7 +48,7 @@ <input type="radio" class="btn-check btnColorMode" id="btnColorMode_1" data-mode="1" autocomplete="off" disabled> <label class="btn btn-outline-primary" for="btnColorMode_1">Simple</label> - <input type="radio" class="btn-check btnColorMode" id="btnColorMode_2" data-mode="2" data-control="#collapseDecay" autocomplete="off" disabled> + <input type="radio" class="btn-check btnColorMode" id="btnColorMode_2" data-mode="2" data-control="#collapseColorDecay" autocomplete="off" disabled> <label class="btn btn-outline-primary" for="btnColorMode_2">Dynamic</label> </div> </div> @@ -57,19 +57,19 @@ <div class="row mb-2 px-3 collapse collapseSettings" id="collapseColorpicker"> <div id="colorpicker" class="d-flex justify-content-center"></div> </div> - <div class="row mb-2 px-3 collapse collapseSettings" id="collapseDecay"> - <label for="rangeDecay" class="col-form-label">Cell Aging</label> - <input type="range" class="form-range rangeSetting" id="rangeDecay" data-name="colorDecay" min="1" + <div class="row mb-2 px-3 collapse collapseSettings" id="collapseColorDecay"> + <label for="rangeColorDecay" class="col-form-label">Cell Aging: <span id="value_colorDecay">0</span>%</label> + <input type="range" class="form-range rangeSetting" id="rangeColorDecay" data-name="colorDecay" min="1" max="100" steps="1" disabled> </div> <div class="row mb-2 px-3"> - <label for="rangeBrightness" class="col-form-label">Brightness</label> + <label for="rangeBrightness" class="col-form-label">Brightness: <span id="value_brightness">0</span>%</label> <input type="range" class="form-range rangeSetting" id="rangeBrightness" data-name="brightness" min="1" max="100" steps="1" disabled> </div> <div class="row mb-2 px-3"> - <label for="rangeSpeed" class="col-form-label">Speed</label> - <input type="range" class="form-range rangeSetting" id="rangeSpeed" data-name="interval" min="1" max="100" + <label for="rangeInterval" class="col-form-label">Speed: <span id="value_interval">0</span>%</label> + <input type="range" class="form-range rangeSetting" id="rangeInterval" data-name="interval" min="1" max="100" steps="10" disabled> </div> <div class="row px-3 mt-4"> diff --git a/data_src/main.js b/data_src/main.js index 271587ab7551b91321a949dbfb798ebb75fde309..b83d811ad3be0369ef5e36d129c66a7cee04f92e 100644 --- a/data_src/main.js +++ b/data_src/main.js @@ -15,6 +15,7 @@ var settings = { var highscores = {}; var initHighscores = true; var uiEnabled = false; +var skipSendSettings = false; $(document).ready(function () { enabledUI(false); @@ -30,6 +31,10 @@ $(window).on('load', function () { }); }); +$(document).on('input', '.rangeSetting', function () { + $('#value_'+$(this).data('name')).text($(this).val()); +}); + $(document).on('change', '.rangeSetting', function () { var setting = $(this).data('name'); var value = $(this).val(); @@ -103,7 +108,7 @@ function addMessage(msg) { } function sendSettings() { - if (!uiEnabled) { + if (!uiEnabled || skipSendSettings) { return; } var payload = { @@ -165,6 +170,7 @@ function sendAction(action) { } function loadSettings(data) { + skipSendSettings = true; settings.brightness = data.brightness; settings.interval = data.interval; settings.colorMode = data.colorMode; @@ -173,10 +179,14 @@ function loadSettings(data) { enabledUI(true); $('.btnColorMode').prop('checked', false); $('#btnColorMode_' + settings.colorMode).trigger('click'); - $('#rangeDecay').val(mapRange(data.colorDecay, 100, 1, 1, 100)); + $('#rangeColorDecay').val(mapRange(data.colorDecay, 100, 1, 1, 100)); + $('#value_colorDecay').text($('#rangeColorDecay').val()); $('#rangeBrightness').val(mapRange(data.brightness, 8, 255, 1, 100)); - $('#rangeSpeed').val(mapRange(data.interval, 1000, 10, 1, 100)); + $('#value_brightness').text($('#rangeBrightness').val()); + $('#rangeInterval').val(mapRange(data.interval, 1000, 10, 1, 100)); + $('#value_interval').text($('#rangeInterval').val()); sendAction('getHighscores'); + skipSendSettings = false; } function updateHighscore(hs) { diff --git a/src/gameoflife.cpp b/src/gameoflife.cpp index 68a29bac2966a212f5e7090e8470e87371ef6b01..4f88ad4cbf274c05ea4ed9a852a1d8cbc6d086eb 100644 --- a/src/gameoflife.cpp +++ b/src/gameoflife.cpp @@ -49,6 +49,7 @@ void createRandomMatrix(bool (&a)[SCREEN_HEIGHT][SCREEN_WIDTH]) for (int col = 0; col < SCREEN_WIDTH; col++) { a[row][col] = random(100) < 25 ? 1 : 0; + colorMap[row][col] = 0; } } }