CivAssist II

CivAssist II 30-Oct-2016

ainwood

Consultant.
Administrator
Moderator
Joined
Oct 5, 2001
Messages
30,085
CivAssist II


Background:
The original CivAssist program was written in VB, and not really structured particularly well. Whilst it was OK in terms of what it did, it was quite buggy, difficult to maintain, and had a lot of issues in terms of the user-interface etc.

Mid-2004, I was contacted by Tomas, a programmer who was (in his own words), sick of programming what other people make him (although for money), and wanting to do something for fun (and for free). He offered some excellent feedback on ways to improve the UI. After a bit of discussion on possible improvements, it became clear that to make any dramatic improvement, it would be best to start over

Tomas offered to "help" with the re-write, and we basically entered into an agreement where I'd give him the old source code; in return he'd teach me C#, and we'd work on it together. ("Help", 'cause it was really me pretending to help him) ;)

The actual result is that whilst I learned the basics, all the really cool stuff is Tomas' work. The project wouldn't have got anywhere without his effort, so I pass my sincere thanks to him for that and for teaching me C# (and also for putting up with my bad coding habits learned from years as a VB hack!).


Enough of the intro: The result of about 7-months effort, working across different time zones (and the international date line) is what is attached to this thread. We actually had working versions back in December / January, but due to bug fixes and "Just one more feature-creep", it took us a bit longer... :mischief:


What is this for?
CivAssist II is a program designed to remove a lot of the tedious micromanagement from Civilization III. In addition to this, it also provides a lot of extra information to really help with the management of your empire.

Most of the features of the original CivAssist are included, along with a lot of new ones.

The best place to learn about all the features is from our on-line help.

If you have problems access the online help, try this link instead



Installation::

You can download the program from:

Download HERE Version 2.0.2387, 15/July/2006.

After downloading, simply run the installer.

The program is written in C#, which means that it requires the .Net framework. If you do not have it installed, then the installer should prompt you to visit the Microsoft Downloads page and download the framework (a one-time download) It is a reasonably large download, but we hope you think it is worth it! (and more and more .Net programs on the market will mean you will probably need it eventually anyway).

If you are unsure as to where to download the .Net framework, then you can get it from here:
.Net download page (23698 KB in size).


If you have any comments, bug reports or suggestions, then please post them in this thread.

For Bug Reports, please post the details of the problem (and a save file if possible), and also note the Version number that has the bug (from the "options" screen).


