src/cheat_gui.cpp
changeset 10207 c291a21b304e
parent 10180 a99cf854c6d0
child 10208 72c00af5c95d
equal deleted inserted replaced
10206:0050610c0368 10207:c291a21b304e
    37 	DoCommandP(0, (uint32)(p2 * _money_cheat_amount), 0, NULL, CMD_MONEY_CHEAT);
    37 	DoCommandP(0, (uint32)(p2 * _money_cheat_amount), 0, NULL, CMD_MONEY_CHEAT);
    38 	return _money_cheat_amount;
    38 	return _money_cheat_amount;
    39 }
    39 }
    40 
    40 
    41 /**
    41 /**
    42  * @param p1 player to set to
    42  * @param p1 company to set to
    43  * @param p2 is -1 or +1 (down/up)
    43  * @param p2 is -1 or +1 (down/up)
    44  */
    44  */
    45 static int32 ClickChangePlayerCheat(int32 p1, int32 p2)
    45 static int32 ClickChangeCompanyCheat(int32 p1, int32 p2)
    46 {
    46 {
    47 	while ((uint)p1 < GetPlayerPoolSize()) {
    47 	while ((uint)p1 < GetCompanyPoolSize()) {
    48 		if (IsValidPlayerID((PlayerID)p1)) {
    48 		if (IsValidCompanyID((CompanyID)p1)) {
    49 			SetLocalPlayer((PlayerID)p1);
    49 			SetLocalCompany((CompanyID)p1);
    50 
    50 
    51 			MarkWholeScreenDirty();
    51 			MarkWholeScreenDirty();
    52 			return _local_player;
    52 			return _local_company;
    53 		}
    53 		}
    54 		p1 += p2;
    54 		p1 += p2;
    55 	}
    55 	}
    56 
    56 
    57 	return _local_player;
    57 	return _local_company;
    58 }
    58 }
    59 
    59 
    60 /**
    60 /**
    61  * @param p1 -1 or +1 (down/up)
    61  * @param p1 -1 or +1 (down/up)
    62  * @param p2 unused
    62  * @param p2 unused
   104 	bool *been_used;       ///< has this cheat been used before?
   104 	bool *been_used;       ///< has this cheat been used before?
   105 	CheckButtonClick *proc;///< procedure
   105 	CheckButtonClick *proc;///< procedure
   106 };
   106 };
   107 
   107 
   108 static const CheatEntry _cheats_ui[] = {
   108 static const CheatEntry _cheats_ui[] = {
   109 	{SLE_INT32, STR_CHEAT_MONEY,           &_money_cheat_amount,               &_cheats.money.been_used,            &ClickMoneyCheat        },
   109 	{SLE_INT32, STR_CHEAT_MONEY,           &_money_cheat_amount,                    &_cheats.money.been_used,            &ClickMoneyCheat         },
   110 	{SLE_UINT8, STR_CHEAT_CHANGE_PLAYER,   &_local_player,                     &_cheats.switch_player.been_used,    &ClickChangePlayerCheat },
   110 	{SLE_UINT8, STR_CHEAT_CHANGE_PLAYER,   &_local_company,                         &_cheats.switch_company.been_used,   &ClickChangeCompanyCheat },
   111 	{SLE_BOOL,  STR_CHEAT_EXTRA_DYNAMITE,  &_cheats.magic_bulldozer.value,     &_cheats.magic_bulldozer.been_used,  NULL                    },
   111 	{SLE_BOOL,  STR_CHEAT_EXTRA_DYNAMITE,  &_cheats.magic_bulldozer.value,          &_cheats.magic_bulldozer.been_used,  NULL                     },
   112 	{SLE_BOOL,  STR_CHEAT_CROSSINGTUNNELS, &_cheats.crossing_tunnels.value,    &_cheats.crossing_tunnels.been_used, NULL                    },
   112 	{SLE_BOOL,  STR_CHEAT_CROSSINGTUNNELS, &_cheats.crossing_tunnels.value,         &_cheats.crossing_tunnels.been_used, NULL                     },
   113 	{SLE_BOOL,  STR_CHEAT_BUILD_IN_PAUSE,  &_cheats.build_in_pause.value,      &_cheats.build_in_pause.been_used,   NULL                    },
   113 	{SLE_BOOL,  STR_CHEAT_BUILD_IN_PAUSE,  &_cheats.build_in_pause.value,           &_cheats.build_in_pause.been_used,   NULL                     },
   114 	{SLE_BOOL,  STR_CHEAT_NO_JETCRASH,     &_cheats.no_jetcrash.value,         &_cheats.no_jetcrash.been_used,      NULL                    },
   114 	{SLE_BOOL,  STR_CHEAT_NO_JETCRASH,     &_cheats.no_jetcrash.value,              &_cheats.no_jetcrash.been_used,      NULL                     },
   115 	{SLE_BOOL,  STR_CHEAT_SETUP_PROD,      &_cheats.setup_prod.value,          &_cheats.setup_prod.been_used,       NULL                    },
   115 	{SLE_BOOL,  STR_CHEAT_SETUP_PROD,      &_cheats.setup_prod.value,               &_cheats.setup_prod.been_used,       NULL                     },
   116 	{SLE_UINT8, STR_CHEAT_SWITCH_CLIMATE,  &_settings_game.game_creation.landscape, &_cheats.switch_climate.been_used,   &ClickChangeClimateCheat},
   116 	{SLE_UINT8, STR_CHEAT_SWITCH_CLIMATE,  &_settings_game.game_creation.landscape, &_cheats.switch_climate.been_used,   &ClickChangeClimateCheat },
   117 	{SLE_INT32, STR_CHEAT_CHANGE_DATE,     &_cur_year,                         &_cheats.change_date.been_used,      &ClickChangeDateCheat   },
   117 	{SLE_INT32, STR_CHEAT_CHANGE_DATE,     &_cur_year,                              &_cheats.change_date.been_used,      &ClickChangeDateCheat    },
   118 };
   118 };
   119 
   119 
   120 
   120 
   121 static const Widget _cheat_widgets[] = {
   121 static const Widget _cheat_widgets[] = {
   122 {   WWT_CLOSEBOX,   RESIZE_NONE,  COLOUR_GREY,     0,    10,     0,    13, STR_00C5,   STR_018B_CLOSE_WINDOW},
   122 {   WWT_CLOSEBOX,   RESIZE_NONE,  COLOUR_GREY,     0,    10,     0,    13, STR_00C5,   STR_018B_CLOSE_WINDOW},
   161 
   161 
   162 					switch (ce->str) {
   162 					switch (ce->str) {
   163 						/* Display date for change date cheat */
   163 						/* Display date for change date cheat */
   164 						case STR_CHEAT_CHANGE_DATE: SetDParam(0, _date); break;
   164 						case STR_CHEAT_CHANGE_DATE: SetDParam(0, _date); break;
   165 
   165 
   166 						/* Draw colored flag for change player cheat */
   166 						/* Draw colored flag for change company cheat */
   167 						case STR_CHEAT_CHANGE_PLAYER:
   167 						case STR_CHEAT_CHANGE_PLAYER:
   168 							SetDParam(0, val);
   168 							SetDParam(0, val);
   169 							GetString(buf, STR_CHEAT_CHANGE_PLAYER, lastof(buf));
   169 							GetString(buf, STR_CHEAT_CHANGE_PLAYER, lastof(buf));
   170 							DrawPlayerIcon(_current_player, 60 + GetStringBoundingBox(buf).width, y + 2);
   170 							DrawCompanyIcon(_current_company, 60 + GetStringBoundingBox(buf).width, y + 2);
   171 							break;
   171 							break;
   172 
   172 
   173 						/* Set correct string for switch climate cheat */
   173 						/* Set correct string for switch climate cheat */
   174 						case STR_CHEAT_SWITCH_CLIMATE: val += STR_TEMPERATE_LANDSCAPE;
   174 						case STR_CHEAT_SWITCH_CLIMATE: val += STR_TEMPERATE_LANDSCAPE;
   175 
   175