OpenTTD Source 20241224-master-gee860a5c8e
|
GUI for time tabling. More...
#include "stdafx.h"
#include "command_func.h"
#include "gui.h"
#include "window_gui.h"
#include "window_func.h"
#include "textbuf_gui.h"
#include "strings_func.h"
#include "vehicle_base.h"
#include "string_func.h"
#include "gfx_func.h"
#include "company_func.h"
#include "timer/timer.h"
#include "timer/timer_game_tick.h"
#include "timer/timer_game_economy.h"
#include "timer/timer_window.h"
#include "date_gui.h"
#include "vehicle_gui.h"
#include "settings_type.h"
#include "timetable_cmd.h"
#include "timetable.h"
#include "widgets/timetable_widget.h"
#include "table/sprites.h"
#include "table/strings.h"
#include "safeguards.h"
Go to the source code of this file.
Data Structures | |
struct | TimetableArrivalDeparture |
Container for the arrival/departure dates of a vehicle. More... | |
struct | TimetableWindow |
Functions | |
void | SetTimetableParams (int param1, int param2, TimerGameTick::Ticks ticks) |
Set the timetable parameters in the format as described by the setting. | |
static TimerGameTick::Ticks | TicksPerTimetableUnit () |
Get the number of ticks in the current timetable display unit. | |
bool | VehicleIsAboveLatenessThreshold (TimerGameTick::Ticks ticks, bool round_to_day) |
Determine if a vehicle should be shown as late or early, using a threshold depending on the timetable display setting. | |
static bool | CanDetermineTimeTaken (const Order *order, bool travelling) |
Check whether it is possible to determine how long the order takes. | |
static void | FillTimetableArrivalDepartureTable (const Vehicle *v, VehicleOrderID start, bool travelling, std::vector< TimetableArrivalDeparture > &table, TimerGameTick::Ticks offset) |
Fill the table with arrivals and departures. | |
static void | ChangeTimetableStartCallback (const Window *w, TimerGameEconomy::Date date, void *data) |
Callback for when a time has been chosen to start the time table. | |
void | ShowTimetableWindow (const Vehicle *v) |
Show the timetable for a given vehicle. | |
Variables | |
static constexpr NWidgetPart | _nested_timetable_widgets [] |
static WindowDesc | _timetable_desc (WDP_AUTO, "view_vehicle_timetable", 400, 130, WC_VEHICLE_TIMETABLE, WC_VEHICLE_VIEW, WDF_CONSTRUCTION, _nested_timetable_widgets) |
GUI for time tabling.
Definition in file timetable_gui.cpp.
|
static |
Check whether it is possible to determine how long the order takes.
order | the order to check. |
travelling | whether we are interested in the travel or the wait part. |
Definition at line 114 of file timetable_gui.cpp.
References Order::GetNonStopType(), Order::IsTravelTimetabled(), Order::IsType(), Order::IsWaitTimetabled(), and ONSF_NO_STOP_AT_DESTINATION_STATION.
Referenced by FillTimetableArrivalDepartureTable().
|
static |
Callback for when a time has been chosen to start the time table.
w | the window related to the setting of the date |
date | the actually chosen date |
Definition at line 195 of file timetable_gui.cpp.
References GetStartTickFromDate(), and Window::window_number.
Referenced by TimetableWindow::OnClick().
|
static |
Fill the table with arrivals and departures.
v | Vehicle which must have at least 2 orders. |
start | order index to start at |
travelling | Are we still in the travelling part of the start order |
table | Fill in arrival and departures including intermediate orders |
offset | Add this value to result and all arrivals and departures |
Definition at line 138 of file timetable_gui.cpp.
References CanDetermineTimeTaken(), OrderList::GetFirstOrder(), Vehicle::GetNumOrders(), Vehicle::GetOrder(), Order::GetTimetabledTravel(), Order::GetTimetabledWait(), Ticks::INVALID_TICKS, Order::IsType(), Order::next, and Vehicle::orders.
Referenced by TimetableWindow::BuildArrivalDepartureList().
void SetTimetableParams | ( | int | param1, |
int | param2, | ||
TimerGameTick::Ticks | ticks | ||
) |
Set the timetable parameters in the format as described by the setting.
param1 | the first DParam to fill |
param2 | the second DParam to fill |
ticks | the number of ticks to 'draw' |
Definition at line 50 of file timetable_gui.cpp.
References _settings_client, Ticks::DAY_TICKS, ClientSettings::gui, SetDParam(), Ticks::TICKS_PER_SECOND, and GUISettings::timetable_mode.
Referenced by DrawOrderString(), TimetableWindow::DrawSummaryPanel(), and TimetableWindow::DrawTimetablePanel().
void ShowTimetableWindow | ( | const Vehicle * | v | ) |
Show the timetable for a given vehicle.
v | The vehicle to show the timetable for. |
Definition at line 872 of file timetable_gui.cpp.
References CloseWindowById(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, WC_VEHICLE_DETAILS, and WC_VEHICLE_ORDERS.
Referenced by OrdersWindow::OnClick(), and VehicleViewWindow::OnClick().
|
inlinestatic |
Get the number of ticks in the current timetable display unit.
Definition at line 74 of file timetable_gui.cpp.
References _settings_client, Ticks::DAY_TICKS, ClientSettings::gui, Ticks::TICKS_PER_SECOND, and GUISettings::timetable_mode.
Referenced by TimetableWindow::DrawSummaryPanel(), TimetableWindow::OnClick(), and TimetableWindow::OnQueryTextFinished().
bool VehicleIsAboveLatenessThreshold | ( | TimerGameTick::Ticks | ticks, |
bool | round_to_day | ||
) |
Determine if a vehicle should be shown as late or early, using a threshold depending on the timetable display setting.
ticks | The number of ticks that the vehicle is late or early. |
round_to_day | When using ticks, if we should round up to the nearest day. |
Definition at line 94 of file timetable_gui.cpp.
References _settings_client, Ticks::DAY_TICKS, ClientSettings::gui, Ticks::TICKS_PER_SECOND, and GUISettings::timetable_mode.
Referenced by TimetableWindow::DrawArrivalDeparturePanel(), and TimetableWindow::DrawSummaryPanel().
|
staticconstexpr |
Definition at line 815 of file timetable_gui.cpp.