Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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);
	}
}
Exemplo n.º 3
0
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;
}