Eliteness Version 2.xx

Fixes: see fixes.txt

General inspection and play tool by Mikero@norfolk.nf

Originally designed to assist with Flashpoint : Elite for the xbox and developed as such by  Mikero and Hoz. We have become rather fond of the name, even though it is a much more capable tool than simply handling Xbox files.

Appreciation to Ofpec, Planck. Hoz, Jahve, Raedor, Phaeden, Q, Kegs, and many others, for support and encouragement in testing this tool.

Eliteness accommodates unique features found in the following BI engines

Eliteness does not work with the VBS1 & 2 engines.

This tool has no  association with Bohemia Interactive and no approval, warranty, implied use, or permission has been given by them. Nor is that ever likely to be the case. Use this tool at own risk. If thru using this tool, your mother in law drops down  dead or you wife runs off with your secretary, well. hell. Sue me.

Installation instructions.


General Functionality.

OFP Elite Functions:

Arma Functions

Notes:

This is a multi-purpose tool for all engine varieties. Specifically

As such, there are specific quirks for each engine that this tool cannot discover for itself unless told specifically about the engine output required.

Use the options panel in the gui to explicitly MAKE pbo's, or, raPified (binarised) files for a given engine.

PBO's

All later versions of the engine 'understand' earlier headers. However, to specifically create a header of specific type (Elite eg), and with correct signature, use the options panel to do so. Default on installation is Resistance.

Rapified Files

Config.bin (eg) Rapification for Armed Assault and Elite.

Binarised files for Armed Assault and Elite use a newer method of raPification. To convert a config.cpp (eg) to a config.bin for THESE engines, the tool must explicitly know which method to use since nothing in the text file (mission.sqm eg) tells it which way to encode.

The type of raPification is implicitly defined in the options panel, via the engine selection. Eg, Selecting resistance, will binarise using the older encoding.

The type of raPification can be explicitly defined in the text file concerned by stating

#define _ARMA_  or
#define _XBOX_   [withSignature]
 

Without the define, text files are assumed to be for Flashpoint. This means no files from and for OFP require any modification.

#pragma

As a nicety, the #pragma directive is synonymous for above. Eg

#pragma _ARMA_  or
#pragma _XBOX_

Unfortunately the engine's C compiler will not accept pragma directives. Therefore, although more correct, use it only in config.cpp's (eg) that you do, indeed, intend to raPify as the engine will not accept this pragma and throw an error.

XBOX Signatures

Mission,pars, header.bins and other files intended for the Xbox (and unique to the xbox) require correct signatures inserted into them by this tool.

The macro

#define  XBOX withSignature  // or #pragma XBOX withSignature

is required in the mission.par text file and similarly the header.bin text file for this to take place automatically.

Any file derapified by this tool automatically has the above #defines inserted, as appropriate.

#define __EMPTY_CLASS(cls) class cls{}

deprecated statement that has no effect (other than to do exactly as above)


Options Panel

To cater for the various engines available, certain features are enabled / disabled according to selection.

For instance, since file signatures are only applicable to Elite, the options dealing with this (verification or creation) are only enabled when Elite is selected as the engine.

The drop down engine selection has particular significance when creating pbo's. or creating rapified files.

Arma and Elite pbo's cannot, for instance, be compressed.

No Make/Create confirmation

Creating and extracting pbo's can, naturally, be a dangerous process, simply because it creates files. Normally, you would want to be asked first. The option exists to turn this confirmation off, if you find it annoying.

No Query on Delete

Similar comment

Show CD Drives

Since these devices are read only, and since, filling the explorer tree can take some time, normally, cd drives are not shown in the navigation window.

When creating a pbo....

None of the following options affect the external files. Thumbs.db however is never installed in a pbo.

Do nothing Special

No file is inspected or altered. The pbo creates a mirror of files in the target folder (except for thumbs.db)

Automatically Lintcheck

When creating pbo's, this application can check the syntax of description.ext, config.cpp, and mission.sqm rvmat files  for errors before making the pbo.

Alternatively, you can manually check these files via the right click in the file window.

Automatically Rapify

config.cpp, and mission.sqm and all rvmat files can be installed in the pbo as binarised. This can significantly improve engine load times, to say nothing of the implicit error free state of  successfully binarised text.

