src/landscape.cpp
branchcpp_gui
changeset 6308 646711c5feaa
parent 6303 84c215fc8eb8
child 9912 1ac8aac92385
equal deleted inserted replaced
6307:f40e88cff863 6308:646711c5feaa
    74 		if (x - y >= 0)
    74 		if (x - y >= 0)
    75 			z = (x - y) >> 1;
    75 			z = (x - y) >> 1;
    76 		break;
    76 		break;
    77 
    77 
    78 	case SLOPE_S:
    78 	case SLOPE_S:
    79 		y^=0xF;
    79 		y ^= 0xF;
    80 		if ( (x - y) >= 0)
    80 		if ( (x - y) >= 0)
    81 			z = (x - y) >> 1;
    81 			z = (x - y) >> 1;
    82 		break;
    82 		break;
    83 
    83 
    84 	case SLOPE_SW:
    84 	case SLOPE_SW:
    85 		z = (x>>1) + 1;
    85 		z = (x >> 1) + 1;
    86 		break;
    86 		break;
    87 
    87 
    88 	case SLOPE_E:
    88 	case SLOPE_E:
    89 		if (y - x >= 0)
    89 		if (y - x >= 0)
    90 			z = (y - x) >> 1;
    90 			z = (y - x) >> 1;
    95 	case SLOPE_ELEVATED:
    95 	case SLOPE_ELEVATED:
    96 		z = 4;
    96 		z = 4;
    97 		break;
    97 		break;
    98 
    98 
    99 	case SLOPE_SE:
    99 	case SLOPE_SE:
   100 		z = (y>>1) + 1;
   100 		z = (y >> 1) + 1;
   101 		break;
   101 		break;
   102 
   102 
   103 	case SLOPE_WSE:
   103 	case SLOPE_WSE:
   104 		z = 8;
   104 		z = 8;
   105 		y^=0xF;
   105 		y ^= 0xF;
   106 		if (x - y < 0)
   106 		if (x - y < 0)
   107 			z += (x - y) >> 1;
   107 			z += (x - y) >> 1;
   108 		break;
   108 		break;
   109 
   109 
   110 	case SLOPE_N:
   110 	case SLOPE_N:
   112 		if (y - x >= 0)
   112 		if (y - x >= 0)
   113 			z = (y - x) >> 1;
   113 			z = (y - x) >> 1;
   114 		break;
   114 		break;
   115 
   115 
   116 	case SLOPE_NW:
   116 	case SLOPE_NW:
   117 		z = (y^0xF)>>1;
   117 		z = (y ^ 0xF) >> 1;
   118 		break;
   118 		break;
   119 
   119 
   120 	case SLOPE_NWS:
   120 	case SLOPE_NWS:
   121 		z = 8;
   121 		z = 8;
   122 		if (x - y < 0)
   122 		if (x - y < 0)
   123 			z += (x - y) >> 1;
   123 			z += (x - y) >> 1;
   124 		break;
   124 		break;
   125 
   125 
   126 	case SLOPE_NE:
   126 	case SLOPE_NE:
   127 		z = (x^0xF)>>1;
   127 		z = (x ^ 0xF) >> 1;
   128 		break;
   128 		break;
   129 
   129 
   130 	case SLOPE_ENW:
   130 	case SLOPE_ENW:
   131 		z = 8;
   131 		z = 8;
   132 		y ^= 0xF;
   132 		y ^= 0xF;
   139 		if (y - x < 0)
   139 		if (y - x < 0)
   140 			z += (y - x) >> 1;
   140 			z += (y - x) >> 1;
   141 		break;
   141 		break;
   142 
   142 
   143 	case SLOPE_STEEP_S:
   143 	case SLOPE_STEEP_S:
   144 		z = 1 + ((x+y)>>1);
   144 		z = 1 + ((x + y) >> 1);
   145 		break;
   145 		break;
   146 
   146 
   147 	case SLOPE_STEEP_W:
   147 	case SLOPE_STEEP_W:
   148 		z = 1 + ((x+(y^0xF))>>1);
   148 		z = 1 + ((x + (y ^ 0xF)) >> 1);
   149 		break;
   149 		break;
   150 
   150 
   151 	case SLOPE_STEEP_N:
   151 	case SLOPE_STEEP_N:
   152 		z = 1 + (((x^0xF)+(y^0xF))>>1);
   152 		z = 1 + (((x ^ 0xF) + (y ^ 0xF)) >> 1);
   153 		break;
   153 		break;
   154 
   154 
   155 	case SLOPE_STEEP_E:
   155 	case SLOPE_STEEP_E:
   156 		z = 1 + (((x^0xF)+(y^0xF))>>1);
   156 		z = 1 + (((x ^ 0xF) + (y ^ 0xF)) >> 1);
   157 		break;
   157 		break;
   158 
   158 
   159 		default: break;
   159 		default: break;
   160 	}
   160 	}
   161 
   161 
   383 int32 CmdClearArea(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
   383 int32 CmdClearArea(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
   384 {
   384 {
   385 	int32 cost, ret, money;
   385 	int32 cost, ret, money;
   386 	int ex;
   386 	int ex;
   387 	int ey;
   387 	int ey;
   388 	int sx,sy;
   388 	int sx, sy;
   389 	int x,y;
   389 	int x, y;
   390 	bool success = false;
   390 	bool success = false;
   391 
   391 
   392 	if (p1 >= MapSize()) return CMD_ERROR;
   392 	if (p1 >= MapSize()) return CMD_ERROR;
   393 
   393 
   394 	SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
   394 	SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
   433 }
   433 }
   434 
   434 
   435 
   435 
   436 #define TILELOOP_BITS 4
   436 #define TILELOOP_BITS 4
   437 #define TILELOOP_SIZE (1 << TILELOOP_BITS)
   437 #define TILELOOP_SIZE (1 << TILELOOP_BITS)
   438 #define TILELOOP_ASSERTMASK ((TILELOOP_SIZE-1) + ((TILELOOP_SIZE-1) << MapLogX()))
   438 #define TILELOOP_ASSERTMASK ((TILELOOP_SIZE - 1) + ((TILELOOP_SIZE - 1) << MapLogX()))
   439 #define TILELOOP_CHKMASK (((1 << (MapLogX() - TILELOOP_BITS))-1) << TILELOOP_BITS)
   439 #define TILELOOP_CHKMASK (((1 << (MapLogX() - TILELOOP_BITS))-1) << TILELOOP_BITS)
   440 
   440 
   441 void RunTileLoop()
   441 void RunTileLoop()
   442 {
   442 {
   443 	TileIndex tile;
   443 	TileIndex tile;