Пример #1
0
/**
    Initializes everything in hopmod. This function is called at server startup and server reload.
*/
void init_hopmod()
{
    main_thread = boost::this_thread::get_id();

    signal_shutdown.connect(boost::bind(&shutdown_lua));
    signal_shutdown.connect(&cleanup_info_files_on_shutdown);
    
    info_file("log/sauer_server.pid", "%i\n", getpid());
    
    init_lua();
    
    static const char * INIT_SCRIPT = "script/init.lua";
    
    lua_State * L = get_lua_state();
    if(luaL_loadfile(L, INIT_SCRIPT) == 0)
    {
        event_listeners().add_listener("init"); // Take the value of the top of the stack to add
        // to the init listeners table
    }
    else
    {
        std::cerr<<"error during initialization: "<<lua_tostring(L, -1)<<std::endl;
        lua_pop(L, 1);
    }
    
    event_init(event_listeners(), boost::make_tuple());
}
Пример #2
0
static void initiate_shutdown()
{
    stopgameserver(SHUTDOWN_NORMAL);
    
    event_shutdown(event_listeners(), boost::make_tuple(static_cast<int>(SHUTDOWN_NORMAL)));
    signal_shutdown(SHUTDOWN_NORMAL);

    // Now wait for the main event loop to process work that is remaining and then exit
}
Пример #3
0
static void reload_hopmod_now()
{
    event_reloadhopmod(event_listeners(), boost::make_tuple());

    reloaded = true;

    event_shutdown(event_listeners(), boost::make_tuple(static_cast<int>(SHUTDOWN_RELOAD)));
    
    signal_shutdown(SHUTDOWN_RELOAD);
    
    signal_shutdown.disconnect_all_slots();

    init_hopmod();
    server::started();
    std::cout<<"-> Reloaded Hopmod."<<std::endl;
    
    reloaded = false;
}
Пример #4
0
void log_event_error(const char * event_id, const char * error_message)
{
    event_listeners().log_error(event_id, error_message);
}
Пример #5
0
void started()
{
    event_started(event_listeners(), boost::make_tuple());
    if(!server::smapname[0]) selectnextgame();
}
Пример #6
0
void started()
{
    event_started(event_listeners(), boost::make_tuple());
    if(!server::smapname[0]) rotatemap();
}