1
0
Fork 0

(svn r4607) -Backported r4389 from trunk:

-Fix: [NPF] Don't mark tiles when debugging in multiplayer, this will cause desyncs
release/0.4
celestar 2006-04-28 07:51:32 +00:00
parent 0381a100fa
commit bacbe211e7
1 changed files with 24 additions and 20 deletions

44
npf.c
View File

@ -11,6 +11,7 @@
#include "station.h" #include "station.h"
#include "tile.h" #include "tile.h"
#include "depot.h" #include "depot.h"
#include "network.h"
static AyStar _npf_aystar; static AyStar _npf_aystar;
@ -201,31 +202,34 @@ static uint NPFSlopeCost(AyStarNode* current)
* there is only one level of steepness... */ * there is only one level of steepness... */
} }
/* Mark tiles by mowing the grass when npf debug level >= 1 */ /**
* Mark tiles by mowing the grass when npf debug level >= 1.
* Will not work for multiplayer games, since it can (will) cause desyncs.
*/
static void NPFMarkTile(TileIndex tile) static void NPFMarkTile(TileIndex tile)
{ {
#ifdef NO_DEBUG_MESSAGES #ifdef NO_DEBUG_MESSAGES
return; return;
#else #else
if (_debug_npf_level >= 1) if (_debug_npf_level < 1 || _networking) return;
switch(GetTileType(tile)) { switch(GetTileType(tile)) {
case MP_RAILWAY: case MP_RAILWAY:
/* DEBUG: mark visited tiles by mowing the grass under them /* DEBUG: mark visited tiles by mowing the grass under them
* ;-) */ * ;-) */
if (!IsTileDepotType(tile, TRANSPORT_RAIL)) { if (!IsTileDepotType(tile, TRANSPORT_RAIL)) {
SB(_m[tile].m2, 0, 4, 0); SB(_m[tile].m2, 0, 4, 0);
MarkTileDirtyByTile(tile); MarkTileDirtyByTile(tile);
} }
break; break;
case MP_STREET: case MP_STREET:
if (!IsTileDepotType(tile, TRANSPORT_ROAD)) { if (!IsTileDepotType(tile, TRANSPORT_ROAD)) {
SB(_m[tile].m4, 4, 3, 0); SB(_m[tile].m4, 4, 3, 0);
MarkTileDirtyByTile(tile); MarkTileDirtyByTile(tile);
} }
break; break;
default: default:
break; break;
} }
#endif #endif
} }