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; } } }
/* 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); } } } }