MCPcopy Create free account
hub / github.com/assaultcube/AC / calcmapdims

Function calcmapdims

source/src/tools.cpp:115–148  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

113}
114
115int calcmapdims(mapdim_s &md, const servsqr *s, int _ssize)
116{
117 int res = 0;
118 md.x1 = md.y1 = _ssize;
119 md.x2 = md.y2 = 0;
120 md.minfloor = 127; md.maxceil = -128;
121 for(int y = 0; y < _ssize; y++) for(int x = 0; x < _ssize; x++)
122 {
123 if((s->type & TAGTRIGGERMASK) != SOLID)
124 {
125 if(x < md.x1) md.x1 = x;
126 if(x > md.x2) md.x2 = x;
127 if(y < md.y1) md.y1 = y;
128 md.y2 = y;
129 if(s->floor < md.minfloor) md.minfloor = s->floor;
130 if(s->ceil > md.maxceil) md.maxceil = s->ceil;
131 }
132 s++;
133 }
134 if(md.x2 < md.x1 || md.y2 < md.y1)
135 { // map is completely solid -> default to empty map values
136 md.x1 = md.y1 = 2;
137 md.x2 = md.y2 = _ssize - 3;
138 md.minfloor = 0;
139 md.maxceil = 16;
140 res = -1; // reject map on servers
141 }
142 if(md.x1 < MINBORD || md.y1 < MINBORD || md.x2 >= _ssize - MINBORD || md.y2 >= _ssize - MINBORD) res = -2; // reject map because of world border violation
143 md.xspan = md.x2 - md.x1 + 1;
144 md.yspan = md.y2 - md.y1 + 1;
145 md.xm = md.x1 + md.xspan / 2.0f;
146 md.ym = md.y1 + md.yspan / 2.0f;
147 return res;
148}
149
150int calcmapareastats(mapareastats_s &ms, servsqr *_servworld, int _ssize, const mapdim_s &md)
151{

Callers 5

empty_worldFunction · 0.85
mapareacheckFunction · 0.85
loadMethod · 0.85
calclightFunction · 0.85
load_worldFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected