int do_init(int argc, char **argv) { int i; char *CONF_FILE = "conf/login.conf"; char *LANG_FILE = "conf/lang.conf"; char *INTER_FILE = "conf/inter.conf"; srand(gettick()); set_logfile("log/login.log"); set_dmpfile("log/login_dump.log"); for (i = 1; i < argc ; i++) { if (strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "--h") == 0 || strcmp(argv[i], "--?") == 0 || strcmp(argv[i], "/?") == 0) help_screen(); else if (strcmp(argv[i], "--conf") == 0) CONF_FILE=argv[i+1]; else if (strcmp(argv[i],"--inter") == 0) INTER_FILE = argv[i+1]; else if (strcmp(argv[i],"--lang") == 0) LANG_FILE = argv[i+1]; } config_read(CONF_FILE); config_read(INTER_FILE); config_read("conf/char.conf"); sql_handle = Sql_Malloc(); if(sql_handle==NULL) { Sql_ShowDebug(sql_handle); exit(EXIT_FAILURE); } if( SQL_ERROR == Sql_Connect(sql_handle, sql_id, sql_pw, sql_ip, (uint16)sql_port, sql_db) ) { printf("id: %s pass: %s Port: %d\n",sql_id, sql_pw,sql_port); Sql_ShowDebug(sql_handle); Sql_Free(sql_handle); exit(EXIT_FAILURE); } //sql_init(); lang_read(LANG_FILE); set_termfunc(do_term); //zlib_init(); add_log(""); add_log("mYnexia Login Server Started.\n"); set_defaultaccept(clif_accept); set_defaultparse(clif_parse); login_fd = make_listen_port(login_port); timer_insert(10 * 60 * 1000, 10 * 60 * 1000, Remove_Throttle, 0, 0); //Lockout DB bf_lockout=uidb_alloc(DB_OPT_BASE); printf("mYnexia Login Server is \033[1;32mready\033[0m! Listening at %d.\n", login_port); add_log("Server Ready! Listening at %d.\n", login_port); return 0; }
void golgotha_app::receive_event(i4_event * ev) { switch (ev->type()) { case i4_event::DISPLAY_CHANGE: { CAST_PTR(dev, i4_display_change_event_class, ev); if (dev->change==i4_display_change_event_class::SIZE_CHANGE) { get_root_window()->resize(get_display()->width(),get_display()->height()); } } break; case i4_event::DO_COMMAND: { fo_sym.get(); g1_cwin_man->receive_event(ev); char * cmd=((i4_do_command_event_class *)ev)->command; li_symbol * s=li_get_symbol(cmd); if (li_get_fun(s,0)) { li_call(s); } g1_input.receive_event(ev); } break; case i4_event::END_COMMAND: { g1_cwin_man->receive_event(ev); char cmd[200]; sprintf(cmd, "-%s",((i4_do_command_event_class *)ev)->command); li_symbol * s=li_get_symbol(cmd); if (li_get_fun(s,0)) { li_call(cmd); } g1_input.receive_event(ev); } break; case i4_event::USER_MESSAGE: { CAST_PTR(uev,i4_user_message_event_class,ev); switch (uev->sub_type) { case G1_MAIN_MENU: do_main_menu(); break; case G1_NETWORK_MENU: network_menu(); break; case G1_SERVER_MENU: server_menu(); break; case G1_CLIENT_JOINED_MENU: client_wait_menu(); break; case G1_YOU_LOSE: help_screen("youlose_screen", G1_MAIN_MENU); break; case G1_YOU_WIN: { CAST_PTR(fptr,i4_file_open_message_class,uev); win_screen("youwin_screen", fptr->filename); } break; case G1_HELP_SCREEN: help_screen("help_screen", G1_RETURN_TO_GAME); break; case G1_START_HELP_SCREEN: help_screen("help_screen", G1_START_NEW_GAME); break; case G1_PLOT_SCREEN: plot_screen(); break; case G1_START_NEW_GAME: start_new_game(); break; case G1_RETURN_TO_GAME: return_to_game(); break; case G1_SAVEGAME_SAVE: save_savegame(); break; case G1_SAVEGAME_SAVE_OK: save_savegame_ok(uev); //Saving a savegame must not change //the map's filename. break; case G1_SAVEGAME_LOAD_OK: start_saved_game(uev); break; case G1_SAVEGAME_LOAD: open_savegame(); break; case G1_OPTIONS: do_options(); break; case G1_QUIT: quit(); break; case G1_ESCAPE: do_main_menu(); break; case G1_MAP_CHANGED: map_changed(); break; case G1_GET_ROOT_IMAGE: { CAST_PTR(get, g1_get_root_image_event, ev); get->result=display->get_screen(); } break; case G1_REDRAW_LATER: { redraw_later.waiting=i4_F; li_call("redraw_all"); } break; case G1_PLAY_MOVIE: if (g1_map_is_loaded()) { pre_play_save(); if (g1_get_map()->start_movie()) { playing_movie=i4_T; g1_resources.paused=i4_F; } } break; case G1_STOP_MOVIE: { if (playing_movie) { if (g1_map_is_loaded()) { g1_get_map()->stop_movie(); post_play_load(); } playing_movie=i4_F; if (g1_current_controller.get() && g1_current_controller->view.get_view_mode()==G1_CAMERA_MODE) { g1_current_controller->view.suggest_camera_mode(G1_ACTION_MODE); } } } break; case G1_GET_CURRENT_MOVIE: { if (g1_map_is_loaded()) { CAST_PTR(mev, g1_get_current_movie_event, ev); mev->mflow=g1_get_map()->current_movie; } } break; case G1_INTERLACE_PIXEL: { g1_cwin_man->destroy_views(); g1_resources.render_window_expand_mode = R1_COPY_1x1_SCANLINE_SKIP; g1_cwin_man->create_views(); } break; case G1_DOUBLE_PIXEL: { g1_cwin_man->destroy_views(); g1_resources.render_window_expand_mode = R1_COPY_2x2; g1_cwin_man->create_views(); } break; case G1_NORMAL_PIXEL: { g1_cwin_man->destroy_views(); g1_resources.render_window_expand_mode = R1_COPY_1x1; g1_cwin_man->create_views(); } break; } } break; default: i4_application_class::receive_event(ev); } }
int shell(int *g) { char command[BUFFER_SIZE]; char func[BUFFER_SIZE],arg1[BUFFER_SIZE],arg2[BUFFER_SIZE]; int i; minifile_cd("/"); //cd to root (will also initialize the system if necessary) printf("%s\n", IDstring); while(1) { memset(command,'\0',BUFFER_SIZE); memset(func,'\0',BUFFER_SIZE); memset(arg1,'\0',BUFFER_SIZE); memset(arg2,'\0',BUFFER_SIZE); put_prompt(); gets(command); //extract first three strings in command (delimited by spaces) sscanf(command,"%s %s %s",func,arg1,arg2); if(strcmp(func,"help") == 0) help_screen(); else if(strcmp(func,"cd") == 0) minifile_cd(arg1); else if(strcmp(func,"ls") == 0 || strcmp(func,"dir") == 0) { char **files = minifile_ls(arg1); printf("File listing for %s\n", arg1); for(i = 0; files != NULL && files[i] != NULL; ++i) { printf("\t%s\n",files[i]); free(files[i]); } if(files != NULL) free(files); } else if(strcmp(func,"pwd") == 0) printf("%s\n", minifile_pwd()); else if(strcmp(func,"mkdir") == 0) minifile_mkdir(arg1); else if(strcmp(func,"rmdir") == 0) minifile_rmdir(arg1); else if(strcmp(func,"rm") == 0 || strcmp(func,"del") == 0) minifile_unlink(arg1); else if(strcmp(func,"import") == 0) importfile(arg1,arg2); else if(strcmp(func,"export") == 0) exportfile(arg1,arg2); else if(strcmp(func,"type") == 0) typefile(arg1); else if(strcmp(func,"input") == 0) inputfile(arg1); else if(strcmp(func,"cp") == 0 || strcmp(func,"copy") == 0) copy(arg1,arg2); else if(strcmp(func,"mv") == 0 || strcmp(func,"move") == 0) move(arg1,arg2); else if(strcmp(func,"whoami") == 0) printf("You are minithread %d, running our shell\n",minithread_id()); else if(strcmp(func,"exit") == 0) break; else if(strcmp(func,"doscmd") == 0) system(command+7); else if(strcmp(func,"exec") == 0) { //this is not efficient -- just for fun!!! char cmdline[BUFFER_SIZE]; memset(cmdline,'\0',BUFFER_SIZE); strcpy(cmdline,"tmp0000~.exe "); strcpy(cmdline+13,command+5+strlen(arg1)); exportfile(arg1,"tmp0000~.exe"); system(cmdline); system("rm tmp0000~.exe"); } else printf("%s: Command not found\n",func); } printf("Good-bye :-)\n"); return 0; }