# HG changeset patch # User Wuzzy # Date 1521733924 -3600 # Node ID 48b23e6f26d907c1db416eefc97c39062c881055 # Parent df1db657bbb453462c55e640bb8363c8dcf65073 Add icons to background themes; allow to hide themes explicitly by adding “hidden” key to theme.cfg diff -r df1db657bbb4 -r 48b23e6f26d9 ChangeLog.txt --- a/ChangeLog.txt Thu Mar 22 16:08:33 2018 +0100 +++ b/ChangeLog.txt Thu Mar 22 16:52:04 2018 +0100 @@ -36,6 +36,7 @@ + New flag: uk_scotland + New voice: Default_pl (Polish) + New voice: Russian_pl (Polish with a Russian accent) + + Add theme icons for: Blox, CrazyMission, Deepspace, Eyes, Planes Styles and game modes: + Various styles: Add current score/time next to team bars (where applicable) @@ -95,8 +96,9 @@ + Target Practice: Re-center camera to hog when projectile is destroyed or drowns Theme customization: - + Add fallback music with fallback-music and fallback-sd-music - * Fix green color channel on themes with sd-tint + + Add fallback music with new keys “fallback-music” and “fallback-sd-music” + + Allow to hide themes explicitly with new key “hidden”. Using this key it's possible for hidden themes to have icons + * Fix green color channel on themes with key “sd-tint” Lua API: + New library: SimpleMission: Allows to create missions more easily diff -r df1db657bbb4 -r 48b23e6f26d9 QTfrontend/model/ThemeModel.cpp --- a/QTfrontend/model/ThemeModel.cpp Thu Mar 22 16:08:33 2018 +0100 +++ b/QTfrontend/model/ThemeModel.cpp Thu Mar 22 16:52:04 2018 +0100 @@ -128,7 +128,33 @@ QString iconpath = QString("physfs://Themes/%1/icon.png").arg(theme); if (!QFile::exists(iconpath)) + { dataset.insert(IsHiddenRole, true); + } + else + { + // themes with the key “hidden” in theme.cfg are hidden, too + QFile themeCfgFile(QString("physfs://Themes/%1/theme.cfg").arg(theme)); + if (themeCfgFile.open(QFile::ReadOnly)) + { + QTextStream stream(&themeCfgFile); + QString line = stream.readLine(); + QString key; + while (!line.isNull()) + { + key = QString(line); + int equalsPos = line.indexOf('='); + key.truncate(equalsPos - 1); + key = key.simplified(); + if (!line.startsWith(';') && key == "hidden") + { + dataset.insert(IsHiddenRole, true); + break; + } + line = stream.readLine(); + } + } + } // detect if theme is dlc QString themeDir = PHYSFS_getRealDir(QString("Themes/%1").arg(theme).toLocal8Bit().data()); diff -r df1db657bbb4 -r 48b23e6f26d9 QTfrontend/model/ThemeModel.h --- a/QTfrontend/model/ThemeModel.h Thu Mar 22 16:08:33 2018 +0100 +++ b/QTfrontend/model/ThemeModel.h Thu Mar 22 16:52:04 2018 +0100 @@ -28,6 +28,7 @@ #include #include #include +#include #include "ThemeFilterProxyModel.h" #include "DataManager.h" diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Blox/icon.png Binary file share/hedgewars/Data/Themes/Blox/icon.png has changed diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Blox/icon@2x.png Binary file share/hedgewars/Data/Themes/Blox/icon@2x.png has changed diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Blox/theme.cfg --- a/share/hedgewars/Data/Themes/Blox/theme.cfg Thu Mar 22 16:08:33 2018 +0100 +++ b/share/hedgewars/Data/Themes/Blox/theme.cfg Thu Mar 22 16:52:04 2018 +0100 @@ -1,3 +1,4 @@ +hidden = true sky = 179, 243, 243 border = 128, 128, 128 music = Nature.ogg diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/CrazyMission/icon.png Binary file share/hedgewars/Data/Themes/CrazyMission/icon.png has changed diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/CrazyMission/icon@2x.png Binary file share/hedgewars/Data/Themes/CrazyMission/icon@2x.png has changed diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/CrazyMission/theme.cfg --- a/share/hedgewars/Data/Themes/CrazyMission/theme.cfg Thu Mar 22 16:08:33 2018 +0100 +++ b/share/hedgewars/Data/Themes/CrazyMission/theme.cfg Thu Mar 22 16:52:04 2018 +0100 @@ -1,3 +1,4 @@ +hidden = true sky = 20, 23, 24 border = 20, 23, 24 water-top = 21, 57, 76 diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Deepspace/icon.png Binary file share/hedgewars/Data/Themes/Deepspace/icon.png has changed diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Deepspace/icon@2x.png Binary file share/hedgewars/Data/Themes/Deepspace/icon@2x.png has changed diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Deepspace/theme.cfg --- a/share/hedgewars/Data/Themes/Deepspace/theme.cfg Thu Mar 22 16:08:33 2018 +0100 +++ b/share/hedgewars/Data/Themes/Deepspace/theme.cfg Thu Mar 22 16:52:04 2018 +0100 @@ -1,3 +1,4 @@ +hidden = true sky = 0, 0, 0 border = 175, 177, 75 water-top = $2B, $2B, $2B diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Eyes/icon.png Binary file share/hedgewars/Data/Themes/Eyes/icon.png has changed diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Eyes/icon@2x.png Binary file share/hedgewars/Data/Themes/Eyes/icon@2x.png has changed diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Eyes/theme.cfg --- a/share/hedgewars/Data/Themes/Eyes/theme.cfg Thu Mar 22 16:08:33 2018 +0100 +++ b/share/hedgewars/Data/Themes/Eyes/theme.cfg Thu Mar 22 16:52:04 2018 +0100 @@ -1,3 +1,4 @@ +hidden = true sky = 0, 0, 0 border = 175, 177, 75 water-top = $2B, $2B, $2B diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Planes/icon.png Binary file share/hedgewars/Data/Themes/Planes/icon.png has changed diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Planes/icon@2x.png Binary file share/hedgewars/Data/Themes/Planes/icon@2x.png has changed diff -r df1db657bbb4 -r 48b23e6f26d9 share/hedgewars/Data/Themes/Planes/theme.cfg --- a/share/hedgewars/Data/Themes/Planes/theme.cfg Thu Mar 22 16:08:33 2018 +0100 +++ b/share/hedgewars/Data/Themes/Planes/theme.cfg Thu Mar 22 16:52:04 2018 +0100 @@ -1,3 +1,4 @@ +hidden = true sky = 21, 20, 38 border = 177, 175, 49 music = City.ogg