(svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
/* $Id$ */
#include "../stdafx.h"
#include "yapf.hpp"
#include "follow_track.hpp"
#include "yapf_node_rail.hpp"
#include "yapf_costbase.hpp"
#include "yapf_costcache.hpp"
/** translate tileh to the bitset of up-hill trackdirs */
const TrackdirBits CYapfCostBase::c_upwards_slopes[] = {
TRACKDIR_BIT_NONE , // no tileh
TRACKDIR_BIT_X_SW | TRACKDIR_BIT_Y_NW, // 1
TRACKDIR_BIT_X_SW | TRACKDIR_BIT_Y_SE, // 2
TRACKDIR_BIT_X_SW , // 3
TRACKDIR_BIT_X_NE | TRACKDIR_BIT_Y_SE, // 4
TRACKDIR_BIT_NONE , // 5
TRACKDIR_BIT_Y_SE , // 6
TRACKDIR_BIT_NONE , // 7
TRACKDIR_BIT_X_NE | TRACKDIR_BIT_Y_NW, // 8,
TRACKDIR_BIT_Y_NW , // 9
TRACKDIR_BIT_NONE , //10
TRACKDIR_BIT_NONE , //11,
TRACKDIR_BIT_X_NE , //12
TRACKDIR_BIT_NONE , //13
TRACKDIR_BIT_NONE , //14
TRACKDIR_BIT_NONE , //15
};
const char* GetTrackdirName(Trackdir td)
{
static const char * const td_names[] = {
"INVALID_TRACKDIR",
"X_NE",
"Y_SE",
"UPPER_E",
"LOWER_E",
"LEFT_S",
"RIGHT_S",
"<6>",
"<7>",
"X_SW",
"Y_NW",
"UPPER_W",
"LOWER_W",
"LEFT_N",
"RIGHT_N",
"TRACKDIR_END"
};
if (((int)td <= (int)TRACKDIR_END)) {
int idx = ((int8)td) + 1;
return td_names[idx];
}
return "<invalid value>";
}
CStrA GetTrackdirBitsName(TrackdirBits td_bits)
{
CStrA name;
for(int tdb = td_bits; tdb != 0; tdb = KillFirstBit2x64(tdb)) {
name.Format("%s%s", name.Size() > 0 ? "+" : "", GetTrackdirName((Trackdir)FindFirstBit2x64(tdb)));
}
return name.Transfer();
}