|
|
(16 intermediate revisions by one user not shown) |
Line 1: |
Line 1: |
− | * slight decrease in general cargo/mail capacity of large aircraft.
| + | Statistic changes/fixes: |
− | * generational stats for the DC-10, Boeing 747 and Boeing 737. | + | * Increased running costs on the Britannia and Boeing 727. |
− | * 737, 747, Dash-8, and ATR no longer expire. Other aircraft (eg DC-3, DC-10) have slight life extension.
| + | |
− | * Variable running costs implemented. Aircraft are now cheaper to run when on the ground and when fitted to cargo and flying empty, and more expensive when taking off or broken down.
| + | |
− | * Added cargo plane sprites for the DC-3, Stratocruiser, L-188 and RJ.
| + | |
− | * Airship, DC-3, Stratocruiser, L-188, RJ, and 747 can now carry all cargos.
| + | |
− | * Disabled the use of the optional aircraft parameter in OTTD if multiple engine sets are allowed. OTTD users can now use the addon grf to get access to all aircraft in the set.
| + | |
− | <pre>
| + | |
− | // ============ diesel engine running cost subroutine (action 2 98)
| + | |
− | | + | |
− | 475 * 11 02 00 80 81 7D 01 00 FF 00 00 80 // return base value
| + | |
− | 476 * 20 02 00 81 81 7D 01 20 FF \2u/ 1A 20 \b10 \2+ 7D 01 00 FF 00 00 80 // return base value +10%
| + | |
− | 477 * 19 02 00 82 81 7D 01 20 FF \2u/ 1A 20 \b03 \2* 1A 00 \b02 00 00 80 // return base value -33%
| + | |
− | 478 * 15 02 00 83 81 7D 01 20 FF \2u/ 1A 00 \b02 00 00 80 // return base value -50%
| + | |
− | 479 * 15 02 00 84 81 7D 01 20 FF \2u/ 1A 00 \b03 00 00 80 // return base value -66%
| + | |
− | 480 * 15 02 00 85 81 7D 01 20 FF \2u/ 1A 00 \b04 00 00 80 // return base value -75%
| + | |
− | // bonuses:
| + | |
− | | + | |
− | // running (+10% for running hard, -33% for running idle, -66% when stationary)
| + | |
− | 481 * 18 02 00 97 82 98 20 FF \2- B4 00 FF 01
| + | |
− | 82 00 00 0C //running idle
| + | |
− | 81 00 // running hard
| + | |
− | 482 * 14 02 00 97 82 B4 00 FF 01 97 00 02 FF 84 00 // stationary
| + | |
− | 483 * 17 02 00 97 86 90 00 FF FF 01 97 00 00 00 00 00 84 00 // at signal/station/depot?
| + | |
− | | + | |
− | // running -25% = (0 for running hard, -50% for running idle, -66% when stationary)
| + | |
− | 484 * 18 02 00 96 82 98 20 FF \2- B4 00 FF 01
| + | |
− | 83 00 00 0C //running idle
| + | |
− | 80 00 // running hard
| + | |
− | 485 * 14 02 00 96 82 B4 00 FF 01 96 00 02 FF 84 00 // stationary
| + | |
− | 486 * 17 02 00 96 86 90 00 FF FF 01 96 00 00 00 00 00 84 00 // at signal/station/depot?
| + | |
− | | + | |
− | // running - 50% = (-33% for running hard, -66% for running idle, -75% when stationary)
| + | |
− | 487 * 18 02 00 95 82 98 20 FF \2- B4 00 FF 01
| + | |
− | 84 00 00 0C //running idle
| + | |
− | 82 00 // running hard
| + | |
− | 488 * 14 02 00 95 82 B4 00 FF 01 95 00 02 FF 85 00 // stationary
| + | |
− | 489 * 17 02 00 95 86 90 00 FF FF 01 95 00 00 00 00 00 85 00 // at signal/station/depot?
| + | |
− | | + | |
− | // position (-25% for 1, -50% for > 1)
| + | |
− | 490 * 18 02 00 97 81 40 00 FF 02 97 00 00 00 96 00 01 01 95 00
| + | |
− | | + | |
− | // base calculations:
| + | |
− | // add the base, max 220, resave to 7D 01
| + | |
− | 491 * 27 02 00 97 81 1C 20 FF \2+ 7D 01 20 FF \2u< 1A 20 \b220 \2s 1A 00 \b01 01 97 00 00 00 97 00
| + | |
− | // add age of loco\2
| + | |
− | 492 * 26 02 00 97 85 C0 60 FF FF 00 00 \w730 \2+ 1C 00 FF FF 01 97 00 00 00 00 00 97 00
| + | |
− | // add 1 per 2 years after 1970 up to max 30
| + | |
− | 493 * 20 02 00 98 81 01 60 FF CE 02 \2u< 1A 00 \b30 01 97 00 00 00 97 00
| + | |
− | 494 * 14 02 00 97 81 1A 00 00 01 97 00 00 00 97 00 // set 1C to 0
| + | |
− | 495 * 14 02 00 98 81 01 00 FF 01 97 00 00 \b50 98 00
| + | |
− | | + | |
− | // the base loco running cost is stored in 7D 01.
| + | |
− | | + | |
− | // =========== end of diesel engine running cost subroutine
| + | |
− | | + | |
− | | + | |
− | // F unit 08
| + | |
− | | + | |
− | // Livery 1
| + | |
− | 1796 * 4 01 00 04 08
| + | |
− | <sprites>
| + | |
− | | + | |
− | 1829 * 9 02 00 AA 01 01 00 00 00 00
| + | |
− | 1830 * 9 02 00 BB 01 01 01 00 01 00
| + | |
− | 1831 * 9 02 00 1A 01 01 02 00 02 00
| + | |
− | 1832 * 9 02 00 1B 01 01 03 00 03 00
| + | |
− | | + | |
− | // Livery 2
| + | |
− | 1833 * 4 01 00 04 08
| + | |
− | <sprites>
| + | |
− | | + | |
− | 1866 * 9 02 00 2A 01 01 00 00 00 00
| + | |
− | 1867 * 9 02 00 2B 01 01 01 00 01 00
| + | |
− | 1868 * 9 02 00 3A 01 01 02 00 02 00
| + | |
− | 1869 * 9 02 00 3B 01 01 03 00 03 00
| + | |
− | | + | |
− | // Livery 3
| + | |
− | 1870 * 4 01 00 04 08
| + | |
− | <sprites>
| + | |
− | | + | |
− | 1903 * 9 02 00 4A 01 01 00 00 00 00
| + | |
− | 1904 * 9 02 00 4B 01 01 01 00 01 00
| + | |
− | 1905 * 9 02 00 5A 01 01 02 00 02 00
| + | |
− | 1906 * 9 02 00 5B 01 01 03 00 03 00
| + | |
− | | + | |
− | // recolour passenger warbonnet
| + | |
− | 1907 * 17 02 00 84 85 7F 0A 20 FF FF \2+ 1C 04 FF FF 00 00 80
| + | |
− | 1908 * 14 02 00 84 81 43 18 F0 01 84 00 00 00 84 00 // get the player 2cc colour
| + | |
− | 1909 * 14 02 00 84 82 42 00 01 01 84 00 01 01 00 C0 // pax?
| + | |
− | 1910 * 14 02 00 84 81 47 00 FF 01 00 C0 FF FF 84 00 // buy menu?
| + | |
− | | + | |
− | 1911 * 14 02 00 4A 81 0C 00 FF 01 84 00 2D 2D 4A 00
| + | |
− | 1912 * 14 02 00 4B 81 0C 00 FF 01 84 00 2D 2D 4B 00
| + | |
− | 1913 * 14 02 00 5A 81 0C 00 FF 01 84 00 2D 2D 5A 00
| + | |
− | 1914 * 14 02 00 5B 81 0C 00 FF 01 84 00 2D 2D 5B 00
| + | |
− | | + | |
− | // Livery 4
| + | |
− | 1915 * 4 01 00 04 08
| + | |
− | <sprites>
| + | |
− | | + | |
− | 1948 * 9 02 00 6A 01 01 00 00 00 00
| + | |
− | 1949 * 9 02 00 6B 01 01 01 00 01 00
| + | |
− | 1950 * 9 02 00 7A 01 01 02 00 02 00
| + | |
− | 1951 * 9 02 00 7B 01 01 03 00 03 00
| + | |
− | | + | |
− | 1952 * 24 02 00 AA 81 1C 80 FF 00 04 03 2A 00 01 01 4A 00 02 02 6A 00 03 03 AA 00 // livery based on player #
| + | |
− | 1953 * 19 02 00 AA 81 43 20 FF \2+ 7F 02 00 FF 01 AA 00 00 00 AA 00 // add para 02 to player #
| + | |
− | 1954 * 24 02 00 BB 81 1C 80 FF 00 04 03 2B 00 01 01 4B 00 02 02 6B 00 03 03 BB 00 // livery based on player #
| + | |
− | 1955 * 19 02 00 BB 81 43 20 FF \2+ 7F 02 00 FF 01 BB 00 00 00 BB 00 // add para 02 to player #
| + | |
− | 1956 * 24 02 00 1A 81 1C 80 FF 00 04 03 3A 00 01 01 5A 00 02 02 7A 00 03 03 1A 00 // livery based on player #
| + | |
− | 1957 * 19 02 00 1A 81 43 20 FF \2+ 7F 02 00 FF 01 1A 00 00 00 1A 00 // add para 02 to player #
| + | |
− | 1958 * 24 02 00 1B 81 1C 80 FF 00 04 03 3B 00 01 01 5B 00 02 02 7B 00 03 03 1B 00 // livery based on player #
| + | |
− | 1959 * 19 02 00 1B 81 43 20 FF \2+ 7F 02 00 FF 01 1B 00 00 00 1B 00 // add para 02 to player #
| + | |
− | | + | |
− | // Setup B unit
| + | |
− | // it's in the middle, is it facing backwards?
| + | |
− | 1960 * 14 02 00 A0 81 C8 00 FF 01 1B 00 FE FF BB 00
| + | |
− | // it's at the back, is it facing backwards?
| + | |
− | 1961 * 14 02 00 A1 81 C8 00 FF 01 1A 00 FE FF BB 00
| + | |
− | // is it at the back of a chain?
| + | |
− | 1962 * 14 02 00 A2 81 41 08 FF 01 A1 00 00 00 A0 00
| + | |
− | // it's at the front, is it facing forwards?
| + | |
− | 1963 * 14 02 00 A3 81 C8 00 FF 01 AA 00 FD FD 1B 00
| + | |
− | // is it at the front of a chain?
| + | |
− | 1964 * 14 02 00 A4 81 41 00 FF 01 A3 00 00 00 A2 00
| + | |
− | | + | |
− | | + | |
− | | + | |
− | // sounds 4D idle 4E 4F run
| + | |
− | | + | |
− | // run when accelerating, idle when up to speed
| + | |
− | 1965 * 18 02 00 05 82 98 20 FF 01 B4 00 FF 01 4E 80 00 0C 4F 80 //running
| + | |
− | 1966 * 18 02 00 06 81 10 00 FF 02 05 00 07 07 4D 80 08 08 A4 00 //idling
| + | |
− | 1967 * 14 02 00 37 81 0A 04 01 01 06 00 00 00 A4 00 // only fire every second time
| + | |
− | // checks for running sounds:
| + | |
− | 1968 * 14 02 00 27 82 CB 00 FF 01 37 00 00 00 A4 00 // not broken down
| + | |
− | 1969 * 17 02 00 17 86 B2 00 83 00 01 27 00 00 00 00 00 A4 00 // not in a tunnel or depot
| + | |
− | 1970 * 14 02 00 07 81 43 10 FF 01 17 00 00 00 A4 00 // not an AI company
| + | |
− | 1971 * 15 02 00 07 81 7F 00 00 FF 01 A4 00 01 01 07 00 // parameter 0 is not 1
| + | |
− | | + | |
− | // airhorn callback
| + | |
− | 1972 * 18 02 00 B5 81 10 00 FF 02 4A 80 01 01 4C 80 02 02 07 00
| + | |
− | 1973 * 14 02 00 A5 81 0C 00 FF 01 B5 00 33 33 A4 00
| + | |
− | | + | |
− | //powerrrrrrrr v1500 v1750
| + | |
− | 1974 * 14 02 00 24 81 C4 00 FF 01 DC 85 00 \b33 D6 86 // vary power based on year built
| + | |
− | | + | |
− | // RUNNING COSTS (subroutine 98)=============
| + | |
− | 1975 * 11 02 00 21 81 7E 98 00 FF 00 00 80 // gogo gadget subroutine
| + | |
− | // vv
| + | |
− | 1976 * 18 02 00 23 81 1A 20 \b44 \2s 1A 00 01 01 21 00 00 00 21 00 // store the running cost
| + | |
− | 1977 * 18 02 00 21 81 1A 20 \b48 \2s 1A 00 01 01 21 00 00 00 21 00 // store the running cost
| + | |
− | | + | |
− | 1978 * 14 02 00 21 81 C4 00 FF 01 // vary basecost based on year built
| + | |
− | 23 00 00 \b33
| + | |
− | 21 00
| + | |
− | | + | |
− | 1979 * 18 02 00 21 81 10 00 FF 02 21 00 0D 0D 24 00 0B 0B A5 00
| + | |
− | 1980 * 14 02 00 A5 81 0C 00 FF 01 21 00 36 36 A5 00 // cb36
| + | |
− | | + | |
− | | + | |
− | // buy menu sprites
| + | |
− | | + | |
− | 1981 * 4 01 00 04 01
| + | |
− | <sprites>
| + | |
− | | + | |
− | 1986 * 9 02 00 AA 01 01 00 00 00 00
| + | |
− | 1987 * 9 02 00 2A 01 01 01 00 01 00
| + | |
− | 1988 * 9 02 00 4A 01 01 02 00 02 00
| + | |
− | 1989 * 9 02 00 6A 01 01 03 00 03 00
| + | |
− | 1990 * 24 02 00 AA 81 1C 80 FF 00 04 03 2A 00 01 01 4A 00 02 02 6A 00 03 03 AA 00 // livery based on player #
| + | |
− | 1991 * 19 02 00 AA 81 43 20 FF \2+ 7F 02 00 FF 01 AA 00 00 00 AA 00 // add para 02 to player #
| + | |
− | | + | |
− | //buy menu powerrrrrrrr v1500 v1750
| + | |
− | 1992 * 14 02 00 24 81 01 00 FF 01 DC 85 00 \b33 D6 86 // vary power based on year
| + | |
− | | + | |
− | // buy menu running costs
| + | |
− | // add extra fuel costs vv
| + | |
− | 1993 * 20 02 00 21 81 01 60 FF CE 02 \2u< 1A 20 \b30 \2+ 1A 00 \b48 00 00 80
| + | |
− | 1994 * 18 02 00 21 81 01 00 FF 02 // vary basecost based on year
| + | |
− | \b44 80 00 \b33
| + | |
− | \b48 80 \b34 \b50
| + | |
− | 21 00
| + | |
− | 1995 * 18 02 00 21 81 10 00 FF 02 21 00 0D 0D 24 00 0B 0B AA 00
| + | |
− | 1996 * 14 02 00 CC 81 0C 00 FF 01 21 00 36 36 AA 00 // cb36
| + | |
− | | + | |
− | | + | |
− | // REGEARING CYCLE ========== (F unit 08)
| + | |
− | | + | |
− | // refit cargo callbacks
| + | |
− | 1997 * 42 02 00 20 81 F2 00 FF 08 // texts
| + | |
− | 01 80 01 01
| + | |
− | 02 80 00 02
| + | |
− | 03 80 03 03
| + | |
− | 04 80 04 04
| + | |
− | 05 80 05 05
| + | |
− | 06 80 06 06
| + | |
− | 07 80 07 07
| + | |
− | 08 80 08 08
| + | |
− | FF FF
| + | |
− | 1998 * 42 02 00 22 81 F2 00 FF 08 // cb36 max speed
| + | |
− | 58 80 01 01
| + | |
− | 68 80 00 02
| + | |
− | 72 80 03 03
| + | |
− | 7C 80 04 04
| + | |
− | 85 80 05 05
| + | |
− | 8F 80 06 06
| + | |
− | 98 80 07 07
| + | |
− | A3 80 08 08
| + | |
− | AA 00
| + | |
− | 1999 * 42 02 00 23 81 F2 00 FF 08 // cb36 TE
| + | |
− | 41 80 01 01
| + | |
− | 31 80 00 02
| + | |
− | 2D 80 03 03
| + | |
− | 2A 80 04 04
| + | |
− | 27 80 05 05
| + | |
− | 24 80 06 06
| + | |
− | 22 80 07 07
| + | |
− | 20 80 08 08
| + | |
− | AA 00
| + | |
− | 2000 * 18 02 00 21 81 10 00 FF 02 22 00 09 09 23 00 1F 1F A5 00 // cb36 chains
| + | |
− | 2001 * 18 02 00 A5 81 0C 00 FF 02 20 00 19 19 21 00 36 36 A5 00
| + | |
− | | + | |
− | // add text callback
| + | |
− | 2002 * 14 02 00 FA 81 0C 00 FF 01 A1 FF 23 23 CC 00
| + | |
− | | + | |
− | 2003 * 10 03 00 01 08 01 FF FA 00 A5 00
| + | |
− | | + | |
− | 2004 * 25 04 00 7F 01 08 "EMD F-Unit (Diesel)" 00
| + | |
− | // 12 FD : 00 introdate 02 reliability 03 vlife 04 mdllife : 05 train 06 arctic
| + | |
− | 2005 * 20 00 00 07 01 08 12 FD 00 CF 25 02 14 03 19 04 33 05 00 06 07
| + | |
− | // 08 paxloco 0D runfac 0E runbase 17 cost 19 type
| + | |
− | 2006 * 18 00 00 05 01 08 08 00 0D \b44 0E 30 4C 00 00 17 15 19 08
| + | |
− | // 09 spd*1.6 16 weight 0B power 1F TE
| + | |
− | 2007 * 15 00 00 04 01 08 09 68 00 16 68 0B DC 05 1F 31
| + | |
− | 2008 * 15 00 00 05 01 08 13 00 14 01 15 1E 27 02 21 01
| + | |
− | 2009 * 20 00 00 05 01 08 1E E0 28 00 80 29 00 00 1D 00 00 00 00 1C 00</pre>
| + | |