STATUS wipe_menu_show(menuUnit *p) { oppo_debug("start...\n"); if (wipe_item_show_end) { wipe_item_show_end = 0; return MENU_BACK; } return_val_if_fail(p != NULL, RET_FAIL); int n = p->get_child_count(p); int selindex = 0; return_val_if_fail(n >= 1, RET_FAIL); return_val_if_fail(n < ITEM_COUNT, RET_FAIL); struct _menuUnit *temp = p->child; return_val_if_fail(temp != NULL, RET_FAIL); char **menu_item = malloc(n * sizeof(char *)); assert_if_fail(menu_item != NULL); char **icon_item=malloc(n * sizeof(char *)); assert_if_fail(icon_item != NULL); int i = 0; for (i = 0; i < n; i++) { menu_item[i] = temp->name; icon_item[i] = temp->icon; temp = temp->nextSilbing; } selindex = wipe_menu(p->name, menu_item, icon_item, NULL, n); /* OPPO 2013-02-18 jizhengkang azx Add begin for reason */ selectedItem[selectedCount] = selindex - 1; selindex?selectedCount++:selectedCount--; /* OPPO 2013-02-18 jizhengkang azx Add end */ p->result = selindex; if (menu_item != NULL) free(menu_item); oppo_debug("end...p->result=%d\n", p->result); return p->result; }
char *get_out_map_file_name( char *s ) { long i; const long max_i = LOOP_MAX_1000; static char fname[FILE_NAME_MAX_LEN + 1]; static char num_s[10 + 1]; long y; ask_t ask; set_map_total( 0, 0, MAP_MAX_X, MAP_MAX_Y ); wipe_all(); /* デフォルトのファイル名を生成 */ for( i = 0; i < max_i; i++ ){ sn_printf( num_s, 10, STR_EXT_NAME_OUT_MAP, i ); str_nz_cpy( fname, dir_name_game, FILE_NAME_MAX_LEN ); str_max_n_cat( fname, STR_SLASH, FILE_NAME_MAX_LEN ); str_max_n_cat( fname, STR_DIR_NAME_OUT_MAP, FILE_NAME_MAX_LEN ); str_max_n_cat( fname, STR_SLASH, FILE_NAME_MAX_LEN ); str_max_n_cat( fname, STR_FILE_NAME_OUT_MAP, FILE_NAME_MAX_LEN ); str_max_n_cat( fname, num_s, FILE_NAME_MAX_LEN ); if( !chk_exist_file( fname ) ) break; } if( i >= max_i ) return NULL; y = 0; print_str( 0, y, MSG_OUT_MAP_FILE_1 ); y++; print_str( 0, y, MSG_OUT_MAP_FILE_2, fname ); y++; /* ファイル名を入力 */ str_nz_cpy( s, fname, FILE_NAME_MAX_LEN ); game_gets( -1, -1, MSG_OUT_MAP_FILE_1, s, FILE_NAME_MAX_LEN, TRUE ); if( s[0] == '\0' ){ str_nz_cpy( s, fname, FILE_NAME_MAX_LEN ); } else if( (s[0] == '/') || (s[0] == '~') ){ str_nz_cpy( fname, s, FILE_NAME_MAX_LEN ); } else { str_nz_cpy( fname, dir_name_game, FILE_NAME_MAX_LEN ); str_max_n_cat( fname, STR_SLASH, FILE_NAME_MAX_LEN ); str_max_n_cat( fname, STR_DIR_NAME_OUT_MAP, FILE_NAME_MAX_LEN ); str_max_n_cat( fname, STR_SLASH, FILE_NAME_MAX_LEN ); str_max_n_cat( fname, s, FILE_NAME_MAX_LEN ); str_nz_cpy( s, fname, FILE_NAME_MAX_LEN ); } print_str( 0, y, MSG_OUT_MAP_FILE_3, fname ); y++; /* 本当に出力するか確認をとる */ ask = exec_menu_ask( MSG_OUT_MAP_FILE_ASK_OK, ASK_NO, FALSE ); wipe_menu(); switch( ask ){ case ASK_YES: return s; case ASK_NO: case ASK_CANCEL: case ASK_ERR: break; } return NULL; }