#include "3d/layout.h"
#include "3d/overlay.h"
#include "3d/path.h"
+#include "3d/trackchain.h"
#include "3d/view.h"
#include "network/server.h"
#include "options.h"
class MainWindow;
-class TrainView;
+class DynamicDialog;
class Engineer: public Msp::RegisteredApplication<Engineer>
{
MainWindow *main_wnd;
std::list<R2C2::Train *> new_trains;
- std::list<TrainView *> train_views;
+ std::list<DynamicDialog *> dyn_dialogs;
Msp::Time::TimeStamp status_timeout;
R2C2::Vector pointer;
+ std::list<R2C2::TrackChain3D *> emergencies;
+ Msp::Time::TimeStamp emergency_blink_timeout;
+ unsigned emergency_blink_state;
public:
Engineer(int argc, char **argv);
R2C2::Layout3D &get_layout_3d() { return layout_3d; }
R2C2::View3D &get_main_view() { return main_view; }
void set_status(const std::string &);
- void add_train_view(TrainView &);
- void remove_train_view(TrainView &);
+ void add_dynamic_dialog(DynamicDialog &);
+ void remove_dynamic_dialog(DynamicDialog &);
int main();
void quit() { exit(0); }
private:
void view_all();
R2C2::Object *pick_object(const R2C2::Vector &);
void emergency(R2C2::Block *, const std::string &);
+ void halt_event(bool);
void locomotive_detected(const R2C2::Driver::DetectedLocomotive &);
void import_finished(int);
void train_added(R2C2::Train &);