67 techPresenter = presenter;
72 techPresenter = presenter;
92 std::list<const VehicleType*> units;
93 std::list<const BuildingType*> buildings;
101 units.push_back( v );
107 buildings.push_back( b );
124 buildings.remove( b );
128 storage.
units = units;
145 list<const Technology*> techs;
147 return *techs.begin();
153 void runResearch(
Player& player, vector<const Technology*>* newTechs, vector<ASCString>* newTechAdapter )
171 newTechs->push_back( newTech );
177 newTechAdapter->insert( newTechAdapter->end(), techAdapters.begin(), techAdapters.end() );
179 if ( techPresenter ) {
static bool anyTechAvailable(const Player &player)
checks, which vehicle and building types are newly available.
The (base-) classes which are thrown as exceptions.
void checkForNewResearch(Player &player)
Let's the user select new technology for research if the current research projects are finished...
void evaluate(TechnologyPresenter::Gadgets &storage)
checks, which vehicle are now available that where not available when constructor was called...
map accessing and usage routines used by ASC and the mapeditor
miscellaneous functions which are used by ASC and all its tools
NewGadgetDetection(Player &player)
static TechnologyPresenter * techPresenter
TechAdapterDependency techDependency
bool eventually_available(const Research &res, list< const Technology * > *dependencies) const
vector< ASCString > addanytechnology(const Technology *tech)
adds the technology to the list of available technologies
ItemRepositoryLoader< BuildingType > buildingTypeRepository("buildingtype")
Interface for some basic classes from which all of ASC's dialogs are derived.
ItemRepositoryLoader< Technology > technologyRepository("technology")
std::list< const BuildingType * > buildings
ResearchAvailabilityStatus
Handling the connection of buildings by pipelines, powerlines etc.
bool chooseSingleTechnology(Player &player)
lets the player choose an available technology
virtual void showTechnology(const Technology *tech, const Gadgets &newGadgetsAvailable)=0
The class describing properties that are common to all vehicles of a certain kind.
std::list< const VehicleType * > units
The class describing properties that are common to all buildings of a certain kind.
ItemRepositoryLoader< VehicleType > vehicleTypeRepository("vehicletype")
Interface for recording and playing replays.
Interface to game event dialogs.
const Technology * activetechnology
the technology that is currently being researched
const Technology * goal
the technology that is defined as long-term goal
Interface for all the fighting routines of ASC.
The interface for the buildingtype class.
ResearchAvailabilityStatus techAvailable(const Technology *tech) const
~SuppressTechPresentation()
void runResearch(Player &player, vector< const Technology * > *newTechs, vector< ASCString > *newTechAdapter)
progresses in the current research, automatically chosing technologies towards the research goal...
void setResearchPresenter(TechnologyPresenter *presenter)
registers the class that will present newly researched technologies to the user
Interface for all the dialog boxes used by the game and the mapeditor.
Research research
the status of the scientific research
The interface for the artificial intelligence of ASC.
procedure for loading and writing savegames, maps etc.
bool techResearched(int id) const
const T & max(const T &a, const T &b, const T &c)
the different players in ASC. There may be 8 players (0..7) and neutral units (8) ...
SuppressTechPresentation()
bool available(const Research &research) const
Interface for a small general-purpose stack (not type safe)
const Technology * getNextTechnologyTowardsGoal(Player &player)