____ _ __
/ __ )____ _____ | | / /___ ___________
/ __ / __ \/ ___/ | | /| / / __ `/ ___/ ___/
/ /_/ / /_/ (__ ) | |/ |/ / /_/ / / (__ )
/_____/\____/____/ |__/|__/\__,_/_/ /____/
A futuristic real-time strategy game.
This file is part of Bos Wars.
(C) Copyright 2001-2007 by the Bos Wars and Stratagus Project.
Distributed under the "GNU General Public License"
#include <stdio.h>
#include <stdlib.h>
#include "stratagus.h"
#include "unittype.h"
#include "animation.h"
#include "player.h"
#include "unit.h"
#include "unit_cache.h"
#include "sound.h"
#include "actions.h"
#include "map.h"
#include "ai.h"
#include "interface.h"
#include "pathfinder.h"
#include "construct.h"
Go to the source code of this file.
Functions | |
| static int | GetProductionCost (CUnitType *type) |
| static void | UpdateConstructionFrame (CUnit *unit) |
| static void | MoveToLocation (CUnit *unit) |
| static CUnit * | CheckAlreadyBuilding (CUnit *unit, CUnitType *type, int x, int y) |
| static CUnit * | CheckCanBuild (CUnit *unit) |
| static void | StartBuilding (CUnit *unit, CUnit *ontop) |
| void | HandleActionBuild (CUnit *unit) |
| Handle command built. | |
| void | HandleActionBuilt (CUnit *unit) |
| Handle command train. | |
Definition in file action_build.cpp.
Check if we're already building this type at this location
Definition at line 152 of file action_build.cpp.
References CUnit::IsAllied(), CUnit::Player, CUnitCache::Select(), UnitCache, and UnitMax.
Referenced by CheckCanBuild().
Check if the unit can build
| unit | Unit to check |
Definition at line 172 of file action_build.cpp.
References _, AiCanNotBuild(), CPlayer::AiEnabled, CanBuildUnitType(), CheckAlreadyBuilding(), CPlayer::CheckLimits(), CUnit::ClearAction(), CUnitType::Name, CPlayer::Notify(), NotifyYellow, CUnit::Orders, CUnit::Player, CUnitType::RepairRange, CUnit::SubAction, CUnit::Type, UnitActionRepair, CUnit::Wait, CUnit::X, CUnit::Y, and y.
Referenced by HandleActionBuild().
| static int GetProductionCost | ( | CUnitType * | type | ) | [static] |
Get the production cost of a unit type Use the energy cost if it's not 0, otherwise use magma cost
Definition at line 61 of file action_build.cpp.
References EnergyCost, MagmaCost, and CUnitType::ProductionCosts.
Referenced by HandleActionBuilt(), HandleActionTrain(), and UpdateConstructionFrame().
| void HandleActionBuild | ( | CUnit * | unit | ) |
Handle command built.
Unit builds a building.
| unit | Unit that builds a building |
Definition at line 346 of file action_build.cpp.
References CheckCanBuild(), MoveToLocation(), StartBuilding(), and CUnit::SubAction.
| void HandleActionBuilt | ( | CUnit * | unit | ) |
Handle command train.
Unit under Construction
| unit | Unit that is being built |
Definition at line 366 of file action_build.cpp.
References _, _C_, CPlayer::AiEnabled, AiWorkComplete(), CUnitType::BuilderLost, CUnitType::BuilderOutside, CUnit::_order_data_::Built, CUnit::_order_data_::_order_built_::Cancel, CUnit::ClearAction(), CommandResource(), CUnit::Constructed, CUnit::CurrentSightRange, CUnit::Data, DebugPrint, CUnit::Direction, DropOutOnSide(), EnergyCost, CUnit::Frame, GetProductionCost(), CUnitType::Harvester, HP_INDEX, IsOnlySelected, LetUnitDie(), LookingW, MagmaCost, MapMarkUnitSight(), CVariable::Max, MyRand, CUnitType::Name, CPlayer::Notify(), NotifyGreen, NoUnitP, CUnitType::NumDirections, CUnit::Player, PlayUnitSound(), CUnit::_order_data_::_order_built_::Progress, CUnitSound::Ready, CPlayer::RemoveFromUnitsConsumingResources(), SelectedUnitChanged(), SIGHTRANGE_INDEX, CUnitType::Slot, SoundConfig::Sound, CUnitType::Sound, SpeedBuild, CUnit::Stats, CUnitType::StillFrame, ThisPlayer, CUnitType::TileHeight, CUnitType::TileWidth, CUnit::Type, CPlayer::UnitsConsumingResourcesActual, CPlayer::UnitTypesCount, UnitUpdateHeading(), UpdateConstructionFrame(), UpdateForNewUnit(), CVariable::Value, CUnit::Variable, CUnitStats::Variables, VoiceBuilding, VoiceReady, VoiceWorkCompleted, CUnit::_order_data_::_order_built_::Worker, CUnit::X, and CUnit::Y.
| static void MoveToLocation | ( | CUnit * | unit | ) | [static] |
Move to build location
| unit | Unit to move |
Definition at line 104 of file action_build.cpp.
References _, AiCanNotReach(), CPlayer::AiEnabled, CUnit::ClearAction(), DoActionMove(), NewResetPath, CPlayer::Notify(), NotifyYellow, CUnit::Orders, PF_REACHED, PF_UNREACHABLE, CUnit::Player, CUnit::SubAction, CUnit::Wait, CUnit::X, and CUnit::Y.
Referenced by HandleActionBuild(), and HandleActionRepair().
Start building
Definition at line 243 of file action_build.cpp.
References _, CPlayer::AddToUnitsConsumingResources(), AiCanNotBuild(), CPlayer::AiEnabled, Assert, CUnitType::BuilderOutside, CUnit::_order_data_::Built, CalculateRequestedAmount(), CUnit::ClearAction(), CUnit::Constructed, CUnit::CurrentSightRange, CUnit::Data, CUnit::Direction, DirectionToHeading(), HP_INDEX, MakeUnit(), MapMarkUnitSight(), MaxCosts, CUnitType::Name, CPlayer::Notify(), NotifyYellow, NoUnitP, OnTopDetails(), CUnit::Orders, CUnit::Place(), CUnit::Player, CUnitType::ProductionCosts, CUnitType::ProductionEfficiency, CUnit::ProductionEfficiency, CUnit::_order_data_::_order_built_::Progress, CUnit::RefsIncrease(), CUnit::Release(), CUnit::Remove(), CUnitType::RepairRange, CBuildRestrictionOnTop::ReplaceOnBuild, CUnit::ResourcesHeld, CUnitType::Slot, CUnit::SubAction, CUnit::Type, UnitActionBuilt, UnitActionRepair, UnitClearOrders(), UnitLost(), CPlayer::UnitTypesCount, UnitUpdateHeading(), UpdateConstructionFrame(), CVariable::Value, CUnit::Variable, CUnit::_order_data_::_order_built_::Worker, CUnit::X, CUnit::Y, and y.
Referenced by HandleActionBuild().
| static void UpdateConstructionFrame | ( | CUnit * | unit | ) | [static] |
Update construction frame
| unit | The building under construction. |
Definition at line 72 of file action_build.cpp.
References CUnit::_order_data_::Built, CUnitType::Construction, CUnit::Data, CConstructionFrame::Frame, CUnit::Frame, CUnit::_order_data_::_order_built_::Frame, CConstruction::Frames, GetProductionCost(), CConstructionFrame::Next, CUnit::_order_data_::_order_built_::Progress, and CUnit::Type.
Referenced by HandleActionBuilt(), and StartBuilding().
1.5.6