Commit Graph

190 Commits

Author SHA1 Message Date
rubidium
547677a782 (svn r17840) -Codechange: use the new pool's concepts (caching + not zeroing). Improves average CargoPacket con/destruction time by ~20%, MoveTo/Append by 5-10% and application performance by up to 2%. 2009-10-21 19:42:49 +00:00
rubidium
5f1e16027d (svn r17840) -Codechange: use the new pool's concepts (caching + not zeroing). Improves average CargoPacket con/destruction time by ~20%, MoveTo/Append by 5-10% and application performance by up to 2%. 2009-10-21 19:42:49 +00:00
rubidium
69b8e8e755 (svn r17836) -Codechange: split the CargoPacket constructor for creating 'real' new CargoPackets and saveload. For saveload we do not need to set anything except two variables (the rest is always overwritten by the load), for new 'real' cargo also pass the source_xy; dereferencing st before calling is easier than resolving st->index back to st and then dereferencing. Also don't set loaded_at_xy because that is of no importance when not loaded in a vehicle. 2009-10-20 22:24:34 +00:00
rubidium
61720eede3 (svn r17836) -Codechange: split the CargoPacket constructor for creating 'real' new CargoPackets and saveload. For saveload we do not need to set anything except two variables (the rest is always overwritten by the load), for new 'real' cargo also pass the source_xy; dereferencing st before calling is easier than resolving st->index back to st and then dereferencing. Also don't set loaded_at_xy because that is of no importance when not loaded in a vehicle. 2009-10-20 22:24:34 +00:00
rubidium
86031d434d (svn r17818) -Codechange: iterate the cargo list from the back when trying to merge packets. Chances are higher that the last packet (in the FIFO-ish queue) is mergeable with the to be added package. If a train gets loaded packets get split up and put into the different carriages, at unload they are unloaded in the same order so the last in the FIFO-ish queue is likely the packet it can merge with.
This results in a 5-10% performance improvement of CargoList's Append/MoveTo without performance degradation of AgeCargo.
2009-10-20 16:36:35 +00:00
rubidium
0c06d279f0 (svn r17818) -Codechange: iterate the cargo list from the back when trying to merge packets. Chances are higher that the last packet (in the FIFO-ish queue) is mergeable with the to be added package. If a train gets loaded packets get split up and put into the different carriages, at unload they are unloaded in the same order so the last in the FIFO-ish queue is likely the packet it can merge with.
This results in a 5-10% performance improvement of CargoList's Append/MoveTo without performance degradation of AgeCargo.
2009-10-20 16:36:35 +00:00
rubidium
08ac51fada (svn r17813) -Codechange: unify the CargoPacket related coding style 2009-10-19 09:15:47 +00:00
rubidium
fe575367f9 (svn r17813) -Codechange: unify the CargoPacket related coding style 2009-10-19 09:15:47 +00:00
rubidium
2cca30d2e3 (svn r17812) -Codechange: move the feeder_share cache from CargoList to VehicleCargoList; saves 512 bytes per station and 1-2% on CargoList::MoveTo. 2009-10-19 01:12:51 +00:00
rubidium
3adaa57a2e (svn r17812) -Codechange: move the feeder_share cache from CargoList to VehicleCargoList; saves 512 bytes per station and 1-2% on CargoList::MoveTo. 2009-10-19 01:12:51 +00:00
frosch
fea06c5755 (svn r17809) -Fix: MSVC compilation. 2009-10-18 18:47:43 +00:00
frosch
f1d37fab37 (svn r17809) -Fix: MSVC compilation. 2009-10-18 18:47:43 +00:00
rubidium
f11cebfe9b (svn r17807) -Codechange: move all 'updates' just after the 'load' constructor of CargoPackets to the constructor call itself 2009-10-18 17:52:44 +00:00
rubidium
ef38feefda (svn r17807) -Codechange: move all 'updates' just after the 'load' constructor of CargoPackets to the constructor call itself 2009-10-18 17:52:44 +00:00
rubidium
62a6e9509b (svn r17804) -Codechange: move the CargoPacket 'invalidation' when stations get removed to CargoPacket. 2009-10-18 17:26:10 +00:00
rubidium
8234230f9e (svn r17804) -Codechange: move the CargoPacket 'invalidation' when stations get removed to CargoPacket. 2009-10-18 17:26:10 +00:00
rubidium
f76de82679 (svn r17801) -Codechange: for StationCargoLists the 'loaded_at_xy' does not matter when merging CargoPackets 2009-10-18 14:30:37 +00:00
rubidium
be57392ba3 (svn r17801) -Codechange: for StationCargoLists the 'loaded_at_xy' does not matter when merging CargoPackets 2009-10-18 14:30:37 +00:00
rubidium
138e7233bc (svn r17800) -Codechange: first steps into making CargoList a template 2009-10-18 14:28:26 +00:00
rubidium
e553983e39 (svn r17800) -Codechange: first steps into making CargoList a template 2009-10-18 14:28:26 +00:00
rubidium
2e766884f6 (svn r17795) -Codechange: split cargolist into one for vehicles and one for stations. 2009-10-18 13:39:00 +00:00
rubidium
760a329622 (svn r17795) -Codechange: split cargolist into one for vehicles and one for stations. 2009-10-18 13:39:00 +00:00
rubidium
1017f4f6a1 (svn r17739) -Cleanup: compiler didn't warn about an unused variable, fonsinchen did 2009-10-07 17:46:58 +00:00
rubidium
79a0aca3bc (svn r17739) -Cleanup: compiler didn't warn about an unused variable, fonsinchen did 2009-10-07 17:46:58 +00:00
rubidium
c53682810f (svn r17736) -Codechange [FS#3135]: rewrite CargoList::MoveTo; don't require the secondary list, use cache updates instead of rebuilds. This is usually faster because of primarily gradual loading that only moves a (small) part of the cargo each time. Based on patch by fonsinchen. 2009-10-07 08:31:42 +00:00
rubidium
b7b1224ef3 (svn r17736) -Codechange [FS#3135]: rewrite CargoList::MoveTo; don't require the secondary list, use cache updates instead of rebuilds. This is usually faster because of primarily gradual loading that only moves a (small) part of the cargo each time. Based on patch by fonsinchen. 2009-10-07 08:31:42 +00:00
rubidium
705615fd91 (svn r17735) -Codechange: update the cache one inserting/removing CargoPackets from the CargoList via Append/Truncate instead of rebuilding the whole cache. For Append this changes the O(n) cache rebuild into a O(1) cache update. For Truncate no temporary list is needed anymore (based on patch by fonsinchen) 2009-10-07 08:25:12 +00:00
rubidium
de43874182 (svn r17735) -Codechange: update the cache one inserting/removing CargoPackets from the CargoList via Append/Truncate instead of rebuilding the whole cache. For Append this changes the O(n) cache rebuild into a O(1) cache update. For Truncate no temporary list is needed anymore (based on patch by fonsinchen) 2009-10-07 08:25:12 +00:00
rubidium
9b045ac7b2 (svn r17733) -Codechange: store the 'days in transit' cache as the sum of the days in transit instead of the average; the variable isn't requested that often (primarily station NewGRFs) that the dividing/testing for dividing by 0 step needs to be cached. 2009-10-06 21:24:03 +00:00
rubidium
702deb8366 (svn r17733) -Codechange: store the 'days in transit' cache as the sum of the days in transit instead of the average; the variable isn't requested that often (primarily station NewGRFs) that the dividing/testing for dividing by 0 step needs to be cached. 2009-10-06 21:24:03 +00:00
rubidium
80f0df17ba (svn r17732) -Codechange: reorder some variables of cargo packets/cargo lists to get better alignment *and* smaller structs; both from 40 bytes to 32 bytes on 64 bits. 2009-10-06 21:19:20 +00:00
rubidium
0a621eae7e (svn r17732) -Codechange: reorder some variables of cargo packets/cargo lists to get better alignment *and* smaller structs; both from 40 bytes to 32 bytes on 64 bits. 2009-10-06 21:19:20 +00:00
rubidium
d52fa73bb1 (svn r17731) -Codechange: do not cache a boolean which states whether some other variable is not 0. 2009-10-06 21:12:35 +00:00
rubidium
27d62a7ec6 (svn r17731) -Codechange: do not cache a boolean which states whether some other variable is not 0. 2009-10-06 21:12:35 +00:00
rubidium
31acc42b21 (svn r17730) -Codechange: do not cache the source of a packet in the cargo list. It's only used for (some) GUI/NewGRF purposes so precalculating it costs more than calculating when it's actually used. 2009-10-06 21:06:26 +00:00
rubidium
49739b3c67 (svn r17730) -Codechange: do not cache the source of a packet in the cargo list. It's only used for (some) GUI/NewGRF purposes so precalculating it costs more than calculating when it's actually used. 2009-10-06 21:06:26 +00:00
rubidium
1e2dc25582 (svn r17727) -Codechange: some coding style and documentation fixes 2009-10-06 19:52:27 +00:00
rubidium
10428de7a3 (svn r17727) -Codechange: some coding style and documentation fixes 2009-10-06 19:52:27 +00:00
rubidium
832b21191d (svn r17722) -Codechange: simplify the cargopacket constructor; unduplicate if and don't set a value to 0 if it already is 0. 2009-10-06 17:33:01 +00:00
rubidium
72dd637e92 (svn r17722) -Codechange: simplify the cargopacket constructor; unduplicate if and don't set a value to 0 if it already is 0. 2009-10-06 17:33:01 +00:00
rubidium
e0e5eae1ee (svn r17721) -Codechange: replace a magic number with a constant 2009-10-06 17:28:06 +00:00
rubidium
9b94441eb8 (svn r17721) -Codechange: replace a magic number with a constant 2009-10-06 17:28:06 +00:00
rubidium
5f59d0c5b4 (svn r17720) -Codechange: guard the CargoPacket variables that are cached in CargoLists so they cannot be written from outside the CargoList class (based on patch by fonsinchen) 2009-10-06 17:23:15 +00:00
rubidium
ec3a0dc064 (svn r17720) -Codechange: guard the CargoPacket variables that are cached in CargoLists so they cannot be written from outside the CargoList class (based on patch by fonsinchen) 2009-10-06 17:23:15 +00:00
rubidium
7fbc33dae1 (svn r17248) -Fix: add GPL license notice where appropriate 2009-08-21 20:21:05 +00:00
rubidium
99d46e0ad7 (svn r17248) -Fix: add GPL license notice where appropriate 2009-08-21 20:21:05 +00:00
smatz
2a430d981f (svn r17113) -Change [FS#265][FS#2094][FS#2589]: apply the subsidy when subsidy's destination is in station's catchment area and cargo packets originate from subsidy's source
-Change [FS#1134]: subsidies aren't bound to stations after awarding anymore, they still apply to town or industry, no matter what station is used for loading and unloading. Awarded subsidies from older savegames are lost
-Change [NoAI]: due to these changes, AISubsidy::GetSource and AISubsidy::GetDestination now return STATION_INVALID for awarded subsidies
2009-08-08 16:42:55 +00:00
smatz
0502a6df42 (svn r17113) -Change [FS#265][FS#2094][FS#2589]: apply the subsidy when subsidy's destination is in station's catchment area and cargo packets originate from subsidy's source
-Change [FS#1134]: subsidies aren't bound to stations after awarding anymore, they still apply to town or industry, no matter what station is used for loading and unloading. Awarded subsidies from older savegames are lost
-Change [NoAI]: due to these changes, AISubsidy::GetSource and AISubsidy::GetDestination now return STATION_INVALID for awarded subsidies
2009-08-08 16:42:55 +00:00
rubidium
6e3d999dce (svn r16914) -Codechange: split Station and BaseStation into different files 2009-07-22 11:35:35 +00:00
rubidium
d361ecd8f0 (svn r16914) -Codechange: split Station and BaseStation into different files 2009-07-22 11:35:35 +00:00