Commit Graph

360 Commits (d17af458c1105872a06eaa0174d1bad59d8b5761)

Author SHA1 Message Date
frosch fe65c7f833 (svn r18266) -Codechange: Add a function to compute prices from price base and cost factor and use it consistently for vehicle purchase, running cost, and refit cost. 15 years ago
rubidium d4774a2ce9 (svn r18123) -Codechange: try our best to keep the vehicles within the build vehicle list/autoreplace lists instead of overflowing. 15 years ago
rubidium ddafe77904 (svn r18121) -Codechange: pass the maximum left/right location to the Draw*Engine functions 15 years ago
frosch 040404c5d3 (svn r18005) -Codechange: Convert the Prices struct into an array and an enum. 15 years ago
frosch 3cb949a17d (svn r17976) -Codechange: Move CargoClass to cargotype.h and clean up including of newgrf_cargo.h 15 years ago
frosch 9fafef56d0 (svn r17926) -Fix (r9352): Make the decision whether aircraft carry mail consistent. Now always the cargo class decides. 15 years ago
frosch 020c53fc7e (svn r17899) -Codechange: Deduplicate code for refitting vehicles. 15 years ago
frosch 23980e6486 (svn r17897) -Fix [FS#3255]: CB15 and CB36 (capacity) were not always called when they should.
-Codechange: Move capacity calculation to a single function for all vehicle types, so the behaviour can be kept consistent easier.
15 years ago
frosch 61fbba4dc1 (svn r17894) -Fix: Invalidate cache of vehicle vars 40-43 after testruns of certain commands, that change them temporarily. 15 years ago
rubidium e0bd454fbb (svn r17762) -Fix [FS#3259]: don't let aircraft drive a while over the grass when landing at high altitude airports 15 years ago
frosch 4cb5a3e8a2 (svn r17725) -Codechange: Reduce usage of EngInfo and XxxVehInfo, esp. when a Engine * is already present. 15 years ago
rubidium 982b8ee5fc (svn r17693) -Cleanup: remove some unneeded includes 15 years ago
frosch b6156da5e9 (svn r17616) -Codechange [FS#3222]: Enumerize properties used in callback 0x36. Based on Terkhen's work. 15 years ago
frosch 1192ed4c2d (svn r17594) -Fix: Vehicle image was not always updated when needed. 15 years ago
rubidium 06e490fadc (svn r17567) -Fix: some doxygen warnings 15 years ago
rubidium 4db98357ea (svn r17552) -Codechange: rename load_unload_time_rem to something more generic as it's used for more than just load/unload. Also add some documentation about where it is used. 15 years ago
rubidium c2c0f4403e (svn r17534) -Codechange: unify the naming of callback masks/flags 15 years ago
frosch 0e36260337 (svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability. 15 years ago
yexo 39286cd325 (svn r17483) -Fix (r17405): when an aircraft starts flying in circles make it turn in the correct direction first before continuing 15 years ago
yexo bed4415d8d (svn r17480) -Fix (r17405): fast aircraft could get stuck flyin gin circles trying to reach a certain point 15 years ago
yexo 3cfb59b5b9 (svn r17415) -Change: make sure aircraft don't move while turning as long as they are on the ground. This prevents a lot of unnecesary turns when leaving terminals 15 years ago
yexo d963a44d3a (svn r17405) -Fix (r100): aircraft shouldn't be allowed to make turns bigger then 45 degrees while in flight 15 years ago
yexo 7a334f62e8 (svn r17382) -Cleanup: don't set load_unload_time_rem when an aircraft turns in the air as it's not used 15 years ago
rubidium 99d46e0ad7 (svn r17248) -Fix: add GPL license notice where appropriate 15 years ago
frosch 32a47df09a (svn r17121) -Fix [FS#3060]: Update vehicle position cache when the vehicle sprite changes. 15 years ago
smatz 096aca2479 (svn r17085) -Codechange: unify the place where vehicle's cargo ages 15 years ago
rubidium d61be2637e (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives 15 years ago
rubidium 5bb7b8ad35 (svn r17062) -Change: unify the naming of some 125 strings 15 years ago
rubidium 1d45e1e239 (svn r17001) -Codechange: replace some more assert(0)s to NOT_REACHED() and document why they (assert(0)) have to stay for the remaining cases. 15 years ago
rubidium 34570f4e93 (svn r16842) -Cleanup: add some spaces around a few operators 15 years ago
smatz 64de470917 (svn r16814) -Codechange: make IsNormalAircraft() member of Aircraft 15 years ago
yexo a52f5c45e6 (svn r16648) -Codechange: move some more includes around 15 years ago
yexo b00726a5d2 (svn r16647) -Codechange: remove newgrf.h include from newgrf_engine.h to prevent unnecessary inclusion newgrf.h anyway 15 years ago
smatz f6a4d61cca (svn r16643) -Codechange: replace GetStationByTile() by Station::GetByTile() 15 years ago
smatz 9ec6fc8a61 (svn r16633) -Codechange: remove checks for consistency of newpool 15 years ago
rubidium 8ca2ccc456 (svn r16581) -Codechange: unify the access to Engine::lifelength. 15 years ago
rubidium ee96d737b2 (svn r16580) -Codechange: rename Engine::image_index to original_image_index to not confuse it with image_index from *VehInfo. 15 years ago
frosch c9eac207ea (svn r16498) -Codechange: Remove hardly used HASBITS. 15 years ago
alberth 580e478e4e (svn r16491) -Codechange: Added parentheses around bitwise operators for code style. 15 years ago
frosch 6e06b592ad (svn r16480) -Fix (r15617): Invalidate newgrf variable caches of more vehicles in more places. Esp. they were only invalidated for trains. 15 years ago
frosch 749c976e47 (svn r16479) -Fix (r5146): Call callbacks after initialisation of vehicle variables. 15 years ago
smatz e419fe6d3f (svn r16442) -Codechange: use new Vehicle accessors at more places 15 years ago
smatz 0c53f04c07 (svn r16441) -Codechange: new class SpecializedVehicle used as superclass for all vehicle types 15 years ago
yexo f044ad6f80 (svn r16439) -Change: Make the default vehicle servicing settings company-based settings, so in a multiplayer game everyone can change them. 15 years ago
rubidium 82cdacb20c (svn r16427) -Codechange: replace a few magic numbers with an existing constant and unduplicate a few lines. 15 years ago
frosch eeb3f75cfe (svn r16416) -Fix [FS#2912]: Rework deleting of news when referenced vehicles/stations/industries are deleted. 15 years ago
rubidium cd382b28a3 (svn r16394) -Codechange: move (NewGRF) cache variables into a separate struct so (some vehicle related) NewGRF cache 'desyncs' can be tested easier. 15 years ago
rubidium 4ae19b7451 (svn r16388) -Codechange: move u.air to Aircraft 15 years ago
rubidium 1e853b1226 (svn r16387) -Codechange: use Aircraft instead of Vehicle where appropriate 15 years ago
smatz 50624d5c0f (svn r16378) -Codechange: replace OldPool with simpler Pool. Compilation time, binary size and run time (with asserts disabled) should be improved 15 years ago
smatz 70d3ed15c8 (svn r16376) -Codechange: Vehicle::Tick() now returns false if the vehicle was deleted 15 years ago
smatz 512db5248e (svn r16352) -Codechange: use PoolItem::GetIfValid() instead of PoolItem::IsValidID() and PoolItem::Get() 15 years ago
smatz 0c10daa243 (svn r16327) -Codechange: replace IsValidPoolItemID(index) by PoolItem::IsValidID(index) 15 years ago
smatz d495dc5dbc (svn r16325) -Codechange: replace GetPoolItem(index) by PoolItem::Get(index) 15 years ago
yexo d489f93473 (svn r16315) -Codechange: move the autorenew settings to a new CompanySettings struct 15 years ago
frosch 2431cc099e (svn r16303) -Codechange: Use the question mark as default sprite when creating vehicles, instead of arbitrary sprites not related to the vehicle. (though that also applies to the question mark) 15 years ago
smatz 53b8d13878 (svn r16300) -Codechange: reduce usage of Vehicle::AllocateList 15 years ago
rubidium 8a8ec3001a (svn r16296) -Codechange: silence some ICC warnings 15 years ago
rubidium 5c5b357043 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible. 15 years ago
rubidium c3e87f345d (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too 16 years ago
rubidium b003536ea8 (svn r15676) -Codechange: remove the need for BeginVehicleMove and merge VehiclePositionChanged and EndVehicleMove. 16 years ago
peter1138 812f6b8676 (svn r15665) -Fix (r8973): Handling of aircraft crash counter did not take account of the reduced number of calls (from 6 down to 2) to the aircraft event handler, resulting in crashed aircraft taking three times longer than they should to clear. Compensate by increasing the counter by 3 on every call instead of 1. 16 years ago
frosch abe4692da2 (svn r15541) -Revert (r15399): 'v->cargo_type' is also used in other places, which cannot accept CT_INVALID.
-Codechange: Add Engine::GetDefaultCargoType() and Engine::CanCarryCargo() and use them.
-Fix [FS#2617]: When articulated parts have no available default cargo, use the cargo type of the first part for livery selection.
-Change: To decide whether a vehicle is refittable do not test its current capacity for being zero, but always use the 'capacity property'.
  Note: The property is used unmodifed without calling CB 15/36. By setting it to a non-zero value and returning zero in the callback vehicles can be refitted to/from zero capacity for e.g. livery effects.
  Note: It is intentional that you cannot control refittability by CB 36.
16 years ago
rubidium 5c8cf85613 (svn r15434) -Codechange: bit of type safety for the DC_xxx flags. 16 years ago
rubidium 89e1afdaa0 (svn r15428) -Codechange: consistently use colour instead of having both color and colour. 16 years ago
rubidium 283b3d16ab (svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability. 16 years ago
frosch f6fa77d5f9 (svn r15358) -Add [NoAI]: AIEventVehicleCrashed::GetCrashReason() 16 years ago
frosch 55728d9e18 (svn r15326) -Fix: Old-ai-ishm when refitting vehicles. 16 years ago
smatz 9021c20b5e (svn r15299) -Cleanup: remove many redundant includes 16 years ago
frosch 9a0d88176b (svn r15286) -Fix: Refitting did not invalidate vehicle-colour-maps of road-vehicles, ships and aircraft, as well vehicle-length of road-vehicles. 16 years ago
glx 470da22ac3 (svn r15263) -Codechange: added Engine::GetCost() to remove some code duplication. 16 years ago
glx 12c89708cb (svn r15210) -Fix: Vehicle::GetRunningCost() was wrong for ships and aircraft 16 years ago
peter1138 9ef3ff992e (svn r15131) -Fix: Indentifluxation combobulated 16 years ago
smatz ca45774160 (svn r15077) -Codechange: enumify DAYS_IN_YEAR and DAYS_IN_LEAP_YEAR
-Change: when computing daily running cost, divide by 365 (instead of 364). Since r12134, the rounding errors don't need this correction anymore
16 years ago
truebrain c2406cd42d (svn r15027) -Merge: tomatos and bananas left to be, here is NoAI for all to see.
NoAI is an API (a framework) to build your own AIs in. See:
   http://wiki.openttd.org/wiki/index.php/AI:Main_Page
 With many thanks to:
  - glx and Rubidium for their syncing, feedback and hard work
  - Yexo for his feedback, patches, and AIs which tested the system very deep
  - Morloth for his feedback and patches
  - TJIP for hosting a challenge which kept NoAI on track
  - All AI authors for testing our AI API, and all other people who helped in one way or another
-Remove: all old AIs and their cheats/hacks
16 years ago
rubidium 0543f50181 (svn r14952) -Codechange: unify the "can vehicle go to station" tests 16 years ago
rubidium 28ea38ae55 (svn r14949) -Cleanup: pointer coding style 16 years ago
glx c61674221c (svn r14840) -Cleanup: remove duplicate includes 16 years ago
smatz ec7ebf2170 (svn r14835) -Change: apply the 'warn if train's income is negative' setting to other vehicle types, too 16 years ago
smatz 91233ea596 (svn r14828) -Codechange: move most of save/load-specific code to separate files 16 years ago
rubidium e83cca7d13 (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter. 16 years ago
rubidium 931bdb9626 (svn r14749) -Codechange: replace a few wrapper functions that only called delete by a direct delete instead. 16 years ago
rubidium 0c6c3311c9 (svn r14748) -Codechange: unduplicate window updating when deleting vehicles. 16 years ago
rubidium c34ce32f26 (svn r14747) -Codechange: remove DeleteVehicleChain in favour of the vehicle destructor as that was already doing the same for a few vehicle types. 16 years ago
smatz c88a6199a7 (svn r14743) -Codechange: use INVALID_TILE to indicate station doesn't have queried facility (or station/roadstop is invalid) instead of 0 (Yexo) 16 years ago
frosch c1d1ba22cc (svn r14672) -Fix [FS#2444]: Property 7 and callback 12 were broken for aircraft.
Now callback 12 is properly called also for 'mail'.
If the callback is not used, 'mail' uses 1/4 of property 7 (rounded up).
16 years ago
rubidium e589c7e580 (svn r14422) -Codechange: also reflect the changes of r14421 in the filenames. 16 years ago
rubidium f56e630e5c (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with. 16 years ago
smatz a756b23dc4 (svn r14383) -Fix [FS#2316](r14343): handle invalid 'v->u.air.targetairport' in the NewGRF code, too 16 years ago
smatz e6afe2ea0c (svn r14343) -Fix [FS#2300]: invalid v->u.air.targetairport could cause crashes at several places when the station pool got smaller 16 years ago
rubidium 69e4e88e99 (svn r14309) -Fix [FS#2244]: aircraft frozen above oil rig when the next order is invalid. 16 years ago
smatz 7e4e999a97 (svn r14307) -Fix: when deleting a station, remove news items regarding it 16 years ago
rubidium c358955127 (svn r14223) -Codechange: make GetSprite aware of the 4 different types of sprites: fonts, recolour, mapgen and normal sprites. 16 years ago
peter1138 550fc3a3f5 (svn r14078) -Codechange: Rename *VehicleInfo::base_cost to cost_factor, indicating what it actually is. 16 years ago
frosch c8e699cc35 (svn r14076) -Codechange: Merge the four start/stop commands into a single CMD_START_STOP_VEHICLE. 16 years ago
rubidium 36ca1ba723 (svn r13794) -Fix: helicopters leaving a heliport could get stuck after processing conditional orders. 16 years ago
smatz a47b118a80 (svn r13691) -Codechange: make it easier to determine whether a command is ran in the context of autoreplace or not 16 years ago
rubidium e7a501100a (svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games. 16 years ago
rubidium dc77647ea4 (svn r13251) -Codechange: rename _patches to _settings as that is more logic.
-Codechange: move all Settings into substructs of _settings in a way that they are logically grouped.
16 years ago
rubidium 3ee2556585 (svn r13165) -Codechange: replace some RebuildXXXList/ResortXXXList+InvalidateWindowXXX with InvalidateWindowXXXData. 16 years ago
rubidium 373343cef6 (svn r13100) -Codechange: reduce the amount of parameters passed via AddNewsMessage as there is (for each news message type) a tuple of 4 parameters that is the same for all calls. 16 years ago
peter1138 45034bc522 (svn r12924) -Feature: Introducing the so called 'engine pool' which primarily removes the fixed engine type limits and also happens to allow (with the patch option 'dynamic_engines') multiple NewGRF vehicle sets to coexist. 16 years ago
peter1138 a05e9b4c6b (svn r12824) -Codechange: Standardise routines for drawing vehicle images, using correct types and less duplication. 16 years ago
rubidium bbe13a0623 (svn r12818) -Codechange: make callbacks 31 and 37 behave like they do in TTDP according to frosch's survey. 16 years ago
peter1138 dbb4dcaf5c (svn r12809) -Fix (r1704): Possible out of bounds array access. 16 years ago
rubidium 8186344628 (svn r12804) -Codechange: move the effect vehicle handling out of vehicle.cpp 16 years ago
rubidium a63974547b (svn r12795) -Fix [FS#1938]: vehicles could break down during loading and keep loading. The intention of the break down code is not to break down when having zero speed, therefor break downs now do not happen when loading. 16 years ago
rubidium 18e64b28e2 (svn r12757) -Codechange: move all cheat related stuff from all over the place to a single location. 16 years ago
rubidium 6d063c3ad6 (svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h. 16 years ago
rubidium daf5a2f1bc (svn r12658) -Codechange: unify a vast portion of the CmdSend<VehicleType>ToDepot commands. 16 years ago
rubidium aa8a5b2c39 (svn r12657) -Codechange: add 'FindClosestDepot' to the vehicle class. 16 years ago
rubidium c1e6cdbef7 (svn r12631) -Fix [FS#1911]: sometimes aircraft couldn't find their way to their depot. 16 years ago
frosch b91781b715 (svn r12629) -Codechange: Split VehicleNeedsService() into Vehicle::NeedsServicing() and Vehicle::NeedsAutomaticServicing().
-Fix (r11052): Disable servicing by service-interval if a vehicle has depot orders.
16 years ago
rubidium cf250390c5 (svn r12615) -Codechange: rename some enums related to depot orders to make it more clear that they are no loading/unloading flags. Also add more type strictness. 16 years ago
rubidium 53d101cc99 (svn r12593) -Codechange: hide Order's flags in most of the code. 16 years ago
rubidium e150643d31 (svn r12592) -Fix (r12580): aircraft's go-to-depot handling is a mess, which assumes destination to be a station even when it did not set a destination yet. 16 years ago
rubidium 935b562074 (svn r12588) -Codechange: do not access the destination of an order directly. 16 years ago
rubidium 3b0e3d8d30 (svn r12584) -Codechange: do not access the order type directly. 16 years ago
rubidium ba0a9538cf (svn r12578) -Codechange: merge the aircrafts ProcessOrder too into the 'unified' ProcessOrder. 16 years ago
frosch 51155403a4 (svn r12531) -Codechange: Rename some variables for consistency. 16 years ago
rubidium df1d9bd880 (svn r12490) -Codechange: rename engine.h to engine_func.h and remove unneeded inclusions of engine.h and/or replace them with engine_type.h. 16 years ago
rubidium c51b81c247 (svn r12489) -Codechange: split station.h into station_base.h and station_func.h. 16 years ago
rubidium b84b16cfcd (svn r12488) -Codechange: split order.h into order_base.h and order_func.h. 16 years ago
rubidium 9f363b3f92 (svn r12477) -Fix [FS#1883]: timetable times for aircraft were always doubled. 16 years ago
rubidium 2426f5342f (svn r12459) -Codechange: split news.h into news_type.h and news_func.h. 16 years ago
peter1138 0796a1ccc3 (svn r12343) -Fix (r12293): Slow helicopters never got the 'chance' to finish the landing routine. 17 years ago
peter1138 015cf7e6a2 (svn r12293) -Feature: Ability to change aircraft speed factor, from so
called 'realistic' (matching other vehicles) (1/1) to original TTD 
speed (1/4). Note this option defaults to original TTD speed.
17 years ago
bjarni 973d1fd6ad (svn r12230) -Codechange: [autoreplace] made a function to detect if a vehicle needs autorenewing
This will remove duplicated code and ensure that the check is consistent
17 years ago
peter1138 a141442ff7 (svn r12144) -Codechange: Adjust aircraft slowing algorithm so that very fast
aircraft slow down more rapidly than slower aircraft. This prevents them 
from reaching the end of the runway at high speed, and also stops slow 
aircraft from slowing down too much at the start of the runway.
17 years ago
smatz fe48d0be21 (svn r12134) -Change: count the number of ticks a vehicle was running this day to calculate running cost
-Fix [FS#1739]: vehicle profit is now counted with 8bit fract, so it is now shown properly in the vehicle details window
17 years ago
smatz a9ce2a7122 (svn r12109) -Fix [FS#1745](r8973): use tile index 0 for planes in the air, so it cannot have an invalid tile index 17 years ago
glx 7ce12e50da (svn r12037) -Codechange: replace OnNewDay_(Aircraft|RoadVeh|Ship|Train) with an OnNewDay method in the Vehicle class 17 years ago
bjarni 6786802863 (svn r11935) -Fix (r11875)[FS#1672]: autosend aircraft to hangar for replacement check inverted the check for autorenew
Now it triggers when renew setting is on and only if it's on
  Note: aircraft already enroute to hangars due to this bug will still go there. They will only head there once though
17 years ago
smatz dfb91c26ec (svn r11916) -Codechange: use enums from VehicleViewWindowWidgets instead of constants
-Fix: refit button widget was not correctly updated
17 years ago
glx 80d62cb358 (svn r11895) -Fix (r11875): for once MSVC warns for a good reason 17 years ago
smatz fc2895e8c2 (svn r11882) -Codechange: introduce MarkSingleVehicleDirty() and simplify the code at some places 17 years ago
bjarni a09b0e21e4 (svn r11875) -Fix: automatically sending aircraft to depot for autoreplace/renew is now triggered by the correct conditions
Now it triggers by the following conditions:
  - aircraft is old enough for renew or needs to be autoreplaced
  - player has 2*cost of new aircraft+autorenew money (we don't want to send many aircraft to hangars when there is only money for replacing one)
  - aircraft has no hangars in it's order list
  - new aircraft is buildable (imagine autorenewing a retired design)
  This triggers right after a helicopter takes off or when a plane touches the ground while landing

  Another effect of this change is that this functionality no longer generates network traffic
17 years ago
rubidium 736640fd87 (svn r11866) -Codechange: swap OFB_* and OF_* so it conceptually in sync with other cases of *B_* vs *_* like VETSB_* and VETS_*. 17 years ago
rubidium 9c0c798dd8 (svn r11834) -Codechange: only include settings_type.h if needed. 17 years ago
rubidium 90acd52f22 (svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h. 17 years ago
peter1138 0f7392bd61 (svn r11822) -Codechange: Replaced fixed size custom name array. Names are now attached to their object directly and there is
no limit to the amount of names.
-Fix: NewGRF engines could not be renamed.
17 years ago
rubidium 2fc62eab05 (svn r11818) -Codechange: split player.h into smaller pieces. 17 years ago
rubidium 0365c1f33b (svn r11793) -Codechange: pass the expense type via the CommandCost instead of a global variable. Patch by Noldo (FS#1114). 17 years ago
peter1138 0ae26a0312 (svn r11789) -Codechange: coding style for global variable names 17 years ago
rubidium 64d691bacc (svn r11787) -Codechange: more header rewrites. This time related to viewport.h. 17 years ago
rubidium e2f7ec1d3e (svn r11775) -Codechange: move all autoreplace/autorenew functions to a single location. 17 years ago
rubidium 444e77d8bc (svn r11774) -Change: do not include variables.h in a header when it is not needed. 17 years ago
rubidium 445a733eb6 (svn r11719) -Codechange: split sound.h in a header with types and one with functions. 17 years ago
smatz c10d3da133 (svn r11707) -Fix: do not allow refitting flooded (destroyed) vehicles 17 years ago
rubidium 722613f7f3 (svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes. 17 years ago