3.1.2 open 36% 47 issues (17 closed — 30 open) Related issues Feature #216: CI: Macos-14 Actions Feature #433: Unhardcode wld.map from city_tile_cache_update() Actions Feature #452: Appimage: Server path Actions Feature #457: Ruledit: Unit class editing Actions Feature #461: Unhardcode wld.map from is_action_enabled_unit_on_self() Actions Feature #471: build_appimages.sh: Build gtk4-client Actions Feature #479: Ruledit: Helptext display for units Actions Feature #480: Unhardcode wld.map from is_friendly_city_near() Actions Feature #487: Ruledit: Make helptext editable Actions Feature #502: gtk: Tooltips for main-menu buttons Actions Feature #513: Unhardcode wld.map from action_prob_vs_city() Actions Feature #519: Ruledit: Make sure there's editable entry in helptexts Actions Feature #529: Ruledit: Helptext display for terrains Actions Feature #537: Unhardcode wld.map from city_can_be_built_here() Actions Feature #547: AppImage: Put client type (gtk4) to AppImage name Actions Feature #549: Unhardcode wld.map from action_prob_vs_unit() Actions Feature #550: Ruledit: Clear helptext of newly initialized objects Actions Feature #551: Manual: Put terrain name consistently below the image Actions Feature #553: dai_manage_unit(): Use utype advisor cache instead of checking UTYF_WORKERS Actions Feature #559: Qt: Tooltips for main-menu buttons Actions Feature #560: Autotools build: Find Qt6 moc from /usr/libexec/qt6/moc Actions Feature #561: Ruledit: Helptext display for extras Actions Feature #562: CI :Don't install SDL2_gfx for mac-meson Actions Feature #568: Unhardcode wld.map from unit_can_airlift_to() Actions
3.2.0 open 89% 138 issues (124 closed — 14 open) Related issues Feature #17: sdl3: SDL_FreeSurface() -> SDL_DestroySurface() Actions Feature #19: Msys2-next after 231008 Actions Feature #26: sdl3: SDL_FillRect() -> SDL_FillSurfaceRect() Actions Feature #31: sdl3: SDL_SetClipRect() -> SDL_SetSurfaceClipRect() Actions Feature #35: sdl3: SDL_FreeCursor() -> SDL_DestroyCursor() Actions Feature #41: sdl3: SDL_GetWindowDisplayMode() -> SDL_GetWindowFullscreenMode() Actions Feature #48: sdl3: SDL_GetColorKey() -> SDL_GetSurfaceColorKey() Actions Feature #51: Granularity: Demonstrate aircraft relocate Actions Feature #54: sdl3: SDL_RenderCopy() -> SDL_RenderTexture() Actions Feature #57: Granularity: Demonstrate Bombard mission Actions Feature #60: sdl3: SDL_SetColorKey() -> SDL_SetSurfaceColorKey() Actions Feature #63: Supplied actions.rulesets: Placement of equal signs Actions Feature #67: sdl3: Replace SDL_GetDisplayMode() call Actions Feature #68: sdl3: Drop "SDL_syswm.h" include Actions Feature #76: Meson: Enable 'implicit-fallthrough" warnings Actions Feature #82: SDL3_gfx Actions Feature #83: CI: Update emscripten to 3.1.51 Actions Feature #84: S3_2 version number bump for year 2024 Actions Feature #88: sdl3: Use SDL3_gfx Actions Feature #91: Msys2/Meson/Qt6: Enable svgflags Actions Feature #97: action_get_act_time() -> actres_get_act_time() Actions Feature #102: SDL3_gfx: SDL_FreeSurface() -> SDL_DestroySurface() Actions Feature #112: SDL3_gfx: Replace calls to deprecated SDL_CreateRGBSurface() Actions Feature #115: action_(min|max)_range_default() to actres.c Actions Feature #117: emsbuild.sh: Build sdl2-client Actions Feature #124: Granularity: Add Map and Seamap clause types Actions Feature #125: Granularity: Adjust and extend tech tree Actions Feature #126: installer_cross/Meson: Enable svgflags Actions Feature #131: Granularity: Add emissary unit Actions Feature #135: Granularity: Peace clause Actions Feature #136: Granularity: Granary Actions Feature #137: Granularity: Add military techs Actions Feature #144: action_target_kind_default() -> actres_target_kind_default() Actions Feature #145: Granularity: Add ceasefire clause type Actions Feature #146: Granularity: Rituals morale boost Actions Feature #148: Granularity: Healing rules Actions Feature #153: Extras freeciv-manual page Actions Feature #158: AI: Reduce space part want on wonder city Actions Feature #162: setup-msys2-2.21.1 Actions Feature #166: Granularity: Fortify action Actions Feature #167: Granularity: Extending city radius Actions Feature #170: Granularity: Quarry Actions Feature #189: Granularity: Nets Actions Feature #191: Granularity: Enable city conquest Actions Feature #193: Codeql github actions Actions Feature #199: Advisor data "paratroopers" to "teleporters" Actions Feature #204: setup-msys2-2.22.0 Actions Feature #206: Fix granularity gettext errors Actions Feature #211: Granularity: Archers Actions Feature #212: sdl2/3: Rename FONTO_SLIGHTLY_BIGGER as FONTO_DEFAULT_PLUS Actions Feature #213: Granularity: Mercenaries Actions Feature #222: action_sub_target_kind_default() -> actres_sub_target_kind_default Actions Feature #232: AI: Increase overall want for space parts Actions Feature #241: Unhardcode wld.map from actres_possible() Actions Feature #243: Granularity: Central Rock Pile Actions Feature #253: action_result_legal_target_kind() -> actres_legal_target_kind() Actions Feature #258: Granularity: Library Actions Feature #263: Granularity: Stone Circle Small Wonder Actions Feature #266: Granularity: Catapult Actions Feature #270: Granularity: Trireme Actions Feature #278: Granularity: Early corruption rules Actions Feature #285: Msys2-next after 231202 Actions Feature #287: Granularity: Literature Actions Feature #295: Granularity: Central Rock Pile to increase food production Actions Feature #300: Granularity: Temple Actions Feature #301: Granularity: Plow Actions Feature #311: Granularity: Farming Time policy Actions Feature #313: Granularity: Sailing Actions Feature #329: Granularity: Iron Actions Feature #332: CI: Update codeql actions Actions Feature #336: Drop webperimental.serv Actions Feature #338: Granularity: Mine Actions Feature #341: README.sound: freeciv-gtk4 instead of freeciv-gtk3.22 Actions Feature #354: Granularity: Medicine Actions Feature #356: Allow arrays with more than 254 elements in delta protocol Actions Feature #360: Granularity: Science tech Actions Feature #363: ....unit_on_units() -> ...unit_on_stack() Actions Feature #373: Granularity: Currency Actions Feature #382: Granularity: Master Explorer Actions Feature #389: Granularity: Culture tech Actions Feature #394: CI: Update emscripten to version 3.1.56 Actions Feature #395: Granularity: Monarchy Actions Feature #413: Granularity: Fort Actions Feature #428: gtk: Long form of the wonder report, when message_chat_location MERGED Actions Feature #429: Document sdl3-client Actions Feature #440: emscripten/sdl: Let browser execute during gui_event_loop() Actions Feature #441: Granularity: Legion Actions Feature #448: Ruledit: Enable tech add/remove on regular builds Actions Feature #454: Granularity: startunits Actions Feature #458: generate_packets.py: Support changing dataio type of a field through capabilities Actions Feature #475: Check that c23 nullptr can be used as sentinel Actions Feature #476: Granularity: Engineering Actions Feature #478: Tolua generated code without trailing spaces Actions Feature #486: Msys2: Install Qt6Svg.dll for Qt6-client Actions Feature #499: dos2unix nation rulesets Actions Feature #508: Granularity: Enable multiresearch Actions Feature #509: README.packaging & co: Qt6Svg requirement for svgflags features Actions Feature #516: Amplio nets Actions Feature #517: civ2civ3: Allow non-workers to build bases Actions Feature #520: Granularity: Bounty Hunter Actions Feature #543: Granularity: Offensive Strategies policy Actions Feature #544: Isophex nets Actions Feature #552: helptext_unitclass() Actions Feature #565: Granularity: Gather Wood Actions Feature #567: Isotrident Nets Actions Feature #572: Manual: Unit Classes page Actions
3.2.0-d3f open 75% 52 issues (39 closed — 13 open) Related issues Feature #13: Second alt terrain gfx tag Actions Feature #23: Make alt terrain gfx tags optional Actions Feature #55: Universal converter functions for Lua API Actions Feature #65: Second alt sound tag for buildings Actions Feature #94: Unit granularity Unit_Vision_Radius_Sq Actions Feature #105: New policies to Sandbox for veteran-builds and production Actions Feature #108: ui_name_road -> ui_name_build_road Actions Feature #161: Add names to extra Trident and Amplio2 units Actions Feature #164: Cimpletoon: Add Volcano Actions Feature #165: Hut entering teleporting actions Actions Feature #169: Achievement type "Rich" Actions Feature #174: Hut frightening teleporting actions Actions Feature #224: Nets for amplio2 Actions Feature #237: Alaska nation Actions Feature #254: Dagestan nation Actions Feature #255: Highways to trident and hex2t tilesets Actions Feature #257: Donetsk nation Actions Feature #259: Trident Nets Actions Feature #274: Luhansk nation Actions Feature #279: Toki Pona nation Actions Feature #289: Qt: svgflags client option Actions Feature #293: Northern Ireland nation Actions Feature #294: Louisianian nation Actions Feature #310: Building_Upkeep_Reduction effect Actions Feature #355: Increase maximum number of techs to 400 Actions Feature #375: Max unit types to 300 Actions Feature #398: Scenarios to S3_2 format Actions Feature #399: Update british-isles.sav to 3.2 format Actions Feature #409: Update earth-large.sav to 3.2 format Actions Feature #411: Increase max number of multipliers Actions Feature #414: Update earth-small.sav to 3.2 format Actions Feature #415: Update europe.sav to 3.2 format Actions Feature #416: Update europe_1900_WWI.sav to 3.2 format Actions Feature #417: Update france.sav to 3.2 format Actions Feature #418: Update hagworld.sav to 3.2 format Actions Feature #419: Update iberian-peninsula.sav to 3.2 format Actions Feature #420: Update italy.sav to 3.2 format Actions Feature #421: Update japan.sav to 3.2 format Actions Feature #422: Update north_america.sav to 3.2 format Actions Feature #423: Update tileset-demo.sav to 3.2 format Actions Feature #424: Update tutorial.sav to 3.2 format Actions Feature #474: Make "Build Base" Settlers requirement non-mandatory Actions Feature #482: Hexemplio Nets Actions Feature #523: Bombard 4 Actions Feature #534: sdl3: Theme Actions Feature #546: Server lua to be able to tell client to show image Actions Feature #554: Detect infinite recursion when evaluating requirements Actions Feature #557: Lua: Method to get player's primary capital Actions
3.2.0-npf open 100% 3 issues (3 closed — 0 open) Related issues Feature #473: Network protocol: 8bit and 16bit delta array lengths Actions Feature #488: packet_investigate_started: Drop unused unit_id Actions
3.3.0 open 88% 124 issues (110 closed — 14 open) Related issues Feature #12: Refresh asturias.svg Actions Feature #16: Refresh moravia.svg Actions Feature #21: Refresh rvn.svg Actions Feature #24: Qt-client headers with nullptr Actions Feature #25: Refresh visigoth.svg Actions Feature #29: Refresh rusyn.svg Actions Feature #30: HACKING: "autosettler" -> "autoworker" Actions Feature #33: Ruledit: NULL -> nullptr Actions Feature #34: Refresh khoisan.svg Actions Feature #38: Refresh lycian.svg Actions Feature #39: server/ruleset Actions Feature #40: Comments: "Autosettler" -> "Autoworker" Actions Feature #43: Refresh barbarian.svg Actions Feature #45: Improve height_map.[ch] coding style Actions Feature #46: gtk4x modpack installer: NULL -> nullptr Actions Feature #49: Refresh west_papua.svg Actions Feature #53: Refresh luik.svg Actions Feature #59: Drop convert_png_legacy Actions Feature #62: Savegame loading: ACTION_NONE -> activity_default_action() Actions Feature #70: Proper activity_default_action() Actions Feature #75: Pass altitude info to client Actions Feature #79: Improve savemain.c coding style Actions Feature #106: units.rulesets: Remove flagless note Actions Feature #110: wld.map.*dirs to macros Actions Feature #129: action_enums.def Actions Feature #130: *_enums.def: Remove note about need to regenerate the header Actions Feature #141: Add Robbery disaster to supplied rulesets Actions Feature #194: MAP_NATIVE_WIDTH/MAP_NATIVE_HEIGHT usage Actions Feature #195: aiair.[ch] -> daiair.[ch] Actions Feature #201: Granularity: Use "either_reqs" for clauses Actions Feature #205: Granularity to distribution & installation Actions Feature #214: support.c: NULL -> nullptr Actions Feature #215: Qt: Clear trailing spaces from Qt-client code Actions Feature #225: astring.c: NULL -> nullptr Actions Feature #226: Clear trailing spaces from ruledit code Actions Feature #229: Granularity: Nation size limits Actions Feature #235: Autotools: Support building gtk4x fcmp Actions Feature #238: Clear trailing spaces from fcmp code Actions Feature #246: log.c: NULL -> nullptr Actions Feature #264: connecthand.[ch] coding style improvement Actions Feature #268: installer_cross: Drop autotools builds support Actions Feature #269: fc_cmdline.c: NULL -> nullptr Actions Feature #275: netfile.c: NULL -> nullptr Actions Feature #276: README: Remove double spaces Actions Feature #283: fc_cmdhelp.c: NULL -> nullptr Actions Feature #302: fciconv.c: NULL -> nullptr Actions Feature #303: README.AI: Remove double spaces Actions Feature #306: Use world_object.h MAP_..._DIRS... macros everywhere where applicable Actions Feature #308: Drop unused caravan_evaluate() Actions Feature #309: Generate effect_type enum with generate_enums.py Actions Feature #314: ioz.[ch]: NULL -> nullptr Actions Feature #315: HACKING: Remove double spaces Actions Feature #318: agents: Clear trailing spaces Actions Feature #331: mem.[ch]: NULL -> nullptr Actions Feature #333: aicore: Clear trailing spaces Actions Feature #334: MAP_ITERATE_OUTWARDS_INDICES Actions Feature #348: deprecations.c: NULL -> nullptr Actions Feature #351: README.graphics: Remove double spaces Actions Feature #359: networking: Clear trailing spaces Actions Feature #364: README.nations: Remove double spaces Actions Feature #366: iterator.[ch]: NULL -> nullptr Actions Feature #379: mapgen.c coding style improvement Actions Feature #381: BUGS: Remove double spaces Actions Feature #384: Meson: Theme for gtk4x-client Actions Feature #385: server/ruleset: Clear trailing spaces Actions Feature #387: genlist.[ch]: NULL -> nullptr Actions Feature #388: Nonnull parameters in genlist.c Actions Feature #402: README.rulesets: Remove double spaces Actions Feature #406: Improve inputfile.[ch] coding style Actions Feature #412: string_vector.c: NULL -> nullptr Actions Feature #436: HOWTOPLAY: Remove double spaces Actions Feature #437: generator: Clear trailing spaces Actions Feature #445: generate_packets.py: forbid field names `fields` and `pid` Actions Feature #446: packets: complex field support Actions Feature #447: fcintl.c coding style Actions Feature #451: shared.c: NULL -> nullptr Actions Feature #453: Drop unused caravan_optimize_...() Actions Feature #455: Nonnull parameters in shared.c Actions Feature #464: HACKING: Remove double spaces Actions Feature #466: dataio: arraylen type Actions Feature #468: Nonnull parameters in timing.c Actions Feature #469: timing.c: NULL -> nullptr Actions Feature #470: protocol: create a strvec field type Actions Feature #477: modpack.c: NULL -> nullptr Actions Feature #484: generate_packets.py: array-diff for strvec Actions Feature #485: maybe_become_veteran_real(): Rename 'settler' parameter as 'worker' Actions Feature #494: registry_ini.[ch]: NULL -> nullptr Actions Feature #496: json protocol: object creation in packet code Actions Feature #497: INSTALL: Remove double spaces Actions Feature #500: generate_packets.py coding style Actions Feature #501: packets: rename "cancel" Actions Feature #504: networking: Clear trailing spaces Actions Feature #510: delta protocol: transmit fields bitvector after key fields Actions Feature #514: registry.[ch] Coding Style improvements Actions Feature #515: Remove double spaces from ruleset file headers Actions Feature #518: Remove x-prefixing from autogen.sh Actions Feature #527: generate_packets.py: always pass packet names separately from Locations Actions Feature #528: generate_packets.py: make Location class handle inserting packet-> correctly Actions Feature #531: Nonnull parameters in capability.c Actions Feature #532: enum impr_flag_id by generate_enums.py Actions Feature #533: generate_packets.py: make SizeInfo use Location Actions Feature #535: specvec.h: NULL -> nullptr Actions Feature #539: generate_packets.py: struct specvec types Actions Feature #540: network protocol: requirement vectors Actions Feature #542: Remove double spaces from standard ruleset comments Actions Feature #548: advisors: Clear trailing spaces Actions Feature #564: generate_packets.py: factor out common array/vector code Actions
3.3.0-d3f open 79% 29 issues (23 closed — 6 open) Related issues Feature #69: Store altitude map Actions Feature #77: Store activity triggering actions to savegame Actions Feature #95: Let activity triggering action to satisfy "Action" requirement Actions Feature #98: Disaster type "Robbery" Actions Feature #107: Fake Generalize Build Road/Base/Irrigation/Mine Actions Feature #111: Altitude requirement Actions Feature #116: Unbuildable buildings Actions Feature #134: Fake Generalize terrain transformative actions Actions Feature #151: MinCities requirement type Actions Feature #152: Clause "either_reqs" Actions Feature #168: Building flag "Indestructible" Actions Feature #210: Fake Generalize Fortify action Actions Feature #219: Track world peace turn Actions Feature #230: Fake Generalize "Clean" action Actions Feature #277: Tech_Leakage effect Actions Feature #299: Ruleset controlled WORLD_PEACE_TURNS Actions Feature #347: UnitType requirements on Tile - Adjacent ranges Actions Feature #353: Culture_Pct effect Actions Feature #369: UnitFlag requirements on Tile - Adjacent ranges Actions Feature #391: CanEscape as internal action Actions Feature #401: UnitClassFlag requirements on Tile - Adjacent ranges Actions Feature #426: "client_launch" audio tag Actions Feature #456: Bump .modpack capstr for 3.3 Actions Feature #505: .modpacks for tilesets Actions Feature #512: Local range Tech requirement Actions Feature #541: Allow requirement vectors of any size in rulesets Actions Feature #563: Improvement flag "Infra" Actions Feature #573: Local range TechFlag requirement Actions