Additional "thanks" go to:

  1. Dianthus and Gramphos, for assistance with the various Civ3 save file format structures and identifying some of the game 'rules'.
  2. Dianthus again, for save-file compression code.
  3. mydisease for the technology cost formula.
  4. alexman for information on AI research priorities and the corruption formulae.
  5. BomberEscort for the basis of the combat calculations.
  6. DaveMcW for the information on the Palace Jump formula and SirPleb for the garrison-size tweak to it.
  7. pdescobar for the Palace Cost formula.
  8. Firaxis for producing such a great game (and for posting the odd detail of the mechanics!
 
Version 2.0.1962.
*Changed behavior so that you could see output (and get tile options) for 'barbarian' tiles.
*Provided hot-key to toggle CivAssist focus (~) - maximise & minimise.
*Provided hot-key to toggle Alerts window (Ins)
*Added ability to filter autosaves from file picker.
*Improved display of Disconnected Resource Alert
*Added UnclaimedTiles to Territory View.

*Fixed worker, settler and artillery unit descriptions.
*Fixed problem with techs with no era affecting listview display.
*Fixed bug with units in boats being shown in combat calculator.
*Fixed issue with gold being shown for rivals in multiplayer.
*Fixed PathToBiq to read from over-ride install path.
*Fixed issue with Flavours on techs (and hopefuly trading of flavoured techs as well)
*Fixed issue with GetAllPreRequisites on techs with NULL era.
*Fixed issue with "Process with an Id of 0 is not running" reported by Furiey
*Improved calcualtion of turns to complete project in production and culture tabs.
*Fixed "Hide until next alert" feature on Alert form
*Fixed issue with C3C improvements/wonders still showing as being able to be built when they had expired.


Version 2.0.1975
*Fixed Divide by zero error with city shields.
*Fixed ROP / MPP switch on diplomacy screen.
*Fixed total civ culture threshold check.
*Added File Operations to the Open File/Open File from Archive (rename, delete, compress/decompress)
*Added Current Era to the General and Diplomacy Views, added Government to the Diplomacy View
*Added compression for archived saved games
*Added option to turn off "Minimize CivAssist when in the game" (for users with multiple screens)
*Added option to show compressed files in color
*Added "Rival has entered new Era" alert
*Shortened time CivAssist blocks game save to minimum (should stop problem with CivAssist preventing game saves from being compressed).
*Added Pollution column to the Cities view (Total [Shields+Population])
*Added error reporting feature
*Added list of missing graphical files (on Options dialog)
*Replaced ListView in Alerts view with alert form display (solves the "missing horizontal scrollbar in alerts" bug)
*Improved "There are foreign units in our territory" alert to report land, sea and air units separately
*Fixed typo in "Options" (Automatically)
*Added "Email" command to Open File dialog (launches default email client with selected saved game as attachment)
*Modified way how CivAssist monitors autosaves directory (should work on all Windows versions now)
*Fixed exception with manual directories in archive directory.
*Improved rioting cities / about to riot alert.
*City garrison size now reports correctly.
*Fixed issue with Civname being shown for tiles where you don't have contact with the civ.
*Fixed unit upgrade cost calculation.
*Prevented Techs that can't be traded from showing in trade options.
*Fixed alert context menu to show proper View name instead (reported by Michelangelo)
*Improved position of multiplayer login dialog when CivAssist is minimized (CenterScreen)
*Fixed minor bug with World Map View was not properly centered around selected tile after program restored from minimized state


Version 2.0.1982
*Added persistence for Planned Cities
*Added persistence for World Map View settings
*Added Keyboard Shortcuts into the World Map View context menu
*Added Alt+F2 and Alt+F3 keyboard shortcuts to load Latest Save and Latest Opened Save (only works with when game is also running)
*Improved error handling for unknown patch versions.
*Modified tech costs for when the player doesn't know which civs have the tech.
*Added City Details to world map view.
*Hot Keys are now handled without using window hook
*Added option to swallow mouse click so that game does not respond to the first click (disabled by default)
*Fixed economy to use first planned city if capital is not available
*Fixed city info to only work for player's and planned cities
*Added option to turn-off archive compression
*Fixed issue with planned towns not clearing properly.
*Changed capital behavior, so that first planned town gets capital icon.
*Added method for worked tiles to be 'added' and 'removed' to planned towns (Alt+click with city selected).
*Added reporting of city output raw (base food, shields & gold) and Modified (with corruption/waste, without building effects) to world map.
*Fixed retreat calculations on combat calculator.

Version 2.0.2024
*Added turn number into the 'Current Year' alert
*Fixed code to use custom names rather than default ones (if specified)
*Added "City is running on deficit." alert (when expenses are greater than income)
*Added World Properties to the World Map View (available if not playing GOTM/COTM because could be used to recreate the world)
*Added ability to create animated gif or combined image from entire map or view
*Fixed maintenance per turn costs.
*Improved city planning to allow place city in the immediate neighborhood of rival cities
*Combat calculator could be used to see chance of enemy units attacking player's unit
*World Map View now shows list of all units on the selected Tile
*MapView now shows number of units on tile (top unit + number of additional units)
*Fixed bug in showing city flip info where flip chance is not obvious.
*Improved accuracy of economic model.
*Fixed problem with commerce from expired wonders.
*Added Export feature to all list views
*Added option to pick how often CivAssist checks its surroundings (among other things for hotkeys), this could be used to solve problem on some computers
*Added ability to close Open File and Open File from Archive forms while still loading the files (click on Cancel button or use ESC key)
*Added option to minimized CivAssist instead of closing it when user hits [x] button
*World Map View now highlights forests which will yield 10 shields when cleared
*Selected tile details now display information whether selected tile was already used to produce 10 shields from forest
*Improved PCX file loading
*Improved multiplayer support (CivAssist now automatically selects correct player)

Version 2.0.2089
*Improved Open from Archive speed when archive deleted
*Fixed bug with alerts being processed twice (causing alerts based on comparison between two saves to be broken)
*Fixed bug with some texts in World Properties being displayed incorrectly
*Can now turn-off alerts from the mini alert window (rather than main program) - use the context menu.
*"Hide until new alerts arive" now ignores current date alert.
*Fixed bug with Trade Embargoes not being evaluated correctly.
*Added %waste to production tab.
*New Luxury/Resource to buy alert now reports only surplus and shows amount (if > 1)
*Added new last turn production overrun alert
*Added new pollution alert
*Research overrun alert now also shows beakers per turn and beakers needed.

Version 2.0.2108
*Added localization code (you can pick your locale in Options and text in your language will be displayed properly, tested on Russian)
*Fixed incorrect city improvement cost calculation for civs with commercial trait
*Modified 'Research overrun' alert to also report when 'Lone scientist' approach would achieve the same results
*Improved MapView look when drawing the map for the first time
*Added option to choose color used for 'Shield' Forests in map view
*Added visual clue for tiles which could be forested and deforested to obtain 10 shields (once you own technology to plant forests)

Version 2.0.2126
*Modified localization code to work better with non-unicode systems.
*Fixed load bug with 'reverse capture the flag' scenarios.
*Added flip risk to cities screen (Min risk - max risk (Garrison))
*Fixed problem with incorrect cast on loading multiplayer saves.
*Fixed way in which deals are read in.

Version 2.0.2149
*Fixed issue with text on WinME.
*Added population and rival population to General Info screen.
*Unlocked ability to see game from the view of another player (need to open completed game to enable this feature for all saved games of given game, disabled for GOTM/COTM)

Version 2.0.2152
*Fixed minor issue with pre-requisites for non-era techs.
*Fixed issue with world-map view allowing users to determine BGs under jungle/forest.


Version 2.0.2153
*Fixed issue with transported units being shown.
*Changed city planner to allow planned cities to be placed anywhere.
*City Flip risk now sortable.
*Fixed minor bug with technology screen not showing all civs.

Version 2.0.2387
*Fixed buildings with "replace all" flag added by wonders.
*Fixed production multipliers for power plants (affected by hoover dam)
*Fixed exception clicking on blank space in resource finder.
*Fixed forest chops not registering correctly for PTW & Civ3.
 
It is a very cool program. On the version I have the text on some of the buttons doesn't fit. but other than that I haven't found anything untoward so far.

:thumbsup:
 
when I click open file button, I got an error.. full details here:

Edit: everything works fine if I click continue to ignore the error thou..

Edit: hid the long error message to not clutter up page

Spoiler :
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentException: Item has already been added. Key in dictionary: "4/26/2005 4:48:42 PM" Key being added: "4/26/2005 4:48:42 PM"
at System.Collections.SortedList.Add(Object key, Object value)
at b0.a(String A_0, String A_1, String A_2, Int32 A_3)
at b0.d()
at b0.a(EventArgs A_0)
at System.Windows.Forms.Form.set_Active(Boolean value)
at System.Windows.Forms.Form.WmActivate(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscorlib.dll
----------------------------------------
System
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------
System.Drawing
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
----------------------------------------
CivAssist
Assembly Version: 2.0.1956.35136
Win32 Version: 2.0.1956.35136
CodeBase: file:///C:/Program%20Files/CivAssist%20II/CivAssist.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
----------------------------------------

************** JIT Debugging **************
To enable just in time (JIT) debugging, the config file for this
application or machine (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the machine
rather than being handled by this dialog.
 
Gyathaar said:
when I click open file button, I got an error.. full details here:

Edit: everything works fine if I click continue to ignore the error thou..

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentException: Item has already been added. Key in dictionary: "4/26/2005 4:48:42 PM" Key being added: "4/26/2005 4:48:42 PM"
Well, that's not a good start! :blush:

This is something that we hadn't considered - two files with the same timestamp (probably copies?)

We (Meaning Tomas ;)) will try to fix it soon(ish).
 
ainwood said:
Well, that's not a good start! :blush:

This is something that we hadn't considered - two files with the same timestamp (probably copies?)

We (Meaning Tomas ;)) will try to fix it soon(ish).
Ah.. yes.. I located the file it it was the save from turn before winning SGOTM06 which I made a copy of before uploading it :)
 
