Commit Graph

937 Commits

Author SHA1 Message Date
truebrain 0f9954ec1b (svn r23374) -Add: Doxygen files for the NoAI API (Yexo) 2011-11-29 23:31:55 +00:00
truebrain 7158aaea31 (svn r23373) -Add: move the AI API to script/api/ai, and move the Squirrel C++ glue templates to script/api/template 2011-11-29 23:29:20 +00:00
truebrain e60747a604 (svn r23372) -Move: move squirrel export script to script/api/ 2011-11-29 23:29:12 +00:00
truebrain 549e072041 (svn r23371) -Change: rename the DOXYGEN_AI_DOCS tag to DOXYGEN_API 2011-11-29 23:27:34 +00:00
truebrain 4d91f645c1 (svn r23370) -Add: support @api tag in API header files, to select which API should receive the defined classes and functions 2011-11-29 23:27:26 +00:00
truebrain 2c877b074e (svn r23369) -Codechange: use script includes when possible, not ai includes 2011-11-29 23:27:17 +00:00
truebrain e0d4c75cf4 (svn r23368) -Codechange: move FindLibrary down a few layers, so there is no layer violation anymore 2011-11-29 23:27:08 +00:00
truebrain 880f377fa6 (svn r23367) -Codechange: refactor GetSetting to ScriptInstance, to avoid global variable in script_controller 2011-11-29 23:27:01 +00:00
truebrain 3e6d026129 (svn r23366) -Codechange: move most of the Dummy code to script/, unifying it 2011-11-29 23:26:52 +00:00
truebrain 4505edbd47 (svn r23365) -Codechange: move constants to a single place, to avoid duplication (and in time, different values) 2011-11-29 23:26:44 +00:00
truebrain 34d7f01ccc (svn r23364) -Codechange: refactor AIConfig, moving it mostly to Scriptconfig 2011-11-29 23:26:35 +00:00
truebrain c38c16773c (svn r23363) -Documentation: document a tiny bit better what is in variables 2011-11-29 23:21:59 +00:00
truebrain e37149a1de (svn r23362) -Codechange: refactor AIScanner, splitting it in AIScannerInfo and AIScannerLibrary 2011-11-29 23:21:52 +00:00
truebrain ae8540f5e0 (svn r23361) -Codechange: move multiplayer DoCommand callback code so other script users can call their own 2011-11-29 23:21:42 +00:00
truebrain 3da8b5097a (svn r23360) -Codechange: move AIInstance to ScriptInstance, making it reusable by other script API instances 2011-11-29 23:21:33 +00:00
truebrain 75c4bd280a (svn r23359) -Codechange: move AI_VMSuspend to Script_Suspend (and to its own file) 2011-11-29 23:21:24 +00:00
truebrain bbd9facb44 (svn r23358) -Codechange: move AI_FatalError to Script_FatalError (and to its own file) 2011-11-29 23:21:13 +00:00
truebrain 99cb93ef6f (svn r23357) -Codechange: move AIStorage to ScriptStorage 2011-11-29 23:21:04 +00:00
truebrain 98103121d4 (svn r23355) -Codechange: rename all AI* to Script* (Rubidium) 2011-11-29 23:15:35 +00:00
truebrain afdb67a353 (svn r23354) -Codechange: move all src/ai/api/ai_*.[hc]pp files to src/script/api/script_* (Rubidium) 2011-11-29 23:07:38 +00:00
truebrain 00877dd6d3 (svn r23352) -Add: support dynamically adding an API prefix when returning a C++ class to Squirrel 2011-11-29 22:24:30 +00:00
truebrain bff7c33aa9 (svn r23350) -Add: support different ScriptTypes in the helper functions for GetClassName (Rubidium) 2011-11-29 22:23:33 +00:00
truebrain d03bbdd4ac (svn r23295) -Codechange: put ImportLibrary in AIController (and document the parameters for NoAI docs) 2011-11-23 13:39:36 +00:00
truebrain 492c96d214 (svn r23294) -Codechange: sq_pop in native callback is just a waste of CPU cycles, as the top is reset in all cases 2011-11-23 13:38:35 +00:00
truebrain 54ec3a2a3f (svn r23293) -Codechange: make LoadScript/LoadFile non-static 2011-11-23 13:37:48 +00:00
truebrain 32b28bb868 (svn r23264) -Fix (r23263): save before commit 2011-11-19 15:51:21 +00:00
truebrain b927ae5be9 (svn r23263) -Documentation: stop naming AI in comments in script/ files; it makes no sense 2011-11-19 15:50:10 +00:00
rubidium 160294ff22 (svn r23216) -Codechange: introduce the concept of having different tar lists 2011-11-14 21:28:43 +00:00
rubidium 3f7eb71b17 (svn r23210) -Codechange: generate the GetClassName function for the AI classes programmatically 2011-11-13 20:52:39 +00:00
rubidium 7fd1e1df81 (svn r23198) -Codechange: introduce a free that takes const pointers so we don't need to cast to void/non-const before being able to free 2011-11-12 13:00:29 +00:00
rubidium 65d0d19b16 (svn r23118) -Feature: [NoAI] Allow AIs to query the amount of remaining operations for the current tick 2011-11-04 23:20:14 +00:00
yexo 02913f40b0 (svn r23117) -Fix: [NoAI] calling require() to include a file gave you 100.000 opcodes for free 2011-11-04 23:14:23 +00:00
rubidium 748bddb31a (svn r22906) -Fix (r22905): variable not properly cleared before use 2011-09-08 10:02:43 +00:00
rubidium 62777dbd84 (svn r22905) -Fix [FS#4753] (r22836): the name of the tar was removed from the AI filenames, so record it differently. Also removes some of the hackery to get the tar's filename 2011-09-08 09:55:04 +00:00
rubidium 414c397000 (svn r22904) -Codechange: add tar filename to file scanning 2011-09-08 09:48:52 +00:00
michi_cc 65637d8941 (svn r22874) -Fix [FS#4747]: Check size of various buffers before allocation. (monoid) 2011-09-02 20:16:41 +00:00
rubidium d839aa0475 (svn r22836) -Codechange: simplify the scanning of (AI) scripts 2011-08-25 10:37:28 +00:00
rubidium 5a620d1c65 (svn r22406) -Document: some more "random-ish" tidbits 2011-05-01 19:51:52 +00:00
rubidium e9fe58d7bf (svn r22120) -Change: [NoAI] Prevent AIs from getting consistently over their allowed amount of operations by subtracting the amount they went over "budget" from the budget for the next "tick". 2011-02-20 20:28:49 +00:00
alberth 7303f7d199 (svn r21595) -Codechange: Some header files had their name changed, update the ifndef/define/endif lines. 2010-12-22 11:46:41 +00:00
rubidium 090d6fb8b7 (svn r21311) -Fix [FS#4260]: AIs in an infinite loop in e.g. autosave, but also getting settings and such from info.nut, would not be interrupted after a while causing OpenTTD to seem to not respond 2010-11-24 17:00:37 +00:00
rubidium 30f2afac9b (svn r20632) -Cleanup: remove "a few" unneeded includes, and add them to some headers 2010-08-26 22:01:16 +00:00
rubidium 1fa98e1695 (svn r20574) -Codechange: a little over 1 million vehicles should be enough for the forseeable future 2010-08-19 20:58:30 +00:00
rubidium 8a2fecbff5 (svn r19776) -Change: don't scan for tars in the script scanner; it has already happened. 2010-05-10 09:35:25 +00:00
smatz 23041d9720 (svn r19509) -Codechange: remove superfluous semicolons after function definitions 2010-03-23 22:37:18 +00:00
rubidium b1bd106703 (svn r18862) -Fix [FS#3544]: don't pass AI strings through iconv 2010-01-18 15:41:38 +00:00
rubidium 82fc28f77f (svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header 2010-01-15 16:41:15 +00:00
rubidium b2e9b5d612 (svn r18683) -Fix: it's not an other 2010-01-01 18:45:40 +00:00
smatz 061de2b2df (svn r18555) -Fix (r15027): fake definitions of squirrel types were wrong for eg. 64bit systems, don't use them 2009-12-19 23:46:15 +00:00
rubidium 73df2c7a25 (svn r18418) -Fix [FS#3298]: under some circumstances a pointer could be left untouched and then freed. Make sure this doesn't happen by ensuring it starts out as NULL instead of 'garbage'. 2009-12-06 20:22:21 +00:00
rubidium 6cfeb1920f (svn r18038) -Fix [FS#3290] (r17402): AIs failed to load their data from savegames by crashing them when they tried 2009-11-11 18:13:17 +00:00
rubidium d79439fb3c (svn r17963) -Codechange: some documentation style 2009-11-03 17:30:08 +00:00
rubidium d6cded5380 (svn r17693) -Cleanup: remove some unneeded includes 2009-10-04 17:16:41 +00:00
rubidium e8ddf001c8 (svn r17570) -Fix: a number of Doxygen warnings about missing parameters, which were sometimes missing and sometimes just typos 2009-09-19 09:51:14 +00:00
rubidium f2487381ce (svn r17545) -Fix [FS#3202]: [NoAI] AIs had 'infinite' time when running code from the global scope 2009-09-15 16:18:10 +00:00
yexo ca6c4ee98a (svn r17498) -Add [NoAI]: Enable the squirrel std math library 2009-09-10 20:19:12 +00:00
Yexo 48e1a5a350 (svn r17402) -Fix (r16425): During every save a few slots on the squirrel stack were leaked 2009-09-03 11:32:16 +00:00
rubidium 7fbc33dae1 (svn r17248) -Fix: add GPL license notice where appropriate 2009-08-21 20:21:05 +00:00
yexo a4afa140f3 (svn r17223) -Change [NoAI] [FS#2980]: Crash an AI when it uses a DoCommand / Sleep instead of just printing an error message in the AI Debug Window 2009-08-19 16:14:15 +00:00
yexo 5a863925ee (svn r17221) -Change [NoAI] [FS#3101]: when the API requests a string as parameter allow every squirrel type and convert to a string 2009-08-19 14:54:52 +00:00
rubidium 5186d1d4f6 (svn r17013) -Fix [FS#3074]: concatenating strings in Squirrel when non-ASCII strings were received from OpenTTD failed. The number of bytes in an UTF-8 encoded string isn't always the same as the number of characters in the decoded (into wchars) string 2009-07-31 23:13:53 +00:00
yexo c2ed884012 (svn r17005) -Add [NoAI]: AIAbstractList::SORT_ASCENDING / SORT_DESCENDING 2009-07-31 19:50:01 +00:00
yexo f085d7775b (svn r16834) -Fix [FS#3034]: call the AI Save() function only once so AIs can't crash OpenTTD 2009-07-15 19:47:06 +00:00
yexo 4ea3e511bd (svn r16502) -Fix [FS#2935]: when an AI was suspended while in a function called (indirectly) via call/acall/pcall OpenTTD crashed. Fix this by disallowing AIs to be suspended while called via call/acall/pcall.
IMPORTANT FOR AI WRITERS: AIs can no longer call any DoCommand functions (change anything, build vehicles, etc.) in a function called (indirectly) via call/acall/pcall. Where possible, please rewrite your code so it doesn't use call/acall/pcall
2009-06-01 22:00:47 +00:00
rubidium 765c65b738 (svn r16493) -Fix: missing/wrong @file doxygen 'headers' 2009-06-01 12:56:18 +00:00
smatz c03ce4b1c7 (svn r16492) -Remove: support for gcc2. It hasn't been able to compile OTTD for months. All attempts to do another workaround failed. 2009-06-01 11:49:46 +00:00
yexo 7425bf779d (svn r16425) -Change [FS#2869]: Stop an AI when it takes too long to initialize or load 2009-05-25 21:55:47 +00:00
rubidium 21f5f602f9 (svn r16222) -Fix: unneeded pointer dereferencing 2009-05-03 21:56:46 +00:00
yexo 3949050714 (svn r16113) -Feature [NoAI]: Add UseAsRandomAI as function in info.nut. When an AI returns false, it'll never be chosen as random AI. 2009-04-21 19:13:32 +00:00
yexo a91ff2d5e8 (svn r16093) -Feature [FS#2808]: Add GetURL() as possible function to info.nut. If AIs implement it, that url is shown when the AI crashes and also in the AI selection window. 2009-04-19 15:14:23 +00:00
yexo 384599ef2c (svn r15743) -Codechange: move the definitions of some fake squirrel types to their own file. 2009-03-16 17:30:49 +00:00
yexo ce4744e1d6 (svn r15736) -Codechange: Split AIScanner/AIFileInfo to the more generic classes ScriptScanner/ScriptFileInfo. 2009-03-15 22:41:57 +00:00
yexo 13fb01d07d (svn r15668) -Fix: a few typos. 2009-03-11 07:32:31 +00:00
yexo b520d73285 (svn r15629) -Fix (r15027): Validate strings that are passed from squirrel to the API, not strings passed from the API to squirrel. 2009-03-06 14:21:26 +00:00
yexo cabfe35e54 (svn r15558) -Cleanup: Remove some unnecessary friend declarations. 2009-02-23 19:35:19 +00:00
glx ab3fc1d437 (svn r15535) -Fix (r15460, pre noai merge): use '.' as 'any' for squirrel calls typechecking as stated in squirrel docs 2009-02-21 00:43:18 +00:00
yexo 7dc607b2d1 (svn r15531) -Fix (r15467): AIs were stopped at every error, whether they caught it or not. 2009-02-20 13:39:18 +00:00
yexo 8e14d77d05 (svn r15467) -Fix [NoAI]: AIs with an error in their info.nut are no longer available in-game. 2009-02-13 17:17:34 +00:00
rubidium e1b1fd18b5 (svn r15406) -Fix: make Valuate actually cost a few opcodes to not make it a single opcode method of doing lots of the same thing. This should resolve most of the hiccups caused by AIs. 2009-02-08 01:51:48 +00:00
rubidium 1c30c8c801 (svn r15330) -Fix [FS#2597]: leaking of Squirrel when using circular references (by enabling the GC). 2009-02-03 22:42:42 +00:00
glx 6d6e2232ea (svn r15316) -Fix [NoAI]: ignore unprintable chars when returning a string to squirrel 2009-02-02 13:46:26 +00:00
Yexo decd0c51e4 (svn r15222) -Fix: The squirrel stack was corrupted if an AI called any C++ function during Save(). 2009-01-23 10:30:50 +00:00
Yexo 0d52f3b417 (svn r15204) -Fix (r15167): The check was a bit too restrictive, the top of the stack needs to be resetted if another function is called while the AI is running but not suspended. 2009-01-22 02:01:07 +00:00
Yexo eab990901b (svn r15167) -Fix [FS#2558]: The top of the stack was resetted after executing the first Ai tick causing random AI crashes. 2009-01-20 14:11:58 +00:00
smatz 7cea618fcc (svn r15061) -Fix (r15027): three files were missing the Id header 2009-01-13 15:49:32 +00:00
truebrain bcbbf2c366 (svn r15045) -Add [NoAI API CHANGE]: in info.nut you can now have (optional) 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-13 01:46:46 +00:00
truebrain a3dd7506d3 (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
2009-01-12 17:11:45 +00:00