src/genworld_gui.cpp
changeset 9116 f2491d3c321b
parent 9115 47ae980bace3
child 9126 5648d696456b
equal deleted inserted replaced
9115:47ae980bace3 9116:f2491d3c321b
   370 
   370 
   371 				case GLAND_RANDOM_BUTTON: // Random seed
   371 				case GLAND_RANDOM_BUTTON: // Random seed
   372 					_patches_newgame.generation_seed = InteractiveRandom();
   372 					_patches_newgame.generation_seed = InteractiveRandom();
   373 					snprintf(_genseed_buffer, lengthof(_genseed_buffer), "%u", _patches_newgame.generation_seed);
   373 					snprintf(_genseed_buffer, lengthof(_genseed_buffer), "%u", _patches_newgame.generation_seed);
   374 					UpdateTextBufferSize(&_genseed_query.text);
   374 					UpdateTextBufferSize(&_genseed_query.text);
   375 					SetWindowDirty(w);
   375 					w->SetDirty();
   376 					break;
   376 					break;
   377 
   377 
   378 				case GLAND_RANDOM_EDITBOX: // edit box for random seed
   378 				case GLAND_RANDOM_EDITBOX: // edit box for random seed
   379 					ShowOnScreenKeyboard(w, & _genseed_query, GLAND_RANDOM_EDITBOX, 0, 0);
   379 					ShowOnScreenKeyboard(w, & _genseed_query, GLAND_RANDOM_EDITBOX, 0, 0);
   380 					break;
   380 					break;
   406 				case GLAND_START_DATE_DOWN:
   406 				case GLAND_START_DATE_DOWN:
   407 				case GLAND_START_DATE_UP: // Year buttons
   407 				case GLAND_START_DATE_UP: // Year buttons
   408 					/* Don't allow too fast scrolling */
   408 					/* Don't allow too fast scrolling */
   409 					if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
   409 					if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
   410 						w->HandleButtonClick(e->we.click.widget);
   410 						w->HandleButtonClick(e->we.click.widget);
   411 						SetWindowDirty(w);
   411 						w->SetDirty();
   412 
   412 
   413 						_patches_newgame.starting_year = Clamp(_patches_newgame.starting_year + e->we.click.widget - GLAND_START_DATE_TEXT, MIN_YEAR, MAX_YEAR);
   413 						_patches_newgame.starting_year = Clamp(_patches_newgame.starting_year + e->we.click.widget - GLAND_START_DATE_TEXT, MIN_YEAR, MAX_YEAR);
   414 					}
   414 					}
   415 					_left_button_clicked = false;
   415 					_left_button_clicked = false;
   416 					break;
   416 					break;
   424 				case GLAND_SNOW_LEVEL_DOWN:
   424 				case GLAND_SNOW_LEVEL_DOWN:
   425 				case GLAND_SNOW_LEVEL_UP: // Snow line buttons
   425 				case GLAND_SNOW_LEVEL_UP: // Snow line buttons
   426 					/* Don't allow too fast scrolling */
   426 					/* Don't allow too fast scrolling */
   427 					if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
   427 					if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
   428 						w->HandleButtonClick(e->we.click.widget);
   428 						w->HandleButtonClick(e->we.click.widget);
   429 						SetWindowDirty(w);
   429 						w->SetDirty();
   430 
   430 
   431 						_patches_newgame.snow_line_height = Clamp(_patches_newgame.snow_line_height + e->we.click.widget - GLAND_SNOW_LEVEL_TEXT, 2, MAX_SNOWLINE_HEIGHT);
   431 						_patches_newgame.snow_line_height = Clamp(_patches_newgame.snow_line_height + e->we.click.widget - GLAND_SNOW_LEVEL_TEXT, 2, MAX_SNOWLINE_HEIGHT);
   432 					}
   432 					}
   433 					_left_button_clicked = false;
   433 					_left_button_clicked = false;
   434 					break;
   434 					break;
   518 					_opt_newgame.diff.quantity_sea_lakes = e->we.dropdown.index;
   518 					_opt_newgame.diff.quantity_sea_lakes = e->we.dropdown.index;
   519 					if (_opt_newgame.diff_level != 3) ShowErrorMessage(INVALID_STRING_ID, STR_DIFFICULTY_TO_CUSTOM, 0, 0);
   519 					if (_opt_newgame.diff_level != 3) ShowErrorMessage(INVALID_STRING_ID, STR_DIFFICULTY_TO_CUSTOM, 0, 0);
   520 					DoCommandP(0, 13, _opt_newgame.diff.quantity_sea_lakes, NULL, CMD_CHANGE_DIFFICULTY_LEVEL);
   520 					DoCommandP(0, 13, _opt_newgame.diff.quantity_sea_lakes, NULL, CMD_CHANGE_DIFFICULTY_LEVEL);
   521 					break;
   521 					break;
   522 			}
   522 			}
   523 			SetWindowDirty(w);
   523 			w->SetDirty();
   524 			break;
   524 			break;
   525 
   525 
   526 		case WE_ON_EDIT_TEXT:
   526 		case WE_ON_EDIT_TEXT:
   527 			if (e->we.edittext.str != NULL) {
   527 			if (e->we.edittext.str != NULL) {
   528 				int32 value = atoi(e->we.edittext.str);
   528 				int32 value = atoi(e->we.edittext.str);
   537 						w->InvalidateWidget(GLAND_SNOW_LEVEL_TEXT);
   537 						w->InvalidateWidget(GLAND_SNOW_LEVEL_TEXT);
   538 						_patches_newgame.snow_line_height = Clamp(value, 2, MAX_SNOWLINE_HEIGHT);
   538 						_patches_newgame.snow_line_height = Clamp(value, 2, MAX_SNOWLINE_HEIGHT);
   539 						break;
   539 						break;
   540 				}
   540 				}
   541 
   541 
   542 				SetWindowDirty(w);
   542 				w->SetDirty();
   543 			}
   543 			}
   544 			break;
   544 			break;
   545 	}
   545 	}
   546 }
   546 }
   547 
   547 
   695 				case CSCEN_START_DATE_DOWN:
   695 				case CSCEN_START_DATE_DOWN:
   696 				case CSCEN_START_DATE_UP: // Year buttons
   696 				case CSCEN_START_DATE_UP: // Year buttons
   697 					/* Don't allow too fast scrolling */
   697 					/* Don't allow too fast scrolling */
   698 					if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
   698 					if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
   699 						w->HandleButtonClick(e->we.click.widget);
   699 						w->HandleButtonClick(e->we.click.widget);
   700 						SetWindowDirty(w);
   700 						w->SetDirty();
   701 
   701 
   702 						_patches_newgame.starting_year = Clamp(_patches_newgame.starting_year + e->we.click.widget - CSCEN_START_DATE_TEXT, MIN_YEAR, MAX_YEAR);
   702 						_patches_newgame.starting_year = Clamp(_patches_newgame.starting_year + e->we.click.widget - CSCEN_START_DATE_TEXT, MIN_YEAR, MAX_YEAR);
   703 					}
   703 					}
   704 					_left_button_clicked = false;
   704 					_left_button_clicked = false;
   705 					break;
   705 					break;
   713 				case CSCEN_FLAT_LAND_HEIGHT_DOWN:
   713 				case CSCEN_FLAT_LAND_HEIGHT_DOWN:
   714 				case CSCEN_FLAT_LAND_HEIGHT_UP: // Height level buttons
   714 				case CSCEN_FLAT_LAND_HEIGHT_UP: // Height level buttons
   715 					/* Don't allow too fast scrolling */
   715 					/* Don't allow too fast scrolling */
   716 					if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
   716 					if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
   717 						w->HandleButtonClick(e->we.click.widget);
   717 						w->HandleButtonClick(e->we.click.widget);
   718 						SetWindowDirty(w);
   718 						w->SetDirty();
   719 
   719 
   720 						_patches_newgame.se_flat_world_height = Clamp(_patches_newgame.se_flat_world_height + e->we.click.widget - CSCEN_FLAT_LAND_HEIGHT_TEXT, 0, MAX_TILE_HEIGHT);
   720 						_patches_newgame.se_flat_world_height = Clamp(_patches_newgame.se_flat_world_height + e->we.click.widget - CSCEN_FLAT_LAND_HEIGHT_TEXT, 0, MAX_TILE_HEIGHT);
   721 					}
   721 					}
   722 					_left_button_clicked = false;
   722 					_left_button_clicked = false;
   723 					break;
   723 					break;
   733 		case WE_DROPDOWN_SELECT:
   733 		case WE_DROPDOWN_SELECT:
   734 			switch (e->we.dropdown.button) {
   734 			switch (e->we.dropdown.button) {
   735 				case CSCEN_MAPSIZE_X_PULLDOWN: _patches_newgame.map_x = e->we.dropdown.index; break;
   735 				case CSCEN_MAPSIZE_X_PULLDOWN: _patches_newgame.map_x = e->we.dropdown.index; break;
   736 				case CSCEN_MAPSIZE_Y_PULLDOWN: _patches_newgame.map_y = e->we.dropdown.index; break;
   736 				case CSCEN_MAPSIZE_Y_PULLDOWN: _patches_newgame.map_y = e->we.dropdown.index; break;
   737 			}
   737 			}
   738 			SetWindowDirty(w);
   738 			w->SetDirty();
   739 			break;
   739 			break;
   740 
   740 
   741 		case WE_ON_EDIT_TEXT:
   741 		case WE_ON_EDIT_TEXT:
   742 			if (e->we.edittext.str != NULL) {
   742 			if (e->we.edittext.str != NULL) {
   743 				int32 value = atoi(e->we.edittext.str);
   743 				int32 value = atoi(e->we.edittext.str);
   752 						w->InvalidateWidget(CSCEN_FLAT_LAND_HEIGHT_TEXT);
   752 						w->InvalidateWidget(CSCEN_FLAT_LAND_HEIGHT_TEXT);
   753 						_patches_newgame.se_flat_world_height = Clamp(value, 0, MAX_TILE_HEIGHT);
   753 						_patches_newgame.se_flat_world_height = Clamp(value, 0, MAX_TILE_HEIGHT);
   754 						break;
   754 						break;
   755 				}
   755 				}
   756 
   756 
   757 				SetWindowDirty(w);
   757 				w->SetDirty();
   758 			}
   758 			}
   759 			break;
   759 			break;
   760 	}
   760 	}
   761 }
   761 }
   762 
   762 
   863 			/* And say where we are in that class */
   863 			/* And say where we are in that class */
   864 			SetDParam(0, _tp.current);
   864 			SetDParam(0, _tp.current);
   865 			SetDParam(1, _tp.total);
   865 			SetDParam(1, _tp.total);
   866 			DrawStringCentered(90, 58, STR_GENERATION_PROGRESS, TC_FROMSTRING);
   866 			DrawStringCentered(90, 58, STR_GENERATION_PROGRESS, TC_FROMSTRING);
   867 
   867 
   868 			SetWindowDirty(w);
   868 			w->SetDirty();
   869 			break;
   869 			break;
   870 	}
   870 	}
   871 }
   871 }
   872 
   872 
   873 static const WindowDesc _show_terrain_progress_desc = {
   873 static const WindowDesc _show_terrain_progress_desc = {