Esempio n. 1
0
void osk_get_string(char *buffer, int max)
{
    strcpy(g_osk_buffer,buffer);
    while (1)
    {
	clear_screen();
	draw_osk();
	pgScreenFlipV();
	int keys = Read_Key();

	int osk_r = osk_process_key(keys);

	if (osk_r)
	{
	    if (osk_r>0)
		strncpy(buffer,g_osk_buffer,max);
	    break;
	}
    }
}
Esempio n. 2
0
/* This processes SDL events */
void I_GetEvent()
{
    static  event_t  event;
    static  event_t  kbevent;

	unsigned long key;
	if(!controls_set)
        SetupControls();

	event.type = ev_joystick;
	event.data1 = 0;
	event.data2 = 0;
	event.data3 = 0;

	key = Read_Key();

	if (analog) {
 	    if (ctl.ly >= 0xD0) event.data3 = 1;  // DOWN
 	    if (ctl.ly <= 0x10) event.data3 = -1;    // UP
 	    if (ctl.lx <= 0x10) event.data2 = -1;  // LEFT
 	    if (ctl.lx >= 0xD0) event.data2 = 1;  // RIGHT
	}
    else {
        if (ctl.buttons & SCE_CTRL_DOWN)	event.data3 = 1;  // DOWN
        if (ctl.buttons & SCE_CTRL_UP) 	event.data3 = -1;    // UP
        if (ctl.buttons & SCE_CTRL_LEFT)	event.data2 = -1;  // LEFT
        if (ctl.buttons & SCE_CTRL_RIGHT)	event.data2 = 1;  // RIGHT
    }

    //printf("I_GetEvent: buttons: 0x%x data1: %d data2: %d data3: %d", ctl.buttons, event.data1, event.data2, event.data3);

	D_PostEvent(&event);
	
    if (key & SCE_CTRL_LTRIGGER) {
        if (key & SCE_CTRL_RTRIGGER) {
            if (key & SCE_CTRL_START) {
	            NewPrompter();
	            I_FinishUpdate2();
	        }
	    }
	}
	else {
	
	if (d_controls[1] == KEY_ENTER || d_controls[1] == KEY_ESCAPE ||
	    d_controls[1] == ' ' || d_controls[1] == KEY_TAB) {
	    if (key & SCE_CTRL_START)
	    {
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[1];
	    D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[1];
	    D_PostEvent(&kbevent);
	    }  
	}
	else {
	    if (ctl.buttons & SCE_CTRL_START)
	    {
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[1];
	    D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[1];
	    D_PostEvent(&kbevent);
	    }
	}
	if (d_controls[2] == KEY_ENTER || d_controls[2] == KEY_ESCAPE ||
	    d_controls[2] == ' ' || d_controls[2] == KEY_TAB) {
 	    if (key & SCE_CTRL_SELECT)
	    {
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[2];
	    D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[2];
	    D_PostEvent(&kbevent);
	    }  
	}
	else {
	    if (ctl.buttons & SCE_CTRL_SELECT)
	    {
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[2];
	    D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[2];
	    D_PostEvent(&kbevent);
	    }
	}
	if (d_controls[3] == KEY_ENTER || d_controls[3] == KEY_ESCAPE ||
	    d_controls[3] == ' ' || d_controls[3] == KEY_TAB) {
	    if (key & SCE_CTRL_CROSS)
	    {
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[3];
	    D_PostEvent(&kbevent);
	    }
	    else
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[3];
	    D_PostEvent(&kbevent);
	    }
	}
	else {
	    if (ctl.buttons & SCE_CTRL_CROSS)
	    {
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[3];
	    D_PostEvent(&kbevent);
	    }
	    else
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[3];
	    D_PostEvent(&kbevent);
	    }
	}

	if (gamestate == GS_LEVEL)
	{
        boolean looped = false;

		plyrweap = &players[consoleplayer];

		num = plyrweap->readyweapon;
		
		if (analog) {
		
		
		if (key & SCE_CTRL_UP)
		{
            looped = false;

			while (1)
            {
				++num;
                if (num > wp_supershotgun)
                {
                    if (looped)
                    {
                        num = plyrweap->readyweapon;
                        break;
                    }

                    num = wp_fist;
                    looped = true;
                }

				if (plyrweap->weaponowned[num])
				{
					plyrweap->pendingweapon = num;
					break;
				}

				
			}

		kbevent.type = ev_keydown;
		kbevent.data1 = KEY_1 + num;
		D_PostEvent(&kbevent);
		}
		else  
		{

		kbevent.type = ev_keyup;
		kbevent.data1 = KEY_1 + num;
		D_PostEvent(&kbevent);
		}  
		
		if (key & SCE_CTRL_DOWN)
        {
            looped = false;

			while (1)
            {
				--num;
                if (num == -1)
                {
                    if (looped)
                    {
                        num = plyrweap->readyweapon;
                        break;
                    }

                    num = wp_supershotgun;
                    looped = true;
                }
				if (plyrweap->weaponowned[num])
				{
					plyrweap->pendingweapon = num;
					break;
				}
			}

			kbevent.type = ev_keydown;
			kbevent.data1 = KEY_1 + num;
			D_PostEvent(&kbevent);
		}
		}

		if (!analog) {
		if (ctl.ly <= 0x10)
		{
            looped = false;

			while (1)
            {
				++num;
				if (num > wp_supershotgun)
                {
                    if (looped)
                    {
                        num = plyrweap->readyweapon;
                        break;
                    }

                    num = wp_fist;
                    looped = true;
                }

				if (plyrweap->weaponowned[num])
				{
					plyrweap->pendingweapon = num;
					break;
				}
			}

			kbevent.type = ev_keydown;
			kbevent.data1 = KEY_1 + num;
			D_PostEvent(&kbevent);
		}
		else  
        {
			kbevent.type = ev_keyup;
			kbevent.data1 = KEY_1 + num;
			D_PostEvent(&kbevent);
		}
		if (ctl.ly >= 0xD0)
		{
            looped = false;

			while (1)
            {
                --num;
                if (num == -1)
                {
                    if (looped)
                    {
                        num = plyrweap->readyweapon;
                        break;
                    }

                    num = wp_supershotgun;
                    looped = true;
                }

				if (plyrweap->weaponowned[num])
				{
					plyrweap->pendingweapon = num;
					break;
				}
			}

			kbevent.type = ev_keydown;
			kbevent.data1 = KEY_1 + num;
			D_PostEvent(&kbevent);
		}
        }
    }

	if (d_controls[5] == KEY_ENTER || d_controls[5] == KEY_ESCAPE ||
	    d_controls[5] == ' ' || d_controls[5] == KEY_TAB) {
	    if (key & SCE_CTRL_TRIANGLE)
	    {
	    	kbevent.type = ev_keydown;
	    	kbevent.data1 = d_controls[5];
	    	D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[5];
	    D_PostEvent(&kbevent);
	    }
	}
	else {
	    if (ctl.buttons & SCE_CTRL_TRIANGLE)
	    {
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[5];
	    D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[5];
	    D_PostEvent(&kbevent);
	    }
	}
	if (d_controls[8] == KEY_ENTER || d_controls[8] == KEY_ESCAPE ||
	    d_controls[8] == ' ' || d_controls[8] == KEY_TAB) {
        if (key & SCE_CTRL_LTRIGGER)
	    {
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[8];
	    D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[8];
	    D_PostEvent(&kbevent);
	    }
	}
	else {
        if (ctl.buttons & SCE_CTRL_LTRIGGER)
	    {
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[8];
	    D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[8];
	    D_PostEvent(&kbevent);
	    }
	}
	if (d_controls[9] == KEY_ENTER || d_controls[9] == KEY_ESCAPE ||
	    d_controls[9] == ' ' || d_controls[9] == KEY_TAB) {
        if (key & SCE_CTRL_RTRIGGER)
	    {
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[9];
	    D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[9];
	    D_PostEvent(&kbevent);
	    }
	}
	else {
        if (ctl.buttons & SCE_CTRL_RTRIGGER)
	    {
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[9];
	    D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[9];
	    D_PostEvent(&kbevent);
	    }
	}
	if (d_controls[6] == KEY_ENTER || d_controls[6] == KEY_ESCAPE ||
	    d_controls[6] == ' ' || d_controls[6] == KEY_TAB) {
	    if(key & SCE_CTRL_SQUARE){
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[6];
	    D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[6];
	    D_PostEvent(&kbevent);
	    }
	}
	else {
	    if(ctl.buttons & SCE_CTRL_SQUARE){
	    kbevent.type = ev_keydown;
	    kbevent.data1 = d_controls[6];
	    D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[6];
	    D_PostEvent(&kbevent);
	    }
	}
	if (d_controls[7] == KEY_ENTER || d_controls[7] == KEY_ESCAPE ||
	    d_controls[7] == ' ' || d_controls[7] == KEY_TAB) {
	    if(key & SCE_CTRL_CIRCLE) {
	        kbevent.type = ev_keydown;
		kbevent.data1 = d_controls[7];
		D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[7];
	    D_PostEvent(&kbevent);
	    }
	}
	else {
	    if(ctl.buttons & SCE_CTRL_CIRCLE) {
	        kbevent.type = ev_keydown;
		kbevent.data1 = d_controls[7];
		D_PostEvent(&kbevent);
	    }
	    else  
	    {
	    kbevent.type = ev_keyup;
	    kbevent.data1 = d_controls[7];
	    D_PostEvent(&kbevent);
	    }
	}
	}
}