yapf/yapf_common.cpp
author KUDr
Sun, 31 Dec 2006 23:48:04 +0000
branchcustombridgeheads
changeset 5618 a7db50b9f817
parent 5616 0570ae953222
child 5621 6ce400c0a2f4
permissions -rw-r--r--
(svn r7710) [cbh] - Fix: [YAPF] one more assert fixed. Call from the TrainController() added by (r7705) has broken YAPF because it was called when vehicle was already on the next tile (with cbh choice). Before it was always called before the train entered tile with choice.
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
};
5616
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    30
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    31
const char* GetTrackdirName(Trackdir td)
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    32
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    33
	static const char * const td_names[] = {
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    34
		"INVALID_TRACKDIR",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    35
		"X_NE",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    36
		"Y_SE",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    37
		"UPPER_E",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    38
		"LOWER_E",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    39
		"LEFT_S",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    40
		"RIGHT_S",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    41
		"<6>",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    42
		"<7>",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    43
		"X_SW",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    44
		"Y_NW",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    45
		"UPPER_W",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    46
		"LOWER_W",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    47
		"LEFT_N",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    48
		"RIGHT_N",
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    49
		"TRACKDIR_END"
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    50
	};
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    51
	if (((int)td <= (int)TRACKDIR_END)) {
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    52
		int idx = ((int8)td) + 1;
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    53
		return td_names[idx];
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    54
	}
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    55
	return "<invalid value>";
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    56
}
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    57
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    58
CStrA GetTrackdirBitsName(TrackdirBits td_bits)
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    59
{
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    60
	CStrA name;
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    61
	for(int tdb = td_bits; tdb != 0; tdb = KillFirstBit2x64(tdb)) {
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    62
		name.Format("%s%s", name.Size() > 0 ? "+" : "", GetTrackdirName((Trackdir)FindFirstBit2x64(tdb)));
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    63
	}
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    64
	return name.Transfer();
0570ae953222 (svn r7708) [cbh] - Fix: [YAPF] added some YAPF debug messages, added string support used for new debugging stuff, resolved few cbh related issues
KUDr
parents: 3971
diff changeset
    65
}