diff --git a/render.c b/render.c index aba0f41..5f72045 100644 --- a/render.c +++ b/render.c @@ -148,6 +148,7 @@ SDL_Surface *render_flak(date now) SDL_FillRect(rv, &(SDL_Rect){.x=0, .y=0, .w=rv->w, .h=rv->h}, ATG_ALPHA_TRANSPARENT&0xff); for(unsigned int i=0;ibombers[k].navlon=0; state->bombers[k].driftlat=0; state->bombers[k].driftlon=0; + state->bombers[k].flakreport=-1; double askill=0; // Airmanship for(unsigned int l=0;lweather.p[x][y]-1000:0; double preccap=160.0/(5.0*(moonillum+.3)/(double)(8+max(4-wea, 0))); + // We have been fired at by this flak, so we know it exists + if(!flaks[i].mapped) + state->bombers[k].flakreport=i; if(rad) preccap=min(preccap, window?960.0:480.0); if(brandp(flaks[i].strength*flakscale/min((12+flaks[i].shots++)*40.0, preccap))) { @@ -1899,7 +1903,10 @@ screen_id run_raid_screen(atg_canvas *canvas, game *state) i--; continue; } - else if(state->bombers[i].damage>50) + int fr=state->bombers[i].flakreport; + if(fr>=0&&fr<(int)nflaks) + flaks[fr].mapped=true; + if(state->bombers[i].damage>50) { fa_append(&state->hist, state->now, (harris_time){11, 00}, state->bombers[i].id, false, type, 1); state->bombers[i].failed=true; // mark as u/s diff --git a/save/save-format b/save/save-format index a48ac06..7120ff1 100644 --- a/save/save-format +++ b/save/save-format @@ -38,6 +38,10 @@ for(i=0;iweather.seed=0; for(unsigned int i=0;idifficulty[i]=1; + for(unsigned int i=0;i