From f603031018dba62217a65b1efb9d61fc03b23c19 Mon Sep 17 00:00:00 2001 From: ac-stef Date: Mon, 31 Aug 2015 15:49:55 +0200 Subject: [PATCH] add zip mod package settings menu Zipped mod package files should be placed in "mods/" and need to contain directory trees starting with "packages/" (or "config/"). The files from a zip mod replace files, that exist in the original game install or add new files. The zip file should contain three special files: desc.txt Contains one line with a descriptive title for the package and ten more optional lines with a detailed description. preview.jpg Preview picture for the mod. Must not exceed 128 kbytes. Aim for 512x512 pixel. revision_n Empty file. The "n" in the filename should be a valid integer number instead, specifying the zip revision. Example "revision_123". The settings menu shows the active mods in order of their priority - which determines, which file to use, if several mod packages try to add or substitute the same file. Zip files higher up in the list win. --- config/menus_settings.cfg | 69 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/config/menus_settings.cfg b/config/menus_settings.cfg index a51b4eba..24de1e30 100644 --- a/config/menus_settings.cfg +++ b/config/menus_settings.cfg @@ -9,6 +9,7 @@ menuitem [Keyboard settings] [ showmenu Keyboard ] menuitem [Mouse settings] [ showmenu Mouse ] menuitem [Sound settings] [ showmenu sound ] menuitem [Misc settings] [ showmenu Misc ] +menuitem [Mod package settings] [ showmenu "Mod package" ] menuitem [] -1 menuitem [Reset all settings] [ showmenu [Reset settings] ] @@ -701,4 +702,72 @@ menuitemtextinput [Shotgun: ] [gibmessage 3] [ gibmessage 3 $arg1 ] [] 15 menuitemtextinput [Sniper: ] [gibmessage 5] [ gibmessage 5 $arg1 ] [] 15 menuitemtextinput [Grenades: ] [gibmessage 8] [ gibmessage 8 $arg1 ] [] 15 +tempalias __zip "" + +newmenu "Mod package" +menuinit [ + delmenu (curmenu) ; newmenu (curmenu) + menurenderoffset -20 0 + push ecurmenu (escape (curmenu)) + push activezips (zipmodlist active) + push inactivezips (zipmodlist inactive) + if (strlen $activezips) [ + menuitem "\f2Currently used mod packages (highest priority listed first)" -1 (concat chmenutexture $ecurmenu "") + looplist $activezips zip [ + menuitem (concatword "\fs\f9" $zip ":\fr " (at (zipmodgetdesc $zip) 0)) (concat alias __zip $zip "; showmenu [Configure mod package]") (concatword chmenutexture " " $ecurmenu "../modpreviews/" $zip ".jpg " $zip) + ] + menuitem "" -1 (concat chmenutexture $ecurmenu "") + ] + if (strlen $inactivezips) [ + menuitem "\f2Unused mod packages" -1 (concat chmenutexture $ecurmenu "") + looplist $inactivezips zip [ + menuitem (concatword "\fs\f9" $zip ":\fr " (at (zipmodgetdesc $zip) 0)) (concat alias __zip $zip "; showmenu [Configure mod package]") (concatword chmenutexture " " $ecurmenu "../modpreviews/" $zip ".jpg " $zip) + ] + menuitem "" -1 (concat chmenutexture $ecurmenu "") + ] + if (|| (strlen $activezips) (strlen $inactivezips)) [ ] [ menuitem "--- no mod packages available ---" -1 ] + if (strlen $activezips) [ menuitem "\f3Deactivate all mod packages" zipmodclear ] + menuitem "\f3Refresh textures (has no effect on already loaded models)" resetgl + pop activezips inactivezips ecurmenu +] + +newmenu "Configure mod package" +menuinit [ + delmenu (curmenu) ; newmenu (curmenu) + menurenderoffset -20 0 + push ecurmenu (escape (curmenu)) + push activezips (zipmodlist active) + if (strlen $__zip) [ + chmenutexture (curmenu) (concatword "../modpreviews/" $__zip ".jpg") $__zip + push __c "\f2" + looplist (zipmodgetdesc $__zip) desc [ if (strlen $desc) [ menuitem (concat $__c $desc) -1 ] ; alias __c "" ] + pop __c + menuitem (concat "\f4revision:" (zipmodgetrevision $__zip)) -1 + menuitem "" -1 + if (< (findlist $activezips $__zip) 0) [ + menuitem (concatword "\f0Add \f9" $__zip "\f0 to the list of used mod packages") (concat addzipmod $__zip) + ] [ + menuitem (concatword "\f3Remove \f9" $__zip "\f0 from the list of used mod packages") (concat zipmodremove $__zip) + ] + menuitem "" -1 + menuitem "Show list of files in package" "showmenu [Show files in package]" + ] [ + menuitem "no zip selected" -1 + ] + pop activezips ecurmenu +] + +newmenu "Show files in package" +menuinit [ + delmenu (curmenu) ; newmenu (curmenu) + if (strlen $__zip) [ + menuitem (concat "Files in package\f9" $__zip) -1 + menuitem "" -1 + looplist (zipmodgetfiles $__zip) aa [ menuitem $aa -1 ] + ] [ + menuitem "no zip selected" -1 + ] +] + + persistidents 1