(svn r9967) -Fix (r9938): autoreplace would in certain conditions move dualheaded engines in a train (usually to the rear)
-Change: moving an engine in between the two ends of a dualheaded engine will now move the rear dualheaded engine to the front of the newly added engine (instead of moving the new engine to the rear of the rear dualheaded engine)
This can make a difference if there are wagons in the train
/* $Id$ */
/** @file hal.h Hardware Abstraction Layer declarations */
#ifndef HAL_H
#define HAL_H
struct HalCommonDriver {
const char *(*start)(const char * const *parm);
void (*stop)();
};
struct HalVideoDriver {
const char *(*start)(const char * const *parm);
void (*stop)();
void (*make_dirty)(int left, int top, int width, int height);
void (*main_loop)();
bool (*change_resolution)(int w, int h);
void (*toggle_fullscreen)(bool fullscreen);
};
struct HalSoundDriver {
const char *(*start)(const char * const *parm);
void (*stop)();
};
struct HalMusicDriver {
const char *(*start)(const char * const *parm);
void (*stop)();
void (*play_song)(const char *filename);
void (*stop_song)();
bool (*is_song_playing)();
void (*set_volume)(byte vol);
};
extern HalMusicDriver *_music_driver;
extern HalSoundDriver *_sound_driver;
extern HalVideoDriver *_video_driver;
enum DriverType {
VIDEO_DRIVER = 0,
SOUND_DRIVER = 1,
MUSIC_DRIVER = 2,
};
#endif /* HAL_H */