implement #986 - camera flash 'tweak'
Implement the suggested feature that a camera's flash actually update hero's memory of the map as it traverses across the level. Turned out to be more work than anticipated despite having the code for a thrown or kicked lit candle or lamp to build upon. Among other things it needed to update the circle code to handle previously unused radius 0 to operate on the center point only. I've never touched that before and hope this hasn't introduced any bugs. Also removes several instances of vision code operating on column #0. (At least one is still present.)
This commit is contained in:
15
src/apply.c
15
src/apply.c
@@ -75,11 +75,16 @@ struct obj *obj;
|
||||
(u.dz > 0) ? surface(u.ux, u.uy) : ceiling(u.ux, u.uy));
|
||||
} else if (!u.dx && !u.dy) {
|
||||
(void) zapyourself(obj, TRUE);
|
||||
} else if ((mtmp = bhit(u.dx, u.dy, COLNO, FLASHED_LIGHT,
|
||||
(int FDECL((*), (MONST_P, OBJ_P))) 0,
|
||||
(int FDECL((*), (OBJ_P, OBJ_P))) 0, &obj)) != 0) {
|
||||
obj->ox = u.ux, obj->oy = u.uy;
|
||||
(void) flash_hits_mon(mtmp, obj);
|
||||
} else {
|
||||
mtmp = bhit(u.dx, u.dy, COLNO, FLASHED_LIGHT,
|
||||
(int FDECL((*), (MONST_P, OBJ_P))) 0,
|
||||
(int FDECL((*), (OBJ_P, OBJ_P))) 0, &obj);
|
||||
obj->ox = u.ux, obj->oy = u.uy; /* flash_hits_mon() wants this */
|
||||
if (mtmp)
|
||||
(void) flash_hits_mon(mtmp, obj);
|
||||
/* normally bhit() would do this but for FLASHED_LIGHT we want it
|
||||
to be deferred until after flash_hits_mon() */
|
||||
transient_light_cleanup();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user