Author: Mikero
All Mikero tools 'behave', install, and operate in an identical manner. You are strongly advised to read the General Readme once.
MoveObject will rename file paths inside any:
whether binarised or plain.
The intention of moveobject is that you should be able to extract ANY of these file types from one addon, and place it in another addon without fuss.
In addition moveObject will unconditionally remove a drive specifier (p:\ eg) whenever encountered. This option is best suited to folder scans where the arguments for replacement are dummy.
For anyone who's been there and dun that, hand editing the path names inside individual p3d's, let alone 30 or so p3d's, well, frankly, just throw money.
There are two classes of usage using moveobject. Listing content, and separately, renaming content.
A no nonsense auto installer saving you sweat and tears.
Do not run this, or any tool from bis, as administrator.
'Admin' is not what you think it is, it is an alias for 'Microsoft Office Use only'.
Consider yourself warned.
Grab the self installers for these here
-R is deprecated, use dep3d.exe instead
[.p3d] is no longer a default. The extension must be specified
see ListObjects.bat for more information.
moveobject [-options...] FileOrFolder // list only
moveobject [-options...] FileOrFolder [from to]
moveobject [-options...] FileOrFolder replacement.list
Options are case insensitive.
[.ext] is p3d by default. Any other file type (wrp eg) must be specified
Files examined are
rvmat
p3d
wrp
pew
pbo
-X
| Convert all references to lowercase
-V
| Verify after changes (deprecated)
-P
| Don't pause
Automatic removal of drive:\ specifiers or \hard\path
This occurs automatically for all files whether other changes are made or not.
To simply remove all drive specifiers without further fuss
moveobject [-P] nameOfFileOrFolder dummy dummy
normal replacements can also be specified
Lowercase removal
Similar to above all file references are forced to lowercase.
moveobject [-P]X nameOfFileOrFolder dummy dummy
'from' references are case insensitive when matching. the to reference is, as stated, on the command line (or replacement list)
-List examples
moveobject NameOfRVmat.rvmat
moveobject folder >pipe.txt 2>&1 // full folder tree
The list option is used to:
Rename Example
moveobject MyOldP3d MyGreatAddon\somewhere\data MyNewAddon\Henry\Marbles\wherever\you\want
Note that on success, the original file(s) are not preserved. It is your responsibility to tuck them away safely somewhere.
The target file is NOT altered if an error is encountered.
Wildcard replacement
A severely limited wildcard astersk is use to alter ONLY speficic file.ext references.
moveobject -options fileorfolder aaa\bbb*.paa ccc\ddd\eee
Will only affect references to paa files (in this example)
The two tandem batch files in the package are examples of how to make a global change to all files in a given folder
There usage may not be necessary with the folder option introduced at a revision i don't now recall. They are preserved for your interest.
Notes:
All renaming must be from start\of\folder.
If you specify a leading slash, it will be ignored. It is neither correct, nor incorrect to do so. It is however, extremely convenient to use dos tabbing to fill out the full pathway. Similarly (because of dos tabbing) a drive: specifier is also ignored.
Bis have made their usual cock up of hard versus relative addressing in their file structures. They are unlikely to ever fix what is beyond their abilities. No matter what, no if's and no maybe's. ALL bis addressing is \hard\path. So thi makes ooops object modelling a frustrating and pointless waste of effort.
However, because of their own internal mess, some path specifications must have a preceding slash, some must not have, and other types don't care. Move object takes care of which is what without you worrying about it.
Where you have differing child paths, (and most models have lots of differing child paths) you need to successively invoke MoveObject until you are complete starting with children then parents. MoveObject eases this by accepting a txt file of iterative lists.
Restrictions
ofp unbinarised p3d's (odol-sp3x) cannot have
Wrp unbinarised {{ofp}} files (4WVR) cannot have
wrp unbinarised arma files (8WVR) cannot have
Be prepared to wait a very long time on 1gig wrp files
Replacement.list
The text file must contain the following format (as if each line were passed on the command line)
The name of the text file is irrelevant. replacement.lst is what movefolder uses when firing up moveobject.
OldName1 space NewName1
OldName2 space NewName2
The parser for this is very primitive and very unforgiving
ListObjects.bat
This batch file produces a sorted list of all files found in any p3d, rvmat, wrp, pew or folder (binarised or otherwise).
It is particularly used when upgrading your island to a new engine and evaluation which other addons will be needed
Syntax
ListIslandObjects Name\of\Folder
ListIslandObjects Name\of\wrp:p3d.rvmat.pew
The item (or folder) can simply be dropped onto this bat file.
Sorted and output is to NameOf.objects.txt
Wrp Land_XXX classes
Applies ONLY to arma binary wrps
Moving objects from one path to another is fine, renaming p3d's is NOT.
The reason being the binary wrp contains embedded information about that p3d in it's classed models. If you change to another model, that information is invalid. The dll checks for the special case of a 'classed model' being renamed (not the path, the model). There is no affect in renaming ordinary p3d's. only those that are land_classed.
There is of course an exception to above where, in fact, you have also renamed the p3d! In that special circumstance, the wrp information remains valid, and you genuinely do want to call it something different.
-W allows this.