1 #define defstruct typedef struct
3 defstruct
{ int x
, y
; } vec2i
;
4 typedef vec2i mcrd
; //[m]ap coords
5 typedef vec2i scrd
; //[s]creen coords
8 // TODO переставить местами поля
13 int attack
; // meele damage
17 int * ter_mvp
; // terrain move cost
18 int * ter_def
; // terrain defence bonus
19 int * ter_atk
; // terrain attack bonus
40 int fog
; // fog of war. how many units see this tile
41 int cost
; // цена полного пути до клетки
49 #define FEATURE_BRSK 2
50 #define FEATURE_INVIS 3
51 #define FEATURE_IGNR 4
52 #define FEATURE_ARMORED 5
53 #define FEATURE_ARMPIERC 6
54 #define FEATURE_NORETURN 7
56 defstruct
{ int power
; } feature_berserk
;
57 defstruct
{ int power
, range
, ammo
; } feature_range
;
60 feature_range rng
; // has ranged attack
61 feature_berserk brsk
; // berserk TODO
62 bool invis
; // invisible
63 bool ignr
; // ignore enemys ZOC
65 bool armour_piercing
; // ignores armor
69 defstruct
{l_node n
; int type
; feature_data data
;} feature
;
72 // map node / path node / used in pathfinding
73 defstruct
{ l_node n
; mcrd crd
; } mnode
;
80 // byte-count event_move unit-id directon[0..5]
81 // byte-count event_melee attacker-id direction dead
82 // byte-count event_range attacker-id defender-id dead
84 defstruct
{ l_node n
; int * data
; } event
;
90 l_list
* st
; // stack for filling map
91 l_list
* path
; // stores path
92 l_list
* units
; // stores units
93 //l_list * eq; // events queue
94 l_list
* event_queue
; // events queue
98 int mi
; // move index... rename!
101 int index
; // внутренний индекс события
102 //int i; // внутренний индекс события