void cl_end() /* clear to end of line */ { int col,row; col = (int)ttyDisplay->curx; row = (int)ttyDisplay->cury; if (!iflags.grmode) { txt_cl_end(col,row); # ifdef SCREEN_VGA } else if (iflags.usevga) { vga_cl_end(col,row); # endif # ifdef ALLEG_FX } else if (iflags.usealleg) { alleg_cl_end(col,row); # endif } tty_curs(BASE_WINDOW, (int)ttyDisplay->curx+1, (int)ttyDisplay->cury); }
void tty_player_selection() { char pbuf[QBUFSZ]; char pick, pc; int i, linecount; linecount = wins[BASE_WINDOW]->cury+1; if ((pc = highc(pl_character[0])) != 0) { if(index(pl_classes, pc) != (char*) 0) goto got_suffix; tty_putstr(BASE_WINDOW, 0, ""); Sprintf(pbuf, "Unknown role: %c", pc); tty_putstr(BASE_WINDOW, 0, pbuf); linecount += 2; pl_character[0] = pc = 0; } #define PICK_PROMPT "Shall I pick a character for you? [Y, N, or Q(quit)] " tty_putstr(BASE_WINDOW, 0, ""); tty_putstr(BASE_WINDOW, 0, PICK_PROMPT); while(!index("yYnNqQ", (pick = readchar())) && !index(quitchars, pick)) tty_nhbell(); pick = index(quitchars, pick) ? 'Y' : highc(pick); tty_putsym(BASE_WINDOW, (int)strlen(PICK_PROMPT)+1, linecount, pick); /* echo */ if (pick == 'Q') { clearlocks(); tty_exit_nhwindows(NULL); terminate(0); } if (pick == 'Y') { tty_putstr(BASE_WINDOW, 0, ""); goto beginner; } tty_curs(BASE_WINDOW, 1, linecount+2); tty_putstr(BASE_WINDOW, 0, "What kind of character are you:"); tty_putstr(BASE_WINDOW, 0, ""); Sprintf(pbuf, " %s,", An(roles[0])); for(i = 1; roles[i]; i++) { Sprintf(eos(pbuf), " %s", an(roles[i])); if((((i + 1) % 4) == 0) && roles[i+1]) { Strcat(pbuf, ","); tty_putstr(BASE_WINDOW, 0, pbuf); linecount++; Strcpy(pbuf, " "); } else if(roles[i+1] && roles[i+2]) Strcat(pbuf, ","); if(roles[i+1] && !roles[i+2]) Strcat(pbuf, " or"); } Strcat(pbuf ,"?"); tty_putstr(BASE_WINDOW, 0, pbuf); Strcpy(pbuf, " ["); for(i = 0; roles[i]; i++) Sprintf(eos(pbuf), "%c,", pl_classes[i]); Strcat(pbuf, " or Q] "); tty_putstr(BASE_WINDOW, 0, pbuf); linecount += 5; while ((pc = readchar()) != 0) { if ((pc = highc(pc)) == 'Q') { clearlocks(); tty_exit_nhwindows(NULL); terminate(0); } if(index(pl_classes, pc) != (char *) 0) { tty_putsym(BASE_WINDOW, (int)strlen(pbuf)+1, linecount, pc); /* echo */ tty_putstr(BASE_WINDOW, 0, ""); tty_display_nhwindow(BASE_WINDOW, TRUE); break; } if(pc == '\n') { pc = 0; break; } tty_nhbell(); } beginner: if(!pc) { i = rn2((int)strlen(pl_classes)); pc = pl_classes[i]; tty_putstr(BASE_WINDOW, 0, ""); Sprintf(pbuf, "This game you will be %s.", an(roles[i])); tty_putstr(BASE_WINDOW, 0, pbuf); tty_putstr(BASE_WINDOW, 0, ""); tty_display_nhwindow(BASE_WINDOW, TRUE); getret(); } got_suffix: tty_clear_nhwindow(BASE_WINDOW); pl_character[0] = pc; return; }