diff --git a/native/WinLauncher/WinLauncher/WinLauncher.ico b/native/WinLauncher/WinLauncher/WinLauncher.ico index d551aa3aaf80..a38333ba8384 100644 Binary files a/native/WinLauncher/WinLauncher/WinLauncher.ico and b/native/WinLauncher/WinLauncher/WinLauncher.ico differ diff --git a/native/WinLauncher/WinLauncher/WinLauncher.rc b/native/WinLauncher/WinLauncher/WinLauncher.rc index 7b600e11b390..d734507ab0ea 100644 Binary files a/native/WinLauncher/WinLauncher/WinLauncher.rc and b/native/WinLauncher/WinLauncher/WinLauncher.rc differ diff --git a/native/WinLauncher/WinLauncher/WinLauncher.vcxproj b/native/WinLauncher/WinLauncher/WinLauncher.vcxproj index a69e8769223b..6656ec535a2a 100644 --- a/native/WinLauncher/WinLauncher/WinLauncher.vcxproj +++ b/native/WinLauncher/WinLauncher/WinLauncher.vcxproj @@ -136,7 +136,6 @@ - diff --git a/native/WinLauncher/WinLauncher/WinLauncher.vcxproj.filters b/native/WinLauncher/WinLauncher/WinLauncher.vcxproj.filters index d86e9e9e1ce7..d813bb472c09 100644 --- a/native/WinLauncher/WinLauncher/WinLauncher.vcxproj.filters +++ b/native/WinLauncher/WinLauncher/WinLauncher.vcxproj.filters @@ -16,9 +16,6 @@ - - Resource Files - Resource Files diff --git a/native/WinLauncher/WinLauncher/small.ico b/native/WinLauncher/WinLauncher/small.ico deleted file mode 100644 index d551aa3aaf80..000000000000 Binary files a/native/WinLauncher/WinLauncher/small.ico and /dev/null differ diff --git a/tools/launcher-generator/src/com/pme/exe/res/icon/IconResourceInjector.java b/tools/launcher-generator/src/com/pme/exe/res/icon/IconResourceInjector.java index 8bc8dc8071d2..d98e142abf45 100644 --- a/tools/launcher-generator/src/com/pme/exe/res/icon/IconResourceInjector.java +++ b/tools/launcher-generator/src/com/pme/exe/res/icon/IconResourceInjector.java @@ -33,6 +33,25 @@ public class IconResourceInjector { IconFile iconFile = new IconFile(file); iconFile.read(); + //updateGroupIcon(root, iconId, iconFile); + + DirectoryEntry iconsDir = root.findSubDir("IRD3"); + Level iconFileLevel = (Level) iconFile.getMember("Level"); + ArrayList icons = iconFileLevel.getMembers(); + if (icons.size() == iconsDir.getSubDirs().size()) { + for (int i = 0; i < icons.size(); i++) { + DirectoryEntry subDirIcon = iconsDir.findSubDir("IRD" + (i+1)); + IconDirectory iconDirectory = (IconDirectory) iconFileLevel.getMembers().get(i); + RawResource rawResource = subDirIcon.getRawResource(0); + rawResource.setBytes(iconDirectory.getRawBytes()); + } + } + else { + throw new IOException("Count of icons in template file doesn't match the count of icons in provided icon file"); + } + } + + private void updateGroupIcon(DirectoryEntry root, String iconId, IconFile iconFile) throws IOException { DirectoryEntry subDirGroupIcon = root.findSubDir("IRD14").findSubDir(iconId); RawResource groupIcon = subDirGroupIcon.getRawResource(0); @@ -51,18 +70,6 @@ public class IconResourceInjector { DataOutputStream stream = new DataOutputStream(bytesStream); groupIconResource.write(stream); groupIcon.getBytes().setBytes(bytesStream.toByteArray()); - - DirectoryEntry iconsDir = root.findSubDir("IRD3"); - DirectoryEntry subDirIcon = iconsDir.findSubDir("IRD1"); - RawResource rawResource = subDirIcon.getRawResource(0); - Level iconFileLevel = (Level) iconFile.getMember("Level"); - IconDirectory iconDirectory = (IconDirectory) iconFileLevel.getMembers().get(0); - rawResource.setBytes(iconDirectory.getRawBytes()); - - ArrayList icons = iconFileLevel.getMembers(); - for (int i = 1; i < icons.size(); i++) { - insertIcon(iconsDir, (IconDirectory) icons.get(i), i); - } } private void insertIcon(DirectoryEntry iconsDir, IconDirectory iconDirectory, int index) { diff --git a/tools/launcher-generator/src/com/pme/launcher/LauncherGenerator.java b/tools/launcher-generator/src/com/pme/launcher/LauncherGenerator.java index df4a1d6e68ab..0b76f89f927f 100644 --- a/tools/launcher-generator/src/com/pme/launcher/LauncherGenerator.java +++ b/tools/launcher-generator/src/com/pme/launcher/LauncherGenerator.java @@ -91,7 +91,7 @@ public class LauncherGenerator { bmpRes.setBytes(bitmapData); } - public void injectIcon(String name, final InputStream iconStream) throws IOException { + public void injectIcon(int id, final InputStream iconStream) throws IOException { File f = File.createTempFile("launcher", "ico"); Files.copy(new InputSupplier() { @Override @@ -100,6 +100,6 @@ public class LauncherGenerator { } }, f); IconResourceInjector iconInjector = new IconResourceInjector(); - iconInjector.injectIcon(f, myRoot, "IRD101"); + iconInjector.injectIcon(f, myRoot, "IRD" + id); } } diff --git a/tools/launcher-generator/src/com/pme/launcher/LauncherGeneratorMain.java b/tools/launcher-generator/src/com/pme/launcher/LauncherGeneratorMain.java index d903e6357a4d..cdf54b7cb72e 100644 --- a/tools/launcher-generator/src/com/pme/launcher/LauncherGeneratorMain.java +++ b/tools/launcher-generator/src/com/pme/launcher/LauncherGeneratorMain.java @@ -132,7 +132,7 @@ public class LauncherGeneratorMain { } generator.injectBitmap(resourceIDs.get("IDB_SPLASH"), splashBmpStream.toByteArray()); - generator.injectIcon(icoUrl, iconStream); + generator.injectIcon(resourceIDs.get("IDI_WINLAUNCHER"), iconStream); generator.generate(); } catch (IOException e) {