17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-17 22:39:19 +02:00
Files
maszyna/widgets/time.cpp
maj00r b8f040e6fd propagate template headers transitively, import Console where used
AnimModel.cpp reaches cParser through the simulation core, not a direct
import, so the previous pass missed it; the propagation now follows the
whole import closure. Train.cpp, drivermode.cpp and Globals.cpp call
Console:: inside _WIN32 guards without importing eu07.console - invisible
on Linux, where those blocks are skipped.
2026-09-10 01:41:24 +02:00

58 lines
1.5 KiB
C++

module;
#include <array>
#include <chrono>
#include <cstddef>
#include <deque>
#include <limits>
#include <mutex>
#include <sstream>
#include <type_traits>
#include <unordered_map>
#include <utility>
#include <vector>
#include <ostream>
#include <string>
#include "utilities/Globals_macros.h"
#include "imgui/imgui.h"
#include "utilities/translation_macros.h"
module eu07.widgets.time;
import eu07.simulation.simulationtime;
import eu07.utilities.translation;
import eu07.utilities.globals;
ui::time_panel::time_panel() : ui_panel(STR_C("Time and environment"), false)
{
size.x = 450;
}
void ui::time_panel::render_contents()
{
ImGui::SliderFloat(STR_C("Time"), &time, 0.0f, 24.0f, "%.1f");
ImGui::SliderInt(STR_C("Day in year"), &yearday, 1, 365);
ImGui::SliderFloat(STR_C("Visibility"), &fog, 50.0f, 3000.0f, "%.0f");
ImGui::SliderFloat(STR_C("Overcast and precipitation"), &overcast, 0.0f, 2.0f, "%.1f");
ImGui::SliderFloat(STR_C("Temperature"), &temperature, -20.0f, 40.0f, "%.0f");
if (ImGui::Button(STR_C("Apply")))
{
m_relay.post(user_command::setdatetime, (double)yearday, time * 60.0, 1, 0);
m_relay.post(user_command::setweather, fog, overcast, 1, 0);
m_relay.post(user_command::settemperature, temperature, overcast, 1, 0);
}
}
void ui::time_panel::open()
{
auto &data = simulation::Time.data();
time = (float)data.wHour + (float)data.wMinute / 60.0f;
yearday = simulation::Time.year_day();
fog = Global.fFogEnd;
overcast = Global.Overcast;
temperature = Global.AirTemperature;
is_open = true;
}