Automatically Rapify Keep Text

When enabled, the original mission.sqm text file (eg) is renamed in the pbo as mission.sqm.txt

Similar comment for config.cpp

If you are distributing your mission campaign or addon, NOT including the original text files is a mild form of intellectual property right protection.


Ask For Prefix

This option is enabled when Elite or Arma engines are selected.

Eliteness will automatically assign a prefix in the pbo header to the name of the pbo. Where the user wants a specific path and filename attachment. this option is available and will be requested during MakePbo time. Any other addons requiring access to this addon, must use the prefix name you supply, to do so.

Note also, that this option is not necessary if recreating official bi addons. Eliteness is aware of them..

Compress Files

When enabled, files are compressed inside the pbo. The exception list provides for typical file extensions (such as jpg) that have no benefit in doing so and only increase engine load times.

Compression is not currently implemented and may never be. It is a deprecated option for all engine types, being a 'good idea at the time'.


RAPIFY and DERAPIFY controls

DeRapfiy

The application is aware of specific file extensions that are (or might be) in rap format. Examples

right clicking, or, double clicking on these files types (among others) allows the option of decoding them. When attempting to open these types of files as text (the default 'action' when double clicking), the application automatically checks first if, in fact, it contains raPified content and treats them appropriately.

General Lint Options

Prior to release 2.28 of eliteness, lack of semicolons at end of line was 'acceptable'. The ofp engine (versus arma) accepts an 'assumed' semicolon where end of line is reached.

Due to the pernickedness of Arma, and the fact that it's 'not a good idea' anyway, the default for arma, is to scream if these items are missing.

Desctription.ext is notorious for the following:

 titles[] =
 {
  0, $STRD_DX02v01;
  13, $STRD_DX02v01a
 };
 

the semicolon is not rapifiable (which is the reason why desc.ext cannot be binarised.

The default for this is to allow the semicolon to pass thru un checked. Not a good idea, but too many desc files have this structure and would cause lint to scream a little too much.

 this is the defualt for Arma Elite selection, so the the #define _ARMA_ macro is not required (but it's good practice anyway to state it)

 

 

Rapify

Any text file with the appropriate class {..} syntax can be rapified for use as one of the above files. The name of that text file is (obviously) up to the author (you). To rapify a file, it must be opened in the window, and subsequently SavedAs... Eliteness cannot 'know' that a specific file.txt that you choose to use as a source for raPification is a config.bin, .rvmat file or whatever. it must be opened and viewed in the text window of Eliteness for that reason.


PBO CREATION

Create a bikey (arma only)

An Arma pbo contains an MD5 checksum signature at the end of the file.

This signature does nothing more (or less) than verify the integrity of the pbo. It is ignored by the arma engine and need not be present at all!

However, this same signature is used to generate the bikey used for MP play.

The bikey is generated from a combination of an authors private key and the pbo's MD5 checksum.

Enabling the above check, causes a bikey for THIS 'unique' pbo,  to be generated.

Be aware, that if you choose to generate a bikey at all:

no two pbos can ever have identical MD5 checksums due to timestamps. If you recreate your pbo, even with, identical data, you need , a new bikey.

-----------

The following functionality is a feature of the accompanying DLL. The Eliteness tool exposes these features.

Special file handling.

thumbs.db

$PBOPREF$

Eliteness attempts to maintain compatibility with other tools trying to wrestle with unique features of Armed Assault.

In essence, an arma/elite pbo uses the resistance header to contain file prefix information. The prefix is used for other addons to access this one.

The following comments apply when the full features of the dll are employed to automate the process of creating binarised missions and addons. To create plain vanilla pbo's with no special handling (eg just like any other pbo tool) simply select do nothing, in the options panel.

description.ext

config.cpp

confg.cpp.txt

Following comments apply only if AutoRap Keep Text option selected. Otherwise this file is treated 'normally'.

config.bin

mission.sqm

mission.sqm.txt

mission.bin

*.rvmat

Create


Sqs Sqf

Reference to Desqs is available on menu (right click) but is a work in progress and only available (currently) on the debug version of Eliteness