# 3.3.0 * Feature #12: Refresh asturias.svg * Feature #16: Refresh moravia.svg * Feature #21: Refresh rvn.svg * Feature #24: Qt-client headers with nullptr * Feature #25: Refresh visigoth.svg * Feature #29: Refresh rusyn.svg * Feature #30: HACKING: "autosettler" -> "autoworker" * Feature #33: Ruledit: NULL -> nullptr * Feature #34: Refresh khoisan.svg * Feature #38: Refresh lycian.svg * Feature #39: server/ruleset * Feature #40: Comments: "Autosettler" -> "Autoworker" * Feature #43: Refresh barbarian.svg * Feature #45: Improve height_map.[ch] coding style * Feature #46: gtk4x modpack installer: NULL -> nullptr * Feature #49: Refresh west_papua.svg * Feature #53: Refresh luik.svg * Feature #59: Drop convert_png_legacy * Feature #62: Savegame loading: ACTION_NONE -> activity_default_action() * Feature #70: Proper activity_default_action() * Feature #75: Pass altitude info to client * Bug #78: ruleload.h multiple inclusion guard misnamed * Feature #79: Improve savemain.c coding style * Bug #104: README.actions: Outdated references to "Settlers" flag * Feature #106: units.rulesets: Remove flagless note * Feature #110: wld.map.*dirs to macros * Bug #113: Autotools build with tinycthreads (e.g. Windows builds) fail * Feature #129: action_enums.def * Feature #130: *_enums.def: Remove note about need to regenerate the header * Feature #141: Add Robbery disaster to supplied rulesets * Feature #194: MAP_NATIVE_WIDTH/MAP_NATIVE_HEIGHT usage * Feature #195: aiair.[ch] -> daiair.[ch] * Feature #201: Granularity: Use "either_reqs" for clauses * Feature #205: Granularity to distribution & installation * Feature #214: support.c: NULL -> nullptr * Feature #215: Qt: Clear trailing spaces from Qt-client code * Feature #225: astring.c: NULL -> nullptr * Feature #226: Clear trailing spaces from ruledit code * Feature #229: Granularity: Nation size limits * Bug #234: fill_sprite_array() nullptr unit access * Feature #235: Autotools: Support building gtk4x fcmp * Feature #238: Clear trailing spaces from fcmp code * Bug #242: assertion 'info->either_reqs.size == p->either_reqs_count' failed. * Feature #246: log.c: NULL -> nullptr * Bug #251: granularity.modpack not installed * Bug #262: potfiles: Consider *.def * Feature #264: connecthand.[ch] coding style improvement * Feature #268: installer_cross: Drop autotools builds support * Feature #269: fc_cmdline.c: NULL -> nullptr * Feature #275: netfile.c: NULL -> nullptr * Feature #276: README: Remove double spaces * Feature #283: fc_cmdhelp.c: NULL -> nullptr * Feature #302: fciconv.c: NULL -> nullptr * Feature #303: README.AI: Remove double spaces * Feature #306: Use world_object.h MAP_..._DIRS... macros everywhere where applicable * Feature #308: Drop unused caravan_evaluate() * Feature #309: Generate effect_type enum with generate_enums.py * Feature #314: ioz.[ch]: NULL -> nullptr * Feature #315: HACKING: Remove double spaces * Feature #318: agents: Clear trailing spaces * Feature #331: mem.[ch]: NULL -> nullptr * Feature #333: aicore: Clear trailing spaces * Feature #334: MAP_ITERATE_OUTWARDS_INDICES * Bug #343: unit_activity_targeted_internal() hardcoding ACTION_PILLAGE * Bug #344: can_unit_do_activity_targeted_at() hardcoding actions, breaking fake generalization * Feature #348: deprecations.c: NULL -> nullptr * Feature #351: README.graphics: Remove double spaces * Feature #359: networking: Clear trailing spaces * Feature #364: README.nations: Remove double spaces * Feature #366: iterator.[ch]: NULL -> nullptr * Feature #379: mapgen.c coding style improvement * Feature #381: BUGS: Remove double spaces * Feature #384: Meson: Theme for gtk4x-client * Feature #385: server/ruleset: Clear trailing spaces * Feature #387: genlist.[ch]: NULL -> nullptr * Feature #388: Nonnull parameters in genlist.c * Bug #392: No Gain Veterancy enabler added by rscompat * Feature #402: README.rulesets: Remove double spaces * Feature #406: Improve inputfile.[ch] coding style * Feature #412: string_vector.c: NULL -> nullptr * Bug #432: Granularity in wrong ruleset test list * Feature #436: HOWTOPLAY: Remove double spaces * Feature #437: generator: Clear trailing spaces * Feature #445: generate_packets.py: forbid field names `fields` and `pid` * Feature #446: packets: complex field support * Feature #447: fcintl.c coding style * Feature #451: shared.c: NULL -> nullptr * Feature #453: Drop unused caravan_optimize_...() * Feature #455: Nonnull parameters in shared.c * Bug #459: generate_packets.py: correctly handle JSON field address in nested arrays * Feature #464: HACKING: Remove double spaces * Bug #465: dio_get_*_json() checking dest pointer validity after dereferencing * Feature #466: dataio: arraylen type * Feature #468: Nonnull parameters in timing.c * Feature #469: timing.c: NULL -> nullptr * Feature #470: protocol: create a strvec field type * Feature #477: modpack.c: NULL -> nullptr * Bug #483: generate_packets.py: array-diff behavior for variable-sized arrays not clearly defined * Feature #484: generate_packets.py: array-diff for strvec * Feature #485: maybe_become_veteran_real(): Rename 'settler' parameter as 'worker' * Feature #494: registry_ini.[ch]: NULL -> nullptr * Feature #496: json protocol: object creation in packet code * Feature #497: INSTALL: Remove double spaces * Feature #500: generate_packets.py coding style * Feature #501: packets: rename "cancel" * Feature #504: networking: Clear trailing spaces * Feature #510: delta protocol: transmit fields bitvector after key fields * Feature #514: registry.[ch] Coding Style improvements * Feature #515: Remove double spaces from ruleset file headers * Feature #518: Remove x-prefixing from autogen.sh * Bug #522: Goods 'priority' not sent to the client side * Feature #527: generate_packets.py: always pass packet names separately from Locations * Feature #528: generate_packets.py: make Location class handle inserting packet-> correctly * Feature #531: Nonnull parameters in capability.c * Feature #532: enum impr_flag_id by generate_enums.py * Feature #533: generate_packets.py: make SizeInfo use Location * Feature #535: specvec.h: NULL -> nullptr * Feature #539: generate_packets.py: struct specvec types * Feature #540: network protocol: requirement vectors * Feature #542: Remove double spaces from standard ruleset comments * Feature #548: advisors: Clear trailing spaces * Bug #558: Flagless units can make contact * Feature #564: generate_packets.py: factor out common array/vector code * Bug #566: generate_packets.py failing on Ubuntu Focal (python 3.8) * Bug #574: HOWTOPLAY: One double space remains * Feature #576: CI: Drop autotools mac build * Bug #577: savecompat: Adding unit action ACTION_NONE for activity not working * Bug #580: CI: 'make dist' fails for lack of tileset .modpack files * Feature #582: Nonnull parameters in string_vector.c * Feature #585: Rename goods 'priority' as 'replace_priority' * Feature #589: astring.h: NULL -> nullptr * Feature #602: enum universals_n by generate_enums.py * Bug #603: rscompat_utype_flag_name_3_3() not using fc_strcasecmp() * Bug #607: Gtk-warning: unescaped ampersand * Feature #613: requirements: Make other_player an entire req_context * Bug #615: game.rulesets: Useless semicolon after world_peace.victory_turns entry * Feature #616: MaxDistanceSq requirement * Feature #619: Evaluate Trade_Revenue_Bonus with destination city information as other_context * Feature #620: Evaluate Unit_Bribe_Cost_Pct with briber unit information as other_context * Feature #621: Evaluate Heal_Unit_Pct with target unit information as other_context * Feature #624: server/scripting: Clear trailing spaces * Feature #625: section_file.[ch]: NULL -> nullptr * Feature #641: Move additional continent info into common code * Feature #642: client: keep track of continent and ocean sizes * Feature #644: Bump version to 3.2.92 * Bug #653: City production: Inconsistent handling of uncertain build requirements * Feature #656: range_adjc_iterate macros that pick dirlist based on a requirement range * Feature #662: meson-winbuild.sh: Support building from separate build directory * Feature #665: Nonnull parameters in bitvector.c * Feature #666: bitvector.c: NULL -> nullptr * Feature #670: scriptcore: Clear trailing spaces * Feature #680: trailing_spaces.sh: Check .pkg files * Bug #687: QCheckBox::stateChanged() deprecated in Qt-6.9 * Feature #688: generate_enums.py: option to enforce alphabetical order * Feature #689: Alphabetize terrain enums * Feature #692: c23 static_assert() * Feature #693: rand.c: NULL -> nullptr * Feature #696: Alphabetize universals_n enum * Feature #697: generate_enums.py: allow making individual enum values exempt from style rules * Feature #698: generate_langstat.sh: Drop x-prefixing * Feature #711: meson-winbuild.sh: Qt6x-client * Feature #716: Drop FREECIV_DEV_SAVE_COMPAT_3_2 from main * Feature #718: netintf.c: NULL -> nullptr * Feature #720: installer_cross: Qt6x-client * Bug #721: Meson: qtver6x does not set FC_QT6X_MODE * Feature #725: ioz.[ch]: Drop trailing spaces * Feature #726: Qt6x mode messages * Feature #731: installer_cross: Drop win32 support completely * Bug #732: techs.ruleset: Documented max number of tech flags wrong * Feature #740: fcbacktrace.c: NULL -> nullptr * Bug #742: README.crosser: Wrong path to build scripts * Feature #743: goto.[ch]: Improved Coding Style * Feature #755: Nonnull parameters in genhash.c * Feature #756: genhash.c: NULL -> nullptr * Feature #759: speclist.h: NULL -> nullptr * Bug #766: Conquer City Shrink rscompat broken * Feature #767: randseed.c: NULL -> nullptr * Feature #772: Msys2: Drop win32 support completely * Feature #776: fcthread.c: NULL -> nullptr * Feature #781: registry_xml.c: NULL -> nullptr * Feature #782: Rename aiparatrooper.[ch] as daiparadrop.[ch] * Feature #789: README.effects: UnitFlag -> UnitTypeFlag * Feature #790: specpq.h: NULL -> nullptr * Feature #795: netfile.c: Improve coding style * Feature #797: spechash.h: NULL -> nullptr * Feature #802: utility/: Remove trailing spaces * Feature #804: enum action_result to be generated by generate_enums.py * Feature #806: ATK_UNITS -> ATK_STACK * Feature #807: fc_utf8.c: NULL -> nullptr * Feature #812: ACTION_PERFORM_UNIT_UNITS -> ACTION_PERFORM_UNIT_STACK * Feature #817: action_[started|finished]_unit_units -> action_[started|finished]_unit_stack * Feature #825: struct Treaty -> struct treaty * Feature #828: meson-installer_build.sh: Improve env var quotation * Feature #829: calendar.c: Improve coding style * Bug #833: Savecompat: Old action names "Conquer City x" not converted to new "Conquer City Shrink x" * Bug #835: reqtext.c about squared distance wrong * Feature #842: Drop locale-fr.m4 * Feature #843: rulesave.h: Clear trailing space * Feature #845: Msys2: qt6x-client installer * Bug #855: xgettext "unterminated character constant" at game.rulesets * Feature #857: rulesave.c: NULL -> nullptr * Feature #884: gtk4x: FcTechRow * Feature #885: gtk4x fcmp: FcMPRow * Feature #888: Do ruleup from a stable S3_2 format * Feature #890: sdl2: Rename getpixel() as get_pixel() * Feature #898: gtk4x: FcWonderRow * Bug #900: Tileset .modpacks comment speaks of ruleset * Feature #901: gtk4x fcmp: Switch to use g_list_store * Feature #902: gtk4x fcmp: Disallow anything deprecated in gtk-4.10 * Feature #920: Msys2: gtk4x-installer * Bug #921: README.msys2: Qt6x-installer not documented * Bug #925: gtk3.22: Double initialization of af_map[ACTION_SPY_BRIBE_STACK] * Feature #926: gtk4x: FcActionRow * Feature #928: README.modpack_installer: Update capstrings * Feature #930: -Wnonnull-compare * Feature #943: gtk: Menu entries for zoom * Feature #945: gtk4x: citydlg FcImprRow * Feature #946: gtk4x: inteldlg tech list item factory bind() and create() * Feature #951: gtk4x: inteldlg wonder list item factory bind() and create() * Feature #952: gtk4x: citydlg FcProdRow * Feature #953: gtk4x: inteldlg techs list as GListStore * Feature #958: gtk4x: actiondlg actiom list item factory bind() and create() * Feature #959: qt6x: Require qt-6.7 * Feature #961: gtk4x: wldlg FcWlmetaRow * Feature #962: gtk4x: inteldlg techs list GListStore implementation to use * Feature #964: gtk4x: get_column_view_row() * Feature #965: gtk4x: citydlg impr list item factory bind() and create() * Feature #968: gtk4x: wldlg FcWorklistRow * Feature #969: gtk4x: inteldlg wonders list as GListStore * Feature #970: generate_packets.py typofixes * Feature #978: gtk4x: inteldlg wonders list GListStore implementation to use * Feature #980: gtk4x: citydlg prod list item factory bind() and create() * Feature #981: gtk4x: actiodlg lists as GListStore * Feature #982: gtk4x: cma FcPresetRow * Feature #988: gtk4x: cityreport FcCrepRow * Feature #990: fc_crep_row_finalize() * Feature #991: gtk4x fcmp: fc_mprow_finalize() * Feature #992: gtk4x: citydlg impr list as GListStore * Feature #994: gtk4x: actiondlg lists GListStore implementation to use * Feature #995: gtk4x fcmp: Deprecated gtk_widget_get_allocation() * Bug #996: Illegal value -1 for tile relationship requirement. * Bug #997: gtk4x fcmp: Disallow anything deprecated in gtk-4.14 * Bug #1000: maybe_become_veteran_real() header speaks of 'settler' parameter * Feature #1002: gtk4x: wldlg meta list item factory bind() and create() * Feature #1003: gtk4x: citydlg impr list GListStore implementation to use * Feature #1006: Autotools: --enable-ack-legacy * Feature #1007: gtk4x: pages.c FcHostRow * Feature #1008: gtk4x: citydlg prod list as GListStore * Feature #1011: struct anim for selection animation * Feature #1016: gtk4x: wldlg worklist item factory bind() and create() * Feature #1018: gtk4x: wldlg meta list as GListStore * Feature #1019: gtk4x: citydlg prod list GListStore implementation to use * Feature #1020: gtk4x: pages.c FcPlrRow * Feature #1024: gtk4x: Require gtk-4.14 * Feature #1026: gtk4x: cma_fe.c preset list item factory bind() and create() * Feature #1027: gtk4x: wldlg meta list GListStore implementation to use * Feature #1033: Animation time_per_frame * Feature #1034: Animate action_decision_want icon * Feature #1035: gtk4x: cityreport item factory bind() and create() * Feature #1036: gtk4x: Mark wldlg.c treeview worklists as deprecated * Feature #1043: Ruledit: Enabler comment editing * Bug #1045: CI: Github actions not using --enable-ack-legacy for autotools builds * Bug #1046: 'make distcheck' test not using --enable-ack-legacy option * Feature #1047: CI: Build msys2 Qt6x-client * Feature #1051: gtk4x: pages.c FcScenRow * Feature #1053: revision_describer.bash: Remove x-prefixing * Feature #1055: gtk4x: cma_fe.c preset list as GListStore * Feature #1057: action_decision_want animation only on gtk4- and gtk4x-clients * Feature #1058: global_anim_time * Feature #1059: gtk4x: cma_fe.c preset list GListStore implementation to use * Feature #1063: gtk4x: pages.c FcSaveRow * Feature #1064: gtk4x: pages.c host item factory bind() and create() * Feature #1069: gtk4x: pages.c player item factory bind() and create() * Feature #1070: gtk4x: cityreport city list as GListStore, part 1 * Feature #1075: Ruledit: Rework enablers tab layout * Feature #1083: advdata.c: Improve coding style * Feature #1084: AI: Reduce want of settlers if "Found City" action is not enabled * Feature #1085: universal_found_function for VUT_MINCITIES * Feature #1086: production_class_type as genenum * Feature #1087: gtk4x: diplodlg.c FcClauseRow * Feature #1088: Granularity: Architecture & Palace * Feature #1093: Actions documentary comment * Feature #1095: Redraw full screen for animations * Feature #1101: gtk4x: pages.c scenario item factory bind() and create() * Feature #1108: gtk4x: pages.c save item factory bind() and create() * Feature #1109: Replace is_view_supported() by gui property * Bug #1110: packet_destroy() calling nullptr function pointer * Bug #1111: city_support(): Bad iteration on ordering martial law units * Bug #1113: serialize_hash(): Add asserts that iterations go 'entries' rounds * Feature #1114: Migrate from ui_name_xxx to actions -sections, classic ruleset * Feature #1118: Meson: meson.project_source_root() to variable * Feature #1124: anim_hash * Feature #1126: Bump tilespec capstr * Feature #1127: Migrate from ui_name_xxx to actions -sections, civ2civ3 * Feature #1131: Msys2-next after 241102 * Feature #1133: Msys2 Makefile.meson: Full installer builds on clang64 * Feature #1135: README.actions: Remove ui_name fields documentation * Feature #1136: Migrate from ui_name_xxx to actions -sections, multiplayer * Feature #1137: Migrate from ui_name_xxx to actions -sections, sandbox * Feature #1138: Migrate from ui_name_xxx to actions -sections, goldkeep * Feature #1139: Migrate from ui_name_xxx to actions -sections, alien * Feature #1140: Migrate from ui_name_xxx to actions -sections, webperimental * Feature #1141: Migrate from ui_name_xxx to actions -sections, granularity * Feature #1142: Migrate from ui_name_xxx to actions -sections, stub * Feature #1143: Migrate from ui_name_xxx to actions -sections, civ1 * Feature #1144: Migrate from ui_name_xxx to actions -sections, civ2 * Feature #1150: Msys2 Makefile.autotools: Full installer builds on clang64 * Feature #1152: Meson: mariadb based fcdb support * Feature #1153: Granularity: City vision not to reveal tiles * Bug #1161: Savecompat adds unused entry "game.world_peace_start" to savegame2 saves * Bug #1164: Savecompat adds unused entry "map.altitude" to savegame2 saves * Feature #1168: rscompat: Consider legacy ui_name to configure the action only if it's non-default * Bug #1177: README.graphics refers to "auto_settler" icon * Feature #1183: requirement.[ch]: Improve coding style * Bug #1184: helpdata.txt: "auto settler mode" * Feature #1188: Meson: Add odbc support to -Dfcdb * Bug #1191: action ui_names not collected for translation * Feature #1204: Meson: Find mariadb also by name libmariadb * Bug #1208: tileset_read_toplevel() vsup used unintialized -warning * Feature #1210: Reinstate ACLOCAL_AMFLAGS to S3_3 * Feature #1211: Clean out 3D support stuff from S3_3 * Bug #1216: capabilities tries to find ruleset.h * Bug #1217: Doxygen: anim_new() parameter time_per_frame not documented * Bug #1252: ui_name not set for actions without action_ sections * Bug #1317: 'action' not set for immediately fortified partisans * Feature #1378: Meson: Replace try/true/false combo options with feature options * Bug #1379: README says that freeciv version is 3.2 even in S3_3 and main branches * Feature #1392: Msys2-next after 250216 * Bug #1402: README.crosser referring to (autotools) winbuild.sh * Bug #1404: Flatpak: org.freeciv.gtk4x.mp.yml not in dist * Bug #1405: oblig_reqs.c: va_list used without stdarg.h include * Feature #1415: New Croatian leaders * Feature #1417: Qt6-6.8 as minimum version for qt6x-client * Feature #1418: S3_3: dev savecompat block 3.2.93 - 3.2.94 * Bug #1419: "Failed to build city" spam * Feature #1420: actions.c: Drop include * Feature #1426: Clean up POTFILES.in * Feature #1439: Document FC_QT6X_MODE blocks * Bug #1453: README.actions not documenting all the internal actions * Bug #1460: unit_make_contact() called for dead unit * Feature #1488: Make GTK and Qt clients menu items more similar * Feature #1497: Qt: Rally point key to "r" * Bug #1507: README.msys2 typo "bu" * Feature #1508: granularity: Brewery * Feature #1510: Drop empty stdinhand_turn() * Feature #1512: granularity: Wheat * Bug #1523: No capitals set when loading < 3.3 savegame * Feature #1533: Granularity: Give small trade increase for Path * Feature #1536: Qt: "d" to disband unit * Feature #1545: granularity: Brewery to increase food output of Wheat * Bug #1547: "Can do the action 'Civil War'" * Bug #1549: Populate action subtarget kind enum * Feature #1557: Carry over excess food when city grows * Feature #1569: Populate lua-5.5 tree with Makefile.am's * Feature #1584: Refactor does_req_contradicts_reqs() / req_vec_first_contradiction_in_vec() * Feature #1588: Remove settings_turn() * Feature #1590: S3_3 Msys2: Drop Makefile.autotools * Feature #1591: Drop snapshot.project * Feature #1593: Msys2: Define installation of sound dlls per client * Feature #1596: Msys2: sdl3-client installer * Feature #1598: HACKING: update guideline for generalized actions * Feature #1615: Msys2: freeciv-sdl3.cmd * Feature #1619: Msys2: create-freeciv-sdl-nsi.sh * Feature #1625: granularity: Naval Strategies * Feature #1627: granularity: Magnetism & Explorer * Feature #1640: Msys2: Parametrize create-freeciv-sdl-nsi.sh with the gui * Feature #1645: Msys2: create-freeciv-sdl3-nsi.sh * Bug #1653: is_universal_needed() not checking clause "either_reqs" * Bug #1655: S3_3 Msys2: Qt5-client installer lacks audio dlls * Feature #1665: S3_3: Drop Windows support for gtk4x-client * Feature #1670: S3_3: Drop flatpak support for gtk4x-client * Feature #1674: S3_3: Drop autotools support for gtk4x-client * Feature #1681: S3_3: Drop meson support for gtk4x-client * Bug #1682: S3_3 'make distcheck': config.status: error: cannot find input file: `client/gui-gtk-5.0/Makefile.in' * Bug #1683: S3_3 POTFILES listing gui-gtk-5.0 files * Feature #1686: S3_3: Drop gtk4x sources * Bug #1687: S3_3 CI: mac-meson job tries to build removed gtk4x-client * Feature #1688: S3_3: Drop gtk4x-client options * Feature #1694: README.packaging: Update for changed gtk4x-client target version * Feature #1705: Msys2-next after 250707 * Feature #1731: Drop homebrew-appbundle.sh * Feature #1737: improve reporting of appearing/disappearing extras * Feature #1747: luasql-2.7.0 * Feature #1759: Remove lua-5.4 from version control * Bug #1760: CI: mac-meson trying to use syslua, but lua-5.5 not found * Feature #1761: ci-build.sh: Drop followtag from mac-meson * Bug #1762: CI: clang_debug will not work with lua-5.5 * Bug #1763: fc_version mentions nonexisting installer_msys2/Makefile.autotools * Feature #1772: savegame: Use secfile_entry_ignore() * Bug #1773: va_list.sh warning about lua-5.5/src/lcode.c * Feature #1778: Msys2: Set audio driver for sdl2-client explicitly * Bug #1783: INSTALL.autotools instructs running ./autogen.sh in source directory * Feature #1790: S3_3 README.packaging: List lua-5.5 as a change since freeciv-3.2 * Bug #1794: Unit command help speaks of auto-settler * Bug #1796: initialize_infrastructure_cache() header speaking of auto-settlers * Feature #1798: Lua-5.5.0 RC2 * Feature #1805: luasql: Clear trailing spaces * Feature #1809: Lua-5.5.0 RC3 * Feature #1814: AppImage: Prefix client build directories with "client-" * Feature #1819: Msys2-next after 251025 * Feature #1821: Lua-5.5.0 RC4 * Bug #1823: lua-5.5/doc missing lua.css * Feature #1835: lua-5.5.0 final * Feature #1840: map_size_checked() as an inline function * Bug #1841: S3_3 meson.build sets gtk5_dep * Feature #1848: luasql: Fix comment typos found by codespell * Feature #1861: Lua-5.5.0 patch 1 * Bug #1865: Qt: Segmentation fault; Storms have no player. * Bug #1867: gtk: Action selection dialog crash with flagless unit * Feature #1891: trailing_spaces.sh: Check python files (.py) * Feature #1895: Lua-5.5.0 patch 2 * Feature #1899: README.graphics: Add a word about animations * Feature #1907: Meson: Silence clang compiler warnings about lua * Bug #1909: sdl: Flagless unit crash on unit win chance display * Feature #1911: Granularity: Entertainer * Bug #1912: struct unit comment claiming owner cannot be NULL