Here's to days of civving ahead! :D :goodjob:

edit: Oh goody - a 106 MB file going at 14 kbs / sec. I think I'll leave this running while I'm at school... :crazyeye:

Framework 1.1 is the same as 1.1.4305 or something or other that the program lists you have to have, correct?
 
Sad to say, I've got a bug, be it a cosmetic one.

When I start CivAssist II it opens, but the captions on the buttons aren't there, it just blank.

The functionality is there, and the tool-tip text is there to, just not the basic caption.

When I click to open a file, I can open it and after a while, et voila, the captions appear. :confused:
Just noticed while typing this post, the buttons appear also when doing nothing, it just takes about 5 minutes.


BTW, I've got .NET framework v 1.1.4322 freshly installed and a P3, 750 MHz.
 
I get this when trying to launch...

Something about a process performance counter being disabled...

Spoiler Crazy exception error nonsense... :
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.InvalidOperationException: Process performance counter is disabled, so the requested operation cannot be performed.
at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library)
at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine)
at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName)
at System.Diagnostics.Process.EnsureState(State state)
at System.Diagnostics.Process.get_ProcessName()
at g5.a(Process A_0)
at g5.a()
at g5.a(Object A_0, EventArgs A_1)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.Callback(IntPtr hWnd, Int32 msg, IntPtr idEvent, IntPtr dwTime)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscorlib.dll
----------------------------------------
CivAssist
Assembly Version: 2.0.1956.40069
Win32 Version: 2.0.1956.40069
CodeBase: file:///C:/Program%20Files/CivAssist%20II/CivAssist.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
----------------------------------------
System
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------
System.Drawing
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
----------------------------------------
Accessibility
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/accessibility/1.0.5000.0__b03f5f7f11d50a3a/accessibility.dll
----------------------------------------

