40 #include "table/strings.h"
63 this->name_1 = name_1;
107 #ifdef ENABLE_NETWORK
114 _current_company = _local_company = new_company;
143 DrawSprite(SPR_COMPANY_ICON, COMPANY_SPRITE_COLOUR(c), x, y);
162 for (CompanyManagerFaceVariable cmfv = CMFV_CHEEKS; cmfv < CMFV_END; cmfv++) {
164 case CMFV_MOUSTACHE:
if (!has_moustache)
continue;
break;
166 case CMFV_NOSE:
if (has_moustache)
continue;
break;
167 case CMFV_TIE_EARRING:
if (!has_tie_earring)
continue;
break;
168 case CMFV_GLASSES:
if (!has_glasses)
continue;
break;
200 cost.
MakeError(STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY);
214 if (cost.
GetCost() == 0)
return;
268 FOR_ALL_COMPANIES(c) {
315 if (owner == _current_company)
return CommandCost();
334 if (owner == _current_company)
return CommandCost();
351 if (c->
name_1 != STR_SV_UNNAMED)
return;
358 if (t->
name == NULL &&
IsInsideMM(t->townnametype, SPECSTR_TOWNNAME_START, SPECSTR_TOWNNAME_LAST + 1)) {
359 str = t->townnametype - SPECSTR_TOWNNAME_START + SPECSTR_COMPANY_NAME_START;
360 strp = t->townnameparts;
365 FOR_ALL_COMPANIES(cc) {
366 if (cc->
name_1 == str && cc->
name_2 == strp)
goto bad_town_name;
369 GetString(buffer, str,
lastof(buffer));
381 SetDParam(0, STR_NEWS_COMPANY_LAUNCH_TITLE);
382 SetDParam(1, STR_NEWS_COMPANY_LAUNCH_DESCRIPTION);
392 str = SPECSTR_ANDCO_NAME;
396 str = SPECSTR_ANDCO_NAME;
403 static const byte
_colour_sort[COLOUR_END] = {2, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 2, 3, 1, 1, 1};
406 { COLOUR_BLUE, COLOUR_LIGHT_BLUE },
407 { COLOUR_GREEN, COLOUR_DARK_GREEN },
408 { INVALID_COLOUR, INVALID_COLOUR },
409 { COLOUR_ORANGE, INVALID_COLOUR },
410 { INVALID_COLOUR, INVALID_COLOUR },
411 { COLOUR_DARK_BLUE, COLOUR_BLUE },
412 { COLOUR_PALE_GREEN, COLOUR_DARK_GREEN },
413 { COLOUR_PALE_GREEN, COLOUR_GREEN },
414 { COLOUR_DARK_BLUE, COLOUR_LIGHT_BLUE },
415 { COLOUR_BROWN, COLOUR_ORANGE },
416 { COLOUR_PURPLE, INVALID_COLOUR },
417 { COLOUR_MAUVE, INVALID_COLOUR },
418 { COLOUR_YELLOW, COLOUR_CREAM },
419 { COLOUR_CREAM, INVALID_COLOUR },
420 { COLOUR_WHITE, INVALID_COLOUR },
421 { COLOUR_GREY, INVALID_COLOUR },
430 Colours colours[COLOUR_END];
433 for (uint i = 0; i < COLOUR_END; i++) colours[i] = (Colours)i;
436 for (uint i = 0; i < 100; i++) {
438 Swap(colours[
GB(r, 0, 4)], colours[
GB(r, 4, 4)]);
442 for (uint i = 0; i < COLOUR_END; i++) {
443 for (uint j = 1; j < COLOUR_END; j++) {
445 Swap(colours[j - 1], colours[j]);
452 FOR_ALL_COMPANIES(c) {
453 Colours pcolour = (Colours)c->
colour;
455 for (uint i = 0; i < COLOUR_END; i++) {
456 if (colours[i] == pcolour) {
457 colours[i] = INVALID_COLOUR;
462 for (uint j = 0; j < 2; j++) {
464 if (similar == INVALID_COLOUR)
break;
466 for (uint i = 1; i < COLOUR_END; i++) {
467 if (colours[i - 1] == similar)
Swap(colours[i - 1], colours[i]);
473 for (uint i = 0; i < COLOUR_END; i++) {
474 if (colours[i] != INVALID_COLOUR)
return colours[i];
495 GetString(buffer, STR_PRESIDENT_NAME,
lastof(buffer));
499 FOR_ALL_COMPANIES(cc) {
504 GetString(buffer2, STR_PRESIDENT_NAME,
lastof(buffer2));
505 if (strcmp(buffer2, buffer) == 0)
goto restart;
519 for (
LiveryScheme scheme = LS_BEGIN; scheme < LS_END; scheme++) {
520 c->livery[scheme].
in_use =
false;
542 c =
new Company(STR_SV_UNNAMED, is_ai);
545 c =
new (company)
Company(STR_SV_UNNAMED, is_ai);
591 #ifdef ENABLE_NETWORK
599 FOR_ALL_COMPANIES(c) {
667 int32 best_performance = -1;
670 FOR_ALL_COMPANIES(c2) {
673 best_performance < c2->old_economy[1].performance_history &&
681 if (best_performance == -1) {
699 if (_game_mode == GM_EDITOR)
return;
727 FOR_ALL_COMPANIES(c) {
776 #ifdef ENABLE_NETWORK
788 #ifdef ENABLE_NETWORK
811 #ifdef ENABLE_NETWORK
815 switch (
GB(p1, 0, 16)) {
820 #ifdef ENABLE_NETWORK
824 #ifndef DEBUG_DUMP_COMMANDS
871 #ifdef ENABLE_NETWORK
892 SetDParam(0, STR_NEWS_COMPANY_BANKRUPT_TITLE);
893 SetDParam(1, STR_NEWS_COMPANY_BANKRUPT_DESCRIPTION);
895 AddCompanyNewsItem(STR_MESSAGE_NEWS_FORMAT, cni);
956 Colours colour = Extract<Colours, 0, 4>(p2);
958 byte state =
GB(p1, 8, 2);
960 if (scheme >= LS_END || state >= 3 || colour == INVALID_COLOUR)
return CMD_ERROR;
965 if (scheme == LS_DEFAULT && state == 0) {
967 FOR_ALL_COMPANIES(cc) {
975 c->livery[scheme].
colour1 = colour;
979 if (scheme == LS_DEFAULT) {
987 c->livery[scheme].
colour2 = colour;
991 c->livery[scheme].
in_use = colour != 0;
1001 c->livery[LS_DEFAULT].
in_use =
true;
1007 c->livery[LS_DEFAULT].
in_use =
false;
1008 for (scheme = LS_DEFAULT; scheme < LS_END; scheme++) {
1009 if (c->livery[scheme].
in_use) {
1010 c->livery[LS_DEFAULT].
in_use =
true;
1019 ResetVehicleColourMap();
1054 FOR_ALL_COMPANIES(c) {
1055 if (c->
name != NULL && strcmp(c->
name, name) == 0)
return false;
1099 FOR_ALL_COMPANIES(c) {
1133 if (c->
name_1 == STR_SV_UNNAMED && c->
name == NULL) {
1158 default: NOT_REACHED();