diff --git a/src/3rdparty/squirrel/squirrel/sqcompiler.cpp b/src/3rdparty/squirrel/squirrel/sqcompiler.cpp index 00e5df04f4..a80e08639b 100644 --- a/src/3rdparty/squirrel/squirrel/sqcompiler.cpp +++ b/src/3rdparty/squirrel/squirrel/sqcompiler.cpp @@ -835,8 +835,7 @@ public: nkeys++; SQInteger val = _fs->PopTarget(); SQInteger key = _fs->PopTarget(); - SQInteger attrs = hasattrs ? _fs->PopTarget():-1; - (void)attrs; // assert only + [[maybe_unused]] SQInteger attrs = hasattrs ? _fs->PopTarget():-1; assert((hasattrs && attrs == key-1) || !hasattrs); unsigned char flags = (hasattrs?NEW_SLOT_ATTRIBUTES_FLAG:0)|(isstatic?NEW_SLOT_STATIC_FLAG:0); SQInteger table = _fs->TopTarget(); //<_can_suspend); @@ -1504,11 +1502,9 @@ bool SQVM::Call(SQObjectPtr &closure,SQInteger nparams,SQInteger stackbase,SQObj default: return false; } -#ifdef WITH_ASSERT if(!_suspended) { assert(_stackbase == prevstackbase); } -#endif return true; } diff --git a/src/autoreplace_cmd.cpp b/src/autoreplace_cmd.cpp index 8eb9063d38..7a28c9c7fe 100644 --- a/src/autoreplace_cmd.cpp +++ b/src/autoreplace_cmd.cpp @@ -614,8 +614,7 @@ static CommandCost ReplaceChain(Vehicle **chain, DoCommandFlag flags, bool wagon assert(RailVehInfo(wagon->engine_type)->railveh_type == RAILVEH_WAGON); /* Sell wagon */ - CommandCost ret = DoCommand(0, wagon->index, 0, DC_EXEC, GetCmdSellVeh(wagon)); - (void)ret; // assert only + [[maybe_unused]] CommandCost ret = DoCommand(0, wagon->index, 0, DC_EXEC, GetCmdSellVeh(wagon)); assert(ret.Succeeded()); new_vehs[i] = nullptr; @@ -668,8 +667,7 @@ static CommandCost ReplaceChain(Vehicle **chain, DoCommandFlag flags, bool wagon assert(Train::From(old_head)->GetNextUnit() == nullptr); for (int i = num_units - 1; i > 0; i--) { - CommandCost ret = CmdMoveVehicle(old_vehs[i], old_head, DC_EXEC | DC_AUTOREPLACE, false); - (void)ret; // assert only + [[maybe_unused]] CommandCost ret = CmdMoveVehicle(old_vehs[i], old_head, DC_EXEC | DC_AUTOREPLACE, false); assert(ret.Succeeded()); } } diff --git a/src/blitter/32bpp_anim.cpp b/src/blitter/32bpp_anim.cpp index 487df7822c..d10213745a 100644 --- a/src/blitter/32bpp_anim.cpp +++ b/src/blitter/32bpp_anim.cpp @@ -247,7 +247,7 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel break; default: - if (fast_path || (src_px->a == 255 && (sprite_flags & SF_NO_ANIM))) { + if (fast_path || (src_px->a == 255 && (sprite_flags & BSF_NO_ANIM))) { do { *anim++ = 0; Colour c = *src_px; @@ -317,7 +317,7 @@ void Blitter_32bppAnim::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomL default: NOT_REACHED(); case BM_COLOUR_REMAP_WITH_BRIGHTNESS: - if (!(sprite_flags & SF_NO_REMAP)) { + if (!(sprite_flags & BSF_NO_REMAP)) { Draw(bp, zoom); return; } @@ -328,14 +328,14 @@ void Blitter_32bppAnim::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomL return; case BM_COLOUR_REMAP: - if (!(sprite_flags & SF_NO_REMAP)) { + if (!(sprite_flags & BSF_NO_REMAP)) { Draw(bp, zoom); return; } /* FALL THROUGH */ case BM_NORMAL: - if ((sprite_flags & (SF_NO_ANIM | SF_TRANSLUCENT)) == SF_NO_ANIM && + if ((sprite_flags & (BSF_NO_ANIM | BSF_TRANSLUCENT)) == BSF_NO_ANIM && bp->skip_left == 0 && bp->width == UnScaleByZoom(bp->sprite_width, zoom)) { Draw(bp, zoom); } else { diff --git a/src/blitter/32bpp_anim_sse4.cpp b/src/blitter/32bpp_anim_sse4.cpp index 7d126a43dc..14a314df73 100644 --- a/src/blitter/32bpp_anim_sse4.cpp +++ b/src/blitter/32bpp_anim_sse4.cpp @@ -442,35 +442,35 @@ bm_normal: if (bp->skip_left != 0 || bp->width <= MARGIN_NORMAL_THRESHOLD) { const BlockType bt_last = (BlockType) (bp->width & 1); if (bt_last == BT_EVEN) { - if (sprite_flags & SF_NO_ANIM) Draw(bp, zoom); + if (sprite_flags & BSF_NO_ANIM) Draw(bp, zoom); else Draw(bp, zoom); } else { - if (sprite_flags & SF_NO_ANIM) Draw(bp, zoom); + if (sprite_flags & BSF_NO_ANIM) Draw(bp, zoom); else Draw(bp, zoom); } } else { #ifdef POINTER_IS_64BIT - if (sprite_flags & SF_TRANSLUCENT) { - if (sprite_flags & SF_NO_ANIM) Draw(bp, zoom); + if (sprite_flags & BSF_TRANSLUCENT) { + if (sprite_flags & BSF_NO_ANIM) Draw(bp, zoom); else Draw(bp, zoom); } else { - if (sprite_flags & SF_NO_ANIM) Draw(bp, zoom); + if (sprite_flags & BSF_NO_ANIM) Draw(bp, zoom); else Draw(bp, zoom); } #else - if (sprite_flags & SF_NO_ANIM) Draw(bp, zoom); + if (sprite_flags & BSF_NO_ANIM) Draw(bp, zoom); else Draw(bp, zoom); #endif } break; } case BM_COLOUR_REMAP: - if (sprite_flags & SF_NO_REMAP) goto bm_normal; + if (sprite_flags & BSF_NO_REMAP) goto bm_normal; if (bp->skip_left != 0 || bp->width <= MARGIN_REMAP_THRESHOLD) { - if (sprite_flags & SF_NO_ANIM) Draw(bp, zoom); + if (sprite_flags & BSF_NO_ANIM) Draw(bp, zoom); else Draw(bp, zoom); } else { - if (sprite_flags & SF_NO_ANIM) Draw(bp, zoom); + if (sprite_flags & BSF_NO_ANIM) Draw(bp, zoom); else Draw(bp, zoom); } break; @@ -479,7 +479,7 @@ bm_normal: case BM_BLACK_REMAP: Draw(bp, zoom); return; case BM_COLOUR_REMAP_WITH_BRIGHTNESS: - if (!(sprite_flags & SF_NO_REMAP)) { + if (!(sprite_flags & BSF_NO_REMAP)) { Draw(bp, zoom); return; } diff --git a/src/blitter/32bpp_optimized.cpp b/src/blitter/32bpp_optimized.cpp index 6e1021af6d..73187d31f7 100644 --- a/src/blitter/32bpp_optimized.cpp +++ b/src/blitter/32bpp_optimized.cpp @@ -313,7 +313,7 @@ template Sprite *Blitter_32bppOptimized::EncodeInternal(const if (zoom_max == zoom_min) zoom_max = ZOOM_LVL_DRAW_SPR; } - BlitterSpriteFlags flags = SF_NO_REMAP | SF_NO_ANIM; + BlitterSpriteFlags flags = BSF_NO_REMAP | BSF_NO_ANIM; for (ZoomLevel z = zoom_min; z <= zoom_max; z++) { const SpriteLoader::Sprite *src_orig = &sprite[z]; @@ -354,11 +354,11 @@ template Sprite *Blitter_32bppOptimized::EncodeInternal(const if (a != 0) { dst_px->a = a; - if (a != 0 && a != 255) flags |= SF_TRANSLUCENT; + if (a != 0 && a != 255) flags |= BSF_TRANSLUCENT; *dst_n = src->m; if (src->m != 0) { - flags &= ~SF_NO_REMAP; - if (src->m >= PALETTE_ANIM_START) flags &= ~SF_NO_ANIM; + flags &= ~BSF_NO_REMAP; + if (src->m >= PALETTE_ANIM_START) flags &= ~BSF_NO_ANIM; /* Get brightest value */ uint8 rgb_max = std::max({ src->r, src->g, src->b }); diff --git a/src/blitter/32bpp_sse2.cpp b/src/blitter/32bpp_sse2.cpp index f367161767..5bb9a02519 100644 --- a/src/blitter/32bpp_sse2.cpp +++ b/src/blitter/32bpp_sse2.cpp @@ -129,10 +129,10 @@ Sprite *Blitter_32bppSSE_Base::Encode(const SpriteLoader::Sprite *sprite, Alloca } /* Store sprite flags. */ - sd.flags = SF_NONE; - if (has_translucency) sd.flags |= SF_TRANSLUCENT; - if (!has_remap) sd.flags |= SF_NO_REMAP; - if (!has_anim) sd.flags |= SF_NO_ANIM; + sd.flags = BSF_NONE; + if (has_translucency) sd.flags |= BSF_TRANSLUCENT; + if (!has_remap) sd.flags |= BSF_NO_REMAP; + if (!has_anim) sd.flags |= BSF_NO_ANIM; memcpy(dst_sprite->data, &sd, sizeof(SpriteData)); return dst_sprite; diff --git a/src/blitter/32bpp_sse_func.hpp b/src/blitter/32bpp_sse_func.hpp index eb2fc1cab5..9fd4e8b38c 100644 --- a/src/blitter/32bpp_sse_func.hpp +++ b/src/blitter/32bpp_sse_func.hpp @@ -499,7 +499,7 @@ bm_normal: case BT_ODD: Draw(bp, zoom); return; } } else { - if (((const Blitter_32bppSSE_Base::SpriteData *) bp->sprite)->flags & SF_TRANSLUCENT) { + if (((const Blitter_32bppSSE_Base::SpriteData *) bp->sprite)->flags & BSF_TRANSLUCENT) { Draw(bp, zoom); } else { Draw(bp, zoom); @@ -509,7 +509,7 @@ bm_normal: break; } case BM_COLOUR_REMAP: - if (((const Blitter_32bppSSE_Base::SpriteData *) bp->sprite)->flags & SF_NO_REMAP) goto bm_normal; + if (((const Blitter_32bppSSE_Base::SpriteData *) bp->sprite)->flags & BSF_NO_REMAP) goto bm_normal; if (bp->skip_left != 0 || bp->width <= MARGIN_REMAP_THRESHOLD) { Draw(bp, zoom); return; } else { @@ -520,7 +520,7 @@ bm_normal: case BM_BLACK_REMAP: Draw(bp, zoom); return; case BM_COLOUR_REMAP_WITH_BRIGHTNESS: - if (!(((const Blitter_32bppSSE_Base::SpriteData *) bp->sprite)->flags & SF_NO_REMAP)) { + if (!(((const Blitter_32bppSSE_Base::SpriteData *) bp->sprite)->flags & BSF_NO_REMAP)) { Draw(bp, zoom); return; } diff --git a/src/blitter/base.hpp b/src/blitter/base.hpp index 99dcaf901f..37154eac35 100644 --- a/src/blitter/base.hpp +++ b/src/blitter/base.hpp @@ -33,10 +33,10 @@ enum BlitterMode { * - heavy branching (remap lookups and animation buffer handling). */ enum BlitterSpriteFlags { - SF_NONE = 0, - SF_TRANSLUCENT = 1 << 1, ///< The sprite has at least 1 translucent pixel. - SF_NO_REMAP = 1 << 2, ///< The sprite has no remappable colour pixel. - SF_NO_ANIM = 1 << 3, ///< The sprite has no palette animated pixel. + BSF_NONE = 0, + BSF_TRANSLUCENT = 1 << 1, ///< The sprite has at least 1 translucent pixel. + BSF_NO_REMAP = 1 << 2, ///< The sprite has no remappable colour pixel. + BSF_NO_ANIM = 1 << 3, ///< The sprite has no palette animated pixel. }; DECLARE_ENUM_AS_BIT_SET(BlitterSpriteFlags); diff --git a/src/core/pool_func.hpp b/src/core/pool_func.hpp index f2a31d5178..dbbd1254cf 100644 --- a/src/core/pool_func.hpp +++ b/src/core/pool_func.hpp @@ -35,9 +35,9 @@ DEFINE_POOL_METHOD(inline)::Pool(const char *name) : first_free(0), first_unused(0), items(0), -#ifdef OTTD_ASSERT +#ifdef WITH_ASSERT checked(0), -#endif /* OTTD_ASSERT */ +#endif /* WITH_ASSERT */ cleaning(false), data(nullptr), free_bitmap(nullptr), @@ -145,10 +145,10 @@ DEFINE_POOL_METHOD(void *)::GetNew(size_t size) { size_t index = this->FindFirstFree(); -#ifdef OTTD_ASSERT +#ifdef WITH_ASSERT assert(this->checked != 0); this->checked--; -#endif /* OTTD_ASSERT */ +#endif /* WITH_ASSERT */ if (index == NO_FREE_ITEM) { error("%s: no more free items", this->name); } diff --git a/src/core/pool_type.hpp b/src/core/pool_type.hpp index 9c97512e1c..d6e4745fc1 100644 --- a/src/core/pool_type.hpp +++ b/src/core/pool_type.hpp @@ -90,9 +90,9 @@ struct Pool : PoolBase { size_t first_free; ///< No item with index lower than this is free (doesn't say anything about this one!) size_t first_unused; ///< This and all higher indexes are free (doesn't say anything about first_unused-1 !) size_t items; ///< Number of used indexes (non-nullptr) -#ifdef OTTD_ASSERT +#ifdef WITH_ASSERT size_t checked; ///< Number of items we checked for -#endif /* OTTD_ASSERT */ +#endif /* WITH_ASSERT */ bool cleaning; ///< True if cleaning pool (deleting all items) Titem **data; ///< Pointer to array of pointers to Titem @@ -131,9 +131,9 @@ struct Pool : PoolBase { inline bool CanAllocate(size_t n = 1) { bool ret = this->items <= Tmax_size - n; -#ifdef OTTD_ASSERT +#ifdef WITH_ASSERT this->checked = ret ? n : 0; -#endif /* OTTD_ASSERT */ +#endif /* WITH_ASSERT */ return ret; } diff --git a/src/engine.cpp b/src/engine.cpp index 8936097eb1..8fe28f51b2 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -547,8 +547,7 @@ void SetupEngines() /* Assert is safe; there won't be more than 256 original vehicles * in any case, and we just cleaned the pool. */ assert(Engine::CanAllocateItem()); - const Engine *e = new Engine(eid.type, eid.internal_id); - (void)e; // assert only + [[maybe_unused]] const Engine *e = new Engine(eid.type, eid.internal_id); assert(e->index == index); index++; } diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 4c54ecd1b6..fc7c6a2e2f 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -106,8 +106,7 @@ static void LoadGrfFileIndexed(const char *filename, const SpriteID *index_tbl, uint end = *index_tbl++; do { - bool b = LoadNextSprite(start, file, sprite_id); - (void)b; // Unused without asserts + [[maybe_unused]] bool b = LoadNextSprite(start, file, sprite_id); assert(b); sprite_id++; } while (++start <= end); diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 82d30c28b0..7e6d9608f1 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -2213,8 +2213,7 @@ static Industry *CreateNewIndustry(TileIndex tile, IndustryType type, IndustryAv uint32 seed2 = Random(); Industry *i = nullptr; size_t layout_index = RandomRange((uint32)indspec->layouts.size()); - CommandCost ret = CreateNewIndustryHelper(tile, type, DC_EXEC, indspec, layout_index, seed, GB(seed2, 0, 16), OWNER_NONE, creation_type, &i); - (void)ret; // assert only + [[maybe_unused]] CommandCost ret = CreateNewIndustryHelper(tile, type, DC_EXEC, indspec, layout_index, seed, GB(seed2, 0, 16), OWNER_NONE, creation_type, &i); assert(i != nullptr || ret.Failed()); return i; } diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 91832278c1..473383d747 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2639,7 +2639,7 @@ STR_NETWORK_ERROR_SERVER_START :{WHITE}서버 STR_NETWORK_ERROR_CLIENT_START :{WHITE}접속할 수 없습니다 STR_NETWORK_ERROR_TIMEOUT :{WHITE}접속자 #{NUM}의 입력 시간이 초과되었습니다 STR_NETWORK_ERROR_SERVER_ERROR :{WHITE}프로토콜 오류가 발생되어 연결이 끊어졌습니다 -STR_NETWORK_ERROR_BAD_PLAYER_NAME :{WHITE}접속자 이름을 설정하지 않았습니다. 이름은 멀티플레이 창의 상단에서 설정할 수 있습니다. +STR_NETWORK_ERROR_BAD_PLAYER_NAME :{WHITE}접속자 이름을 지정하지 않았습니다. 접속자 이름은 멀티플레이 창 맨 위에서 설정할 수 있습니다. STR_NETWORK_ERROR_BAD_SERVER_NAME :{WHITE}서버 이름을 지정하지 않았습니다. 서버 이름은 멀티플레이 창 맨 위에서 설정할 수 있습니다. STR_NETWORK_ERROR_WRONG_REVISION :{WHITE}이 접속자의 게임 버전이 서버의 버전과 일치하지 않습니다 STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}잘못된 비밀번호입니다 diff --git a/src/misc/hashtable.hpp b/src/misc/hashtable.hpp index c7bb600dad..13dadc01ac 100644 --- a/src/misc/hashtable.hpp +++ b/src/misc/hashtable.hpp @@ -239,8 +239,7 @@ public: /** non-const item search & removal */ void Pop(Titem_ &item) { - bool ret = TryPop(item); - (void)ret; // assert only + [[maybe_unused]] bool ret = TryPop(item); assert(ret); } diff --git a/src/pathfinder/npf/npf.cpp b/src/pathfinder/npf/npf.cpp index ec1636d28f..746c056000 100644 --- a/src/pathfinder/npf/npf.cpp +++ b/src/pathfinder/npf/npf.cpp @@ -1043,8 +1043,7 @@ static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start _npf_aystar.user_data = user; /* GO! */ - int r = _npf_aystar.Main(); - (void)r; // assert only + [[maybe_unused]] int r = _npf_aystar.Main(); assert(r != AYSTAR_STILL_BUSY); if (result.best_bird_dist != 0) { diff --git a/src/saveload/ai_sl.cpp b/src/saveload/ai_sl.cpp index fcb78f2edd..7eb2a5ce1c 100644 --- a/src/saveload/ai_sl.cpp +++ b/src/saveload/ai_sl.cpp @@ -120,6 +120,8 @@ static void Save_AIPL() } } -extern const ChunkHandler _ai_chunk_handlers[] = { - { 'AIPL', Save_AIPL, Load_AIPL, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler ai_chunk_handlers[] = { + { 'AIPL', Save_AIPL, Load_AIPL, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _ai_chunk_handlers(ai_chunk_handlers); diff --git a/src/saveload/airport_sl.cpp b/src/saveload/airport_sl.cpp index a7470d268f..114e5672ab 100644 --- a/src/saveload/airport_sl.cpp +++ b/src/saveload/airport_sl.cpp @@ -34,7 +34,9 @@ static void Load_ATID() Load_NewGRFMapping(_airporttile_mngr); } -extern const ChunkHandler _airport_chunk_handlers[] = { +static const ChunkHandler airport_chunk_handlers[] = { { 'ATID', Save_ATID, Load_ATID, nullptr, nullptr, CH_ARRAY }, - { 'APID', Save_APID, Load_APID, nullptr, nullptr, CH_ARRAY | CH_LAST }, + { 'APID', Save_APID, Load_APID, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _airport_chunk_handlers(airport_chunk_handlers); diff --git a/src/saveload/animated_tile_sl.cpp b/src/saveload/animated_tile_sl.cpp index 1f2eec34e6..b9ccc44092 100644 --- a/src/saveload/animated_tile_sl.cpp +++ b/src/saveload/animated_tile_sl.cpp @@ -73,6 +73,8 @@ static void Load_ANIT() * "Definition" imported by the saveload code to be able to load and save * the animated tile table. */ -extern const ChunkHandler _animated_tile_chunk_handlers[] = { - { 'ANIT', Save_ANIT, Load_ANIT, nullptr, nullptr, CH_RIFF | CH_LAST}, +static const ChunkHandler animated_tile_chunk_handlers[] = { + { 'ANIT', Save_ANIT, Load_ANIT, nullptr, nullptr, CH_RIFF }, }; + +extern const ChunkHandlerTable _animated_tile_chunk_handlers(animated_tile_chunk_handlers); diff --git a/src/saveload/autoreplace_sl.cpp b/src/saveload/autoreplace_sl.cpp index ef343fc179..f54866c107 100644 --- a/src/saveload/autoreplace_sl.cpp +++ b/src/saveload/autoreplace_sl.cpp @@ -55,6 +55,8 @@ static void Ptrs_ERNW() } } -extern const ChunkHandler _autoreplace_chunk_handlers[] = { - { 'ERNW', Save_ERNW, Load_ERNW, Ptrs_ERNW, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler autoreplace_chunk_handlers[] = { + { 'ERNW', Save_ERNW, Load_ERNW, Ptrs_ERNW, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _autoreplace_chunk_handlers(autoreplace_chunk_handlers); diff --git a/src/saveload/bridge_signal_sl.cpp b/src/saveload/bridge_signal_sl.cpp index 8a42b100bb..0347b2a033 100644 --- a/src/saveload/bridge_signal_sl.cpp +++ b/src/saveload/bridge_signal_sl.cpp @@ -50,6 +50,8 @@ static void Save_XBSS() } } -extern const ChunkHandler _bridge_signal_chunk_handlers[] = { - { 'XBSS', Save_XBSS, Load_XBSS, nullptr, nullptr, CH_SPARSE_ARRAY | CH_LAST}, +extern const ChunkHandler bridge_signal_chunk_handlers[] = { + { 'XBSS', Save_XBSS, Load_XBSS, nullptr, nullptr, CH_SPARSE_ARRAY }, }; + +extern const ChunkHandlerTable _bridge_signal_chunk_handlers(bridge_signal_chunk_handlers); diff --git a/src/saveload/cargomonitor_sl.cpp b/src/saveload/cargomonitor_sl.cpp index 3ca64d77ef..abb0d59b99 100644 --- a/src/saveload/cargomonitor_sl.cpp +++ b/src/saveload/cargomonitor_sl.cpp @@ -117,7 +117,9 @@ static void LoadPickup() } /** Chunk definition of the cargomonitoring maps. */ -extern const ChunkHandler _cargomonitor_chunk_handlers[] = { - { 'CMDL', SaveDelivery, LoadDelivery, nullptr, nullptr, CH_ARRAY}, - { 'CMPU', SavePickup, LoadPickup, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler cargomonitor_chunk_handlers[] = { + { 'CMDL', SaveDelivery, LoadDelivery, nullptr, nullptr, CH_ARRAY }, + { 'CMPU', SavePickup, LoadPickup, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _cargomonitor_chunk_handlers(cargomonitor_chunk_handlers); diff --git a/src/saveload/cargopacket_sl.cpp b/src/saveload/cargopacket_sl.cpp index 27e5a193b7..45e524e267 100644 --- a/src/saveload/cargopacket_sl.cpp +++ b/src/saveload/cargopacket_sl.cpp @@ -186,7 +186,9 @@ void Load_CPDP() /** Chunk handlers related to cargo packets. */ -extern const ChunkHandler _cargopacket_chunk_handlers[] = { +static const ChunkHandler cargopacket_chunk_handlers[] = { { 'CAPA', Save_CAPA, Load_CAPA, nullptr, nullptr, CH_ARRAY }, - { 'CPDP', Save_CPDP, Load_CPDP, nullptr, nullptr, CH_RIFF | CH_LAST }, + { 'CPDP', Save_CPDP, Load_CPDP, nullptr, nullptr, CH_RIFF }, }; + +extern const ChunkHandlerTable _cargopacket_chunk_handlers(cargopacket_chunk_handlers); diff --git a/src/saveload/cheat_sl.cpp b/src/saveload/cheat_sl.cpp index e9dc3d2530..d3da09fb6f 100644 --- a/src/saveload/cheat_sl.cpp +++ b/src/saveload/cheat_sl.cpp @@ -155,7 +155,9 @@ static const SaveLoad _settings_ext_save_desc[] = { /** Chunk handlers related to cheats. */ -extern const ChunkHandler _cheat_chunk_handlers[] = { - { 'CHTS', Save_CHTS, Load_CHTS, nullptr, nullptr, CH_RIFF}, - { 'CHTX', Save_CHTX, Load_CHTX, nullptr, nullptr, CH_RIFF | CH_LAST}, +static const ChunkHandler cheat_chunk_handlers[] = { + { 'CHTS', Save_CHTS, Load_CHTS, nullptr, nullptr, CH_RIFF }, + { 'CHTX', Save_CHTX, Load_CHTX, nullptr, nullptr, CH_RIFF }, }; + +extern const ChunkHandlerTable _cheat_chunk_handlers(cheat_chunk_handlers); diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 8bee3f3aa5..c0a3c80ac9 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -556,7 +556,9 @@ static void Save_PLYX() SaveSettingsPlyx(); } -extern const ChunkHandler _company_chunk_handlers[] = { +static const ChunkHandler company_chunk_handlers[] = { { 'PLYR', Save_PLYR, Load_PLYR, Ptrs_PLYR, Check_PLYR, CH_ARRAY }, - { 'PLYX', Save_PLYX, Load_PLYX, nullptr, Check_PLYX, CH_RIFF | CH_LAST}, + { 'PLYX', Save_PLYX, Load_PLYX, nullptr, Check_PLYX, CH_RIFF }, }; + +extern const ChunkHandlerTable _company_chunk_handlers(company_chunk_handlers); diff --git a/src/saveload/debug_sl.cpp b/src/saveload/debug_sl.cpp index 79bbf27e4c..7c904d73bf 100644 --- a/src/saveload/debug_sl.cpp +++ b/src/saveload/debug_sl.cpp @@ -86,7 +86,9 @@ static void Check_DBGC() } } -extern const ChunkHandler _debug_chunk_handlers[] = { - { 'DBGL', Save_DBGL, Load_DBGL, nullptr, Check_DBGL, CH_RIFF}, - { 'DBGC', Save_DBGC, Load_DBGC, nullptr, Check_DBGC, CH_RIFF | CH_LAST}, +extern const ChunkHandler debug_chunk_handlers[] = { + { 'DBGL', Save_DBGL, Load_DBGL, nullptr, Check_DBGL, CH_RIFF }, + { 'DBGC', Save_DBGC, Load_DBGC, nullptr, Check_DBGC, CH_RIFF }, }; + +extern const ChunkHandlerTable _debug_chunk_handlers(debug_chunk_handlers); diff --git a/src/saveload/depot_sl.cpp b/src/saveload/depot_sl.cpp index 9c64e1f93e..73cf0cd4cf 100644 --- a/src/saveload/depot_sl.cpp +++ b/src/saveload/depot_sl.cpp @@ -57,6 +57,8 @@ static void Ptrs_DEPT() } } -extern const ChunkHandler _depot_chunk_handlers[] = { - { 'DEPT', Save_DEPT, Load_DEPT, Ptrs_DEPT, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler depot_chunk_handlers[] = { + { 'DEPT', Save_DEPT, Load_DEPT, Ptrs_DEPT, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _depot_chunk_handlers(depot_chunk_handlers); diff --git a/src/saveload/economy_sl.cpp b/src/saveload/economy_sl.cpp index 67a9a187c5..6cc2a8629b 100644 --- a/src/saveload/economy_sl.cpp +++ b/src/saveload/economy_sl.cpp @@ -95,9 +95,11 @@ static void Ptrs_CAPY() } -extern const ChunkHandler _economy_chunk_handlers[] = { - { 'CAPY', Save_CAPY, Load_CAPY, Ptrs_CAPY, nullptr, CH_ARRAY}, - { 'PRIC', nullptr, Load_PRIC, nullptr, nullptr, CH_RIFF }, - { 'CAPR', nullptr, Load_CAPR, nullptr, nullptr, CH_RIFF }, - { 'ECMY', Save_ECMY, Load_ECMY, nullptr, nullptr, CH_RIFF | CH_LAST}, +static const ChunkHandler economy_chunk_handlers[] = { + { 'CAPY', Save_CAPY, Load_CAPY, Ptrs_CAPY, nullptr, CH_ARRAY }, + { 'PRIC', nullptr, Load_PRIC, nullptr, nullptr, CH_RIFF }, + { 'CAPR', nullptr, Load_CAPR, nullptr, nullptr, CH_RIFF }, + { 'ECMY', Save_ECMY, Load_ECMY, nullptr, nullptr, CH_RIFF }, }; + +extern const ChunkHandlerTable _economy_chunk_handlers(economy_chunk_handlers); diff --git a/src/saveload/engine_sl.cpp b/src/saveload/engine_sl.cpp index c0229f9bf6..e06699656a 100644 --- a/src/saveload/engine_sl.cpp +++ b/src/saveload/engine_sl.cpp @@ -199,8 +199,10 @@ void AfterLoadEngines() AnalyseEngineCallbacks(); } -extern const ChunkHandler _engine_chunk_handlers[] = { - { 'EIDS', Save_EIDS, Load_EIDS, nullptr, nullptr, CH_ARRAY }, - { 'ENGN', Save_ENGN, Load_ENGN, nullptr, nullptr, CH_ARRAY }, - { 'ENGS', nullptr, Load_ENGS, nullptr, nullptr, CH_RIFF | CH_LAST }, +static const ChunkHandler engine_chunk_handlers[] = { + { 'EIDS', Save_EIDS, Load_EIDS, nullptr, nullptr, CH_ARRAY }, + { 'ENGN', Save_ENGN, Load_ENGN, nullptr, nullptr, CH_ARRAY }, + { 'ENGS', nullptr, Load_ENGS, nullptr, nullptr, CH_RIFF }, }; + +extern const ChunkHandlerTable _engine_chunk_handlers(engine_chunk_handlers); diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index f0744df3a6..108bdcd957 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -669,6 +669,7 @@ static uint32 saveLC(const SlxiSubChunkInfo *info, bool dry_run) return 1; } -extern const ChunkHandler _version_ext_chunk_handlers[] = { - { 'SLXI', Save_SLXI, Load_SLXI, nullptr, Load_SLXI, CH_RIFF | CH_LAST}, +extern const ChunkHandler version_ext_chunk_handlers[] = { + { 'SLXI', Save_SLXI, Load_SLXI, nullptr, Load_SLXI, CH_RIFF }, }; +extern const ChunkHandlerTable _version_ext_chunk_handlers(version_ext_chunk_handlers); diff --git a/src/saveload/game_sl.cpp b/src/saveload/game_sl.cpp index 055a5fbfc4..4034df3c96 100644 --- a/src/saveload/game_sl.cpp +++ b/src/saveload/game_sl.cpp @@ -173,7 +173,9 @@ static void Save_GSTR() } } -extern const ChunkHandler _game_chunk_handlers[] = { +static const ChunkHandler game_chunk_handlers[] = { { 'GSTR', Save_GSTR, Load_GSTR, nullptr, nullptr, CH_ARRAY }, - { 'GSDT', Save_GSDT, Load_GSDT, nullptr, nullptr, CH_ARRAY | CH_LAST}, + { 'GSDT', Save_GSDT, Load_GSDT, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _game_chunk_handlers(game_chunk_handlers); diff --git a/src/saveload/gamelog_sl.cpp b/src/saveload/gamelog_sl.cpp index 581ef41c31..ef1c076e9f 100644 --- a/src/saveload/gamelog_sl.cpp +++ b/src/saveload/gamelog_sl.cpp @@ -175,6 +175,8 @@ static void Check_GLOG() Load_GLOG_common(_load_check_data.gamelog_action, _load_check_data.gamelog_actions); } -extern const ChunkHandler _gamelog_chunk_handlers[] = { - { 'GLOG', Save_GLOG, Load_GLOG, nullptr, Check_GLOG, CH_RIFF | CH_LAST } +static const ChunkHandler gamelog_chunk_handlers[] = { + { 'GLOG', Save_GLOG, Load_GLOG, nullptr, Check_GLOG, CH_RIFF } }; + +extern const ChunkHandlerTable _gamelog_chunk_handlers(gamelog_chunk_handlers); diff --git a/src/saveload/goal_sl.cpp b/src/saveload/goal_sl.cpp index 2c9d8fde9f..2f66797594 100644 --- a/src/saveload/goal_sl.cpp +++ b/src/saveload/goal_sl.cpp @@ -40,6 +40,8 @@ static void Load_GOAL() } } -extern const ChunkHandler _goal_chunk_handlers[] = { - { 'GOAL', Save_GOAL, Load_GOAL, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler goal_chunk_handlers[] = { + { 'GOAL', Save_GOAL, Load_GOAL, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _goal_chunk_handlers(goal_chunk_handlers); diff --git a/src/saveload/group_sl.cpp b/src/saveload/group_sl.cpp index a6ae263f9d..f41091611c 100644 --- a/src/saveload/group_sl.cpp +++ b/src/saveload/group_sl.cpp @@ -55,6 +55,8 @@ static void Load_GRPS() } } -extern const ChunkHandler _group_chunk_handlers[] = { - { 'GRPS', Save_GRPS, Load_GRPS, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler group_chunk_handlers[] = { + { 'GRPS', Save_GRPS, Load_GRPS, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _group_chunk_handlers(group_chunk_handlers); diff --git a/src/saveload/industry_sl.cpp b/src/saveload/industry_sl.cpp index a59524de67..c75674069e 100644 --- a/src/saveload/industry_sl.cpp +++ b/src/saveload/industry_sl.cpp @@ -176,10 +176,12 @@ static void Load_ITBL() } } -extern const ChunkHandler _industry_chunk_handlers[] = { - { 'INDY', Save_INDY, Load_INDY, Ptrs_INDY, nullptr, CH_ARRAY}, - { 'IIDS', Save_IIDS, Load_IIDS, nullptr, nullptr, CH_ARRAY}, - { 'TIDS', Save_TIDS, Load_TIDS, nullptr, nullptr, CH_ARRAY}, - { 'IBLD', LoadSave_IBLD, LoadSave_IBLD, nullptr, nullptr, CH_RIFF}, - { 'ITBL', Save_ITBL, Load_ITBL, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler industry_chunk_handlers[] = { + { 'INDY', Save_INDY, Load_INDY, Ptrs_INDY, nullptr, CH_ARRAY }, + { 'IIDS', Save_IIDS, Load_IIDS, nullptr, nullptr, CH_ARRAY }, + { 'TIDS', Save_TIDS, Load_TIDS, nullptr, nullptr, CH_ARRAY }, + { 'IBLD', LoadSave_IBLD, LoadSave_IBLD, nullptr, nullptr, CH_RIFF }, + { 'ITBL', Save_ITBL, Load_ITBL, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _industry_chunk_handlers(industry_chunk_handlers); diff --git a/src/saveload/labelmaps_sl.cpp b/src/saveload/labelmaps_sl.cpp index 01cb2915ed..a667c0171f 100644 --- a/src/saveload/labelmaps_sl.cpp +++ b/src/saveload/labelmaps_sl.cpp @@ -130,7 +130,9 @@ static void Load_RAIL() } } -extern const ChunkHandler _labelmaps_chunk_handlers[] = { - { 'RAIL', Save_RAIL, Load_RAIL, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler labelmaps_chunk_handlers[] = { + { 'RAIL', Save_RAIL, Load_RAIL, nullptr, nullptr, CH_ARRAY }, }; +extern const ChunkHandlerTable _labelmaps_chunk_handlers(labelmaps_chunk_handlers); + diff --git a/src/saveload/linkgraph_sl.cpp b/src/saveload/linkgraph_sl.cpp index 0e8711b821..18e459bb92 100644 --- a/src/saveload/linkgraph_sl.cpp +++ b/src/saveload/linkgraph_sl.cpp @@ -328,8 +328,10 @@ static void Ptrs_LGRS() SlObject(&LinkGraphSchedule::instance, GetLinkGraphScheduleDesc()); } -extern const ChunkHandler _linkgraph_chunk_handlers[] = { +static const ChunkHandler linkgraph_chunk_handlers[] = { { 'LGRP', Save_LGRP, Load_LGRP, nullptr, nullptr, CH_ARRAY }, { 'LGRJ', Save_LGRJ, Load_LGRJ, nullptr, nullptr, CH_ARRAY }, - { 'LGRS', Save_LGRS, Load_LGRS, Ptrs_LGRS, nullptr, CH_LAST } + { 'LGRS', Save_LGRS, Load_LGRS, Ptrs_LGRS, nullptr, CH_RIFF } }; + +extern const ChunkHandlerTable _linkgraph_chunk_handlers(linkgraph_chunk_handlers); diff --git a/src/saveload/map_sl.cpp b/src/saveload/map_sl.cpp index e90cde0d88..bf6d33ad99 100644 --- a/src/saveload/map_sl.cpp +++ b/src/saveload/map_sl.cpp @@ -296,17 +296,19 @@ static void Save_WMAP() #endif } -extern const ChunkHandler _map_chunk_handlers[] = { +static const ChunkHandler map_chunk_handlers[] = { { 'MAPS', Save_MAPS, Load_MAPS, nullptr, Check_MAPS, CH_RIFF }, - { 'MAPT', nullptr, Load_MAPT, nullptr, nullptr, CH_RIFF }, - { 'MAPH', nullptr, Load_MAPH, nullptr, Check_MAPH, CH_RIFF }, - { 'MAPO', nullptr, Load_MAP1, nullptr, nullptr, CH_RIFF }, - { 'MAP2', nullptr, Load_MAP2, nullptr, nullptr, CH_RIFF }, - { 'M3LO', nullptr, Load_MAP3, nullptr, nullptr, CH_RIFF }, - { 'M3HI', nullptr, Load_MAP4, nullptr, nullptr, CH_RIFF }, - { 'MAP5', nullptr, Load_MAP5, nullptr, nullptr, CH_RIFF }, - { 'MAPE', nullptr, Load_MAP6, nullptr, nullptr, CH_RIFF }, - { 'MAP7', nullptr, Load_MAP7, nullptr, nullptr, CH_RIFF }, - { 'MAP8', nullptr, Load_MAP8, nullptr, nullptr, CH_RIFF }, - { 'WMAP', Save_WMAP, Load_WMAP, nullptr, nullptr, CH_RIFF | CH_LAST }, + { 'MAPT', nullptr, Load_MAPT, nullptr, nullptr, CH_RIFF }, + { 'MAPH', nullptr, Load_MAPH, nullptr, Check_MAPH, CH_RIFF }, + { 'MAPO', nullptr, Load_MAP1, nullptr, nullptr, CH_RIFF }, + { 'MAP2', nullptr, Load_MAP2, nullptr, nullptr, CH_RIFF }, + { 'M3LO', nullptr, Load_MAP3, nullptr, nullptr, CH_RIFF }, + { 'M3HI', nullptr, Load_MAP4, nullptr, nullptr, CH_RIFF }, + { 'MAP5', nullptr, Load_MAP5, nullptr, nullptr, CH_RIFF }, + { 'MAPE', nullptr, Load_MAP6, nullptr, nullptr, CH_RIFF }, + { 'MAP7', nullptr, Load_MAP7, nullptr, nullptr, CH_RIFF }, + { 'MAP8', nullptr, Load_MAP8, nullptr, nullptr, CH_RIFF }, + { 'WMAP', Save_WMAP, Load_WMAP, nullptr, nullptr, CH_RIFF }, }; + +extern const ChunkHandlerTable _map_chunk_handlers(map_chunk_handlers); diff --git a/src/saveload/misc_sl.cpp b/src/saveload/misc_sl.cpp index d120fa95e9..ddd9db4cd5 100644 --- a/src/saveload/misc_sl.cpp +++ b/src/saveload/misc_sl.cpp @@ -160,7 +160,9 @@ static void SaveLoad_VIEW() SlGlobList(_view_desc); } -extern const ChunkHandler _misc_chunk_handlers[] = { - { 'DATE', SaveLoad_DATE, SaveLoad_DATE, nullptr, Check_DATE, CH_RIFF}, - { 'VIEW', SaveLoad_VIEW, SaveLoad_VIEW, nullptr, nullptr, CH_RIFF | CH_LAST}, +static const ChunkHandler misc_chunk_handlers[] = { + { 'DATE', SaveLoad_DATE, SaveLoad_DATE, nullptr, Check_DATE, CH_RIFF }, + { 'VIEW', SaveLoad_VIEW, SaveLoad_VIEW, nullptr, nullptr, CH_RIFF }, }; + +extern const ChunkHandlerTable _misc_chunk_handlers(misc_chunk_handlers); diff --git a/src/saveload/newgrf_sl.cpp b/src/saveload/newgrf_sl.cpp index 709496691b..96a843c7e4 100644 --- a/src/saveload/newgrf_sl.cpp +++ b/src/saveload/newgrf_sl.cpp @@ -119,6 +119,8 @@ static void Check_NGRF() Load_NGRF_common(_load_check_data.grfconfig); } -extern const ChunkHandler _newgrf_chunk_handlers[] = { - { 'NGRF', Save_NGRF, Load_NGRF, nullptr, Check_NGRF, CH_ARRAY | CH_LAST } +static const ChunkHandler newgrf_chunk_handlers[] = { + { 'NGRF', Save_NGRF, Load_NGRF, nullptr, Check_NGRF, CH_ARRAY } }; + +extern const ChunkHandlerTable _newgrf_chunk_handlers(newgrf_chunk_handlers); diff --git a/src/saveload/object_sl.cpp b/src/saveload/object_sl.cpp index 40ca8cd110..dcf5fd65cb 100644 --- a/src/saveload/object_sl.cpp +++ b/src/saveload/object_sl.cpp @@ -66,7 +66,9 @@ static void Load_OBID() Load_NewGRFMapping(_object_mngr); } -extern const ChunkHandler _object_chunk_handlers[] = { +static const ChunkHandler object_chunk_handlers[] = { { 'OBID', Save_OBID, Load_OBID, nullptr, nullptr, CH_ARRAY }, - { 'OBJS', Save_OBJS, Load_OBJS, Ptrs_OBJS, nullptr, CH_ARRAY | CH_LAST}, + { 'OBJS', Save_OBJS, Load_OBJS, Ptrs_OBJS, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _object_chunk_handlers(object_chunk_handlers); diff --git a/src/saveload/order_sl.cpp b/src/saveload/order_sl.cpp index e6f6da8dcf..e582a72e93 100644 --- a/src/saveload/order_sl.cpp +++ b/src/saveload/order_sl.cpp @@ -371,9 +371,11 @@ static void Ptrs_BKOR() } } -extern const ChunkHandler _order_chunk_handlers[] = { - { 'BKOR', Save_BKOR, Load_BKOR, Ptrs_BKOR, nullptr, CH_ARRAY}, - { 'ORDR', Save_ORDR, Load_ORDR, Ptrs_ORDR, nullptr, CH_ARRAY}, - { 'ORDL', Save_ORDL, Load_ORDL, Ptrs_ORDL, nullptr, CH_ARRAY}, - { 'ORDX', Save_ORDX, Load_ORDX, nullptr, nullptr, CH_SPARSE_ARRAY | CH_LAST}, +static const ChunkHandler order_chunk_handlers[] = { + { 'BKOR', Save_BKOR, Load_BKOR, Ptrs_BKOR, nullptr, CH_ARRAY }, + { 'ORDR', Save_ORDR, Load_ORDR, Ptrs_ORDR, nullptr, CH_ARRAY }, + { 'ORDL', Save_ORDL, Load_ORDL, Ptrs_ORDL, nullptr, CH_ARRAY }, + { 'ORDX', Save_ORDX, Load_ORDX, nullptr, nullptr, CH_SPARSE_ARRAY }, }; + +extern const ChunkHandlerTable _order_chunk_handlers(order_chunk_handlers); diff --git a/src/saveload/plans_sl.cpp b/src/saveload/plans_sl.cpp index 613d4b32a5..6af13c120f 100644 --- a/src/saveload/plans_sl.cpp +++ b/src/saveload/plans_sl.cpp @@ -89,7 +89,9 @@ static void Load_PLANLINE() } /** Chunk handlers related to plans. */ -extern const ChunkHandler _plan_chunk_handlers[] = { - { 'PLAN', Save_PLAN, Load_PLAN, nullptr, nullptr, CH_ARRAY}, - { 'PLLN', nullptr, Load_PLANLINE, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler plan_chunk_handlers[] = { + { 'PLAN', Save_PLAN, Load_PLAN, nullptr, nullptr, CH_ARRAY }, + { 'PLLN', nullptr, Load_PLANLINE, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _plan_chunk_handlers(plan_chunk_handlers); diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 0432fc16df..035eaf1dfd 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -246,106 +246,112 @@ MemoryDumper *MemoryDumper::GetCurrent() return _sl.dumper; } -/* these define the chunks */ -extern const ChunkHandler _version_ext_chunk_handlers[]; -extern const ChunkHandler _gamelog_chunk_handlers[]; -extern const ChunkHandler _map_chunk_handlers[]; -extern const ChunkHandler _misc_chunk_handlers[]; -extern const ChunkHandler _name_chunk_handlers[]; -extern const ChunkHandler _cheat_chunk_handlers[] ; -extern const ChunkHandler _setting_chunk_handlers[]; -extern const ChunkHandler _company_chunk_handlers[]; -extern const ChunkHandler _engine_chunk_handlers[]; -extern const ChunkHandler _veh_chunk_handlers[]; -extern const ChunkHandler _waypoint_chunk_handlers[]; -extern const ChunkHandler _depot_chunk_handlers[]; -extern const ChunkHandler _order_chunk_handlers[]; -extern const ChunkHandler _town_chunk_handlers[]; -extern const ChunkHandler _sign_chunk_handlers[]; -extern const ChunkHandler _station_chunk_handlers[]; -extern const ChunkHandler _industry_chunk_handlers[]; -extern const ChunkHandler _economy_chunk_handlers[]; -extern const ChunkHandler _subsidy_chunk_handlers[]; -extern const ChunkHandler _cargomonitor_chunk_handlers[]; -extern const ChunkHandler _goal_chunk_handlers[]; -extern const ChunkHandler _story_page_chunk_handlers[]; -extern const ChunkHandler _ai_chunk_handlers[]; -extern const ChunkHandler _game_chunk_handlers[]; -extern const ChunkHandler _animated_tile_chunk_handlers[]; -extern const ChunkHandler _newgrf_chunk_handlers[]; -extern const ChunkHandler _group_chunk_handlers[]; -extern const ChunkHandler _cargopacket_chunk_handlers[]; -extern const ChunkHandler _autoreplace_chunk_handlers[]; -extern const ChunkHandler _labelmaps_chunk_handlers[]; -extern const ChunkHandler _linkgraph_chunk_handlers[]; -extern const ChunkHandler _airport_chunk_handlers[]; -extern const ChunkHandler _object_chunk_handlers[]; -extern const ChunkHandler _persistent_storage_chunk_handlers[]; -extern const ChunkHandler _trace_restrict_chunk_handlers[]; -extern const ChunkHandler _signal_chunk_handlers[]; -extern const ChunkHandler _plan_chunk_handlers[]; -extern const ChunkHandler _template_replacement_chunk_handlers[]; -extern const ChunkHandler _template_vehicle_chunk_handlers[]; -extern const ChunkHandler _bridge_signal_chunk_handlers[]; -extern const ChunkHandler _tunnel_chunk_handlers[]; -extern const ChunkHandler _train_speed_adaptation_chunk_handlers[]; -extern const ChunkHandler _debug_chunk_handlers[]; - -/** Array of all chunks in a savegame, \c nullptr terminated. */ -static const ChunkHandler * const _chunk_handlers[] = { - _version_ext_chunk_handlers, // this should be first, such that it is saved first, as when loading it affects the loading of subsequent chunks - _gamelog_chunk_handlers, - _map_chunk_handlers, - _misc_chunk_handlers, - _name_chunk_handlers, - _cheat_chunk_handlers, - _setting_chunk_handlers, - _veh_chunk_handlers, - _waypoint_chunk_handlers, - _depot_chunk_handlers, - _order_chunk_handlers, - _industry_chunk_handlers, - _economy_chunk_handlers, - _subsidy_chunk_handlers, - _cargomonitor_chunk_handlers, - _goal_chunk_handlers, - _story_page_chunk_handlers, - _engine_chunk_handlers, - _town_chunk_handlers, - _sign_chunk_handlers, - _station_chunk_handlers, - _company_chunk_handlers, - _ai_chunk_handlers, - _game_chunk_handlers, - _animated_tile_chunk_handlers, - _newgrf_chunk_handlers, - _group_chunk_handlers, - _cargopacket_chunk_handlers, - _autoreplace_chunk_handlers, - _labelmaps_chunk_handlers, - _linkgraph_chunk_handlers, - _airport_chunk_handlers, - _object_chunk_handlers, - _persistent_storage_chunk_handlers, - _trace_restrict_chunk_handlers, - _signal_chunk_handlers, - _plan_chunk_handlers, - _template_replacement_chunk_handlers, - _template_vehicle_chunk_handlers, - _bridge_signal_chunk_handlers, - _tunnel_chunk_handlers, - _train_speed_adaptation_chunk_handlers, - _debug_chunk_handlers, - nullptr, -}; +static const std::vector &ChunkHandlers() +{ + /* These define the chunks */ + extern const ChunkHandlerTable _version_ext_chunk_handlers; + extern const ChunkHandlerTable _gamelog_chunk_handlers; + extern const ChunkHandlerTable _map_chunk_handlers; + extern const ChunkHandlerTable _misc_chunk_handlers; + extern const ChunkHandlerTable _name_chunk_handlers; + extern const ChunkHandlerTable _cheat_chunk_handlers; + extern const ChunkHandlerTable _setting_chunk_handlers; + extern const ChunkHandlerTable _company_chunk_handlers; + extern const ChunkHandlerTable _engine_chunk_handlers; + extern const ChunkHandlerTable _veh_chunk_handlers; + extern const ChunkHandlerTable _waypoint_chunk_handlers; + extern const ChunkHandlerTable _depot_chunk_handlers; + extern const ChunkHandlerTable _order_chunk_handlers; + extern const ChunkHandlerTable _town_chunk_handlers; + extern const ChunkHandlerTable _sign_chunk_handlers; + extern const ChunkHandlerTable _station_chunk_handlers; + extern const ChunkHandlerTable _industry_chunk_handlers; + extern const ChunkHandlerTable _economy_chunk_handlers; + extern const ChunkHandlerTable _subsidy_chunk_handlers; + extern const ChunkHandlerTable _cargomonitor_chunk_handlers; + extern const ChunkHandlerTable _goal_chunk_handlers; + extern const ChunkHandlerTable _story_page_chunk_handlers; + extern const ChunkHandlerTable _ai_chunk_handlers; + extern const ChunkHandlerTable _game_chunk_handlers; + extern const ChunkHandlerTable _animated_tile_chunk_handlers; + extern const ChunkHandlerTable _newgrf_chunk_handlers; + extern const ChunkHandlerTable _group_chunk_handlers; + extern const ChunkHandlerTable _cargopacket_chunk_handlers; + extern const ChunkHandlerTable _autoreplace_chunk_handlers; + extern const ChunkHandlerTable _labelmaps_chunk_handlers; + extern const ChunkHandlerTable _linkgraph_chunk_handlers; + extern const ChunkHandlerTable _airport_chunk_handlers; + extern const ChunkHandlerTable _object_chunk_handlers; + extern const ChunkHandlerTable _persistent_storage_chunk_handlers; + extern const ChunkHandlerTable _trace_restrict_chunk_handlers; + extern const ChunkHandlerTable _signal_chunk_handlers; + extern const ChunkHandlerTable _plan_chunk_handlers; + extern const ChunkHandlerTable _template_replacement_chunk_handlers; + extern const ChunkHandlerTable _template_vehicle_chunk_handlers; + extern const ChunkHandlerTable _bridge_signal_chunk_handlers; + extern const ChunkHandlerTable _tunnel_chunk_handlers; + extern const ChunkHandlerTable _train_speed_adaptation_chunk_handlers; + extern const ChunkHandlerTable _debug_chunk_handlers; + + /** List of all chunks in a savegame. */ + static const ChunkHandlerTable _chunk_handler_tables[] = { + _version_ext_chunk_handlers, + _gamelog_chunk_handlers, + _map_chunk_handlers, + _misc_chunk_handlers, + _name_chunk_handlers, + _cheat_chunk_handlers, + _setting_chunk_handlers, + _veh_chunk_handlers, + _waypoint_chunk_handlers, + _depot_chunk_handlers, + _order_chunk_handlers, + _industry_chunk_handlers, + _economy_chunk_handlers, + _subsidy_chunk_handlers, + _cargomonitor_chunk_handlers, + _goal_chunk_handlers, + _story_page_chunk_handlers, + _engine_chunk_handlers, + _town_chunk_handlers, + _sign_chunk_handlers, + _station_chunk_handlers, + _company_chunk_handlers, + _ai_chunk_handlers, + _game_chunk_handlers, + _animated_tile_chunk_handlers, + _newgrf_chunk_handlers, + _group_chunk_handlers, + _cargopacket_chunk_handlers, + _autoreplace_chunk_handlers, + _labelmaps_chunk_handlers, + _linkgraph_chunk_handlers, + _airport_chunk_handlers, + _object_chunk_handlers, + _persistent_storage_chunk_handlers, + _trace_restrict_chunk_handlers, + _signal_chunk_handlers, + _plan_chunk_handlers, + _template_replacement_chunk_handlers, + _template_vehicle_chunk_handlers, + _bridge_signal_chunk_handlers, + _tunnel_chunk_handlers, + _train_speed_adaptation_chunk_handlers, + _debug_chunk_handlers, + }; + + static std::vector _chunk_handlers; + + if (_chunk_handlers.empty()) { + for (auto &chunk_handler_table : _chunk_handler_tables) { + for (auto &chunk_handler : chunk_handler_table) { + _chunk_handlers.push_back(chunk_handler); + } + } + } -/** - * Iterate over all chunk handlers. - * @param ch the chunk handler iterator - */ -#define FOR_ALL_CHUNK_HANDLERS(ch) \ - for (const ChunkHandler * const *chsc = _chunk_handlers; *chsc != nullptr; chsc++) \ - for (const ChunkHandler *ch = *chsc; ch != nullptr; ch = (ch->flags & CH_LAST) ? nullptr : ch + 1) + return _chunk_handlers; +} /** Null all pointers (convert index -> nullptr) */ static void SlNullPointers() @@ -358,10 +364,10 @@ static void SlNullPointers() _sl_version = SAVEGAME_VERSION; SlXvSetCurrentState(); - FOR_ALL_CHUNK_HANDLERS(ch) { - if (ch->ptrs_proc != nullptr) { - DEBUG(sl, 3, "Nulling pointers for %c%c%c%c", ch->id >> 24, ch->id >> 16, ch->id >> 8, ch->id); - ch->ptrs_proc(); + for (auto &ch : ChunkHandlers()) { + if (ch.ptrs_proc != nullptr) { + DEBUG(sl, 3, "Nulling pointers for %c%c%c%c", ch.id >> 24, ch.id >> 16, ch.id >> 8, ch.id); + ch.ptrs_proc(); } } @@ -1682,14 +1688,12 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad &sld) return 0; } -#ifdef OTTD_ASSERT - /** * Check whether the variable size of the variable in the saveload configuration * matches with the actual variable size. * @param sld The saveload configuration to test. */ -static bool IsVariableSizeRight(const SaveLoad &sld) +[[maybe_unused]] static bool IsVariableSizeRight(const SaveLoad &sld) { switch (sld.cmd) { case SL_VAR: @@ -1730,15 +1734,11 @@ static bool IsVariableSizeRight(const SaveLoad &sld) } } -#endif /* OTTD_ASSERT */ - void SlFilterObject(const SaveLoadTable &slt, std::vector &save); static void SlFilterObjectMember(const SaveLoad &sld, std::vector &save) { -#ifdef OTTD_ASSERT assert(IsVariableSizeRight(sld)); -#endif switch (sld.cmd) { case SL_VAR: @@ -1817,9 +1817,7 @@ std::vector SlFilterObject(const SaveLoadTable &slt) template bool SlObjectMemberGeneric(void *ptr, const SaveLoad &sld) { -#ifdef OTTD_ASSERT if (check_version) assert(IsVariableSizeRight(sld)); -#endif VarType conv = GB(sld.conv, 0, 8); switch (sld.cmd) { @@ -2043,7 +2041,7 @@ inline void SlRIFFSpringPPCheck(size_t len) * Load a chunk of data (eg vehicles, stations, etc.) * @param ch The chunkhandler that will be used for the operation */ -static void SlLoadChunk(const ChunkHandler *ch) +static void SlLoadChunk(const ChunkHandler &ch) { byte m = SlReadByte(); size_t len; @@ -2064,11 +2062,11 @@ static void SlLoadChunk(const ChunkHandler *ch) switch (m) { case CH_ARRAY: _sl.array_index = 0; - ch->load_proc(); + ch.load_proc(); if (_next_offs != 0) SlErrorCorrupt("Invalid array length"); break; case CH_SPARSE_ARRAY: - ch->load_proc(); + ch.load_proc(); if (_next_offs != 0) SlErrorCorrupt("Invalid array length"); break; default: @@ -2089,7 +2087,7 @@ static void SlLoadChunk(const ChunkHandler *ch) _sl.obj_len = len; endoffs = _sl.reader->GetSize() + len; - ch->load_proc(); + ch.load_proc(); if (_sl.reader->GetSize() != endoffs) { DEBUG(sl, 1, "Invalid chunk size: " PRINTF_SIZE " != " PRINTF_SIZE ", (" PRINTF_SIZE ")", _sl.reader->GetSize(), endoffs, len); SlErrorCorrupt("Invalid chunk size"); @@ -2192,21 +2190,21 @@ static void SlLoadCheckChunk(const ChunkHandler *ch) * prefixed by an ID identifying it, followed by data, and terminator where appropriate * @param ch The chunkhandler that will be used for the operation */ -static void SlSaveChunk(const ChunkHandler *ch) +static void SlSaveChunk(const ChunkHandler &ch) { - ChunkSaveLoadProc *proc = ch->save_proc; + ChunkSaveLoadProc *proc = ch.save_proc; /* Don't save any chunk information if there is no save handler. */ if (proc == nullptr) return; - SlWriteUint32(ch->id); - DEBUG(sl, 2, "Saving chunk %c%c%c%c", ch->id >> 24, ch->id >> 16, ch->id >> 8, ch->id); + SlWriteUint32(ch.id); + DEBUG(sl, 2, "Saving chunk %c%c%c%c", ch.id >> 24, ch.id >> 16, ch.id >> 8, ch.id); size_t written = 0; if (_debug_sl_level >= 3) written = SlGetBytesWritten(); - _sl.block_mode = ch->flags & CH_TYPE_MASK; - switch (ch->flags & CH_TYPE_MASK) { + _sl.block_mode = ch.type; + switch (ch.type) { case CH_RIFF: _sl.need_length = NL_WANTLENGTH; proc(); @@ -2225,13 +2223,13 @@ static void SlSaveChunk(const ChunkHandler *ch) default: NOT_REACHED(); } - DEBUG(sl, 3, "Saved chunk %c%c%c%c (" PRINTF_SIZE " bytes)", ch->id >> 24, ch->id >> 16, ch->id >> 8, ch->id, SlGetBytesWritten() - written); + DEBUG(sl, 3, "Saved chunk %c%c%c%c (" PRINTF_SIZE " bytes)", ch.id >> 24, ch.id >> 16, ch.id >> 8, ch.id, SlGetBytesWritten() - written); } /** Save all chunks */ static void SlSaveChunks() { - FOR_ALL_CHUNK_HANDLERS(ch) { + for (auto &ch : ChunkHandlers()) { SlSaveChunk(ch); } @@ -2247,7 +2245,7 @@ static void SlSaveChunks() */ static const ChunkHandler *SlFindChunkHandler(uint32 id) { - FOR_ALL_CHUNK_HANDLERS(ch) if (ch->id == id) return ch; + for (auto &ch : ChunkHandlers()) if (ch.id == id) return &ch; return nullptr; } @@ -2267,7 +2265,7 @@ static void SlLoadChunks() if (ch == nullptr) { SlErrorCorrupt("Unknown chunk type"); } else { - SlLoadChunk(ch); + SlLoadChunk(*ch); } } DEBUG(sl, 3, "Loaded chunk %c%c%c%c (" PRINTF_SIZE " bytes)", id >> 24, id >> 16, id >> 8, id, SlGetBytesRead() - read); @@ -2301,10 +2299,10 @@ static void SlFixPointers() { _sl.action = SLA_PTRS; - FOR_ALL_CHUNK_HANDLERS(ch) { - if (ch->ptrs_proc != nullptr) { - DEBUG(sl, 3, "Fixing pointers for %c%c%c%c", ch->id >> 24, ch->id >> 16, ch->id >> 8, ch->id); - ch->ptrs_proc(); + for (auto &ch : ChunkHandlers()) { + if (ch.ptrs_proc != nullptr) { + DEBUG(sl, 3, "Fixing pointers for %c%c%c%c", ch.id >> 24, ch.id >> 16, ch.id >> 8, ch.id); + ch.ptrs_proc(); } } diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 84a0826986..3c2e6cb7e7 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -18,6 +18,7 @@ #include #include #include +#include /** SaveLoad versions * Previous savegame versions, the trunk revision where they were @@ -415,6 +416,14 @@ bool IsNetworkServerSave(); typedef void ChunkSaveLoadProc(); typedef void AutolengthProc(void *arg); +/** Type of a chunk. */ +enum ChunkType { + CH_RIFF = 0, + CH_ARRAY = 1, + CH_SPARSE_ARRAY = 2, + CH_EXT_HDR = 15, ///< Extended chunk header +}; + /** Handlers and description of chunk. */ struct ChunkHandler { uint32 id; ///< Unique ID (4 letters). @@ -422,13 +431,16 @@ struct ChunkHandler { ChunkSaveLoadProc *load_proc; ///< Load procedure of the chunk. ChunkSaveLoadProc *ptrs_proc; ///< Manipulate pointers in the chunk. ChunkSaveLoadProc *load_check_proc; ///< Load procedure for game preview. - uint32 flags; ///< Flags of the chunk. @see ChunkType + ChunkType type; ///< Type of the chunk. @see ChunkType }; struct NullStruct { byte null; }; +/** A table of ChunkHandler entries. */ +using ChunkHandlerTable = span; + /** Type of reference (#SLE_REF, #SLE_CONDREF). */ enum SLRefType { REF_ORDER = 0, ///< Load/save a reference to an order. @@ -446,16 +458,6 @@ enum SLRefType { REF_TEMPLATE_VEHICLE = 12, ///< Load/save a reference to a template vehicle }; -/** Flags of a chunk. */ -enum ChunkType { - CH_RIFF = 0, - CH_ARRAY = 1, - CH_SPARSE_ARRAY = 2, - CH_TYPE_MASK = 3, - CH_EXT_HDR = 15, ///< Extended chunk header - CH_LAST = 8, ///< Last chunk in this array. -}; - /** Flags for chunk extended headers */ enum SaveLoadChunkExtHeaderFlags { SLCEHF_BIG_RIFF = 1 << 0, ///< This block uses a 60-bit RIFF chunk size @@ -541,8 +543,6 @@ enum VarTypes { SLF_NO_NETWORK_SYNC = 1 << 10, ///< do not synchronize over network (but it is saved if SLF_NOT_IN_SAVE is not set) SLF_ALLOW_CONTROL = 1 << 11, ///< allow control codes in the strings SLF_ALLOW_NEWLINE = 1 << 12, ///< allow new lines in the strings - SLF_HEX = 1 << 13, ///< print numbers as hex in the config file (only useful for unsigned) - /* 2 more possible flags */ }; typedef uint32 VarType; diff --git a/src/saveload/signal_sl.cpp b/src/saveload/signal_sl.cpp index 6fb308a709..38fe75b4d5 100644 --- a/src/saveload/signal_sl.cpp +++ b/src/saveload/signal_sl.cpp @@ -307,6 +307,8 @@ static void Load_SPRG() } } -extern const ChunkHandler _signal_chunk_handlers[] = { - { 'SPRG', Save_SPRG, Load_SPRG, nullptr, nullptr, CH_RIFF | CH_LAST}, +extern const ChunkHandler signal_chunk_handlers[] = { + { 'SPRG', Save_SPRG, Load_SPRG, nullptr, nullptr, CH_RIFF }, }; + +extern const ChunkHandlerTable _signal_chunk_handlers(signal_chunk_handlers); diff --git a/src/saveload/signs_sl.cpp b/src/saveload/signs_sl.cpp index deaffac8f6..181dc6b7b7 100644 --- a/src/saveload/signs_sl.cpp +++ b/src/saveload/signs_sl.cpp @@ -62,6 +62,8 @@ static void Load_SIGN() } /** Chunk handlers related to signs. */ -extern const ChunkHandler _sign_chunk_handlers[] = { - { 'SIGN', Save_SIGN, Load_SIGN, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler sign_chunk_handlers[] = { + { 'SIGN', Save_SIGN, Load_SIGN, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _sign_chunk_handlers(sign_chunk_handlers); diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp index 68e042978b..6e0f72cdf7 100644 --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -743,9 +743,11 @@ static void Load_DOCK() SlSkipArray(); } -extern const ChunkHandler _station_chunk_handlers[] = { +static const ChunkHandler station_chunk_handlers[] = { { 'STNS', nullptr, Load_STNS, Ptrs_STNS, nullptr, CH_ARRAY }, { 'STNN', Save_STNN, Load_STNN, Ptrs_STNN, nullptr, CH_ARRAY }, - { 'ROAD', Save_ROADSTOP, Load_ROADSTOP, Ptrs_ROADSTOP, nullptr, CH_ARRAY}, - { 'DOCK', nullptr, Load_DOCK, nullptr, nullptr, CH_ARRAY | CH_LAST}, + { 'ROAD', Save_ROADSTOP, Load_ROADSTOP, Ptrs_ROADSTOP, nullptr, CH_ARRAY }, + { 'DOCK', nullptr, Load_DOCK, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _station_chunk_handlers(station_chunk_handlers); diff --git a/src/saveload/storage_sl.cpp b/src/saveload/storage_sl.cpp index a01904e3a1..50f858f116 100644 --- a/src/saveload/storage_sl.cpp +++ b/src/saveload/storage_sl.cpp @@ -44,6 +44,8 @@ static void Save_PSAC() } /** Chunk handler for persistent storages. */ -extern const ChunkHandler _persistent_storage_chunk_handlers[] = { - { 'PSAC', Save_PSAC, Load_PSAC, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler persistent_storage_chunk_handlers[] = { + { 'PSAC', Save_PSAC, Load_PSAC, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _persistent_storage_chunk_handlers(persistent_storage_chunk_handlers); diff --git a/src/saveload/story_sl.cpp b/src/saveload/story_sl.cpp index 06083fb103..df5b1406f0 100644 --- a/src/saveload/story_sl.cpp +++ b/src/saveload/story_sl.cpp @@ -95,7 +95,9 @@ static void Load_STORY_PAGE() _story_page_next_sort_value = max_sort_value + 1; } -extern const ChunkHandler _story_page_chunk_handlers[] = { - { 'STPE', Save_STORY_PAGE_ELEMENT, Load_STORY_PAGE_ELEMENT, nullptr, nullptr, CH_ARRAY}, - { 'STPA', Save_STORY_PAGE, Load_STORY_PAGE, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler story_page_chunk_handlers[] = { + { 'STPE', Save_STORY_PAGE_ELEMENT, Load_STORY_PAGE_ELEMENT, nullptr, nullptr, CH_ARRAY }, + { 'STPA', Save_STORY_PAGE, Load_STORY_PAGE, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _story_page_chunk_handlers(story_page_chunk_handlers); diff --git a/src/saveload/strings_sl.cpp b/src/saveload/strings_sl.cpp index dad7eb1abd..52f70b8d58 100644 --- a/src/saveload/strings_sl.cpp +++ b/src/saveload/strings_sl.cpp @@ -131,6 +131,8 @@ static void Load_NAME() } /** Chunk handlers related to strings. */ -extern const ChunkHandler _name_chunk_handlers[] = { - { 'NAME', nullptr, Load_NAME, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler name_chunk_handlers[] = { + { 'NAME', nullptr, Load_NAME, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _name_chunk_handlers(name_chunk_handlers); diff --git a/src/saveload/subsidy_sl.cpp b/src/saveload/subsidy_sl.cpp index 13b6bcd287..9ed65a04ec 100644 --- a/src/saveload/subsidy_sl.cpp +++ b/src/saveload/subsidy_sl.cpp @@ -44,6 +44,8 @@ static void Load_SUBS() } } -extern const ChunkHandler _subsidy_chunk_handlers[] = { - { 'SUBS', Save_SUBS, Load_SUBS, nullptr, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler subsidy_chunk_handlers[] = { + { 'SUBS', Save_SUBS, Load_SUBS, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _subsidy_chunk_handlers(subsidy_chunk_handlers); diff --git a/src/saveload/tbtr_template_replacement_sl.cpp b/src/saveload/tbtr_template_replacement_sl.cpp index e33e05e242..d0f866aa23 100644 --- a/src/saveload/tbtr_template_replacement_sl.cpp +++ b/src/saveload/tbtr_template_replacement_sl.cpp @@ -28,6 +28,8 @@ static void Load_TMPL_RPLS() ReindexTemplateReplacements(); } -extern const ChunkHandler _template_replacement_chunk_handlers[] = { - {'TRPL', Save_TMPL_RPLS, Load_TMPL_RPLS, nullptr, nullptr, CH_ARRAY | CH_LAST}, +extern const ChunkHandler template_replacement_chunk_handlers[] = { + { 'TRPL', Save_TMPL_RPLS, Load_TMPL_RPLS, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _template_replacement_chunk_handlers(template_replacement_chunk_handlers); diff --git a/src/saveload/tbtr_template_veh_sl.cpp b/src/saveload/tbtr_template_veh_sl.cpp index cde76c8b97..eef7d28852 100644 --- a/src/saveload/tbtr_template_veh_sl.cpp +++ b/src/saveload/tbtr_template_veh_sl.cpp @@ -151,6 +151,8 @@ void AfterLoadTemplateVehiclesUpdateProperties() RestoreRandomSeeds(saved_seeds); } -extern const ChunkHandler _template_vehicle_chunk_handlers[] = { - {'TMPL', Save_TMPLS, Load_TMPLS, Ptrs_TMPLS, nullptr, CH_ARRAY | CH_LAST}, +extern const ChunkHandler template_vehicle_chunk_handlers[] = { + { 'TMPL', Save_TMPLS, Load_TMPLS, Ptrs_TMPLS, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _template_vehicle_chunk_handlers(template_vehicle_chunk_handlers); diff --git a/src/saveload/town_sl.cpp b/src/saveload/town_sl.cpp index ad9258f67c..da62e48d2d 100644 --- a/src/saveload/town_sl.cpp +++ b/src/saveload/town_sl.cpp @@ -359,7 +359,9 @@ static void Ptrs_TOWN() } /** Chunk handler for towns. */ -extern const ChunkHandler _town_chunk_handlers[] = { +static const ChunkHandler town_chunk_handlers[] = { { 'HIDS', Save_HIDS, Load_HIDS, nullptr, nullptr, CH_ARRAY }, - { 'CITY', Save_TOWN, Load_TOWN, Ptrs_TOWN, nullptr, CH_ARRAY | CH_LAST}, + { 'CITY', Save_TOWN, Load_TOWN, Ptrs_TOWN, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _town_chunk_handlers(town_chunk_handlers); diff --git a/src/saveload/tracerestrict_sl.cpp b/src/saveload/tracerestrict_sl.cpp index 6fa8af19a1..c09ed95e69 100644 --- a/src/saveload/tracerestrict_sl.cpp +++ b/src/saveload/tracerestrict_sl.cpp @@ -214,9 +214,11 @@ void AfterLoadTraceRestrict() } } -extern const ChunkHandler _trace_restrict_chunk_handlers[] = { - { 'TRRM', Save_TRRM, Load_TRRM, nullptr, nullptr, CH_SPARSE_ARRAY}, // Trace Restrict Mapping chunk - { 'TRRP', Save_TRRP, Load_TRRP, nullptr, nullptr, CH_ARRAY}, // Trace Restrict Mapping Program Pool chunk - { 'TRRS', Save_TRRS, Load_TRRS, nullptr, nullptr, CH_ARRAY}, // Trace Restrict Slot Pool chunk - { 'TRRC', Save_TRRC, Load_TRRC, nullptr, nullptr, CH_ARRAY | CH_LAST}, // Trace Restrict Counter Pool chunk +extern const ChunkHandler trace_restrict_chunk_handlers[] = { + { 'TRRM', Save_TRRM, Load_TRRM, nullptr, nullptr, CH_SPARSE_ARRAY }, // Trace Restrict Mapping chunk + { 'TRRP', Save_TRRP, Load_TRRP, nullptr, nullptr, CH_ARRAY }, // Trace Restrict Mapping Program Pool chunk + { 'TRRS', Save_TRRS, Load_TRRS, nullptr, nullptr, CH_ARRAY }, // Trace Restrict Slot Pool chunk + { 'TRRC', Save_TRRC, Load_TRRC, nullptr, nullptr, CH_ARRAY }, // Trace Restrict Counter Pool chunk }; + +extern const ChunkHandlerTable _trace_restrict_chunk_handlers(trace_restrict_chunk_handlers); diff --git a/src/saveload/train_speed_adaptation.cpp b/src/saveload/train_speed_adaptation.cpp index 7d8e5ac8c9..ce4385b2e4 100644 --- a/src/saveload/train_speed_adaptation.cpp +++ b/src/saveload/train_speed_adaptation.cpp @@ -45,6 +45,8 @@ static void Save_TSAS() } } -extern const ChunkHandler _train_speed_adaptation_chunk_handlers[] = { - { 'TSAS', Save_TSAS, Load_TSAS, nullptr, nullptr, CH_SPARSE_ARRAY | CH_LAST}, +extern const ChunkHandler train_speed_adaptation_chunk_handlers[] = { + { 'TSAS', Save_TSAS, Load_TSAS, nullptr, nullptr, CH_SPARSE_ARRAY }, }; + +extern const ChunkHandlerTable _train_speed_adaptation_chunk_handlers(train_speed_adaptation_chunk_handlers); diff --git a/src/saveload/tunnel_sl.cpp b/src/saveload/tunnel_sl.cpp index f8ad309662..281fabc9f1 100644 --- a/src/saveload/tunnel_sl.cpp +++ b/src/saveload/tunnel_sl.cpp @@ -42,6 +42,8 @@ static void Load_TUNN() } -extern const ChunkHandler _tunnel_chunk_handlers[] = { - { 'TUNN', Save_TUNN, Load_TUNN, nullptr, nullptr, CH_ARRAY | CH_LAST}, +extern const ChunkHandler tunnel_chunk_handlers[] = { + { 'TUNN', Save_TUNN, Load_TUNN, nullptr, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _tunnel_chunk_handlers(tunnel_chunk_handlers); diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index cc5076d813..fee44b8962 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -1458,10 +1458,12 @@ void Load_VLKA() } } -extern const ChunkHandler _veh_chunk_handlers[] = { - { 'VEHS', Save_VEHS, Load_VEHS, Ptrs_VEHS, nullptr, CH_SPARSE_ARRAY}, - { 'VEOX', Save_VEOX, Load_VEOX, nullptr, nullptr, CH_SPARSE_ARRAY}, - { 'VESR', Save_VESR, Load_VESR, nullptr, nullptr, CH_SPARSE_ARRAY}, - { 'VENC', Save_VENC, Load_VENC, nullptr, nullptr, CH_RIFF}, - { 'VLKA', Save_VLKA, Load_VLKA, nullptr, nullptr, CH_SPARSE_ARRAY | CH_LAST}, +static const ChunkHandler veh_chunk_handlers[] = { + { 'VEHS', Save_VEHS, Load_VEHS, Ptrs_VEHS, nullptr, CH_SPARSE_ARRAY }, + { 'VEOX', Save_VEOX, Load_VEOX, nullptr, nullptr, CH_SPARSE_ARRAY }, + { 'VESR', Save_VESR, Load_VESR, nullptr, nullptr, CH_SPARSE_ARRAY }, + { 'VENC', Save_VENC, Load_VENC, nullptr, nullptr, CH_RIFF }, + { 'VLKA', Save_VLKA, Load_VLKA, nullptr, nullptr, CH_SPARSE_ARRAY }, }; + +extern const ChunkHandlerTable _veh_chunk_handlers(veh_chunk_handlers); diff --git a/src/saveload/waypoint_sl.cpp b/src/saveload/waypoint_sl.cpp index 027659ee06..4368da9238 100644 --- a/src/saveload/waypoint_sl.cpp +++ b/src/saveload/waypoint_sl.cpp @@ -224,6 +224,8 @@ static void Ptrs_WAYP() } } -extern const ChunkHandler _waypoint_chunk_handlers[] = { - { 'CHKP', nullptr, Load_WAYP, Ptrs_WAYP, nullptr, CH_ARRAY | CH_LAST}, +static const ChunkHandler waypoint_chunk_handlers[] = { + { 'CHKP', nullptr, Load_WAYP, Ptrs_WAYP, nullptr, CH_ARRAY }, }; + +extern const ChunkHandlerTable _waypoint_chunk_handlers(waypoint_chunk_handlers); diff --git a/src/script/squirrel.cpp b/src/script/squirrel.cpp index 0c4ed735d8..4b648cf985 100644 --- a/src/script/squirrel.cpp +++ b/src/script/squirrel.cpp @@ -668,8 +668,7 @@ SQRESULT Squirrel::LoadFile(HSQUIRRELVM vm, const char *filename, SQBool printer } unsigned short bom = 0; if (size >= 2) { - size_t sr = fread(&bom, 1, sizeof(bom), file); - (void)sr; // Inside tar, no point checking return value of fread + [[maybe_unused]] size_t sr = fread(&bom, 1, sizeof(bom), file); } SQLEXREADFUNC func; diff --git a/src/settings.cpp b/src/settings.cpp index 2c51ed3b74..d15cf9b094 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -301,8 +301,6 @@ void ListSettingDesc::FormatValue(char *buf, const char *last, const void *objec } if (IsSignedVarMemType(this->save.conv)) { buf += seprintf(buf, last, (i == 0) ? "%d" : ",%d", v); - } else if (this->save.conv & SLF_HEX) { - buf += seprintf(buf, last, (i == 0) ? "0x%X" : ",0x%X", v); } else { buf += seprintf(buf, last, (i == 0) ? "%u" : ",%u", v); } @@ -423,9 +421,9 @@ void IntSettingDesc::MakeValueValidAndWrite(const void *object, int32 val) const * Make the value valid given the limitations of this setting. * * In the case of int settings this is ensuring the value is between the minimum and - * maximum value, with a special case for 0 if SGF_0ISDISABLED is set. + * maximum value, with a special case for 0 if SF_GUI_0_IS_SPECIAL is set. * This is generally done by clamping the value so it is within the allowed value range. - * However, for SGF_MULTISTRING the default is used when the value is not valid. + * However, for SF_GUI_DROPDOWN the default is used when the value is not valid. * @param val The value to make valid. */ void IntSettingDesc::MakeValueValid(int32 &val) const @@ -444,10 +442,10 @@ void IntSettingDesc::MakeValueValid(int32 &val) const case SLE_VAR_U16: case SLE_VAR_I32: { /* Override the minimum value. No value below this->min, except special value 0 */ - if (!(this->flags & SGF_0ISDISABLED) || val != 0) { - if (this->flags & SGF_ENUM) { + if (!(this->flags & SF_GUI_0_IS_SPECIAL) || val != 0) { + if (this->flags & SF_ENUM) { if (!ValidateEnumSetting(this, val)) val = (int32)(size_t)this->def; - } else if (!(this->flags & SGF_MULTISTRING)) { + } else if (!(this->flags & SF_GUI_DROPDOWN)) { /* Clamp value-type setting to its valid range */ val = Clamp(val, this->min, this->max); } else if (val < this->min || val > (int32)this->max) { @@ -460,10 +458,10 @@ void IntSettingDesc::MakeValueValid(int32 &val) const case SLE_VAR_U32: { /* Override the minimum value. No value below this->min, except special value 0 */ uint32 uval = (uint32)val; - if (!(this->flags & SGF_0ISDISABLED) || uval != 0) { - if (this->flags & SGF_ENUM) { + if (!(this->flags & SF_GUI_0_IS_SPECIAL) || uval != 0) { + if (this->flags & SF_ENUM) { if (!ValidateEnumSetting(this, val)) uval = (uint32)(size_t)this->def; - } else if (!(this->flags & SGF_MULTISTRING)) { + } else if (!(this->flags & SF_GUI_DROPDOWN)) { /* Clamp value-type setting to its valid range */ uval = ClampU(uval, this->min, this->max); } else if (uval < (uint)this->min || uval > this->max) { @@ -558,7 +556,7 @@ static void IniLoadSettings(IniFile *ini, const SettingTable &settings_table, co if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to, sd->save.ext_feature_test)) continue; if (sd->startup != only_startup) continue; IniItem *item; - if (sd->flags & SGF_NO_NEWGAME) { + if (sd->flags & SF_NO_NEWGAME) { item = nullptr; } else { /* For settings.xx.yy load the settings from [xx] yy = ? */ @@ -639,7 +637,7 @@ static void IniSaveSettings(IniFile *ini, const SettingTable &settings_table, co * file, just continue with the next setting */ if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to, sd->save.ext_feature_test)) continue; if (sd->save.conv & SLF_NOT_IN_CONFIG) continue; - if (sd->flags & SGF_NO_NEWGAME) continue; + if (sd->flags & SF_NO_NEWGAME) continue; /* XXX - wtf is this?? (group override?) */ std::string s{ sd->name }; @@ -667,7 +665,7 @@ static void IniSaveSettings(IniFile *ini, const SettingTable &settings_table, co void IntSettingDesc::FormatValue(char *buf, const char *last, const void *object) const { uint32 i = (uint32)this->Read(object); - seprintf(buf, last, IsSignedVarMemType(this->save.conv) ? "%d" : (this->save.conv & SLF_HEX) ? "%X" : "%u", i); + seprintf(buf, last, IsSignedVarMemType(this->save.conv) ? "%d" : "%u", i); } void BoolSettingDesc::FormatValue(char *buf, const char *last, const void *object) const @@ -789,13 +787,13 @@ void IniSaveWindowSettings(IniFile *ini, const char *grpname, void *desc) */ bool SettingDesc::IsEditable(bool do_command) const { - if (!do_command && !(this->save.conv & SLF_NO_NETWORK_SYNC) && _networking && !(_network_server || _network_settings_access) && !(this->flags & SGF_PER_COMPANY)) return false; - if ((this->flags & SGF_NETWORK_ONLY) && !_networking && _game_mode != GM_MENU) return false; - if ((this->flags & SGF_NO_NETWORK) && _networking) return false; - if ((this->flags & SGF_NEWGAME_ONLY) && + if (!do_command && !(this->save.conv & SLF_NO_NETWORK_SYNC) && _networking && !(_network_server || _network_settings_access) && !(this->flags & SF_PER_COMPANY)) return false; + if ((this->flags & SF_NETWORK_ONLY) && !_networking && _game_mode != GM_MENU) return false; + if ((this->flags & SF_NO_NETWORK) && _networking) return false; + if ((this->flags & SF_NEWGAME_ONLY) && (_game_mode == GM_NORMAL || - (_game_mode == GM_EDITOR && !(this->flags & SGF_SCENEDIT_TOO)))) return false; - if ((this->flags & SGF_SCENEDIT_ONLY) && _game_mode != GM_EDITOR) return false; + (_game_mode == GM_EDITOR && !(this->flags & SF_SCENEDIT_TOO)))) return false; + if ((this->flags & SF_SCENEDIT_ONLY) && _game_mode != GM_EDITOR) return false; return true; } @@ -805,7 +803,7 @@ bool SettingDesc::IsEditable(bool do_command) const */ SettingType SettingDesc::GetType() const { - if (this->flags & SGF_PER_COMPANY) return ST_COMPANY; + if (this->flags & SF_PER_COMPANY) return ST_COMPANY; return (this->save.conv & SLF_NOT_IN_SAVE) ? ST_CLIENT : ST_GAME; } @@ -1643,7 +1641,7 @@ static int64 LinkGraphDistModeXrefChillPP(int64 val) static bool OrderTownGrowthRate(SettingOnGuiCtrlData &data) { switch (data.type) { - case SOGCT_MULTISTRING_ORDER: { + case SOGCT_GUI_DROPDOWN_ORDER: { int in = data.val; int out; if (in == 0) { @@ -2168,7 +2166,7 @@ void IntSettingDesc::ChangeValue(const void *object, int32 newval) const this->Write(object, newval); if (this->post_callback != nullptr) this->post_callback(newval); - if (this->flags & SGF_NO_NETWORK) { + if (this->flags & SF_NO_NETWORK) { GamelogStartAction(GLAT_SETTING); GamelogSetting(this->name, oldval, newval); GamelogStopAction(); @@ -2316,10 +2314,10 @@ const char *GetCompanySettingNameByIndex(uint32 idx) bool SetSettingValue(const IntSettingDesc *sd, int32 value, bool force_newgame) { const IntSettingDesc *setting = sd->AsIntSetting(); - if ((setting->flags & SGF_PER_COMPANY) != 0) { + if ((setting->flags & SF_PER_COMPANY) != 0) { if (Company::IsValidID(_local_company) && _game_mode != GM_MENU) { return DoCommandP(0, 0, value, CMD_CHANGE_COMPANY_SETTING, nullptr, setting->name); - } else if (setting->flags & SGF_NO_NEWGAME) { + } else if (setting->flags & SF_NO_NEWGAME) { return false; } @@ -2331,7 +2329,7 @@ bool SetSettingValue(const IntSettingDesc *sd, int32 value, bool force_newgame) * (if any) to change. Also *hack*hack* we update the _newgame version * of settings because changing a company-based setting in a game also * changes its defaults. At least that is the convention we have chosen */ - bool no_newgame = setting->flags & SGF_NO_NEWGAME; + bool no_newgame = setting->flags & SF_NO_NEWGAME; if (no_newgame && _game_mode == GM_MENU) return false; if (setting->save.conv & SLF_NO_NETWORK_SYNC) { if (_game_mode != GM_MENU && !no_newgame) { @@ -2442,7 +2440,7 @@ void IConsoleSetSetting(const char *name, const char *value, bool force_newgame) { const SettingDesc *sd = GetSettingFromName(name); - if (sd == nullptr || ((sd->flags & SGF_NO_NEWGAME) && (_game_mode == GM_MENU || force_newgame))) { + if (sd == nullptr || ((sd->flags & SF_NO_NEWGAME) && (_game_mode == GM_MENU || force_newgame))) { IConsolePrintF(CC_WARNING, "'%s' is an unknown setting.", name); return; } @@ -2487,7 +2485,7 @@ void IConsoleGetSetting(const char *name, bool force_newgame) { const SettingDesc *sd = GetSettingFromName(name); - if (sd == nullptr || ((sd->flags & SGF_NO_NEWGAME) && (_game_mode == GM_MENU || force_newgame))) { + if (sd == nullptr || ((sd->flags & SF_NO_NEWGAME) && (_game_mode == GM_MENU || force_newgame))) { IConsolePrintF(CC_WARNING, "'%s' is an unknown setting.", name); return; } @@ -2502,7 +2500,7 @@ void IConsoleGetSetting(const char *name, bool force_newgame) bool show_min_max = true; int64 min_value = int_setting->min; int64 max_value = int_setting->max; - if (sd->flags & SGF_ENUM) { + if (sd->flags & SF_ENUM) { min_value = INT64_MAX; max_value = INT64_MIN; int count = 0; @@ -2522,7 +2520,7 @@ void IConsoleGetSetting(const char *name, bool force_newgame) if (show_min_max) { IConsolePrintF(CC_WARNING, "Current value for '%s' is: '%s' (min: %s" OTTD_PRINTF64 ", max: " OTTD_PRINTF64 ")", - name, value, (sd->flags & SGF_0ISDISABLED) ? "(0) " : "", min_value, max_value); + name, value, (sd->flags & SF_GUI_0_IS_SPECIAL) ? "(0) " : "", min_value, max_value); } else { IConsolePrintF(CC_WARNING, "Current value for '%s' is: '%s'", name, value); @@ -2542,7 +2540,7 @@ void IConsoleListSettings(const char *prefilter) for (auto &sd : _settings) { if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to, sd->save.ext_feature_test)) continue; if (prefilter != nullptr && strstr(sd->name, prefilter) == nullptr) continue; - if ((sd->flags & SGF_NO_NEWGAME) && _game_mode == GM_MENU) continue; + if ((sd->flags & SF_NO_NEWGAME) && _game_mode == GM_MENU) continue; char value[80]; sd->FormatValue(value, lastof(value), &GetGameSettings()); IConsolePrintF(CC_DEFAULT, "%s = %s", sd->name, value); @@ -3009,12 +3007,14 @@ static void Save_PATX() SaveSettingsPatx(_settings, &_settings_game); } -extern const ChunkHandler _setting_chunk_handlers[] = { - { 'OPTS', nullptr, Load_OPTS, nullptr, nullptr, CH_RIFF}, - { 'PATS', Save_PATS, Load_PATS, nullptr, Check_PATS, CH_RIFF}, - { 'PATX', Save_PATX, Load_PATX, nullptr, Check_PATX, CH_RIFF | CH_LAST}, +static const ChunkHandler setting_chunk_handlers[] = { + { 'OPTS', nullptr, Load_OPTS, nullptr, nullptr, CH_RIFF }, + { 'PATS', Save_PATS, Load_PATS, nullptr, Check_PATS, CH_RIFF }, + { 'PATX', Save_PATX, Load_PATX, nullptr, Check_PATX, CH_RIFF }, }; +extern const ChunkHandlerTable _setting_chunk_handlers(setting_chunk_handlers); + static bool IsSignedVarMemType(VarType vt) { switch (GetVarMemType(vt)) { diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 9b6fe9b615..06b3629268 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1169,7 +1169,7 @@ bool SettingEntry::IsVisibleByRestrictionMode(RestrictionMode mode) const */ bool SettingEntry::UpdateFilterState(SettingFilter &filter, bool force_visible) { - if (this->setting->flags & SGF_NO_NEWGAME && _game_mode == GM_MENU) { + if (this->setting->flags & SF_NO_NEWGAME && _game_mode == GM_MENU) { SETBITS(this->flags, SEF_FILTERED); return false; } @@ -1206,7 +1206,7 @@ bool SettingEntry::UpdateFilterState(SettingFilter &filter, bool force_visible) static const void *ResolveObject(const GameSettings *settings_ptr, const IntSettingDesc *sd) { - if ((sd->flags & SGF_PER_COMPANY) != 0) { + if ((sd->flags & SF_PER_COMPANY) != 0) { if (Company::IsValidID(_local_company) && _game_mode != GM_MENU) { return &Company::Get(_local_company)->settings; } @@ -1224,7 +1224,7 @@ void SettingEntry::SetValueDParams(uint first_param, int32 value, std::unique_pt { if (this->setting->IsBoolSetting()) { SetDParam(first_param++, value != 0 ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF); - } else if (this->setting->flags & SGF_DEC1SCALE) { + } else if (this->setting->flags & SF_DEC1SCALE) { tempdata.reset(new SettingEntry::SetValueDParamsTempData()); double scale = std::exp2(((double)value) / 10); int log = -std::min(0, (int)std::floor(std::log10(scale)) - 2); @@ -1235,7 +1235,7 @@ void SettingEntry::SetValueDParams(uint first_param, int32 value, std::unique_pt SetDParam(first_param++, STR_JUST_RAW_STRING); SetDParamStr(first_param++, tempdata->buffer); } else { - if ((this->setting->flags & SGF_ENUM) != 0) { + if ((this->setting->flags & SF_ENUM) != 0) { StringID str = STR_UNDEFINED; for (const SettingDescEnumEntry *enumlist = this->setting->enumlist; enumlist != nullptr && enumlist->str != STR_NULL; enumlist++) { if (enumlist->val == value) { @@ -1244,13 +1244,13 @@ void SettingEntry::SetValueDParams(uint first_param, int32 value, std::unique_pt } } SetDParam(first_param++, str); - } else if ((this->setting->flags & SGF_MULTISTRING) != 0) { + } else if ((this->setting->flags & SF_GUI_DROPDOWN) != 0) { SetDParam(first_param++, this->setting->str_val - this->setting->min + value); - } else if ((this->setting->flags & SGF_DISPLAY_ABS) != 0) { + } else if ((this->setting->flags & SF_GUI_NEGATIVE_IS_SPECIAL) != 0) { SetDParam(first_param++, this->setting->str_val + ((value >= 0) ? 1 : 0)); value = abs(value); } else { - SetDParam(first_param++, this->setting->str_val + ((value == 0 && (this->setting->flags & SGF_0ISDISABLED) != 0) ? 1 : 0)); + SetDParam(first_param++, this->setting->str_val + ((value == 0 && (this->setting->flags & SF_GUI_0_IS_SPECIAL) != 0) ? 1 : 0)); } SetDParam(first_param++, value); } @@ -1283,13 +1283,13 @@ void SettingEntry::DrawSetting(GameSettings *settings_ptr, int left, int right, if (sd->IsBoolSetting()) { /* Draw checkbox for boolean-value either on/off */ DrawBoolButton(buttons_left, button_y, value != 0, editable); - } else if ((sd->flags & (SGF_MULTISTRING | SGF_ENUM)) != 0) { + } else if ((sd->flags & (SF_GUI_DROPDOWN | SF_ENUM)) != 0) { /* Draw [v] button for settings of an enum-type */ DrawDropDownButton(buttons_left, button_y, COLOUR_YELLOW, state != 0, editable); } else { /* Draw [<][>] boxes for settings of an integer-type */ DrawArrowButtons(buttons_left, button_y, COLOUR_YELLOW, state, - editable && value != (sd->flags & SGF_0ISDISABLED ? 0 : sd->min), editable && (uint32)value != sd->max); + editable && value != (sd->flags & SF_GUI_0_IS_SPECIAL ? 0 : sd->min), editable && (uint32)value != sd->max); } this->DrawSettingString(text_left, text_right, y + (SETTING_HEIGHT - FONT_HEIGHT_NORMAL) / 2, highlight, value); } @@ -2532,7 +2532,7 @@ struct GameSettingsWindow : Window { int32 value = sd->Read(ResolveObject(settings_ptr, sd)); /* clicked on the icon on the left side. Either scroller, bool on/off or dropdown */ - if (x < SETTING_BUTTON_WIDTH && (sd->flags & (SGF_MULTISTRING | SGF_ENUM))) { + if (x < SETTING_BUTTON_WIDTH && (sd->flags & (SF_GUI_DROPDOWN | SF_ENUM))) { this->SetDisplayedHelpText(pe); if (this->valuedropdown_entry == pe) { @@ -2560,12 +2560,12 @@ struct GameSettingsWindow : Window { this->valuedropdown_entry->SetButtons(SEF_LEFT_DEPRESSED); DropDownList list; - if (sd->flags & SGF_MULTISTRING) { + if (sd->flags & SF_GUI_DROPDOWN) { for (int i = sd->min; i <= (int)sd->max; i++) { int val = i; if (sd->guiproc != nullptr) { SettingOnGuiCtrlData data; - data.type = SOGCT_MULTISTRING_ORDER; + data.type = SOGCT_GUI_DROPDOWN_ORDER; data.val = i - sd->min; if (sd->guiproc(data)) { val = data.val; @@ -2574,7 +2574,7 @@ struct GameSettingsWindow : Window { assert_msg(val >= sd->min && val <= (int)sd->max, "min: %d, max: %d, val: %d", sd->min, sd->max, val); list.emplace_back(new DropDownListStringItem(sd->str_val + val - sd->min, val, false)); } - } else if ((sd->flags & SGF_ENUM)) { + } else if ((sd->flags & SF_ENUM)) { for (const SettingDescEnumEntry *enumlist = sd->enumlist; enumlist != nullptr && enumlist->str != STR_NULL; enumlist++) { list.emplace_back(new DropDownListStringItem(enumlist->str, enumlist->val, false)); } @@ -2616,7 +2616,7 @@ struct GameSettingsWindow : Window { if (value < sd->min) value = sd->min; // skip between "disabled" and minimum } else { value -= step; - if (value < sd->min) value = (sd->flags & SGF_0ISDISABLED) ? 0 : sd->min; + if (value < sd->min) value = (sd->flags & SF_GUI_0_IS_SPECIAL) ? 0 : sd->min; } /* Set up scroller timeout for numeric values */ @@ -2637,13 +2637,13 @@ struct GameSettingsWindow : Window { } } else { /* Only open editbox if clicked for the second time, and only for types where it is sensible for. */ - if (this->last_clicked == pe && !sd->IsBoolSetting() && !(sd->flags & (SGF_MULTISTRING | SGF_ENUM))) { + if (this->last_clicked == pe && !sd->IsBoolSetting() && !(sd->flags & (SF_GUI_DROPDOWN | SF_ENUM))) { int64 value64 = value; /* Show the correct currency-translated value */ - if (sd->flags & SGF_CURRENCY) value64 *= _currency->rate; + if (sd->flags & SF_GUI_CURRENCY) value64 *= _currency->rate; this->valuewindow_entry = pe; - if (sd->flags & SGF_DECIMAL1) { + if (sd->flags & SF_DECIMAL1) { SetDParam(0, value64); ShowQueryString(STR_JUST_DECIMAL1, STR_CONFIG_SETTING_QUERY_CAPTION, 10, this, CS_NUMERAL_DECIMAL, QSF_ENABLE_DEFAULT); } else { @@ -2676,14 +2676,14 @@ struct GameSettingsWindow : Window { int32 value; if (!StrEmpty(str)) { long long llvalue; - if (sd->flags & SGF_DECIMAL1) { + if (sd->flags & SF_DECIMAL1) { llvalue = atof(str) * 10; } else { llvalue = atoll(str); } /* Save the correct currency-translated value */ - if (sd->flags & SGF_CURRENCY) llvalue /= _currency->rate; + if (sd->flags & SF_GUI_CURRENCY) llvalue /= _currency->rate; value = (int32)ClampToI32(llvalue); } else { @@ -2724,7 +2724,7 @@ struct GameSettingsWindow : Window { /* Deal with drop down boxes on the panel. */ assert(this->valuedropdown_entry != nullptr); const IntSettingDesc *sd = this->valuedropdown_entry->setting; - assert(sd->flags & (SGF_MULTISTRING | SGF_ENUM)); + assert(sd->flags & (SF_GUI_DROPDOWN | SF_ENUM)); SetSettingValue(sd, index); this->SetDirty(); diff --git a/src/settings_internal.h b/src/settings_internal.h index a48f1390c5..c638b3b9e7 100644 --- a/src/settings_internal.h +++ b/src/settings_internal.h @@ -12,25 +12,24 @@ #include "saveload/saveload.h" -enum SettingGuiFlag : uint16 { - /* 2 bytes allocated for a maximum of 16 flags. */ - SGF_NONE = 0, - SGF_0ISDISABLED = 1 << 0, ///< a value of zero means the feature is disabled - SGF_DISPLAY_ABS = 1 << 1, ///< display absolute value of the setting - SGF_MULTISTRING = 1 << 2, ///< the value represents a limited number of string-options (internally integer) - SGF_NETWORK_ONLY = 1 << 3, ///< this setting only applies to network games - SGF_CURRENCY = 1 << 4, ///< the number represents money, so when reading value multiply by exchange rate - SGF_NO_NETWORK = 1 << 5, ///< this setting does not apply to network games; it may not be changed during the game - SGF_NEWGAME_ONLY = 1 << 6, ///< this setting cannot be changed in a game - SGF_SCENEDIT_TOO = 1 << 7, ///< this setting can be changed in the scenario editor (only makes sense when SGF_NEWGAME_ONLY is set) - SGF_PER_COMPANY = 1 << 8, ///< this setting can be different for each company (saved in company struct) - SGF_SCENEDIT_ONLY = 1 << 9, ///< this setting can only be changed in the scenario editor - SGF_DECIMAL1 = 1 << 10,///< display a decimal representation of the setting value divided by 10 - SGF_ENUM = 1 << 11,///< the setting can take one of the values given by an array of struct SettingDescEnumEntry - SGF_NO_NEWGAME = 1 << 12,///< the setting does not apply and is not shown in a new game context - SGF_DEC1SCALE = 1 << 13,///< also display a float representation of the scale of a decimal1 scale parameter +enum SettingFlag : uint16 { + SF_NONE = 0, + SF_GUI_0_IS_SPECIAL = 1 << 0, ///< A value of zero is possible and has a custom string (the one after "strval"). + SF_GUI_NEGATIVE_IS_SPECIAL = 1 << 1, ///< A negative value has another string (the one after "strval"). + SF_GUI_DROPDOWN = 1 << 2, ///< The value represents a limited number of string-options (internally integer) presented as dropdown. + SF_GUI_CURRENCY = 1 << 3, ///< The number represents money, so when reading value multiply by exchange rate. + SF_NETWORK_ONLY = 1 << 4, ///< This setting only applies to network games. + SF_NO_NETWORK = 1 << 5, ///< This setting does not apply to network games; it may not be changed during the game. + SF_NEWGAME_ONLY = 1 << 6, ///< This setting cannot be changed in a game. + SF_SCENEDIT_TOO = 1 << 7, ///< This setting can be changed in the scenario editor (only makes sense when SF_NEWGAME_ONLY is set). + SF_SCENEDIT_ONLY = 1 << 8, ///< This setting can only be changed in the scenario editor. + SF_PER_COMPANY = 1 << 9, ///< This setting can be different for each company (saved in company struct). + SF_DECIMAL1 = 1 << 10,///< display a decimal representation of the setting value divided by 10 + SF_ENUM = 1 << 11,///< the setting can take one of the values given by an array of struct SettingDescEnumEntry + SF_NO_NEWGAME = 1 << 12,///< the setting does not apply and is not shown in a new game context + SF_DEC1SCALE = 1 << 13,///< also display a float representation of the scale of a decimal1 scale parameter }; -DECLARE_ENUM_AS_BIT_SET(SettingGuiFlag) +DECLARE_ENUM_AS_BIT_SET(SettingFlag) /** * A SettingCategory defines a grouping of the settings. @@ -69,7 +68,7 @@ enum SettingType { enum SettingOnGuiCtrlType { SOGCT_DESCRIPTION_TEXT, ///< Description text callback - SOGCT_MULTISTRING_ORDER, ///< SGF_MULTISTRING reordering callback + SOGCT_GUI_DROPDOWN_ORDER, ///< SF_GUI_DROPDOWN reordering callback }; struct SettingOnGuiCtrlData { @@ -99,16 +98,16 @@ struct SettingsXref { /** Properties of config file settings. */ struct SettingDesc { struct XrefContructorTag {}; - SettingDesc(SaveLoad save, const char *name, SettingGuiFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name) : + SettingDesc(SaveLoad save, const char *name, SettingFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name) : name(name), flags(flags), guiproc(guiproc), startup(startup), save(save), patx_name(patx_name) {} SettingDesc(XrefContructorTag tag, SaveLoad save, SettingsXref xref) : - name(nullptr), flags(SGF_NONE), guiproc(nullptr), startup(false), save(save), patx_name(nullptr), xref(xref) {} + name(nullptr), flags(SF_NONE), guiproc(nullptr), startup(false), save(save), patx_name(nullptr), xref(xref) {} virtual ~SettingDesc() {} - const char *name; ///< name of the setting. Used in configuration file and for console - SettingGuiFlag flags; ///< handles how a setting would show up in the GUI (text/currency, etc.) - OnGuiCtrl *guiproc; ///< callback procedure for GUI operations - bool startup; ///< setting has to be loaded directly at startup? + const char *name; ///< Name of the setting. Used in configuration file and for console + SettingFlag flags; ///< Handles how a setting would show up in the GUI (text/currency, etc.) + OnGuiCtrl *guiproc; ///< Callback procedure for GUI operations + bool startup; ///< Setting has to be loaded directly at startup? SaveLoad save; ///< Internal structure (going to savegame, parts to config) const char *patx_name; ///< Name to save/load setting from in PATX chunk, if nullptr save/load from PATS chunk as normal @@ -176,7 +175,7 @@ struct IntSettingDesc : SettingDesc { */ typedef void PostChangeCallback(int32 value); - IntSettingDesc(SaveLoad save, const char *name, SettingGuiFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, int32 def, + IntSettingDesc(SaveLoad save, const char *name, SettingFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, int32 def, int32 min, uint32 max, int32 interval, StringID str, StringID str_help, StringID str_val, SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback, const SettingDescEnumEntry *enumlist) : SettingDesc(save, name, flags, guiproc, startup, patx_name), def(def), min(min), max(max), interval(interval), @@ -195,7 +194,7 @@ struct IntSettingDesc : SettingDesc { PreChangeCheck *pre_check; ///< Callback to check for the validity of the setting. PostChangeCallback *post_callback; ///< Callback when the setting has been changed. - const SettingDescEnumEntry *enumlist; ///< For SGF_ENUM. The last entry must use STR_NULL + const SettingDescEnumEntry *enumlist; ///< For SF_ENUM. The last entry must use STR_NULL /** * Check whether this setting is a boolean type setting. @@ -220,7 +219,7 @@ private: /** Boolean setting. */ struct BoolSettingDesc : IntSettingDesc { - BoolSettingDesc(SaveLoad save, const char *name, SettingGuiFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, bool def, + BoolSettingDesc(SaveLoad save, const char *name, SettingFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, bool def, StringID str, StringID str_help, StringID str_val, SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback) : IntSettingDesc(save, name, flags, guiproc, startup, patx_name, def, 0, 1, 0, str, str_help, str_val, cat, pre_check, post_callback, nullptr) {} @@ -235,7 +234,7 @@ struct BoolSettingDesc : IntSettingDesc { struct OneOfManySettingDesc : IntSettingDesc { typedef size_t OnConvert(const char *value); ///< callback prototype for conversion error - OneOfManySettingDesc(SaveLoad save, const char *name, SettingGuiFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, + OneOfManySettingDesc(SaveLoad save, const char *name, SettingFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, int32 def, int32 max, StringID str, StringID str_help, StringID str_val, SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback, std::initializer_list many, OnConvert *many_cnvt) : @@ -258,7 +257,7 @@ struct OneOfManySettingDesc : IntSettingDesc { /** Many of many setting. */ struct ManyOfManySettingDesc : OneOfManySettingDesc { - ManyOfManySettingDesc(SaveLoad save, const char *name, SettingGuiFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, + ManyOfManySettingDesc(SaveLoad save, const char *name, SettingFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, int32 def, StringID str, StringID str_help, StringID str_val, SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback, std::initializer_list many, OnConvert *many_cnvt) : @@ -287,7 +286,7 @@ struct StringSettingDesc : SettingDesc { */ typedef void PostChangeCallback(const std::string &value); - StringSettingDesc(SaveLoad save, const char *name, SettingGuiFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, const char *def, + StringSettingDesc(SaveLoad save, const char *name, SettingFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, const char *def, uint32 max_length, PreChangeCheck pre_check, PostChangeCallback post_callback) : SettingDesc(save, name, flags, guiproc, startup, patx_name), def(def == nullptr ? "" : def), max_length(max_length), pre_check(pre_check), post_callback(post_callback) {} @@ -313,7 +312,7 @@ private: /** List/array settings. */ struct ListSettingDesc : SettingDesc { - ListSettingDesc(SaveLoad save, const char *name, SettingGuiFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, const char *def) : + ListSettingDesc(SaveLoad save, const char *name, SettingFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, const char *def) : SettingDesc(save, name, flags, guiproc, startup, patx_name), def(def) {} virtual ~ListSettingDesc() {} @@ -327,7 +326,7 @@ struct ListSettingDesc : SettingDesc { /** Placeholder for settings that have been removed, but might still linger in the savegame. */ struct NullSettingDesc : SettingDesc { NullSettingDesc(SaveLoad save) : - SettingDesc(save, "", SGF_NONE, nullptr, false, nullptr) {} + SettingDesc(save, "", SF_NONE, nullptr, false, nullptr) {} virtual ~NullSettingDesc() {} void FormatValue(char *buf, const char *last, const void *object) const override { NOT_REACHED(); } diff --git a/src/spritecache.cpp b/src/spritecache.cpp index 7623c8c47e..3d8b572b83 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -316,9 +316,7 @@ static void ResizeSpriteOut(SpriteLoader::Sprite *sprite, ZoomLevel zoom) SpriteLoader::CommonPixel *dst = sprite[zoom].data; const SpriteLoader::CommonPixel *src = sprite[zoom - 1].data; -#ifdef WITH_ASSERT - const SpriteLoader::CommonPixel *src_end = src + sprite[zoom - 1].height * sprite[zoom - 1].width; -#endif + [[maybe_unused]] const SpriteLoader::CommonPixel *src_end = src + sprite[zoom - 1].height * sprite[zoom - 1].width; for (uint y = 0; y < sprite[zoom].height; y++) { const SpriteLoader::CommonPixel *src_ln = src + sprite[zoom - 1].width; diff --git a/src/stdafx.h b/src/stdafx.h index 87b37b2698..d077e9511d 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -468,7 +468,6 @@ const char *assert_tile_info(uint32 tile); /* Asserts are enabled if NDEBUG isn't defined or WITH_ASSERT is defined. */ #if !defined(NDEBUG) || defined(WITH_ASSERT) -# define OTTD_ASSERT # define assert_msg(expression, ...) if (unlikely(!(expression))) assert_msg_error(__LINE__, __FILE__, #expression, nullptr, __VA_ARGS__); # define assert_msg_tile(expression, tile, ...) if (unlikely(!(expression))) assert_msg_error(__LINE__, __FILE__, #expression, assert_tile_info(tile), __VA_ARGS__); # define assert_tile(expression, tile) if (unlikely(!(expression))) error("Assertion failed at line %i of %s: %s\n\t%s", __LINE__, __FILE__, #expression, assert_tile_info(tile)); diff --git a/src/table/settings.h.preamble b/src/table/settings.h.preamble index f0b2b2d7d6..72d5c1905e 100644 --- a/src/table/settings.h.preamble +++ b/src/table/settings.h.preamble @@ -85,7 +85,7 @@ static size_t ConvertLandscape(const char *value); NSD(Int, SLE_GENERAL_X(SL_VAR, base, var, type | flags, 1, from, to, extver), #var, guiflags, guiproc, startup, patxname, def, min, max, interval, str, strhelp, strval, cat, pre_check, post_callback, nullptr) #define SDT_ENUM(base, var, type, flags, guiflags, def, str, strhelp, pre_check, post_callback, from, to, extver, cat, guiproc, startup, patxname, enumlist)\ - NSD(Int, SLE_GENERAL_X(SL_VAR, base, var, type | flags, 1, from, to, extver), #var, guiflags | SGF_ENUM, guiproc, startup, patxname, def, 0, 0, 0, str, strhelp, STR_NULL, cat, pre_check, post_callback, enumlist) + NSD(Int, SLE_GENERAL_X(SL_VAR, base, var, type | flags, 1, from, to, extver), #var, guiflags | SF_ENUM, guiproc, startup, patxname, def, 0, 0, 0, str, strhelp, STR_NULL, cat, pre_check, post_callback, enumlist) #define SDT_BOOL(base, var, flags, guiflags, def, str, strhelp, strval, pre_check, post_callback, from, to, extver, cat, guiproc, startup, patxname)\ NSD(Bool, SLE_GENERAL_X(SL_VAR, base, var, SLE_BOOL | flags, 1, from, to, extver), #var, guiflags, guiproc, startup, patxname, def, str, strhelp, strval, cat, pre_check, post_callback) diff --git a/src/table/settings/company_settings.ini b/src/table/settings/company_settings.ini index e34e9bc5f8..fe01eaff87 100644 --- a/src/table/settings/company_settings.ini +++ b/src/table/settings/company_settings.ini @@ -25,7 +25,7 @@ SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CompanySettings.$v [defaults] flags = 0 -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT @@ -53,7 +53,7 @@ cat = SC_BASIC [SDT_VAR] var = engine_renew_months type = SLE_INT16 -guiflags = SGF_PER_COMPANY | SGF_DISPLAY_ABS +guiflags = SF_PER_COMPANY | SF_GUI_NEGATIVE_IS_SPECIAL def = 6 min = -12 max = 12 @@ -64,7 +64,7 @@ strval = STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE [SDT_VAR] var = engine_renew_money type = SLE_UINT -guiflags = SGF_PER_COMPANY | SGF_CURRENCY +guiflags = SF_PER_COMPANY | SF_GUI_CURRENCY def = 100000 min = 0 max = 2000000 @@ -91,7 +91,7 @@ post_cb = UpdateServiceInterval [SDT_VAR] var = vehicle.servint_trains type = SLE_UINT16 -guiflags = SGF_PER_COMPANY | SGF_0ISDISABLED +guiflags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL def = 150 min = 5 max = 800 @@ -104,7 +104,7 @@ post_cb = [](auto new_value) { UpdateServiceInterval(VEH_TRAIN, new_value); } [SDT_VAR] var = vehicle.servint_roadveh type = SLE_UINT16 -guiflags = SGF_PER_COMPANY | SGF_0ISDISABLED +guiflags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL def = 150 min = 5 max = 800 @@ -117,7 +117,7 @@ post_cb = [](auto new_value) { UpdateServiceInterval(VEH_ROAD, new_value); } [SDT_VAR] var = vehicle.servint_ships type = SLE_UINT16 -guiflags = SGF_PER_COMPANY | SGF_0ISDISABLED +guiflags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL def = 360 min = 5 max = 800 @@ -130,7 +130,7 @@ post_cb = [](auto new_value) { UpdateServiceInterval(VEH_SHIP, new_value); } [SDT_VAR] var = vehicle.servint_aircraft type = SLE_UINT16 -guiflags = SGF_PER_COMPANY | SGF_0ISDISABLED +guiflags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL def = 100 min = 5 max = 800 @@ -143,7 +143,7 @@ post_cb = [](auto new_value) { UpdateServiceInterval(VEH_AIRCRAFT, new_value); [SDT_BOOL] base = CompanySettings var = vehicle.auto_timetable_by_default -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_AUTO_TIMETABLE_BY_DEFAULT strhelp = STR_CONFIG_SETTING_AUTO_TIMETABLE_BY_DEFAULT_HELPTEXT @@ -152,7 +152,7 @@ patxname = ""vehicle.auto_timetable_by_default"" [SDT_BOOL] base = CompanySettings var = vehicle.auto_separation_by_default -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = true str = STR_CONFIG_SETTING_TIMETABLE_SEPARATION_BY_DEFAULT strhelp = STR_CONFIG_SETTING_TIMETABLE_SEPARATION_BY_DEFAULT_HELPTEXT @@ -162,7 +162,7 @@ patxname = ""vehicle.auto_separation_by_default"" base = CompanySettings var = auto_timetable_separation_rate type = SLE_UINT8 -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = 40 min = 0 max = 100 @@ -177,7 +177,7 @@ patxname = ""auto_timetable_separation_rate"" base = CompanySettings var = timetable_autofill_rounding type = SLE_UINT16 -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = 74 min = 1 max = 1000 @@ -192,7 +192,7 @@ patxname = ""timetable_autofill_rounding"" base = CompanySettings var = order_occupancy_smoothness type = SLE_UINT8 -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = 75 min = 0 max = 100 @@ -206,7 +206,7 @@ patxname = ""order_occupancy_smoothness"" [SDT_BOOL] base = CompanySettings var = infra_others_buy_in_depot[0] -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_RAIL patxname = ""infra_sharing.infra_others_buy_in_depot.rail"" @@ -214,7 +214,7 @@ patxname = ""infra_sharing.infra_others_buy_in_depot.rail"" [SDT_BOOL] base = CompanySettings var = infra_others_buy_in_depot[1] -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_ROAD patxname = ""infra_sharing.infra_others_buy_in_depot.road"" @@ -222,7 +222,7 @@ patxname = ""infra_sharing.infra_others_buy_in_depot.road"" [SDT_BOOL] base = CompanySettings var = infra_others_buy_in_depot[2] -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_WATER patxname = ""infra_sharing.infra_others_buy_in_depot.water"" @@ -230,7 +230,7 @@ patxname = ""infra_sharing.infra_others_buy_in_depot.water"" [SDT_BOOL] base = CompanySettings var = infra_others_buy_in_depot[3] -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_AIR patxname = ""infra_sharing.infra_others_buy_in_depot.air"" @@ -239,7 +239,7 @@ patxname = ""infra_sharing.infra_others_buy_in_depot.air"" [SDT_BOOL] base = CompanySettings var = advance_order_on_clone -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = false str = STR_CONFIG_SETTING_ADVANCE_ORDER_ON_CLONE strhelp = STR_CONFIG_SETTING_ADVANCE_ORDER_ON_CLONE_HELPTEXT @@ -248,7 +248,7 @@ patxname = ""advance_order_on_clone"" [SDT_BOOL] base = CompanySettings var = copy_clone_add_to_group -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = true str = STR_CONFIG_SETTING_COPY_CLONE_ADD_TO_GROUP strhelp = STR_CONFIG_SETTING_COPY_CLONE_ADD_TO_GROUP_HELPTEXT @@ -258,7 +258,7 @@ patxname = ""copy_clone_add_to_group"" base = CompanySettings var = simulated_wormhole_signals type = SLE_UINT8 -guiflags = SGF_PER_COMPANY +guiflags = SF_PER_COMPANY def = 4 min = 1 max = 16 diff --git a/src/table/settings/currency_settings.ini b/src/table/settings/currency_settings.ini index f950cd52bb..e93b991b71 100644 --- a/src/table/settings/currency_settings.ini +++ b/src/table/settings/currency_settings.ini @@ -19,7 +19,7 @@ SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for CurrencySpec.$var [defaults] flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NONE +guiflags = SF_NONE interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT diff --git a/src/table/settings/gameopt_settings.ini b/src/table/settings/gameopt_settings.ini index bd3d58e974..51b79f3c5a 100644 --- a/src/table/settings/gameopt_settings.ini +++ b/src/table/settings/gameopt_settings.ini @@ -64,7 +64,7 @@ SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var [defaults] flags = 0 -guiflags = SGF_NONE +guiflags = SF_NONE interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT diff --git a/src/table/settings/misc_settings.ini b/src/table/settings/misc_settings.ini index 086e82c7bd..7595865127 100644 --- a/src/table/settings/misc_settings.ini +++ b/src/table/settings/misc_settings.ini @@ -38,7 +38,7 @@ SDTG_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds st [defaults] flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NONE +guiflags = SF_NONE interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT diff --git a/src/table/settings/settings.ini b/src/table/settings/settings.ini index ff03ce55d1..ab799476f6 100644 --- a/src/table/settings/settings.ini +++ b/src/table/settings/settings.ini @@ -155,7 +155,7 @@ SDT_ENUM = SDT_ENUM(GameSettings, $var, $type, $flags, $guiflags, $def, SDT_NULL = SDT_NULL($length, $from, $to, $extver), SDT_XREF = SDT_XREF( $from, $to, $extver, $xref, $xrefcvt), -SDT_LINKGRAPH_PER_CARGO = SDT_ENUM(GameSettings, linkgraph.distribution_per_cargo[$linkgraph_cargo], SLE_UINT8, $flags | SLF_NOT_IN_CONFIG, $guiflags | SGF_NO_NEWGAME, DT_PER_CARGO_DEFAULT, STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO, STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT, $pre_cb, $post_cb, $from, $to, SlXvFeatureTest(XSLFTO_AND, XSLFI_LINKGRAPH_MODES), SC_EXPERT, LinkGraphDistributionSettingGUI, false, nullptr, _linkgraph_mode_per_cargo), +SDT_LINKGRAPH_PER_CARGO = SDT_ENUM(GameSettings, linkgraph.distribution_per_cargo[$linkgraph_cargo], SLE_UINT8, $flags | SLF_NOT_IN_CONFIG, $guiflags | SF_NO_NEWGAME, DT_PER_CARGO_DEFAULT, STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO, STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT, $pre_cb, $post_cb, $from, $to, SlXvFeatureTest(XSLFTO_AND, XSLFI_LINKGRAPH_MODES), SC_EXPERT, LinkGraphDistributionSettingGUI, false, nullptr, _linkgraph_mode_per_cargo), [validation] SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); @@ -167,7 +167,7 @@ SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var [defaults] flags = 0 -guiflags = SGF_NONE +guiflags = SF_NONE interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT @@ -214,7 +214,7 @@ max = 3 var = difficulty.number_towns type = SLE_UINT8 from = SLV_97 -guiflags = SGF_NEWGAME_ONLY +guiflags = SF_NEWGAME_ONLY def = 2 min = 0 max = 4 @@ -226,7 +226,7 @@ cat = SC_BASIC var = difficulty.industry_density type = SLE_UINT8 from = SLV_97 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = ID_END - 1 min = 0 max = ID_END - 1 @@ -240,7 +240,7 @@ cat = SC_BASIC var = difficulty.max_loan type = SLE_UINT32 from = SLV_97 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_CURRENCY +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_CURRENCY def = 300000 min = 0 max = 2000000000 @@ -254,7 +254,7 @@ cat = SC_BASIC var = difficulty.initial_interest type = SLE_UINT8 from = SLV_97 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO def = 2 min = 2 max = 4 @@ -267,7 +267,7 @@ strval = STR_CONFIG_SETTING_PERCENTAGE var = difficulty.vehicle_costs type = SLE_UINT8 from = SLV_97 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_MULTISTRING +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_DROPDOWN def = 0 min = 0 max = 2 @@ -281,7 +281,7 @@ cat = SC_BASIC var = difficulty.competitor_speed type = SLE_UINT8 from = SLV_97 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 0 max = 4 @@ -304,7 +304,7 @@ max = 2 var = difficulty.vehicle_breakdowns type = SLE_UINT8 from = SLV_97 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -318,7 +318,7 @@ cat = SC_BASIC var = difficulty.subsidy_multiplier type = SLE_UINT8 from = SLV_97 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 0 max = 3 @@ -331,7 +331,7 @@ strval = STR_SUBSIDY_X1_5 var = difficulty.subsidy_duration type = SLE_UINT16 from = SLV_CUSTOM_SUBSIDY_DURATION -guiflags = SGF_0ISDISABLED +guiflags = SF_GUI_0_IS_SPECIAL def = 1 min = 0 max = 5000 @@ -344,7 +344,7 @@ strval = STR_CONFIG_SETTING_SUBSIDY_DURATION_VALUE var = difficulty.construction_cost type = SLE_UINT8 from = SLV_97 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_MULTISTRING +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_DROPDOWN def = 0 min = 0 max = 2 @@ -358,7 +358,7 @@ cat = SC_BASIC var = difficulty.terrain_type type = SLE_UINT8 from = SLV_97 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +guiflags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY def = 1 min = 0 max = 5 @@ -372,7 +372,7 @@ cat = SC_BASIC var = difficulty.quantity_sea_lakes type = SLE_UINT8 from = SLV_97 -guiflags = SGF_NEWGAME_ONLY +guiflags = SF_NEWGAME_ONLY def = 0 min = 0 max = 4 @@ -477,7 +477,7 @@ patxname = ""auto_timetables.order.timetable_separation_rate"" var = game_creation.town_name type = SLE_UINT8 from = SLV_97 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = 0 max = 255 full = _town_names @@ -487,7 +487,7 @@ cat = SC_BASIC var = game_creation.landscape type = SLE_UINT8 from = SLV_97 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +guiflags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY def = 0 max = 3 full = _climates @@ -522,7 +522,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_CHILLPP) var = vehicle.road_side type = SLE_UINT8 from = SLV_97 -guiflags = SGF_MULTISTRING | SGF_NO_NETWORK +guiflags = SF_GUI_DROPDOWN | SF_NO_NETWORK def = 1 max = 1 full = _roadsides @@ -539,7 +539,7 @@ cat = SC_BASIC var = construction.map_height_limit type = SLE_UINT8 from = SLV_194 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_0ISDISABLED +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_0_IS_SPECIAL def = 0 min = MIN_MAP_HEIGHT_LIMIT max = MAX_MAP_HEIGHT_LIMIT @@ -561,7 +561,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_CHILLPP) var = game_creation.heightmap_height type = SLE_UINT8 from = SLV_MAPGEN_SETTINGS_REVAMP -guiflags = SGF_NEWGAME_ONLY +guiflags = SF_NEWGAME_ONLY def = MAP_HEIGHT_LIMIT_AUTO_MINIMUM min = MIN_HEIGHTMAP_HEIGHT max = MAX_MAP_HEIGHT_LIMIT @@ -569,7 +569,7 @@ interval = 1 [SDT_BOOL] var = construction.build_on_slopes -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = true cat = SC_EXPERT @@ -577,7 +577,7 @@ cat = SC_EXPERT var = construction.command_pause_level type = SLE_UINT8 from = SLV_154 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 3 @@ -720,7 +720,7 @@ strhelp = STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT var = construction.max_bridge_length type = SLE_UINT16 from = SLV_159 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = 64 min = 1 max = 4096 @@ -741,7 +741,7 @@ xref = ""construction.old_simulated_wormhole_signals"" var = construction.max_bridge_height type = SLE_UINT8 from = SLV_194 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = 12 min = 1 max = MAX_TILE_HEIGHT @@ -755,7 +755,7 @@ cat = SC_EXPERT var = construction.max_tunnel_length type = SLE_UINT16 from = SLV_159 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = 64 min = 1 max = 4096 @@ -806,7 +806,7 @@ to = SLV_159 [SDT_VAR] var = construction.train_signal_side type = SLE_UINT8 -guiflags = SGF_MULTISTRING | SGF_NO_NETWORK +guiflags = SF_GUI_DROPDOWN | SF_NO_NETWORK def = 1 min = 0 max = 2 @@ -818,7 +818,7 @@ cat = SC_BASIC [SDT_BOOL] var = station.never_expire_airports -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = false str = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS strhelp = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT @@ -827,7 +827,7 @@ strhelp = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT var = economy.town_layout type = SLE_UINT8 from = SLV_59 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = TL_ORIGINAL min = TL_BEGIN max = NUM_TLS - 1 @@ -855,7 +855,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 7) [SDT_BOOL] var = economy.allow_town_roads from = SLV_113 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = true str = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT @@ -872,7 +872,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_CHILLPP) var = economy.found_town type = SLE_UINT8 from = SLV_128 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = TF_FORBIDDEN min = TF_BEGIN max = TF_END - 1 @@ -898,7 +898,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_CHILLPP) var = economy.town_cargogen_mode type = SLE_UINT8 from = SLV_TOWN_CARGOGEN -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = TCGM_BITCOUNT min = TCGM_BEGIN max = TCGM_END - 1 @@ -1195,7 +1195,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_JOKERPP) [SDT_VAR] var = economy.town_cargo_scale_factor type = SLE_INT16 -guiflags = SGF_DECIMAL1 | SGF_DEC1SCALE +guiflags = SF_DECIMAL1 | SF_DEC1SCALE def = 0 min = -160 max = +80 @@ -1208,7 +1208,7 @@ patxname = ""town_cargo_adj.economy.town_cargo_scale_factor"" [SDT_VAR] var = economy.industry_cargo_scale_factor type = SLE_INT16 -guiflags = SGF_DECIMAL1 | SGF_DEC1SCALE +guiflags = SF_DECIMAL1 | SF_DEC1SCALE def = 0 min = -50 max = +50 @@ -1223,7 +1223,7 @@ patxname = ""industry_cargo_adj.economy.industry_cargo_scale_factor"" [SDT_VAR] var = vehicle.train_acceleration_model type = SLE_UINT8 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 1 @@ -1249,7 +1249,7 @@ patxname = ""realistic_braking.vehicle.train_braking_model"" var = vehicle.roadveh_acceleration_model type = SLE_UINT8 from = SLV_139 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 1 @@ -1333,7 +1333,7 @@ to = SLV_159 var = vehicle.smoke_amount type = SLE_UINT8 from = SLV_145 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -1361,7 +1361,7 @@ cat = SC_EXPERT [SDT_VAR] var = pf.reroute_rv_on_layout_change type = SLE_UINT8 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -1404,7 +1404,7 @@ cat = SC_EXPERT var = pf.pathfinder_for_trains type = SLE_UINT8 from = SLV_87 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 1 max = 2 @@ -1418,7 +1418,7 @@ cat = SC_EXPERT var = pf.pathfinder_for_roadvehs type = SLE_UINT8 from = SLV_87 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 1 max = 2 @@ -1432,7 +1432,7 @@ cat = SC_EXPERT var = pf.pathfinder_for_ships type = SLE_UINT8 from = SLV_87 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 1 max = 2 @@ -1445,7 +1445,7 @@ cat = SC_EXPERT [SDT_BOOL] var = vehicle.never_expire_vehicles -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = false str = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES strhelp = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT @@ -1453,7 +1453,7 @@ strhelp = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT [SDT_VAR] var = vehicle.no_expire_vehicles_after type = SLE_INT32 -guiflags = SGF_NO_NETWORK | SGF_0ISDISABLED +guiflags = SF_NO_NETWORK | SF_GUI_0_IS_SPECIAL def = 0 min = MIN_YEAR max = MAX_YEAR @@ -1467,7 +1467,7 @@ patxname = ""vehicle.no_expire_vehicles_after"" [SDT_VAR] var = vehicle.no_introduce_vehicles_after type = SLE_INT32 -guiflags = SGF_NO_NETWORK | SGF_0ISDISABLED +guiflags = SF_NO_NETWORK | SF_GUI_0_IS_SPECIAL def = 0 min = MIN_YEAR max = MAX_YEAR @@ -1533,7 +1533,7 @@ cat = SC_BASIC [SDTG_BOOL] name = nullptr -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK var = _old_vds.servint_ispercent def = false to = SLV_120 @@ -1541,7 +1541,7 @@ to = SLV_120 [SDTG_VAR] name = nullptr type = SLE_UINT16 -guiflags = SGF_0ISDISABLED +guiflags = SF_GUI_0_IS_SPECIAL var = _old_vds.servint_trains def = 150 min = 5 @@ -1551,7 +1551,7 @@ to = SLV_120 [SDTG_VAR] name = nullptr type = SLE_UINT16 -guiflags = SGF_0ISDISABLED +guiflags = SF_GUI_0_IS_SPECIAL var = _old_vds.servint_roadveh def = 150 min = 5 @@ -1561,7 +1561,7 @@ to = SLV_120 [SDTG_VAR] name = nullptr type = SLE_UINT16 -guiflags = SGF_0ISDISABLED +guiflags = SF_GUI_0_IS_SPECIAL var = _old_vds.servint_ships def = 360 min = 5 @@ -1571,7 +1571,7 @@ to = SLV_120 [SDTG_VAR] name = nullptr type = SLE_UINT16 -guiflags = SGF_0ISDISABLED +guiflags = SF_GUI_0_IS_SPECIAL var = _old_vds.servint_aircraft def = 150 min = 5 @@ -1586,7 +1586,7 @@ strhelp = STR_CONFIG_SETTING_NOSERVICE_HELPTEXT [SDT_BOOL] var = vehicle.wagon_speed_limits -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = true str = STR_CONFIG_SETTING_WAGONSPEEDLIMITS strhelp = STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT @@ -1621,7 +1621,7 @@ patxname = ""train_speed_adaptation.vehicle.train_speed_adaptation"" [SDT_BOOL] var = vehicle.disable_elrails from = SLV_38 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = false str = STR_CONFIG_SETTING_DISABLE_ELRAILS strhelp = STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT @@ -1632,7 +1632,7 @@ cat = SC_EXPERT var = vehicle.freight_trains type = SLE_UINT8 from = SLV_39 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = 1 min = 1 max = 255 @@ -1672,7 +1672,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_CHILLPP) var = vehicle.plane_speed type = SLE_UINT8 from = SLV_90 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = 4 min = 1 max = 4 @@ -1683,7 +1683,7 @@ strval = STR_CONFIG_SETTING_PLANE_SPEED_VALUE [SDT_BOOL] var = vehicle.dynamic_engines from = SLV_95 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = true pre_cb = CheckDynamicEngines cat = SC_EXPERT @@ -1692,7 +1692,7 @@ cat = SC_EXPERT var = vehicle.plane_crashes type = SLE_UINT8 from = SLV_138 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 0 max = 2 @@ -1769,7 +1769,7 @@ def = true [SDT_BOOL] var = order.improved_load -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = true cat = SC_EXPERT @@ -1881,7 +1881,7 @@ post_cb = StationCatchmentChanged [SDT_BOOL] var = order.gradual_loading from = SLV_40 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = true cat = SC_EXPERT @@ -1956,7 +1956,7 @@ patxname = ""allow_stations_under_bridges.construction.allow_docks_under_bridges [SDT_VAR] var = construction.purchase_land_permitted type = SLE_UINT8 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -1982,7 +1982,7 @@ cat = SC_EXPERT [SDT_BOOL] var = economy.station_noise_level from = SLV_96 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = false str = STR_CONFIG_SETTING_NOISE_LEVEL strhelp = STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT @@ -2009,7 +2009,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP) ## [SDT_BOOL] var = economy.inflation -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = false str = STR_CONFIG_SETTING_INFLATION strhelp = STR_CONFIG_SETTING_INFLATION_HELPTEXT @@ -2039,7 +2039,7 @@ patxname = ""variable_day_length.economy.day_length_factor"" [SDT_VAR] var = construction.raw_industry_construction type = SLE_UINT8 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 2 @@ -2144,7 +2144,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_CHILLPP) [SDT_VAR] var = game_creation.snow_line_height type = SLE_UINT8 -guiflags = SGF_NO_NETWORK +guiflags = SF_NO_NETWORK def = DEF_SNOWLINE_HEIGHT min = MIN_SNOWLINE_HEIGHT max = MAX_SNOWLINE_HEIGHT @@ -2157,7 +2157,7 @@ cat = SC_BASIC [SDT_VAR] var = game_creation.rainforest_line_height type = SLE_UINT8 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO def = DEF_RAINFOREST_HEIGHT min = MIN_RAINFOREST_HEIGHT max = MAX_RAINFOREST_HEIGHT @@ -2171,7 +2171,7 @@ patxname = ""rainforest_line_height.game_creation.rainforest_line_height"" [SDT_VAR] var = game_creation.climate_threshold_mode type = SLE_UINT8 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +guiflags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY def = 0 min = 0 max = 1 @@ -2200,7 +2200,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_JOKERPP) var = game_creation.snow_coverage type = SLE_UINT8 from = SLV_MAPGEN_SETTINGS_REVAMP -guiflags = SGF_NEWGAME_ONLY +guiflags = SF_NEWGAME_ONLY def = DEF_SNOW_COVERAGE min = 0 max = 100 @@ -2214,7 +2214,7 @@ cat = SC_BASIC var = game_creation.desert_coverage type = SLE_UINT8 from = SLV_MAPGEN_SETTINGS_REVAMP -guiflags = SGF_NEWGAME_ONLY +guiflags = SF_NEWGAME_ONLY def = DEF_DESERT_COVERAGE min = 0 max = 100 @@ -2248,7 +2248,7 @@ to = SLV_105 var = game_creation.ending_year type = SLE_INT32 from = SLV_ENDING_YEAR -guiflags = SGF_0ISDISABLED +guiflags = SF_GUI_0_IS_SPECIAL def = DEF_END_YEAR min = MIN_YEAR max = MAX_YEAR - 1 @@ -2261,7 +2261,7 @@ cat = SC_ADVANCED [SDT_VAR] var = economy.type type = SLE_UINT8 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = ET_SMOOTH min = ET_BEGIN max = ET_END - 1 @@ -2360,7 +2360,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP) var = economy.town_growth_rate type = SLE_INT8 from = SLV_54 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = -2 max = 4 @@ -2525,7 +2525,7 @@ patxname = ""town_growth.economy.town_growth_cargo_transported"" var = economy.larger_towns type = SLE_UINT8 from = SLV_54 -guiflags = SGF_0ISDISABLED +guiflags = SF_GUI_0_IS_SPECIAL def = 4 min = 0 max = 255 @@ -2699,7 +2699,7 @@ patxname = ""infra_sharing.economy.infrastructure_sharing.air"" [SDT_VAR] var = economy.sharing_fee[0] type = SLE_UINT -guiflags = SGF_CURRENCY +guiflags = SF_GUI_CURRENCY def = 100 min = 0 max = 1000000 @@ -2712,7 +2712,7 @@ patxname = ""infra_sharing.economy.sharing_fee.rail"" [SDT_VAR] var = economy.sharing_fee[1] type = SLE_UINT -guiflags = SGF_CURRENCY +guiflags = SF_GUI_CURRENCY def = 100 min = 0 max = 1000000 @@ -2725,7 +2725,7 @@ patxname = ""infra_sharing.economy.sharing_fee.road"" [SDT_VAR] var = economy.sharing_fee[2] type = SLE_UINT -guiflags = SGF_CURRENCY +guiflags = SF_GUI_CURRENCY def = 100 min = 0 max = 1000000 @@ -2738,7 +2738,7 @@ patxname = ""infra_sharing.economy.sharing_fee.water"" [SDT_VAR] var = economy.sharing_fee[3] type = SLE_UINT -guiflags = SGF_CURRENCY +guiflags = SF_GUI_CURRENCY def = 100 min = 0 max = 1000000 @@ -2768,7 +2768,7 @@ to = SLV_106 var = script.settings_profile type = SLE_UINT8 from = SLV_178 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = SP_EASY min = SP_EASY max = SP_HARD @@ -3512,7 +3512,7 @@ patxname = ""order_occupancy.order.occupancy_smoothness"" var = game_creation.land_generator type = SLE_UINT8 from = SLV_30 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +guiflags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY def = 1 min = 0 max = 1 @@ -3535,7 +3535,7 @@ strhelp = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT var = game_creation.tgen_smoothness type = SLE_UINT8 from = SLV_30 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +guiflags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY def = 1 min = TGEN_SMOOTHNESS_BEGIN max = TGEN_SMOOTHNESS_END - 1 @@ -3548,7 +3548,7 @@ cat = SC_BASIC var = game_creation.variety type = SLE_UINT8 from = SLV_197 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +guiflags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY def = 0 min = 0 max = 5 @@ -3577,7 +3577,7 @@ patxname = ""savegame_unique_id.game_creation.generation_unique_id"" var = game_creation.tree_placer type = SLE_UINT8 from = SLV_30 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +guiflags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY | SF_SCENEDIT_TOO def = 3 min = 0 max = 3 @@ -3590,7 +3590,7 @@ cat = SC_BASIC var = game_creation.heightmap_rotation type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 1 @@ -3657,7 +3657,7 @@ cat = SC_BASIC var = construction.extra_tree_placement type = SLE_UINT8 from = SLV_132 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 0 max = 3 @@ -3694,7 +3694,7 @@ patxname = ""everest_treeline.construction.trees_around_snow_line_range"" [SDT_VAR] var = construction.tree_growth_rate type = SLE_UINT8 -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 4 @@ -3716,7 +3716,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_JOKERPP) var = game_creation.custom_terrain_type type = SLE_UINT8 from = SLV_MAPGEN_SETTINGS_REVAMP -guiflags = SGF_NEWGAME_ONLY +guiflags = SF_NEWGAME_ONLY def = MAP_HEIGHT_LIMIT_AUTO_MINIMUM min = MIN_CUSTOM_TERRAIN_TYPE max = MAX_MAP_HEIGHT_LIMIT @@ -3734,7 +3734,7 @@ cat = SC_BASIC [SDT_VAR] var = game_creation.min_river_length type = SLE_UINT8 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO from = SLV_163 def = 16 min = 2 @@ -3747,7 +3747,7 @@ strval = STR_JUST_COMMA [SDT_VAR] var = game_creation.river_route_random type = SLE_UINT8 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO from = SLV_163 def = 5 min = 1 @@ -3759,7 +3759,7 @@ strval = STR_JUST_COMMA [SDT_BOOL] var = game_creation.rivers_top_of_hill -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO def = true cat = SC_EXPERT str = STR_CONFIG_SETTING_RIVERS_TOP_OF_HILL @@ -3769,7 +3769,7 @@ patxname = ""rivers.game_creation.rivers_top_of_hill"" [SDT_VAR] var = game_creation.river_tropics_width type = SLE_UINT8 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO def = 5 min = 1 max = 12 @@ -3783,7 +3783,7 @@ patxname = ""rivers.game_creation.river_tropics_width"" [SDT_VAR] var = game_creation.lake_size type = SLE_UINT8 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO | SGF_0ISDISABLED +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_0_IS_SPECIAL def = 8 min = 0 max = 100 @@ -3795,7 +3795,7 @@ patxname = ""rivers.game_creation.lake_size"" [SDT_BOOL] var = game_creation.lakes_allowed_in_deserts -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO def = false cat = SC_EXPERT str = STR_CONFIG_SETTING_LAKES_ALLOWED_IN_DESERTS @@ -3806,7 +3806,7 @@ patxname = ""rivers.game_creation.lakes_allowed_in_deserts"" var = game_creation.amount_of_rivers type = SLE_UINT8 from = SLV_163 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY +guiflags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY def = 2 min = 0 max = 5 @@ -3817,7 +3817,7 @@ strval = STR_RIVERS_NONE [SDT_VAR] var = game_creation.amount_of_rocks type = SLE_UINT8 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO def = 5 min = 1 max = 255 @@ -3830,7 +3830,7 @@ patxname = ""rocks.game_creation.amount_of_rocks"" [SDT_VAR] var = game_creation.height_affects_rocks type = SLE_UINT8 -guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +guiflags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO def = 0 min = 0 max = 25 @@ -3847,7 +3847,7 @@ xref = ""game_creation.build_public_roads"" [SDT_VAR] var = game_creation.build_public_roads type = SLE_UINT8 -guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +guiflags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY | SF_SCENEDIT_TOO def = 0 min = 0 max = 2 @@ -3888,7 +3888,7 @@ var = locale.units_velocity type = SLE_UINT8 from = SLV_184 flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 max = 3 full = _locale_units @@ -3903,7 +3903,7 @@ var = locale.units_power type = SLE_UINT8 from = SLV_184 flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 max = 2 full = _locale_units @@ -3918,7 +3918,7 @@ var = locale.units_weight type = SLE_UINT8 from = SLV_184 flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 max = 2 full = _locale_units @@ -3933,7 +3933,7 @@ var = locale.units_volume type = SLE_UINT8 from = SLV_184 flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 max = 2 full = _locale_units @@ -3948,7 +3948,7 @@ var = locale.units_force type = SLE_UINT8 from = SLV_184 flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 max = 2 full = _locale_units @@ -3963,7 +3963,7 @@ var = locale.units_height type = SLE_UINT8 from = SLV_184 flags = SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 max = 2 full = _locale_units @@ -4024,7 +4024,7 @@ patxname = ""safer_crossings.vehicle.safer_crossings"" var = gui.autosave type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 max = 4 full = _autosave_interval @@ -4043,7 +4043,7 @@ cat = SC_EXPERT var = gui.date_format_in_default_names type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 max = 2 full = _savegame_date @@ -4063,7 +4063,7 @@ cat = SC_BASIC var = gui.auto_scrolling type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 3 @@ -4076,7 +4076,7 @@ cat = SC_BASIC var = gui.scroll_mode type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 3 @@ -4106,7 +4106,7 @@ ifdef = __APPLE__ var = gui.right_mouse_btn_emulation type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 2 @@ -4138,7 +4138,7 @@ strval = STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE var = gui.hover_delay_ms type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_0ISDISABLED +guiflags = SF_GUI_0_IS_SPECIAL def = 250 min = 50 max = 6000 @@ -4154,7 +4154,7 @@ flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC str = STR_CONFIG_SETTING_OSK_ACTIVATION strhelp = STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT strval = STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN full = _osk_activation def = 1 min = 0 @@ -4165,7 +4165,7 @@ cat = SC_BASIC var = gui.toolbar_pos type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -4179,7 +4179,7 @@ cat = SC_BASIC var = gui.statusbar_pos type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -4193,7 +4193,7 @@ cat = SC_BASIC var = gui.window_snap_radius type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_0ISDISABLED +guiflags = SF_GUI_0_IS_SPECIAL def = 10 min = 1 max = 32 @@ -4206,7 +4206,7 @@ cat = SC_EXPERT var = gui.window_soft_limit type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_0ISDISABLED +guiflags = SF_GUI_0_IS_SPECIAL def = 20 min = 5 max = 255 @@ -4220,7 +4220,7 @@ cat = SC_EXPERT var = gui.zoom_min type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = ZOOM_LVL_MIN min = ZOOM_LVL_MIN max = ZOOM_LVL_OUT_4X @@ -4234,7 +4234,7 @@ startup = true var = gui.zoom_max type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = ZOOM_LVL_MAX min = ZOOM_LVL_OUT_8X max = ZOOM_LVL_MAX @@ -4248,7 +4248,7 @@ startup = true var = gui.sprite_zoom_min type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = ZOOM_LVL_MIN min = ZOOM_LVL_MIN max = ZOOM_LVL_OUT_4X @@ -4276,7 +4276,7 @@ strhelp = STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT var = gui.smallmap_land_colour type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 2 @@ -4289,7 +4289,7 @@ post_cb = RedrawSmallmap var = gui.liveries type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 0 max = 2 @@ -4302,7 +4302,7 @@ post_cb = InvalidateCompanyLiveryWindow var = gui.starting_colour type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = COLOUR_END min = 0 max = COLOUR_END @@ -4330,7 +4330,7 @@ cat = SC_BASIC var = gui.scrollwheel_scrolling type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 2 @@ -4384,7 +4384,7 @@ post_cb = ViewportMapShowTunnelModeChanged var = gui.show_vehicle_route type = SLE_UINT32 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 1 @@ -4397,7 +4397,7 @@ post_cb = [](auto) { MarkWholeScreenDirty(); } var = gui.dash_level_of_route_lines type = SLE_UINT32 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_0ISDISABLED +guiflags = SF_GUI_0_IS_SPECIAL def = 0 min = 0 max = 10 @@ -4418,7 +4418,7 @@ post_cb = ViewportMapLandscapeModeChanged var = gui.show_scrolling_viewport_on_map type = SLE_UINT32 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 3 min = 0 max = 3 @@ -4430,7 +4430,7 @@ strval = STR_CONFIG_SETTING_VIEWPORT_MAP_SHOW_SCROLLING_VP_NOTHING var = gui.default_viewport_map_mode type = SLE_UINT32 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 2 @@ -4442,7 +4442,7 @@ strval = STR_CONFIG_SETTING_VIEWPORT_MAP_DEFAULT_MODE_VEGETATION var = gui.action_when_viewport_map_is_dblclicked type = SLE_UINT32 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -4462,7 +4462,7 @@ cat = SC_BASIC var = gui.advanced_vehicle_list type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -4578,7 +4578,7 @@ extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_SPRINGPP, 7) var = gui.date_with_time type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 3 @@ -4726,7 +4726,7 @@ strhelp = STR_CONFIG_DEPARTURE_MERGE_IDENTICAL_HELPTEXT var = gui.departure_conditionals type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 2 @@ -4747,7 +4747,7 @@ cat = SC_BASIC var = gui.loading_indicators type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -4761,7 +4761,7 @@ cat = SC_BASIC var = gui.default_rail_type type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 2 @@ -4774,7 +4774,7 @@ cat = SC_BASIC var = gui.default_road_type type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 3 @@ -4851,7 +4851,7 @@ cat = SC_BASIC var = gui.order_review_system type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 0 max = 2 @@ -4893,7 +4893,7 @@ cat = SC_BASIC var = gui.stop_location type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 0 max = 2 @@ -4937,7 +4937,7 @@ flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC str = STR_CONFIG_SETTING_SAVEGAME_OVERWRITE_CONFIRM strhelp = STR_CONFIG_SETTING_SAVEGAME_OVERWRITE_CONFIRM_HELPTEXT strval = STR_CONFIG_SETTING_SAVEGAME_OVERWRITE_CONFIRM_DISABLED -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN full = _savegame_overwrite_confirm def = 3 min = 0 @@ -4969,7 +4969,7 @@ cat = SC_BASIC var = gui.default_signal_type type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -4983,7 +4983,7 @@ cat = SC_BASIC var = gui.cycle_signal_types type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 0 max = 2 @@ -5243,7 +5243,7 @@ cat = SC_ADVANCED var = gui.linkgraph_colours type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 3 @@ -5257,7 +5257,7 @@ cat = SC_BASIC var = gui.vehicle_names type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -5280,7 +5280,7 @@ cat = SC_BASIC var = gui.station_rating_tooltip_mode type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 2 @@ -5292,7 +5292,7 @@ strval = STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_OFF var = gui.demolish_confirm_mode type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 min = 0 max = 2 @@ -5369,7 +5369,7 @@ cat = SC_EXPERT var = gui.newgrf_default_palette type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 min = 0 max = 1 @@ -5412,7 +5412,7 @@ startup = true var = gui.fast_forward_speed_limit type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_0ISDISABLED | SGF_NO_NETWORK +guiflags = SF_GUI_0_IS_SPECIAL | SF_NO_NETWORK def = 2500 min = 0 max = 50000 @@ -5538,7 +5538,7 @@ cat = SC_BASIC var = news_display.arrival_player type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 max = 2 full = _news_display @@ -5550,7 +5550,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.arrival_other type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 max = 2 full = _news_display @@ -5562,7 +5562,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.accident type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 max = 2 full = _news_display @@ -5574,7 +5574,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.company_info type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 max = 2 full = _news_display @@ -5586,7 +5586,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.open type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 max = 2 full = _news_display @@ -5598,7 +5598,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.close type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 max = 2 full = _news_display @@ -5610,7 +5610,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.economy type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 max = 2 full = _news_display @@ -5622,7 +5622,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.production_player type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 max = 2 full = _news_display @@ -5634,7 +5634,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.production_other type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 max = 2 full = _news_display @@ -5646,7 +5646,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.production_nobody type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 max = 2 full = _news_display @@ -5658,7 +5658,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.advice type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 max = 2 full = _news_display @@ -5670,7 +5670,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.new_vehicles type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 max = 2 full = _news_display @@ -5682,7 +5682,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.acceptance type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 max = 2 full = _news_display @@ -5694,7 +5694,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.subsidies type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 1 max = 2 full = _news_display @@ -5706,7 +5706,7 @@ strval = STR_CONFIG_SETTING_NEWS_MESSAGES_OFF var = news_display.general type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 2 max = 2 full = _news_display @@ -5732,7 +5732,7 @@ strhelp = STR_CONFIG_SETTING_SCENARIO_HOUSE_IGNORE_DATES_HELPTEXT var = scenario.house_ignore_zones type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_MULTISTRING +guiflags = SF_GUI_DROPDOWN def = 0 min = 0 max = 2 @@ -5779,7 +5779,7 @@ cat = SC_EXPERT var = network.sync_freq type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NOT_IN_CONFIG | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 100 min = 0 max = 100 @@ -5789,7 +5789,7 @@ cat = SC_EXPERT var = network.frame_freq type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NOT_IN_CONFIG | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 0 min = 0 max = 100 @@ -5799,7 +5799,7 @@ cat = SC_EXPERT var = network.commands_per_frame type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 2 min = 1 max = 65535 @@ -5809,7 +5809,7 @@ cat = SC_EXPERT var = network.max_commands_in_queue type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 16 min = 1 max = 65535 @@ -5819,7 +5819,7 @@ cat = SC_EXPERT var = network.bytes_per_frame type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 8 min = 1 max = 65535 @@ -5829,7 +5829,7 @@ cat = SC_EXPERT var = network.bytes_per_frame_burst type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 256 min = 1 max = 65535 @@ -5839,7 +5839,7 @@ cat = SC_EXPERT var = network.max_init_time type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 100 min = 0 max = 32000 @@ -5849,7 +5849,7 @@ cat = SC_EXPERT var = network.max_join_time type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 500 min = 0 max = 32000 @@ -5858,7 +5858,7 @@ max = 32000 var = network.max_download_time type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 1000 min = 0 max = 32000 @@ -5867,7 +5867,7 @@ max = 32000 var = network.max_password_time type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 2000 min = 0 max = 32000 @@ -5876,7 +5876,7 @@ max = 32000 var = network.max_lag_time type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 500 min = 0 max = 32000 @@ -5884,14 +5884,14 @@ max = 32000 [SDTC_BOOL] var = network.pause_on_join flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = true [SDTC_VAR] var = network.server_port type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = NETWORK_DEFAULT_PORT min = 0 max = 65535 @@ -5901,7 +5901,7 @@ cat = SC_EXPERT var = network.server_admin_port type = SLE_UINT16 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = NETWORK_ADMIN_PORT min = 0 max = 65535 @@ -5910,14 +5910,14 @@ cat = SC_EXPERT [SDTC_BOOL] var = network.server_admin_chat flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = true cat = SC_EXPERT [SDTC_BOOL] var = network.server_advertise flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = false [SDTC_SSTR] @@ -5935,7 +5935,7 @@ var = network.server_password type = SLE_STR length = NETWORK_PASSWORD_LENGTH flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = nullptr pre_cb = ReplaceAsteriskWithEmptyPassword post_cb = [](auto) { NetworkServerUpdateGameInfo(); } @@ -5946,7 +5946,7 @@ var = network.rcon_password type = SLE_STR length = NETWORK_PASSWORD_LENGTH flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = nullptr pre_cb = ReplaceAsteriskWithEmptyPassword cat = SC_BASIC @@ -5956,7 +5956,7 @@ var = network.admin_password type = SLE_STR length = NETWORK_PASSWORD_LENGTH flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = nullptr cat = SC_BASIC @@ -5965,7 +5965,7 @@ var = network.settings_password type = SLE_STR length = NETWORK_PASSWORD_LENGTH flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = nullptr pre_cb = ReplaceAsteriskWithEmptyPassword cat = SC_EXPERT @@ -5982,7 +5982,7 @@ var = network.server_name type = SLE_STR length = NETWORK_NAME_LENGTH flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = nullptr pre_cb = NetworkValidateServerName post_cb = [](auto) { UpdateClientConfigValues(); } @@ -6000,20 +6000,20 @@ var = network.network_id type = SLE_STR length = NETWORK_SERVER_ID_LENGTH flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = nullptr [SDTC_BOOL] var = network.autoclean_companies flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = false [SDTC_VAR] var = network.autoclean_unprotected type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY +guiflags = SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY def = 12 min = 0 max = 240 @@ -6022,7 +6022,7 @@ max = 240 var = network.autoclean_protected type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY +guiflags = SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY def = 36 min = 0 max = 240 @@ -6031,7 +6031,7 @@ max = 240 var = network.autoclean_novehicles type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY +guiflags = SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY def = 0 min = 0 max = 240 @@ -6040,7 +6040,7 @@ max = 240 var = network.max_companies type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 15 min = 1 max = MAX_COMPANIES @@ -6051,7 +6051,7 @@ cat = SC_BASIC var = network.max_clients type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 25 min = 2 max = MAX_CLIENTS @@ -6062,7 +6062,7 @@ cat = SC_BASIC var = network.max_spectators type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 15 min = 0 max = MAX_CLIENTS @@ -6073,7 +6073,7 @@ cat = SC_BASIC var = network.restart_game_year type = SLE_INT32 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_0ISDISABLED | SGF_NETWORK_ONLY +guiflags = SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY def = 0 min = MIN_YEAR max = MAX_YEAR @@ -6083,7 +6083,7 @@ interval = 1 var = network.min_active_clients type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = 0 min = 0 max = MAX_CLIENTS @@ -6091,7 +6091,7 @@ max = MAX_CLIENTS [SDTC_BOOL] var = network.reload_cfg flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NETWORK_ONLY +guiflags = SF_NETWORK_ONLY def = false cat = SC_EXPERT @@ -6136,7 +6136,7 @@ patxname = ""vehicle_repair_cost.vehicle.repair_cost"" var = debug.chicken_bits type = SLE_UINT32 flags = SLF_NOT_IN_CONFIG -guiflags = SGF_NO_NEWGAME +guiflags = SF_NO_NEWGAME def = 0 min = 0 max = 0xFFFFFFFF diff --git a/src/table/settings/win32_settings.ini b/src/table/settings/win32_settings.ini index 14f933d297..3c2fe5bb15 100644 --- a/src/table/settings/win32_settings.ini +++ b/src/table/settings/win32_settings.ini @@ -25,7 +25,7 @@ SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds stor [defaults] flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NONE +guiflags = SF_NONE interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT diff --git a/src/table/settings/window_settings.ini b/src/table/settings/window_settings.ini index 0dd94153db..5993e8d7b6 100644 --- a/src/table/settings/window_settings.ini +++ b/src/table/settings/window_settings.ini @@ -21,7 +21,7 @@ SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for WindowDesc.$var ex [defaults] flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC -guiflags = SGF_NONE +guiflags = SF_NONE interval = 0 str = STR_NULL strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT diff --git a/src/tgp.cpp b/src/tgp.cpp index d5213d1faa..d3717fb29b 100644 --- a/src/tgp.cpp +++ b/src/tgp.cpp @@ -659,9 +659,7 @@ static void HeightMapCurves(uint level) for (uint t = 0; t < lengthof(curve_maps); t++) { if (!HasBit(corner_bits, t)) continue; -#ifdef WITH_ASSERT - bool found = false; -#endif + [[maybe_unused]] bool found = false; const control_point_t *cm = curve_maps[t].list; for (uint i = 0; i < curve_maps[t].length - 1; i++) { const control_point_t &p1 = cm[i]; diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index f30766fbda..be8227cf24 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -114,13 +114,17 @@ Town::~Town() * and remove from list of sorted towns */ DeleteWindowById(WC_TOWN_VIEW, this->index); - /* Check no industry is related to us. */ #ifdef WITH_ASSERT - for (const Industry *i : Industry::Iterate()) assert(i->town != this); + /* Check no industry is related to us. */ + for (const Industry *i : Industry::Iterate()) { + assert(i->town != this); + } /* ... and no object is related to us. */ - for (const Object *o : Object::Iterate()) assert(o->town != this); -#endif + for (const Object *o : Object::Iterate()) { + assert(o->town != this); + } +#endif /* WITH_ASSERT */ /* Check no tile is related to us. */ for (TileIndex tile = 0; tile < MapSize(); ++tile) { @@ -2420,8 +2424,7 @@ static Town *CreateRandomTown(uint attempts, uint32 townnameparts, TownSize size if (t->cache.population > 0) return t; Backup cur_company(_current_company, OWNER_TOWN, FILE_LINE); - CommandCost rc = DoCommand(t->xy, t->index, 0, DC_EXEC, CMD_DELETE_TOWN); - (void)rc; // assert only + [[maybe_unused]] CommandCost rc = DoCommand(t->xy, t->index, 0, DC_EXEC, CMD_DELETE_TOWN); cur_company.Restore(); assert(rc.Succeeded()); @@ -2542,8 +2545,7 @@ HouseZonesBits GetTownRadiusGroup(const Town *t, TileIndex tile) */ static inline void ClearMakeHouseTile(TileIndex tile, Town *t, byte counter, byte stage, HouseID type, byte random_bits) { - CommandCost cc = DoCommand(tile, 0, 0, DC_EXEC | DC_AUTO | DC_NO_WATER | DC_TOWN, CMD_LANDSCAPE_CLEAR); - (void)cc; // assert only + [[maybe_unused]] CommandCost cc = DoCommand(tile, 0, 0, DC_EXEC | DC_AUTO | DC_NO_WATER | DC_TOWN, CMD_LANDSCAPE_CLEAR); assert(cc.Succeeded()); IncreaseBuildingCount(t, type); diff --git a/src/townname.cpp b/src/townname.cpp index 519391f14e..bce894bfcf 100644 --- a/src/townname.cpp +++ b/src/townname.cpp @@ -600,9 +600,7 @@ static char *MakeCzechTownName(char *buf, const char *last, uint32 seed) return strecpy(buf, _name_czech_real[SeedModChance(4, lengthof(_name_czech_real), seed)], last); } -#ifdef WITH_ASSERT - const char *orig = buf; -#endif + [[maybe_unused]] const char *orig = buf; /* Probability of prefixes/suffixes * 0..11 prefix, 12..13 prefix+suffix, 14..17 suffix, 18..31 nothing */ diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index c4dee50b26..4eafb00084 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -2903,8 +2903,7 @@ static void ChangeTileOwner_TunnelBridge(TileIndex tile, Owner old_owner, Owner if (tt == TRANSPORT_RAIL) { /* Since all of our vehicles have been removed, it is safe to remove the rail * bridge / tunnel. */ - CommandCost ret = DoCommand(tile, 0, 0, DC_EXEC | DC_BANKRUPT, CMD_LANDSCAPE_CLEAR); - (void)ret; // assert only + [[maybe_unused]] CommandCost ret = DoCommand(tile, 0, 0, DC_EXEC | DC_BANKRUPT, CMD_LANDSCAPE_CLEAR); assert(ret.Succeeded()); } else { /* In any other case, we can safely reassign the ownership to OWNER_NONE. */ diff --git a/src/vehiclelist.cpp b/src/vehiclelist.cpp index 2a4bd02d47..1c69c2b562 100644 --- a/src/vehiclelist.cpp +++ b/src/vehiclelist.cpp @@ -54,8 +54,7 @@ bool VehicleListIdentifier::UnpackIfValid(uint32 data) /* static */ VehicleListIdentifier VehicleListIdentifier::UnPack(uint32 data) { VehicleListIdentifier result; - bool ret = result.UnpackIfValid(data); - (void)ret; // assert only + [[maybe_unused]] bool ret = result.UnpackIfValid(data); assert(ret); return result; } diff --git a/src/widget.cpp b/src/widget.cpp index d0e85ddf29..087bdcc47a 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -1306,9 +1306,7 @@ void NWidgetHorizontal::SetupSmallestSize(Window *w, bool init_array) this->smallest_y = std::max(this->smallest_y, child_wid->smallest_y + child_wid->padding_top + child_wid->padding_bottom); } /* 1b. Make the container higher if needed to accommodate all children nicely. */ -#ifdef WITH_ASSERT - uint max_smallest = this->smallest_y + 3 * max_vert_fill; // Upper limit to computing smallest height. -#endif + [[maybe_unused]] uint max_smallest = this->smallest_y + 3 * max_vert_fill; // Upper limit to computing smallest height. uint cur_height = this->smallest_y; for (;;) { for (NWidgetBase *child_wid = this->head; child_wid != nullptr; child_wid = child_wid->next) { @@ -1473,9 +1471,7 @@ void NWidgetVertical::SetupSmallestSize(Window *w, bool init_array) this->smallest_x = std::max(this->smallest_x, child_wid->smallest_x + child_wid->padding_left + child_wid->padding_right); } /* 1b. Make the container wider if needed to accommodate all children nicely. */ -#ifdef WITH_ASSERT - uint max_smallest = this->smallest_x + 3 * max_hor_fill; // Upper limit to computing smallest height. -#endif + [[maybe_unused]] uint max_smallest = this->smallest_x + 3 * max_hor_fill; // Upper limit to computing smallest height. uint cur_width = this->smallest_x; for (;;) { for (NWidgetBase *child_wid = this->head; child_wid != nullptr; child_wid = child_wid->next) {