#include "stdafx.h" #include "CGameInterface.h" #include "lib/BattleState.h" #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN //excludes rarely used stuff from windows headers - delete this line if something is missing #include //for .dll libs #else #include #endif /* * CGameInterface.cpp, part of VCMI engine * * Authors: listed in file AUTHORS in main folder * * License: GNU General Public License v2.0 or later * Full text of license available in license.txt file, in main folder * */ template rett * createAnyAI(std::string dllname, std::string methodName) { char temp[50]; rett * ret=NULL; rett*(*getAI)(); void(*getName)(char*); std::string dllPath; #ifdef _WIN32 dllPath = LIB_DIR "/" +dllname+".dll"; HINSTANCE dll = LoadLibraryA(dllPath.c_str()); if (!dll) { tlog1 << "Cannot open AI library ("<dllName = dllname; return ret; } CGlobalAI * CAIHandler::getNewAI(std::string dllname) { return createAnyAI(dllname, "GetNewAI"); } CBattleGameInterface * CAIHandler::getNewBattleAI(std::string dllname ) { return createAnyAI(dllname, "GetNewBattleAI"); } BattleAction CGlobalAI::activeStack( const CStack * stack ) { BattleAction ba; ba.actionType = BattleAction::DEFEND; ba.stackNumber = stack->ID; return ba; }