_________ __ __ / _____// |_____________ _/ |______ ____ __ __ ______ \_____ \\ __\_ __ \__ \\ __\__ \ / ___\| | \/ ___/ / \| | | | \// __ \| | / __ \_/ /_/ > | /\___ \ /_______ /|__| |__| (____ /__| (____ /\___ /|____//____ > \/ \/ \//_____/ \/ ______________________ ______________________ T H E W A R B E G I N S Stratagus - A free fantasy real time strategy game engine
#include "stratagus.h"
#include "commands.h"
#include "interface.h"
#include "iolib.h"
#include "map.h"
#include "network.h"
#include "player.h"
#include "ui.h"
#include "unittype.h"
#include "unit.h"
#include "unit_find.h"
#include "unit_manager.h"
selection.cpp - The units' selection. | |
unsigned int | MaxSelectable |
std::vector< CUnit * > | Selected |
Maximum number of selected units. More... | |
static std::vector< CUnit * > | TeamSelected [PlayerMax] |
All selected units. More... | |
static std::vector< CUnit * > | _Selected |
teams currently selected units More... | |
static std::vector< CUnit * > | _TeamSelected [PlayerMax] |
save of Selected More... | |
static unsigned | GroupId |
save of TeamSelected More... | |
bool | IsOnlySelected (const CUnit &unit) |
Unique group # for automatic groups. More... | |
void | SaveSelection () |
Save selection to restore after. More... | |
void | RestoreSelection () |
Restore selection. More... | |
void | UnSelectAll () |
Clear current selection. More... | |
static void | HandleSuicideClick (CUnit &unit) |
static void | ChangeSelectedUnits (CUnit **units, unsigned int count) |
void | ChangeTeamSelectedUnits (CPlayer &player, const std::vector< CUnit * > &units) |
Changed TeamUnit Selection. More... | |
int | SelectUnit (CUnit &unit) |
Add a unit to selection. More... | |
void | SelectSingleUnit (CUnit &unit) |
Select one unit as selection. More... | |
void | UnSelectUnit (CUnit &unit) |
Remove a unit from selection. More... | |
int | ToggleSelectUnit (CUnit &unit) |
Add a unit to selected if not already selected, remove it otherwise. More... | |
int | SelectUnitsByType (CUnit &base) |
Select units from the same type (if selectable by rectangle) More... | |
int | ToggleUnitsByType (CUnit &base) |
Toggle units from the same type (if selectable by rectangle) More... | |
int | SelectGroup (int group_number, GroupSelectionMode mode) |
Select the units belonging to a particular group. More... | |
int | AddGroupFromUnitToSelection (CUnit &unit) |
Add the units from the same group as the one in parameter. More... | |
int | SelectGroupFromUnit (CUnit &unit) |
Select the units from the same group as the one in parameter. More... | |
static bool | SelectOrganicUnitsInTable (std::vector< CUnit * > &table, bool added_table) |
static void | SelectSpritesInsideRectangle (const PixelPos &corner_topleft, const PixelPos &corner_bottomright, std::vector< CUnit * > &table) |
int | SelectUnitsInRectangle (const PixelPos &corner_topleft, const PixelPos &corner_bottomright) |
Select the units in the selection rectangle. More... | |
int | AddSelectedUnitsInRectangle (const PixelPos &corner_topleft, const PixelPos &corner_bottomright) |
Add the units in the selection rectangle to the current selection. More... | |
int | SelectGroundUnitsInRectangle (const PixelPos &corner_topleft, const PixelPos &corner_bottomright) |
Select ground units in the selection rectangle. More... | |
int | SelectAirUnitsInRectangle (const PixelPos &corner_topleft, const PixelPos &corner_bottomright) |
Select flying units in the selection rectangle. More... | |
int | AddSelectedGroundUnitsInRectangle (const PixelPos &corner_topleft, const PixelPos &corner_bottomright) |
Add ground units in the selection rectangle to the current selection. More... | |
int | AddSelectedAirUnitsInRectangle (const PixelPos &corner_topleft, const PixelPos &corner_bottomright) |
Add flying units in the selection rectangle to the current selection. More... | |
void | SaveSelections (CFile &file) |
Save current selection state. More... | |
void | CleanSelections () |
Clean up selections. More... | |
static int | CclSetGroupId (lua_State *l) |
static int | CclSelection (lua_State *l) |
void | SelectionCclRegister () |
Register CCL selection features. More... | |
int AddGroupFromUnitToSelection | ( | CUnit & | unit | ) |
Add the units from the same group as the one in parameter.
Add units from group of a particular unit to selection.
unit | unit belonging to the group to be selected. |
int AddSelectedAirUnitsInRectangle | ( | const PixelPos & | corner_topleft, |
const PixelPos & | corner_bottomright | ||
) |
Add flying units in the selection rectangle to the current selection.
Add the air units in the rectangle to the current selection
corner_topleft,start | of selection rectangle |
corner_bottomright | end of selection rectangle |
int AddSelectedGroundUnitsInRectangle | ( | const PixelPos & | corner_topleft, |
const PixelPos & | corner_bottomright | ||
) |
Add ground units in the selection rectangle to the current selection.
Add the ground units in the rectangle to the current selection
corner_topleft,start | of selection rectangle |
corner_bottomright | end of selection rectangle |
int AddSelectedUnitsInRectangle | ( | const PixelPos & | corner_topleft, |
const PixelPos & | corner_bottomright | ||
) |
Add the units in the selection rectangle to the current selection.
Add the units in the rectangle to the current selection
corner_topleft,start | of selection rectangle |
corner_bottomright | end of selection rectangle |
|
static |
Define the current selection.
l | Lua state. |
|
static |
Set the current group id. (Needed for load/save)
l | Lua state. |
Replace a group of selected units by an other group of units.
units | Array of units to be selected. |
count | Number of units in array to be selected. |
Changed TeamUnit Selection.
Change A Unit Selection from my Team
player | The Player who is selecting the units |
units | The Units to add/remove |
void CleanSelections | ( | ) |
Clean up selections.
Clean up the selection module.
bool IsOnlySelected | ( | const CUnit & | unit | ) |
Unique group # for automatic groups.
Check if unit is the currently only selected.
void RestoreSelection | ( | ) |
Restore selection.
Restore selection.
void SaveSelection | ( | ) |
Save selection to restore after.
Save selection to restore after.
Save current selection state.
Save current selection state.
file | Output file. |
int SelectAirUnitsInRectangle | ( | const PixelPos & | corner_topleft, |
const PixelPos & | corner_bottomright | ||
) |
Select flying units in the selection rectangle.
Select own air units in a rectangle.
corner_topleft,start | of selection rectangle |
corner_bottomright | end of selection rectangle |
int SelectGroundUnitsInRectangle | ( | const PixelPos & | corner_topleft, |
const PixelPos & | corner_bottomright | ||
) |
Select ground units in the selection rectangle.
Select own ground units in a rectangle.
corner_topleft,start | of selection rectangle |
corner_bottomright | end of selection rectangle |
int SelectGroup | ( | int | group_number, |
GroupSelectionMode | mode | ||
) |
Select the units belonging to a particular group.
Change selected units to units from group group_number Doesn't change the selection if the group has no unit.
group_number | number of the group to be selected. |
int SelectGroupFromUnit | ( | CUnit & | unit | ) |
Select the units from the same group as the one in parameter.
Select units from group of a particular unit. Doesn't change the selection if the group has no unit, or the unit doesn't belong to any group.
unit | unit belonging to the group to be selected. |
void SelectionCclRegister | ( | ) |
Register CCL selection features.
Register CCL features for selections.
|
static |
Select the units selectable by rectangle in a local table. Act like a filter: The source table is modified. Return the original table if no unit is found.
table | Input/Output table of units. |
return true if at least a unit is found;
Select one unit as selection.
Select a single unit, unselecting the previous ones
unit | Pointer to unit to be selected. |
|
static |
Selects units from the table whose sprite is at least partially covered by the rectangle. The rectangle is determined by coordinates of its upper left and lower right corner expressed in screen map coordinate system.
corner_topleft | coord of upper left corner of the rectangle |
corner_bottomright | coord of lower right corner of the rectangle |
table | table of units |
int SelectUnit | ( | CUnit & | unit | ) |
Add a unit to selection.
Add a unit to the other selected units.
unit | Pointer to unit to add. |
int SelectUnitsByType | ( | CUnit & | base | ) |
Select units from the same type (if selectable by rectangle)
Select units from a particular type and belonging to the local player.
The base is included in the selection and defines the type of the other units to be selected.
base | Select all units of same type. |
FIXME: 0 can't happen. Maybe when scripting will use it?
FIXME: should always select the nearest 9 units to the base!
Select the units in the selection rectangle.
Select units in a rectangle. Proceed in order in none found:
corner_topleft,start | of selection rectangle |
corner_bottomright | end of selection rectangle |
int ToggleSelectUnit | ( | CUnit & | unit | ) |
Add a unit to selected if not already selected, remove it otherwise.
Toggle the selection of a unit in a group of selected units
unit | Pointer to unit to be toggled. |
unit | Pointer to unit to be toggled. |
int ToggleUnitsByType | ( | CUnit & | base | ) |
Toggle units from the same type (if selectable by rectangle)
Toggle units from a particular type and belonging to the local player.
The base is included in the selection and defines the type of the other units to be selected.
base | Toggle all units of same type. |
FIXME: toggle not written FIXME: should always select the nearest 9 units to the base!
void UnSelectAll | ( | ) |
Clear current selection.
Unselect all the units in the current selection
Remove a unit from selection.
Unselect unit
unit | Pointer to unit to be unselected. |
|
static |
teams currently selected units
|
static |
save of TeamSelected
unsigned int MaxSelectable |
std::vector<CUnit *> Selected |
Maximum number of selected units.
How many units could be selected.