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

unittype.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 __UNITTYPE_H__
31 #define __UNITTYPE_H__
32 
34 
35 /*----------------------------------------------------------------------------
36 -- Includes
37 ----------------------------------------------------------------------------*/
38 
39 #ifndef __UPGRADE_STRUCTS_H__
40 #include "upgrade_structs.h"
41 #endif
42 
43 #ifndef __UNITSOUND_H__
44 #include "unitsound.h"
45 #endif
46 
47 #ifndef __ICONS_H__
48 #include "icons.h"
49 #endif
50 
51 #include "color.h"
52 #include "missileconfig.h"
53 #include "vec2i.h"
54 
55 #include <climits>
56 #include <vector>
57 #include <algorithm>
58 #include <map>
59 
60 /*----------------------------------------------------------------------------
61 -- Declarations
62 ----------------------------------------------------------------------------*/
63 
64 class CAnimations;
66 class CConstruction;
67 class MissileType;
68 class CFile;
69 struct lua_State;
70 #ifdef USE_MNG
71 class Mng;
72 #endif
73 class LuaCallback;
74 
75 #define UnitSides 8
76 #define MaxAttackPos 5
77 
78 CUnitType *UnitTypeByIdent(const std::string &ident);
79 
84 };
85 
87 {
88 public:
93  {}
94 
95  std::string FileWhenLoaded;
96  std::string FileWhenEmpty;
97  unsigned WaitAtResource;
98  unsigned ResourceStep;
100  unsigned WaitAtDepot;
101  unsigned ResourceId;
102  unsigned FinalResource;
103  unsigned char TerrainHarvester;
104  unsigned char LoseResources;
105  unsigned char HarvestFromOutside;
106  unsigned char RefineryHarvester;
107  // Runtime info:
110 };
111 
119 {
120 public:
122 
123  bool operator ==(const CVariable &rhs) const
124  {
125  return this->Max == rhs.Max
126  && this->Value == rhs.Value
127  && this->Increase == rhs.Increase
128  && this->IncreaseFrequency == rhs.IncreaseFrequency
129  && this->Enable == rhs.Enable;
130  }
131  bool operator !=(const CVariable &rhs) const { return !(*this == rhs); }
132 
133 public:
134  int Max;
135  int Value;
136  char Increase;
137  unsigned char IncreaseFrequency:7;
138  unsigned char Enable:1;
139 };
140 
141 // Index for boolflag already defined
142 enum {
181 };
182 
183 // Index for variable already defined.
184 enum {
185  HP_INDEX = 0,
228 };
229 
230 class CUnit;
231 class CUnitType;
232 class CFont;
233 
240 class CDecoVar
241 {
242 public:
243 
244  CDecoVar() {};
245  virtual ~CDecoVar()
246  {
247  };
248 
250  virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const = 0;
251 
252  bool BoolFlagMatches(const CUnitType &type) const;
253 
254  unsigned int Index;
255 
256  int OffsetX;
257  int OffsetY;
258 
261 
264 
267  bool HideHalf;
268  bool ShowWhenMax;
270 
271  bool HideNeutral;
272  bool HideAllied;
274 
276  int BoolFlag;
277 };
278 
279 class CDecoVarBar : public CDecoVar
280 {
281 public:
282  CDecoVarBar() : MinValue(0), MaxValue(100), Invert(false) {};
283  virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const;
284 
285  bool IsVertical;
286  bool SEToNW;
287  int Height;
288  int Width;
290  bool Invert;
291  int MinValue;
292  int MaxValue;
293  char BorderSize;
294  // FIXME color depend of percent (red, Orange, Yellow, Green...)
297 };
298 
299 class CDecoVarFrame : public CDecoVar
300 {
301 public:
303  virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const;
304 
307 };
308 
309 class CDecoVarText : public CDecoVar
310 {
311 public:
312  CDecoVarText() : Font(NULL) {};
314  virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const;
315 
317  // FIXME : Add Color, format
318 };
319 
322 {
323 public:
326  virtual void Draw(int x, int y,
327  const CUnitType &type, const CVariable &var) const;
328 
329  char NSprite;
330  // FIXME Sprite info. better way ?
331 };
332 
335 {
336 public:
339  virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const;
340 
341  // FIXME Sprite info. and Replace n with more appropriate var.
342  char NSprite;
343  int n;
344  int FadeValue;
345 };
346 
349 {
350 public:
353  virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const;
354 
355  char NSprite;
356  char WaitFrames;
357 private:
358  char lastFrame;
359  int n;
360 };
361 
366 };
367 
375 };
376 
378 {
379 public:
380  virtual ~CBuildRestriction() {}
381  virtual void Init() {};
382  virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const = 0;
383 };
384 
386 {
387 public:
389  {
390  for (std::vector<CBuildRestriction *>::const_iterator i = _or_list.begin();
391  i != _or_list.end(); ++i) {
392  delete *i;
393  }
394  _or_list.clear();
395  }
396  virtual void Init()
397  {
398  for (std::vector<CBuildRestriction *>::const_iterator i = _or_list.begin();
399  i != _or_list.end(); ++i) {
400  (*i)->Init();
401  }
402  }
403  virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const;
404 
405  void push_back(CBuildRestriction *restriction) { _or_list.push_back(restriction); }
406 public:
407  std::vector<CBuildRestriction *> _or_list;
408 };
409 
411 {
412  class functor
413  {
414  public:
415  functor(const CUnitType *type, const Vec2i &_pos): Parent(type), pos(_pos) {}
416  inline bool operator()(const CUnit *const unit) const;
417  private:
418  const CUnitType *const Parent;
419  const Vec2i pos; //functor work position
420  };
421 public:
424  virtual void Init() {this->Parent = UnitTypeByIdent(this->ParentName);}
425  virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const;
426 
428  std::string ParentName;
430 };
431 
433 {
434  class functor
435  {
436  public:
437  functor(const CUnitType *type, const Vec2i &_pos): ontop(0), Parent(type), pos(_pos) {}
438  inline bool operator()(CUnit *const unit);
439  CUnit *ontop;
440  private:
441  const CUnitType *const Parent;
442  const Vec2i pos; //functor work position
443  };
444 public:
447  virtual void Init() {this->Parent = UnitTypeByIdent(this->ParentName);};
448  virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const;
449 
450  std::string ParentName;
452  int ReplaceOnDie: 1;
453  int ReplaceOnBuild: 1;
454 };
455 
457 {
458 public:
461  virtual void Init() {this->RestrictType = UnitTypeByIdent(this->RestrictTypeName);};
462  virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const;
463 
464  int Distance;
466  std::string RestrictTypeName;
467  std::string RestrictTypeOwner;
470  bool Diagonal;
471 };
472 
474 {
475 public:
478  virtual void Init() { this->RestrictType = UnitTypeByIdent(this->RestrictTypeName); };
479  virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const;
480 
481  int Count;
483  std::string RestrictTypeName;
485  std::string RestrictTypeOwner;
486 };
487 
489 {
490 public:
493  virtual void Init() { this->RestrictType = UnitTypeByIdent(this->RestrictTypeName); };
494  virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const;
495 
496  int Distance;
498  int Count;
500  std::string RestrictTypeName;
501  std::string RestrictTypeOwner;
504 };
505 
509 {
510 public:
511  CUnitType();
512  ~CUnitType();
513 
514  Vec2i GetHalfTileSize() const { return Vec2i(TileWidth / 2, TileHeight / 2); }
515  PixelSize GetPixelSize() const;
516 
517  bool CheckUserBoolFlags(const char *BoolFlags) const;
518  bool CanTransport() const { return MaxOnBoard > 0 && !GivesResource; }
519  bool CanMove() const;
520 
522 
523 public:
524  std::string Ident;
525  std::string Name;
526  int Slot;
527  std::string File;
528  std::string AltFile;
529  std::string ShadowFile;
530 
531  int Width;
532  int Height;
533  int OffsetX;
534  int OffsetY;
535  int DrawLevel;
540  char ShadowScale;
544 
547 
549 #ifdef USE_MNG
550  struct _portrait_ {
551  std::string *Files;
552  int Num;
553  int Talking;
555  mutable int CurrMng;
556  mutable int NumIterations;
557  } Portrait;
558 #endif
562 
569 
573 
574  mutable std::string DamageType;
575 
576  std::string CorpseName;
578 
580 
581  int RepairHP;
583 
584  int TileWidth;
586  int BoxWidth;
587  int BoxHeight;
597 #define InfiniteRepairRange INT_MAX
598  char *CanCastSpell;
605  int BoardSize;
610  int DecayRate;
611  // TODO: not used
615 #define MouseActionNone 0
616 #define MouseActionAttack 1
617 #define MouseActionMove 2
618 #define MouseActionHarvest 3
619 #define MouseActionSpellCast 5
620 #define MouseActionSail 6
621  int CanTarget;
622 #define CanTargetLand 1
623 #define CanTargetSea 2
624 #define CanTargetAir 4
625 
626  unsigned Flip : 1;
627  unsigned LandUnit : 1;
628  unsigned AirUnit : 1;
629  unsigned SeaUnit : 1;
630  unsigned ExplodeWhenKilled : 1;
631  unsigned Building : 1;
632  unsigned CanAttack : 1;
633  unsigned Neutral : 1;
634 
635  unsigned SideAttack : 1;
636  unsigned Skirmisher : 1;
637 
640  struct BoolFlags {
641  bool value;
645  };
646  std::vector<BoolFlags> BoolFlag;
647 
651  std::vector<CBuildRestriction *> BuildingRules;
652  std::vector<CBuildRestriction *> AiBuildingRules;
654 
657 
659 
660  // --- FILLED UP ---
661 
662  unsigned FieldFlags;
663  unsigned MovementMask;
664 
667 
671 };
672 
673 /*----------------------------------------------------------------------------
674 -- Variables
675 ----------------------------------------------------------------------------*/
676 
677 extern std::vector<CUnitType *> UnitTypes;
678 
681 extern CUnitType *UnitTypeOrcWall;
682 
687 {
688 public:
689 
690  template <const unsigned int SIZE>
691  struct CKeys {
692 
693  struct DataKey {
694  static bool key_pred(const DataKey &lhs,
695  const DataKey &rhs)
696  {
697  return ((lhs.keylen == rhs.keylen) ?
698  (strcmp(lhs.key, rhs.key) < 0) : (lhs.keylen < rhs.keylen));
699  }
700  int offset;
701  unsigned int keylen;
702  const char *key;
703  };
704 
705  CKeys(): TotalKeys(SIZE) {}
706 
707  DataKey buildin[SIZE];
708  std::map<std::string, int> user;
709  unsigned int TotalKeys;
710 
711  void Init()
712  {
713  std::sort(buildin, buildin + SIZE, DataKey::key_pred);
714  }
715 
716  const char *operator[](int index)
717  {
718  for (unsigned int i = 0; i < SIZE; ++i) {
719  if (buildin[i].offset == index) {
720  return buildin[i].key;
721  }
722  }
723  for (std::map<std::string, int>::iterator
724  it(user.begin()), end(user.end());
725  it != end; ++it) {
726  if ((*it).second == index) {
727  return ((*it).first).c_str();
728  }
729  }
730  return NULL;
731  }
732 
740  int operator[](const char *const key)
741  {
742  DataKey k;
743  k.key = key;
744  k.keylen = strlen(key);
745  const DataKey *p = std::lower_bound(buildin, buildin + SIZE,
746  k, DataKey::key_pred);
747  if ((p != buildin + SIZE) && p->keylen == k.keylen &&
748  0 == strcmp(p->key, key)) {
749  return p->offset;
750  } else {
751  std::map<std::string, int>::iterator
752  ret(user.find(key));
753  if (ret != user.end()) {
754  return (*ret).second;
755  }
756  }
757  return -1;
758  }
759 
760  int AddKey(const char *const key)
761  {
762  int index = this->operator[](key);
763  if (index != -1) {
764  DebugPrint("Warning, Key '%s' already defined\n" _C_ key);
765  return index;
766  }
767  user[key] = TotalKeys++;
768  return TotalKeys - 1;
769  }
770 
771  };
772 
773  struct CBoolKeys : public CKeys<NBARALREADYDEFINED> {
774  CBoolKeys();
775  };
776 
777  struct CVariableKeys : public CKeys<NVARALREADYDEFINED> {
778  CVariableKeys();
779  };
780 
782 
783  void Init();
784  void Clear();
785 
788 
789  //EventType *Event; /// Array of functions sets to call when en event occurs.
790  std::vector<CVariable> Variable;
791  std::vector<CDecoVar *> DecoVar;
792 
793  unsigned int GetNumberBoolFlag() const
794  {
796  }
797 
798  unsigned int GetNumberVariable() const
799  {
801  }
802 };
803 
805 
806 /*----------------------------------------------------------------------------
807 -- Functions
808 ----------------------------------------------------------------------------*/
809 extern CUnitType *CclGetUnitType(lua_State *l);
810 extern void UnitTypeCclRegister();
811 
812 extern void UpdateUnitStats(CUnitType &type, int reset_to_default);
813 extern void UpdateStats(int reset_to_default);
814 extern CUnitType *UnitTypeByIdent(const std::string &ident);
815 
816 extern void SaveUnitTypes(CFile &file);
817 extern CUnitType *NewUnitTypeSlot(const std::string &ident);
818 extern void DrawUnitType(const CUnitType &type, CPlayerColorGraphic *sprite,
820  int colorIndex, int frame, const PixelPos &screenPos);
821 
822 extern void InitUnitTypes(int reset_player_stats);
823 extern void LoadUnitTypeSprite(CUnitType &unittype);
824 extern void LoadUnitTypes();
825 extern void CleanUnitTypes();
826 
827 // in script_unittype.c
828 
830 extern void DefineVariableField(lua_State *l, CVariable *var, int lua_index);
831 
833 extern void UpdateUnitVariables(CUnit &unit);
834 
835 extern void SetMapStat(std::string ident, std::string variable_key, int value, std::string variable_type);
836 extern void SetMapSound(std::string ident, std::string sound, std::string sound_type, std::string sound_subtype = "");
838 
839 #endif // !__UNITTYPE_H__
CUnitType::CorpseType
CUnitType * CorpseType
Corpse type name.
Definition: unittype.h:577
CDecoVar::OffsetY
int OffsetY
Offset in X coord.
Definition: unittype.h:257
BUILDEROUTSIDE_INDEX
@ BUILDEROUTSIDE_INDEX
Definition: unittype.h:159
CUnitType::_portrait_::Num
int Num
Definition: unittype.h:552
CUnitType::Portrait
struct CUnitType::_portrait_ Portrait
CDecoVarAnimatedSprite::NSprite
char NSprite
Definition: unittype.h:355
CDecoVar::Index
unsigned int Index
Definition: unittype.h:254
CUnitType::ShadowSpriteFrame
char ShadowSpriteFrame
Shadow scale-down factor.
Definition: unittype.h:541
_C_
#define _C_
Definition: stratagus.h:120
CDecoVarBar::CDecoVarBar
CDecoVarBar()
Definition: unittype.h:282
CDecoVarBar::MinValue
int MinValue
if true, invert length
Definition: unittype.h:291
CBuildRestrictionSurroundedBy::Init
virtual void Init()
Definition: unittype.h:493
CUnitTypeVar::CVariableKeys::CVariableKeys
CVariableKeys()
Definition: script_unittype.cpp:172
CBuildRestriction::Check
virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const =0
MissileType
Base structure of missile-types.
Definition: missile.h:343
CUnitType::CanMove
bool CanMove() const
Definition: unittype.cpp:622
ResourceInfo::WaitAtDepot
unsigned WaitAtDepot
Max amount of resources to carry.
Definition: unittype.h:100
CUnitTypeVar::CKeys::DataKey
Definition: unittype.h:693
GreaterThanEqual
@ GreaterThanEqual
Definition: unittype.h:374
ResourceInfo::HarvestFromOutside
unsigned char HarvestFromOutside
The unit will lose it's resource when distracted.
Definition: unittype.h:105
CUnitType::BoolFlags::AiPriorityTarget
char AiPriorityTarget
Flag needed to target with missile.
Definition: unittype.h:644
CUnitType::Width
int Width
Shadow file.
Definition: unittype.h:531
SHIELD_INDEX
@ SHIELD_INDEX
Definition: unittype.h:218
AIRUNIT_INDEX
@ AIRUNIT_INDEX
Definition: unittype.h:148
CUnitType::BoxOffsetY
int BoxOffsetY
Selected box size horizontal offset.
Definition: unittype.h:589
SHIELDPIERCE_INDEX
@ SHIELDPIERCE_INDEX
Can teleport other units.
Definition: unittype.h:168
CUnitType::Sprite
CPlayerColorGraphic * Sprite
Unit status for each player.
Definition: unittype.h:668
CUnitType::ShadowSprite
CGraphic * ShadowSprite
Alternative sprite images.
Definition: unittype.h:670
MaxCosts
@ MaxCosts
resource 6
Definition: upgrade_structs.h:70
CUnitType::AiAdjacentRange
int AiAdjacentRange
How much this annoys the computer.
Definition: unittype.h:613
CUnitType::ShadowWidth
int ShadowWidth
Level to Draw UnitType at.
Definition: unittype.h:536
CUnitType::ReactRangeComputer
int ReactRangeComputer
Minimal attack range.
Definition: unittype.h:592
CUnitTypeVar::GetNumberVariable
unsigned int GetNumberVariable() const
Definition: unittype.h:798
UnitTypeHumanWall
CUnitType * UnitTypeHumanWall
All unit-types.
Definition: unittype.cpp:463
LoadUnitTypes
void LoadUnitTypes()
Load the sprite for a unittype.
Definition: unittype.cpp:1059
CBuildRestrictionDistance::Distance
int Distance
Definition: unittype.h:464
CBuildRestrictionDistance::CBuildRestrictionDistance
CBuildRestrictionDistance()
Definition: unittype.h:459
CBuildRestrictionAddOn::Offset
Vec2i Offset
Definition: unittype.h:427
MANA_INDEX
@ MANA_INDEX
Definition: unittype.h:187
CBuildRestriction::Init
virtual void Init()
Definition: unittype.h:381
CUnitType::RandomMovementProbability
int RandomMovementProbability
The rate at which the building builds itself.
Definition: unittype.h:601
CUnitSound
Definition: unitsound.h:73
CBuildRestrictionHasUnit::CBuildRestrictionHasUnit
CBuildRestrictionHasUnit()
Definition: unittype.h:476
ALWAYSTHREAT_INDEX
@ ALWAYSTHREAT_INDEX
Definition: unittype.h:176
SHIELDPERMEABILITY_INDEX
@ SHIELDPERMEABILITY_INDEX
Definition: unittype.h:222
CUnitType::MovementMask
unsigned MovementMask
Unit map field flags.
Definition: unittype.h:663
CUnitType::Stats
CUnitStats Stats[PlayerMax]
Unit check this map flags for move.
Definition: unittype.h:666
CBuildRestrictionSurroundedBy::RestrictType
CUnitType * RestrictType
Definition: unittype.h:502
CUnitType::BoolFlag
std::vector< BoolFlags > BoolFlag
Definition: unittype.h:646
CDecoVarAnimatedSprite
use to show specific frame in a sprite.
Definition: unittype.h:348
ORGANIC_INDEX
@ ORGANIC_INDEX
Don't use random frame rotation.
Definition: unittype.h:173
CUnitType::AltFile
std::string AltFile
Sprite files.
Definition: unittype.h:528
CUnitTypeVar::CBoolKeys::CBoolKeys
CBoolKeys()
Definition: script_unittype.cpp:150
HASTE_INDEX
@ HASTE_INDEX
Definition: unittype.h:213
CUnitType::AltSprite
CPlayerColorGraphic * AltSprite
Sprite images.
Definition: unittype.h:669
SUPPLY_INDEX
@ SUPPLY_INDEX
Definition: unittype.h:196
CBuildRestrictionOnTop::~CBuildRestrictionOnTop
virtual ~CBuildRestrictionOnTop()
Definition: unittype.h:446
ResourceInfo::ResourceCapacity
int ResourceCapacity
Resources the unit gains per mining cycle.
Definition: unittype.h:99
VANISHES_INDEX
@ VANISHES_INDEX
Can attack from transporter.
Definition: unittype.h:155
CBuildRestrictionAnd::_or_list
std::vector< CBuildRestriction * > _or_list
Definition: unittype.h:407
CUnitType::NumDirections
int NumDirections
Selected box size vertical offset.
Definition: unittype.h:590
CUnitType::Icon
IconConfig Icon
Still frame.
Definition: unittype.h:548
CBuildRestrictionSurroundedBy
Definition: unittype.h:488
BUILDERLOST_INDEX
@ BUILDERLOST_INDEX
The builder stays outside during the construction.
Definition: unittype.h:160
CUnitType::RandomMovementDistance
int RandomMovementDistance
Probability to move randomly.
Definition: unittype.h:602
UnitTypeByIdent
CUnitType * UnitTypeByIdent(const std::string &ident)
Update unit stats.
Definition: unittype.cpp:846
CUnitType::Skirmisher
unsigned Skirmisher
Unit turns for attack (used for ships)
Definition: unittype.h:636
CUnitTypeVar::Variable
std::vector< CVariable > Variable
Container of names of user defined variables.
Definition: unittype.h:790
CUnitTypeVar::CKeys::operator[]
int operator[](const char *const key)
Definition: unittype.h:740
CUnitType::TeleportEffectOut
LuaCallback * TeleportEffectOut
lua function to create effects before teleportation
Definition: unittype.h:572
CUnitType::CanCastSpell
char * CanCastSpell
Definition: unittype.h:598
CUnitTypeVar::CKeys::buildin
DataKey buildin[SIZE]
Definition: unittype.h:707
CUnitType::File
std::string File
Type as number.
Definition: unittype.h:527
PERMANENTCLOAK_INDEX
@ PERMANENTCLOAK_INDEX
Unit is visible under fog of war.
Definition: unittype.h:152
GIVERESOURCE_INDEX
@ GIVERESOURCE_INDEX
Definition: unittype.h:192
CDecoVarText
Definition: unittype.h:309
CDecoVar::HideNeutral
bool HideNeutral
if true, show only for selected units.
Definition: unittype.h:271
AUTOREPAIRRANGE_INDEX
@ AUTOREPAIRRANGE_INDEX
Definition: unittype.h:211
IconConfig
Icon reference (used in config tables)
Definition: icons.h:172
CVariable
Definition: unittype.h:118
BUILDING_INDEX
@ BUILDING_INDEX
Unit will only attack if instructed.
Definition: unittype.h:144
IntColor
uint32_t IntColor
Definition: color.h:37
CDecoVarBar::MaxValue
int MaxValue
show only above percent
Definition: unittype.h:292
CUnitType::OnReady
LuaCallback * OnReady
lua function called on unit init
Definition: unittype.h:568
CDecoVarBar::Invert
bool Invert
if true, show background like value equal to max.
Definition: unittype.h:290
TARGETPOSX_INDEX
@ TARGETPOSX_INDEX
Definition: unittype.h:207
CDecoVarAnimatedSprite::Draw
virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const
function to draw the decorations.
Definition: unit_draw.cpp:600
CUnitTypeVar::CBoolKeys
Definition: unittype.h:773
CUnitType::ShadowOffsetX
int ShadowOffsetX
Shadow sprite height.
Definition: unittype.h:538
CUnitType::OffsetX
int OffsetX
Sprite height.
Definition: unittype.h:533
CUnitType::PoisonDrain
int PoisonDrain
Sounds for events, map-specific.
Definition: unittype.h:658
CBuildRestrictionAddOn::CBuildRestrictionAddOn
CBuildRestrictionAddOn()
Definition: unittype.h:422
CUnitType::MissileOffsets
PixelPos MissileOffsets[UnitSides][MaxAttackPos]
Definition: unittype.h:543
VISIBLEUNDERFOG_INDEX
@ VISIBLEUNDERFOG_INDEX
Definition: unittype.h:151
CUnitType::CanSelect
bool CanSelect(GroupSelectionMode mode=SELECTABLE_BY_RECTANGLE_ONLY) const
Definition: unittype.cpp:627
CUnitType::MouseAction
int MouseAction
Min radius for AI build surroundings checking.
Definition: unittype.h:614
CUnitType::BurnPercent
int BurnPercent
Reacts on enemy for person player.
Definition: unittype.h:594
CUnitType::_portrait_::Talking
int Talking
Definition: unittype.h:553
CUnitType::MinAttackRange
int MinAttackRange
Number of directions unit can face.
Definition: unittype.h:591
REVEALER_INDEX
@ REVEALER_INDEX
Definition: unittype.h:146
CBuildRestrictionAddOn::Parent
CUnitType * Parent
building that is unit is an addon too.
Definition: unittype.h:429
CDecoVar::Draw
virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const =0
function to draw the decorations.
CDecoVarFrame
Definition: unittype.h:299
vec2i.h
CBuildRestrictionOnTop::Init
virtual void Init()
Definition: unittype.h:447
ELEVATED_INDEX
@ ELEVATED_INDEX
Unit always considered as threat for auto targeting algorihm, useful for unit without main attack abi...
Definition: unittype.h:177
CUnitTypeVar::DecoVar
std::vector< CDecoVar * > DecoVar
Array of user defined variables (default value for unittype).
Definition: unittype.h:791
CANHARVEST_INDEX
@ CANHARVEST_INDEX
The builder is lost after the construction.
Definition: unittype.h:161
SLOW_INDEX
@ SLOW_INDEX
Definition: unittype.h:214
TRANSPORT_INDEX
@ TRANSPORT_INDEX
Definition: unittype.h:188
PLAYER_INDEX
@ PLAYER_INDEX
Definition: unittype.h:225
ResourceInfo::WaitAtResource
unsigned WaitAtResource
Change the graphic when the unit is empty.
Definition: unittype.h:97
CBuildRestrictionAnd::~CBuildRestrictionAnd
virtual ~CBuildRestrictionAnd()
Definition: unittype.h:388
CUnitType::ExplodeWhenKilled
unsigned ExplodeWhenKilled
Sea animated.
Definition: unittype.h:630
CBuildRestrictionDistance::Init
virtual void Init()
Definition: unittype.h:461
CBuildRestrictionHasUnit::RestrictTypeName
std::string RestrictTypeName
Definition: unittype.h:483
SetMapSound
void SetMapSound(std::string ident, std::string sound, std::string sound_type, std::string sound_subtype="")
Definition: script_unittype.cpp:2479
DEMAND_INDEX
@ DEMAND_INDEX
Food supply.
Definition: unittype.h:197
CDecoVar::HideHalf
bool HideHalf
if false, don't show if var is null (F.E poison)
Definition: unittype.h:267
MAXHARVESTERS_INDEX
@ MAXHARVESTERS_INDEX
Definition: unittype.h:220
CDecoVar::ShowIfNotEnable
bool ShowIfNotEnable
if true, use center of deco instead of upper border
Definition: unittype.h:265
SIDEATTACK_INDEX
@ SIDEATTACK_INDEX
Organic unit (used for death coil spell)
Definition: unittype.h:174
CVariable::Value
int Value
Maximum for the variable. (Assume min is 0.)
Definition: unittype.h:135
CDecoVarBar::SEToNW
bool SEToNW
if true, vertical bar, else horizontal.
Definition: unittype.h:286
CBuildRestrictionOnTop::ReplaceOnDie
int ReplaceOnDie
building that is unit is an addon too.
Definition: unittype.h:452
CBuildRestrictionSurroundedBy::DistanceType
DistanceTypeType DistanceType
Definition: unittype.h:497
BUILD_INDEX
@ BUILD_INDEX
Definition: unittype.h:186
CUnitType::ClicksToExplode
int ClicksToExplode
Quantity of tiles to move randomly.
Definition: unittype.h:603
CBuildRestrictionOnTop::ParentName
std::string ParentName
Definition: unittype.h:450
CUnitType::~CUnitType
~CUnitType()
Definition: unittype.cpp:550
TRAINING_INDEX
@ TRAINING_INDEX
Definition: unittype.h:190
CUnitType::CUnitType
CUnitType()
Definition: unittype.cpp:519
LoadUnitTypeSprite
void LoadUnitTypeSprite(CUnitType &unittype)
Init unit-type table.
Definition: unittype.cpp:986
CUnitType::CanStore
int CanStore[MaxCosts]
Definition: unittype.h:648
NORANDOMPLACING_INDEX
@ NORANDOMPLACING_INDEX
Use special logic for Direction field.
Definition: unittype.h:172
GreaterThan
@ GreaterThan
Definition: unittype.h:373
CUnitTypeVar::VariableNameLookup
CVariableKeys VariableNameLookup
Container of name of user defined bool flag.
Definition: unittype.h:787
CUnitType::FieldFlags
unsigned FieldFlags
How much health is drained every second when poisoned.
Definition: unittype.h:662
SLOT_INDEX
@ SLOT_INDEX
Definition: unittype.h:217
CBuildRestrictionHasUnit::~CBuildRestrictionHasUnit
virtual ~CBuildRestrictionHasUnit()
Definition: unittype.h:477
CDecoVarFrame::Thickness
int Thickness
Definition: unittype.h:305
CBuildRestrictionSurroundedBy::Distance
int Distance
Definition: unittype.h:496
CUnitType::Neutral
unsigned Neutral
Unit can attack.
Definition: unittype.h:633
CUnitType::StartingResources
int StartingResources
On which button level game will show units inside transporter.
Definition: unittype.h:607
CUnitType::GetHalfTileSize
Vec2i GetHalfTileSize() const
Definition: unittype.h:514
CUnitType
Definition: unittype.h:508
CUnitType::CanTransport
bool CanTransport() const
Definition: unittype.h:518
CUnitType::ShadowHeight
int ShadowHeight
Shadow sprite width.
Definition: unittype.h:537
CUnitTypeVar::CUnitTypeVar
CUnitTypeVar()
Definition: unittype.h:781
RADAR_INDEX
@ RADAR_INDEX
Definition: unittype.h:209
CUnitTypeVar::CKeys::DataKey::key_pred
static bool key_pred(const DataKey &lhs, const DataKey &rhs)
Definition: unittype.h:694
CBuildRestrictionDistance::DistanceType
DistanceTypeType DistanceType
distance to build (circle)
Definition: unittype.h:465
CBuildRestrictionHasUnit
Definition: unittype.h:473
CBuildRestrictionSurroundedBy::CountType
DistanceTypeType CountType
Definition: unittype.h:499
ResourceInfo::FileWhenLoaded
std::string FileWhenLoaded
Definition: unittype.h:95
KILL_INDEX
@ KILL_INDEX
Definition: unittype.h:195
CUnitType::Ident
std::string Ident
Definition: unittype.h:524
CclGetUnitType
CUnitType * CclGetUnitType(lua_State *l)
Definition: script_unittype.cpp:1555
EXPLODEWHENKILLED_INDEX
@ EXPLODEWHENKILLED_INDEX
Definition: unittype.h:150
CUnitType::DrawLevel
int DrawLevel
Sprite vertical offset.
Definition: unittype.h:535
CDecoVarBar::Draw
virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const
Definition: unit_draw.cpp:420
CUnitType::ShadowFile
std::string ShadowFile
Alternative sprite files.
Definition: unittype.h:529
CDecoVarBar::ShowFullBackground
bool ShowFullBackground
Width of the bar.
Definition: unittype.h:289
CBuildRestrictionHasUnit::Count
int Count
Definition: unittype.h:481
CVariable::CVariable
CVariable()
Definition: unittype.h:121
FLIP_INDEX
@ FLIP_INDEX
Definition: unittype.h:145
CBuildRestrictionAnd::Init
virtual void Init()
Definition: unittype.h:396
CDecoVarFrame::CDecoVarFrame
CDecoVarFrame()
Definition: unittype.h:302
CUnitType::ShadowScale
char ShadowScale
Shadow vertical offset.
Definition: unittype.h:540
UpdateStats
void UpdateStats(int reset_to_default)
Update unit stats.
Definition: unittype.cpp:756
CUnitType::OffsetY
int OffsetY
Sprite horizontal offset.
Definition: unittype.h:534
CUnitType::DamageType
std::string DamageType
lua function to create effects after teleportation
Definition: unittype.h:574
SIGHTRANGE_INDEX
@ SIGHTRANGE_INDEX
Definition: unittype.h:199
CDecoVarAnimatedSprite::CDecoVarAnimatedSprite
CDecoVarAnimatedSprite()
Definition: unittype.h:351
ResourceInfo::FinalResource
unsigned FinalResource
Id of the resource harvested. Redundant.
Definition: unittype.h:102
CUnitType::TeleportCost
int TeleportCost
lua function called when unit ready/built
Definition: unittype.h:570
Vec2T
Definition: vec2i.h:36
CBuildRestrictionSurroundedBy::Check
virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const
Definition: build.cpp:232
CUnitType::AutoBuildRate
int AutoBuildRate
Default value for autocast.
Definition: unittype.h:600
UnitTypes
std::vector< CUnitType * > UnitTypes
Definition: unittype.cpp:455
CDecoVar::ShowOnlySelected
bool ShowOnlySelected
if false, don't show if var is to max. (Like mana)
Definition: unittype.h:269
CUnitType::GetPixelSize
PixelSize GetPixelSize() const
Definition: unittype.cpp:606
CDecoVarBar::Color
IntColor Color
Size of the border, 0 for no border.
Definition: unittype.h:295
CUnitType::BoardSize
int BoardSize
Number of Transporter slots.
Definition: unittype.h:605
CBuildRestrictionAnd::push_back
void push_back(CBuildRestriction *restriction)
Definition: unittype.h:405
CUnitType::StillFrame
int StillFrame
Animation scripts.
Definition: unittype.h:546
CBuildRestrictionAnd
Definition: unittype.h:385
SELECT_ALL
@ SELECT_ALL
Definition: unittype.h:83
CUnitType::Height
int Height
Sprite width.
Definition: unittype.h:532
MissileConfig
Definition: missileconfig.h:44
UnitSides
#define UnitSides
Definition: unittype.h:75
CBuildRestrictionOnTop::Check
virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const
Definition: build.cpp:356
CDecoVarFrame::Draw
virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const
Definition: unit_draw.cpp:493
CUnitType::SeaUnit
unsigned SeaUnit
Air animated.
Definition: unittype.h:629
CDecoVar::OffsetX
int OffsetX
Index of the variable.
Definition: unittype.h:256
UnitTypeType
UnitTypeType
Definition: unittype.h:362
CVariable::IncreaseFrequency
unsigned char IncreaseFrequency
Number to increase(decrease) Value by second.
Definition: unittype.h:137
CColor
A platform independent color.
Definition: color.h:43
CBuildRestrictionDistance::RestrictType
CUnitType * RestrictType
Definition: unittype.h:468
CDecoVarBar::IsVertical
bool IsVertical
Definition: unittype.h:285
CBuildRestrictionHasUnit::CountType
DistanceTypeType CountType
Definition: unittype.h:482
COWARD_INDEX
@ COWARD_INDEX
Definition: unittype.h:143
CDecoVarFrame::ColorIndex
int ColorIndex
Definition: unittype.h:306
CBuildRestrictionOnTop::CBuildRestrictionOnTop
CBuildRestrictionOnTop()
Definition: unittype.h:445
CBuildRestrictionAnd::Check
virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const
Definition: build.cpp:100
CUnitType::BoolFlags
Definition: unittype.h:640
CBuildRestrictionHasUnit::RestrictTypeOwner
std::string RestrictTypeOwner
Definition: unittype.h:485
ResourceInfo
Definition: unittype.h:86
CUnitTypeVar
Orc wall.
Definition: unittype.h:686
CUnitTypeVar::GetNumberBoolFlag
unsigned int GetNumberBoolFlag() const
Array to describe how showing variable.
Definition: unittype.h:793
ISALIVE_INDEX
@ ISALIVE_INDEX
Definition: unittype.h:224
CUnitType::TeleportEffectIn
LuaCallback * TeleportEffectIn
mana used for teleportation
Definition: unittype.h:571
CDecoVar::BoolFlagInvert
bool BoolFlagInvert
if true, show for opponent unit.
Definition: unittype.h:275
SetMapStat
void SetMapStat(std::string ident, std::string variable_key, int value, std::string variable_type)
Definition: script_unittype.cpp:2413
CUnitType::LandUnit
unsigned LandUnit
Flip image when facing left.
Definition: unittype.h:627
UPGRADINGTO_INDEX
@ UPGRADINGTO_INDEX
Definition: unittype.h:191
CUnitType::_portrait_::Mngs
Mng ** Mngs
offset into portraits for talking portraits
Definition: unittype.h:554
CUnitType::Impact
MissileConfig Impact[ANIMATIONS_DEATHTYPES+2]
Missile for unit explosion.
Definition: unittype.h:561
CUnitTypeVar::CVariableKeys
Definition: unittype.h:777
CDecoVarSpriteBar::Draw
virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const
function to draw the decorations.
Definition: unit_draw.cpp:539
CUnitType::AnnoyComputerFactor
int AnnoyComputerFactor
Decay rate in 1/6 seconds.
Definition: unittype.h:612
CUnitType::RepairHP
int RepairHP
What is shown in construction phase.
Definition: unittype.h:581
CBuildRestrictionSurroundedBy::~CBuildRestrictionSurroundedBy
virtual ~CBuildRestrictionSurroundedBy()
Definition: unittype.h:492
ResourceInfo::RefineryHarvester
unsigned char RefineryHarvester
Unit harvests without entering the building.
Definition: unittype.h:106
CUnitTypeVar::Init
void Init()
Definition: unittype.cpp:1089
SHOREBUILDING_INDEX
@ SHOREBUILDING_INDEX
Can do ground attack command.
Definition: unittype.h:157
DECORATION_INDEX
@ DECORATION_INDEX
Definition: unittype.h:165
CVariable::Max
int Max
Definition: unittype.h:134
SELECTABLEBYRECTANGLE_INDEX
@ SELECTABLEBYRECTANGLE_INDEX
Unit is a resource harvester.
Definition: unittype.h:163
PlayerMax
constexpr unsigned char PlayerMax
Definition: settings.h:62
CUnitType::DefaultStat
CUnitStats DefaultStat
Unit will try to shoot from max range.
Definition: unittype.h:638
CUnitType::BoolFlags::CanTargetFlag
char CanTargetFlag
Can transport units with this flag.
Definition: unittype.h:643
CDecoVarStaticSprite::FadeValue
int FadeValue
identifiant in SpellSprite
Definition: unittype.h:344
INDESTRUCTIBLE_INDEX
@ INDESTRUCTIBLE_INDEX
Unit is a decoration (act as tile).
Definition: unittype.h:166
SaveUnitTypes
void SaveUnitTypes(CFile &file)
Get unit-type by ident.
Definition: unittype.cpp:818
CDecoVar::ShowWhenMax
bool ShowWhenMax
if true, don't show when 0 < var < max.
Definition: unittype.h:268
CUnitType::_portrait_::Files
std::string * Files
Definition: unittype.h:551
CUnitType::BoolFlags::value
bool value
Definition: unittype.h:641
CDecoVarStaticSprite::Draw
virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const
function to draw the decorations.
Definition: unit_draw.cpp:570
CUnitType::MapSound
CUnitSound MapSound
Sounds for events.
Definition: unittype.h:656
CConstruction
Construction shown during construction of a building.
Definition: construct.h:125
CUnitType::BoxHeight
int BoxHeight
Selected box size width.
Definition: unittype.h:587
CUnitTypeVar::BoolFlagNameLookup
CBoolKeys BoolFlagNameLookup
Definition: unittype.h:786
CDecoVar::BoolFlagMatches
bool BoolFlagMatches(const CUnitType &type) const
Check if this decoration defines a condition on boolean flags and if so, if that condition matches.
Definition: unit_draw.cpp:403
BASICDAMAGE_INDEX
@ BASICDAMAGE_INDEX
Definition: unittype.h:202
CBuildRestrictionHasUnit::Check
virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const
Definition: build.cpp:191
CUnitType::CorpseName
std::string CorpseName
DamageType (used for extra death animations and impacts)
Definition: unittype.h:576
PIERCINGDAMAGE_INDEX
@ PIERCINGDAMAGE_INDEX
Definition: unittype.h:201
DebugPrint
#define DebugPrint(args)
Definition: stratagus.h:148
CUnitType::Name
std::string Name
Identifier.
Definition: unittype.h:525
CUnitTypeVar::CKeys::operator[]
const char * operator[](int index)
Definition: unittype.h:716
CUnitType::_portrait_::NumIterations
int NumIterations
Definition: unittype.h:556
CVariable::Increase
char Increase
Current (or initial) value of the variable (or initial value).
Definition: unittype.h:136
CVariable::operator!=
bool operator!=(const CVariable &rhs) const
Definition: unittype.h:131
CUnitTypeVar::CKeys
Definition: unittype.h:691
CUnitType::_portrait_
Icon to display for this unit.
Definition: unittype.h:550
CAnimations
Definition: animation.h:108
Equal
@ Equal
Definition: unittype.h:369
CBuildRestrictionDistance::Diagonal
bool Diagonal
Definition: unittype.h:470
SKIRMISHER_INDEX
@ SKIRMISHER_INDEX
Definition: unittype.h:175
CUnitType::Building
unsigned Building
Death explosion animated.
Definition: unittype.h:631
CDecoVarStaticSprite
use to show specific frame in a sprite.
Definition: unittype.h:334
CUnitType::BoxOffsetX
int BoxOffsetX
Selected box size height.
Definition: unittype.h:588
UnitTypeOrcWall
CUnitType * UnitTypeOrcWall
Human wall.
Definition: unittype.cpp:464
CDecoVarText::Draw
virtual void Draw(int x, int y, const CUnitType &type, const CVariable &var) const
function to draw the decorations.
Definition: unit_draw.cpp:520
CUnitTypeVar::CKeys::user
std::map< std::string, int > user
Definition: unittype.h:708
CUnitType::NeutralMinimapColorRGB
CColor NeutralMinimapColorRGB
Rules list for for AI to build a building.
Definition: unittype.h:653
CDecoVarBar::Height
int Height
(SouthEastToNorthWest), if false value 0 is on the left or up of the bar.
Definition: unittype.h:287
missileconfig.h
ResourceInfo::TerrainHarvester
unsigned char TerrainHarvester
Convert resource when delivered.
Definition: unittype.h:103
CUnitTypeVar::CKeys::AddKey
int AddKey(const char *const key)
Definition: unittype.h:760
CDecoVarText::Font
CFont * Font
Definition: unittype.h:316
CUnitType::Construction
CConstruction * Construction
Corpse unit-type.
Definition: unittype.h:579
CBuildRestrictionAddOn::Check
virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const
Definition: build.cpp:313
POINTS_INDEX
@ POINTS_INDEX
Definition: unittype.h:219
DistanceTypeType
DistanceTypeType
Definition: unittype.h:368
TARGETPOSY_INDEX
@ TARGETPOSY_INDEX
Definition: unittype.h:208
ResourceInfo::ResourceId
unsigned ResourceId
Cycles the unit waits while returning.
Definition: unittype.h:101
NONSOLID_INDEX
@ NONSOLID_INDEX
Unit unloads his passengers after death.
Definition: unittype.h:170
CDecoVar::ShowOpponent
bool ShowOpponent
if true, don't show for allied unit. (but show own units)
Definition: unittype.h:273
CBuildRestrictionOnTop::ReplaceOnBuild
int ReplaceOnBuild
recreate the parent on destruction
Definition: unittype.h:453
CUnitType::TileHeight
int TileHeight
Tile size on map width.
Definition: unittype.h:585
ResourceInfo::FileWhenEmpty
std::string FileWhenEmpty
Change the graphic when the unit is loaded.
Definition: unittype.h:96
CDecoVarStaticSprite::NSprite
char NSprite
Definition: unittype.h:342
DETECTCLOAK_INDEX
@ DETECTCLOAK_INDEX
Is only visible by CloakDetectors.
Definition: unittype.h:153
CUnitType::Explosion
MissileConfig Explosion
Missile weapon.
Definition: unittype.h:560
CUnitType::ResInfo
ResourceInfo * ResInfo[MaxCosts]
The resource this unit gives.
Definition: unittype.h:650
CUnitType::ButtonLevelForTransporter
int ButtonLevelForTransporter
How much "cells" unit occupies inside transporter.
Definition: unittype.h:606
CANATTACK_INDEX
@ CANATTACK_INDEX
Building must be built on coast.
Definition: unittype.h:158
CBuildRestrictionSurroundedBy::CBuildRestrictionSurroundedBy
CBuildRestrictionSurroundedBy()
Definition: unittype.h:491
CUnitType::OnEachSecond
LuaCallback * OnEachSecond
lua function called every cycle
Definition: unittype.h:566
ATTACKRANGE_INDEX
@ ATTACKRANGE_INDEX
Definition: unittype.h:200
NON_SELECTABLE_BY_RECTANGLE_ONLY
@ NON_SELECTABLE_BY_RECTANGLE_ONLY
Definition: unittype.h:82
CUnitType::OnDeath
LuaCallback * OnDeath
Missiles spawned if unit is hit(+shield)
Definition: unittype.h:563
CUnitType::ReactRangePerson
int ReactRangePerson
Reacts on enemy for computer.
Definition: unittype.h:593
POS_BOTTOM_INDEX
@ POS_BOTTOM_INDEX
Definition: unittype.h:206
CUnitType::CanAttack
unsigned CanAttack
Building.
Definition: unittype.h:632
CBuildRestrictionHasUnit::Init
virtual void Init()
Definition: unittype.h:478
TELEPORTER_INDEX
@ TELEPORTER_INDEX
Unit is indestructible (take no damage).
Definition: unittype.h:167
MaxAttackPos
#define MaxAttackPos
Definition: unittype.h:76
CUnitType::OnEachCycle
LuaCallback * OnEachCycle
lua function called when unit is hit
Definition: unittype.h:565
CUnitType::MaxOnBoard
int MaxOnBoard
Number of consecutive clicks until unit suicides.
Definition: unittype.h:604
UnitTypeCclRegister
void UnitTypeCclRegister()
Access unit-type object.
Definition: script_unittype.cpp:2522
CDecoVar::OffsetXPercent
int OffsetXPercent
Offset in Y coord.
Definition: unittype.h:259
NotEqual
@ NotEqual
Definition: unittype.h:370
GROUNDATTACK_INDEX
@ GROUNDATTACK_INDEX
Corpses & destroyed places.
Definition: unittype.h:156
CBuildRestrictionAddOn::ParentName
std::string ParentName
offset from the main building to place this
Definition: unittype.h:428
LuaCallback
Definition: luacallback.h:41
ISNOTSELECTABLE_INDEX
@ ISNOTSELECTABLE_INDEX
Selectable with mouse rectangle.
Definition: unittype.h:164
ResourceInfo::ResourceInfo
ResourceInfo()
Definition: unittype.h:89
CUnitType::SideAttack
unsigned SideAttack
Unit is neutral, used by the editor.
Definition: unittype.h:635
CUnitType::RepairRange
int RepairRange
HP burn rate per sec.
Definition: unittype.h:596
CDecoVarSpriteBar::NSprite
char NSprite
Definition: unittype.h:329
CBuildRestrictionAddOn::Init
virtual void Init()
Definition: unittype.h:424
DefineVariableField
void DefineVariableField(lua_State *l, CVariable *var, int lua_index)
Cleanup unit-type module.
Definition: script_unittype.cpp:1916
RESEARCH_INDEX
@ RESEARCH_INDEX
Definition: unittype.h:189
CUnitStats
Definition: upgrade_structs.h:129
ResourceInfo::SpriteWhenEmpty
CPlayerColorGraphic * SpriteWhenEmpty
The graphic corresponding to FileWhenLoaded.
Definition: unittype.h:109
NVARALREADYDEFINED
@ NVARALREADYDEFINED
Definition: unittype.h:227
ResourceInfo::SpriteWhenLoaded
CPlayerColorGraphic * SpriteWhenLoaded
Unit have to build Refinery buildings for harvesting.
Definition: unittype.h:108
CDecoVar
Definition: unittype.h:240
CUnitType::ShadowOffsetY
int ShadowOffsetY
Shadow horizontal offset.
Definition: unittype.h:539
HP_INDEX
@ HP_INDEX
Definition: unittype.h:185
unitsound.h
icons.h
NBARALREADYDEFINED
@ NBARALREADYDEFINED
Unit is a main building (Town Hall f. ex.)
Definition: unittype.h:180
CUnitType::OnInit
LuaCallback * OnInit
lua function called every second
Definition: unittype.h:567
UnitTypeFly
@ UnitTypeFly
Unit lives on land.
Definition: unittype.h:364
POISON_INDEX
@ POISON_INDEX
Definition: unittype.h:221
NewUnitTypeSlot
CUnitType * NewUnitTypeSlot(const std::string &ident)
Save the unit-type table.
Definition: unittype.cpp:862
CDecoVar::IsCenteredInX
bool IsCenteredInX
Percent offset (TileHeight) in Y coord.
Definition: unittype.h:262
LessThan
@ LessThan
Definition: unittype.h:371
CUnitType::Slot
int Slot
Pretty name shown from the engine.
Definition: unittype.h:526
CUnitType::OnHit
LuaCallback * OnHit
lua function called when unit is about to die, receives x,y,unit
Definition: unittype.h:564
UNHOLYARMOR_INDEX
@ UNHOLYARMOR_INDEX
Definition: unittype.h:216
CUnitType::BuildingRules
std::vector< CBuildRestriction * > BuildingRules
Resource information.
Definition: unittype.h:651
NOFRIENDLYFIRE_INDEX
@ NOFRIENDLYFIRE_INDEX
Unit is elevated and can see over opaque tiles placed in the same ground level with the unit.
Definition: unittype.h:178
CDecoVarSpriteBar
Sprite contains frame from full (left)to empty state (right).
Definition: unittype.h:321
GroupSelectionMode
GroupSelectionMode
Definition: unittype.h:80
CVariable::Enable
unsigned char Enable
Every how many seconds we should apply the increase.
Definition: unittype.h:138
CUnitType::Flip
unsigned Flip
Definition: unittype.h:626
CUnitTypeVar::CKeys::CKeys
CKeys()
Definition: unittype.h:705
BLOODLUST_INDEX
@ BLOODLUST_INDEX
Definition: unittype.h:212
CUnitType::RepairCosts
int RepairCosts[MaxCosts]
Amount of HP per repair.
Definition: unittype.h:582
CDecoVarBar::Width
int Width
Height of the bar.
Definition: unittype.h:288
CBuildRestrictionSurroundedBy::RestrictTypeOwner
std::string RestrictTypeOwner
Definition: unittype.h:501
CBuildRestrictionSurroundedBy::Count
int Count
Definition: unittype.h:498
CUnitType::DecayRate
int DecayRate
Land / fly / naval.
Definition: unittype.h:610
CUnitType::Missile
MissileConfig Missile
Definition: unittype.h:559
ATTACKFROMTRANSPORTER_INDEX
@ ATTACKFROMTRANSPORTER_INDEX
Can see Cloaked units.
Definition: unittype.h:154
CDecoVar::ShowWhenNull
bool ShowWhenNull
if false, Show only if var is enable
Definition: unittype.h:266
CUnitTypeVar::Clear
void Clear()
Definition: unittype.cpp:1099
UpdateUnitStats
void UpdateUnitStats(CUnitType &type, int reset_to_default)
Register ccl features.
Definition: unittype.cpp:642
ARMOR_INDEX
@ ARMOR_INDEX
Food demand.
Definition: unittype.h:198
CDecoVar::HideAllied
bool HideAllied
if true, don't show for neutral unit.
Definition: unittype.h:272
ResourceInfo::ResourceStep
unsigned ResourceStep
Cycles the unit waits while mining.
Definition: unittype.h:98
WALL_INDEX
@ WALL_INDEX
Unit can be entered by other units.
Definition: unittype.h:171
CBuildRestrictionAddOn::~CBuildRestrictionAddOn
virtual ~CBuildRestrictionAddOn()
Definition: unittype.h:423
HARVESTER_INDEX
@ HARVESTER_INDEX
Resource can be harvested.
Definition: unittype.h:162
InitUnitTypes
void InitUnitTypes(int reset_player_stats)
Definition: unittype.cpp:948
CBuildRestrictionOnTop
Definition: unittype.h:432
CBuildRestriction
Definition: unittype.h:377
CUnitType::_portrait_::CurrMng
int CurrMng
Definition: unittype.h:555
CDecoVarStaticSprite::CDecoVarStaticSprite
CDecoVarStaticSprite()
Definition: unittype.h:337
CBuildRestrictionSurroundedBy::RestrictTypeName
std::string RestrictTypeName
Definition: unittype.h:500
UnitTypeVar
CUnitTypeVar UnitTypeVar
Definition: script_unittype.cpp:61
CleanUnitTypes
void CleanUnitTypes()
Load the unit-type data.
Definition: unittype.cpp:1113
CDecoVarStaticSprite::n
int n
Index of sprite. (.
Definition: unittype.h:343
CBuildRestrictionHasUnit::RestrictType
CUnitType * RestrictType
Definition: unittype.h:484
RADARJAMMER_INDEX
@ RADARJAMMER_INDEX
Definition: unittype.h:210
SEAUNIT_INDEX
@ SEAUNIT_INDEX
Definition: unittype.h:149
CUnitType::UnitType
UnitTypeType UnitType
originally only visual effect, we do more with this!
Definition: unittype.h:609
CUnitTypeVar::CKeys::TotalKeys
unsigned int TotalKeys
Definition: unittype.h:709
Vec2i
Vec2T< short int > Vec2i
Definition: vec2i.h:162
CUnitType::AirUnit
unsigned AirUnit
Land animated.
Definition: unittype.h:628
CDecoVarBar::BorderSize
char BorderSize
show only below percent
Definition: unittype.h:293
POSX_INDEX
@ POSX_INDEX
Definition: unittype.h:203
MAINFACILITY_INDEX
@ MAINFACILITY_INDEX
Unit accepts friendly fire for splash attacks.
Definition: unittype.h:179
Mng
Definition: video.h:235
CUnitType::AiBuildingRules
std::vector< CBuildRestriction * > AiBuildingRules
Rules list for building a building.
Definition: unittype.h:652
CARRYRESOURCE_INDEX
@ CARRYRESOURCE_INDEX
Definition: unittype.h:193
DrawUnitType
void DrawUnitType(const CUnitType &type, CPlayerColorGraphic *sprite, int colorIndex, int frame, const PixelPos &screenPos)
Draw the sprite frame of unit-type.
Definition: unittype.cpp:896
CUnitType::GivesResource
int GivesResource
Resources that we can store here.
Definition: unittype.h:649
upgrade_structs.h
POS_RIGHT_INDEX
@ POS_RIGHT_INDEX
Definition: unittype.h:205
CUnitType::BoolFlags::CanTransport
char CanTransport
User defined flag. Used for (dis)allow target.
Definition: unittype.h:642
CBuildRestrictionDistance::Check
virtual bool Check(const CUnit *builder, const CUnitType &type, const Vec2i &pos, CUnit *&ontoptarget) const
Definition: build.cpp:113
SHIELDPIERCING_INDEX
@ SHIELDPIERCING_INDEX
Definition: unittype.h:223
CBuildRestrictionDistance::RestrictTypeName
std::string RestrictTypeName
Definition: unittype.h:466
CUnitType::MapDefaultStat
CUnitStats MapDefaultStat
Definition: unittype.h:639
CBuildRestrictionDistance::CheckBuilder
bool CheckBuilder
Definition: unittype.h:469
CUnitType::CheckUserBoolFlags
bool CheckUserBoolFlags(const char *BoolFlags) const
Definition: unittype.cpp:611
color.h
CDecoVarBar::BColor
IntColor BColor
Color of bar.
Definition: unittype.h:296
INVISIBLE_INDEX
@ INVISIBLE_INDEX
Definition: unittype.h:215
CUnitType::TileWidth
int TileWidth
How much it costs to repair.
Definition: unittype.h:584
CDecoVarBar
Definition: unittype.h:279
CBuildRestriction::~CBuildRestriction
virtual ~CBuildRestriction()
Definition: unittype.h:380
UnitTypeLand
@ UnitTypeLand
Definition: unittype.h:363
UnitTypeNaval
@ UnitTypeNaval
Unit lives in air.
Definition: unittype.h:365
CBuildRestrictionOnTop::Parent
CUnitType * Parent
building that is unit is an addon too.
Definition: unittype.h:451
CBuildRestrictionAddOn
Definition: unittype.h:410
LessThanEqual
@ LessThanEqual
Definition: unittype.h:372
CUnitType::BoxWidth
int BoxWidth
Tile size on map height.
Definition: unittype.h:586
ResourceInfo::LoseResources
unsigned char LoseResources
Unit will harvest terrain.
Definition: unittype.h:104
CDecoVarSpriteBar::CDecoVarSpriteBar
CDecoVarSpriteBar()
Definition: unittype.h:324
CUnitTypeVar::CKeys::DataKey::keylen
unsigned int keylen
Definition: unittype.h:701
CUnitType::AutoCastActive
char * AutoCastActive
Unit is able to use spells.
Definition: unittype.h:599
CDecoVar::~CDecoVar
virtual ~CDecoVar()
Definition: unittype.h:245
CFile
Definition: iolib.h:102
CUnit
The big unit structure.
Definition: unit.h:135
UpdateUnitVariables
void UpdateUnitVariables(CUnit &unit)
Update custom Variables with other variable (like Hp, ...)
Definition: script_unittype.cpp:2305
SAVECARGO_INDEX
@ SAVECARGO_INDEX
Definition: unittype.h:169
CDecoVar::IsCenteredInY
bool IsCenteredInY
if true, use center of deco instead of left border
Definition: unittype.h:263
CDecoVar::CDecoVar
CDecoVar()
Definition: unittype.h:244
SELECTABLE_BY_RECTANGLE_ONLY
@ SELECTABLE_BY_RECTANGLE_ONLY
Definition: unittype.h:81
CBuildRestrictionDistance::RestrictTypeOwner
std::string RestrictTypeOwner
Definition: unittype.h:467
CFont
Font definition.
Definition: font.h:73
CPlayerColorGraphic
Definition: video.h:202
CUnitTypeVar::CKeys::DataKey::offset
int offset
Definition: unittype.h:700
CUnitTypeVar::CKeys::DataKey::key
const char * key
Definition: unittype.h:702
POSY_INDEX
@ POSY_INDEX
Definition: unittype.h:204
CBuildRestrictionDistance
Definition: unittype.h:456
XP_INDEX
@ XP_INDEX
Definition: unittype.h:194
CUnitType::Sound
CUnitSound Sound
Minimap Color for Neutral Units.
Definition: unittype.h:655
CDecoVar::BoolFlag
int BoolFlag
if 1, invert the bool flag check
Definition: unittype.h:276
CDecoVar::OffsetYPercent
int OffsetYPercent
Percent offset (TileWidth) in X coord.
Definition: unittype.h:260
PRIORITY_INDEX
@ PRIORITY_INDEX
Definition: unittype.h:226
CDecoVarAnimatedSprite::WaitFrames
char WaitFrames
Index of sprite. (.
Definition: unittype.h:356
ANIMATIONS_DEATHTYPES
#define ANIMATIONS_DEATHTYPES
Definition: animation.h:39
CVariable::operator==
bool operator==(const CVariable &rhs) const
Definition: unittype.h:123
CGraphic
Definition: video.h:91
LANDUNIT_INDEX
@ LANDUNIT_INDEX
reveal the fog of war
Definition: unittype.h:147
CBuildRestrictionDistance::~CBuildRestrictionDistance
virtual ~CBuildRestrictionDistance()
Definition: unittype.h:460
CUnitType::BurnDamageRate
int BurnDamageRate
Burning percent.
Definition: unittype.h:595
CBuildRestrictionSurroundedBy::CheckBuilder
bool CheckBuilder
Definition: unittype.h:503
CUnitType::Animations
CAnimations * Animations
Attack offsets for missiles.
Definition: unittype.h:545
CUnitTypeVar::CKeys::Init
void Init()
Definition: unittype.h:711
CDecoVarText::CDecoVarText
CDecoVarText()
Definition: unittype.h:312
(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.