// upload the picture (icon, photo, whatever) associated with the current room void common_code_for_editroompic_and_editpic(char *servcmd) { if (havebstr("cancel_button")) { AppendImportantMessage(_("Graphics upload has been cancelled."), -1); display_main_menu(); return; } if (WC->upload_length == 0) { AppendImportantMessage(_("You didn't upload a file."), -1); display_main_menu(); return; } serv_printf("%s %ld|%s", servcmd, (long)WC->upload_length, GuessMimeType(ChrPtr(WC->upload), WC->upload_length)); StrBuf *Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 0, 0) == 7) { serv_write(ChrPtr(WC->upload), WC->upload_length); display_success(ChrPtr(Line) + 4); } else { AppendImportantMessage((ChrPtr(Line) + 4), -1); display_main_menu(); } FreeStrBuf(&Line); }
void do_graphics_upload(char *filename) { StrBuf *Line; const char *MimeType; wcsession *WCC = WC; int bytes_remaining; int pos = 0; int thisblock; bytes_remaining = WCC->upload_length; if (havebstr("cancel_button")) { AppendImportantMessage(_("Graphics upload has been cancelled."), -1); display_main_menu(); return; } if (WCC->upload_length == 0) { AppendImportantMessage(_("You didn't upload a file."), -1); display_main_menu(); return; } MimeType = GuessMimeType(ChrPtr(WCC->upload), bytes_remaining); serv_printf("UIMG 1|%s|%s", MimeType, filename); Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 2) != 2) { display_main_menu(); FreeStrBuf(&Line); return; } while (bytes_remaining) { thisblock = ((bytes_remaining > 4096) ? 4096 : bytes_remaining); serv_printf("WRIT %d", thisblock); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 7) != 7) { serv_puts("UCLS 0"); StrBuf_ServGetln(Line); display_main_menu(); FreeStrBuf(&Line); return; } thisblock = extract_int(ChrPtr(Line) +4, 0); serv_write(&ChrPtr(WCC->upload)[pos], thisblock); pos += thisblock; bytes_remaining -= thisblock; } serv_puts("UCLS 1"); StrBuf_ServGetln(Line); if (*ChrPtr(Line) != 'x') { display_success(ChrPtr(Line) + 4); } FreeStrBuf(&Line); }
int pick_bot_levels(int * bot_count, int bot_level[2], char logo[23][35]){ option bot_levels[3]; bot_levels[0].tekst=strtoch("Easy"); bot_levels[1].tekst=strtoch("Hard"); bot_levels[2].tekst=strtoch("Nazad"); chtype pick[]={'B', 'o', 't', 0}; int i, old_option, new_option, key; for (i=0;i<*bot_count;i++){ erase(); old_option=-1; new_option=0; display_main_menu(old_option, new_option, bot_levels,logo, 3); add_chstring(30, 33,pick,BGD,1); mvaddch(30,37,(i==0)?'1':'2'); refresh(); while (bot_level[i] == 0) { key = getch(); switch (key) { case 'w': case 'W': case KEY_UP: if (new_option > 0) { old_option = new_option; new_option--; display_main_menu(old_option, new_option, bot_levels, logo, 3); } break; case 's': case 'S': case KEY_DOWN: if (new_option < 2) { old_option = new_option; new_option++; display_main_menu(old_option, new_option, bot_levels, logo, 3); } break; case 'e': case KEY_ENTER: case 10: case 13: if (new_option!=2) bot_level[i] = new_option + 1; else { bot_level[0] = 0; bot_level[1] = 0; return 1; } break; default: break; } } } return 0; }
int pick_player_number(int * player_count,int * bot_count, int bot_level[2], char logo[23][35]){ int key, new_option=0, old_option=-1, back=0; option player_ngcommands[3]; player_ngcommands[0].tekst=strtoch("Jedan igrac"); player_ngcommands[1].tekst=strtoch("Dva igraca"); player_ngcommands[2].tekst=strtoch("Natrag"); while (!back) { display_main_menu(old_option, new_option, player_ngcommands, logo, 3); key = getch(); switch (key) { case 'w': case 'W': case KEY_UP: if (new_option > 0) { old_option = new_option; new_option--; display_main_menu(old_option, new_option, player_ngcommands, logo, 3); } break; case 's': case 'S': case KEY_DOWN: if (new_option < 2) { old_option = new_option; new_option++; display_main_menu(old_option, new_option, player_ngcommands, logo, 3); } break; case 'e': case 10: case 13: case KEY_ENTER: if (new_option != 2) { *player_count = new_option + 1; break; } else return 1; default: break; } if (*player_count) { back = pick_botcount(player_count, bot_count, bot_level, logo); if (back) { back=0; *player_count=0; clear(); new_option=0; old_option=-1; } else return 0; } } }
int main() { char temp_buf[64]; time_t current_time; time(¤t_time); // get current time, and store it in current_time strcpy(temp_buf, ctime(¤t_time)); temp_buf[strlen(temp_buf)-1] = 0; strcpy(log_file_name, "log.txt"); remove(log_file_name); write_log(temp_buf); #ifdef LOG_COMMS strcpy(comm_log_file_name, "comm_log.txt"); remove(comm_log_file_name); write_comm_log("START_TIME", temp_buf); #endif sprintf(temp_buf, "\nVersion: %s for %s", SCANTOOL_VERSION_STR, SCANTOOL_PLATFORM_STR); write_log(temp_buf); write_log("\n\nInitializing All Modules...\n---------------------------"); init(); // initialize everything write_log("\n\nDisplaying Main Menu...\n-----------------------"); display_main_menu(); // dislpay main menu write_log("\nMain Menu Closed"); write_log("\n\nShutting Down All Modules...\n----------------------------"); shut_down(); // shut down return EXIT_SUCCESS; }
void display_graphics_upload(char *filename) { StrBuf *Line; Line = NewStrBuf(); serv_printf("UIMG 0||%s", filename); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 2) != 2) { display_main_menu(); return; } else { output_headers(1, 0, 0, 0, 1, 0); do_template("files_graphicsupload"); end_burst(); } FreeStrBuf(&Line); }
/* -------- code */ void do_preferences( void) { struct screen_mode_data mode= graphics_preferences->screen_mode; GDSpec old_spec= graphics_preferences->device_spec; handle_preferences(); if (!EqualGDSpec(&graphics_preferences->device_spec, &old_spec) || mode.bit_depth != graphics_preferences->screen_mode.bit_depth || mode.acceleration != graphics_preferences->screen_mode.acceleration) { paint_window_black(); initialize_screen(&graphics_preferences->screen_mode); /* Re fade in, so that we get the proper colortable loaded.. */ display_main_menu(); } else if (memcmp(&mode, &graphics_preferences->screen_mode, sizeof(struct screen_mode_data))) { change_screen_mode(&graphics_preferences->screen_mode, FALSE); } return; }
/* * Entry point for WebCit transaction */ void session_loop(void) { int xhttp; StrBuf *Buf; /* * We stuff these with the values coming from the client cookies, * so we can use them to reconnect a timed out session if we have to. */ wcsession *WCC; WCC= WC; WCC->upload_length = 0; WCC->upload = NULL; WCC->Hdr->nWildfireHeaders = 0; if (WCC->Hdr->HR.ContentLength > 0) { if (ReadPostData() < 0) { return; } } Buf = NewStrBuf(); WCC->trailing_javascript = NewStrBuf(); /* Convert base64-encoded URL's back to plain text */ if (!strncmp(ChrPtr(WCC->Hdr->this_page), "/B64", 4)) { StrBufCutLeft(WCC->Hdr->this_page, 4); StrBufDecodeBase64(WCC->Hdr->this_page); http_redirect(ChrPtr(WCC->Hdr->this_page)); goto SKIP_ALL_THIS_CRAP; } /* If there are variables in the URL, we must grab them now */ if (WCC->Hdr->PlainArgs != NULL) ParseURLParams(WCC->Hdr->PlainArgs); /* If the client sent a nonce that is incorrect, kill the request. */ if (havebstr("nonce")) { if (verbose) syslog(LOG_DEBUG, "Comparing supplied nonce %s to session nonce %d", bstr("nonce"), WCC->nonce ); if (ibstr("nonce") != WCC->nonce) { syslog(LOG_INFO, "Ignoring request with mismatched nonce."); hprintf("HTTP/1.1 404 Security check failed\r\n"); hprintf("Content-Type: text/plain\r\n"); begin_burst(); wc_printf("Security check failed.\r\n"); end_burst(); goto SKIP_ALL_THIS_CRAP; } } /* * If we're not connected to a Citadel server, try to hook up the connection now. */ if (!WCC->connected) { if (GetConnected()) { hprintf("HTTP/1.1 503 Service Unavailable\r\n"); hprintf("Content-Type: text/html\r\n"); begin_burst(); wc_printf("<html><head><title>503 Service Unavailable</title></head><body>\n"); wc_printf(_("This program was unable to connect or stay " "connected to the Citadel server. Please report " "this problem to your system administrator.") ); wc_printf("<br>"); wc_printf("<a href=\"http://www.citadel.org/doku.php/" "faq:generalquestions:webcit_unable_to_connect\">%s</a>", _("Read More...") ); wc_printf("</body></html>\n"); end_burst(); goto SKIP_ALL_THIS_CRAP; } } /* * If we're not logged in, but we have authentication data (either from * a cookie or from http-auth), try logging in to Citadel using that. */ if ( (!WCC->logged_in) && (StrLength(WCC->Hdr->c_username) > 0) && (StrLength(WCC->Hdr->c_password) > 0) ) { long Status; FlushStrBuf(Buf); serv_printf("USER %s", ChrPtr(WCC->Hdr->c_username)); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, &Status) == 3) { serv_printf("PASS %s", ChrPtr(WCC->Hdr->c_password)); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 2) { become_logged_in(WCC->Hdr->c_username, WCC->Hdr->c_password, Buf); } else { /* Should only display when password is wrong */ WCC->ImportantMsg = NewStrBufPlain(ChrPtr(Buf) + 4, StrLength(Buf) - 4); authorization_required(); FreeStrBuf(&Buf); goto SKIP_ALL_THIS_CRAP; } } else if (Status == 541) { WCC->logged_in = 1; } } xhttp = (WCC->Hdr->HR.eReqType != eGET) && (WCC->Hdr->HR.eReqType != ePOST) && (WCC->Hdr->HR.eReqType != eHEAD); /* * If a 'go' (or 'gotofirst') parameter has been specified, attempt to goto that room * prior to doing anything else. */ if (havebstr("go")) { int ret; if (verbose) syslog(LOG_DEBUG, "Explicit room selection: %s", bstr("go")); ret = gotoroom(sbstr("go")); /* do quietly to avoid session output! */ if ((ret/100) != 2) { if (verbose) syslog(LOG_DEBUG, "Unable to change to [%s]; Reason: %d", bstr("go"), ret); } } else if (havebstr("gotofirst")) { int ret; if (verbose) syslog(LOG_DEBUG, "Explicit room selection: %s", bstr("gotofirst")); ret = gotoroom(sbstr("gotofirst")); /* do quietly to avoid session output! */ if ((ret/100) != 2) { syslog(LOG_INFO, "Unable to change to [%s]; Reason: %d", bstr("gotofirst"), ret); } } /* * If we aren't in any room yet, but we have cookie data telling us where we're * supposed to be, and 'go' was not specified, then go there. */ else if ( (StrLength(WCC->CurRoom.name) == 0) && ( (StrLength(WCC->Hdr->c_roomname) > 0) )) { int ret; if (verbose) syslog(LOG_DEBUG, "We are in '%s' but cookie indicates '%s', going there...", ChrPtr(WCC->CurRoom.name), ChrPtr(WCC->Hdr->c_roomname) ); ret = gotoroom(WCC->Hdr->c_roomname); /* do quietly to avoid session output! */ if ((ret/100) != 2) { if (verbose) syslog(LOG_DEBUG, "COOKIEGOTO: Unable to change to [%s]; Reason: %d", ChrPtr(WCC->Hdr->c_roomname), ret); } } if (WCC->Hdr->HR.Handler != NULL) { if ( (!WCC->logged_in) && ((WCC->Hdr->HR.Handler->Flags & ANONYMOUS) == 0) && (WCC->serv_info != NULL) && (WCC->serv_info->serv_supports_guest == 0) ) { display_login(); } else { if ((WCC->Hdr->HR.Handler->Flags & AJAX) != 0) { begin_ajax_response(); } WCC->Hdr->HR.Handler->F(); if ((WCC->Hdr->HR.Handler->Flags & AJAX) != 0) { end_ajax_response(); } } } /* When all else fails, display the default landing page or a main menu. */ else { /* * ordinary browser users get a nice login screen, DAV etc. requsets * are given a 401 so they can handle it appropriate. */ if (!WCC->logged_in) { if (xhttp) { authorization_required(); } else { display_default_landing_page(); } } /* * Toplevel dav requests? or just a flat browser request? */ else { if (xhttp) { dav_main(); } else { display_main_menu(); } } } SKIP_ALL_THIS_CRAP: FreeStrBuf(&Buf); fflush(stdout); }
/** * \brief Application entry point. * * Configure USART in synchronous master/slave mode to start a transmission * between two boards. * \return Unused. */ int main(void) { uint8_t uc_char; uint8_t *p_data; /* Initialize the SAM system. */ sysclk_init(); board_init(); /* Configure UART for debug message output. */ configure_console(); /* Output example information. */ puts(STRING_HEADER); /* Display main menu. */ display_main_menu(); /* Configure USART. */ configure_usart(SYNC_MASTER, g_ul_freq[g_uc_freq_idx]); g_uc_transfer_mode = SYNC_MASTER; g_uc_state = STATE_WRITE; puts("-- USART in MASTER mode --\r"); while (1) { uc_char = 0; scanf("%c", (char *)&uc_char); switch (uc_char) { case '0': case '1': case '2': case '3': g_uc_freq_idx = uc_char - '0'; printf("-- The clock freq is: %luHz.\r\n", (unsigned long)g_ul_freq[g_uc_freq_idx]); configure_usart(SYNC_MASTER, g_ul_freq[g_uc_freq_idx]); break; case 'i': case 'I': if (g_uc_transfer_mode == SYNC_MASTER) { printf("-- USART is MASTER at %luHz.\r\n", (unsigned long)g_ul_freq[g_uc_freq_idx]); } else { puts("-- USART is SLAVE \r"); } break; case 's': case 'S': if (g_uc_transfer_mode == SYNC_MASTER) { g_uc_transfer_mode = SYNC_SLAVE; configure_usart(SYNC_SLAVE, g_ul_freq[g_uc_freq_idx]); puts("-- USART in SLAVE mode --\r"); } else { if (g_uc_transfer_mode == SYNC_SLAVE) { g_uc_transfer_mode = SYNC_MASTER; configure_usart(SYNC_MASTER, g_ul_freq[g_uc_freq_idx]); puts("-- USART in MASTER mode --\r"); } } break; case 'w': case 'W': g_uc_state = STATE_WRITE; p_data = (uint8_t *)&tran_buff[0]; transmit_mode_sync(p_data, BUFFER_SIZE); while (!g_ul_sent_done) { } if (g_ul_sent_done) { printf("-- %s sent done --\r\n", g_uc_transfer_mode ? "MASTER" : "SLAVE"); } break; case 'r': case 'R': g_uc_state = STATE_READ; g_ulcount = 0; p_revdata = &g_c_recv_buff[0]; if (g_uc_transfer_mode == SYNC_MASTER) { puts("----USART MASTER Read----\r"); } else { puts("----USART SLAVE Read----\r"); } usart_enable_interrupt(BOARD_USART, US_IER_RXRDY); while (!g_ul_recv_done) { } if (g_ul_recv_done) { if (strncmp((char*)g_c_recv_buff, tran_buff, BUFFER_SIZE)) { puts(" -F-: Failed!\r"); } else { /* successfully received */ dump_info((char*)g_c_recv_buff, BUFFER_SIZE); } puts("----END of read----\r"); memset(g_c_recv_buff, 0, sizeof(g_c_recv_buff)); g_ul_recv_done = false; } break; case 'm': case 'M': display_main_menu(); break; default: break; } } }
static void process_game_key(const SDL_Event &event) { switch (get_game_state()) { case _game_in_progress: #if defined(__APPLE__) && defined(__MACH__) if ((event.key.keysym.mod & KMOD_GUI)) #else if ((event.key.keysym.mod & KMOD_ALT) || (event.key.keysym.mod & KMOD_GUI)) #endif { int item = -1; switch (event.key.keysym.sym) { case SDLK_p: item = iPause; break; case SDLK_s: item = iSave; break; case SDLK_r: item = iRevert; break; // ZZZ: Alt+F4 is also a quit gesture in Windows #ifdef __WIN32__ case SDLK_F4: #endif case SDLK_q: item = iQuitGame; break; case SDLK_RETURN: item = 0; toggle_fullscreen(); break; default: break; } if (item > 0) do_menu_item_command(mGame, item, event_has_cheat_modifiers(event)); else if (item != 0) handle_game_key(event); } else handle_game_key(event); break; case _display_intro_screens: case _display_chapter_heading: case _display_prologue: case _display_epilogue: case _display_credits: case _display_quit_screens: if (interface_fade_finished()) force_game_state_change(); else stop_interface_fade(); break; case _display_intro_screens_for_demo: stop_interface_fade(); display_main_menu(); break; case _quit_game: case _close_game: case _revert_game: case _switch_demo: case _change_level: case _begin_display_of_epilogue: case _displaying_network_game_dialogs: break; case _display_main_menu: { if (!interface_fade_finished()) stop_interface_fade(); int item = -1; switch (event.key.keysym.sym) { case SDLK_n: item = iNewGame; break; case SDLK_o: item = iLoadGame; break; case SDLK_g: item = iGatherGame; break; case SDLK_j: item = iJoinGame; break; case SDLK_p: item = iPreferences; break; case SDLK_r: item = iReplaySavedFilm; break; case SDLK_c: item = iCredits; break; // ZZZ: Alt+F4 is also a quit gesture in Windows #ifdef __WIN32__ case SDLK_F4: #endif case SDLK_q: item = iQuit; break; case SDLK_F9: dump_screen(); break; case SDLK_RETURN: #if defined(__APPLE__) && defined(__MACH__) if ((event.key.keysym.mod & KMOD_GUI)) #else if ((event.key.keysym.mod & KMOD_GUI) || (event.key.keysym.mod & KMOD_ALT)) #endif { toggle_fullscreen(); } break; case SDLK_a: item = iAbout; break; default: break; } if (item > 0) { draw_menu_button_for_command(item); do_menu_item_command(mInterface, item, event_has_cheat_modifiers(event)); } break; } } }
/** * \brief Application entry point. * * Configure USART in synchronous master/slave mode to start a transmission * between two boards. * \return Unused. */ int main(void) { uint8_t uc_char; /* Initialize the SAM system. */ sysclk_init(); board_init(); /* Configure UART for debug message output. */ configure_console(); /* Output example information. */ puts(STRING_HEADER); /* Display main menu. */ display_main_menu(); /* Configure USART. */ configure_usart(SYNC_MASTER, g_ul_freq[g_uc_freq_idx]); /* Get board USART PDC base address and enable receiver and transmitter. */ g_p_pdc = usart_get_pdc_base(BOARD_USART); pdc_enable_transfer(g_p_pdc, PERIPH_PTCR_RXTEN | PERIPH_PTCR_TXTEN); g_uc_transfer_mode = SYNC_MASTER; g_uc_state = STATE_WRITE; puts("-- USART in MASTER mode --\r"); while (1) { uc_char = 0; scanf("%c", (char *)&uc_char); switch (uc_char) { case '0': case '1': case '2': case '3': g_uc_freq_idx = uc_char - '0'; printf("-- The clock freq is: %luHz.\r\n", (unsigned long)g_ul_freq[g_uc_freq_idx]); configure_usart(SYNC_MASTER, g_ul_freq[g_uc_freq_idx]); break; case 'i': case 'I': if (g_uc_transfer_mode == SYNC_MASTER) { printf("-- USART is MASTER at %luHz.\r\n", (unsigned long)g_ul_freq[g_uc_freq_idx]); } else { puts("-- USART is SLAVE \r"); } break; case 's': case 'S': if (g_uc_transfer_mode == SYNC_MASTER) { g_uc_transfer_mode = SYNC_SLAVE; configure_usart(SYNC_SLAVE, g_ul_freq[g_uc_freq_idx]); puts("-- USART in SLAVE mode --\r"); } else { if (g_uc_transfer_mode == SYNC_SLAVE) { g_uc_transfer_mode = SYNC_MASTER; configure_usart(SYNC_MASTER, g_ul_freq[g_uc_freq_idx]); puts("-- USART in MASTER mode --\r"); } } break; case 'w': case 'W': g_uc_state = STATE_WRITE; g_st_packet.ul_addr = (uint32_t)tran_buff; g_st_packet.ul_size = BUFFER_SIZE; pdc_tx_init(g_p_pdc, &g_st_packet, NULL); usart_enable_interrupt(BOARD_USART, US_IER_TXBUFE); while (!g_ul_sent_done) { } if (g_ul_sent_done) { printf("-- %s sent done --\r\n", g_uc_transfer_mode ? "MASTER" : "SLAVE"); } break; case 'r': case 'R': g_uc_state = STATE_READ; if (g_uc_transfer_mode == SYNC_MASTER) { puts("----USART MASTER Read----\r"); } else { puts("----USART SLAVE Read----\r"); } g_st_packet.ul_addr = (uint32_t)g_c_recv_buff; g_st_packet.ul_size = BUFFER_SIZE; pdc_rx_init(g_p_pdc, &g_st_packet, NULL); usart_enable_interrupt(BOARD_USART, US_IER_RXBUFF); while (!g_ul_recv_done) { } if (g_ul_recv_done) { if (strncmp((char*)g_c_recv_buff, tran_buff, BUFFER_SIZE)) { puts(" -F-: Failed!\r"); } else { /* successfully received */ dump_info((char*)g_c_recv_buff, BUFFER_SIZE); } puts("----END of read----\r"); memset(g_c_recv_buff, 0, sizeof(g_c_recv_buff)); g_ul_recv_done = false; } break; case 'm': case 'M': display_main_menu(); break; default: break; } } }
int pick_botcount(int * player_count, int * bot_count, int * bot_level,char logo[23][35]){ option bot_ngcommands[4]; bot_ngcommands[0].tekst=strtoch("Jedan bot"); bot_ngcommands[1].tekst=strtoch("Dva bota"); bot_ngcommands[2].tekst=strtoch("Bez botova"); bot_ngcommands[3].tekst=strtoch("Natrag"); int bot_options, new_option=0, old_option=-1, key, back=0; if (*player_count==1) { bot_ngcommands[2].tekst=bot_ngcommands[3].tekst; bot_options=3; } else bot_options=4; while (!back) { clear(); new_option=0; old_option=-1; display_main_menu(old_option,new_option, bot_ngcommands,logo, bot_options); while (*bot_count == -1) { key = getch(); switch (key) { case 'w': case 'W': case KEY_UP: if (new_option > 0) { old_option = new_option; new_option--; display_main_menu(old_option, new_option, bot_ngcommands, logo, bot_options); } break; case 's': case 'S': case KEY_DOWN: if (new_option < bot_options - 1) { old_option = new_option; new_option++; display_main_menu(old_option, new_option, bot_ngcommands, logo, bot_options); } break; case 'e': case 10: case 13: case KEY_ENTER: if (bot_options == 3) { if (new_option == 2) return 1; else *bot_count = new_option + 1; } else { if (new_option == 3) return 1; else { if (new_option == 2) { *bot_count = 0; } else *bot_count = new_option + 1; } } break; default: break; } } if (bot_count) { back = pick_bot_levels(bot_count, bot_level, logo); if (back){ *bot_count=-1; back=0; } else return 0; } } }