/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2010, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
* ---
*
* maps.c: Map routines
- *
+ *
* Known contributors to this file:
* Ken Stevens, 1995
* Steve McClure, 1998
+ * Markus Armbruster, 2004-2011
* Ron Koenderink, 2006
*/
}
}
if (!bitmap)
- bitmap = malloc(WORLD_SZ() / 8);
+ bitmap = malloc((WORLD_SZ() + 7) / 8);
if (!wmapbuf || !wmap || !bitmap) {
pr("Memory error, tell the deity.\n");
logerror("malloc failed in draw_map\n");
switch (bmap) {
default:
CANT_REACH();
- bmap = 'b';
/* fall through */
case 'b':
while (bmnxtsct(nsp) && !player->aborted) {
struct sctstr sect;
if (!player->god) {
- memset(bitmap, 0, WORLD_SZ() / 8);
+ memset(bitmap, 0, (WORLD_SZ() + 7) / 8);
bitinit2(nsp, bitmap, player->cnum);
}
while (nxtsct(nsp, §) && !player->aborted) {
int changed = 0;
if (!player->god) {
- memset(bitmap, 0, WORLD_SZ() / 8);
+ memset(bitmap, 0, (WORLD_SZ() + 7) / 8);
bitinit2(nsp, bitmap, player->cnum);
}
while (nxtsct(nsp, §) && !player->aborted) {
struct sctstr sect;
snxtsct_rewind(nsp);
- if (!player->god) {
- memset(bitmap, 0, WORLD_SZ() / 8);
- bitinit2(nsp, bitmap, player->cnum);
- }
while (nxtsct(nsp, §) && !player->aborted) {
- if (!player->god && !emp_getbit(nsp->x, nsp->y, bitmap))
- continue;
if (sect.sct_own == player->cnum)
wmap[nsp->dy][nsp->dx] |= 0x80;
}
char todes;
char from_des = *from_name;
+ if (from == to)
+ return 0;
+
if (isalpha(from_des))
from_des &= ~0x20;