Resource icon

MapTweaker Utility (beta) - Copy/Paste/Resize Bix Files! 2016-10-05

Dr Alimentado

Prince
Joined
Dec 21, 2002
Messages
402
Location
Iest
[Edit 18/01/04: version 0.9b added]

This is an early beta of my MapTweaking Utility. It currently does copy/paste (within a map or between maps), map resizing, map 'nudging', and has an analyser tool (plus tile properties dialog etc.)

It's pretty rough round the edges at the moment, it only works with uncompressed bic/bix/biq files and it dosen't update resource or continent counts when you copy and paste (you have to reload the bix in civ3XEdit to get this.) However, it provides some much missed functionality from the editor so with a little care you may get some use from it :)

Here's the MapTweaker.exe:

[Updated version 0.9b added 18/01/04]
MapTweaker0.9b.exe



Here is a DLL this version uses to get at the pcx files:

FreeImage.DLL


And if you don't have them already you will need the 1.1b .NET runtimes I'm afraid, get them from micro$oft here:

.NET runtimes


Here's the readme:

=============================================


Overview:
-------------------
This is a 'very beta' release of my MapMaking tool. It is a MDI (multiple document interface) application that can load and display uncompressed bic/bix/biq files, perform various operations and save the changed data to a bic/bix/biq again. As it dosen't actually do real 'map-making' yet this beta version is more appropriately called MapTweaker. :)

Current features are copy and paste functionality, map resizing and nudging, resizeable minimap, painting terrain/resources, and analysis stats dialog.


What you need to run MapTweaker:
--------------------------------------------------------
This utility was made with .NET and as such requires the .NET 1.1 runtime. You can download it from microsoft at this url: http://www.microsoft.com/downloads/...e3-f589-4842-8157-034d1e7cf3a3&displaylang=en

In order to read pcx files (only used for resources.pcx in this current form) I have used a dll called FreeImage.dll, it is a 'free source' dll released under a GNU General Public Licence. The documentation for this can be found in it's zip. It needs to be placed in the same directory as the MapMaker.exe. At some point I will eliminate the need for a 600k dll by writing a couple of k of code to do the pcx reading manually... call me lazy for the moment. [Dianthus from CFC has kindly given me his C++ source for reading pcx files, I have a crack team converting it to vb.net... watch this space!]



Installation:
---------------------
Just unzip the MapMaker.exe and FreeImage.dll into your main Civilisation III folder. You can optionally unzip them into another folder anywhere you like and the first time you run the app you will be prompted to manually set the location of the Civilisation III folder.
MapMaker makes no registry entries on your computer and can be uninstalled by simply deleting the exe.



Limitations and workarounds:
-----------------------------------------------
The Map gfx are just a simple representation of the actual tiles, this keeps the loading and displaying of gfx fast. I may yet add an in-game gfx window that will display the map as it would be seen in civ3 when I get the directx sdk going... but I have a ton of other features I want to add first!

The utility in it's current state does little to nothing with the image data in each tile. This means that when you perform operations that move tiles around the map the edges of the changed areas will appear pretty screwy when you load the bix in civ3edit - however the underlying data is correct. To get the correct image data again reload the changed bix into civ3XEdit and paint (change) a tile where it is screwed up and civ3edit will readjust the image(s) appropriately. Eventually I'll get round to figuring out the patterns for this too.
It is important to reload a changed bix into civ3XEdit to allow it to readjust the resource and continent counts also.

You should only use basic maps with this version of MapTweaker - if you have cities or units placed on the map and change the tiles they are sitting on it will cause unpredictable behaviour. You can export and import the basic map data from civ3XEdit for this purpose.

The Selection Tool is a little clumsy around the edges of a selection, you can however modify the selection (or just toggle individual tiles to be selected) by holding down CTRL and clicking.

Note that for the moment MapTweaker can only load uncompressed bix files - To save an uncompressed bix file in civ3XEdit goto View-Options and uncheck the 'Compress BIC File' box. I'll add decompression functionality soon enough :)

Due to the way in which pcx files are currently read non-standard transparent colours will display incorrectly. This means that mods that use pcx files with transparent colours which are different from the colours in the standard pcx files will have problems displaying resources correctly. This will be fixed when I actually write some code to read the pcx files. Custom graphics that use the same transparent colours as the equivalent PTW file should load and display with no problems.

The continent data is not yet updated in anyway by MapMaker. As long as you load the changed bix into civ3XEdit all will be well but it means that the analysis tool will attribute resources to the wrong continents after moving tiles around the map. This will be fixed in a future version.



Known bugs:
----------------------
Start Locs added in maptweaker (by copying a tile with a start loc) may crash the bix (drat!), a workaround is to remove the start loc in civ3XEdit before loading the bix in MapTweaker or after using MapTweaker in civ3XEdit remove it in tile properties, using the r-click -> Delete -> Start Loc will crash it though. I think I know what is causing this, a fix shouldn't be too hard. [still not fixed... for the moment I advise working on maps with no start positions, or at least not copying or placing start locs in maptweaker.]


Bug Reports:
-----------------------
This is an early beta version and there are no doubt plenty of bugs I haven't caught yet! Every time the application runs it creates a debugLog.txt file, if you would like to make a bug report try and recreate the bug (with debug logging set to verbose preferably) then send a description of the error plus the debugLog.txt file and bix file generated during that operation to this email address:

