add this directly below what you just added in act_move.c (it is the other half of the function that wouldnt fit in the previous post:
tmp = 0;
if ( *map [xcoord][ycoord] == '?' )
tmp = '?';
if ( pexit->vdir == DIR_NORTH && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord][ycoord-1] = tmp?'?':IS_SET( pexit->exit_info, EX_ISDOOR)||IS_SET( pexit->exit_info, EX_HIDDEN)? 'a': '|';
else if ( pexit->vdir == DIR_NORTHEAST && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord+1][ycoord-1] = tmp?'?':IS_SET( pexit->exit_info, EX_ISDOOR)||IS_SET( pexit->exit_info, EX_HIDDEN)? 'b': '/';
else if ( pexit->vdir == DIR_EAST && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord+1][ycoord] = tmp?'?':IS_SET( pexit->exit_info, EX_ISDOOR)||IS_SET( pexit->exit_info, EX_HIDDEN)? 'c': '-';
else if ( pexit->vdir == DIR_SOUTHEAST && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord+1][ycoord+1] = tmp?'?':IS_SET( pexit->exit_info, EX_ISDOOR)||IS_SET( pexit->exit_info, EX_HIDDEN)? 'd': '\';
else if ( pexit->vdir == DIR_SOUTH && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord][ycoord+1] = tmp?'?':IS_SET( pexit->exit_info, EX_ISDOOR)||IS_SET( pexit->exit_info, EX_HIDDEN)? 'a': '|';
else if ( pexit->vdir == DIR_SOUTHWEST && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord-1][ycoord+1] = tmp?'?':IS_SET( pexit->exit_info, EX_ISDOOR)||IS_SET( pexit->exit_info, EX_HIDDEN)? 'b': '/';
else if ( pexit->vdir == DIR_WEST && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord-1][ycoord] = tmp?'?':IS_SET( pexit->exit_info, EX_ISDOOR)||IS_SET( pexit->exit_info, EX_HIDDEN)? 'c': '-';
else if ( pexit->vdir == DIR_NORTHWEST && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord-1][ycoord-1] = tmp?'?':IS_SET( pexit->exit_info, EX_ISDOOR)||IS_SET( pexit->exit_info, EX_HIDDEN)? 'd': '\';
else if ( pexit->vdir == DIR_UP && *map[xcoord][ycoord] == 'O' && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord][ycoord] = 'Õ';
else if ( pexit->vdir == DIR_DOWN && *map[xcoord][ycoord] == 'O' && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord][ycoord] = 'Q';
else if ( pexit->vdir == DIR_UP && *map[xcoord][ycoord] == 'Q' && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord][ycoord] = 'Ø';
else if ( pexit->vdir == DIR_DOWN && *map[xcoord][ycoord] == 'Õ' && !IS_SET( pexit->exit_info, EX_NOMAP ) )
*map[xcoord][ycoord] = 'Ø';
}
}
// check: n, ne, e, se, s, sw, w, nw, u, d and call this function again for that next room
for ( pexit = rm->first_exit; pexit; pexit = pexit->next )
{
if ( IS_SET( pexit->exit_info, EX_DIG) ||
IS_SET( pexit->exit_info, EX_SECRET) ||
IS_SET( pexit->exit_info, EX_HIDDEN) ||
//IS_SET( pexit->exit_info, EX_WINDOW) || //this was removed to allow the mapper to continue through a window. the exit for window flag are not plotted though.
IS_SET( pexit->exit_info, EX_xENTER) ||
IS_SET( pexit->exit_info, EX_NOMAP) ||
IS_SET( pexit->exit_info, EX_xLEAVE) ||
IS_SET( pexit->exit_info, EX_xSEARCHABLE) )
continue;
if ( pexit->vdir == DIR_NORTH && rm->area == get_room_index( pexit->vnum )->area )
plot_map ( ch, pexit->vnum, xcoord, ycoord - 2, tier + 1, plotted, map );
else if ( pexit->vdir == DIR_NORTH && rm->area != get_room_index( pexit->vnum )->area && xcoord > 0 && xcoord < 34 && ycoord-2 > 0 )
*map[xcoord][ycoord-2] = '¶';
if ( pexit->vdir == DIR_EAST && rm->area == get_room_index( pexit->vnum )->area )
plot_map ( ch, pexit->vnum, xcoord + 2, ycoord, tier + 1, plotted, map );
else if ( pexit->vdir == DIR_EAST && rm->area != get_room_index( pexit->vnum )->area && xcoord+2 < 34 && ycoord > 0 && ycoord < 34 )
*map[xcoord+2][ycoord] = '¶';
if ( pexit->vdir == DIR_SOUTH && rm->area == get_room_index( pexit->vnum )->area )
plot_map ( ch, pexit->vnum, xcoord, ycoord + 2, tier + 1, plotted, map );
else if ( pexit->vdir == DIR_SOUTH && rm->area != get_room_index( pexit->vnum )->area && xcoord > 0 && xcoord < 34 && ycoord+2 < 34 )
*map[xcoord][ycoord+2] = '¶';
if ( pexit->vdir == DIR_WEST && rm->area == get_room_index( pexit->vnum )->area )
plot_map ( ch, pexit->vnum, xcoord - 2, ycoord, tier + 1, plotted, map );
else if ( pexit->vdir == DIR_WEST && rm->area != get_room_index( pexit->vnum )->area && xcoord-2 > 0 && xcoord > 0 && xcoord < 34 )
*map[xcoord-2][ycoord] = '¶';
if ( pexit->vdir == DIR_NORTHEAST && rm->area == get_room_index( pexit->vnum )->area )
plot_map ( ch, pexit->vnum, xcoord + 2, ycoord - 2, tier + 1, plotted, map );
else if ( pexit->vdir == DIR_NORTHEAST && rm->area != get_room_index( pexit->vnum )->area && xcoord+2 < 34 && ycoord-2 > 0)
*map[xcoord+2][ycoord-2] = '¶';
if ( pexit->vdir == DIR_SOUTHEAST && rm->area == get_room_index( pexit->vnum )->area )
plot_map ( ch, pexit->vnum, xcoord + 2, ycoord + 2, tier + 1, plotted, map );
else if ( pexit->vdir == DIR_SOUTHEAST && rm->area != get_room_index( pexit->vnum )->area && xcoord+2 < 34 && ycoord+2 < 34)
*map[xcoord+2][ycoord+2] = '¶';
if ( pexit->vdir == DIR_SOUTHWEST && rm->area == get_room_index( pexit->vnum )->area )
plot_map ( ch, pexit->vnum, xcoord - 2, ycoord + 2, tier + 1, plotted, map );
else if ( pexit->vdir == DIR_SOUTHWEST && rm->area != get_room_index( pexit->vnum )->area && xcoord-2 > 0 && ycoord+2 < 34)
*map[xcoord-2][ycoord+2] = '¶';
if ( pexit->vdir == DIR_NORTHWEST && rm->area == get_room_index( pexit->vnum )->area )
plot_map ( ch, pexit->vnum, xcoord - 2, ycoord - 2, tier + 1, plotted, map );
else if ( pexit->vdir == DIR_NORTHWEST && rm->area != get_room_index( pexit->vnum )->area && xcoord-2 > 0 && ycoord-2 > 0 )
*map[xcoord-2][ycoord-2] = '¶';
}
return;
}
|