Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
turretai.cpp File Reference
#include "config_xml.h"
#include "vs_globals.h"
#include "turretai.h"
#include "cmd/unit_generic.h"
#include "cmd/role_bitmask.h"

Go to the source code of this file.

Functions

unsigned int FireBitmask (Unit *parent, bool shouldfire, bool firemissile)
 

Function Documentation

unsigned int FireBitmask ( Unit parent,
bool  shouldfire,
bool  firemissile 
)

Definition at line 639 of file fire.cpp.

References ROLES::EVERYTHING_ELSE, ROLES::FIRE_GUNS, ROLES::FIRE_MISSILES, ROLES::FIRE_ONLY_AUTOTRACKERS, VegaConfig::getVariable(), XMLSupport::parse_bool(), Unit::Target(), Unit::unitRole(), and vs_config.

Referenced by Orders::TurretAI::Execute(), and Orders::FireAt::FireWeapons().

640 {
641  unsigned int firebitm = ROLES::EVERYTHING_ELSE;
642  Unit *un = parent->Target();
643  if (un) {
644  firebitm = ( 1<<un->unitRole() );
645 
646  static bool AlwaysFireAutotrackers =
647  XMLSupport::parse_bool( vs_config->getVariable( "AI", "AlwaysFireAutotrackers", "true" ) );
648  if (shouldfire)
649  firebitm |= ROLES::FIRE_GUNS;
650  if (AlwaysFireAutotrackers && !shouldfire) {
651  firebitm |= ROLES::FIRE_GUNS;
652  firebitm |= ROLES::FIRE_ONLY_AUTOTRACKERS;
653  }
654  if (firemissile)
655  firebitm = ROLES::FIRE_MISSILES; //stops guns
656  }
657  return firebitm;
658 }