equal
deleted
inserted
replaced
582 |
582 |
583 /* useless, but avoids compiler warning this way */ |
583 /* useless, but avoids compiler warning this way */ |
584 return 0; |
584 return 0; |
585 } |
585 } |
586 |
586 |
587 static void PlayersGenStatistics() |
587 static void PlayersGenStatistics(void) |
588 { |
588 { |
589 Station *st; |
589 Station *st; |
590 Player *p; |
590 Player *p; |
591 |
591 |
592 FOR_ALL_STATIONS(st) { |
592 FOR_ALL_STATIONS(st) { |
631 tmp = BIGMULS(*value, amt); |
631 tmp = BIGMULS(*value, amt); |
632 *frac = (uint16)(low = (uint16)tmp + *frac); |
632 *frac = (uint16)(low = (uint16)tmp + *frac); |
633 *value += (int32)(tmp >> 16) + (low >> 16); |
633 *value += (int32)(tmp >> 16) + (low >> 16); |
634 } |
634 } |
635 |
635 |
636 static void AddInflation() |
636 static void AddInflation(void) |
637 { |
637 { |
638 int i; |
638 int i; |
639 int32 inf = _economy.infl_amount * 54; |
639 int32 inf = _economy.infl_amount * 54; |
640 |
640 |
641 for(i=0; i!=NUM_PRICES; i++) { |
641 for(i=0; i!=NUM_PRICES; i++) { |
659 InvalidateWindowClasses(WC_BUILD_VEHICLE); |
659 InvalidateWindowClasses(WC_BUILD_VEHICLE); |
660 InvalidateWindowClasses(WC_VEHICLE_DETAILS); |
660 InvalidateWindowClasses(WC_VEHICLE_DETAILS); |
661 InvalidateWindow(WC_PAYMENT_RATES, 0); |
661 InvalidateWindow(WC_PAYMENT_RATES, 0); |
662 } |
662 } |
663 |
663 |
664 static void PlayersPayInterest() |
664 static void PlayersPayInterest(void) |
665 { |
665 { |
666 Player *p; |
666 Player *p; |
667 int interest = _economy.interest_rate * 54; |
667 int interest = _economy.interest_rate * 54; |
668 |
668 |
669 FOR_ALL_PLAYERS(p) { |
669 FOR_ALL_PLAYERS(p) { |
678 SET_EXPENSES_TYPE(EXPENSES_OTHER); |
678 SET_EXPENSES_TYPE(EXPENSES_OTHER); |
679 SubtractMoneyFromPlayer(_price.station_value >> 2); |
679 SubtractMoneyFromPlayer(_price.station_value >> 2); |
680 } |
680 } |
681 } |
681 } |
682 |
682 |
683 static void HandleEconomyFluctuations() |
683 static void HandleEconomyFluctuations(void) |
684 { |
684 { |
685 if (_opt.diff.economy == 0) |
685 if (_opt.diff.economy == 0) |
686 return; |
686 return; |
687 |
687 |
688 if (--_economy.fluct == 0) { |
688 if (--_economy.fluct == 0) { |
754 1600, // roadveh_running |
754 1600, // roadveh_running |
755 5600, // ship_running |
755 5600, // ship_running |
756 1000000, // build_industry |
756 1000000, // build_industry |
757 }; |
757 }; |
758 |
758 |
759 void StartupEconomy() |
759 void StartupEconomy(void) |
760 { |
760 { |
761 int i; |
761 int i; |
762 |
762 |
763 assert(sizeof(_price) == NUM_PRICES * sizeof(int32)); |
763 assert(sizeof(_price) == NUM_PRICES * sizeof(int32)); |
764 |
764 |
986 AddNewsItem(STR_2030_SERVICE_SUBSIDY_OFFERED, NEWS_FLAGS(NM_NORMAL, NF_TILE, NT_SUBSIDIES, 0), pair.a, pair.b); |
986 AddNewsItem(STR_2030_SERVICE_SUBSIDY_OFFERED, NEWS_FLAGS(NM_NORMAL, NF_TILE, NT_SUBSIDIES, 0), pair.a, pair.b); |
987 |
987 |
988 InvalidateWindow(WC_SUBSIDIES_LIST, 0); |
988 InvalidateWindow(WC_SUBSIDIES_LIST, 0); |
989 } |
989 } |
990 |
990 |
991 static void SubsidyMonthlyHandler() |
991 static void SubsidyMonthlyHandler(void) |
992 { |
992 { |
993 Subsidy *s; |
993 Subsidy *s; |
994 Pair pair; |
994 Pair pair; |
995 Station *st; |
995 Station *st; |
996 uint n; |
996 uint n; |
1066 SLE_CONDVAR(Subsidy,to, SLE_FILE_U8 | SLE_VAR_U16, 0, 4), |
1066 SLE_CONDVAR(Subsidy,to, SLE_FILE_U8 | SLE_VAR_U16, 0, 4), |
1067 SLE_CONDVAR(Subsidy,to, SLE_UINT16, 5, 255), |
1067 SLE_CONDVAR(Subsidy,to, SLE_UINT16, 5, 255), |
1068 SLE_END() |
1068 SLE_END() |
1069 }; |
1069 }; |
1070 |
1070 |
1071 static void Save_SUBS() |
1071 static void Save_SUBS(void) |
1072 { |
1072 { |
1073 int i; |
1073 int i; |
1074 Subsidy *s; |
1074 Subsidy *s; |
1075 |
1075 |
1076 for(i=0; i!=lengthof(_subsidies); i++) { |
1076 for(i=0; i!=lengthof(_subsidies); i++) { |
1080 SlObject(s, _subsidies_desc); |
1080 SlObject(s, _subsidies_desc); |
1081 } |
1081 } |
1082 } |
1082 } |
1083 } |
1083 } |
1084 |
1084 |
1085 static void Load_SUBS() |
1085 static void Load_SUBS(void) |
1086 { |
1086 { |
1087 int index; |
1087 int index; |
1088 while ((index = SlIterateArray()) != -1) |
1088 while ((index = SlIterateArray()) != -1) |
1089 SlObject(&_subsidies[index], _subsidies_desc); |
1089 SlObject(&_subsidies[index], _subsidies_desc); |
1090 } |
1090 } |
1471 |
1471 |
1472 _current_player = old_player; |
1472 _current_player = old_player; |
1473 return result; |
1473 return result; |
1474 } |
1474 } |
1475 |
1475 |
1476 void PlayersMonthlyLoop() |
1476 void PlayersMonthlyLoop(void) |
1477 { |
1477 { |
1478 PlayersGenStatistics(); |
1478 PlayersGenStatistics(); |
1479 if (_patches.inflation) |
1479 if (_patches.inflation) |
1480 AddInflation(); |
1480 AddInflation(); |
1481 PlayersPayInterest(); |
1481 PlayersPayInterest(); |
1609 } |
1609 } |
1610 return p->bankrupt_value; |
1610 return p->bankrupt_value; |
1611 } |
1611 } |
1612 |
1612 |
1613 // Prices |
1613 // Prices |
1614 static void SaveLoad_PRIC() |
1614 static void SaveLoad_PRIC(void) |
1615 { |
1615 { |
1616 SlArray(&_price, NUM_PRICES, SLE_INT32); |
1616 SlArray(&_price, NUM_PRICES, SLE_INT32); |
1617 SlArray(&_price_frac, NUM_PRICES, SLE_UINT16); |
1617 SlArray(&_price_frac, NUM_PRICES, SLE_UINT16); |
1618 } |
1618 } |
1619 |
1619 |
1620 // Cargo payment rates |
1620 // Cargo payment rates |
1621 static void SaveLoad_CAPR() |
1621 static void SaveLoad_CAPR(void) |
1622 { |
1622 { |
1623 SlArray(&_cargo_payment_rates, NUM_CARGO, SLE_INT32); |
1623 SlArray(&_cargo_payment_rates, NUM_CARGO, SLE_INT32); |
1624 SlArray(&_cargo_payment_rates_frac, NUM_CARGO, SLE_UINT16); |
1624 SlArray(&_cargo_payment_rates_frac, NUM_CARGO, SLE_UINT16); |
1625 } |
1625 } |
1626 |
1626 |
1633 SLE_VAR(Economy,infl_amount_pr, SLE_UINT8), |
1633 SLE_VAR(Economy,infl_amount_pr, SLE_UINT8), |
1634 SLE_END() |
1634 SLE_END() |
1635 }; |
1635 }; |
1636 |
1636 |
1637 // Economy variables |
1637 // Economy variables |
1638 static void SaveLoad_ECMY() |
1638 static void SaveLoad_ECMY(void) |
1639 { |
1639 { |
1640 SlObject(&_economy, &_economy_desc); |
1640 SlObject(&_economy, &_economy_desc); |
1641 } |
1641 } |
1642 |
1642 |
1643 const ChunkHandler _economy_chunk_handlers[] = { |
1643 const ChunkHandler _economy_chunk_handlers[] = { |