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.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user