MapTweakDebug@craven-griffiths.net.


You are welcome to send questions comments or ideas to this email address:

MapMaker@craven-griffiths.net


Alternatively just post your bugs and/or comments in the forum thread where you got this from :)




credits:
-------------
Gramphos and others for the incredibly helpful file format threads at Poly. No file format threads = no MapTweaker, nuff said.
ideas, encouragement (ie. listening to me ranting), alpha testing and web space: All the Civ3DuelZone.com MapMaking staff and Admins (and special mention to Melifluous for some early code :D)
Dianthus for providing his source code for pcx reading.
All who give feedback and bug reports in the various forums.





Version History
-------------------------

changes from 0.8b to 0.9b

Features and functionality:
- added C3C (BIQ) support. [Added new terrain types, note: Marsh and Volcano will be visible but unpickable in the brush picker when using non-C3C maps, if pasted from a C3C map into a non-C3C map they will revert to: marsh-> grassland ; volc-> mountains.]
- added change tile bonuses functionality to Tile properties dialog, changed the layout and interface of dialog.
- added selection tools and new menu; analyse selection, deselect tiles of type/terrain, select all/none
- made resources gfx slighlty oversized on map to enhance visibility, added resource gfx toggle in Options-Map gfx

Bug Fixes:
- fixed the reset code in the Resize and Nudge Dialogs so that they reset properly after applying the tool - should fix fatal errors after using the 'apply' button :O
- fixed error with pasting tiles containing modded resources into non-modded map - If you paste tiles with resources that don't exist in the target map (the resourceID number is > max No.of resources) the resource will now be deleted.
- fixed minimap scrolling 'sticking' with very small maps

Misc:
- added BIC Mode indicator in map properties dialog. Useful because C3C editor can save files with .bic/.bix extensions - but actually saves them in BIQ file format! MapTweaker will detect that these files are actually BIQ files and save them as such. Added a pop-up to notify user when such a map is loaded too.
- improved the paint terrain and paint resource functions to better detect whether they should paint or not.
- overhauled the InfoPanel code, messages outputted to user should be more meaningful... (removed some useless messages, added some useful ones, increased the default no of retained messages to 50, added a max no of messages and purge messages options to Options-General)


============================================





Ideas, bug reports, questions, All feedback is welcome :)
 
Originally posted by Dr Alimentado
In order to read pcx files (only used for resources.pcx in this current form) I have used a dll called FreeImage.dll, it is a 'free source' dll released under a GNU General Public Licence. The documentation for this can be found in it's zip. It needs to be placed in the same directory as the MapMaker.exe. At some point I will eliminate the need for a 600k dll by writing a couple of k of code to do the pcx reading manually... call me lazy for the moment.
Hey, Dr, you're lazy :). I wrote some code to do this for my CIVReplay stuff, feel free to use it if you want. The source is <here>
 
Originally posted by Dr Alimentado
BIQ support will be in the next release hopefully, BIC files are already supported :)
I hope you find the updated BIQ reference on Poly useful for adding BIQ support. The double defenition of terrain values makes it hard to keep things compatible if you just try to upgrade old functions (and work with saves as well *sigh*) But your utility should not have sush big problem of that, since it's not so very big as C3MT.
 
First I have to say: Thanks alot!!! This tool is very usefull for very map maker at civfanatics. But I ahev some little problem with your map tweaker and I hope perhaps you or someone can help me with this. When I try to save the resized map I get following error message:
Error writing to File
Error during save:
System.ArgumentException: Source array was not long enough. Check srcIndex and lenght, and the array's lower bounds
at System.Array.Copy (Array SourceArray, Array destinationArray, Int32 destinationArray)
at DrAm.Map.write2file (String sFilename)

Please help me because I want to use this tool!!!! Perhaps it isn't such a big problem, but for me this error message looks like a spanish dialect spoken backwards by an old chinese woman from Switzerland (you know what I mean :D :D :D ).
 
Ouch, thanks for the heads up Lynx-Eyed. If you can reproduce the error after setting the degug Logging level = verbose (in options) then send me the debuglog.txt file and the bix/bic file it would help me greatly in fixing any bug.

C3C support is about done, I'll release 0.9b at the end of the week most likely.
 
I know what the problem is, I used the C3C editor to save my bix and bic files. I will wait until your release of a version which supports biq files too. I hope it will be soon. Can't wait!!!!
 
The C3C editor already does this if you load and save a .bic or .bix file, it just uses the current file ext instead of '.biq' for the filename. The actual data is in the biq file format and has the correct biq version numbers etc. embedded within it, I think I'm right in saying you just need to manually change the file ext to '.biq' in the save dialog (or in windows explorer after saving.)

At the moment I have it so that my app automatically detects the actual file format (and informs you if it dosen't match the file ext) on loading, and then saves it in the same format with the correct file ext on saving.
I could add the ability to manually set the BIC mode to save in if it's useful to you.
 
No it isn't, you can only upgrade files to biq's (same as civ3XEdit upgrades bic's to bix's.)

Changing the BIC mode of normal map files (just a map, no custom rules enabled and no units or cities on the map) will be fairly straightforward to implement. But doing the same for files with custom rules won't be possible until I add in support for scenarios generally.
 
Top Bottom