| Line 19... |
Line 19... |
| 19 |
#include <windows.h>
|
19 |
#include <windows.h>
|
| 20 |
#include <direct.h>
|
20 |
#include <direct.h>
|
| 21 |
#include <shlobj.h>
|
21 |
#include <shlobj.h>
|
| 22 |
#endif
|
22 |
#endif
|
| 23 |
|
23 |
|
| - |
|
24 |
#include "Utils/CommandLine.h"
|
| - |
|
25 |
|
| 24 |
Utils::WString g_dir;
|
26 |
Utils::WString g_dir;
|
| 25 |
bool g_read;
|
27 |
bool g_read;
|
| 26 |
|
28 |
|
| 27 |
class CFileProgress : public CProgressInfo
|
29 |
class CFileProgress : public CProgressInfo
|
| 28 |
{
|
30 |
{
|
| Line 104... |
Line 106... |
| 104 |
*/
|
106 |
*/
|
| 105 |
void PrintSyntax(const Utils::WString &cmd)
|
107 |
void PrintSyntax(const Utils::WString &cmd)
|
| 106 |
{
|
108 |
{
|
| 107 |
wprintf(L"Syntax: %s <command>\n", cmd.c_str() );
|
109 |
wprintf(L"Syntax: %s <command>\n", cmd.c_str() );
|
| 108 |
wprintf(L"Commands:\n" );
|
110 |
wprintf(L"Commands:\n" );
|
| 109 |
wprintf(L"\t-v <spkfile>\n\t--view <spkfile>\n\t\tViews the contents of a spk file\n\n" );
|
111 |
wprintf(L"\t-v <spkfile>\n\t-view <spkfile>\n\t\tViews the contents of a spk file\n\n" );
|
| 110 |
wprintf(L"\t-e <spkfile> [destination]\n\t--extractall <spkfile> [destination]\n\t\tExtracts all the files to the destination directory [or current if no destiantion is set]\n\n" );
|
112 |
wprintf(L"\t-e <spkfile> [destination]\n\t-extractall <spkfile> [destination]\n\t\tExtracts all the files to the destination directory [or current if no destiantion is set]\n\n" );
|
| 111 |
wprintf(L"\t-x <spkfile> <type> <file> [destination]\n\t--extract <spkfile> <type> <file> [destination]\n\t\tExtracts a single file of <type> to destination directory\n\n" );
|
113 |
wprintf(L"\t-x <spkfile> <type> <file> [destination]\n\t-extract <spkfile> <type> <file> [destination]\n\t\tExtracts a single file of <type> to destination directory\n\n" );
|
| 112 |
wprintf(L"\t-x <multispkfile> <file> [destination]\n\t--extractspk <multispkfile> <spkfile> [destination]\n\t\tExtracts a single spk file from a Multi-Spk Package\n\n" );
|
114 |
wprintf(L"\t-x <multispkfile> <file> [destination]\n\t-extractspk <multispkfile> <spkfile> [destination]\n\t\tExtracts a single spk file from a Multi-Spk Package\n\n" );
|
| 113 |
wprintf(L"\t-c <spkfile>\n\t--create\n\t\tCreates a new spk file\n\n" );
|
115 |
wprintf(L"\t-c <spkfile>\n\t-create\n\t\tCreates a new spk file\n\n" );
|
| 114 |
wprintf(L"\t-a <spkfile> <type> <filename>\n\t--append <spkfile> <type> <filename>\n\t\tAppends a file to the package of set <type>\n\n" );
|
116 |
wprintf(L"\t-a <spkfile> <type> <filename>\n\t-append <spkfile> <type> <filename>\n\t\tAppends a file to the package of set <type>\n\n" );
|
| 115 |
wprintf(L"\t-r <spkfile> <type> <filename>\n\t--remove <spkfile> <type> <filename>\n\t\tRemoves a file from the package of set <type>\n\n" );
|
117 |
wprintf(L"\t-r <spkfile> <type> <filename>\n\t-remove <spkfile> <type> <filename>\n\t\tRemoves a file from the package of set <type>\n\n" );
|
| 116 |
wprintf(L"\t-r <multispkfile> <filename>\n\t--removespk <multispkfile> <filename>\n\t\tRemoves a spk file from the Multi-SPK package\n\n" );
|
118 |
wprintf(L"\t-r <multispkfile> <filename>\n\t-removespk <multispkfile> <filename>\n\t\tRemoves a spk file from the Multi-SPK package\n\n" );
|
| 117 |
wprintf(L"\t-m <spkfile> <spkfile>\n\t--mergemulti <spkfile> <spkfile>\n\t\tMerges spk files together, the second file will be merged into the first\n\n" );
|
119 |
wprintf(L"\t-m <spkfile> <spkfile>\n\t-mergemulti <spkfile> <spkfile>\n\t\tMerges spk files together, the second file will be merged into the first\n\n" );
|
| 118 |
wprintf(L"\t-n <multispkfile>\n\t--createmulti\n\t\tCreates a multi spk file, and adds the spkfiles in\n\n" );
|
120 |
wprintf(L"\t-n <multispkfile>\n\t-createmulti\n\t\tCreates a multi spk file, and adds the spkfiles in\n\n" );
|
| 119 |
wprintf(L"\t-s <multispkfile> [destination]\n\t--splitmulti <multispkfile> [destination]\n\t\tSplits a Multi-SPK file up, saves all the spk files to Destination\n\n" );
|
121 |
wprintf(L"\t-s <multispkfile> [destination]\n\t-splitmulti <multispkfile> [destination]\n\t\tSplits a Multi-SPK file up, saves all the spk files to Destination\n\n" );
|
| 120 |
wprintf(L"\t--set <setting> [value]\n\t\tChanges the settings of the script\n\n" );
|
122 |
wprintf(L"\t-set <spkfile> <setting> [value]\n\t\tChanges the settings of the script\n\n" );
|
| 121 |
wprintf(L"\t--convertxsp <oldxsp> [newxsp]\n\t\tConverts an old XSP file into the new format\n\n");
|
123 |
wprintf(L"\t-convertxsp <oldxsp> [newxsp]\n\t\tConverts an old XSP file into the new format\n\n");
|
| 122 |
wprintf(L"\t--createscript <packagescript>\n\t\tCreates a spk file from a packager script\n\n");
|
124 |
wprintf(L"\t-createscript <packagescript>\n\t\tCreates a spk file from a packager script\n\n");
|
| 123 |
wprintf(L"\t--verifyscript <packagescript>\n\t\tChecks a packager script is valid without creating the resulting file\n\n");
|
125 |
wprintf(L"\t-verifyscript <packagescript>\n\t\tChecks a packager script is valid without creating the resulting file\n\n");
|
| 124 |
wprintf(L"\t--generatescript <package> [packagescript]\n\t\tCreates a packager script (.sps) from a spk file\n\n");
|
126 |
wprintf(L"\t-generatescript <package> [packagescript]\n\t\tCreates a packager script (.sps) from a spk file\n\n");
|
| 125 |
wprintf(L"\t--extractship <modfile> <xspfile> [shipid]\n\t\tCreates an XSP ship file from a mod package\n\n");
|
127 |
wprintf(L"\t-extractship <modfile> <xspfile> [shipid]\n\t\tCreates an XSP ship file from a mod package\n\n");
|
| 126 |
wprintf(L"\t--generateupdatefile <package>\n\t\tCreates an update file for the spk/xsp file\n\n");
|
128 |
wprintf(L"\t-generateupdatefile <package>\n\t\tCreates an update file for the spk/xsp file\n\n");
|
| 127 |
wprintf(L"\t--packagelist <filenames>\n\t\tThis will generate the update file to allow downloading packages from a server.\n\n");
|
129 |
wprintf(L"\t-packagelist <filenames>\n\t\tThis will generate the update file to allow downloading packages from a server.\n\n");
|
| 128 |
// printf ( "\t--convertxspwizard <oldxsp> [newxsp]\n\t\tConverts an old XSP file into the new format\n\n");
|
130 |
// printf ( "\t-convertxspwizard <oldxsp> [newxsp]\n\t\tConverts an old XSP file into the new format\n\n");
|
| 129 |
}
|
131 |
}
|
| 130 |
|
132 |
|
| 131 |
void Settings(const Utils::WString &filename, const Utils::WString &settings, int argc, char **argv, const Utils::WString &cmd)
|
133 |
void Settings(const Utils::CommandLine &cmd)
|
| 132 |
{
|
134 |
{
|
| - |
|
135 |
const Utils::WString &settings = cmd.arg(2);
|
| - |
|
136 |
const Utils::WString &filename = cmd.arg(1);
|
| 133 |
if ( settings.Compare(L"author") )
|
137 |
if ( settings.Compare(L"author") )
|
| 134 |
{
|
138 |
{
|
| 135 |
if ( argc < 5 )
|
139 |
if (cmd.argCount() < 4)
|
| 136 |
{
|
140 |
{
|
| 137 |
wprintf(L"Syntax: %s -set <spkfile> Author <authorname>\n\tSets the authors name of the package\n", cmd.c_str() );
|
141 |
wprintf(L"Syntax: %s -set <spkfile> Author <authorname>\n\tSets the authors name of the package\n", cmd.cmdName().c_str());
|
| 138 |
return;
|
142 |
return;
|
| 139 |
}
|
143 |
}
|
| 140 |
}
|
144 |
}
|
| 141 |
else
|
145 |
else
|
| 142 |
{
|
146 |
{
|
| Line 165... |
Line 169... |
| 165 |
}
|
169 |
}
|
| 166 |
|
170 |
|
| 167 |
// now do the settings
|
171 |
// now do the settings
|
| 168 |
if ( settings.Compare(L"author") )
|
172 |
if ( settings.Compare(L"author") )
|
| 169 |
{
|
173 |
{
|
| 170 |
spkfile.setAuthor(Utils::WString::FromString(argv[4]));
|
174 |
spkfile.setAuthor(cmd.arg(3));
|
| 171 |
wprintf(L"Settings Author to: %s\n", spkfile.author().c_str());
|
175 |
wprintf(L"Settings Author to: %s\n", spkfile.author().c_str());
|
| 172 |
}
|
176 |
}
|
| 173 |
|
177 |
|
| 174 |
spkfile.writeFile(filename);
|
178 |
spkfile.writeFile(filename);
|
| 175 |
printf ( "\nSPK file has been written sucessfully\n" );
|
179 |
printf ( "\nSPK file has been written sucessfully\n" );
|
| Line 1562... |
Line 1566... |
| 1562 |
int main ( int argc, char **argv )
|
1566 |
int main ( int argc, char **argv )
|
| 1563 |
{
|
1567 |
{
|
| 1564 |
// display program header to command prompt
|
1568 |
// display program header to command prompt
|
| 1565 |
printf ( "\nSPKTool V1.50 (SPK File Version %.2f) 14/02/2021 Created by Cycrow\n\n", (float)FILEVERSION );
|
1569 |
printf ( "\nSPKTool V1.50 (SPK File Version %.2f) 14/02/2021 Created by Cycrow\n\n", (float)FILEVERSION );
|
| 1566 |
|
1570 |
|
| 1567 |
// parse the cmd name
|
- |
|
| 1568 |
Utils::WString cmd (argv[0]);
|
1571 |
Utils::CommandLine cmd(argc, argv);
|
| 1569 |
cmd = cmd.findReplace(L"\\", L"/");
|
1572 |
g_dir = cmd.cmdDir();
|
| 1570 |
g_dir = cmd.tokens(L"/", 1, cmd.countToken(L"/") - 1);
|
- |
|
| 1571 |
cmd = cmd.token(L"/", cmd.countToken(L"/"));
|
- |
|
| 1572 |
|
- |
|
| 1573 |
g_read = false;
|
1573 |
g_read = false;
|
| 1574 |
|
1574 |
|
| 1575 |
// not enough arguments, display the syntax and exit
|
1575 |
// not enough arguments, display the syntax and exit
|
| 1576 |
if ( argc < 2 )
|
1576 |
if ( argc < 2 )
|
| 1577 |
{
|
1577 |
{
|
| 1578 |
PrintSyntax ( cmd.toString() );
|
1578 |
PrintSyntax(cmd.cmdName());
|
| 1579 |
exit ( 1 );
|
1579 |
exit ( 1 );
|
| 1580 |
}
|
1580 |
}
|
| 1581 |
|
1581 |
|
| 1582 |
Utils::WString fileTypes;
|
1582 |
Utils::WString fileTypes;
|
| 1583 |
for ( int i = 0; i < FILETYPE_MAX; i++ )
|
1583 |
for ( int i = 0; i < FILETYPE_MAX; i++ )
|
| Line 1597... |
Line 1597... |
| 1597 |
|
1597 |
|
| 1598 |
// get the command flag
|
1598 |
// get the command flag
|
| 1599 |
Utils::WString command(argv[1]);
|
1599 |
Utils::WString command(argv[1]);
|
| 1600 |
|
1600 |
|
| 1601 |
// display the contents of the spk file
|
1601 |
// display the contents of the spk file
|
| 1602 |
if ( command == L"-v" || command == L"--view" || command == L"--version")
|
1602 |
if ( command == L"-v" || command == L"-view" || command == L"-version")
|
| 1603 |
{
|
1603 |
{
|
| 1604 |
if ( argc < 3 )
|
1604 |
if ( argc < 3 )
|
| 1605 |
wprintf(L"Syntax: %s -v <spkfile>\n\tWill open and display the contents of the spkfile\n", cmd.c_str() );
|
1605 |
wprintf(L"Syntax: %s -v <spkfile>\n\tWill open and display the contents of the spkfile\n", cmd.cmdName().c_str());
|
| 1606 |
else
|
1606 |
else
|
| 1607 |
DisplayVersion(argv[2]);
|
1607 |
DisplayVersion(argv[2]);
|
| 1608 |
}
|
1608 |
}
|
| 1609 |
|
1609 |
|
| 1610 |
// creates a new spk file
|
1610 |
// creates a new spk file
|
| 1611 |
else if ( command == L"-c" || command == L"--create" )
|
1611 |
else if ( command == L"-c" || command == L"-create" )
|
| 1612 |
{
|
1612 |
{
|
| 1613 |
if ( argc < 3 )
|
1613 |
if ( argc < 3 )
|
| 1614 |
wprintf(L"Syntax:\n\t%s -c <spkfile>\n\t%s --create <spkfile>\n\t\tThis will create a new SPK file and allow you to set some basic settings for the file\n", cmd.c_str(), cmd.c_str() );
|
1614 |
wprintf(L"Syntax:\n\t%s -c <spkfile>\n\t%s -create <spkfile>\n\t\tThis will create a new SPK file and allow you to set some basic settings for the file\n", cmd.cmdName().c_str(), cmd.cmdName().c_str() );
|
| 1615 |
else
|
1615 |
else
|
| 1616 |
CreateFile ( argv[2] );
|
1616 |
CreateFile ( argv[2] );
|
| 1617 |
}
|
1617 |
}
|
| 1618 |
|
1618 |
|
| 1619 |
// appends a file onto the spk archive
|
1619 |
// appends a file onto the spk archive
|
| 1620 |
else if ( command == L"-a" || command == L"--append" )
|
1620 |
else if ( command == L"-a" || command == L"-append" )
|
| 1621 |
{
|
1621 |
{
|
| 1622 |
if ( argc < 4 )
|
1622 |
if ( argc < 4 )
|
| 1623 |
wprintf(L"Syntax:\n\t%s -a <spkfile> <type> <filename>\n\t%s --append <spkfile> <type> <filename>\n\t\tThis will append the file into the archive and compress it according to the files default compression\n\t<type> = %s\n", cmd.c_str(), cmd.c_str(), fileTypes.c_str() );
|
1623 |
wprintf(L"Syntax:\n\t%s -a <spkfile> <type> <filename>\n\t%s -append <spkfile> <type> <filename>\n\t\tThis will append the file into the archive and compress it according to the files default compression\n\t<type> = %s\n", cmd.cmdName().c_str(), cmd.cmdName().c_str(), fileTypes.c_str() );
|
| 1624 |
else
|
1624 |
else
|
| 1625 |
{
|
1625 |
{
|
| 1626 |
Utils::WString arg4;
|
1626 |
Utils::WString arg4;
|
| 1627 |
if ( argc > 4 )
|
1627 |
if ( argc > 4 )
|
| 1628 |
arg4 = argv[4];
|
1628 |
arg4 = argv[4];
|
| 1629 |
AppendFile ( argv[2], argv[3], arg4 );
|
1629 |
AppendFile ( argv[2], argv[3], arg4 );
|
| 1630 |
}
|
1630 |
}
|
| 1631 |
}
|
1631 |
}
|
| 1632 |
|
1632 |
|
| 1633 |
// removes a file from the spk archive
|
1633 |
// removes a file from the spk archive
|
| 1634 |
else if ( command == L"-r" || command == L"--remove" || command == L"--removespk" )
|
1634 |
else if ( command == L"-r" || command == L"-remove" || command == L"-removespk" )
|
| 1635 |
{
|
1635 |
{
|
| 1636 |
if ( argc < 4 )
|
1636 |
if ( argc < 4 )
|
| 1637 |
{
|
1637 |
{
|
| 1638 |
wprintf(L"Syntax:\n\t%s -r <spkfile> <type> <filename>\n\t%s --remove <spkfile> <type> <filename\n\t\tThis will remove a file from the archive\n\t<type> = %s\n", cmd.c_str(), cmd.c_str(), fileTypes.c_str() );
|
1638 |
wprintf(L"Syntax:\n\t%s -r <spkfile> <type> <filename>\n\t%s -remove <spkfile> <type> <filename\n\t\tThis will remove a file from the archive\n\t<type> = %s\n", cmd.cmdName().c_str(), cmd.cmdName().c_str(), fileTypes.c_str() );
|
| 1639 |
wprintf(L"\t%s -r <multispkfile> <filename>\n\t%s --removespk <multispkfile> <filename>\n\t\tThis will remove a spk file from the Multi-SPK package\n", cmd.c_str(), cmd.c_str() );
|
1639 |
wprintf(L"\t%s -r <multispkfile> <filename>\n\t%s -removespk <multispkfile> <filename>\n\t\tThis will remove a spk file from the Multi-SPK package\n", cmd.cmdName().c_str(), cmd.cmdName().c_str() );
|
| 1640 |
}
|
1640 |
}
|
| 1641 |
else
|
1641 |
else
|
| 1642 |
{
|
1642 |
{
|
| 1643 |
Utils::WString arg4;
|
1643 |
Utils::WString arg4;
|
| 1644 |
if ( argc > 4 )
|
1644 |
if ( argc > 4 )
|
| Line 1646... |
Line 1646... |
| 1646 |
RemoveFile ( argv[2], argv[3], arg4 );
|
1646 |
RemoveFile ( argv[2], argv[3], arg4 );
|
| 1647 |
}
|
1647 |
}
|
| 1648 |
}
|
1648 |
}
|
| 1649 |
|
1649 |
|
| 1650 |
// extracts a file from a spk file
|
1650 |
// extracts a file from a spk file
|
| 1651 |
else if ( command == L"--extractspk" )
|
1651 |
else if ( command == L"-extractspk" )
|
| 1652 |
{
|
1652 |
{
|
| 1653 |
if ( argc < 4 )
|
1653 |
if ( argc < 4 )
|
| 1654 |
wprintf(L"Syntax:\n\t%s --extractspk <multispkfile> <filename> [destination]\n\tThis will extract a spk file from the Multi-Spk package and save it to the destination path\n", cmd.c_str() );
|
1654 |
wprintf(L"Syntax:\n\t%s -extractspk <multispkfile> <filename> [destination]\n\tThis will extract a spk file from the Multi-Spk package and save it to the destination path\n", cmd.cmdName().c_str() );
|
| 1655 |
else
|
1655 |
else
|
| 1656 |
{
|
1656 |
{
|
| 1657 |
Utils::WString arg4;
|
1657 |
Utils::WString arg4;
|
| 1658 |
if ( argc > 4 )
|
1658 |
if ( argc > 4 )
|
| 1659 |
arg4 = argv[3];
|
1659 |
arg4 = argv[3];
|
| 1660 |
ExtractFile(argv[2], argv[3], arg4, Utils::WString::Null());
|
1660 |
ExtractFile(argv[2], argv[3], arg4, Utils::WString::Null());
|
| 1661 |
}
|
1661 |
}
|
| 1662 |
}
|
1662 |
}
|
| 1663 |
else if ( command == L"-x" || command == L"--extract")
|
1663 |
else if ( command == L"-x" || command == L"-extract")
|
| 1664 |
{
|
1664 |
{
|
| 1665 |
if ( argc < 4 )
|
1665 |
if ( argc < 4 )
|
| 1666 |
{
|
1666 |
{
|
| 1667 |
wprintf(L"Syntax:\n\t%s -x <spkfile> <type> <filename> [destination]\n\tThis will extract a file from the package and save it to the corect path in <directory>\n\t<type> = %s\n", cmd.c_str(), fileTypes.c_str() );
|
1667 |
wprintf(L"Syntax:\n\t%s -x <spkfile> <type> <filename> [destination]\n\tThis will extract a file from the package and save it to the corect path in <directory>\n\t<type> = %s\n", cmd.cmdName().c_str(), fileTypes.c_str() );
|
| 1668 |
wprintf(L"\t%s -x <multispkfile> <filename> [destination]\n\tThis will extract a spk file from the Multi-Spk package and save it to the destination path\n", cmd.c_str() );
|
1668 |
wprintf(L"\t%s -x <multispkfile> <filename> [destination]\n\tThis will extract a spk file from the Multi-Spk package and save it to the destination path\n", cmd.cmdName().c_str() );
|
| 1669 |
}
|
1669 |
}
|
| 1670 |
else
|
1670 |
else
|
| 1671 |
{
|
1671 |
{
|
| 1672 |
Utils::WString arg5, arg4;
|
1672 |
Utils::WString arg5, arg4;
|
| 1673 |
if ( argc > 5 )
|
1673 |
if ( argc > 5 )
|
| Line 1677... |
Line 1677... |
| 1677 |
ExtractFile(argv[2], argv[3], arg4, arg5);
|
1677 |
ExtractFile(argv[2], argv[3], arg4, arg5);
|
| 1678 |
}
|
1678 |
}
|
| 1679 |
}
|
1679 |
}
|
| 1680 |
|
1680 |
|
| 1681 |
// extracts all the files from an archive
|
1681 |
// extracts all the files from an archive
|
| 1682 |
else if ( command == L"-e" || command == L"--extractall" )
|
1682 |
else if ( command == L"-e" || command == L"-extractall" )
|
| 1683 |
{
|
1683 |
{
|
| 1684 |
if ( argc < 3 )
|
1684 |
if ( argc < 3 )
|
| 1685 |
wprintf(L"Syntax:\n\t%s -e <spkfile> [destination]\n\t--extractall <spkfile> <game> [destination]\n\t\tThis will extract all files of a set game into the destination directory\n\n\t\tGame = 0 will extract all files", cmd.c_str() );
|
1685 |
wprintf(L"Syntax:\n\t%s -e <spkfile> [destination]\n\t-extractall <spkfile> <game> [destination]\n\t\tThis will extract all files of a set game into the destination directory\n\n\t\tGame = 0 will extract all files", cmd.cmdName().c_str() );
|
| 1686 |
else
|
1686 |
else
|
| 1687 |
{
|
1687 |
{
|
| 1688 |
Utils::WString arg4;
|
1688 |
Utils::WString arg4;
|
| 1689 |
if ( argc > 4 )
|
1689 |
if ( argc > 4 )
|
| 1690 |
arg4 = argv[4];
|
1690 |
arg4 = argv[4];
|
| 1691 |
ExtractFiles(argv[2], arg4, CBaseFile::GetGameFromString(argv[3]));
|
1691 |
ExtractFiles(argv[2], arg4, CBaseFile::GetGameFromString(argv[3]));
|
| 1692 |
}
|
1692 |
}
|
| 1693 |
}
|
1693 |
}
|
| 1694 |
|
1694 |
|
| 1695 |
// creates a multispk archive
|
1695 |
// creates a multispk archive
|
| 1696 |
else if ( command == L"-n" || command == L"--createmulti" )
|
1696 |
else if ( command == L"-n" || command == L"-createmulti" )
|
| 1697 |
{
|
1697 |
{
|
| 1698 |
if ( argc < 3 )
|
1698 |
if ( argc < 3 )
|
| 1699 |
wprintf(L"Syntax:\n\t%s -n <multispkfile>\n\t%s --createmulti <multispkfile>\n\t\tThis will create a multispk file and allow you to add spk files to it\n", cmd.c_str(), cmd.c_str() );
|
1699 |
wprintf(L"Syntax:\n\t%s -n <multispkfile>\n\t%s -createmulti <multispkfile>\n\t\tThis will create a multispk file and allow you to add spk files to it\n", cmd.cmdName().c_str(), cmd.cmdName().c_str() );
|
| 1700 |
else
|
1700 |
else
|
| 1701 |
CreateMultiFile ( argv[2] );
|
1701 |
CreateMultiFile ( argv[2] );
|
| 1702 |
}
|
1702 |
}
|
| 1703 |
|
1703 |
|
| 1704 |
// merges 2 multi-spk archives together, or appends a single spk file into a multi-spk file
|
1704 |
// merges 2 multi-spk archives together, or appends a single spk file into a multi-spk file
|
| 1705 |
else if ( command == L"-m" || command == L"--mergemulti" )
|
1705 |
else if ( command == L"-m" || command == L"-mergemulti" )
|
| 1706 |
{
|
1706 |
{
|
| 1707 |
if ( argc < 4 )
|
1707 |
if ( argc < 4 )
|
| 1708 |
wprintf(L"Syntax:\n\t%s -m <spkfile1> <spkfile2>\n\t%s --mergemulti <spkfile1> <spkfile2>\n\t\tThis will add spkfile2 into spkfile1, if spkfile1 is a normal SPK file, it will be saved into a Multi-Spk file\nspkfile2 can also be a Multi-Spk file, all files within it will be added\n", cmd.c_str(), cmd.c_str() );
|
1708 |
wprintf(L"Syntax:\n\t%s -m <spkfile1> <spkfile2>\n\t%s -mergemulti <spkfile1> <spkfile2>\n\t\tThis will add spkfile2 into spkfile1, if spkfile1 is a normal SPK file, it will be saved into a Multi-Spk file\nspkfile2 can also be a Multi-Spk file, all files within it will be added\n", cmd.cmdName().c_str(), cmd.cmdName().c_str() );
|
| 1709 |
else
|
1709 |
else
|
| 1710 |
AppendMultiFile ( argv[2], argv[3] );
|
1710 |
AppendMultiFile ( argv[2], argv[3] );
|
| 1711 |
}
|
1711 |
}
|
| 1712 |
|
1712 |
|
| 1713 |
// splits the multi-spk file, exracts all spk files
|
1713 |
// splits the multi-spk file, exracts all spk files
|
| 1714 |
else if ( command == L"-s" || command == L"--splitmulti" )
|
1714 |
else if ( command == L"-s" || command == L"-splitmulti" )
|
| 1715 |
{
|
1715 |
{
|
| 1716 |
if ( argc < 3 )
|
1716 |
if ( argc < 3 )
|
| 1717 |
wprintf(L"Syntax: %s -s <multispkfile> [destination]\n\tSplits the Multi-SPK file and saves each spk file to the destiantion directory\n", cmd.c_str() );
|
1717 |
wprintf(L"Syntax: %s -s <multispkfile> [destination]\n\tSplits the Multi-SPK file and saves each spk file to the destiantion directory\n", cmd.cmdName().c_str() );
|
| 1718 |
else
|
1718 |
else
|
| 1719 |
{
|
1719 |
{
|
| 1720 |
Utils::WString arg3;
|
1720 |
Utils::WString arg3;
|
| 1721 |
if ( argc > 3 )
|
1721 |
if ( argc > 3 )
|
| 1722 |
arg3 = argv[3];
|
1722 |
arg3 = argv[3];
|
| 1723 |
SplitMulti ( argv[2], arg3 );
|
1723 |
SplitMulti ( argv[2], arg3 );
|
| 1724 |
}
|
1724 |
}
|
| 1725 |
}
|
1725 |
}
|
| 1726 |
|
1726 |
|
| 1727 |
else if ( command == L"--set" )
|
1727 |
else if ( command == L"-set" )
|
| 1728 |
{
|
1728 |
{
|
| 1729 |
if ( argc < 4 )
|
1729 |
if ( argc < 4 )
|
| 1730 |
wprintf(L"Syntax: %s --set <spkfile> <setting> [values]\n\tSets various settings in the package\n", cmd.c_str() );
|
1730 |
wprintf(L"Syntax: %s -set <spkfile> <setting> [values]\n\tSets various settings in the package\n", cmd.cmdName().c_str() );
|
| 1731 |
else
|
1731 |
else
|
| 1732 |
Settings(argv[2], argv[3], argc, argv, cmd);
|
1732 |
Settings(cmd);
|
| 1733 |
}
|
1733 |
}
|
| 1734 |
else if ( command == L"--setrating" )
|
1734 |
else if ( command == L"-setrating" )
|
| 1735 |
{
|
1735 |
{
|
| 1736 |
if ( argc < 6 )
|
1736 |
if ( argc < 6 )
|
| 1737 |
wprintf(L"Syntax: %s --setrating <spkfile> <easeofuse> <gamechanging> <recommended>\n\tSets the rating of the spk package\n", cmd.c_str() );
|
1737 |
wprintf(L"Syntax: %s -setrating <spkfile> <easeofuse> <gamechanging> <recommended>\n\tSets the rating of the spk package\n", cmd.cmdName().c_str() );
|
| 1738 |
else
|
1738 |
else
|
| 1739 |
SetRating(argv[2], Utils::WString(argv[3]).toInt(), Utils::WString(argv[4]).toInt(), Utils::WString(argv[5]).toInt());
|
1739 |
SetRating(argv[2], Utils::WString(argv[3]).toInt(), Utils::WString(argv[4]).toInt(), Utils::WString(argv[5]).toInt());
|
| 1740 |
}
|
1740 |
}
|
| 1741 |
else if ( command == L"--convertxsp" || command == L"--convertxspwizard" )
|
1741 |
else if ( command == L"-convertxsp" || command == L"-convertxspwizard" )
|
| 1742 |
{
|
1742 |
{
|
| 1743 |
if ( argc < 3 )
|
1743 |
if ( argc < 3 )
|
| 1744 |
wprintf(L"Syntax: %s %s <xspfile> [newxspfile]\n\tConverts an old format xsp file to work with the new format\n", cmd.c_str(), command.c_str() );
|
1744 |
wprintf(L"Syntax: %s %s <xspfile> [newxspfile]\n\tConverts an old format xsp file to work with the new format\n", cmd.cmdName().c_str(), command.c_str());
|
| 1745 |
else
|
1745 |
else
|
| 1746 |
{
|
1746 |
{
|
| 1747 |
Utils::WString arg3;
|
1747 |
Utils::WString arg3;
|
| 1748 |
if ( argc > 3 )
|
1748 |
if ( argc > 3 )
|
| 1749 |
arg3 = argv[3];
|
1749 |
arg3 = argv[3];
|
| 1750 |
ConvertXsp(Utils::WString::FromString(argv[2]), arg3, (command == L"--convertxspwizard") ? true : false);
|
1750 |
ConvertXsp(Utils::WString::FromString(argv[2]), arg3, (command == L"-convertxspwizard") ? true : false);
|
| 1751 |
}
|
1751 |
}
|
| 1752 |
}
|
1752 |
}
|
| 1753 |
else if ( command == L"--createscript" )
|
1753 |
else if ( command == L"-createscript" )
|
| 1754 |
{
|
1754 |
{
|
| 1755 |
if ( argc < 3 )
|
1755 |
if ( argc < 3 )
|
| 1756 |
wprintf(L"Syntax:\n\t%s --createscript <packagerscript>\n\t\tThis will create a spk/xsp file from a packager script\n", cmd.c_str() );
|
1756 |
wprintf(L"Syntax:\n\t%s -createscript <packagerscript>\n\t\tThis will create a spk/xsp file from a packager script\n", cmd.cmdName().c_str() );
|
| 1757 |
else
|
1757 |
else
|
| 1758 |
LoadPackagerScript ( argv[2], false );
|
1758 |
LoadPackagerScript ( argv[2], false );
|
| 1759 |
}
|
1759 |
}
|
| 1760 |
else if ( command == L"--generatescript" )
|
1760 |
else if ( command == L"-generatescript" )
|
| 1761 |
{
|
1761 |
{
|
| 1762 |
if ( argc < 3 )
|
1762 |
if ( argc < 3 )
|
| 1763 |
wprintf(L"Syntax:\n\t%s --generatescript <package> [packagerscript]\n\t\tThis will generate a packager script file from a spk/xsp file.\n", cmd.c_str() );
|
1763 |
wprintf(L"Syntax:\n\t%s -generatescript <package> [packagerscript]\n\t\tThis will generate a packager script file from a spk/xsp file.\n", cmd.cmdName().c_str() );
|
| 1764 |
else
|
1764 |
else
|
| 1765 |
{
|
1765 |
{
|
| 1766 |
if ( argc < 4 )
|
1766 |
if ( argc < 4 )
|
| 1767 |
GeneratePackagerScript ( argv[2], "", 0);
|
1767 |
GeneratePackagerScript ( argv[2], "", 0);
|
| 1768 |
else
|
1768 |
else
|
| 1769 |
GeneratePackagerScript ( argv[2], argv[3], 0);
|
1769 |
GeneratePackagerScript ( argv[2], argv[3], 0);
|
| 1770 |
}
|
1770 |
}
|
| 1771 |
}
|
1771 |
}
|
| 1772 |
else if ( command == L"--verifyscript" )
|
1772 |
else if ( command == L"-verifyscript" )
|
| 1773 |
{
|
1773 |
{
|
| 1774 |
if ( argc < 3 )
|
1774 |
if ( argc < 3 )
|
| 1775 |
wprintf(L"Syntax:\n\t%s --verifyscript <packagerscript>\n\t\tThis will read a packager script and check its correct without creating the resulting spk/xsp file\n", cmd.c_str() );
|
1775 |
wprintf(L"Syntax:\n\t%s -verifyscript <packagerscript>\n\t\tThis will read a packager script and check its correct without creating the resulting spk/xsp file\n", cmd.cmdName().c_str() );
|
| 1776 |
else
|
1776 |
else
|
| 1777 |
LoadPackagerScript ( argv[2], true );
|
1777 |
LoadPackagerScript ( argv[2], true );
|
| 1778 |
}
|
1778 |
}
|
| 1779 |
else if ( command == L"--extractship" )
|
1779 |
else if ( command == L"-extractship" )
|
| 1780 |
{
|
1780 |
{
|
| 1781 |
if ( argc < 4 )
|
1781 |
if ( argc < 4 )
|
| 1782 |
wprintf(L"Syntax:\n\t%s --extractship <modfile> <xspfile> [shipid]\n\t\tThis will create an xsp ship file by extracting from a mod file\n", cmd.c_str() );
|
1782 |
wprintf(L"Syntax:\n\t%s -extractship <modfile> <xspfile> [shipid]\n\t\tThis will create an xsp ship file by extracting from a mod file\n", cmd.cmdName().c_str() );
|
| 1783 |
else
|
1783 |
else
|
| 1784 |
{
|
1784 |
{
|
| 1785 |
if ( argc < 5 )
|
1785 |
if ( argc < 5 )
|
| 1786 |
ExtractShip ( argv[2], argv[3], L"" );
|
1786 |
ExtractShip ( argv[2], argv[3], L"" );
|
| 1787 |
else
|
1787 |
else
|
| 1788 |
ExtractShip ( argv[2], argv[3], argv[4] );
|
1788 |
ExtractShip ( argv[2], argv[3], argv[4] );
|
| 1789 |
}
|
1789 |
}
|
| 1790 |
}
|
1790 |
}
|
| 1791 |
else if (command == L"--generateupdatefile")
|
1791 |
else if (command == L"-generateupdatefile")
|
| 1792 |
{
|
1792 |
{
|
| 1793 |
if (argc < 3)
|
1793 |
if (argc < 3)
|
| 1794 |
wprintf(L"Syntax:\n\t%s --generateupdatefile <package>\n\t\tThis will generate the update file to allow auto updates for a package\n", cmd.c_str());
|
1794 |
wprintf(L"Syntax:\n\t%s -generateupdatefile <package>\n\t\tThis will generate the update file to allow auto updates for a package\n", cmd.cmdName().c_str());
|
| 1795 |
else
|
1795 |
else
|
| 1796 |
GenerateUpdateFile(argv[2]);
|
1796 |
GenerateUpdateFile(argv[2]);
|
| 1797 |
}
|
1797 |
}
|
| 1798 |
else if (command == L"--packagelist")
|
1798 |
else if (command == L"-packagelist")
|
| 1799 |
{
|
1799 |
{
|
| 1800 |
if (argc < 3)
|
1800 |
if (argc < 3)
|
| 1801 |
wprintf(L"Syntax:\n\t%s --packagelist <filenames>\n\t\tThis will generate the update file to allow downloading packages from a server.\n", cmd.c_str());
|
1801 |
wprintf(L"Syntax:\n\t%s -packagelist <filenames>\n\t\tThis will generate the update file to allow downloading packages from a server.\n", cmd.cmdName().c_str());
|
| 1802 |
else
|
1802 |
else
|
| 1803 |
GenerateUpdateList(argc, argv);
|
1803 |
GenerateUpdateList(argc, argv);
|
| 1804 |
}
|
1804 |
}
|
| 1805 |
|
1805 |
|
| 1806 |
// not a valid switch, display syntax
|
1806 |
// not a valid switch, display syntax
|
| 1807 |
else
|
1807 |
else
|
| 1808 |
PrintSyntax(cmd);
|
1808 |
PrintSyntax(cmd.cmdName());
|
| 1809 |
|
1809 |
|
| 1810 |
#ifdef _DEBUG
|
1810 |
#ifdef _DEBUG
|
| 1811 |
char pause;
|
1811 |
char pause;
|
| 1812 |
scanf ( "%s", &pause );
|
1812 |
scanf ( "%s", &pause );
|
| 1813 |
#endif
|
1813 |
#endif
|