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 |