379 InitNewsItemStructs(); |
379 InitNewsItemStructs(); |
380 DeleteWindowById(WC_NEWS_WINDOW, 0); |
380 DeleteWindowById(WC_NEWS_WINDOW, 0); |
381 } |
381 } |
382 |
382 |
383 // Show bankrupt news |
383 // Show bankrupt news |
384 SET_DPARAM16(0, p->name_1); |
384 SetDParam(0, p->name_1); |
385 SET_DPARAM32(1, p->name_2); |
385 SetDParam(1, p->name_2); |
386 AddNewsItem( (StringID)(owner + 16*3), NEWS_FLAGS(NM_CALLBACK, 0, NT_COMPANY_INFO, DNC_BANKRUPCY),0,0); |
386 AddNewsItem( (StringID)(owner + 16*3), NEWS_FLAGS(NM_CALLBACK, 0, NT_COMPANY_INFO, DNC_BANKRUPCY),0,0); |
387 |
387 |
388 if (IS_HUMAN_PLAYER(owner)) { |
388 if (IS_HUMAN_PLAYER(owner)) { |
389 p->bankrupt_asked = 255; |
389 p->bankrupt_asked = 255; |
390 p->bankrupt_timeout = 0x456; |
390 p->bankrupt_timeout = 0x456; |
404 |
404 |
405 p = DEREF_PLAYER(WP(w,news_d).ni->string_id & 15); |
405 p = DEREF_PLAYER(WP(w,news_d).ni->string_id & 15); |
406 DrawPlayerFace(p->face, p->player_color, 2, 23); |
406 DrawPlayerFace(p->face, p->player_color, 2, 23); |
407 GfxFillRect(3, 23, 3+91, 23+118, 0x4323); |
407 GfxFillRect(3, 23, 3+91, 23+118, 0x4323); |
408 |
408 |
409 SET_DPARAM16(0, p->president_name_1); |
409 SetDParam(0, p->president_name_1); |
410 SET_DPARAM32(1, p->president_name_2); |
410 SetDParam(1, p->president_name_2); |
411 |
411 |
412 DrawStringMultiCenter(49, 148, STR_7058_PRESIDENT, 94); |
412 DrawStringMultiCenter(49, 148, STR_7058_PRESIDENT, 94); |
413 |
413 |
414 switch(WP(w,news_d).ni->string_id >> 4) { |
414 switch(WP(w,news_d).ni->string_id >> 4) { |
415 case 1: |
415 case 1: |
416 DrawStringCentered(w->width>>1, 1, STR_7056_TRANSPORT_COMPANY_IN_TROUBLE, 0); |
416 DrawStringCentered(w->width>>1, 1, STR_7056_TRANSPORT_COMPANY_IN_TROUBLE, 0); |
417 |
417 |
418 SET_DPARAM16(0, p->name_1); |
418 SetDParam(0, p->name_1); |
419 SET_DPARAM32(1, p->name_2); |
419 SetDParam(1, p->name_2); |
420 |
420 |
421 DrawStringMultiCenter( |
421 DrawStringMultiCenter( |
422 ((w->width - 101) >> 1) + 98, |
422 ((w->width - 101) >> 1) + 98, |
423 90, |
423 90, |
424 STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED, |
424 STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED, |
428 case 2: { |
428 case 2: { |
429 int32 price; |
429 int32 price; |
430 |
430 |
431 DrawStringCentered(w->width>>1, 1, STR_7059_TRANSPORT_COMPANY_MERGER, 0); |
431 DrawStringCentered(w->width>>1, 1, STR_7059_TRANSPORT_COMPANY_MERGER, 0); |
432 COPY_IN_DPARAM(0,WP(w,news_d).ni->params, 2); |
432 COPY_IN_DPARAM(0,WP(w,news_d).ni->params, 2); |
433 SET_DPARAM16(2, p->name_1); |
433 SetDParam(2, p->name_1); |
434 SET_DPARAM32(3, p->name_2); |
434 SetDParam(3, p->name_2); |
435 price = WP(w,news_d).ni->params[2]; |
435 price = WP(w,news_d).ni->params[2]; |
436 SET_DPARAM32(4, price); |
436 SetDParam(4, price); |
437 DrawStringMultiCenter( |
437 DrawStringMultiCenter( |
438 ((w->width - 101) >> 1) + 98, |
438 ((w->width - 101) >> 1) + 98, |
439 90, |
439 90, |
440 price==0 ? STR_707F_HAS_BEEN_TAKEN_OVER_BY : STR_705A_HAS_BEEN_SOLD_TO_FOR, |
440 price==0 ? STR_707F_HAS_BEEN_TAKEN_OVER_BY : STR_705A_HAS_BEEN_SOLD_TO_FOR, |
441 w->width - 101); |
441 w->width - 101); |
452 w->width - 101); |
452 w->width - 101); |
453 break; |
453 break; |
454 |
454 |
455 case 4: |
455 case 4: |
456 DrawStringCentered(w->width>>1, 1, STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED, 0); |
456 DrawStringCentered(w->width>>1, 1, STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED, 0); |
457 SET_DPARAM16(0, p->name_1); |
457 SetDParam(0, p->name_1); |
458 SET_DPARAM32(1, p->name_2); |
458 SetDParam(1, p->name_2); |
459 COPY_IN_DPARAM(2,WP(w,news_d).ni->params, 2); |
459 COPY_IN_DPARAM(2,WP(w,news_d).ni->params, 2); |
460 DrawStringMultiCenter( |
460 DrawStringMultiCenter( |
461 ((w->width - 101) >> 1) + 98, |
461 ((w->width - 101) >> 1) + 98, |
462 90, |
462 90, |
463 STR_705F_STARTS_CONSTRUCTION_NEAR, |
463 STR_705F_STARTS_CONSTRUCTION_NEAR, |
473 { |
473 { |
474 Player *p = DEREF_PLAYER(ni->string_id & 0xF); |
474 Player *p = DEREF_PLAYER(ni->string_id & 0xF); |
475 |
475 |
476 switch(ni->string_id >> 4) { |
476 switch(ni->string_id >> 4) { |
477 case 1: |
477 case 1: |
478 SET_DPARAM16(0, STR_7056_TRANSPORT_COMPANY_IN_TROUBLE); |
478 SetDParam(0, STR_7056_TRANSPORT_COMPANY_IN_TROUBLE); |
479 SET_DPARAM16(1, STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED); |
479 SetDParam(1, STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED); |
480 SET_DPARAM16(2, p->name_1); |
480 SetDParam(2, p->name_1); |
481 SET_DPARAM32(3, p->name_2); |
481 SetDParam(3, p->name_2); |
482 return STR_02B6; |
482 return STR_02B6; |
483 case 2: |
483 case 2: |
484 SET_DPARAM16(0, STR_7059_TRANSPORT_COMPANY_MERGER); |
484 SetDParam(0, STR_7059_TRANSPORT_COMPANY_MERGER); |
485 SET_DPARAM16(1, STR_705A_HAS_BEEN_SOLD_TO_FOR); |
485 SetDParam(1, STR_705A_HAS_BEEN_SOLD_TO_FOR); |
486 COPY_IN_DPARAM(2,ni->params, 2); |
486 COPY_IN_DPARAM(2,ni->params, 2); |
487 SET_DPARAM16(4, p->name_1); |
487 SetDParam(4, p->name_1); |
488 SET_DPARAM32(5, p->name_2); |
488 SetDParam(5, p->name_2); |
489 COPY_IN_DPARAM(6,ni->params + 2, 1); |
489 COPY_IN_DPARAM(6,ni->params + 2, 1); |
490 return STR_02B6; |
490 return STR_02B6; |
491 case 3: |
491 case 3: |
492 SET_DPARAM16(0, STR_705C_BANKRUPT); |
492 SetDParam(0, STR_705C_BANKRUPT); |
493 SET_DPARAM16(1, STR_705D_HAS_BEEN_CLOSED_DOWN_BY); |
493 SetDParam(1, STR_705D_HAS_BEEN_CLOSED_DOWN_BY); |
494 COPY_IN_DPARAM(2,ni->params, 2); |
494 COPY_IN_DPARAM(2,ni->params, 2); |
495 return STR_02B6; |
495 return STR_02B6; |
496 case 4: |
496 case 4: |
497 SET_DPARAM16(0, STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED); |
497 SetDParam(0, STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED); |
498 SET_DPARAM16(1, STR_705F_STARTS_CONSTRUCTION_NEAR); |
498 SetDParam(1, STR_705F_STARTS_CONSTRUCTION_NEAR); |
499 SET_DPARAM16(2, p->name_1); |
499 SetDParam(2, p->name_1); |
500 SET_DPARAM32(3, p->name_2); |
500 SetDParam(3, p->name_2); |
501 COPY_IN_DPARAM(4,ni->params, 2); |
501 COPY_IN_DPARAM(4,ni->params, 2); |
502 return STR_02B6; |
502 return STR_02B6; |
503 default: |
503 default: |
504 NOT_REACHED(); |
504 NOT_REACHED(); |
505 } |
505 } |
714 Town *t; |
714 Town *t; |
715 Station *st; |
715 Station *st; |
716 Pair tp; |
716 Pair tp; |
717 |
717 |
718 /* if mode is false, convert into plural */ |
718 /* if mode is false, convert into plural */ |
719 SET_DPARAM16(0, _cargoc.names_s[s->cargo_type] + (mode?0:32)); |
719 SetDParam(0, _cargoc.names_s[s->cargo_type] + (mode?0:32)); |
720 |
720 |
721 if (s->age < 12) { |
721 if (s->age < 12) { |
722 if (!(s->cargo_type == CT_PASSENGERS || s->cargo_type == CT_MAIL)) { |
722 if (!(s->cargo_type == CT_PASSENGERS || s->cargo_type == CT_MAIL)) { |
723 SET_DPARAM16(1, STR_2029); |
723 SetDParam(1, STR_2029); |
724 i = DEREF_INDUSTRY(s->from); |
724 i = DEREF_INDUSTRY(s->from); |
725 tile = i->xy; |
725 tile = i->xy; |
726 SET_DPARAM16(2, i->town->townnametype); |
726 SetDParam(2, i->town->townnametype); |
727 SET_DPARAM32(3, i->town->townnameparts); |
727 SetDParam(3, i->town->townnameparts); |
728 |
728 |
729 SET_DPARAM16(4, i->type + STR_4802_COAL_MINE); |
729 SetDParam(4, i->type + STR_4802_COAL_MINE); |
730 |
730 |
731 if (s->cargo_type != CT_GOODS && s->cargo_type != CT_FOOD) { |
731 if (s->cargo_type != CT_GOODS && s->cargo_type != CT_FOOD) { |
732 SET_DPARAM16(5, STR_2029); |
732 SetDParam(5, STR_2029); |
733 i = DEREF_INDUSTRY(s->to); |
733 i = DEREF_INDUSTRY(s->to); |
734 tile2 = i->xy; |
734 tile2 = i->xy; |
735 SET_DPARAM16(8, i->type + STR_4802_COAL_MINE); |
735 SetDParam(8, i->type + STR_4802_COAL_MINE); |
736 SET_DPARAM16(6, i->town->townnametype); |
736 SetDParam(6, i->town->townnametype); |
737 SET_DPARAM32(7, i->town->townnameparts); |
737 SetDParam(7, i->town->townnameparts); |
738 } else { |
738 } else { |
739 t = DEREF_TOWN(s->to); |
739 t = DEREF_TOWN(s->to); |
740 tile2 = t->xy; |
740 tile2 = t->xy; |
741 SET_DPARAM16(5, t->townnametype); |
741 SetDParam(5, t->townnametype); |
742 SET_DPARAM32(6, t->townnameparts); |
742 SetDParam(6, t->townnameparts); |
743 } |
743 } |
744 } else { |
744 } else { |
745 t = DEREF_TOWN(s->from); |
745 t = DEREF_TOWN(s->from); |
746 tile = t->xy; |
746 tile = t->xy; |
747 SET_DPARAM16(1, t->townnametype); |
747 SetDParam(1, t->townnametype); |
748 SET_DPARAM32(2, t->townnameparts); |
748 SetDParam(2, t->townnameparts); |
749 |
749 |
750 t = DEREF_TOWN(s->to); |
750 t = DEREF_TOWN(s->to); |
751 tile2 = t->xy; |
751 tile2 = t->xy; |
752 SET_DPARAM16(3, t->townnametype); |
752 SetDParam(3, t->townnametype); |
753 SET_DPARAM32(4, t->townnameparts); |
753 SetDParam(4, t->townnameparts); |
754 } |
754 } |
755 } else { |
755 } else { |
756 st = DEREF_STATION(s->from); |
756 st = DEREF_STATION(s->from); |
757 tile = st->xy; |
757 tile = st->xy; |
758 SET_DPARAM16(1, st->index); |
758 SetDParam(1, st->index); |
759 |
759 |
760 st = DEREF_STATION(s->to); |
760 st = DEREF_STATION(s->to); |
761 tile2 = st->xy; |
761 tile2 = st->xy; |
762 SET_DPARAM16(2, st->index); |
762 SetDParam(2, st->index); |
763 } |
763 } |
764 |
764 |
765 tp.a = tile; |
765 tp.a = tile; |
766 tp.b = tile2; |
766 tp.b = tile2; |
767 |
767 |
1116 /* Add a news item */ |
1116 /* Add a news item */ |
1117 pair = SetupSubsidyDecodeParam(s, 0); |
1117 pair = SetupSubsidyDecodeParam(s, 0); |
1118 INJECT_DPARAM(2); |
1118 INJECT_DPARAM(2); |
1119 |
1119 |
1120 p = DEREF_PLAYER(_current_player); |
1120 p = DEREF_PLAYER(_current_player); |
1121 SET_DPARAM16(0, p->name_1); |
1121 SetDParam(0, p->name_1); |
1122 SET_DPARAM32(1, p->name_2); |
1122 SetDParam(1, p->name_2); |
1123 AddNewsItem( |
1123 AddNewsItem( |
1124 STR_2031_SERVICE_SUBSIDY_AWARDED + _opt.diff.subsidy_multiplier, |
1124 STR_2031_SERVICE_SUBSIDY_AWARDED + _opt.diff.subsidy_multiplier, |
1125 NEWS_FLAGS(NM_NORMAL, NF_TILE, NT_SUBSIDIES, 0), |
1125 NEWS_FLAGS(NM_NORMAL, NF_TILE, NT_SUBSIDIES, 0), |
1126 pair.a, pair.b); |
1126 pair.a, pair.b); |
1127 |
1127 |
1414 { |
1414 { |
1415 Player *owner; |
1415 Player *owner; |
1416 int i,pi; |
1416 int i,pi; |
1417 int64 value; |
1417 int64 value; |
1418 |
1418 |
1419 SET_DPARAM16(0, p->name_1); |
1419 SetDParam(0, p->name_1); |
1420 SET_DPARAM32(1, p->name_2); |
1420 SetDParam(1, p->name_2); |
1421 SET_DPARAM32(2, p->bankrupt_value); |
1421 SetDParam(2, p->bankrupt_value); |
1422 AddNewsItem( (StringID)(_current_player + 16*2), NEWS_FLAGS(NM_CALLBACK, 0, NT_COMPANY_INFO, DNC_BANKRUPCY),0,0); |
1422 AddNewsItem( (StringID)(_current_player + 16*2), NEWS_FLAGS(NM_CALLBACK, 0, NT_COMPANY_INFO, DNC_BANKRUPCY),0,0); |
1423 |
1423 |
1424 // original code does this a little bit differently |
1424 // original code does this a little bit differently |
1425 pi = p->index; |
1425 pi = p->index; |
1426 ChangeOwnershipOfPlayerItems(pi, _current_player); |
1426 ChangeOwnershipOfPlayerItems(pi, _current_player); |