This will prevent some reallocations when sorting vehicle list windows
It also prevents moving the whole array into a new one each time the list is generated/updated (it used to make the list in one array and then move it into another one each time)
Also ensured that neither GenerateVehicleSortList() or BuildDepotVehicleList() will never allocate lists longer than the total number of vehicles in the game
catalan - 1 changed by arnaullv (1)
french - 9 fixed by belugas (9)
german - 2 fixed by Neonox (2)
greek - 270 fixed by thanoulas (270)
slovak - 2 fixed by lengyel (2)
spanish - 2 fixed by eusebio (2)
swedish - 3 fixed by cjw (3)
It made no sense to maintain 8 nearly identically arrays when a single one can do the job
Also made the two buttons always use half of the bottom width each, even when resizing
catalan - 9 fixed, 5 changed by arnaullv (14)
french - 10 fixed by belugas (10)
german - 9 fixed by Neonox (9)
hungarian - 13 fixed by miham (13)
slovak - 21 fixed by lengyel (21)
turkish - 13 fixed by jnmbk (13)
It's right below the sell button (sell whole chain button for trains)
It's still missing a sprite. That one will be added as soon as anybody draws something we can use
To make room for this button, all depots except train depots now opens with an additional row and can't be resized shorter than that
american - 12 fixed by WhiteRabbit (12)
estonian - 31 fixed by vermon (31)
german - 1 changed by Neonox (1)
greek - 70 fixed, 53 changed by thanoulas (123)
italian - 8 fixed by sidew (8)
polish - 12 fixed by meush (12)
portuguese - 2 fixed by izhirahider (2)
spanish - 8 fixed by eusebio (8)
swedish - 11 fixed by cjw (11)
Really bad stuff will happen if one of them contains a different number of widgets ;)
This is meant as a protection against incorrect additions of code rather than verifying that the current code works
This will ensure that say the horizontal scrollbar is as wide as the matrix even if only the matrix is altered in size
This is meant to make it easier to add more widgets without coding a lot of vehicle type specific stuff (you should still check all windows though)
This means that "Build vehicle", "Clone vehicle" and "Location" will always fill the space from the left window border to the resize button and they are equal in size
The sell button will also use all the space between the start/stop buttons and the resize button and for trains, the sell button is split into two buttons in equal sizes
This will prevent the issue where a small window is resized into a large one and the buttons remains pretty small
-Codechange: [depot window] The enum with widget names is now changed into automatic numbering so all lines will not have to be changed each time a new widget is added
This change is intended to make it easier to make depot behaviour consistent
and faster to code when adding more features in the future
The user interface should hopefully not be affected by this
This will ensure that you can always get the same list when checking for vehicles in a depot (no need to duplicate code for each place, that needs such a list)
Since the vehicles are only looped once for each redraw, drawing speed is around twice as fast (measured to be 114%-121% faster depending on the number of vehicles in the game)
This turned out to be due to OFB_HALT_IN_DEPOT and OFB_SERVICE_IF_NEEDED using the same bit
It appears that it doesn't matter for the code, so I adapted the string selection code to handle this