mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-01-31 11:23:21 +00:00
Codechange: simplify TileAdd by using simple asserts
This commit is contained in:
parent
005892bfdb
commit
df461b0329
35
src/map.cpp
35
src/map.cpp
@ -17,11 +17,6 @@
|
||||
|
||||
#include "safeguards.h"
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
/* Why the hell is that not in all MSVC headers?? */
|
||||
extern "C" _CRTIMP void __cdecl _assert(void *, void *, unsigned);
|
||||
#endif
|
||||
|
||||
/* static */ uint Map::log_x; ///< 2^_map_log_x == _map_size_x
|
||||
/* static */ uint Map::log_y; ///< 2^_map_log_y == _map_size_y
|
||||
/* static */ uint Map::size_x; ///< Size of the map along the X
|
||||
@ -69,32 +64,18 @@ extern "C" _CRTIMP void __cdecl _assert(void *, void *, unsigned);
|
||||
|
||||
|
||||
#ifdef _DEBUG
|
||||
TileIndex TileAdd(TileIndex tile, TileIndexDiff add,
|
||||
const char *exp, const char *file, int line)
|
||||
TileIndex TileAdd(TileIndex tile, TileIndexDiff offset)
|
||||
{
|
||||
int dx;
|
||||
int dy;
|
||||
uint x;
|
||||
uint y;
|
||||
|
||||
dx = add & Map::MaxX();
|
||||
int dx = offset & Map::MaxX();
|
||||
if (dx >= (int)Map::SizeX() / 2) dx -= Map::SizeX();
|
||||
dy = (add - dx) / (int)Map::SizeX();
|
||||
int dy = (offset - dx) / (int)Map::SizeX();
|
||||
|
||||
x = TileX(tile) + dx;
|
||||
y = TileY(tile) + dy;
|
||||
uint32_t x = TileX(tile) + dx;
|
||||
uint32_t y = TileY(tile) + dy;
|
||||
|
||||
if (x >= Map::SizeX() || y >= Map::SizeY()) {
|
||||
std::string message = fmt::format("TILE_ADD({}) when adding 0x{:04X} and 0x{:04X} failed",
|
||||
exp, tile, add);
|
||||
#if !defined(_MSC_VER)
|
||||
fmt::print(stderr, "{}:{} {}\n", file, line, message);
|
||||
#else
|
||||
_assert(message.data(), (char*)file, line);
|
||||
#endif
|
||||
}
|
||||
|
||||
assert(TileXY(x, y) == Map::WrapToMap(tile + add));
|
||||
assert(x < Map::SizeX());
|
||||
assert(y < Map::SizeY());
|
||||
assert(TileXY(x, y) == Map::WrapToMap(tile + offset));
|
||||
|
||||
return TileXY(x, y);
|
||||
}
|
||||
|
@ -465,9 +465,8 @@ inline TileIndexDiff ToTileIndexDiff(TileIndexDiffC tidc)
|
||||
*/
|
||||
# define TILE_ADD(x, y) ((x) + (y))
|
||||
#else
|
||||
extern TileIndex TileAdd(TileIndex tile, TileIndexDiff add,
|
||||
const char *exp, const char *file, int line);
|
||||
# define TILE_ADD(x, y) (TileAdd((x), (y), #x " + " #y, __FILE__, __LINE__))
|
||||
extern TileIndex TileAdd(TileIndex tile, TileIndexDiff offset);
|
||||
# define TILE_ADD(x, y) (TileAdd((x), (y))
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user