Ejemplo n.º 1
0
void releasebutton(short code)
{
	int kbcode = AKEY_NONE, temp_ui = -1;
	
	if(ui_is_active)
		release_key(kbcode);
	else
	{
		if(code == joykey_map[get_screen_mode()][0])
			stick0 |= 1;
		else if(code == joykey_map[get_screen_mode()][1])
			stick0 |= 2;
		else if(code == joykey_map[get_screen_mode()][2])
			stick0 |= 4;
		else if(code == joykey_map[get_screen_mode()][3])
			stick0 |= 8;
		else if(code == klist.vkA || code == klist.vkB || ((code == '4' || code == '6') && issmartphone))
			trig0 = 1;
		else if(code == klist.vkC)
			if (kbui_timerset)
			{
				KillTimer(hWndMain, 1);
				kbui_timerset = FALSE;
				set_screen_mode(0);
				kbcode = AKEY_UI;
				push_key(kbcode);
				ui_clearkey = TRUE;
				return;
			}
	}

	release_key(kbcode);		// always release or the ui gets stuck
}
Ejemplo n.º 2
0
void releasebutton(short code)
{
	int kbcode;
	
	if(ui_is_active)
	{
		kbcode = AKEY_NONE;
		if(code == klist.vkUp)
			kbcode = AKEY_UP;
		else if(code == klist.vkDown)
			kbcode = AKEY_DOWN;
		else if(code == klist.vkLeft)
			kbcode = AKEY_LEFT;
		else if(code == klist.vkRight)
			kbcode = AKEY_RIGHT;
		else if(code == klist.vkStart)
			kbcode = AKEY_TAB;
		else if(code == klist.vkA)
			kbcode = AKEY_SPACE;
		else if(code == klist.vkB)
			kbcode = AKEY_RETURN;
		else if(code == klist.vkC)
			kbcode = AKEY_ESCAPE;
		
		release_key(kbcode);
	}
	else
	{
		if(code == joykey_map[get_screen_mode()][0])
			stick0 |= 1;
		else if(code == joykey_map[get_screen_mode()][1])
			stick0 |= 2;
		else if(code == joykey_map[get_screen_mode()][2])
			stick0 |= 4;
		else if(code == joykey_map[get_screen_mode()][3])
			stick0 |= 8;
		else if(code == klist.vkA || code == klist.vkB)
			trig0 = 1;
		else if(code == klist.vkC)
			kbcode = AKEY_UI;
		else
		for(int i=0; i<sizeof(kbd_translation)/sizeof(kbd_translation[0]); i++)
			if(code == kbd_translation[i].winKey)
			{
				kbcode = kbd_translation[i].aKey;
				break;
			}

		
		if(kbcode != AKEY_NONE)
			release_key(kbcode);
	}
}
Ejemplo n.º 3
0
void jz47_auto_select(int w,int h)
{
	jz47_soc_set_direct(1);
//	if(get_screen_height() * get_screen_width() <= 480 * 272 * 2)
	{
		display_mode |= DISP_DIRECT;
		//display_mode |= DISP_16BIT; //test
	}
	//else
	{
		//display_mode |= DISP_16BIT;
	}

	switch(get_screen_mode())
	{
		case DISP_LCD_OUT:
			display_mode |= LCD_OUT;
	  		break;
	  	case DISP_TV_OUT:
			display_mode |= TV_OUT;
			break;
	}
	printf("diplay_mode = %x\n",display_mode);

}
Ejemplo n.º 4
0
// LP: added whether a savegame is being restored (skip Pfhortran init if that's the case)
bool entering_map(bool restoring_saved)
{
	bool success= true;

	/* if any active monsters think they have paths, we'll make them reconsider */
	initialize_monsters_for_new_level();

	/* and since no monsters have paths, we should make sure no paths think they have monsters */
	reset_paths();
	
	/* mark our shape collections for loading and load them */
	mark_environment_collections(static_world->environment_code, true);
	mark_all_monster_collections(true);
	mark_player_collections(true);
	mark_map_collections(true);

	MarkLuaCollections(true);
	MarkLuaHUDCollections(true);

#ifdef SDL
	load_collections(true, get_screen_mode()->acceleration != _no_acceleration);
#else
	load_collections(true, true);
#endif

	load_all_monster_sounds();
	load_all_game_sounds(static_world->environment_code);

#if !defined(DISABLE_NETWORKING)
	/* tell the keyboard controller to start recording keyboard flags */
	if (game_is_networked) success= NetSync(); /* make sure everybody is ready */
#endif // !defined(DISABLE_NETWORKING)

	/* make sure nobodyÕs holding a weapon illegal in the new environment */
	check_player_weapons_for_environment_change();

#if !defined(DISABLE_NETWORKING)
	if (dynamic_world->player_count>1 && !restoring_saved) initialize_net_game();
#endif // !defined(DISABLE_NETWORKING)
	randomize_scenery_shapes();

//	reset_action_queues(); //¦¦
//	sync_heartbeat_count();
//	set_keyboard_controller_status(true);

	L_Call_Init(restoring_saved);

#if !defined(DISABLE_NETWORKING)
	NetSetChatCallbacks(InGameChatCallbacks::instance());
#endif // !defined(DISABLE_NETWORKING)

	// Zero out fades *AND* any inadvertant fades from script start...
	stop_fade();
	set_fade_effect(NONE);
	
	if (!success) leaving_map();

	return success;
}
Ejemplo n.º 5
0
void HUD_Lua_Class::start_draw(void)
{
	alephone::Screen *scr = alephone::Screen::instance();
    m_wr = scr->window_rect();
	m_opengl = (get_screen_mode()->acceleration != _no_acceleration);
	m_masking_mode = _mask_disabled;
	
#ifdef HAVE_OPENGL
	if (m_opengl)
	{
		glPushAttrib(GL_ALL_ATTRIB_BITS);
		glEnable(GL_TEXTURE_2D);
		glDisable(GL_CULL_FACE);
		glDisable(GL_DEPTH_TEST);
		glDisable(GL_ALPHA_TEST);
		glDisable(GL_STENCIL_TEST);
		glEnable(GL_BLEND);
		glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
		glDisable(GL_FOG);
        
        glMatrixMode(GL_MODELVIEW);
        glPushMatrix();
        glLoadIdentity();
        glTranslatef(m_wr.x, m_wr.y, 0.0);
		
		m_surface = NULL;
	}
	else
#endif
	{
		if (m_surface &&
				(m_surface->w != SDL_GetVideoSurface()->w ||
				 m_surface->h != SDL_GetVideoSurface()->h))
		{
			SDL_FreeSurface(m_surface);
			m_surface = NULL;
		}
		if (!m_surface)
		{
			m_surface = SDL_DisplayFormatAlpha(SDL_GetVideoSurface());
			SDL_SetAlpha(m_surface, SDL_SRCALPHA, 0);
		}
		SDL_SetClipRect(m_surface, NULL);
		SDL_FillRect(m_surface, NULL, SDL_MapRGBA(m_surface->format, 0, 0, 0, 0));
		
		SDL_SetAlpha(SDL_GetVideoSurface(), SDL_SRCALPHA, 0xff);
	}
	
	
	m_drawing = true;
	clear_mask();
}
Ejemplo n.º 6
0
short get_keypress(short x, short y)
{
	int offset;
	int i;
	
	if(currentKeyboardMode == 4 && get_screen_mode())
		return AKEY_NONE;
	
	offset = x + (y/16)*240;
	if(offset < 0)
		return AKEY_NONE;
	
	for(i=1; i<keys; i++)
		if(offset < kbd_struct[i].offset)
			return kbd_struct[i-1].key;
		
		return AKEY_NONE;
}
Ejemplo n.º 7
0
// Indicates whether to fix the horizontal or the vertical field-of-view angle
// (default: fix vertical FOV angle)
bool View_FOV_FixHorizontalNotVertical() {
  return get_screen_mode()->fix_h_not_v;
}
Ejemplo n.º 8
0
static void handle_game_key(const SDL_Event &event)
{
	SDL_Keycode key = event.key.keysym.sym;
	SDL_Scancode sc = event.key.keysym.scancode;
	bool changed_screen_mode = false;
	bool changed_prefs = false;

	if (!game_is_networked && (event.key.keysym.mod & KMOD_CTRL) && CheatsActive) {
		int type_of_cheat = process_keyword_key(key);
		if (type_of_cheat != NONE)
			handle_keyword(type_of_cheat);
	}
	if (Console::instance()->input_active()) {
		switch(key) {
			case SDLK_RETURN:
			case SDLK_KP_ENTER:
				Console::instance()->enter();
				break;
			case SDLK_ESCAPE:
				Console::instance()->abort();
				break;
			case SDLK_BACKSPACE:
				Console::instance()->backspace();
				break;
			case SDLK_DELETE:
				Console::instance()->del();
				break;
			case SDLK_UP:
				Console::instance()->up_arrow();
				break;
			case SDLK_DOWN:
				Console::instance()->down_arrow();
				break;
			case SDLK_LEFT:
				Console::instance()->left_arrow();
				break;
			case SDLK_RIGHT:
				Console::instance()->right_arrow();
				break;
			case SDLK_HOME:
				Console::instance()->line_home();
				break;
			case SDLK_END:
				Console::instance()->line_end();
				break;
			case SDLK_a:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->line_home();
				break;
			case SDLK_b:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->left_arrow();
				break;
			case SDLK_d:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->del();
				break;
			case SDLK_e:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->line_end();
				break;
			case SDLK_f:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->right_arrow();
				break;
			case SDLK_h:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->backspace();
				break;
			case SDLK_k:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->forward_clear();
				break;
			case SDLK_n:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->down_arrow();
				break;
			case SDLK_p:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->up_arrow();
				break;
			case SDLK_t:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->transpose();
				break;
			case SDLK_u:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->clear();
				break;
			case SDLK_w:
				if (event.key.keysym.mod & KMOD_CTRL)
					Console::instance()->delete_word();
				break;
		}
	}
	else
	{
		if (sc == SDL_SCANCODE_ESCAPE) // (ZZZ) Quit gesture (now safer)
		{
			if(!player_controlling_game())
				do_menu_item_command(mGame, iQuitGame, false);
			else {
				if(get_ticks_since_local_player_in_terminal() > 1 * TICKS_PER_SECOND) {
					if(!game_is_networked) {
						do_menu_item_command(mGame, iQuitGame, false);
					}
					else {
#if defined(__APPLE__) && defined(__MACH__)
						screen_printf("If you wish to quit, press Command-Q");
#else
						screen_printf("If you wish to quit, press Alt+Q.");
#endif
					}
				}
			}
		}
		else if (input_preferences->shell_key_bindings[_key_volume_up].count(sc))
		{
			changed_prefs = SoundManager::instance()->AdjustVolumeUp(Sound_AdjustVolume());
		}
		else if (input_preferences->shell_key_bindings[_key_volume_down].count(sc))
		{
			changed_prefs = SoundManager::instance()->AdjustVolumeDown(Sound_AdjustVolume());
		}
		else if (input_preferences->shell_key_bindings[_key_switch_view].count(sc))
		{
			walk_player_list();
			render_screen(NONE);
		}
		else if (input_preferences->shell_key_bindings[_key_zoom_in].count(sc))
		{
			if (zoom_overhead_map_in())
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
			else
				PlayInterfaceButtonSound(Sound_ButtonFailure());
		}
		else if (input_preferences->shell_key_bindings[_key_zoom_out].count(sc))
		{
			if (zoom_overhead_map_out())
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
			else
				PlayInterfaceButtonSound(Sound_ButtonFailure());
		}
		else if (input_preferences->shell_key_bindings[_key_inventory_left].count(sc))
		{
			if (player_controlling_game()) {
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
				scroll_inventory(-1);
			} else
				decrement_replay_speed();
		}
		else if (input_preferences->shell_key_bindings[_key_inventory_right].count(sc))
		{
			if (player_controlling_game()) {
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
				scroll_inventory(1);
			} else
				increment_replay_speed();
		}
		else if (input_preferences->shell_key_bindings[_key_toggle_fps].count(sc))
		{
			PlayInterfaceButtonSound(Sound_ButtonSuccess());
			extern bool displaying_fps;
			displaying_fps = !displaying_fps;
		}
		else if (input_preferences->shell_key_bindings[_key_activate_console].count(sc))
		{
			if (game_is_networked) {
#if !defined(DISABLE_NETWORKING)
				Console::instance()->activate_input(InGameChatCallbacks::SendChatMessage, InGameChatCallbacks::prompt());
#endif
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
			} 
			else if (Console::instance()->use_lua_console())
			{
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
				Console::instance()->activate_input(ExecuteLuaString, ">");
			}
			else
			{
				PlayInterfaceButtonSound(Sound_ButtonFailure());
			}
		} 
		else if (input_preferences->shell_key_bindings[_key_show_scores].count(sc))
		{
			PlayInterfaceButtonSound(Sound_ButtonSuccess());
			{
				extern bool ShowScores;
				ShowScores = !ShowScores;
			}
		}	
		else if (sc == SDL_SCANCODE_F1) // Decrease screen size
		{
			if (!graphics_preferences->screen_mode.hud)
			{
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
				graphics_preferences->screen_mode.hud = true;
				changed_screen_mode = changed_prefs = true;
			}
			else
			{
				int mode = alephone::Screen::instance()->FindMode(get_screen_mode()->width, get_screen_mode()->height);
				if (mode < alephone::Screen::instance()->GetModes().size() - 1)
				{
					PlayInterfaceButtonSound(Sound_ButtonSuccess());
					graphics_preferences->screen_mode.width = alephone::Screen::instance()->ModeWidth(mode + 1);
					graphics_preferences->screen_mode.height = alephone::Screen::instance()->ModeHeight(mode + 1);
					graphics_preferences->screen_mode.auto_resolution = false;
					graphics_preferences->screen_mode.hud = false;
					changed_screen_mode = changed_prefs = true;
				} else
					PlayInterfaceButtonSound(Sound_ButtonFailure());
			}
		}
		else if (sc == SDL_SCANCODE_F2) // Increase screen size
		{
			if (graphics_preferences->screen_mode.hud)
			{
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
				graphics_preferences->screen_mode.hud = false;
				changed_screen_mode = changed_prefs = true;
			}
			else
			{
				int mode = alephone::Screen::instance()->FindMode(get_screen_mode()->width, get_screen_mode()->height);
				int automode = get_screen_mode()->fullscreen ? 0 : 1;
				if (mode > automode)
				{
					PlayInterfaceButtonSound(Sound_ButtonSuccess());
					graphics_preferences->screen_mode.width = alephone::Screen::instance()->ModeWidth(mode - 1);
					graphics_preferences->screen_mode.height = alephone::Screen::instance()->ModeHeight(mode - 1);
					if ((mode - 1) == automode)
						graphics_preferences->screen_mode.auto_resolution = true;
					graphics_preferences->screen_mode.hud = true;
					changed_screen_mode = changed_prefs = true;
				} else
					PlayInterfaceButtonSound(Sound_ButtonFailure());
			}
		}
		else if (sc == SDL_SCANCODE_F3) // Resolution toggle
		{
			if (!OGL_IsActive()) {
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
				graphics_preferences->screen_mode.high_resolution = !graphics_preferences->screen_mode.high_resolution;
				changed_screen_mode = changed_prefs = true;
			} else
				PlayInterfaceButtonSound(Sound_ButtonFailure());
		}
		else if (sc == SDL_SCANCODE_F4)		// Reset OpenGL textures
		{
#ifdef HAVE_OPENGL
			if (OGL_IsActive()) {
				// Play the button sound in advance to get the full effect of the sound
				PlayInterfaceButtonSound(Sound_OGL_Reset());
				OGL_ResetTextures();
			} else
#endif
				PlayInterfaceButtonSound(Sound_ButtonInoperative());
		}
		else if (sc == SDL_SCANCODE_F5) // Make the chase cam switch sides
		{
			if (ChaseCam_IsActive())
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
			else
				PlayInterfaceButtonSound(Sound_ButtonInoperative());
			ChaseCam_SwitchSides();
		}
		else if (sc == SDL_SCANCODE_F6) // Toggle the chase cam
		{
			PlayInterfaceButtonSound(Sound_ButtonSuccess());
			ChaseCam_SetActive(!ChaseCam_IsActive());
		}
		else if (sc == SDL_SCANCODE_F7) // Toggle tunnel vision
		{
			PlayInterfaceButtonSound(Sound_ButtonSuccess());
			SetTunnelVision(!GetTunnelVision());
		}
		else if (sc == SDL_SCANCODE_F8) // Toggle the crosshairs
		{
			PlayInterfaceButtonSound(Sound_ButtonSuccess());
			player_preferences->crosshairs_active = !player_preferences->crosshairs_active;
			Crosshairs_SetActive(player_preferences->crosshairs_active);
			changed_prefs = true;
		}
		else if (sc == SDL_SCANCODE_F9) // Screen dump
		{
			dump_screen();
		}
		else if (sc == SDL_SCANCODE_F10) // Toggle the position display
		{
			PlayInterfaceButtonSound(Sound_ButtonSuccess());
			{
				extern bool ShowPosition;
				ShowPosition = !ShowPosition;
			}
		}
		else if (sc == SDL_SCANCODE_F11) // Decrease gamma level
		{
			if (graphics_preferences->screen_mode.gamma_level) {
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
				graphics_preferences->screen_mode.gamma_level--;
				change_gamma_level(graphics_preferences->screen_mode.gamma_level);
				changed_prefs = true;
			} else
				PlayInterfaceButtonSound(Sound_ButtonFailure());
		}
		else if (sc == SDL_SCANCODE_F12) // Increase gamma level
		{
			if (graphics_preferences->screen_mode.gamma_level < NUMBER_OF_GAMMA_LEVELS - 1) {
				PlayInterfaceButtonSound(Sound_ButtonSuccess());
				graphics_preferences->screen_mode.gamma_level++;
				change_gamma_level(graphics_preferences->screen_mode.gamma_level);
				changed_prefs = true;
			} else
				PlayInterfaceButtonSound(Sound_ButtonFailure());
		}
		else
		{
			if (get_game_controller() == _demo)
				set_game_state(_close_game);
		}
	}
	
	if (changed_screen_mode) {
		screen_mode_data temp_screen_mode = graphics_preferences->screen_mode;
		temp_screen_mode.fullscreen = get_screen_mode()->fullscreen;
		change_screen_mode(&temp_screen_mode, true);
		render_screen(0);
	}

	if (changed_prefs)
		write_preferences();
}
Ejemplo n.º 9
0
void untapscreen(short x, short y)
{
	int kbcode;

	stylus_down = 0;

	/* On-screen joystick */
	if(virtual_joystick && !ui_is_active && currentKeyboardMode == 4 && y < 240)
	{
		stick0 = 0xff;
		trig0 = 1;
		return;
	}
	
	translate_kbd(&x, &y);
	
	/* Special tricks */
	/* In landscape - show keyboard if clicked bottom right corner */
	if(get_screen_mode() && currentKeyboardMode == 4)
	{
		if(x > 300 && y > 220 && !ui_is_active)
			currentKeyboardMode = 3;
		else if(ui_is_active)
			set_screen_mode(0);
		return;
	}
	
	/* In landscape -- move keyboard if clicked outside of it */
	int newKeyboardMode = currentKeyboardMode;
	if(get_screen_mode() && currentKeyboardMode != 4)
	{
		if(x<0 || x>=240)
			newKeyboardMode = newKeyboardMode ^ 1;
		if(y<0 || y>=80)
			newKeyboardMode = newKeyboardMode ^ 2;
	}
	if(newKeyboardMode != currentKeyboardMode)
	{
		currentKeyboardMode = newKeyboardMode;
		return;
	}
	
	kbcode = get_keypress(x, y);
	
	/* Special keys */
	switch(kbcode)
	{
	case KBD_ROTATE:
		if(!ui_is_active)
			set_screen_mode(get_screen_mode()+1);
		return;
	case KBD_NEGATE:
		currentKeyboardColor = 1-currentKeyboardColor;
		return;
	case KBD_HIDE:
		if(get_screen_mode())
			currentKeyboardMode = 4;
		return;
	}
	
	/* Special translation to make on-screen UI easier to use */
	if(ui_is_active)
	{
		if(machine_type == MACHINE_5200)
		{
			switch(kbcode)
			{
			case 0x3d: /* 2 */
				kbcode = AKEY_UP;
				break;
			case 0x2d: /* 8 */
				kbcode = AKEY_DOWN;
				break;
			case 0x37: /* 4 */
				kbcode = AKEY_LEFT;
				break;
			case 0x33: /* 6 */
				kbcode = AKEY_RIGHT;
				break;
			case 0x39: /* Start */
				kbcode = AKEY_RETURN;
				break;
			case 0x27: /* * */
				kbcode = AKEY_ESCAPE;
				break;
			case 0x31: /* Pause */
				kbcode = AKEY_TAB;
				break;
			case 0x23: /* # */
				kbcode = AKEY_SPACE;
				break;
			}
		}
		else
		{
			switch(kbcode)
			{
			case AKEY_MINUS:
				kbcode = AKEY_UP;
				break;
			case AKEY_EQUAL:
				kbcode = AKEY_DOWN;
				break;
			case AKEY_PLUS:
				kbcode = AKEY_LEFT;
				break;
			case AKEY_ASTERISK:
				kbcode = AKEY_RIGHT;
				break;
			}
		}
	}

	release_key(kbcode);
}
Ejemplo n.º 10
0
void tapscreen(short x, short y)
{
	short kbcode;
	
	stylus_down = 1;

	/* On-screen joystick */
	if(virtual_joystick && !ui_is_active && currentKeyboardMode == 4 && y < 240)
	{
		stick0 = 0xff;
		trig0 = 1;
		if(y < 90) /* up */
			stick0 &= ~1;
		if(y >= 150) /* down */
			stick0 &= ~2;
		if(x < 120) /* left */
			stick0 &= ~4;
		if(x >= 200) /* right */
			stick0 &= ~8;
		if(x >= 60 && x < 260 && y >= 45 && y < 195)
			trig0 = 0;
		return;
	}

	translate_kbd(&x, &y);
	
	/* In landscape - show keyboard if clicked bottom right corner */
	if(get_screen_mode() && currentKeyboardMode == 4 && x > 300 && y > 220)
		return;
	
	kbcode = get_keypress(x, y);
	
	/* Special keys */
	switch(kbcode)
	{
	case KBD_ROTATE:
	case KBD_NEGATE:
	case KBD_HIDE:
		return;
	}
	
	/* The way current UI works, it is not compatible with keyboard implementation
	in landscape mode */
	if(kbcode == AKEY_UI)
		set_screen_mode(0);
	
	/* Special translation to make on-screen UI easier to use */
	if(ui_is_active)
	{
		if(machine_type == MACHINE_5200)
		{
			switch(kbcode)
			{
			case 0x3d: /* 2 */
				kbcode = AKEY_UP;
				break;
			case 0x2d: /* 8 */
				kbcode = AKEY_DOWN;
				break;
			case 0x37: /* 4 */
				kbcode = AKEY_LEFT;
				break;
			case 0x33: /* 6 */
				kbcode = AKEY_RIGHT;
				break;
			case 0x39: /* Start */
				kbcode = AKEY_RETURN;
				break;
			case 0x27: /* * */
				kbcode = AKEY_ESCAPE;
				break;
			case 0x31: /* Pause */
				kbcode = AKEY_TAB;
				break;
			case 0x23: /* # */
				kbcode = AKEY_SPACE;
				break;
			}
		}
		else
		{
			switch(kbcode)
			{
			case AKEY_MINUS:
				kbcode = AKEY_UP;
				break;
			case AKEY_EQUAL:
				kbcode = AKEY_DOWN;
				break;
			case AKEY_PLUS:
				kbcode = AKEY_LEFT;
				break;
			case AKEY_ASTERISK:
				kbcode = AKEY_RIGHT;
				break;
			}
		}
	}

	push_key(kbcode);
}
Ejemplo n.º 11
0
void hitbutton(short code)
{
	int kbcode = AKEY_NONE;
	
	if(ui_is_active)
	{
		trig0 = 1;
		stick0 = 0xff;

		if(code == joykey_map[get_screen_mode()][0])
			kbcode = AKEY_UP;
		else if(code == joykey_map[get_screen_mode()][1])
			kbcode = AKEY_DOWN;
		else if(code == joykey_map[get_screen_mode()][2])
			kbcode = AKEY_LEFT;
		else if(code == joykey_map[get_screen_mode()][3])
			kbcode = AKEY_RIGHT;
		else if(code == klist.vkStart && !issmartphone)
			kbcode = AKEY_BACKSPACE;
		else if(code == klist.vkA)
			kbcode = AKEY_SPACE;
		else if(code == klist.vkB)
			kbcode = AKEY_RETURN;
		else if(code == klist.vkC)
			kbcode = AKEY_ESCAPE;
		else
			for(int i=0; i<sizeof(kbd_translation)/sizeof(kbd_translation[0]); i++)
				if(code == kbd_translation[i].winKey)
				{
					kbcode = kbd_translation[i].aKey;
					break;
				}
	}
	else
	{
		if(code == joykey_map[get_screen_mode()][0])
			stick0 &= ~1;
		else if(code == joykey_map[get_screen_mode()][1])
			stick0 &= ~2;
		else if(code == joykey_map[get_screen_mode()][2])
			stick0 &= ~4;
		else if(code == joykey_map[get_screen_mode()][3])
			stick0 &= ~8;
		else if(code == klist.vkA || code == klist.vkB || ((code == '4' || code == '6') && issmartphone))
			trig0 = 0;
		else if(code == klist.vkC)
		{
			if (!kbui_timerset)
			{
				SetTimer(hWndMain, 1, 1000, NULL);
				kbui_timerset = TRUE;
			}
		}
		else if ((code == VK_F3) && (issmartphone))
			set_screen_mode(get_screen_mode()+1); 
		else
			for(int i=0; i<sizeof(kbd_translation)/sizeof(kbd_translation[0]); i++)
				if(code == kbd_translation[i].winKey)
				{
					kbcode = kbd_translation[i].aKey;
					break;
				}
	}
	if(kbcode != AKEY_NONE)
		push_key(kbcode);
}
Ejemplo n.º 12
0
void hitbutton(short code)
{
	int kbcode;
	
	if(ui_is_active)
	{
		trig0 = 1;
		stick0 = 0xff;

		kbcode = AKEY_NONE;
		if(code == joykey_map[get_screen_mode()][0])
			kbcode = AKEY_UP;
		else if(code == joykey_map[get_screen_mode()][1])
			kbcode = AKEY_DOWN;
		else if(code == joykey_map[get_screen_mode()][2])
			kbcode = AKEY_LEFT;
		else if(code == joykey_map[get_screen_mode()][3])
			kbcode = AKEY_RIGHT;
		else if(code == klist.vkStart)
			kbcode = AKEY_TAB;
		else if(code == klist.vkA)
			kbcode = AKEY_SPACE;
		else if(code == klist.vkB)
			kbcode = AKEY_RETURN;
		else if(code == klist.vkC)
			kbcode = AKEY_ESCAPE;
		
		push_key(kbcode);
	}
	else
	{
		kbcode = AKEY_NONE;
		if(code == joykey_map[get_screen_mode()][0])
			stick0 &= ~1;
		else if(code == joykey_map[get_screen_mode()][1])
			stick0 &= ~2;
		else if(code == joykey_map[get_screen_mode()][2])
			stick0 &= ~4;
		else if(code == joykey_map[get_screen_mode()][3])
			stick0 &= ~8;
		else if(code == klist.vkA || code == klist.vkB)
			trig0 = 0;
		else if(code == klist.vkC)
			kbcode = AKEY_UI;
		else
		for(int i=0; i<sizeof(kbd_translation)/sizeof(kbd_translation[0]); i++)
			if(code == kbd_translation[i].winKey)
			{
				kbcode = kbd_translation[i].aKey;
				break;
			}

		if(kbcode != AKEY_NONE)
			push_key(kbcode);
	}

	/* The way current UI works, it is not compatible with keyboard implementation
	in landscape mode */
	if(kbcode == AKEY_UI)
		set_screen_mode(0);
}