SitRep makeSitRep(Unit *u[NUM], int m) { if (!u[m])exit(5); SitRep s; int i, j; for (i = 0; i < ROWS; ++i)for (j = 0; j < COLS; ++j)s.board[i][j] = b[i][j]; s.nearestEnemyCrown = getNearestEnemyCrown(u, m); s.nearestEnemy = getNearestEnemy(u, m); s.anyOpenSpace = anyDir(u[m]); s.turnNumber = numTurns; return s; }
void renderWorld(int vx, int vy, int vwidth, int vheight) { if(!redraw){ return; } clear(); const char_t *p = getPlayer(); int dmgcol = 255; if(p->stats.health < p->stats.max_health / 2){ dmgcol = p->stats.health / ((float)p->stats.max_health) * 512; } int dis; const char_t *n = getNearestEnemy(&dis); for(int x = 0; x < vwidth; x++){ for(int y = 0; y < vheight; y++){ int rx = p->x + x - vwidth / 2; int ry = p->y + y - vheight / 2; tile_t *t = getTile(&map, rx, ry); char c = getCharFromTile(t); int nearestc = 1; if(t->c == n){ nearestc = 0; } if(p->stats.health <= 0){ drawCharBack(x + vx, y + vy, 64, 0, 0); drawChar(x + vx, y + vy, c, 255, 0, 0); }else{ drawChar(x + vx, y + vy, c, 255, dmgcol, dmgcol * nearestc); } } } redraw = false; }