(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
This commit is contained in:
truebrain
2009-01-12 17:11:45 +00:00
parent ec97e1fd0d
commit c2406cd42d
257 changed files with 34620 additions and 7576 deletions

View File

@@ -0,0 +1,38 @@
/* $Id$ */
/** @file ai_gamesettings.cpp Implementation of AIGameSettings. */
#include "ai_gamesettings.hpp"
#include "../../settings_internal.h"
#include "../../saveload/saveload.h"
/* static */ bool AIGameSettings::IsValid(const char *setting)
{
uint i;
const SettingDesc *sd = GetPatchFromName(setting, &i);
return sd != NULL && sd->desc.cmd != SDT_STRING;
}
/* static */ int32 AIGameSettings::GetValue(const char *setting)
{
if (!IsValid(setting)) return -1;
uint i;
const SettingDesc *sd = GetPatchFromName(setting, &i);
void *ptr = GetVariableAddress(&_settings_game, &sd->save);
if (sd->desc.cmd == SDT_BOOLX) return *(bool*)ptr;
return (int32)ReadValue(ptr, sd->save.conv);
}
/* static */ bool AIGameSettings::IsDisabledVehicleType(AIVehicle::VehicleType vehicle_type)
{
switch (vehicle_type) {
case AIVehicle::VEHICLE_RAIL: return _settings_game.ai.ai_disable_veh_train;
case AIVehicle::VEHICLE_ROAD: return _settings_game.ai.ai_disable_veh_roadveh;
case AIVehicle::VEHICLE_WATER: return _settings_game.ai.ai_disable_veh_ship;
case AIVehicle::VEHICLE_AIR: return _settings_game.ai.ai_disable_veh_aircraft;
default: return true;
}
}