************** JIT Debugging **************
To enable just in time (JIT) debugging, the config file for this
application or machine (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the machine
rather than being handled by this dialog.




Please tell me i'm just being stoopid.
 
Ginger_Ale said:
Here's to days of civving ahead! :D :goodjob:

edit: Oh goody - a 106 MB file going at 14 kbs / sec. I think I'll leave this running while I'm at school... :crazyeye:

Framework 1.1 is the same as 1.1.4305 or something or other that the program lists you have to have, correct?
Yes - but as Michelangelo mentions, you only need the cut-down version to get it to run.

@chunkymonkey: What version of windows are you using?

It appears that the performance counter on your PC has been disabled (apparently, a bug in the framework causes it to throw an expection if this happens).

You might want to have a look at this artile as it offers some suggestions on how to fix it. this article has some suggestions as well.
 
Thanks Ainwood, I've been playing around with my system registry all day and I stumbled across another article an hour or so ago which helped out. I was missing two data files from my /system32 directory, which seemed to have been corrupted when I installed Service Pack 2 (microsoftmumblemumble)... managed to retrieve them and everything's working now! :D

Looks amazing by the way! Good job, and to Tomas too! :thumbsup:
 
ainwood said:
Yes - but as Michelangelo mentions, you only need the cut-down version to get it to run.

@chunkymonkey: What version of windows are you using?

It appears that the performance counter on your PC has been disabled (apparently, a bug in the framework causes it to throw an expection if this happens).

You might want to have a look at this artile as it offers some suggestions on how to fix it. this article has some suggestions as well.

It works now.
 
Ginger_Ale said:
Yes, but the only way I could get it is using this Windows Update thing - I'd rather just be able to download all of it, just in case. Better safe than sorry!

edit: It seems it didn't work. I still get the Yes / No box when it says "Civ Assist Needs .NET Framework v1.1.xxxx to run" (or something like that). But I just installed that:

Anybody have a link to that 20+ mb version just needed to run?
Darn... :( That's the software develor kit, so if you've got a compiler, you can start writing .net programs!


re your question, Yes - Tomas sent the link, and I've posted it above.
 
Brilliant, great effort, though I could nitpick a few cosmetic issues (I've been doing quite a bit of QA testing at work recently... I've developed an eye for things "not quite right" with UIs!) But I've not had any nasty errors yet - though I've only been working on a single save, and not playing.
 
Top Bottom