Collapse duplicated code in draw_map()
One loop for maps and one for bmaps suffice. Before, we had two similar ones for each.
This commit is contained in:
parent
10f6ffde62
commit
d59e19f5c2
1 changed files with 16 additions and 31 deletions
|
@ -259,49 +259,34 @@ draw_map(char origin, int map_flags, struct nstr_sect *nsp)
|
||||||
blankfill(wmapbuf, &nsp->range, 1);
|
blankfill(wmapbuf, &nsp->range, 1);
|
||||||
|
|
||||||
if (map_flags & MAP_BMAP) {
|
if (map_flags & MAP_BMAP) {
|
||||||
int c;
|
char *map = map_flags & MAP_ALT ? player->map : player->bmap;
|
||||||
|
|
||||||
if (map_flags & MAP_ALT) {
|
while (bmnxtsct(nsp)) {
|
||||||
while (bmnxtsct(nsp)) {
|
if (map[nsp->id])
|
||||||
if (0 != (c = player->map[nsp->id]))
|
wmap[nsp->dy][nsp->dx] = map[nsp->id];
|
||||||
wmap[nsp->dy][nsp->dx] = c;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
while (bmnxtsct(nsp)) {
|
|
||||||
if (0 != (c = player->bmap[nsp->id]))
|
|
||||||
wmap[nsp->dy][nsp->dx] = c;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
struct sctstr sect;
|
struct sctstr sect;
|
||||||
|
char mapch;
|
||||||
|
int changed = 0;
|
||||||
|
|
||||||
if (!player->god) {
|
if (!player->god) {
|
||||||
memset(bitmap, 0, (WORLD_SZ() + 7) / 8);
|
memset(bitmap, 0, (WORLD_SZ() + 7) / 8);
|
||||||
bitinit2(nsp, bitmap, player->cnum);
|
bitinit2(nsp, bitmap, player->cnum);
|
||||||
}
|
}
|
||||||
if (map_flags & MAP_ALT) {
|
|
||||||
while (nxtsct(nsp, §)) {
|
|
||||||
if (!player->god && !emp_getbit(nsp->x, nsp->y, bitmap))
|
|
||||||
continue;
|
|
||||||
wmap[nsp->dy][nsp->dx]
|
|
||||||
= map_char(sect.sct_newtype, sect.sct_own,
|
|
||||||
player->owner);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
struct sctstr sect;
|
|
||||||
char mapch;
|
|
||||||
int changed = 0;
|
|
||||||
|
|
||||||
while (nxtsct(nsp, §)) {
|
while (nxtsct(nsp, §)) {
|
||||||
if (!player->god && !emp_getbit(nsp->x, nsp->y, bitmap))
|
if (!player->god && !emp_getbit(nsp->x, nsp->y, bitmap))
|
||||||
continue;
|
continue;
|
||||||
mapch = map_char(sect.sct_type, sect.sct_own, player->owner);
|
mapch = map_char(map_flags & MAP_ALT
|
||||||
wmap[nsp->dy][nsp->dx] = mapch;
|
? sect.sct_newtype : sect.sct_type,
|
||||||
|
sect.sct_own, player->owner);
|
||||||
|
wmap[nsp->dy][nsp->dx] = mapch;
|
||||||
|
if (!(map_flags & MAP_ALT))
|
||||||
changed |= map_set(player->cnum, nsp->x, nsp->y, mapch, 0);
|
changed |= map_set(player->cnum, nsp->x, nsp->y, mapch, 0);
|
||||||
}
|
|
||||||
if (changed)
|
|
||||||
writemap(player->cnum);
|
|
||||||
}
|
}
|
||||||
|
if (changed)
|
||||||
|
writemap(player->cnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue