SetVersion
SetVersion version 2.xx by Mikero.
see readme general
see fixes
SerVersion changes the RequiredVersion= of any config.cpp/bin within an
addon.pbo
It is specifically targetted at (but not limited to) making Arma ONE addons
compatible with Arma TWO.
For the most part this will work, because. for the most part, the engine
'understands' the alternate p3d compressions (lzss) inside arma1. And / Or, the
p3d models and classes are largely in the same /ca/folder/ network.
As an aside, but, for the removal of some half dozen objects in the arma2 addons,
sara, and most missions would have been compatible with a2. There is no readily
available upgrade path, rendering all previous efforts and mission creation,
redundant. So much for a retaining a loyal customer base.
Secondly, why on earth each revision of the engine from cwc through to arma2 has
revision values LESS than previous engines defies all explanation.
Useage
SetVersion [-options] 1.03(eg) SomePbo[.pbo] [AnotherPbo[.pbo]]
options
-x Exclude config.cpp(s) from revision. only revise bin
-p dont pause
note that SetVersion is recursive. It will change ALL config.cpp/bins's
encountered in the pbo
Return Values
for Dos usage it is useful to 'know' (via ERRORLEVEL) what operation was
performed
0 VERSION_CHANGED: a change took place
1 VERSION_SAME: the RequiredVersion(s) are identical to what was wanted no
change to pbo
2 VERSION_NONE: no config(s) (or no RequiredVersion= in those configs) found. no
change to pbo
3 VERSION_ERROR: file could not be processed in some way
CAVEAT EMPTOR and ROE (rules of engagement)
Config.cpp
Config.cpp is normally a text file. It can, alternatively be encountered in a
binarised form, and to all intents is a config.bin
When config.cpp IS a text file, SetVersion attempts to convert it 'on the fly'
to a binarised form
This conversion will fail if paths are incorrect for #include statements (eg).
Generally, any binarisation of a config requires that you set up a P: drive
You also may not wish to do this for several reasons. You can use the -x option
to prevent setversion changing config.cpp's
HOWEVER
if allowed, and IF encountered, and IF successful, the original 'file' is
renamed to config.cpp.txt, and a new text file replaces it. THIS, NEW text file
will be stripped of all comments and #includes (because they are unecessary at
this point)
Note finally, that this is a kludge. Redundant hpp files and included cpp text
files will remain in the pbo, where, normally, these too would be removed during
the rapification process.