Mercurial > hg > openttd
changeset 8373:a6209668c216 draft
(svn r11939) -Codechange: some type fixes and very initial steps into supporting NDS by default. Based on work by Dominik.
author | rubidium <rubidium@openttd.org> |
---|---|
date | Mon, 21 Jan 2008 23:55:57 +0000 |
parents | 2628bf7d5b77 |
children | 510b88dbb390 |
files | src/gui.h src/order_cmd.cpp src/spritecache.cpp src/stdafx.h src/tile_cmd.h src/viewport_func.h |
diffstat | 6 files changed, 32 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/src/gui.h +++ b/src/gui.h @@ -106,7 +106,7 @@ extern const TextColour _fios_colors[]; /* bridge_gui.cpp */ -void ShowBuildBridgeWindow(uint start, uint end, byte type); +void ShowBuildBridgeWindow(TileIndex start, TileIndex end, byte type); void ShowBuildIndustryWindow(); void ShowMusicWindow();
--- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -1330,10 +1330,8 @@ if (CheckSavegameVersion(5)) { /* Pre-version 5 had an other layout for orders (uint16 instead of uint32) */ - uint16 orders[5000]; - len /= sizeof(uint16); - assert (len <= lengthof(orders)); + uint16 *orders = MallocT<uint16>(len + 1); SlArray(orders, len, SLE_UINT16); @@ -1341,11 +1339,11 @@ Order *order = new (i) Order(); AssignOrder(order, UnpackVersion4Order(orders[i])); } + + free(orders); } else if (CheckSavegameVersionOldStyle(5, 2)) { - uint32 orders[5000]; - - len /= sizeof(uint32); - assert (len <= lengthof(orders)); + len /= sizeof(uint16); + uint16 *orders = MallocT<uint16>(len + 1); SlArray(orders, len, SLE_UINT32); @@ -1353,6 +1351,8 @@ Order *order = new (i) Order(); AssignOrder(order, UnpackOrder(orders[i])); } + + free(orders); } /* Update all the next pointer */
--- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -23,12 +23,12 @@ struct SpriteCache { - void *ptr; - uint8 file_slot; - uint32 file_pos; - int16 lru; + void *ptr; + const char *grf_name; uint32 id; - const char *grf_name; + uint32 file_pos; + uint16 file_slot; + int16 lru; };
--- a/src/stdafx.h +++ b/src/stdafx.h @@ -5,6 +5,16 @@ #ifndef STDAFX_H #define STDAFX_H +#if defined(__NDS__) + #include <nds/jtypes.h> + /* NDS' types for uint32/int32 are based on longs, which causes + * trouble all over the place in OpenTTD. */ + #define uint32 uint32_ugly_hack + #define int32 int32_ugly_hack + typedef unsigned int uint32_ugly_hack; + typedef signed int int32_ugly_hack; +#endif /* __NDS__ */ + /* It seems that we need to include stdint.h before anything else * We need INT64_MAX, which for most systems comes from stdint.h. However, MSVC * does not have stdint.h and apparently neither does MorphOS, so define @@ -249,7 +259,7 @@ typedef unsigned int uint; #endif -#if !defined(__BEOS__) /* Already defined on BEOS */ +#if !defined(__BEOS__) && !defined(__NDS__) /* Already defined on BEOS and NDS */ typedef unsigned char uint8; typedef signed char int8; typedef unsigned short uint16; @@ -258,7 +268,7 @@ typedef signed int int32; typedef unsigned __int64 uint64; typedef signed __int64 int64; -#endif +#endif /* !__BEOS__ && !__NDS__ */ #if !defined(WITH_PERSONAL_DIR) #define PERSONAL_DIR "" @@ -301,18 +311,18 @@ #define NOT_REACHED() error("NOT_REACHED triggered at line %i of %s", __LINE__, __FILE__) -#if defined(MORPHOS) - /* MorphOS doesn't have C++ conformant _stricmp... */ +#if defined(MORPHOS) || defined(__NDS__) + /* MorphOS and NDS don't have C++ conformant _stricmp... */ #define _stricmp stricmp #elif defined(OPENBSD) /* OpenBSD uses strcasecmp(3) */ #define _stricmp strcasecmp #endif -#if !defined(MORPHOS) && !defined(OPENBSD) - /* MorphOS & OpenBSD don't know wchars, the rest does :( */ +#if !defined(MORPHOS) && !defined(OPENBSD) && !defined(__NDS__) + /* NDS, MorphOS & OpenBSD don't know wchars, the rest does :( */ #define HAS_WCHAR -#endif /* !defined(MORPHOS) && !defined(OPENBSD) */ +#endif /* !defined(MORPHOS) && !defined(OPENBSD) && !defined(__NDS__) */ #if !defined(MAX_PATH) #define MAX_PATH 260
--- a/src/tile_cmd.h +++ b/src/tile_cmd.h @@ -26,6 +26,7 @@ * VETS_ENTERED_STATION is set */ VETS_STATION_ID_OFFSET = 8, + VETS_STATION_MASK = 0xFFFF << VETS_STATION_ID_OFFSET, /** Bit sets of the above specified bits */ VETSB_CONTINUE = 0, ///< The vehicle can continue normally
--- a/src/viewport_func.h +++ b/src/viewport_func.h @@ -51,7 +51,7 @@ void VpSelectTilesWithMethod(int x, int y, ViewportPlaceMethod method); void VpStartPlaceSizing(TileIndex tile, ViewportPlaceMethod method, byte process); -void VpSetPresizeRange(uint from, uint to); +void VpSetPresizeRange(TileIndex from, TileIndex to); void VpSetPlaceSizingLimit(int limit); typedef void PlaceProc(TileIndex tile);