OpenTTD
Data Structures | Functions | Variables
timetable_gui.cpp File Reference

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 "date_func.h"
#include "date_gui.h"
#include "vehicle_gui.h"
#include "settings_type.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, Ticks ticks)
 Set the timetable parameters in the format as described by the 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, TimetableArrivalDeparture *table, Ticks offset)
 Fill the table with arrivals and departures.
static void ChangeTimetableStartCallback (const Window *w, Date date)
 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 const 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, lengthof(_nested_timetable_widgets))

Detailed Description

GUI for time tabling.

Definition in file timetable_gui.cpp.

Function Documentation

static bool CanDetermineTimeTaken ( const Order order,
bool  travelling 
)
static

Check whether it is possible to determine how long the order takes.

Parameters
orderthe order to check.
travellingwhether we are interested in the travel or the wait part.
Returns
true if the travel/wait time can be used.

Definition at line 64 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 void ChangeTimetableStartCallback ( const Window w,
Date  date 
)
static

Callback for when a time has been chosen to start the time table.

Parameters
windowthe window related to the setting of the date
datethe actually chosen date

Definition at line 145 of file timetable_gui.cpp.

References CMD_MSG, CMD_SET_TIMETABLE_START, DoCommandP(), and Window::window_number.

Referenced by TimetableWindow::OnClick().

static void FillTimetableArrivalDepartureTable ( const Vehicle v,
VehicleOrderID  start,
bool  travelling,
TimetableArrivalDeparture table,
Ticks  offset 
)
static

Fill the table with arrivals and departures.

Parameters
vVehicle which must have at least 2 orders.
startorder index to start at
travellingAre we still in the travelling part of the start order
tableFill in arrival and departures including intermediate orders
offsetAdd this value to result and all arrivals and departures

Definition at line 88 of file timetable_gui.cpp.

References TimetableArrivalDeparture::arrival, CanDetermineTimeTaken(), TimetableArrivalDeparture::departure, OrderList::GetFirstOrder(), Vehicle::GetNumOrders(), Vehicle::GetOrder(), Order::GetTimetabledTravel(), Order::GetTimetabledWait(), INVALID_TICKS, Order::IsType(), Vehicle::list, Order::next, and Vehicle::orders.

Referenced by TimetableWindow::BuildArrivalDepartureList().

void SetTimetableParams ( int  param1,
int  param2,
Ticks  ticks 
)

Set the timetable parameters in the format as described by the setting.

Parameters
param1the first DParam to fill
param2the second DParam to fill
ticksthe number of ticks to 'draw'

Definition at line 47 of file timetable_gui.cpp.

References _settings_client, DAY_TICKS, ClientSettings::gui, SetDParam(), and GUISettings::timetable_in_ticks.

Referenced by DrawOrderString(), and TimetableWindow::DrawWidget().

void ShowTimetableWindow ( const Vehicle v)

Show the timetable for a given vehicle.

Parameters
vThe vehicle to show the timetable for.

Definition at line 709 of file timetable_gui.cpp.

References DeleteWindowById(), 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().