summaryrefslogtreecommitdiff
path: root/src/ai/ai.hpp
AgeCommit message (Collapse)Author
2019-03-20Remove: ENABLE_NETWORK switchPatric Stout
This switch has been a pain for years. Often disabling broke compilation, as no developer compiles OpenTTD without, neither do any of our official binaries. Additionaly, it has grown so hugely in our codebase, that it clearly shows that the current solution was a poor one. 350+ instances of "#ifdef ENABLE_NETWORK" were in the code, of which only ~30 in the networking code itself. The rest were all around the code to do the right thing, from GUI to NewGRF. A more proper solution would be to stub all the functions, and make sure the rest of the code can simply assume network is available. This was also partially done, and most variables were correct if networking was disabled. Despite that, often the #ifdefs were still used. With the recent removal of DOS, there is also no platform anymore which we support where networking isn't working out-of-the-box. All in all, it is time to remove the ENABLE_NETWORK switch. No replacement is planned, but if you feel we really need this option, we welcome any Pull Request which implements this in a way that doesn't crawl through the code like this diff shows we used to.
2019-02-02Change: Allow AI companies to start immediately.Samu
Allow multiple AIs to possibly start in the same tick. start_date = 0 becomes a special case, where random deviation does not occur. If start_date was not already 0, then a minimum value of 1 must apply.
2013-01-08(svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by ↵planetmaker
Eagle_rainbow)
2012-09-21(svn r24537) -Feature: Scripts can be suspended even if the game is still ↵zuu
progressing, thus break-on-log now works also for Game Scripts.
2012-08-20(svn r24487) -Codechange [FS#5236]: make several DoesContentExist return the ↵yexo
path instead of a boolean (LordAro)
2012-01-03(svn r23735) -Codechange: remove ~50 includes from headers that weren't neededrubidium
2011-12-01(svn r23384) -Remove: no longer allow a binary to be without AI support; the ↵truebrain
parts some compilers failed at, are integrated in other parts of the code now too
2011-11-29(svn r23362) -Codechange: refactor AIScanner, splitting it in AIScannerInfo ↵truebrain
and AIScannerLibrary
2011-11-29(svn r23355) -Codechange: rename all AI* to Script* (Rubidium)truebrain
2011-11-29(svn r23354) -Codechange: move all src/ai/api/ai_*.[hc]pp files to ↵truebrain
src/script/api/script_* (Rubidium)
2011-11-23(svn r23295) -Codechange: put ImportLibrary in AIController (and document ↵truebrain
the parameters for NoAI docs)
2011-03-07(svn r22222) -Fix: compilation when compiling with --disable-aiyexo
2011-02-07(svn r22007) -Change: only show one AI per unique ID instead of all versions ↵rubidium
in the output of "openttd -h"
2011-01-03(svn r21703) -Feature [FS#4372]: list_ai_libs console command to get a list ↵yexo
of recognized AI libraries (dihedral)
2010-08-01(svn r20285) -Codechange: use ///< for single-line doxygen comments in the ↵yexo
AI code
2010-07-31(svn r20271) -Doc: add doxygen comments to several items under src/ai/yexo
2010-04-02(svn r19544) -Feature [FS#3496]: add an input box to the AI Debug window ↵yexo
where you can input a break string (patch by Zuu)
2010-02-10(svn r19081) -Codechange: make it possible to disable compilation of the ↵rubidium
AI+Squirrel
2010-01-29(svn r18944) -Change [FS#3232]: use the highest version of an AI that can ↵yexo
load the AI data from a savegame instead of the exact same version
2010-01-11(svn r18781) -Codechange: pass the CommandCost to the callback instead of ↵rubidium
whether it succeeded or not. -Fix: AIs did update their last cost incorrectly in network games if the cost of the DC_EXEC phase differed from the ~DC_EXEC phase.
2010-01-09(svn r18763) -Feature [FS#3095]: rerandomise AIs on reloading (via the debug ↵rubidium
window) when they were randomly chosen
2009-08-21(svn r17248) -Fix: add GPL license notice where appropriaterubidium
2009-06-10(svn r16559) -Codechange: introduce Company::IsValidAiID() and ↵smatz
Company::IsValidHumanID(), don't use IsHumanCompany() where possible
2009-04-25(svn r16151) -Codechange: move some includes around to prevent including ↵yexo
half the AI api in non-noai related code.
2009-02-03(svn r15324) -Codechange: unify the class used for comparing of strings for ↵smatz
std::map
2009-01-20(svn r15175) -Feature: Add the option to select the AIs to start in a new ↵Yexo
game and configure them via the gui.
2009-01-17(svn r15126) -Feature: downloading content from a central server ↵rubidium
(content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
2009-01-14(svn r15086) -Fix: start AIs after 6 months on hard, 12 months on medium, ↵truebrain
and 24 months on easy. The current values were a bit .. too long waiting period ;)
2009-01-13(svn r15077) -Codechange: enumify DAYS_IN_YEAR and DAYS_IN_LEAP_YEARsmatz
-Change: when computing daily running cost, divide by 365 (instead of 364). Since r12134, the rounding errors don't need this correction anymore
2009-01-13(svn r15076) -Fix: a start_date of 0 would never start an AI .. so don't ↵truebrain
allow it (Yexo)
2009-01-13(svn r15066) -Change: start_date is now in days, instead of in months (Yexo)truebrain
2009-01-13(svn r15063) -Fix [NoAI]: starting companies now listen correctly to ↵truebrain
'start_date' set to the AI slot (Yexo) -Add [NoAI]: add a 'deviation' value for all settings, giving a slight deviation of the value of a setting (Yexo)
2009-01-13(svn r15059) -Add [NoAI]: use 'start_date' from the AI configure to see when ↵truebrain
an AI should start next
2009-01-13(svn r15045) -Add [NoAI API CHANGE]: in info.nut you can now have (optional) ↵truebrain
a CanLoadFromVersion(version), which should return true/false, to indicate if you can load a savegame made with your AI of version 'version' -Add [NoAI API CHANGE]: in main.nut the Load() function now should be Load(version, data), where 'version' is the version of your AI which made the savegame -Codechange [NoAI]: various of function renames to make things more sane -Add [NoAI]: push the 'version' of the AI through various of layers -Codechange [NoAI]: various of code cleanups -Add [NoAI]: store the version of the AI in the savegame too
2009-01-12(svn r15027) -Merge: tomatos and bananas left to be, here is NoAI for all to ↵truebrain
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