예제 #1
0
/**
* menustate(void)
*
* @brief
* @param void
* @return void
*/
void menustate(void)
{
	sbool run = TRUE;

	while(run){
		if(widget_get_uip()->root->shown.count > 0 || widget_get_uip()->root->hidden.count > 0)
			widget_unload(widget_get_uip()->root);

		switch(menu_state){
		case MENU_STATE_MAIN:
			init_main_menu();//initializes the first menu for use.
			main_menu();//Start the First Menu, Menu main loop.
			break;
		case MENU_STATE_CREDITS:
			init_credits();
			credits();
			break;
		case MENU_STATE_LOGIN:
			init_login();
			login();
			break;
		case MENU_STATE_CREATE:
			init_new_account();
			new_account();
			break;
		case MENU_STATE_INGAME:
			init_ingame();
			ingame();
			break;
		case MENU_STATE_STATUS:
			if(!statusloader)
				init_status("Log in successful.");
			else {
				init_status("Widget System Initialized.");
				statusloader = FALSE;
			}

			status();
			break;
		case MENU_STATE_EXIT:
			run = FALSE;
			break;
		}
	}
}
예제 #2
0
/**
* handle_mouse_press(GLFWwindow * screen, int button, int pressed, int mods)
*
* @brief
* @param screen
* @param button
* @param pressed
* @param mods
* @return void
*/
void handle_mouse_press(GLFWwindow * screen, int button, int pressed, int mods)
{
	setcurrentscreen(getscreenid(screen));
	widget_set_ui_click_event((int8)button, (int8)pressed);

	if(widget_check_focus()){
		if(pressed == 1)
			widget_mouse_press(widget_get_focused());
		else
			widget_mouse_release(widget_get_focused());
	}
	else{
		if(pressed == 1)
			widget_mouse_press(widget_get_uip()->root);
		else
			widget_mouse_release(widget_get_uip()->root);
	}
	resetcurrentscreen();
}
예제 #3
0
void error_handler(int error_flag, const char *string)
{
	switch(error_flag){
	case DE_ERROR_MISC_ERROR:
		add_error_log(comb_2str("ERROR: Misc! ::",string));
		break;
	case DE_ERROR_POINTER_IN_USE:
		add_error_log(comb_2str("ERROR: Pointer in use! ::",string));
		break;
	case DE_ERROR_UNDEFINED_POINTER:
		add_error_log(comb_2str("ERROR: Undefined Pointer! ::",string));
		break;
	case DE_ERROR_OUT_OF_MEMORY:
		add_error_log(comb_2str("ERROR: Server Out Of Memory! ::",string));
		break;
	case DE_ERROR_IO_ERROR:
		add_error_log(comb_2str("ERROR: I/O Error! ::",string));
		break;
	case DE_ERROR_FILE_ERROR:
		add_error_log(comb_2str("ERROR: File Error! ::",string));
		break;
	case DE_ERROR_OVERFLOW_ERROR:
		add_error_log("ERROR: Overflow!\n");
		break;
	case DE_ERROR_SOCKET_ADDR_ERROR:
		add_error_log("ERROR: Could not establish server address!\n");
		break;
	case DE_ERROR_GLFWINIT_ERROR:
		add_error_log("ERROR: GLFW Did Not initialize!\n");
		break;
	case DE_ERROR_GLFWWIN_ERROR:
		add_error_log("ERROR: GLFW Did Not Open Window!\n");
		break;
	case DE_ERROR_IMAGELOADER_ERROR:
		add_error_log(comb_2str("ERROR: Image Did Not Load! ::",string));
		break;
	case DE_ERROR_PATH_INCORRECT:
		add_error_log(comb_2str("ERROR: Could not establish Program_Path! ::",string));
		break;
	case DE_ERROR_PATH_NULL:
		add_error_log(comb_2str("ERROR: Path is NULL. ::",string));
		break;
	case DE_ERROR_GLEWINIT_ERROR:
		add_error_log("ERROR: GLEW Did Not initialize!\n");
		break;
	case DE_ERROR_POINTER_NULL:
		add_error_log(comb_2str("ERROR: Pointer is NULL. ::",string));
		break;
	case DE_ERROR_NONE_ACSII:
		add_error_log("MESSAGE: Does Not Support Unicode characters.\n");
		return;
	case DE_ERROR_SOCKET_INIT:
		add_error_log("ERROR: Socket did not initialize.\n");
		return;
	case DE_ERROR_SOCKET_WSASTARTUP:
		add_error_log("ERROR: windows socket startup error.\n");
		return;
	case DE_ERROR_SOCKET_SEND_SIZE:
		add_error_log(comb_2str("MESSAGE: send size was incorrect. ::",string));
		return;
	case DE_ERROR_SOCKET_CONNECTION_LOSS:
		add_error_log("MESSAGE: connection was lost\n");
		return;
	case DE_ERROR_INVALID_PACKET_ID:
		add_error_log(comb_2str("MESSAGE: Packet ID is invalid. ::",string));
		return;
	case DE_ERROR_INVALID_PACKET_OFFSET:
		add_error_log(comb_2str("MESSAGE: Packet offset equals zero. ::",string));
		return;
	default:
		add_error_log("ERROR: Unknown Error!\n");
	}

	widget_unload(widget_get_uip()->root);
	unload_functions();
}