2017-05-29 18:37:08 +00:00
|
|
|
/*
|
|
|
|
* This file is part of OpenTTD.
|
|
|
|
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
|
|
|
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/** @file schdispatch.h Functions related to scheduled dispatch. */
|
|
|
|
|
|
|
|
#ifndef SCHDISPATCH_H
|
|
|
|
#define SCHDISPATCH_H
|
|
|
|
|
|
|
|
#include "date_type.h"
|
|
|
|
#include "vehicle_type.h"
|
|
|
|
#include "settings_type.h"
|
|
|
|
|
|
|
|
void ShowSchdispatchWindow(const Vehicle *v);
|
2022-01-15 00:21:31 +00:00
|
|
|
void SchdispatchInvalidateWindows(const Vehicle *v);
|
2017-05-29 18:37:08 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Convert date and full date fraction to DateTicksScaled
|
|
|
|
* @param date Current date
|
|
|
|
* @param full_date_fract full date fraction, the number of scaled tick in current day
|
|
|
|
* @return DateTicksScaled for ths specified date/faction
|
|
|
|
*/
|
|
|
|
inline DateTicksScaled SchdispatchConvertToScaledTick(Date date, uint16 full_date_fract)
|
|
|
|
{
|
|
|
|
return ((DateTicksScaled)date * DAY_TICKS) * _settings_game.economy.day_length_factor + full_date_fract;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Convert DateTicksScaled to date and full date fraction format
|
|
|
|
* @param tick DateTicksScaled to convert
|
|
|
|
* @param date Point to date, for ourput
|
|
|
|
* @param full_date_fract Pointer to uint16, for output
|
|
|
|
*/
|
|
|
|
inline void SchdispatchConvertToFullDateFract(DateTicksScaled tick, Date* date, uint16* full_date_fract)
|
|
|
|
{
|
|
|
|
const int full_date = _settings_game.economy.day_length_factor * DAY_TICKS;
|
|
|
|
*date = tick / full_date;
|
|
|
|
*full_date_fract = tick % full_date;
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* SCHDISPATCH_H */
|