commit
e2cc06f84c
|
@ -28,137 +28,138 @@
|
||||||
*/
|
*/
|
||||||
enum Error
|
enum Error
|
||||||
{
|
{
|
||||||
ERR_OK = 0, //! < ok
|
ERR_OK = 0, //! < ok
|
||||||
ERR_GENERIC = 1, //! < any error
|
ERR_GENERIC = 1, //! < any error
|
||||||
ERR_CONTINUE = 2, //! < continues
|
ERR_CONTINUE = 2, //! < continues
|
||||||
ERR_STOP = 3, //! < stops
|
ERR_STOP = 3, //! < stops
|
||||||
ERR_CMD = 4, //! < unknown command
|
ERR_CMD = 4, //! < unknown command
|
||||||
ERR_MANIP_VEH = 100, //! < inappropriate vehicle
|
ERR_MANIP_VEH = 100, //! < inappropriate vehicle
|
||||||
ERR_MANIP_FLY = 101, //! < impossible in flight
|
ERR_MANIP_FLY = 101, //! < impossible in flight
|
||||||
ERR_MANIP_BUSY = 102, //! < taking: hands already occupied
|
ERR_MANIP_BUSY = 102, //! < taking: hands already occupied
|
||||||
ERR_MANIP_NIL = 103, //! < taking: nothing has to take
|
ERR_MANIP_NIL = 103, //! < taking: nothing has to take
|
||||||
ERR_MANIP_MOTOR = 105, //! < busy: impossible to move
|
ERR_MANIP_MOTOR = 105, //! < busy: impossible to move
|
||||||
ERR_MANIP_OCC = 106, //! < busy: location already occupied
|
ERR_MANIP_OCC = 106, //! < busy: location already occupied
|
||||||
ERR_MANIP_FRIEND = 107, //! < no other vehicle
|
ERR_MANIP_FRIEND = 107, //! < no other vehicle
|
||||||
ERR_MANIP_RADIO = 108, //! < impossible because radioactive
|
ERR_MANIP_RADIO = 108, //! < impossible because radioactive
|
||||||
ERR_MANIP_WATER = 109, //! < not possible under water
|
ERR_MANIP_WATER = 109, //! < not possible under water
|
||||||
ERR_MANIP_EMPTY = 110, //! < nothing to deposit
|
ERR_MANIP_EMPTY = 110, //! < nothing to deposit
|
||||||
ERR_BUILD_FLY = 120, //! < not possible in flight
|
ERR_BUILD_FLY = 120, //! < not possible in flight
|
||||||
ERR_BUILD_WATER = 121, //! < not possible under water
|
ERR_BUILD_WATER = 121, //! < not possible under water
|
||||||
ERR_BUILD_ENERGY = 122, //! < not enough energy
|
ERR_BUILD_ENERGY = 122, //! < not enough energy
|
||||||
ERR_BUILD_METALAWAY = 123, //! < lack of metal (too far)
|
ERR_BUILD_METALAWAY = 123, //! < lack of metal (too far)
|
||||||
ERR_BUILD_METALNEAR = 124, //! < lack of metal (too close)
|
ERR_BUILD_METALNEAR = 124, //! < lack of metal (too close)
|
||||||
ERR_BUILD_METALINEX = 125, //! < lack of metal
|
ERR_BUILD_METALINEX = 125, //! < lack of metal
|
||||||
ERR_BUILD_FLAT = 126, //! < not enough flat ground
|
ERR_BUILD_FLAT = 126, //! < not enough flat ground
|
||||||
ERR_BUILD_FLATLIT = 127, //! < not enough flat ground space
|
ERR_BUILD_FLATLIT = 127, //! < not enough flat ground space
|
||||||
ERR_BUILD_BUSY = 128, //! < location occupied
|
ERR_BUILD_BUSY = 128, //! < location occupied
|
||||||
ERR_BUILD_BASE = 129, //! < too close to the rocket
|
ERR_BUILD_BASE = 129, //! < too close to the rocket
|
||||||
ERR_BUILD_NARROW = 130, //! < buildings too close
|
ERR_BUILD_NARROW = 130, //! < buildings too close
|
||||||
ERR_BUILD_MOTOR = 131, //! < built: not possible in movement
|
ERR_BUILD_MOTOR = 131, //! < built: not possible in movement
|
||||||
ERR_BUILD_DISABLED = 132, //! < built: can not produce this object in this mission
|
ERR_BUILD_DISABLED = 132, //! < built: can not produce this object in this mission
|
||||||
ERR_BUILD_RESEARCH = 133, //! < built: can not produce not researched object
|
ERR_BUILD_RESEARCH = 133, //! < built: can not produce not researched object
|
||||||
ERR_SEARCH_FLY = 140, //! < not possible in flight
|
ERR_SEARCH_FLY = 140, //! < not possible in flight
|
||||||
ERR_SEARCH_VEH = 141, //! < inappropriate vehicle
|
ERR_SEARCH_VEH = 141, //! < inappropriate vehicle
|
||||||
ERR_SEARCH_MOTOR = 142, //! < impossible in movement
|
ERR_SEARCH_MOTOR = 142, //! < impossible in movement
|
||||||
ERR_TERRA_VEH = 150, //! < inappropriate vehicle
|
ERR_TERRA_VEH = 150, //! < inappropriate vehicle
|
||||||
ERR_TERRA_ENERGY = 151, //! < not enough energy
|
ERR_TERRA_ENERGY = 151, //! < not enough energy
|
||||||
ERR_TERRA_FLOOR = 152, //! < inappropriate ground
|
ERR_TERRA_FLOOR = 152, //! < inappropriate ground
|
||||||
ERR_TERRA_BUILDING = 153, //! < building too close
|
ERR_TERRA_BUILDING = 153, //! < building too close
|
||||||
ERR_TERRA_OBJECT = 154, //! < object too close
|
ERR_TERRA_OBJECT = 154, //! < object too close
|
||||||
ERR_FIRE_VEH = 160, //! < inappropriate vehicle
|
ERR_FIRE_VEH = 160, //! < inappropriate vehicle
|
||||||
ERR_FIRE_ENERGY = 161, //! < not enough energy
|
ERR_FIRE_ENERGY = 161, //! < not enough energy
|
||||||
ERR_FIRE_FLY = 162, //! < not possible in flight
|
ERR_FIRE_FLY = 162, //! < not possible in flight
|
||||||
ERR_RECOVER_VEH = 170, //! < inappropriate vehicle
|
ERR_RECOVER_VEH = 170, //! < inappropriate vehicle
|
||||||
ERR_RECOVER_ENERGY = 171, //! < not enough energy
|
ERR_RECOVER_ENERGY = 171, //! < not enough energy
|
||||||
ERR_RECOVER_NULL = 172, //! < lack of ruin
|
ERR_RECOVER_NULL = 172, //! < lack of ruin
|
||||||
ERR_CONVERT_EMPTY = 180, //! < no stone was transformed
|
ERR_CONVERT_EMPTY = 180, //! < no stone was transformed
|
||||||
ERR_SHIELD_VEH = 190, //! < inappropriate vehicle
|
ERR_SHIELD_VEH = 190, //! < inappropriate vehicle
|
||||||
ERR_SHIELD_ENERGY = 191, //! < not enough energy
|
ERR_SHIELD_ENERGY = 191, //! < not enough energy
|
||||||
ERR_MOVE_IMPOSSIBLE = 200, //! < move impossible
|
ERR_MOVE_IMPOSSIBLE = 200, //! < move impossible
|
||||||
ERR_FIND_IMPOSSIBLE = 201, //! < find impossible
|
ERR_FIND_IMPOSSIBLE = 201, //! < find impossible
|
||||||
ERR_GOTO_IMPOSSIBLE = 210, //! < goto impossible
|
ERR_GOTO_IMPOSSIBLE = 210, //! < goto impossible
|
||||||
ERR_GOTO_ITER = 211, //! < goto too complicated
|
ERR_GOTO_ITER = 211, //! < goto too complicated
|
||||||
ERR_GOTO_BUSY = 212, //! < goto destination occupied
|
ERR_GOTO_BUSY = 212, //! < goto destination occupied
|
||||||
ERR_DERRICK_NULL = 300, //! < no ore underground
|
ERR_DERRICK_NULL = 300, //! < no ore underground
|
||||||
ERR_STATION_NULL = 301, //! < no energy underground
|
ERR_STATION_NULL = 301, //! < no energy underground
|
||||||
ERR_TOWER_POWER = 310, //! < no battery
|
ERR_TOWER_POWER = 310, //! < no battery
|
||||||
ERR_TOWER_ENERGY = 311, //! < more energy
|
ERR_TOWER_ENERGY = 311, //! < more energy
|
||||||
ERR_RESEARCH_POWER = 320, //! < no battery
|
ERR_RESEARCH_POWER = 320, //! < no battery
|
||||||
ERR_RESEARCH_ENERGY = 321, //! < more energy
|
ERR_RESEARCH_ENERGY = 321, //! < more energy
|
||||||
ERR_RESEARCH_TYPE = 322, //! < the wrong type of battery
|
ERR_RESEARCH_TYPE = 322, //! < the wrong type of battery
|
||||||
ERR_RESEARCH_ALREADY = 323, //! < research already done
|
ERR_RESEARCH_ALREADY = 323, //! < research already done
|
||||||
ERR_ENERGY_NULL = 330, //! < no energy underground
|
ERR_ENERGY_NULL = 330, //! < no energy underground
|
||||||
ERR_ENERGY_LOW = 331, //! < not enough energy
|
ERR_ENERGY_LOW = 331, //! < not enough energy
|
||||||
ERR_ENERGY_EMPTY = 332, //! < lack of metal
|
ERR_ENERGY_EMPTY = 332, //! < lack of metal
|
||||||
ERR_ENERGY_BAD = 333, //! < transforms only the metal
|
ERR_ENERGY_BAD = 333, //! < transforms only the metal
|
||||||
ERR_BASE_DLOCK = 340, //! < doors locked
|
ERR_BASE_DLOCK = 340, //! < doors locked
|
||||||
ERR_BASE_DHUMAN = 341, //! < you must be on spaceship
|
ERR_BASE_DHUMAN = 341, //! < you must be on spaceship
|
||||||
ERR_LABO_NULL = 350, //! < nothing to analyze
|
ERR_LABO_NULL = 350, //! < nothing to analyze
|
||||||
ERR_LABO_BAD = 351, //! < analyzes only organic ball
|
ERR_LABO_BAD = 351, //! < analyzes only organic ball
|
||||||
ERR_LABO_ALREADY = 352, //! < analysis already made
|
ERR_LABO_ALREADY = 352, //! < analysis already made
|
||||||
ERR_NUCLEAR_NULL = 360, //! < no energy underground
|
ERR_NUCLEAR_NULL = 360, //! < no energy underground
|
||||||
ERR_NUCLEAR_LOW = 361, //! < not enough energy
|
ERR_NUCLEAR_LOW = 361, //! < not enough energy
|
||||||
ERR_NUCLEAR_EMPTY = 362, //! < lack of uranium
|
ERR_NUCLEAR_EMPTY = 362, //! < lack of uranium
|
||||||
ERR_NUCLEAR_BAD = 363, //! < transforms only uranium
|
ERR_NUCLEAR_BAD = 363, //! < transforms only uranium
|
||||||
ERR_FACTORY_NULL = 370, //! < no metal
|
ERR_FACTORY_NULL = 370, //! < no metal
|
||||||
ERR_FACTORY_NEAR = 371, //! < vehicle too close
|
ERR_FACTORY_NEAR = 371, //! < vehicle too close
|
||||||
ERR_RESET_NEAR = 380, //! < vehicle too close
|
ERR_RESET_NEAR = 380, //! < vehicle too close
|
||||||
ERR_INFO_NULL = 390, //! < no information terminal
|
ERR_INFO_NULL = 390, //! < no information terminal
|
||||||
ERR_VEH_VIRUS = 400, //! < vehicle infected by a virus
|
ERR_VEH_VIRUS = 400, //! < vehicle infected by a virus
|
||||||
ERR_BAT_VIRUS = 401, //! < building infected by a virus
|
ERR_BAT_VIRUS = 401, //! < building infected by a virus
|
||||||
ERR_DESTROY_NOTFOUND = 410, //! < not found anything to destroy
|
ERR_DESTROY_NOTFOUND = 410, //! < not found anything to destroy
|
||||||
ERR_WRONG_OBJ = 420, //! < inappropriate vehicle
|
ERR_WRONG_OBJ = 420, //! < inappropriate vehicle
|
||||||
ERR_VEH_POWER = 500, //! < no battery
|
ERR_VEH_POWER = 500, //! < no battery
|
||||||
ERR_VEH_ENERGY = 501, //! < more energy
|
ERR_VEH_ENERGY = 501, //! < more energy
|
||||||
ERR_FLAG_FLY = 510, //! < impossible in flight
|
ERR_FLAG_FLY = 510, //! < impossible in flight
|
||||||
ERR_FLAG_WATER = 511, //! < impossible during swimming
|
ERR_FLAG_WATER = 511, //! < impossible during swimming
|
||||||
ERR_FLAG_MOTOR = 512, //! < impossible in movement
|
ERR_FLAG_MOTOR = 512, //! < impossible in movement
|
||||||
ERR_FLAG_BUSY = 513, //! < taking: already creating flag
|
ERR_FLAG_BUSY = 513, //! < taking: already creating flag
|
||||||
ERR_FLAG_CREATE = 514, //! < too many flags
|
ERR_FLAG_CREATE = 514, //! < too many flags
|
||||||
ERR_FLAG_PROXY = 515, //! < too close
|
ERR_FLAG_PROXY = 515, //! < too close
|
||||||
ERR_FLAG_DELETE = 516, //! < nothing to remove
|
ERR_FLAG_DELETE = 516, //! < nothing to remove
|
||||||
ERR_MISSION_NOTERM = 600, //! < Mission not completed
|
ERR_MISSION_NOTERM = 600, //! < Mission not completed
|
||||||
ERR_DELETEMOBILE = 700, //! < vehicle destroyed
|
ERR_DELETEMOBILE = 700, //! < vehicle destroyed
|
||||||
ERR_DELETEBUILDING = 701, //! < building destroyed
|
ERR_DELETEBUILDING = 701, //! < building destroyed
|
||||||
ERR_TOOMANY = 702, //! < too many objects
|
ERR_TOOMANY = 702, //! < too many objects
|
||||||
ERR_OBLIGATORYTOKEN = 800, //! < compulsory instruction missing
|
ERR_OBLIGATORYTOKEN = 800, //! < compulsory instruction missing
|
||||||
ERR_PROHIBITEDTOKEN = 801, //! < instruction prohibited
|
ERR_PROHIBITEDTOKEN = 801, //! < instruction prohibited
|
||||||
|
ERR_AIM_IMPOSSIBLE = 900, //! < cannot aim at specified angle(s)
|
||||||
|
|
||||||
INFO_FIRST = 10000, //! < first information
|
INFO_FIRST = 10000, //! < first information
|
||||||
INFO_BUILD = 10001, //! < construction builded
|
INFO_BUILD = 10001, //! < construction builded
|
||||||
INFO_CONVERT = 10002, //! < metal available
|
INFO_CONVERT = 10002, //! < metal available
|
||||||
INFO_RESEARCH = 10003, //! < search ended
|
INFO_RESEARCH = 10003, //! < search ended
|
||||||
INFO_FACTORY = 10004, //! < vehicle manufactured
|
INFO_FACTORY = 10004, //! < vehicle manufactured
|
||||||
INFO_LABO = 10005, //! < analysis ended
|
INFO_LABO = 10005, //! < analysis ended
|
||||||
INFO_ENERGY = 10006, //! < battery available
|
INFO_ENERGY = 10006, //! < battery available
|
||||||
INFO_NUCLEAR = 10007, //! < nuclear battery available
|
INFO_NUCLEAR = 10007, //! < nuclear battery available
|
||||||
INFO_FINDING = 10008, //! < nuclear battery available
|
INFO_FINDING = 10008, //! < nuclear battery available
|
||||||
INFO_MARKPOWER = 10020, //! < location for station found
|
INFO_MARKPOWER = 10020, //! < location for station found
|
||||||
INFO_MARKURANIUM = 10021, //! < location for derrick found
|
INFO_MARKURANIUM = 10021, //! < location for derrick found
|
||||||
INFO_MARKSTONE = 10022, //! < location for derrick found
|
INFO_MARKSTONE = 10022, //! < location for derrick found
|
||||||
INFO_MARKKEYa = 10023, //! < location for derrick found
|
INFO_MARKKEYa = 10023, //! < location for derrick found
|
||||||
INFO_MARKKEYb = 10024, //! < location for derrick found
|
INFO_MARKKEYb = 10024, //! < location for derrick found
|
||||||
INFO_MARKKEYc = 10025, //! < location for derrick found
|
INFO_MARKKEYc = 10025, //! < location for derrick found
|
||||||
INFO_MARKKEYd = 10026, //! < location for derrick found
|
INFO_MARKKEYd = 10026, //! < location for derrick found
|
||||||
INFO_RESEARCHTANK = 10030, //! < research ended
|
INFO_RESEARCHTANK = 10030, //! < research ended
|
||||||
INFO_RESEARCHFLY = 10031, //! < research ended
|
INFO_RESEARCHFLY = 10031, //! < research ended
|
||||||
INFO_RESEARCHTHUMP = 10032, //! < research ended
|
INFO_RESEARCHTHUMP = 10032, //! < research ended
|
||||||
INFO_RESEARCHCANON = 10033, //! < research ended
|
INFO_RESEARCHCANON = 10033, //! < research ended
|
||||||
INFO_RESEARCHTOWER = 10034, //! < research ended
|
INFO_RESEARCHTOWER = 10034, //! < research ended
|
||||||
INFO_RESEARCHPHAZER = 10035, //! < research ended
|
INFO_RESEARCHPHAZER = 10035, //! < research ended
|
||||||
INFO_RESEARCHSHIELD = 10036, //! < research ended
|
INFO_RESEARCHSHIELD = 10036, //! < research ended
|
||||||
INFO_RESEARCHATOMIC = 10037, //! < research ended
|
INFO_RESEARCHATOMIC = 10037, //! < research ended
|
||||||
INFO_WIN = 10040, //! < win
|
INFO_WIN = 10040, //! < win
|
||||||
INFO_LOST = 10041, //! < lost
|
INFO_LOST = 10041, //! < lost
|
||||||
INFO_LOSTq = 10042, //! < lost immediately
|
INFO_LOSTq = 10042, //! < lost immediately
|
||||||
INFO_WRITEOK = 10043, //! < record done
|
INFO_WRITEOK = 10043, //! < record done
|
||||||
INFO_DELETEPATH = 10050, //! < way mark deleted
|
INFO_DELETEPATH = 10050, //! < way mark deleted
|
||||||
INFO_DELETEMOTHER = 10100, //! < insect killed
|
INFO_DELETEMOTHER = 10100, //! < insect killed
|
||||||
INFO_DELETEANT = 10101, //! < insect killed
|
INFO_DELETEANT = 10101, //! < insect killed
|
||||||
INFO_DELETEBEE = 10102, //! < insect killed
|
INFO_DELETEBEE = 10102, //! < insect killed
|
||||||
INFO_DELETEWORM = 10103, //! < insect killed
|
INFO_DELETEWORM = 10103, //! < insect killed
|
||||||
INFO_DELETESPIDER = 10104, //! < insect killed
|
INFO_DELETESPIDER = 10104, //! < insect killed
|
||||||
INFO_BEGINSATCOM = 10105, //! < use your SatCom
|
INFO_BEGINSATCOM = 10105, //! < use your SatCom
|
||||||
|
|
||||||
ERR_MAX //! < number of values
|
ERR_MAX //! < number of values
|
||||||
};
|
};
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
|
|
||||||
CTaskGunGoal::CTaskGunGoal(CObject* object) : CTask(object)
|
CTaskGunGoal::CTaskGunGoal(CObject* object) : CTask(object)
|
||||||
{
|
{
|
||||||
|
m_aimImpossible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Object's destructor.
|
// Object's destructor.
|
||||||
|
@ -116,6 +117,12 @@ Error CTaskGunGoal::Start(float dirV, float dirH)
|
||||||
|
|
||||||
m_progress = 0.0f;
|
m_progress = 0.0f;
|
||||||
|
|
||||||
|
// direction was constrainted, hence resulting in impossible move
|
||||||
|
if (dirV != m_finalDirV || dirH != m_finalDirH)
|
||||||
|
{
|
||||||
|
m_aimImpossible = true;
|
||||||
|
}
|
||||||
|
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,12 +133,25 @@ Error CTaskGunGoal::IsEnded()
|
||||||
if ( m_engine->GetPause() ) return ERR_CONTINUE;
|
if ( m_engine->GetPause() ) return ERR_CONTINUE;
|
||||||
|
|
||||||
if ( m_initialDirV == m_finalDirV &&
|
if ( m_initialDirV == m_finalDirV &&
|
||||||
m_initialDirH == m_finalDirH ) return ERR_STOP;
|
m_initialDirH == m_finalDirH )
|
||||||
if ( m_progress < 1.0f ) return ERR_CONTINUE;
|
{
|
||||||
|
if ( m_aimImpossible )
|
||||||
|
return ERR_AIM_IMPOSSIBLE;
|
||||||
|
else
|
||||||
|
return ERR_STOP;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( m_progress < 1.0f ) return ERR_CONTINUE;
|
||||||
|
|
||||||
m_object->SetGunGoalV(m_finalDirV);
|
m_object->SetGunGoalV(m_finalDirV);
|
||||||
m_object->SetGunGoalH(m_finalDirH);
|
m_object->SetGunGoalH(m_finalDirH);
|
||||||
Abort();
|
Abort();
|
||||||
|
|
||||||
|
if ( m_aimImpossible )
|
||||||
|
{
|
||||||
|
return ERR_AIM_IMPOSSIBLE;
|
||||||
|
}
|
||||||
|
|
||||||
return ERR_STOP;
|
return ERR_STOP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,5 +44,7 @@ protected:
|
||||||
float m_finalDirV; // direction to reach
|
float m_finalDirV; // direction to reach
|
||||||
float m_initialDirH; // initial direction
|
float m_initialDirH; // initial direction
|
||||||
float m_finalDirH; // direction to reach
|
float m_finalDirH; // direction to reach
|
||||||
|
|
||||||
|
bool m_aimImpossible; // set to true if impossible aim was set
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1393,7 +1393,7 @@ bool CScript::Process(CScript* script, CBotVar* result, int &exception)
|
||||||
|
|
||||||
if ( err == ERR_STOP ) err = ERR_OK;
|
if ( err == ERR_STOP ) err = ERR_OK;
|
||||||
result->SetValInt(err); // indicates the error or ok
|
result->SetValInt(err); // indicates the error or ok
|
||||||
if ( err != ERR_OK && script->m_errMode == ERM_STOP )
|
if ( ShouldProcessStop(err, script->m_errMode) )
|
||||||
{
|
{
|
||||||
exception = err;
|
exception = err;
|
||||||
return false;
|
return false;
|
||||||
|
@ -1407,6 +1407,21 @@ bool CScript::Process(CScript* script, CBotVar* result, int &exception)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Returns true if error code means real error and exception must be thrown
|
||||||
|
|
||||||
|
bool CScript::ShouldProcessStop(Error err, int errMode)
|
||||||
|
{
|
||||||
|
// aim impossible - not a real error
|
||||||
|
if ( err == ERR_AIM_IMPOSSIBLE )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if ( err != ERR_OK && errMode == ERM_STOP )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Compilation of the instruction "detect(type)".
|
// Compilation of the instruction "detect(type)".
|
||||||
|
|
||||||
CBotTypResult CScript::cDetect(CBotVar* &var, void* user)
|
CBotTypResult CScript::cDetect(CBotVar* &var, void* user)
|
||||||
|
@ -2954,7 +2969,11 @@ bool CScript::rAim(CBotVar* var, CBotVar* result, int& exception, void* user)
|
||||||
var = var->GetNext();
|
var = var->GetNext();
|
||||||
var == 0 ? y=0.0f : y=var->GetValFloat();
|
var == 0 ? y=0.0f : y=var->GetValFloat();
|
||||||
err = script->m_primaryTask->StartTaskGunGoal(x*Math::PI/180.0f, y*Math::PI/180.0f);
|
err = script->m_primaryTask->StartTaskGunGoal(x*Math::PI/180.0f, y*Math::PI/180.0f);
|
||||||
if ( err != ERR_OK )
|
if ( err == ERR_AIM_IMPOSSIBLE )
|
||||||
|
{
|
||||||
|
result->SetValInt(err); // shows the error
|
||||||
|
}
|
||||||
|
else if ( err != ERR_OK )
|
||||||
{
|
{
|
||||||
delete script->m_primaryTask;
|
delete script->m_primaryTask;
|
||||||
script->m_primaryTask = 0;
|
script->m_primaryTask = 0;
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
|
|
||||||
#include "common/event.h"
|
#include "common/event.h"
|
||||||
|
|
||||||
|
#include "common/global.h"
|
||||||
|
|
||||||
#include "app/pausemanager.h"
|
#include "app/pausemanager.h"
|
||||||
|
|
||||||
#include "CBot/CBotDll.h"
|
#include "CBot/CBotDll.h"
|
||||||
|
@ -209,6 +211,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static bool Process(CScript* script, CBotVar* result, int &exception);
|
static bool Process(CScript* script, CBotVar* result, int &exception);
|
||||||
|
static bool ShouldProcessStop(Error err, int errMode);
|
||||||
static CObject* SearchInfo(CScript* script, CObject* object, float power);
|
static CObject* SearchInfo(CScript* script, CObject* object, float power);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
Loading…
Reference in New Issue