yapf/yapf_common.cpp
author KUDr
Mon, 01 Jan 2007 19:44:02 +0000
branchcustombridgeheads
changeset 5626 1811beeb472f
parent 5621 6ce400c0a2f4
permissions -rw-r--r--
(svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
3900
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
     1
/* $Id$ */
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
     2
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
     3
#include "../stdafx.h"
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
     4
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
     5
#include "yapf.hpp"
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
     6
#include "follow_track.hpp"
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
     7
#include "yapf_node_rail.hpp"
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
     8
#include "yapf_costbase.hpp"
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
     9
#include "yapf_costcache.hpp"
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    10
3910
72f2b5f7b155 (svn r5006) Added comments where doxygen generated warnings to test if it can help.
KUDr
parents: 3900
diff changeset
    11
/** translate tileh to the bitset of up-hill trackdirs */
3900
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    12
const TrackdirBits CYapfCostBase::c_upwards_slopes[] = {
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    13
	TRACKDIR_BIT_NONE                    , // no tileh
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    14
	TRACKDIR_BIT_X_SW | TRACKDIR_BIT_Y_NW, // 1
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    15
	TRACKDIR_BIT_X_SW | TRACKDIR_BIT_Y_SE, // 2
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    16
	TRACKDIR_BIT_X_SW                    , // 3
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    17
	TRACKDIR_BIT_X_NE | TRACKDIR_BIT_Y_SE, // 4
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    18
	TRACKDIR_BIT_NONE                    , // 5
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    19
	TRACKDIR_BIT_Y_SE                    , // 6
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    20
	TRACKDIR_BIT_NONE                    , // 7
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    21
	TRACKDIR_BIT_X_NE | TRACKDIR_BIT_Y_NW, // 8,
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    22
	TRACKDIR_BIT_Y_NW                    , // 9
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    23
	TRACKDIR_BIT_NONE                    , //10
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    24
	TRACKDIR_BIT_NONE                    , //11,
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    25
	TRACKDIR_BIT_X_NE                    , //12
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    26
	TRACKDIR_BIT_NONE                    , //13
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    27
	TRACKDIR_BIT_NONE                    , //14
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    28
	TRACKDIR_BIT_NONE                    , //15
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
diff changeset
    29
};
5626
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    30
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    31
const char* GetTrackdirName(Trackdir td)
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    32
{
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    33
	static const char * const td_names[] = {
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    34
		"INVALID_TRACKDIR",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    35
		"X_NE",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    36
		"Y_SE",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    37
		"UPPER_E",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    38
		"LOWER_E",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    39
		"LEFT_S",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    40
		"RIGHT_S",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    41
		"<6>",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    42
		"<7>",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    43
		"X_SW",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    44
		"Y_NW",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    45
		"UPPER_W",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    46
		"LOWER_W",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    47
		"LEFT_N",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    48
		"RIGHT_N",
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    49
		"TRACKDIR_END"
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    50
	};
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    51
	if (((int)td <= (int)TRACKDIR_END)) {
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    52
		int idx = ((int8)td) + 1;
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    53
		return td_names[idx];
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    54
	}
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    55
	return "<invalid value>";
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    56
}
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    57
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    58
CStrA GetTrackdirBitsName(TrackdirBits td_bits)
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    59
{
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    60
	CStrA name;
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    61
	for(int tdb = td_bits; tdb != 0; tdb = KillFirstBit2x64(tdb)) {
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    62
		name.Format("%s%s", name.Size() > 0 ? "+" : "", GetTrackdirName((Trackdir)FindFirstBit2x64(tdb)));
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    63
	}
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    64
	return name.Transfer();
1811beeb472f (svn r7728) -Codechange: [YAPF] added some YAPF debug messages plus 2 new files (string class)
KUDr
parents: 5621
diff changeset
    65
}