_________ __                 __
        /   _____//  |_____________ _/  |______     ____  __ __  ______
        \_____  \\   __\_  __ \__  \\   __\__  \   / ___\|  |  \/  ___/
        /        \|  |  |  | \// __ \|  |  / __ \_/ /_/  >  |  /\___ \
       /_______  /|__|  |__|  (____  /__| (____  /\___  /|____//____  >
               \/                  \/          \//_____/            \/
    ______________________                           ______________________
                          T H E   W A R   B E G I N S
                   Stratagus - A free fantasy real time strategy game engine

unit.h
Go to the documentation of this file.
1 // _________ __ __
2 // / _____// |_____________ _/ |______ ____ __ __ ______
3 // \_____ \\ __\_ __ \__ \\ __\__ \ / ___\| | \/ ___/
4 // / \| | | | \// __ \| | / __ \_/ /_/ > | /\___ |
5 // /_______ /|__| |__| (____ /__| (____ /\___ /|____//____ >
6 // \/ \/ \//_____/ \/
7 // ______________________ ______________________
8 // T H E W A R B E G I N S
9 // Stratagus - A free fantasy real time strategy game engine
10 //
12 //
13 // (c) Copyright 1998-2015 by Lutz Sammer, Jimmy Salmon and Andrettin
14 //
15 // This program is free software; you can redistribute it and/or modify
16 // it under the terms of the GNU General Public License as published by
17 // the Free Software Foundation; only version 2 of the License.
18 //
19 // This program is distributed in the hope that it will be useful,
20 // but WITHOUT ANY WARRANTY; without even the implied warranty of
21 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 // GNU General Public License for more details.
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program; if not, write to the Free Software
26 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
27 // 02111-1307, USA.
28 //
29 
30 #ifndef __UNIT_H__
31 #define __UNIT_H__
32 
34 
35 /*----------------------------------------------------------------------------
36 -- Includes
37 ----------------------------------------------------------------------------*/
38 
39 #include "settings.h"
40 #include <vector>
41 
42 #ifndef __UNITTYPE_H__
43 #include "unittype.h"
44 #endif
45 
46 #ifndef __PLAYER_H__
47 #include "player.h"
48 #endif
49 
50 #include "vec2i.h"
51 
52 /*----------------------------------------------------------------------------
53 -- Declarations
54 ----------------------------------------------------------------------------*/
55 
56 class CAnimation;
58 class CConstructionFrame;
59 class CFile;
60 class Missile;
61 class CMapField;
62 class COrder;
63 class CPlayer;
64 class CUnit;
65 class CUnitColors;
66 class CUnitPtr;
67 class CUnitStats;
68 class CUnitType;
69 class CUpgrade;
70 class CVariable;
71 class CViewport;
72 class PathFinderData;
73 class SpellType;
74 struct lua_State;
75 
76 typedef COrder *COrderPtr;
77 
78 /*
79 ** Configuration of the small (unit) AI.
80 ** sPPP PPdd dddd dddd 0000 0000 0hhh hhhh
81 ** s... .ppp pppp p... .... .... .... ....
82 ** s... ...I .... .... iiii i... .... ....
83 ** s... .... .... c... .... .... .... ....
84 */
85 #define PRIORITY_FACTOR 0x00080000
86 #define HEALTH_FACTOR 0x00000001
87 #define DISTANCE_FACTOR 0x00010000
88 #define INRANGE_FACTOR 0x00008000
89 #define INRANGE_BONUS 0x01000000
90 #define CANATTACK_BONUS 0x00080000
91 #define AIPRIORITY_BONUS 0x04000000
92 
93 /*
94 ** Same for alternate (simplified) implementation of the small (unit) AI.
95 ** sAT0 0000 0ppp pppp pddd dddd dhhh hhhh
96 */
97 #define AT_ATTACKED_BY_FACTOR 0x40000000
98 #define AT_THREAT_FACTOR 0x20000000
99 #define AT_PRIORITY_OFFSET 15
100 #define AT_DISTANCE_OFFSET 7
101 #define AT_PRIORITY_MASK_HI 0xFFFF8000
102 
103 #define AT_FARAWAY_REDUCE_OFFSET 14
104 
105 extern void SelectedUnitChanged();
107 
109 extern int MapDistanceBetweenTypes(const CUnitType &src, const Vec2i &pos1,
110  const CUnitType &dst, const Vec2i &pos2);
111 
121  LookingN = 0 * 32,
122  LookingNE = 1 * 32,
123  LookingE = 2 * 32,
124  LookingSE = 3 * 32,
125  LookingS = 4 * 32,
126  LookingSW = 5 * 32,
127  LookingW = 6 * 32,
128  LookingNW = 7 * 32
129 };
130 
131 #define NextDirection 32
132 #define UnitNotSeen 0x7fffffff
133 
134 class CUnit
136 {
137 public:
138  CUnit() : tilePos(-1, -1), pathFinderData(NULL), SavedOrder(NULL), NewOrder(NULL), CriticalOrder(NULL), Colors(-1),
139  AutoCastSpell(NULL), SpellCoolDownTimers(NULL), Variable(NULL) { Init(); }
140  ~CUnit();
141 
142  void Init();
143 
144  COrder *CurrentOrder() const { return Orders[0]; }
145 
146  unsigned int CurrentAction() const;
147 
148  bool IsIdle() const;
149 
150  void ClearAction();
151 
153  void RefsIncrease();
155  void RefsDecrease();
156 
158  void Init(const CUnitType &type);
160  void AssignToPlayer(CPlayer &player);
161 
163  void Draw(const CViewport &vp) const;
165  void Place(const Vec2i &pos);
166 
168  void MoveToXY(const Vec2i &pos);
170  void AddInContainer(CUnit &host);
172  void ChangeOwner(CPlayer &newplayer);
173 
175  void Remove(CUnit *host);
176 
177  void AssignWorkerToMine(CUnit &mine);
178  void DeAssignWorkerFromMine(CUnit &mine);
179 
181  void Release(bool final = false);
182 
183  bool RestoreOrder();
184  bool CanStoreOrder(COrder *order);
185 
186  // Cowards and invisible units don't attack unless ordered.
187  bool IsAgressive() const
188  {
189  return (Type->BoolFlag[CANATTACK_INDEX].value && !Type->BoolFlag[COWARD_INDEX].value
190  && Variable[INVISIBLE_INDEX].Value == 0);
191  }
192 
194  bool IsVisible(const CPlayer &player) const;
195 
196  inline bool IsInvisibile(const CPlayer &player) const
197  {
198  return (&player != Player && Variable[INVISIBLE_INDEX].Value > 0
199  && !Player->HasSharedVisionWith(player));
200  }
201 
208  bool IsAlive() const;
209 
216  inline bool IsAliveOnMap() const
217  {
218  return !Removed && IsAlive();
219  }
220 
228  inline bool IsVisibleAsGoal(const CPlayer &player) const
229  {
230  // Invisibility
231  if (IsInvisibile(player)) {
232  return false;
233  }
234  // Don't attack revealers
235  if (this->Type->BoolFlag[REVEALER_INDEX].value) {
236  return false;
237  }
238  if ((player.Type == PlayerTypes::PlayerComputer && !this->Type->BoolFlag[PERMANENTCLOAK_INDEX].value)
239  || IsVisible(player) || IsVisibleOnRadar(player)) {
240  return IsAliveOnMap();
241  } else {
242  return Type->BoolFlag[VISIBLEUNDERFOG_INDEX].value
243  && (Seen.ByPlayer & (1 << player.Index))
244  && !(Seen.Destroyed & (1 << player.Index));
245  }
246  }
247 
256  inline bool IsVisibleOnMap(const CPlayer &player) const
257  {
258  return IsAliveOnMap() && !IsInvisibile(player) && IsVisible(player);
259  }
260 
262  bool IsVisibleOnMinimap() const;
263 
264  // Returns true if unit is visible under radar (By player, or by shared vision)
265  bool IsVisibleOnRadar(const CPlayer &pradar) const;
266 
268  bool IsVisibleInViewport(const CViewport &vp) const;
269 
270  bool IsEnemy(const CPlayer &player) const;
271  bool IsEnemy(const CUnit &unit) const;
272  bool IsAllied(const CPlayer &player) const;
273  bool IsAllied(const CUnit &unit) const;
274  bool IsTeamed(const CPlayer &player) const;
275  bool IsTeamed(const CUnit &unit) const;
276 
277  bool IsUnusable(bool ignore_built_state = false) const;
278 
286  int MapDistanceTo(const CUnit &dst) const
287  {
288  return MapDistanceBetweenTypes(*Type, tilePos, *dst.Type, dst.tilePos);
289  }
290 
291  int MapDistanceTo(const Vec2i &pos) const;
292 
299  bool CanMove() const { return Type->CanMove(); }
300 
301  int GetDrawLevel() const;
302 
303  bool IsAttackRanged(CUnit *goal, const Vec2i &goalPos);
304 
307 
308 public:
310  {
311  friend class CUnitManager;
312  public:
313  CUnitManagerData() : slot(-1), unitSlot(-1) {}
314 
315  int GetUnitId() const { return slot; }
316  private:
317  int slot;
318  int unitSlot;
319  };
320 public:
321  // @note int is faster than shorts
322  unsigned int Refs;
323  unsigned int ReleaseCycle;
325  size_t PlayerSlot;
326 
333 
334  CUnit *NextWorker; //pointer to next assigned worker to "Goal" resource.
335  struct {
337  int Assigned;
338  int Active;
339  } Resource;
340 
342 
343  unsigned int Offset;
344 
345  const CUnitType *Type;
347  const CUnitStats *Stats;
349 
350  // Pathfinding stuff:
352 
353  // DISPLAY:
354  int Frame;
355  int Colors;
357 
358  signed char IX;
359  signed char IY;
360  unsigned char Direction; //: 8; /// angle (0-255) unit looking
361  unsigned char CurrentResource;
363 
364  unsigned char DamagedType;
365  unsigned long Attacked;
366  unsigned long Summoned;
367  unsigned Blink : 3;
368  unsigned Moving : 1;
369  unsigned ReCast : 1;
370  unsigned AutoRepair : 1;
371 
372  unsigned Burning : 1;
373  unsigned Destroyed : 1;
374  unsigned Removed : 1;
375  unsigned Selected : 1;
376 
377  unsigned Constructed : 1;
378  unsigned Active : 1;
379  unsigned Boarded : 1;
380  unsigned CacheLock : 1;
381 
382  unsigned Waiting : 1;
383  unsigned MineLow : 1;
384 
385  unsigned TeamSelected;
387  /* Seen stuff. */
390  struct _seen_stuff_ {
391  _seen_stuff_() : CFrame(NULL), Type(NULL), tilePos(-1, -1) {}
393  int Frame;
394  const CUnitType *Type;
396  signed char IX;
397  signed char IY;
398  unsigned Constructed : 1;
399  unsigned State : 3;
400 unsigned Destroyed : PlayerMax;
401 unsigned ByPlayer : PlayerMax;
402  } Seen;
403 
405 
406  unsigned long TTL;
407 
408  unsigned int GroupId;
409  unsigned int LastGroup;
410 
411  unsigned int Wait;
412  int Threshold;
414 
415  struct _unit_anim_ {
416  const CAnimation *Anim;
418  int Wait;
420  } Anim, WaitBackup;
421 
422 
423  std::vector<COrder *> Orders;
427 
430 
432 };
433 
434 #define NoUnitP (CUnit *)0
435 
436 
439 #define UnitNumber(unit) ((unit).UnitManagerData.GetUnitId())
440 
445 {
446 public:
448  ShowAttackRange(false), ShowMessages(true), ShowNoSelectionStats(true), BigScreen(false),
449  PauseOnLeave(true), GrayscaleIcons(false),
450  IconsShift(false), StereoSound(true), MineNotifications(false),
451  DeselectInMine(false), NoStatusLineTooltips(false),
453  IconFrameG(NULL), PressedIconFrameG(NULL), HardwareCursor(false),
455 
456  bool ShowSightRange;
461  bool BigScreen;
464  bool IconsShift;
465  bool StereoSound;
471 
472  int FrameSkip;
473 
480 
481  // these are "preferences" in the sense that the user wants to set these
482  // persistently across launches for single player games. However, they are
483  // relevant for network sync and replays, so the actually relevant storage
484  // is in GameSettings, and we just have properties for the lua code here and
485  // to initialize GameSettings to the user preferred defaults
487  s.AiExplores = AiExplores;
488  s.SimplifiedAutoTargeting = SimplifiedAutoTargeting;
489  s.AiChecksDependencies = AiChecksDependencies;
490  }
491 private:
492  bool AiExplores = true;
493  bool SimplifiedAutoTargeting = false;
494  bool AiChecksDependencies = false;
495 
496 #if USING_TOLUAPP
497 public:
498  bool get_AiExplores() { return AiExplores; }
499  void set_AiExplores(bool v) { AiExplores = GameSettings.AiExplores = v; }
500  bool get_SimplifiedAutoTargeting() { return SimplifiedAutoTargeting; }
501  void set_SimplifiedAutoTargeting(bool v) { SimplifiedAutoTargeting = GameSettings.SimplifiedAutoTargeting = v; }
502  bool get_AiChecksDependencies() { return AiChecksDependencies; }
503  void set_AiChecksDependencies(bool v) { AiChecksDependencies = GameSettings.AiChecksDependencies = v; }
504 #endif
505 };
506 
507 extern CPreference Preference;
508 
509 /*----------------------------------------------------------------------------
510 -- Variables
511 ----------------------------------------------------------------------------*/
512 
513 // in unit_draw.c
515 extern unsigned long ShowOrdersCount;
516 extern unsigned long ShowNameDelay;
517 extern unsigned long ShowNameTime;
518 extern bool EnableTrainingQueue;
519 extern bool EnableBuildingCapture;
520 extern bool RevealAttacker;
522 extern const CViewport *CurrentViewport;
523 extern void DrawUnitSelection(const CViewport &vp, const CUnit &unit);
524 extern void (*DrawSelection)(IntColor, int, int, int, int);
525 
526 extern unsigned int MaxSelectable;
527 extern std::vector<CUnit *> Selected;
528 
529 /*----------------------------------------------------------------------------
530 -- Functions
531 ----------------------------------------------------------------------------*/
532 
534 void MarkUnitFieldFlags(const CUnit &unit);
536 void UnmarkUnitFieldFlags(const CUnit &unit);
538 void UpdateUnitSightRange(CUnit &unit);
540 extern CUnit *MakeUnit(const CUnitType &type, CPlayer *player);
542 extern CUnit *MakeUnitAndPlace(const Vec2i &pos, const CUnitType &type, CPlayer *player);
544 void FindNearestDrop(const CUnitType &type, const Vec2i &goalPos, Vec2i &resPos, int heading);
546 extern void UnitLost(CUnit &unit);
548 extern void UnitClearOrders(CUnit &unit);
550 extern void UpdateForNewUnit(const CUnit &unit, int upgrade);
552 extern void NearestOfUnit(const CUnit &unit, const Vec2i &pos, Vec2i *dpos);
553 
554 extern CUnit *GetFirstContainer(const CUnit &unit);
555 
557 extern void UnitGoesUnderFog(CUnit &unit, const CPlayer &player);
559 extern void UnitGoesOutOfFog(CUnit &unit, const CPlayer &player);
560 
562 extern void UnitCountSeen(CUnit &unit);
563 
565 extern void RescueUnits();
566 
568 extern int DirectionToHeading(const Vec2i &dir);
570 extern int DirectionToHeading(const PixelDiff &dir);
571 
573 extern void CorrectWallDirections(CUnit &unit);
575 extern void CorrectWallNeighBours(CUnit &unit);
576 
578 extern void UnitUpdateHeading(CUnit &unit);
580 extern void UnitHeadingFromDeltaXY(CUnit &unit, const Vec2i &delta);
581 
582 
584 extern void DropOutOnSide(CUnit &unit, int heading, const CUnit *container);
586 extern void DropOutNearest(CUnit &unit, const Vec2i &goalPos, const CUnit *container);
587 
589 extern void DropOutAll(const CUnit &unit);
590 
592 extern CBuildRestrictionOnTop *OnTopDetails(const CUnit &unit, const CUnitType *parent);
594 extern CUnit *CanBuildHere(const CUnit *unit, const CUnitType &type, const Vec2i &pos);
596 extern bool CanBuildOn(const Vec2i &pos, int mask);
598 extern CUnit *CanBuildUnitType(const CUnit *unit, const CUnitType &type, const Vec2i &pos, int real);
600 extern int ExtraDeathIndex(const char *death);
601 
603 extern CUnit *UnitOnScreen(int x, int y);
604 
606 extern void LetUnitDie(CUnit &unit, bool suicide = false);
608 extern void DestroyAllInside(CUnit &source);
610 extern int ThreatCalculate(const CUnit &unit, const CUnit &dest);
611 extern int TargetPriorityCalculate(const CUnit *const attacker, const CUnit *const dest);
612 
614 extern bool InReactRange(const CUnit &unit, const CUnit &target);
616 extern bool InAttackRange(const CUnit &unit, const CUnit &target);
618 extern bool InAttackRange(const CUnit &unit, const Vec2i &tilePos);
620 extern Vec2i GetRndPosInDirection(const Vec2i &srcPos, const CUnit &dirUnit, const bool dirFrom, const int minRange, const int devRadius, const int rangeDev = 3);
622 extern Vec2i GetRndPosInDirection(const Vec2i &srcPos, const Vec2i &dirPos, const bool dirFrom, const int minRange, const int devRadius, const int rangeDev = 3);
623 
624 
626 extern void HitUnit(CUnit *attacker, CUnit &target, int damage, const Missile *missile = NULL);
627 
629 extern int ViewPointDistance(const Vec2i &pos);
631 extern int ViewPointDistanceToUnit(const CUnit &dest);
632 
634 extern int CanTarget(const CUnitType &type, const CUnitType &dest);
636 extern int CanTransport(const CUnit &transporter, const CUnit &unit);
637 
639 extern std::string UnitReference(const CUnit &unit);
641 extern std::string UnitReference(const CUnitPtr &unit);
642 
644 extern void SaveUnit(const CUnit &unit, CFile &file);
645 
647 extern void InitUnits();
649 extern void CleanUnits();
650 
651 // in unit_draw.c
652 //--------------------
654 extern void DrawSelectionNone(IntColor, int, int, int, int);
656 extern void DrawSelectionCircle(IntColor, int, int, int, int);
658 extern void DrawSelectionCircleWithTrans(IntColor, int, int, int, int);
660 extern void DrawSelectionRectangle(IntColor, int, int, int, int);
662 extern void DrawSelectionRectangleWithTrans(IntColor, int, int, int, int);
664 extern void DrawSelectionCorners(IntColor, int, int, int, int);
666 extern void (*DrawSelectionEllipse(float factor))(IntColor, int, int, int, int);
667 
669 extern void DecorationCclRegister();
671 extern void LoadDecorations();
673 extern void CleanDecorations();
674 
676 extern void DrawShadow(const CUnitType &type, int frame, const PixelPos &screenPos);
678 extern int FindAndSortUnits(const CViewport &vp, std::vector<CUnit *> &table);
679 
681 extern void ShowOrder(const CUnit &unit);
682 
683 // in groups.c
684 
686 extern void SaveGroups(CFile &file);
688 extern void CleanGroups();
690 extern const std::vector<CUnit *> &GetUnitsOfGroup(int num);
691 
693 extern void ClearGroup(int num);
695 extern void AddToGroup(CUnit **units, unsigned int nunits, int num);
697 extern void SetGroup(CUnit **units, unsigned int nunits, int num);
699 extern void RemoveUnitFromGroups(CUnit &unit);
701 extern void GroupCclRegister();
702 extern bool IsGroupTainted(int num);
703 
704 // in selection.c
705 
707 extern bool IsOnlySelected(const CUnit &unit);
708 
710 extern void SaveSelection();
712 extern void RestoreSelection();
714 extern void UnSelectAll();
716 extern void ChangeTeamSelectedUnits(CPlayer &player, const std::vector<CUnit *> &units);
718 extern int SelectUnit(CUnit &unit);
720 extern void SelectSingleUnit(CUnit &unit);
722 extern void UnSelectUnit(CUnit &unit);
724 extern int ToggleSelectUnit(CUnit &unit);
726 extern int SelectUnitsByType(CUnit &base);
728 extern int ToggleUnitsByType(CUnit &base);
730 extern int SelectGroup(int group_number, GroupSelectionMode mode = SELECTABLE_BY_RECTANGLE_ONLY);
732 extern int AddGroupFromUnitToSelection(CUnit &unit);
734 extern int SelectGroupFromUnit(CUnit &unit);
736 extern int SelectUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright);
738 extern int SelectGroundUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright);
740 extern int SelectAirUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright);
742 extern int AddSelectedUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright);
744 extern int AddSelectedGroundUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright);
746 extern int AddSelectedAirUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright);
747 
749 extern void SaveSelections(CFile &file);
751 extern void CleanSelections();
753 extern void SelectionCclRegister();
754 
755 // in ccl_unit.c
756 
758 extern void UnitCclRegister();
759 
761 
762 #endif // !__UNIT_H__
CUnit::NewOrder
COrder * NewOrder
order to continue after current
Definition: unit.h:425
CPlayer
Diplomacy states for CommandDiplomacy.
Definition: player.h:83
CUnit::CurrentAction
unsigned int CurrentAction() const
Definition: unit.cpp:582
Settings::AiExplores
unsigned AiExplores
if game uses interior tileset or is generally "inside" for the purpose of obstacles
Definition: settings.h:250
CUnit::Threshold
int Threshold
action counter
Definition: unit.h:412
LookingNE
@ LookingNE
Unit looking north.
Definition: unit.h:122
ToggleUnitsByType
int ToggleUnitsByType(CUnit &base)
Toggle units from the same type (if selectable by rectangle)
Definition: selection.cpp:431
OnTopDetails
CBuildRestrictionOnTop * OnTopDetails(const CUnit &unit, const CUnitType *parent)
Return the rule used to build this building.
Definition: build.cpp:60
ToggleSelectUnit
int ToggleSelectUnit(CUnit &unit)
Add a unit to selected if not already selected, remove it otherwise.
Definition: selection.cpp:310
CUnit::_seen_stuff_
Unit visibility counts.
Definition: unit.h:390
DrawSelectionRectangle
void DrawSelectionRectangle(IntColor, int, int, int, int)
Draw rectangle around unit.
Definition: unit_draw.cpp:225
CUnitType::CanMove
bool CanMove() const
Definition: unittype.cpp:622
SelectGroupFromUnit
int SelectGroupFromUnit(CUnit &unit)
Select the units from the same group as the one in parameter.
Definition: selection.cpp:585
CUnit::GetMapPixelPosTopLeft
PixelPos GetMapPixelPosTopLeft() const
Definition: unit.cpp:2441
LookingE
@ LookingE
Unit looking north east.
Definition: unit.h:123
ClearGroup
void ClearGroup(int num)
Remove all units from a group.
Definition: groups.cpp:172
AddGroupFromUnitToSelection
int AddGroupFromUnitToSelection(CUnit &unit)
Add the units from the same group as the one in parameter.
Definition: selection.cpp:549
UpgradeMax
constexpr unsigned short UpgradeMax
How many unit types supported.
Definition: settings.h:64
PathFinderData
Definition: pathfinder.h:115
CUnit::CurrentSightRange
int CurrentSightRange
Current unit stats.
Definition: unit.h:348
CUnit::DamagedType
unsigned char DamagedType
Resources Held by a unit.
Definition: unit.h:364
CPreference::MineNotifications
bool MineNotifications
Enables/disables stereo sound effects.
Definition: unit.h:466
CPreference::PauseOnLeave
bool PauseOnLeave
If true, shows the big screen(without panels)
Definition: unit.h:462
CUnit::Selected
unsigned Selected
unit is removed (not on map)
Definition: unit.h:375
ResourcesMultiBuildersMultiplier
int ResourcesMultiBuildersMultiplier
Config: reveal attacker enabled.
Definition: unit.cpp:360
Selected
std::vector< CUnit * > Selected
How many units could be selected.
Definition: selection.cpp:57
AddSelectedGroundUnitsInRectangle
int AddSelectedGroundUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright)
Add ground units in the selection rectangle to the current selection.
Definition: selection.cpp:940
CUnit::IndividualUpgrades
bool IndividualUpgrades[UpgradeMax]
custom colors
Definition: unit.h:356
CUnit::UnderAttack
int UnderAttack
The counter while ai unit couldn't change target.
Definition: unit.h:413
CUnit::GetDrawLevel
int GetDrawLevel() const
Definition: unit.cpp:607
CanBuildOn
bool CanBuildOn(const Vec2i &pos, int mask)
Definition: build.cpp:487
CleanDecorations
void CleanDecorations()
Clean the decorations (health,mana) of units.
Definition: unit_draw.cpp:387
CUnit::IsUnusable
bool IsUnusable(bool ignore_built_state=false) const
Definition: unit.cpp:3440
CUnitType::BoolFlag
std::vector< BoolFlags > BoolFlag
Definition: unittype.h:646
CUnit::CriticalOrder
COrder * CriticalOrder
order for new trained units
Definition: unit.h:426
DestroyAllInside
void DestroyAllInside(CUnit &source)
Destroy all units inside another unit.
Definition: unit.cpp:2563
CUnit::Active
unsigned Active
Unit is in construction.
Definition: unit.h:378
CleanSelections
void CleanSelections()
Clean up selections.
Definition: selection.cpp:1092
settings.h
CUnit::AssignToPlayer
void AssignToPlayer(CPlayer &player)
Assign unit to player.
Definition: unit.cpp:742
IsOnlySelected
bool IsOnlySelected(const CUnit &unit)
Check if unit is the currently only selected.
Definition: selection.cpp:69
CUnit::UnitInside
CUnit * UnitInside
Number of units transported inside.
Definition: unit.h:329
MaxSelectable
unsigned int MaxSelectable
Definition: selection.cpp:55
CUnit::CanStoreOrder
bool CanStoreOrder(COrder *order)
Definition: unit.cpp:724
CUnit::ResourcesHeld
int ResourcesHeld
Definition: unit.h:362
CUnit::CacheLock
unsigned CacheLock
Unit is on board a transporter.
Definition: unit.h:380
CUnitPtr
Definition: unitptr.h:41
CUnit::AssignWorkerToMine
void AssignWorkerToMine(CUnit &mine)
Definition: unit.cpp:1952
CleanGroups
void CleanGroups()
Cleanup groups.
Definition: groups.cpp:141
UnSelectAll
void UnSelectAll()
Clear current selection.
Definition: selection.cpp:106
CUnit::TeamSelected
unsigned TeamSelected
This mine got a notification about its resources being low.
Definition: unit.h:385
CPreference::get_AiChecksDependencies
bool get_AiChecksDependencies()
Definition: unit.h:502
CUnit::Attacked
unsigned long Attacked
Index of damage type of unit which damaged this unit.
Definition: unit.h:365
UpdateUnitSightRange
void UpdateUnitSightRange(CUnit &unit)
Update unit->CurrentSightRange.
Definition: unit.cpp:989
GetUnitsOfGroup
const std::vector< CUnit * > & GetUnitsOfGroup(int num)
Get the array of units of a particular group.
Definition: groups.cpp:161
HitUnit
void HitUnit(CUnit *attacker, CUnit &target, int damage, const Missile *missile=NULL)
Hit unit with damage, if destroyed give attacker the points.
Definition: unit.cpp:3080
UnitUpdateHeading
void UnitUpdateHeading(CUnit &unit)
Update frame from heading.
Definition: unit.cpp:2161
AddSelectedUnitsInRectangle
int AddSelectedUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright)
Add the units in the selection rectangle to the current selection.
Definition: selection.cpp:783
PERMANENTCLOAK_INDEX
@ PERMANENTCLOAK_INDEX
Unit is visible under fog of war.
Definition: unittype.h:152
CUnit::Remove
void Remove(CUnit *host)
Remove unit from map/groups/...
Definition: unit.cpp:1321
EnableTrainingQueue
bool EnableTrainingQueue
Show unit's name for some time.
Definition: unit.cpp:357
CPlayer::Type
PlayerTypes Type
name of non computer
Definition: player.h:111
CUnit::_seen_stuff_::ByPlayer
unsigned ByPlayer
Unit seen destroyed or not.
Definition: unit.h:401
CVariable
Definition: unittype.h:118
IntColor
uint32_t IntColor
Definition: color.h:37
CUnit::IsAliveOnMap
bool IsAliveOnMap() const
Definition: unit.h:216
CUnit::MineLow
unsigned MineLow
Unit is waiting and playing its still animation.
Definition: unit.h:383
CUnit::_unit_anim_::CurrAnim
const CAnimation * CurrAnim
Anim.
Definition: unit.h:417
UnitGoesUnderFog
void UnitGoesUnderFog(CUnit &unit, const CPlayer &player)
Call when an Unit goes under fog.
Definition: unit.cpp:1640
CUnit::Init
void Init()
Definition: unit.cpp:404
InitUnits
void InitUnits()
Initialize unit module.
Definition: unit.cpp:3484
CUnit::Stats
const CUnitStats * Stats
Owner of this unit.
Definition: unit.h:347
void
void(CCONV *lazyGlBegin)(GLenum)
CPreference::HardwareCursor
bool HardwareCursor
Don't show messages on status line.
Definition: unit.h:469
CUnit::_seen_stuff_::tilePos
Vec2i tilePos
Pointer to last seen unit-type.
Definition: unit.h:395
SelectGroundUnitsInRectangle
int SelectGroundUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright)
Select ground units in the selection rectangle.
Definition: selection.cpp:841
LookingNW
@ LookingNW
Unit looking west.
Definition: unit.h:128
CUnit::PlayerSlot
size_t PlayerSlot
Definition: unit.h:325
VISIBLEUNDERFOG_INDEX
@ VISIBLEUNDERFOG_INDEX
Definition: unittype.h:151
REVEALER_INDEX
@ REVEALER_INDEX
Definition: unittype.h:146
CUnit::_seen_stuff_::IX
signed char IX
Last unit->tilePos Seen.
Definition: unit.h:396
CPreference::ShowNoSelectionStats
bool ShowNoSelectionStats
Show messages.
Definition: unit.h:460
vec2i.h
SelectGroup
int SelectGroup(int group_number, GroupSelectionMode mode=SELECTABLE_BY_RECTANGLE_ONLY)
Select the units belonging to a particular group.
Definition: selection.cpp:515
CUnit::Offset
unsigned int Offset
Map position X.
Definition: unit.h:343
COrder
Definition: actions.h:94
CUnit::Moving
unsigned Moving
Let selection rectangle blink.
Definition: unit.h:368
CPlayer::Index
int Index
Definition: player.h:108
UnitLost
void UnitLost(CUnit &unit)
Handle the loss of a unit (food,...)
Definition: unit.cpp:1371
InAttackRange
bool InAttackRange(const CUnit &unit, const CUnit &target)
Is target within attack range of this unit?
Definition: unit.cpp:2753
DrawSelectionCircleWithTrans
void DrawSelectionCircleWithTrans(IntColor, int, int, int, int)
Draw circle filled with alpha around unit.
Definition: unit_draw.cpp:210
DrawSelectionEllipse
void(*)(IntColor, int, int, int, int) DrawSelectionEllipse(float factor)
Draw ellipse around unit.
Definition: unit_draw.cpp:286
CVariable::Value
int Value
Maximum for the variable. (Assume min is 0.)
Definition: unittype.h:135
CUnit::Frame
int Frame
Definition: unit.h:354
CUnit::CUnitManagerData::GetUnitId
int GetUnitId() const
Definition: unit.h:315
SelectSingleUnit
void SelectSingleUnit(CUnit &unit)
Select one unit as selection.
Definition: selection.cpp:247
CUnit::_seen_stuff_::IY
signed char IY
Seen X image displacement to map position.
Definition: unit.h:397
CUnit::RestoreOrder
bool RestoreOrder()
Definition: unit.cpp:694
CUnit::~CUnit
~CUnit()
Definition: unit.cpp:486
SaveUnit
void SaveUnit(const CUnit &unit, CFile &file)
save unit-structure
Definition: unit_save.cpp:124
GetRndPosInDirection
Vec2i GetRndPosInDirection(const Vec2i &srcPos, const CUnit &dirUnit, const bool dirFrom, const int minRange, const int devRadius, const int rangeDev=3)
Return randomly selected position in direction (to/from) dirUnit from srcPos.
Definition: unit.cpp:2800
CUnit::_unit_anim_::Anim
const CAnimation * Anim
Definition: unit.h:416
CUnit::_seen_stuff_::_seen_stuff_
_seen_stuff_()
Definition: unit.h:391
ViewPointDistance
int ViewPointDistance(const Vec2i &pos)
Calculate the distance from current view point to coordinate.
Definition: unit.cpp:3276
UnitGoesOutOfFog
void UnitGoesOutOfFog(CUnit &unit, const CPlayer &player)
Call when an Unit goes out of fog.
Definition: unit.cpp:1681
CPreference::set_AiChecksDependencies
void set_AiChecksDependencies(bool v)
Definition: unit.h:503
CViewport
Definition: viewport.h:63
CUnit::ReleaseCycle
unsigned int ReleaseCycle
Reference counter.
Definition: unit.h:323
CUnitType
Definition: unittype.h:508
CUnit::_seen_stuff_::State
unsigned State
Unit seen construction.
Definition: unit.h:399
_directions_
_directions_
Definition: unit.h:120
CUnit::Variable
CVariable * Variable
Definition: unit.h:404
CUnit::CurrentResource
unsigned char CurrentResource
Definition: unit.h:361
CUnit::IsAllied
bool IsAllied(const CPlayer &player) const
Definition: unit.cpp:3401
Settings::AiChecksDependencies
unsigned AiChecksDependencies
Use alternate target choosing algorithm for auto attack mode (idle, attack-move, patrol,...
Definition: settings.h:252
LookingSW
@ LookingSW
Unit looking south.
Definition: unit.h:126
UpdateForNewUnit
void UpdateForNewUnit(const CUnit &unit, int upgrade)
Definition: unit.cpp:1501
CUnit::Waiting
unsigned Waiting
Unit is on lock by unitcache operations.
Definition: unit.h:382
IsGroupTainted
bool IsGroupTainted(int num)
Definition: groups.cpp:148
MakeUnitAndPlace
CUnit * MakeUnitAndPlace(const Vec2i &pos, const CUnitType &type, CPlayer *player)
Create a new unit and place on map.
Definition: unit.cpp:1242
CUnit::_unit_anim_::Unbreakable
int Unbreakable
Wait.
Definition: unit.h:419
LetUnitDie
void LetUnitDie(CUnit &unit, bool suicide=false)
Let a unit die.
Definition: unit.cpp:2457
CanTransport
int CanTransport(const CUnit &transporter, const CUnit &unit)
Can transporter transport the other unit.
Definition: unit.cpp:3342
CUnit::IsTeamed
bool IsTeamed(const CPlayer &player) const
Definition: unit.cpp:3421
ShowOrder
void ShowOrder(const CUnit &unit)
Show a unit's orders.
Definition: unit_draw.cpp:735
CUnit::Summoned
unsigned long Summoned
gamecycle unit was last attacked
Definition: unit.h:366
Vec2T
Definition: vec2i.h:36
CUnit::IsIdle
bool IsIdle() const
Definition: unit.cpp:597
CUnit::SavedOrder
COrder * SavedOrder
orders to process
Definition: unit.h:424
CPreference::ShowAttackRange
bool ShowAttackRange
Show reaction range.
Definition: unit.h:458
CUnit::Burning
unsigned Burning
True if unit tries to repair on still action.
Definition: unit.h:372
CUnit::tilePos
Vec2i tilePos
Resource still.
Definition: unit.h:341
CUnit::IY
signed char IY
X image displacement to map position.
Definition: unit.h:359
LookingSE
@ LookingSE
Unit looking east.
Definition: unit.h:124
UnitCclRegister
void UnitCclRegister()
register CCL units features
Definition: script_unit.cpp:1592
CUnit::IsAttackRanged
bool IsAttackRanged(CUnit *goal, const Vec2i &goalPos)
Definition: unit.cpp:3448
CPreference::ShowReactionRange
bool ShowReactionRange
Show sight range.
Definition: unit.h:457
CUnit::IsVisibleOnMap
bool IsVisibleOnMap(const CPlayer &player) const
Definition: unit.h:256
CUnit::Refs
unsigned int Refs
Definition: unit.h:322
DrawShadow
void DrawShadow(const CUnitType &type, int frame, const PixelPos &screenPos)
Draw unit's shadow.
Definition: unit_draw.cpp:694
CUnit::DeAssignWorkerFromMine
void DeAssignWorkerFromMine(CUnit &mine)
Definition: unit.cpp:1973
CUnit::RefsIncrease
void RefsIncrease()
Increase a unit's reference count.
Definition: unit.cpp:378
ChangeTeamSelectedUnits
void ChangeTeamSelectedUnits(CPlayer &player, const std::vector< CUnit * > &units)
Changed TeamUnit Selection.
Definition: selection.cpp:181
CPreference::CPreference
CPreference()
Definition: unit.h:447
CUpgrade
Definition: upgrade_structs.h:154
COWARD_INDEX
@ COWARD_INDEX
Definition: unittype.h:143
SelectUnitsByType
int SelectUnitsByType(CUnit &base)
Select units from the same type (if selectable by rectangle)
Definition: selection.cpp:339
UnitCountSeen
void UnitCountSeen(CUnit &unit)
Does a recount for VisCount.
Definition: unit.cpp:1702
CUnit::IsEnemy
bool IsEnemy(const CPlayer &player) const
Definition: unit.cpp:3381
ViewPointDistanceToUnit
int ViewPointDistanceToUnit(const CUnit &dest)
Calculate the distance from current view point to unit.
Definition: unit.cpp:3292
RescueUnits
void RescueUnits()
Check for rescue each second.
Definition: unit.cpp:2038
CanBuildUnitType
CUnit * CanBuildUnitType(const CUnit *unit, const CUnitType &type, const Vec2i &pos, int real)
FIXME: more docu.
Definition: build.cpp:503
CUnit::ChangeOwner
void ChangeOwner(CPlayer &newplayer)
Change owner of unit.
Definition: unit.cpp:1871
CUnit::GetMapPixelPosCenter
PixelPos GetMapPixelPosCenter() const
Definition: unit.cpp:2447
ShowNameTime
unsigned long ShowNameTime
Delay to show unit's name.
Definition: unit_draw.cpp:100
LookingS
@ LookingS
Unit looking south east.
Definition: unit.h:125
CPreference::FrameSkip
int FrameSkip
If true, the selection rectangle interpolates color to indicate damage.
Definition: unit.h:472
CUnit::Workers
CUnit * Workers
Definition: unit.h:336
MarkUnitFieldFlags
void MarkUnitFieldFlags(const CUnit &unit)
currently selected units
Definition: unit.cpp:1018
UnSelectUnit
void UnSelectUnit(CUnit &unit)
Remove a unit from selection.
Definition: selection.cpp:259
CUnit::AutoCastSpell
char * AutoCastSpell
order to do as possible in breakable animation.
Definition: unit.h:428
CUnit::PrevContained
CUnit * PrevContained
Next unit in the container.
Definition: unit.h:332
CUnit::Release
void Release(bool final=false)
Release a unit.
Definition: unit.cpp:500
CPreference::BigScreen
bool BigScreen
Show stats when no selection is active.
Definition: unit.h:461
CUnit::_seen_stuff_::CFrame
const CConstructionFrame * CFrame
Definition: unit.h:392
CUnit::pathFinderData
PathFinderData * pathFinderData
Unit's Current Sight Range.
Definition: unit.h:351
PlayerComputer
ENUM_CLASS PlayerComputer
unused slot
Definition: settings.h:122
AddSelectedAirUnitsInRectangle
int AddSelectedAirUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright)
Add flying units in the selection rectangle to the current selection.
Definition: selection.cpp:1010
CPreference::AutosaveMinutes
int AutosaveMinutes
How many cycles need to show unit's name popup.
Definition: unit.h:477
PlayerMax
constexpr unsigned char PlayerMax
Definition: settings.h:62
CUnitManager
Definition: unit_manager.h:50
CPreference::get_SimplifiedAutoTargeting
bool get_SimplifiedAutoTargeting()
Definition: unit.h:500
SelectedUnitChanged
void SelectedUnitChanged()
Called whenever the selected unit was updated.
Definition: script_ui.cpp:1210
MakeUnit
CUnit * MakeUnit(const CUnitType &type, CPlayer *player)
Create a new unit.
Definition: unit.cpp:794
CUnit::IsInvisibile
bool IsInvisibile(const CPlayer &player) const
Definition: unit.h:196
CUnit::UnitManagerData
CUnitManagerData UnitManagerData
When this unit could be recycled.
Definition: unit.h:324
CUnit::Place
void Place(const Vec2i &pos)
Place a unit on map.
Definition: unit.cpp:1203
SelectAirUnitsInRectangle
int SelectAirUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright)
Select flying units in the selection rectangle.
Definition: selection.cpp:891
DecorationCclRegister
void DecorationCclRegister()
Register CCL decorations features.
Definition: unit_draw.cpp:363
CUnit::Boarded
unsigned Boarded
Unit is active for AI.
Definition: unit.h:379
DirectionToHeading
int DirectionToHeading(const Vec2i &dir)
Convert direction (dx,dy) to heading (0-255)
Definition: unit.cpp:2125
CPreference::NoStatusLineTooltips
bool NoStatusLineTooltips
Deselect peasants in mines.
Definition: unit.h:468
CUnit::CurrentOrder
COrder * CurrentOrder() const
Definition: unit.h:144
CUnit::_unit_anim_::Wait
int Wait
CurrAnim.
Definition: unit.h:418
SaveGroups
void SaveGroups(CFile &file)
Save groups.
Definition: groups.cpp:124
RestoreSelection
void RestoreSelection()
Restore selection.
Definition: selection.cpp:88
CUnit::Destroyed
unsigned Destroyed
unit is burning
Definition: unit.h:373
CUnit::IX
signed char IX
individual upgrades which the unit has
Definition: unit.h:358
CUnit::Colors
int Colors
Image frame: <0 is mirrored.
Definition: unit.h:355
CUnit::RescuedFrom
CPlayer * RescuedFrom
unit is selected by a team member.
Definition: unit.h:386
CUnit::NextWorker
CUnit * NextWorker
Previous unit in the container.
Definition: unit.h:334
DrawSelectionRectangleWithTrans
void DrawSelectionRectangleWithTrans(IntColor, int, int, int, int)
Draw rectangle filled with alpha around unit.
Definition: unit_draw.cpp:237
CUnit::Seen
struct CUnit::_seen_stuff_ Seen
COrderPtr
COrder * COrderPtr
Definition: unit.h:74
CUnit::IsAgressive
bool IsAgressive() const
Definition: unit.h:187
CUnit::_seen_stuff_::Destroyed
unsigned Destroyed
Unit seen build/upgrade state.
Definition: unit.h:400
CUnit::Player
CPlayer * Player
Pointer to unit-type (peon,...)
Definition: unit.h:346
CUnit::BoardCount
int BoardCount
Number of units inside.
Definition: unit.h:328
CanTarget
int CanTarget(const CUnitType &type, const CUnitType &dest)
Can this unit-type attack the other (destination)
Definition: unit.cpp:3309
CUnit::ReCast
unsigned ReCast
The unit is moving.
Definition: unit.h:369
CUnit::_unit_anim_
The counter while small ai can ignore non aggressive targets if searching attacker.
Definition: unit.h:415
CPlayer::HasSharedVisionWith
bool HasSharedVisionWith(const CPlayer &player) const
Definition: player.h:271
CUnit::GroupId
unsigned int GroupId
time to live
Definition: unit.h:408
ThreatCalculate
int ThreatCalculate(const CUnit &unit, const CUnit &dest)
Calculate some value to measure the unit's priority for AI.
Definition: unit.cpp:2584
DrawSelectionNone
void DrawSelectionNone(IntColor, int, int, int, int)
Draw nothing around unit.
Definition: unit_draw.cpp:186
DrawSelectionCircle
void DrawSelectionCircle(IntColor, int, int, int, int)
Draw circle around unit.
Definition: unit_draw.cpp:197
CUnit::InsideCount
int InsideCount
index in Player->Units
Definition: unit.h:327
CPreference::set_SimplifiedAutoTargeting
void set_SimplifiedAutoTargeting(bool v)
Definition: unit.h:501
CUnit::SpellCoolDownTimers
int * SpellCoolDownTimers
spells to auto cast
Definition: unit.h:429
CUnit::Orders
std::vector< COrder * > Orders
Definition: unit.h:423
FindAndSortUnits
int FindAndSortUnits(const CViewport &vp, std::vector< CUnit * > &table)
Draw all units visible on map in viewport.
Definition: unit_draw.cpp:1068
CorrectWallDirections
void CorrectWallDirections(CUnit &unit)
Correct directions for placed wall.
Definition: unit.cpp:1572
CUnit::IsVisibleAsGoal
bool IsVisibleAsGoal(const CPlayer &player) const
Definition: unit.h:228
SelectionCclRegister
void SelectionCclRegister()
Register CCL selection features.
Definition: selection.cpp:1146
CANATTACK_INDEX
@ CANATTACK_INDEX
Building must be built on coast.
Definition: unittype.h:158
CUnit::Wait
unsigned int Wait
unit belongs to this last group
Definition: unit.h:411
Settings
Definition: settings.h:230
CUnit::VisCount
int VisCount[PlayerMax]
NULL if the unit was not rescued.
Definition: unit.h:389
UnitReference
std::string UnitReference(const CUnit &unit)
Generate a unit reference, a printable unique string for unit.
Definition: unit_save.cpp:61
RevealAttacker
bool RevealAttacker
Config: building capture enabled.
Definition: unit.cpp:359
CPreference::ShowNameTime
int ShowNameTime
How many cycles need to wait until unit's name popup will appear.
Definition: unit.h:476
RemoveUnitFromGroups
void RemoveUnitFromGroups(CUnit &unit)
Remove a unit from a group.
Definition: groups.cpp:228
CorrectWallNeighBours
void CorrectWallNeighBours(CUnit &unit)
Correct the surrounding walls.
Definition: unit.cpp:1612
FindNearestDrop
void FindNearestDrop(const CUnitType &type, const Vec2i &goalPos, Vec2i &resPos, int heading)
Find the nearest position at which unit can be placed.
Definition: unit.cpp:1260
CPreference::IconFrameG
CGraphic * IconFrameG
Autosave the game every X minutes; autosave is disabled if the value is 0.
Definition: unit.h:478
CUnit::Draw
void Draw(const CViewport &vp) const
Draw a single unit.
Definition: unit_draw.cpp:917
CAnimation
Definition: animation.h:94
CUnit::Resource
struct CUnit::@41 Resource
CPreference::get_AiExplores
bool get_AiExplores()
Definition: unit.h:498
CUnit::LastGroup
unsigned int LastGroup
unit belongs to this group id
Definition: unit.h:409
DropOutNearest
void DropOutNearest(CUnit &unit, const Vec2i &goalPos, const CUnit *container)
Definition: unit.cpp:2298
CUnit::MapDistanceTo
int MapDistanceTo(const CUnit &dst) const
Definition: unit.h:286
LookingN
@ LookingN
Definition: unit.h:121
SelectUnitsInRectangle
int SelectUnitsInRectangle(const PixelPos &corner_topleft, const PixelPos &corner_bottomright)
Select the units in the selection rectangle.
Definition: selection.cpp:704
CUnit::_seen_stuff_::Constructed
unsigned Constructed
seen Y image displacement to map position
Definition: unit.h:398
CUnit::IsVisibleOnMinimap
bool IsVisibleOnMinimap() const
Returns true if unit is visible on minimap. Only for ThisPlayer.
Definition: unit.cpp:1800
AddToGroup
void AddToGroup(CUnit **units, unsigned int nunits, int num)
Add the array of units to the group.
Definition: groups.cpp:192
SaveSelections
void SaveSelections(CFile &file)
Save current selection state.
Definition: selection.cpp:1076
CUnit::ClearAction
void ClearAction()
Definition: unit.cpp:587
player.h
CurrentViewport
const CViewport * CurrentViewport
Config: spend resources for building with multiple workers.
Definition: unit_draw.cpp:121
CPreference::set_AiExplores
void set_AiExplores(bool v)
Definition: unit.h:499
CUnitColors
Definition: color.h:69
CUnitStats
Definition: upgrade_structs.h:129
CPreference
Definition: unit.h:444
CUnit::WaitBackup
struct CUnit::_unit_anim_ WaitBackup
CUnit::Assigned
int Assigned
pointer to first assigned worker to this resource.
Definition: unit.h:337
GameSettings
Settings GameSettings
Definition: game.cpp:87
CUnit::_seen_stuff_::Frame
int Frame
Seen construction frame.
Definition: unit.h:393
CUnit::IsVisibleInViewport
bool IsVisibleInViewport(const CViewport &vp) const
Returns true if unit is visible in a viewport. Only for ThisPlayer.
Definition: unit.cpp:1826
CUnit::Type
const CUnitType * Type
Map position as flat index offset (x + y * w)
Definition: unit.h:345
ShowNameDelay
unsigned long ShowNameDelay
Show orders for some time.
Definition: unit_draw.cpp:99
LookingW
@ LookingW
Unit looking south west.
Definition: unit.h:127
CPreference::IconsShift
bool IconsShift
Use grayscaled icons for unavailable units, upgrades, etc.
Definition: unit.h:464
CUnit::Active
int Active
how many units are assigned to harvesting from the resource.
Definition: unit.h:338
CUnit::IsVisible
bool IsVisible(const CPlayer &player) const
Returns true, if unit is directly seen by an allied unit.
Definition: unit.cpp:1778
CUnit::Anim
struct CUnit::_unit_anim_ Anim
MapDistanceBetweenTypes
int MapDistanceBetweenTypes(const CUnitType &src, const Vec2i &pos1, const CUnitType &dst, const Vec2i &pos2)
Returns the map distance between to unittype as locations.
Definition: unit.cpp:3251
DrawSelection
void(* DrawSelection)(IntColor, int, int, int, int)
Show unit's name for some time.
Definition: unit_draw.cpp:112
GroupSelectionMode
GroupSelectionMode
Definition: unittype.h:80
SelectUnit
int SelectUnit(CUnit &unit)
Add a unit to selection.
Definition: selection.cpp:210
CUnit::RefsDecrease
void RefsDecrease()
Decrease a unit's reference count.
Definition: unit.cpp:389
CUnit::CUnitManagerData::CUnitManagerData
CUnitManagerData()
Definition: unit.h:313
ExtraDeathIndex
int ExtraDeathIndex(const char *death)
Get the suitable animation frame depends of unit's damaged type.
Definition: script_unittype.cpp:216
UnitOnScreen
CUnit * UnitOnScreen(int x, int y)
Get unit under cursor.
Definition: unit.cpp:2404
CPreference::ShowSightRange
bool ShowSightRange
Definition: unit.h:454
DrawUnitSelection
void DrawUnitSelection(const CViewport &vp, const CUnit &unit)
CurrentViewport.
Definition: unit_draw.cpp:130
CPreference::StereoSound
bool StereoSound
Shift icons slightly when you press on them.
Definition: unit.h:465
CConstructionFrame
Construction frame.
Definition: construct.h:112
DropOutOnSide
void DropOutOnSide(CUnit &unit, int heading, const CUnit *container)
Definition: unit.cpp:2213
CUnit::Removed
unsigned Removed
unit is destroyed pending reference
Definition: unit.h:374
EnableBuildingCapture
bool EnableBuildingCapture
Config: training queues enabled.
Definition: unit.cpp:358
CPreference::SelectionRectangleIndicatesDamage
bool SelectionRectangleIndicatesDamage
If true, uses the hardware to draw the cursor. Shaders do no longer apply to the cursor,...
Definition: unit.h:470
Settings::SimplifiedAutoTargeting
unsigned SimplifiedAutoTargeting
If true, AI sends explorers to search for resources (almost useless thing)
Definition: settings.h:251
CUnit::Blink
unsigned Blink
GameCycle unit was summoned using spells.
Definition: unit.h:367
CUnit::CUnitManagerData
Definition: unit.h:309
CBuildRestrictionOnTop
Definition: unittype.h:432
CUnit::CUnit
CUnit()
Definition: unit.h:138
CPreference::ShowOrders
int ShowOrders
Mask used to skip rendering frames (useful for slow renderers that keep up with the game logic,...
Definition: unit.h:474
CUnit::IsAlive
bool IsAlive() const
Definition: unit.cpp:602
CUnit::Container
CUnit * Container
Pointer to one of the units inside.
Definition: unit.h:330
CUnit::_seen_stuff_::Type
const CUnitType * Type
last seen frame/stage of buildings
Definition: unit.h:394
CPreference::DeselectInMine
bool DeselectInMine
Show mine is running low/depleted messages.
Definition: unit.h:467
CUnit::AddInContainer
void AddInContainer(CUnit &host)
Add a unit inside a container. Only deal with list stuff.
Definition: unit.cpp:1092
CUnit::AutoRepair
unsigned AutoRepair
Recast again next cycle.
Definition: unit.h:370
CPreference::InitializeSettingsFromPreferences
void InitializeSettingsFromPreferences(Settings &s)
Definition: unit.h:486
CUnit::Direction
unsigned char Direction
Y image displacement to map position.
Definition: unit.h:360
GroupCclRegister
void GroupCclRegister()
Register CCL group features.
Definition: groups.cpp:271
CUnit::Goal
CUnit * Goal
how much time unit need to wait before spell will be ready
Definition: unit.h:431
InReactRange
bool InReactRange(const CUnit &unit, const CUnit &target)
Is target within reaction range of this unit?
Definition: unit.cpp:2735
CPreference::GrayscaleIcons
bool GrayscaleIcons
If true, game pauses when cursor is gone.
Definition: unit.h:463
TargetPriorityCalculate
int TargetPriorityCalculate(const CUnit *const attacker, const CUnit *const dest)
Definition: unit.cpp:2638
ShowOrdersCount
unsigned long ShowOrdersCount
All sprite's infos.
Definition: unit_draw.cpp:97
UnitHeadingFromDeltaXY
void UnitHeadingFromDeltaXY(CUnit &unit, const Vec2i &delta)
Heading and frame from delta direction.
Definition: unit.cpp:2196
CUnit::IsVisibleOnRadar
bool IsVisibleOnRadar(const CPlayer &pradar) const
Definition: map_radar.cpp:86
CUnit::CanMove
bool CanMove() const
Definition: unit.h:299
LoadDecorations
void LoadDecorations()
Load the decorations (health,mana) of units.
Definition: unit_draw.cpp:374
CPreference::PressedIconFrameG
CGraphic * PressedIconFrameG
Definition: unit.h:479
UnmarkUnitFieldFlags
void UnmarkUnitFieldFlags(const CUnit &unit)
Unmark the field with the FieldFlags.
Definition: unit.cpp:1062
CUnit::MoveToXY
void MoveToXY(const Vec2i &pos)
Move unit to tile(pos). (Do special stuff : vision, cachelist, pathfinding)
Definition: unit.cpp:1181
CUnit::Constructed
unsigned Constructed
unit is selected
Definition: unit.h:377
CleanUnits
void CleanUnits()
Clean unit module.
Definition: unit.cpp:3494
INVISIBLE_INDEX
@ INVISIBLE_INDEX
Definition: unittype.h:215
CPreference::ShowNameDelay
int ShowNameDelay
How many second show orders of unit on map.
Definition: unit.h:475
CanBuildHere
CUnit * CanBuildHere(const CUnit *unit, const CUnitType &type, const Vec2i &pos)
Definition: build.cpp:399
Preference
CPreference Preference
Lua handler count.
Definition: script_ui.cpp:66
SaveSelection
void SaveSelection()
Save selection to restore after.
Definition: selection.cpp:77
DropOutAll
void DropOutAll(const CUnit &unit)
Drop out all units in the unit.
Definition: unit.cpp:2376
CMapField
Describes a field of the map.
Definition: tile.h:186
SetGroup
void SetGroup(CUnit **units, unsigned int nunits, int num)
Set the contents of a particular group with an array of units.
Definition: groups.cpp:215
unittype.h
DrawSelectionCorners
void DrawSelectionCorners(IntColor, int, int, int, int)
Draw corners around unit.
Definition: unit_draw.cpp:251
SpellType
Definition: spells.h:205
CUnit::TTL
unsigned long TTL
array of User Defined variables.
Definition: unit.h:406
CPreference::ShowMessages
bool ShowMessages
Show attack range.
Definition: unit.h:459
CFile
Definition: iolib.h:102
CUnit
The big unit structure.
Definition: unit.h:135
GetFirstContainer
CUnit * GetFirstContainer(const CUnit &unit)
Definition: unit.cpp:856
Missile
Missile on the map.
Definition: missile.h:413
SELECTABLE_BY_RECTANGLE_ONLY
@ SELECTABLE_BY_RECTANGLE_ONLY
Definition: unittype.h:81
NearestOfUnit
void NearestOfUnit(const CUnit &unit, const Vec2i &pos, Vec2i *dpos)
Definition: unit.cpp:1530
CUnit::NextContained
CUnit * NextContained
Pointer to the unit containing it (or 0)
Definition: unit.h:331
CGraphic
Definition: video.h:91
UnitClearOrders
void UnitClearOrders(CUnit &unit)
Remove the Orders of a Unit.
Definition: unit.cpp:1486
(C) Copyright 1998-2012 by The Stratagus Project under the GNU General Public License.
All trademarks and copyrights on this page are owned by their respective owners.