# 3.1.2 * Feature #216: CI: Macos-14 * Bug #380: rand_map_pos_characteristic() header claiming it can return FALSE * Feature #433: Unhardcode wld.map from city_tile_cache_update() * Bug #443: init_nls() changes "grouping" to no-grouping without freeing it * Bug #444: c23 & constant operand warning about LOCALEDIR * Bug #449: assertion 'research->researching_saved != research->researching' failed * Bug #450: Meson: Duplicate 'localtime_r' check * Feature #452: Appimage: Server path * Feature #457: Ruledit: Unit class editing * Bug #460: action_sub_target_id_for_action() using uninitialized extra in case of pillage * Feature #461: Unhardcode wld.map from is_action_enabled_unit_on_self() * Bug #463: Badly set invalid resource extras on FoW maps on savegame load * Bug #467: Misspellings: "reenabled" * Feature #471: build_appimages.sh: Build gtk4-client * Bug #472: City workers inconsistent after vision loss * Feature #479: Ruledit: Helptext display for units * Feature #480: Unhardcode wld.map from is_friendly_city_near() * Bug #481: dependencies/SDL2_gfx compiler warnings * Feature #487: Ruledit: Make helptext editable * Bug #498: Misspellings: "pathes" * Feature #502: gtk: Tooltips for main-menu buttons * Bug #503: Misspellings: "erronously" * Feature #513: Unhardcode wld.map from action_prob_vs_city() * Feature #519: Ruledit: Make sure there's editable entry in helptexts * Bug #521: Alien: Low-Level orbit helptext typo * Bug #524: check_units_single_tile() bad log message * Bug #525: CoastStrict units not handled correctly on an Ocean city removal * Feature #529: Ruledit: Helptext display for terrains * Bug #530: savegame: history.turn loss on load -> save cycle * Feature #537: Unhardcode wld.map from city_can_be_built_here() * Bug #538: Misspellings: "futher" * Bug #545: savegame: last_turn_change_time rounded to zero * Feature #547: AppImage: Put client type (gtk4) to AppImage name * Feature #549: Unhardcode wld.map from action_prob_vs_unit() * Feature #550: Ruledit: Clear helptext of newly initialized objects * Feature #551: Manual: Put terrain name consistently below the image * Feature #553: dai_manage_unit(): Use utype advisor cache instead of checking UTYF_WORKERS * Bug #555: Meson: Duplicate bzlib.h check * Bug #556: Misspellings: "government" * Feature #559: Qt: Tooltips for main-menu buttons * Feature #560: Autotools build: Find Qt6 moc from /usr/libexec/qt6/moc * Feature #561: Ruledit: Helptext display for extras * Feature #562: CI :Don't install SDL2_gfx for mac-meson * Feature #568: Unhardcode wld.map from unit_can_airlift_to() * Feature #575: build_appimages.sh: Functionalize client AppImage build * Bug #578: TRANS comment: "choosen" * Feature #579: Unhardcode wld.map from action_prob_vs_stack() * Bug #584: Oceanic border sources incorrectly claim nearby bays and lakes * Bug #586: Dying unit does not trigger auto-turn-done * Feature #587: Drop double space from Coinage helptext * Bug #590: Borders aren't checked when reclaiming land from ocean * Bug #592: government.rulesets comment typo "specifing" * Feature #593: build_appimages.sh: Build sdl2-client AppImage * Feature #594: Unhardcode wld.map from can_city_build_unit_direct() * Bug #596: Meson: packhand_gen.c depends on version_gen.h, but not set up so * Bug #597: Meson: libfreeciv build depends on gitrev header, but not set up so * Feature #618: Ruledit: Values editing for governments * Feature #622: Unhardcode wld.map from action_prob_vs_tile() * Feature #623: build_appimages.sh: Build qt-client AppImage * Bug #626: Misspellings: "contructor" * Feature #637: Manual: Impossible terrain activity times as "-" * Feature #638: stdlib_h.m4 serial 78 * Feature #645: Drop double spaces from civ1/civ2 nations.rulesets * Feature #646: Unhardcode wld.map from can_city_build_unit_now() * Bug #649: Meson: Duplicate unistd.h check * Bug #655: adjc_iterate macros use global dirlists rather than that of the given map * Feature #658: stdsounds: Add w_generic sound * Bug #660: S3_1 Alio broken * Bug #661: city_freeze_workers_queue() not setting needs_arrange for cities already in queue * Feature #663: Set directions to tex map * Bug #667: Misspellings: "preceeded" * Feature #668: build_appimages.sh: Build gtk3.22-client AppImage * Feature #671: iconv.m4 serial 28 * Feature #677: Unhardcode wld.map unit_being_aggressive() * Feature #681: gnulib-common.m4 serial 94 * Bug #682: Meson: fc_server library not depending on verhdr, though should * Feature #684: Unhardcode wld.map from action_prob_vs_extras() * Feature #691: Meson: Static assert configure checks * Feature #695: CI: Use ubuntu-24.04 github runners * Feature #699: Unhardcode wld.map from can_city_build_unit_later() * Bug #704: installer_cross: DEPRECATION: "pkgconfig" entry is deprecated and should be replaced by "pkg-config" * Bug #705: Meson: Metainfo files not regenerated after fc_version change * Feature #707: map_init_topology() take a map parameter * Feature #708: Meson: FREECIV_STATIC_STRLEN * Feature #712: stdsounds: Tech gaining sound * Bug #717: config.rpath update * Feature #724: dai_assess_danger_player() parameter order * Bug #727: game.ruleset: Confusing tech_upkeep_free documentation * Bug #728: "Incite a Revolt" only reopens the action selection dialog * Bug #729: S3_1 rscompat_postprocess stringop-overflow warning * Bug #730: S3_1 threaded AI dai_assess_danger_player() call has parameters in wrong order * Bug #733: Qt: Avoid deprecated QMouseEvent::localPos() * Bug #735: S3_1 Qt: Avoid deprecated QMouseEvent::globalPos() * Bug #736: S3_1 Qt: Use QVariant::typeId() instead of ::type() in Qt6-mode * Bug #737: S3_1 Qt: Deprecated QFontDatabase constructor * Bug #738: S3_1 Qt: Deprecated QMouseEvent::globalY() * Feature #746: doc codespell