Scheduled Dispatch feature
Code is tested and run well on small-ish train network. Not tested extensively.
This commit is contained in:
45
src/schdispatch.h
Normal file
45
src/schdispatch.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* 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 */
|
Reference in New Issue
Block a user