Copyright © 2006-2010 Mikkosoft Productions, Mikko Rasa
Distributed under the GPL
*/
Copyright © 2006-2010 Mikkosoft Productions, Mikko Rasa
Distributed under the GPL
*/
#include <msp/strings/formatter.h>
#include <msp/time/units.h>
#include <msp/time/utils.h>
#include <msp/strings/formatter.h>
#include <msp/time/units.h>
#include <msp/time/utils.h>
window.set_title("Railroad Engineer");
window.signal_close.connect(sigc::bind(sigc::mem_fun(this, &Engineer::exit), 0));
window.set_title("Railroad Engineer");
window.signal_close.connect(sigc::bind(sigc::mem_fun(this, &Engineer::exit), 0));
root = new GLtk::Root(ui_res, window);
root->signal_button_press.connect(sigc::mem_fun(this, &Engineer::button_press));
root->signal_pointer_motion.connect(sigc::mem_fun(this, &Engineer::pointer_motion));
root->set_visible(true);
root = new GLtk::Root(ui_res, window);
root->signal_button_press.connect(sigc::mem_fun(this, &Engineer::button_press));
root->signal_pointer_motion.connect(sigc::mem_fun(this, &Engineer::pointer_motion));
root->set_visible(true);
root->add(*main_panel);
main_panel->set_position(0, window.get_height()-main_panel->get_geometry().h);
main_panel->set_visible(true);
root->add(*main_panel);
main_panel->set_position(0, window.get_height()-main_panel->get_geometry().h);
main_panel->set_visible(true);
layout.signal_block_reserved.connect(sigc::mem_fun(this, &Engineer::block_reserved));
layout.signal_emergency.connect(sigc::mem_fun(this, &Engineer::set_status));
layout.get_driver().signal_sensor.connect(sigc::mem_fun(this, &Engineer::sensor_event));
layout.signal_block_reserved.connect(sigc::mem_fun(this, &Engineer::block_reserved));
layout.signal_emergency.connect(sigc::mem_fun(this, &Engineer::set_status));
layout.get_driver().signal_sensor.connect(sigc::mem_fun(this, &Engineer::sensor_event));
- if(FS::exists("engineer.state"))
- DataFile::load(layout, "engineer.state");
+ if(FS::exists(options.state_fn))
+ DataFile::load(layout, options.state_fn);
else
picking_path->set_mask(picking_track->get_type().get_paths());
picking_path->set_color(GL::Color(0));
else
picking_path->set_mask(picking_track->get_type().get_paths());
picking_path->set_color(GL::Color(0));
else if(btn==3 && picking_entry>=0)
{
picking_entry = (picking_entry+1)%picking_track->get_type().get_endpoints().size();
else if(btn==3 && picking_entry>=0)
{
picking_entry = (picking_entry+1)%picking_track->get_type().get_endpoints().size();
float view_aspect = float(window.get_width()-200)/window.get_height();
float view_height = tan(camera.get_field_of_view()/2)*2;
float view_aspect = float(window.get_width()-200)/window.get_height();
float view_height = tan(camera.get_field_of_view()/2)*2;
min_x = min(min_x, minp.x);
max_x = max(max_x, maxp.x);
min_y = min(min_y, minp.y);
min_x = min(min_x, minp.x);
max_x = max(max_x, maxp.x);
min_y = min(min_y, minp.y);