Jochen Suckfuell wrote: > Hi! > > For quite some time, it wasn't possible any more to build a director right > beneath the player. But this is a very important thing, because you often use > directors to shoot around corners where the room is only one space wide. One could argue that is a design limitation of the spell. > > Until now, you got the message "Something is in the way." when trying to cast > a director with "." (stay fire). This was presumably done to prevent build * > walls to build a wall beneath the player (all build * spells are handled in > the same function). > I moved the check whether the destination field is blocked into the cases > where we know which object is created. For directors, we then apply the > "blocked" check only if the destination is different from the player's > position. I think this is fine. I'd actually replace your code with something a bit less redundant: *************** *** 2668,2674 **** m = op->map; ! if(get_map_flags(m, &m, x, y, &x, &y) & (P_BLOCKED | P_OUT_OF_MAP)) { new_draw_info(NDI_UNIQUE, 0,op,"Something is in the way."); return 0; } --- 2667,2681 ---- m = op->map; ! /* Basically, if player is casting build directory, they can cast it on ! * the space they are standing, so don't check for blocked in that ! * case (we'll also presume that the fact that the player is on a space ! * means he's withing the map). Always check the map if we're not ! * doing a directory, or if the target space for the feature does not ! * match the space the player (op) is on. ! */ ! if ((spell_effect != SP_BUILD_DIRECTOR || x != op->x || y != op->y) && ! (get_map_flags(m, &m, x, y, &x, &y) & (P_BLOCKED | P_OUT_OF_MAP))) { new_draw_info(NDI_UNIQUE, 0,op,"Something is in the way."); return 0; } Arguable, there is some other code in that function that could be reduced, like the setting of the food/hp/maxhp values, which all the functions set in the exact same code. _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel