mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r1572) Remove dead code from ludde's autorail implementation which was left over by revision 1571
This commit is contained in:
parent
aaf09ceb26
commit
e9c25f8274
152
rail_gui.c
152
rail_gui.c
|
@ -320,123 +320,6 @@ static void DoRailroadTrack(int mode)
|
|||
);
|
||||
}
|
||||
|
||||
/* This code was used for ludde's special autorail autocomplete.
|
||||
* It analyzes the adjecent tiles and bases it's decision which
|
||||
* rail piece to place on this.
|
||||
|
||||
typedef struct {
|
||||
byte bit, a,b, mouse;
|
||||
} BestFitStruct;
|
||||
|
||||
#define M(d,m) (d << 6) | (m)
|
||||
static const BestFitStruct _bestfit[] = {
|
||||
// both edges have rail
|
||||
{2, M(0, 1+8), M(3, 2+8), 0}, // upper track
|
||||
{3, M(2, 1+4), M(1, 2+4), 0}, // lower track
|
||||
|
||||
{4, M(2, 1+32), M(3, 2+32), 1<<2}, // left track
|
||||
{5, M(0, 1+16), M(1, 2+16), 1<<3}, // right track
|
||||
|
||||
{0, M(0,1+8+16), M(2,1+4+32), 0}, // diag1 track
|
||||
{1, M(3,2+8+32), M(1,2+4+16), 0}, // diag2 track
|
||||
|
||||
// one edge with rail
|
||||
{0, M(0,1), 0, 0}, // diag1 track
|
||||
{0, M(2,1), 0, 0}, // diag1 track
|
||||
|
||||
{1, M(1,2), 0, 0}, // diag2 track
|
||||
{1, M(3,2), 0, 0}, // diag2 track
|
||||
|
||||
{2, M(0,8), 0, 1<<0}, // upper track
|
||||
{2, M(3,8), 0, 1<<0}, // upper track
|
||||
|
||||
{3, M(1,4), 0, 1<<1}, // lower track
|
||||
{3, M(2,4), 0, 1<<1}, // lower track
|
||||
|
||||
{4, M(2,32), 0, 1<<2}, // left track
|
||||
{4, M(3,32), 0, 1<<2}, // left track
|
||||
|
||||
{5, M(0,16), 0, 1<<3}, // right track
|
||||
{5, M(1,16), 0, 1<<3}, // right track
|
||||
|
||||
{0xff, 0, 0, 0},
|
||||
};
|
||||
#undef M
|
||||
|
||||
static int GetBestArea(int x, int y)
|
||||
{
|
||||
int r = 0;
|
||||
if (x + y > 0x10) r += 2;
|
||||
else if (x + y == 0x10) return -1;
|
||||
if (y - x > 0) r += 1;
|
||||
else if (y - x == 0) return -1;
|
||||
return r;
|
||||
}
|
||||
|
||||
static int GetBestFit1x1(int x, int y)
|
||||
{
|
||||
byte m[5];
|
||||
const BestFitStruct *bfs;
|
||||
byte mouse;
|
||||
uint tile;
|
||||
int best;
|
||||
int i;
|
||||
|
||||
// determine the mouse regions
|
||||
mouse = ((x & 0xF) + (y & 0xF) < 0x10 ? 1 << 0 : 1 << 1) +
|
||||
((x & 0xF) > (y & 0xF) ? 1 << 2 : 1 << 3);
|
||||
|
||||
// get the rail in each direction
|
||||
tile = TILE_FROM_XY(x,y);
|
||||
for(i=0; i!=5; i++) {
|
||||
static const TileIndexDiffC _tile_inc[] = {
|
||||
{-1 , 0 },
|
||||
{ 0 - -1, 1 - 0},
|
||||
{ 1 - 0, 0 - 1},
|
||||
{ 0 - 1, -1 - 0},
|
||||
{ 0 - 0, 0 - -1}
|
||||
};
|
||||
tile += ToTileIndexDiff(_tile_inc[i]);
|
||||
m[i] = 0;
|
||||
if (IsTileType(tile, MP_RAILWAY) && _map5[tile] < 0x80)
|
||||
m[i] = _map5[tile]&0x3F;
|
||||
|
||||
// handle tracks under bridge
|
||||
if(IsTileType(tile, MP_TUNNELBRIDGE) && (_map5[tile]&0xF8)==0xE0)
|
||||
m[i] = (byte) !(_map5[tile]&0x01) + 1;
|
||||
|
||||
if (_remove_button_clicked) m[i] ^= 0x3F;
|
||||
}
|
||||
|
||||
// check "mouse gesture"?
|
||||
{
|
||||
int a1,a2;
|
||||
if ((a1 = GetBestArea(x & 0xF, y & 0xF)) != -1 && (a2 = GetBestArea(_tile_fract_coords.x, _tile_fract_coords.y)) != -1 && a1 != a2) {
|
||||
static const byte _get_dir_by_areas[4][4] = {
|
||||
{0,2,4,1},
|
||||
{2,0,0,5},
|
||||
{4,0,0,3},
|
||||
{1,5,3,0},
|
||||
};
|
||||
i = _get_dir_by_areas[a2][a1];
|
||||
if (!HASBIT(m[4], i))
|
||||
return i;
|
||||
}
|
||||
}
|
||||
// check each bestfit struct
|
||||
for(bfs = _bestfit, best=-1; bfs->bit != 0xFF; bfs++) {
|
||||
if ((bfs->a & m[bfs->a >> 6]) && (!bfs->b || bfs->b & m[bfs->b >> 6]) && !HASBIT(m[4], bfs->bit)) {
|
||||
if ( (byte)(~mouse & bfs->mouse) == 0)
|
||||
return bfs->bit;
|
||||
if (best != -1)
|
||||
return best;
|
||||
best = bfs->bit;
|
||||
}
|
||||
}
|
||||
|
||||
return best;
|
||||
}
|
||||
*/
|
||||
|
||||
// This function is more or less a hack because DoRailroadTrack() would otherwise screw up
|
||||
static void SwapSelection()
|
||||
|
@ -448,41 +331,6 @@ static void SwapSelection()
|
|||
thd->selend = pt;
|
||||
}
|
||||
|
||||
/* see above, residue from ludde's special autorail autocomplete
|
||||
|
||||
static bool Check2x1AutoRail(int mode)
|
||||
{
|
||||
TileHighlightData *thd = &_thd;
|
||||
int fxpy = _tile_fract_coords.x + _tile_fract_coords.y;
|
||||
int sxpy = (thd->selend.x & 0xF) + (thd->selend.y & 0xF);
|
||||
int fxmy = _tile_fract_coords.x - _tile_fract_coords.y;
|
||||
int sxmy = (thd->selend.x & 0xF) - (thd->selend.y & 0xF);
|
||||
|
||||
switch(mode) {
|
||||
case 0:
|
||||
if (fxpy >= 20 && sxpy <= 12) { SwapSelection(); DoRailroadTrack(0); return true; }
|
||||
if (fxmy < -3 && sxmy > 3) { DoRailroadTrack(0); return true; }
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (fxmy > 3 && sxmy < -3) { SwapSelection(); DoRailroadTrack(0); return true; }
|
||||
if (fxpy <= 12 && sxpy >= 20) { DoRailroadTrack(0); return true; }
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (fxmy > 3 && sxmy < -3) { DoRailroadTrack(3); return true; }
|
||||
if (fxpy >= 20 && sxpy <= 12) { SwapSelection(); DoRailroadTrack(0); return true; }
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if (fxmy < -3 && sxmy > 3) { SwapSelection(); DoRailroadTrack(3); return true; }
|
||||
if (fxpy <= 12 && sxpy >= 20) { DoRailroadTrack(0); return true; }
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
|
||||
static void HandleAutodirPlacement()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue