misc_gui.c
changeset 402 457f7c7022e3
parent 390 c67581486cde
child 410 0efd84450b01
equal deleted inserted replaced
401:4153ead8f31e 402:457f7c7022e3
  1008 	}
  1008 	}
  1009 
  1009 
  1010 	s_amount = _fios_num - sort_start - sort_end;
  1010 	s_amount = _fios_num - sort_start - sort_end;
  1011 	if ((bool)s_amount)
  1011 	if ((bool)s_amount)
  1012 		qsort(_fios_list + sort_start, s_amount, sizeof(FiosItem), compare_FiosItems);
  1012 		qsort(_fios_list + sort_start, s_amount, sizeof(FiosItem), compare_FiosItems);
       
  1013 }
       
  1014 
       
  1015 static void GenerateFileName(void)
       
  1016 {
       
  1017 	const Player *p = DEREF_PLAYER(_local_player);
       
  1018 	SET_DPARAM16(0, p->name_1);
       
  1019 	SET_DPARAM32(1, p->name_2);
       
  1020 	SET_DPARAM16(2, _date);
       
  1021 	GetString(_edit_str_buf, STR_4004);
  1013 }
  1022 }
  1014 
  1023 
  1015 static void SaveLoadDlgWndProc(Window *w, WindowEvent *e)
  1024 static void SaveLoadDlgWndProc(Window *w, WindowEvent *e)
  1016 {
  1025 {
  1017 	const int list_start = 51;
  1026 	const int list_start = 51;
  1113 	case WE_TIMEOUT:
  1122 	case WE_TIMEOUT:
  1114 		if (HASBIT(w->click_state, 10)) { /* Delete button clicked */
  1123 		if (HASBIT(w->click_state, 10)) { /* Delete button clicked */
  1115 			FiosDelete(WP(w,querystr_d).buf);
  1124 			FiosDelete(WP(w,querystr_d).buf);
  1116 			SetWindowDirty(w);
  1125 			SetWindowDirty(w);
  1117 			BuildFileList();
  1126 			BuildFileList();
       
  1127 			if (_saveload_mode == SLD_SAVE_GAME)
       
  1128 				GenerateFileName(); /* Reset file name to current date */
  1118 		} else if (HASBIT(w->click_state, 11)) { /* Save button clicked */
  1129 		} else if (HASBIT(w->click_state, 11)) { /* Save button clicked */
  1119 			_switch_mode = SM_SAVE;
  1130 			_switch_mode = SM_SAVE;
  1120 			FiosMakeSavegameName(_file_to_saveload.name, WP(w,querystr_d).buf);
  1131 			FiosMakeSavegameName(_file_to_saveload.name, WP(w,querystr_d).buf);
  1121 		}
  1132 		}
  1122 		break;
  1133 		break;
  1186 	WP(w,querystr_d).maxlen = MAX_QUERYSTR_LEN;
  1197 	WP(w,querystr_d).maxlen = MAX_QUERYSTR_LEN;
  1187 	WP(w,querystr_d).maxwidth = 240;
  1198 	WP(w,querystr_d).maxwidth = 240;
  1188 	WP(w,querystr_d).buf = _edit_str_buf;
  1199 	WP(w,querystr_d).buf = _edit_str_buf;
  1189 
  1200 
  1190 	if (mode == SLD_SAVE_GAME) {
  1201 	if (mode == SLD_SAVE_GAME) {
  1191 		Player *p = &_players[_local_player];
  1202 		GenerateFileName();
  1192 		SET_DPARAM16(0, p->name_1);
       
  1193 		SET_DPARAM32(1, p->name_2);
       
  1194 		SET_DPARAM16(2, _date);
       
  1195 		GetString(_edit_str_buf, STR_4004);
       
  1196 	} else if (mode == SLD_SAVE_SCENARIO) {
  1203 	} else if (mode == SLD_SAVE_SCENARIO) {
  1197 		strcpy(_edit_str_buf, "UNNAMED");
  1204 		strcpy(_edit_str_buf, "UNNAMED");
  1198 	}
  1205 	}
  1199 
  1206 
  1200 	// pause is only used in single-player, non-editor mode
  1207 	// pause is only used in single-player, non-editor mode