News:

The Forum Rules and Guidelines
Our forum has Rules and Guidelines. Please, be kind and read them ;).

Timeline and Buildability consistency check tool finds these

Started by wlindley, May 02, 2015, 12:01:51 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

wlindley

After chasing down why the Clyde Cargo Steamer was unusable

Quote from: wlindley on April 23, 2015, 06:23:42 PM
...the hull is available 1870/01−1912/01 although the holds are 1853/01−1880/01...

...I added a timeline consistency check to what I started several years ago now:

Quote from: wlindley on September 13, 2009, 07:04:51 PM
Just to see if there were any other "holes" in the goods flow, I wrote a little Perl program...

and came up with 780 inconsistencies in the trains/ part of the Pak128.Britain dat files as they currently exist in the svn.  There are more in the boats/ section and bus/ as well.  The program does attempt to follow the rules as to prev/next constrains as defined in the wiki and in the object-reader/writer code.

I have not verified each of these of course but I wonder if we ought to have an automated tool to keep things in order? 

* * *

There are 676 Prev/Next constraint mismatches:


** 4-wheel-1850s(MR) has next of LMR-4Wheel-First-Guard-rear, but LMR-4Wheel-First-Guard-rear does not have prev of 4-wheel-1850s(MR).
** 4-wheel-1850s(MR) has next of LMR-4Wheel-Mail, but LMR-4Wheel-Mail does not have prev of 4-wheel-1850s(MR).
** 4-wheel-1850s(MR) has next of LMR-4Wheel-Mail-Guard-rear, but LMR-4Wheel-Mail-Guard-rear does not have prev of 4-wheel-1850s(MR).
** 4-wheel-1850s(MR) has next of LMR-4Wheel-Parliamentary, but LMR-4Wheel-Parliamentary does not have prev of 4-wheel-1850s(MR).
** 4-wheel-1850s(MR) has prev of LMR-4Wheel-First-Guard-front, but LMR-4Wheel-First-Guard-front does not have next of 4-wheel-1850s(MR).
** 4-wheel-1850s(MR) has prev of LMR-4Wheel-Mail, but LMR-4Wheel-Mail does not have next of 4-wheel-1850s(MR).
** 4-wheel-1850s(MR) has prev of LMR-4Wheel-Mail-Guard-front, but LMR-4Wheel-Mail-Guard-front does not have next of 4-wheel-1850s(MR).
** 4-wheel-1850s(MR) has prev of LMR-4Wheel-Parliamentary, but LMR-4Wheel-Parliamentary does not have next of 4-wheel-1850s(MR).
...(list condensed)...
** SR-4SUB(centre2) has next of LSWR-EMU(rear), but LSWR-EMU(rear) does not have prev of SR-4SUB(centre2).
** SR-4SUB(centre2) has next of SR-3SUB(rear), but SR-3SUB(rear) does not have prev of SR-4SUB(centre2).
** SR-4SUB(centre2) has prev of LSWR-EMU(centre), but LSWR-EMU(centre) does not have next of SR-4SUB(centre2).
** SR-4SUB(centre2) has prev of SR-3SUB(centre), but SR-3SUB(centre) does not have next of SR-4SUB(centre2).


60 missing constraints, some perhaps left over from the split to liveries:


** 4-wheel-1850s(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-1850s-brake(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-1850s-mail(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-1850s-tpo(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-1860s(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-1860s-brake-front(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-1860s-brake-rear(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-1860s-full-brake(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-1860s-mail(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-1860s-tpo(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-1870s-brake-fitted is not defined; it is required as a constraint of LNWR-6Wheel-non-lav.
** 4-wheel-1870s-fitted is not defined; it is required as a constraint of LNWR-6Wheel-non-lav.
** 4-wheel-1870s-mail-fitted is not defined; it is required as a constraint of LNWR-6Wheel-non-lav.
** 4-wheel-1870s-tpo-fitted is not defined; it is required as a constraint of LNWR-6Wheel-non-lav.
** 4-wheel-sub-1870s-brake-front-fitted is not defined; it is required as a constraint of LNWR-6Wheel-tpo.
** 4-wheel-sub-1870s-brake-front-fitted(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-brake-fitted(GNR).
** 4-wheel-sub-1870s-brake-front-unfitted(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-sub-1870s-brake-rear-fitted is not defined; it is required as a constraint of LNWR-6Wheel-non-lav.
** 4-wheel-sub-1870s-brake-rear-fitted(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-tpo-fitted(GNR).
** 4-wheel-sub-1870s-brake-rear-unfitted(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** 4-wheel-sub-1870s-fitted is not defined; it is required as a constraint of LNWR-6Wheel-non-lav.
** 4-wheel-sub-1870s-fitted(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-brake-fitted(GNR).
** 4-wheel-sub-1870s-unfitted(GNR) is not defined; it is required as a constraint of 4-wheel-1870s-mail-unfitted(GNR).
** BR-121 is not defined; it is required as a constraint of BR-117-DMBS.
** BR-2MT-Tank(Black)-Push-Pull is not defined; it is required as a constraint of MR-push-pull-rear.
** BR-Class43Front(Intercity) is not defined; it is required as a constraint of BR-Mk3-TRB(Intercity).
** BR-Mk1-BG is not defined; it is required as a constraint of LNER-Gresley-Express-Dining.
** BR-Mk1-BSK is not defined; it is required as a constraint of LNER-Gresley-Express-Dining.
** BR-Mk1-BSO is not defined; it is required as a constraint of LNER-Gresley-Express-Dining.
** BR-Mk1-POS is not defined; it is required as a constraint of LNER-1937-Tyneside-EMU-MPV.
** BR-Mk1-RB is not defined; it is required as a constraint of LNER-Gresley-Express-Dining.
** BR-Mk1-RMB is not defined; it is required as a constraint of LNER-Gresley-Express-Dining.
** BR-Mk1-SK is not defined; it is required as a constraint of LNER-Gresley-Express-Dining.
** BR-Mk1-TPO is not defined; it is required as a constraint of LNER-1937-Tyneside-EMU-MPV.
** BR-Mk1-TSO is not defined; it is required as a constraint of LNER-Gresley-Express-Dining.
** BR-Mk2a-BSO is not defined; it is required as a constraint of LNER-Gresley-Express-Dining.
** BR-Mk2a-RMB is not defined; it is required as a constraint of LNER-Gresley-Express-Dining.
** BR-Mk2a-SO is not defined; it is required as a constraint of LNER-Gresley-Express-Dining.
** BR-Mk2a-TSO is not defined; it is required as a constraint of LNER-Gresley-Express-Dining.
** BR-Mk3a-TRFB(Intercity) is not defined; it is required as a constraint of BR-489[GLV](Intercity).
** GWR-Bulldog-Tender is not defined; it is required as a constraint of GWR-City.
** LBSCR-4Wheel-Brake-front-fitted is not defined; it is required as a constraint of LBSCR-sub-bogie-48ft.
** LBSCR-4Wheel-Brake-rear-fitted is not defined; it is required as a constraint of LBSCR-sub-bogie-48ft.
** LBSCR-4Wheel-First-fitted is not defined; it is required as a constraint of LBSCR-sub-bogie-48ft.
** LBSCR-4Wheel-Second-fitted is not defined; it is required as a constraint of LBSCR-sub-bogie-48ft.
** LBSCR-4Wheel-full-brake-fitted is not defined; it is required as a constraint of LBSCR-sub-bogie-48ft.
** LBSCR-B2x is not defined; it is required as a constraint of LBSCR-B2-tender.
** LBSCR-B4x is not defined; it is required as a constraint of LBSCR-B4-tender.
** LBSCR-C2x is not defined; it is required as a constraint of LBSCR-C2-tender.
** LMS-3F-Jinty-Push-Pull is not defined; it is required as a constraint of MR-push-pull-rear.
** LMS-Fowler-3P-Tank-Push-Pull is not defined; it is required as a constraint of MR-push-pull-rear.
** LMS-non-cor-brake-lav-front is not defined; it is required as a constraint of LNWR-6wheel-radial-tpo.
** LMS-non-cor-brake-lav-rear is not defined; it is required as a constraint of LNWR-6wheel-radial.
** LNWR-6Wheel-lav is not defined; it is required as a constraint of 4-wheel-1870s-brake-fitted(GNR).
** LNWR-8wheel-radial-brake-lav-front is not defined; it is required as a constraint of LNWR-6wheel-radial-tpo.
** LNWR-8wheel-radial-brake-lav-rear is not defined; it is required as a constraint of LNWR-6wheel-radial.
** LNWR-8wheel-radial-full-brake is not defined; it is required as a constraint of LNWR-6wheel-radial.
** LNWR-8wheel-radial-non-lav is not defined; it is required as a constraint of LNWR-6wheel-radial.
** LSWR-Ironclad-Parcels is not defined; it is required as a constraint of LSWR-Ironclad-TPO.
** Mk3a-TRB(Intercity) is not defined; it is required as a constraint of BR-489[GLV](Intercity).


and 46 instances where vehicles are unbuildable because their constraints retire or are not yet introduced:


In 1845/04,  LNWR-crewe-type is introduced, is unbuildable because none of its constraints are available until 1851/01, when LNWR-Bloomer-Tender(Red) becomes available.
In 1849/10,  LNWR-Sharp-goods is introduced, is unbuildable because none of its constraints are available until 1851/01, when LNWR-Bloomer-Tender(Red) becomes available.
In 1852/05,  LBSCR-craven-tender is introduced, is unbuildable because none of its constraints are available until 1854/11, when LBSCR-croydon becomes available.
In 1852/05,  LBSCR-standard-goods-tender is introduced, is unbuildable because none of its constraints are available until 1855/02, when LBSCR-long-boiler-mixed becomes available.
In 1864/00,  MR-480 is introduced, is unbuildable because none of its constraints are available until 1866/01, when MR-Kirtley156Tender(Maroon) becomes available.
In 1864/02,  MR-27 is introduced, is unbuildable because none of its constraints are available until 1866/01, when MR-Kirtley156Tender(Maroon) becomes available.
In 1866/01,  MR-800-Tender(Green) is introduced, is unbuildable because none of its constraints are available until 1870/02, when MR-800 becomes available.
In 1871/06,  LBSCR-C is introduced, is unbuildable because none of its constraints are available until 1875/00 when it retires.
In 1871/07, vehicles(LBSCR-craven-tender) retire... rendering LBSCR-small-single unbuildable until 1872/02 when it retires.
In 1871/07, vehicles(LBSCR-craven-tender) retire... rendering LBSCR-standard-passenger unbuildable until 1872/02 when it retires.
In 1871/07, vehicles(LBSCR-craven-tender) retire... rendering LBSCR-victoria unbuildable until 1876/04 when it retires.
In 1871/07, vehicles(LBSCR-standard-goods-tender) retire... rendering LBSCR-small-goods unbuildable until 1874/11 when it retires.
In 1872/02,  LBSCR-Belgravia is introduced, is unbuildable because none of its constraints are available until 1876/11 when it retires.
In 1876/04,  LBSCR-D2 is introduced, is unbuildable because none of its constraints are available until 1882/01, when LBSCR-B1-Gladstone-Tender becomes available.
In 1876/04,  LBSCR-G is introduced, is unbuildable because none of its constraints are available until 1882/01, when LBSCR-B1-Gladstone-Tender becomes available.
In 1878/00, vehicles(MR-800) retire... rendering MR-800-Tender(Green) unbuildable until 1910/01 when it retires.
In 1878/06,  LBSCR-Richmond is introduced, is unbuildable because none of its constraints are available until 1882/01, when LBSCR-B1-Gladstone-Tender becomes available.
In 1883/10,  MR-2781-Tender is introduced, is unbuildable because none of its constraints are available until 1890/04, when MR-1873 becomes available.
In 1897/05,  LNWR-Jubilee is introduced, is unbuildable because none of its constraints are available until 1901/03 when it retires.
In 1898/02,  GNR-Klondyke is introduced, is unbuildable because none of its constraints are available until 1902/01, when GNR-C1-Tender becomes available.
In 1901/03,  LNWR-Alfred-the-Great is introduced, is unbuildable because none of its constraints are available until 1904/03 when it retires.
In 1902/06,  GWR-City is introduced, is unbuildable because none of its constraints are available until 1909/11 when it retires.
In 1904/03,  LNWR-Experiment is introduced, is unbuildable because none of its constraints are available until 1911/06, when LNWR-PrinceOfWales-Tender(Black) becomes available.
In 1904/03,  LNWR-Precursor is introduced, is unbuildable because none of its constraints are available until 1907/09 when it retires.
In 1908/03,  LNWR-Renown is introduced, is unbuildable because none of its constraints are available until 1911/06, when LNWR-PrinceOfWales-Tender(Black) becomes available.
In 1910/05,  LNWR-George-V is introduced, is unbuildable because none of its constraints are available until 1911/06, when LNWR-PrinceOfWales-Tender(Black) becomes available.
In 1911/06, vehicles(MR-2736) retire... rendering MR-2781-Tender unbuildable until 1928/01 when it retires.
In 1922/04,  LNER-A1(Green) is introduced, is unbuildable because none of its constraints are available until 1922/08, when LNER-A1-Tender(Green) becomes available.
In 1924/01, vehicles(LBSCR-A1) retire... rendering LBSCR-balloon-push-pull unbuildable until 1926/01 when it retires.
In 1930/01,  LMS-Patriot(Maroon) is introduced, is unbuildable because none of its constraints are available until 1930/06, when LMS-Patriot-Tender(Maroon) becomes available.
In 1934/01,  LMS-Stanier-8F-Tender(Black) is introduced, is unbuildable because none of its constraints are available until 1935/03, when LMS-Stanier-8F(Black) becomes available.
In 1935/04,  LNER-1937-Tyneside-EMU-rear is introduced, is unbuildable because none of its constraints are available until 1937/04, when LNER-1937-Tyneside-EMU-front becomes available.
In 1951/01, vehicles(LNER-B17-5(Green)) retire... rendering LNER-B17-5-Tender(Green) unbuildable until 1955/01 when it retires.
In 1951/04,  BR-5MT(Black) is introduced, is unbuildable because none of its constraints are available until 1953/00, when BR-4MT-Tender(Black) becomes available.
In 1951/05,  BR-4MT-4-6-0 is introduced, is unbuildable because none of its constraints are available until 1953/00, when BR-4MT-Tender(Black) becomes available.
In 1960/04, vehicles(SR-MerchantNavy_4-6-2Tender(Green)) retire... rendering SR-WestCountry_4-6-2(Green) unbuildable until 1960/09 when it retires.
In 1967/01, vehicles(BR-7MT-Tender(Green)) retire... rendering BR-7MT(Green) unbuildable until 1968/08 when it retires.
In 1967/01, vehicles(BR-7MT-Tender(Green)) retire... rendering BR-8P(Green) unbuildable until 1968/02 when it retires.
In 1967/01, vehicles(BR-7MT-Tender(Green)) retire... rendering SR-MerchantNavyRebuilt_4-6-2(Green) unbuildable until 1968/08 when it retires.
In 1967/01, vehicles(BR-7MT-Tender(Green)) retire... rendering SR-WestCountryRebuilt_4-6-2(Green) unbuildable until 1968/07 when it retires.
In 1967/01, vehicles(LMS-Stanier-8F-Tender(Black)) retire... rendering LMS-Stanier-8F(Black) unbuildable until 1968/08 when it retires.
In 1981/01,  BR-317-Driving-Front is introduced, is unbuildable because none of its constraints are available until 1982/03, when BR-317-Motor becomes available.
In 2000/01, vehicles(BR-410[CEP]Brake(Blue-Grey)) retire... rendering BR-410[CEP]Front(Blue-Grey) unbuildable until 2005/11 when it retires.
In 2000/01, vehicles(BR-410[CEP]Middle(Blue-Grey)) retire... rendering BR-410[CEP]Rear(Blue-Grey) unbuildable until 2005/11 when it retires.
In 2000/01, vehicles(BR-Mk1-TO(Blue-Grey), BR-Mk2-RFB(Intercity), BR-Mk2-TO(Intercity), BR-Mk3a-TO(Intercity)) retire... rendering BR-489[GLV](Intercity) unbuildable until 2006/11 when it retires.


Under bus/ the following:


In 1530/05,  StageWagonPiece is introduced, is unbuildable because none of its constraints are available until 1750/01, when RoadHorsesDouble becomes available.
In 1530/05,  StageWagonCool is introduced, is unbuildable because none of its constraints are available until 1750/01, when RoadHorsesDouble becomes available.
In 1530/05,  StageWagonMail is introduced, is unbuildable because none of its constraints are available until 1750/01, when RoadHorsesDouble becomes available.
In 1918/01, vehicles(RoadHorsesSingle, RoadHorsesDouble) retire... rendering CartLong unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(RoadHorsesDouble, RoadHorsesSingle) retire... rendering CartMail unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(RoadHorsesDouble, RoadHorsesSingle) retire... rendering WagonLong unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(RoadHorsesSingle, RoadHorsesDouble) retire... rendering HackneyCarriage unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(RoadHorsesDouble, RoadHorsesSingle) retire... rendering WagonPiece unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(RoadHorsesSingle, RoadHorsesDouble) retire... rendering CartBulk unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(RoadHorsesDouble, RoadHorsesSingle) retire... rendering WagonCool unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(RoadHorsesDouble, RoadHorsesSingle) retire... rendering CartPiece unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(RoadHorsesDouble, RoadHorsesSingle) retire... rendering WagonBulk unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(RoadHorsesSingle, RoadHorsesDouble) retire... rendering CartCool unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(RoadHorsesSingle, RoadHorsesDouble) retire... rendering OmnibusDoubleGardenseat unbuildable until 1918/07 when it retires.
In 1934/01,  ScammellMechanicalHorse is introduced, is unbuildable because none of its constraints are available until 1934/02, when ScammellMechHorseTrailerLivestock becomes available.
In 1976/01, vehicles(ScammellTownsman) retire... rendering ScammellMechHorseTrailerLong unbuildable until 1976/10 when it retires.
In 1976/01, vehicles(ScammellTownsman) retire... rendering ScammellMechHorseTrailerPiece unbuildable until 1976/10 when it retires.
In 1976/01, vehicles(ScammellTownsman) retire... rendering ScammellMechHorseTrailerMail unbuildable until 1976/10 when it retires.
In 1976/01, vehicles(ScammellTownsman) retire... rendering ScammellMechHorseTrailerLivestock unbuildable until 1976/10 when it retires.
In 1976/01, vehicles(ScammellTownsman) retire... rendering ScammellMechHorseTrailerCool unbuildable until 1976/10 when it retires.
In 1969/02,  ScammellCrusaderTrailerCool is introduced, is unbuildable because none of its constraints are available until 1969/04, when ScammellCrusader becomes available.
In 1982/03, vehicles(ScammellCrusader) retire... rendering ScammellCrusaderTrailerCool unbuildable until 1982/10 when it retires.
In 1982/03, vehicles(ScammellCrusader) retire... rendering ScammellCrusaderTrailerBulk unbuildable until 1982/09 when it retires.
In 1982/03, vehicles(ScammellCrusader) retire... rendering ScammellCrusaderTrailerCars unbuildable until 1982/10 when it retires.
In 1982/03, vehicles(ScammellCrusader) retire... rendering ScammellCrusaderTrailerLong unbuildable until 1982/10 when it retires.
In 1982/03, vehicles(ScammellCrusader) retire... rendering ScammellCrusaderTrailerPiece unbuildable until 1982/10 when it retires.
In 1982/03, vehicles(ScammellCrusader) retire... rendering ScammellCrusaderTrailerFluid unbuildable until 1982/10 when it retires.
In 1982/03, vehicles(ScammellCrusader) retire... rendering ScammellCrusaderTrailerLivestock unbuildable until 1982/10 when it retires.
In 1987/01,  LargeArticTrailerLivestock is introduced, is unbuildable because none of its constraints are available until 1987/04, when LeylandDAF95Artic becomes available.
In 1987/01,  LargeArticTrailerPiece is introduced, is unbuildable because none of its constraints are available until 1987/04, when LeylandDAF95Artic becomes available.
In 1987/01,  LargeArticTrailerLong is introduced, is unbuildable because none of its constraints are available until 1987/04, when LeylandDAF95Artic becomes available.
In 1987/01,  LargeArticTrailerFluid is introduced, is unbuildable because none of its constraints are available until 1987/04, when LeylandDAF95Artic becomes available.
In 1987/01,  LargeArticTrailerBulk is introduced, is unbuildable because none of its constraints are available until 1987/04, when LeylandDAF95Artic becomes available.
In 1987/01,  LargeArticTrailerCars is introduced, is unbuildable because none of its constraints are available until 1987/04, when LeylandDAF95Artic becomes available.
In 1987/01,  LargeArticTrailerMail is introduced, is unbuildable because none of its constraints are available until 1987/04, when LeylandDAF95ArticMail becomes available.
In 1987/02,  LargeArticTrailerCool is introduced, is unbuildable because none of its constraints are available until 1987/04, when LeylandDAF95Artic becomes available.


Under boats*/


** ClydeSteamerMail is not defined; it is required as a constraint of ClydeSteamer.
** CompositeHullUnpoweredNarrowboatMail is not defined; it is required as a constraint of SteamNarrowboatTug.
** SteamBargeBulk is not defined; it is required as a constraint of HorseBargeCool.
** SteamBargeCool is not defined; it is required as a constraint of HorseBargeCool.
** SteamBargeLivestock is not defined; it is required as a constraint of HorseBargeCool.
** SteamBargeLong is not defined; it is required as a constraint of HorseBargeCool.
** SteamBargeOil is not defined; it is required as a constraint of HorseBargeCool.
** SteamBargePiece is not defined; it is required as a constraint of HorseBargeCool.
** SteelHullDumbBargeMail is not defined; it is required as a constraint of BantamPusher.
** SteelHullUnpoweredNarrowboatMail is not defined; it is required as a constraint of SteamNarrowboatTug.
** WoodenHullDumbBargeMail is not defined; it is required as a constraint of BantamPusher.
** WoodenHullUnpoweredNarrowboatMail is not defined; it is required as a constraint of SteamNarrowboatTug.
In 1860/01,  ClydeSteamer is introduced, is unbuildable because none of its constraints are available until 1886/06 when it retires.
In 1860/01, vehicles(PSPremier, IronPaddleSteamer) retire... rendering IronPaddleSteamerMail unbuildable until 1877/01 when it retires.
In 1880/01, vehicles(ClydeCargoSteamerAddBulk, ClydeCargoSteamerAddPiece, ClydeCargoSteamerAddCool, ClydeCargoSteamerAddLong, ClydeCargoSteamerAddMail, ClydeCargoSteamerAddLivestock) retire... rendering ClydeCargoSteamerHull unbuildable until 1912/01 when it retires.
In 1918/01, vehicles(BoatHorsesDouble) retire... rendering FlyboatCool unbuildable until 1940/01 when it retires.
In 1918/01, vehicles(BoatHorsesDouble) retire... rendering FlyboatMail unbuildable until 1940/01 when it retires.
In 1918/01, vehicles(BoatHorsesDouble) retire... rendering FlyboatPax unbuildable until 1940/01 when it retires.
In 1918/01, vehicles(BoatHorsesDouble) retire... rendering FlyboatPiece unbuildable until 1940/01 when it retires.
In 1918/01, vehicles(BoatHorsesDouble, BoatHorsesSingle) retire... rendering HorseBargeCool unbuildable until 1930/01, when DieselBargeBulk becomes available, making HorseBargeCool buildable again.
In 1918/01, vehicles(BoatHorsesDouble, BoatHorsesSingle) retire... rendering HorseBargeLong unbuildable until 1930/01, when DieselBargeLivestock becomes available, making HorseBargeLong buildable again.
In 1918/01, vehicles(BoatHorsesSingle) retire... rendering TubBoatBulk unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(BoatHorsesSingle) retire... rendering TubBoatCool unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(BoatHorsesSingle) retire... rendering TubBoatLong unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(BoatHorsesSingle) retire... rendering TubBoatPiece unbuildable until 1918/03 when it retires.
In 1918/01, vehicles(BoatHorsesSingle, BoatHorsesDouble) retire... rendering HorseBargeBulk unbuildable until 1930/01, when DieselBargeOil becomes available, making HorseBargeBulk buildable again.
In 1918/01, vehicles(BoatHorsesSingle, BoatHorsesDouble) retire... rendering HorseBargeLivestock unbuildable until 1930/01, when DieselBargePiece becomes available, making HorseBargeLivestock buildable again.
In 1918/01, vehicles(BoatHorsesSingle, BoatHorsesDouble) retire... rendering HorseBargePiece unbuildable until 1930/01, when DieselBargeOil becomes available, making HorseBargePiece buildable again.


wlindley

In hopes this can be expanded to something truly useful, it's on github now.


wlindley

Updated version on github understands some of the newer syntax, but still finds a variety of issues:

       
  • When does pakset actually begin? (In 1530/05,  StageWagonMail is introduced, is unbuildable because none of its constraints are available until 1750/01, when RoadHorsesDouble becomes available.)
  • Probable editing inconsistency artifacts (In 1869/11, vehicles(PacketBarge) retire... rendering PacketBargeAddMail unbuildable until 1918/01 when it retires.)
  • Incomplete, missing, or misnamed dependencies (** CompositeHullUnpoweredNarrowboatMail is not defined; it is required as a constraint of SteamNarrowboatTug.)
  • Vehicles partially introduced but unbuildable because of dependencies (In 1852/05,  LBSCR-standard-goods-tender is introduced, is unbuildable because none of its constraints are available until 1855/02, when LBSCR-long-boiler-mixed becomes available.)
  • And a rather large number of previous/next mismatches like ** 4-wheel-1860s-fast-freight has next of LMR-4Wheel-TPO, but LMR-4Wheel-TPO does not have prev of 4-wheel-1860s-fast-freight.
Should I keep working on this tool to make it more useful?

Perhaps we need some better process to make pakset creation and editing less tedious...

jamespetts

This is a very interesting tool: it should certainly help to make paksets more reliable. Might it be modified to work with Experimental parameters, I wonder? It'd be very useful for the Experimental paksets, as there are even more things to keep track of there.

Incidentally, has anyone an idea whether these problems are also problems for the Experimental version of this pakset?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

wlindley

The tool does understand most of Experimental, although certainly can be expanded. 

I have split the complete analysis into separate files for easier viewing here with these sections:

Also the tool gives us this chart:

IndustryRequiresProduces
ArableFarm: vegetables
Bakery: flour
Bookbinder: paper
books
Bookshop: books
Brewery: grain
beer
Brickworks: clay
bricks
BuildersYard: steel, stone, bricks, planks, wrought iron, clay, cement
Butchery: meat
CarDealership: cars
CarFactory: planks, steel, plastic
cars
CattleFarm: milk, livestock
CementWorks: stone
cement
Chemist: pharmaceuticals
ChinaShop: china
ClayPit: clay
ClothesShop: textiles
CoalMine: coal
CoalPowerStationkraftwerk: coal
CoalYard: coal
Dairy: milk
DepartmentStore: textiles, china, books, furniture
FishPort: live fish
fish
FishingGround: live fish
Fishmongers: fish
ForestSawmill: planks, woodchip
FurnitureFactory: planks, plastic
furniture
FurnitureShop: furniture
Gasworks: coal
GrainFarm: grain
GrainMill: grain
flour
Greengrocers: vegetables, fruit
HardwareFactory: planks, steel
hardware
HardwareShop: hardware
IronOreMine: iron ore
Ironworks: coal, iron ore
wrought iron, hardware
Market: vegetables, fruit, fish, meat
Newsagent: newspapers
OilPowerStationkraftwerk: fuel oil
OilRefinery: crude oil
plastic, petrol, chemicals, fuel oil
OilRig: crude oil
OilWell: crude oil
Orchard: fruit, cider
PaperMill: woodchip, chemicals
paper
PetrolStation: pharmaceuticals, newspapers, petrol, beer
PharmaceuticalFactory: chemicals, vegetables
pharmaceuticals
Pottery: clay
china
Printworks: paper
newspapers, books
Pub: beer, cider
Quarry: stone
SheepFarm: livestock, wool
Slaughterhouse: livestock
meat
SteelMill: iron ore, coal
steel
Supermarket: flour, meat, vegetables, pharmaceuticals, fruit, fish, petrol, beer
TextileMill: wool
textiles

jamespetts

That is useful. Is this a tool that can be downloaded so that I can run it on Experimental?

Edit: I see that you provided a Github link - apologies for missing that. However, I am not familiar with this sort of file, a .pl file. Do I need some specific software to run this?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

wlindley

Just Perl.  Which is standard with any Linux system, or OSX.  On Windows, try Strawberry Perl

jamespetts

Attempting to run this produces the below error - I have put this in the same folder as the base folder for the .dat files, in which there are subfolders, and have tried the commands "show_objects.pl", "show_objects.pl -r .\" and "show_objects.pl -v", al with the same results.


C:\Users\James\Documents\Development\Simutrans\PakBritain sources\New>show_objects.pl
Bareword found where operator expected at C:\Users\James\Documents\Development\Simutrans\PakBritain sources\New\show_objects.pl line 6, near ""en" class"
        (Missing operator before class?)
Bareword found where operator expected at C:\Users\James\Documents\Development\Simutrans\PakBritain sources\New\show_objects.pl line 22, near "<title>simutrans"
        (Missing operator before simutrans?)
Can't modify numeric lt (<) in scalar assignment at C:\Users\James\Documents\Development\Simutrans\PakBritain sources\New\show_objects.pl line 6, near ""en" class"
syntax error at C:\Users\James\Documents\Development\Simutrans\PakBritain sources\New\show_objects.pl line 6, near ""en" class"
Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 58 at C:\Users\James\Documents\Development\Simutrans\PakBritain sources\New\show_objects.pl lin
e 22.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

wlindley

Line 6 should be a comment: #   Copyright (c) 2009-2014 and released under the GNU General Public License version 2.0  as you can see here.  Apparently your line 6 has something about <class ... "en" ... --? You must have downloaded / saved it incorrectly?

Also you will probably want to invoke it with arguments, as:

show_objects.pl -t text/en.tab -r . >report.txt

where the dot (or period, or full stop) means "all *.dat files in and below the current directory."  Assuming you are in the pakset root of course.  And then using the greater-than redirection to save the output to a file.

jamespetts

Quote from: wlindley on October 23, 2016, 07:48:13 PM
Line 6 should be a comment: #   Copyright (c) 2009-2014 and released under the GNU General Public License version 2.0  as you can see here.  Apparently your line 6 has something about <class ... "en" ... --? You must have downloaded / saved it incorrectly?

I do not understand how it is even possible to do this. Is this the right link?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

wlindley

This is the project on github.  Use a git clone https://github.com/lindleyw/simutrans-pak-tools.git somewhere in a working directory to get a usable git copy of it.  Or this is the raw file.

wlindley

The first line of the file, as you view it with a text editor (vi, emacs, Notepad on Windows) should be:

#!/usr/bin/perl

wlindley

p.s., it looks like you saved the HTML of GitHub's web page, as the show_objects.pl file... instead of saving the pl file itself.

jamespetts

Thank you for that - I now have what I believe is the correct file. However, I now get:

C:\Users\James\Documents\Development\Simutrans\PakBritain sources\New>show_objects.pl -r .\
Experimental keys on scalar is now forbidden at C:\Users\James\Documents\Development\Simutrans\PakBritain sources\New\show_objects.pl line 586, <DATA> line 2125.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

wlindley

That is a warning (I used a fairly new feature) which may be safely ignored.  Do you get output?

jamespetts

Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

wlindley

And you run that with '.' (the current directory) being the root of the pakset source? With directories goods/, industries/, trains/, and so on, directly beneath?  I haven't used Microsoft or Apple products in fifteen years so this has only been tested on Linux.

jamespetts

The exact command that I gave is quoted in the post above (no. 13). The directory in which it is run is the directory which is the root directory for all of the files (with goods, trains, etc. beneath it).
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

wlindley

Try adding the -v switch and let's see if it's actually finding any files?

jamespetts

Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

wlindley

That means it's not finding any files.  Not sure why. Try just the dot without the trailing backslash? 

jamespetts

I have tried with just the dot, no dot and no slash, the dot and the slash and the dot and a backslash (all with -v and -r), and I still get the same output. I am afraid that I do not know the Python language, so cannot assist with debugging. Am I supposed to use the normal Windows command shell for this?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

wlindley

Perl, not Python.  And yes, this should work from a command line.  I have no way to test it on Windows, however, having got rid of my Win98 system 15 years ago. Have to see what I can do.

jamespetts

Quote from: wlindley on October 26, 2016, 01:01:26 PM
Perl, not Python.  And yes, this should work from a command line.  I have no way to test it on Windows, however, having got rid of my Win98 system 15 years ago. Have to see what I can do.

Thank you. I shall have to try it on Linux when I get a chance. Thank you for writing this tool, in any event: that is most helpful. Perhaps you should start a new thread about it in the tools subforum?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

prissi

I tried this for pak64.

Unfourtunately, after installing all missing modules, I stille get the same output as James

markus@MarkusPristovsek MINGW32 ~/sf/code/pak64
$ ../show_objects.pl -v
Experimental keys on scalar is now forbidden at ../show_objects.pl line 586.

prissi