mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
Launcher windows are more Starter-like now: - The scenery picker, vehicle list and keymapper buttons are now tied to the top portion of the screen. - The current window is spanning the entire rest of the screen. - Scenarios are now grouped into categories in the exact same way as Starter does. - Some drawbacks include: - Currently you cannot edit the current trainset, as the vehicle picker window overwrites the scenario list window. - The GUI doesn't update when the screen resolution is changed.
66 lines
1.7 KiB
C++
66 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include "uilayer.h"
|
|
#include "textures_scanner.h"
|
|
#include "translation.h"
|
|
|
|
namespace ui {
|
|
|
|
class vehiclepicker_panel : public ui_panel
|
|
{
|
|
public:
|
|
vehiclepicker_panel();
|
|
|
|
void render_contents() override;
|
|
|
|
private:
|
|
bool selectable_image(const char *desc, bool selected, const deferred_image *image, const skin_set *pickable = nullptr);
|
|
|
|
vehicle_type selected_type = vehicle_type::none;
|
|
std::shared_ptr<const vehicle_desc> selected_vehicle;
|
|
const std::string *selected_group = nullptr;
|
|
const skin_set *selected_skinset = nullptr;
|
|
bool display_by_groups = true;
|
|
deferred_image placeholder_mini;
|
|
std::array<char, 128> search_query = { 0 };
|
|
std::map<vehicle_type, std::string> type_names =
|
|
{
|
|
{ vehicle_type::electric_loco, STRN("Electric locos") },
|
|
{ vehicle_type::diesel_loco, STRN("Diesel locos") },
|
|
{ vehicle_type::steam_loco, STRN("Steam locos") },
|
|
{ vehicle_type::railcar, STRN("Railcars") },
|
|
{ vehicle_type::emu, STRN("EMU") },
|
|
{ vehicle_type::utility, STRN("Utility") },
|
|
{ vehicle_type::draisine, STRN("Draisines") },
|
|
{ vehicle_type::tram, STRN("Trams") },
|
|
{ vehicle_type::carriage, STRN("Carriages") },
|
|
{ vehicle_type::truck, STRN("Trucks") },
|
|
{ vehicle_type::bus, STRN("Buses") },
|
|
{ vehicle_type::car, STRN("Cars") },
|
|
{ vehicle_type::man, STRN("People") },
|
|
{ vehicle_type::animal, STRN("Animals") },
|
|
{ vehicle_type::unknown, STRN("Unknown") }
|
|
};
|
|
|
|
vehicles_bank bank;
|
|
|
|
struct search_info
|
|
{
|
|
enum
|
|
{
|
|
TEXT,
|
|
YEAR_MIN,
|
|
YEAR_MAX
|
|
} mode = TEXT;
|
|
bool alternative = false;
|
|
bool negation = false;
|
|
|
|
std::string text;
|
|
int number;
|
|
};
|
|
|
|
std::vector<search_info> parse_search_query(const std::string &str);
|
|
bool skin_filter(const skin_set *skin, std::vector<search_info> &info_list);
|
|
};
|
|
} // namespace ui
|