C2C SVN Changelog

Trouble with this is, if you a person like me, i dont have a .doc reader, so i have no idea what it says??

Ah, yes, didn't think about that.

Here's the link to the google docs version, tell me if you want any other format.

https://docs.google.com/document/d/1KRnAqsUIwwp1khWuQupYlIL9F_JpTnzQUHEUPKgXnog/edit

@jmmendesp

You could have just edited your other post instead of making a new one.

I know, and I would've done so, except I thought I wouldn't have been able to replace the old file with the new one in the attachments - so I decided (without much thought put into it, to be fair) that a new post would be better to bring attention to the correct file.
 
Did you put this in the disease branch or in the core?
I have deleted the disease branch for now because I don't think it will be useful with V25 released (and it was unused beyond one commit by me which I merged back into my local copy and will commit when my current project, a build list editing screen, is complete).
 
Just pushed to SVN (3268):
  • Fixed (or at least, heavily mitigated) ocean artifacting when new ocean tiles are revealed when viewports are active

This was (at a technical level) quite interesting, and very illustrative of why it's such a pain trying to browbeat the graphics engine into doing what you need it to! It boils down to two functions the game engine provides for use by the DLL, which look related, but turn out not to be as closely related as you would think! These are:
Code:
virtual void RebuildAllPlots() = 0;
virtual void RebuildPlot(int plotX, int plotY, bool bRebuildHeights, bool bRebuildTextures) = 0;
I had asumed that RebuildAllPlots() basically just did a RebuildPlot() on every plot. However, after trial and error it turns out that calling rebuildAllPlots() will regenerate the wave layer that was missing on revealed ocean, whereas RebuildPlot() (even if called on every plot!) will not. RebuildAllPlots() is also about 100 times (literally) faster than calling RebuildPlot on every plot.

Anyway, the net of it all, is that there doesn't seem to be any way to solve the issue without a call to RebuildAllPlots() (which does FAR more work than should be necessary just to cause one plot to be repainted!). Because this is expensive to call (circa 1 second or so for a 40X40 viewport on my machine) I have added a delayed amalgamation mechanism so that when a reveal detects the need for a rebuild it just queues up a request. The request is serviced asyncronously as soon as the latest request is at least a second old - the effect is that one long move (or a continuous sequence of moves, for example by automated units) only results in a single repaint request at the end of the sequence, so you only get one pregnant pause, instead of lots of stuttering. The downside is that the ocean-without-any-waves tile is visible for that second, but it seems like an OK compromise - let me know how it seems for you.
 
Just pushed to SVN (3268):
  • Fixed (or at least, heavily mitigated) ocean artifacting when new ocean tiles are revealed when viewports are active

This was (at a technical level) quite interesting, and very illustrative of why it's such a pain trying to browbeat the graphics engine into doing what you need it to! It boils down to two functions the game engine provides for use by the DLL, which look related, but turn out not to be as closely related as you would think! These are:
Code:
virtual void RebuildAllPlots() = 0;
virtual void RebuildPlot(int plotX, int plotY, bool bRebuildHeights, bool bRebuildTextures) = 0;
I had asumed that RebuildAllPlots() basically just did a RebuildPlot() on every plot. However, after trial and error it turns out that calling rebuildAllPlots() will regenerate the wave layer that was missing on revealed ocean, whereas RebuildPlot() (even if called on every plot!) will not. RebuildAllPlots() is also about 100 times (literally) faster than calling RebuildPlot on every plot.

Anyway, the net of it all, is that there doesn't seem to be any way to solve the issue without a call to RebuildAllPlots() (which does FAR more work than should be necessary just to cause one plot to be repainted!). Because this is expensive to call (circa 1 second or so for a 40X40 viewport on my machine) I have added a delayed amalgamation mechanism so that when a reveal detects the need for a rebuild it just queues up a request. The request is serviced asyncronously as soon as the latest request is at least a second old - the effect is that one long move (or a continuous sequence of moves, for example by automated units) only results in a single repaint request at the end of the sequence, so you only get one pregnant pause, instead of lots of stuttering. The downside is that the ocean-without-any-waves tile is visible for that second, but it seems like an OK compromise - let me know how it seems for you.

All I understood of that was the last sentence:lol:
 
More updates (rev 3269):
  • Enhanced the modifier recalculation to also recalculate tile visibility from scratch. This means that a modifier rebuild will cure the situation that Volkarya recently reported where ships sometimes leave behind 'rings' of visible tiles in their wake (I haven't managed to find out what causes that, but this will at least cure it). Note that it is also (in principal) necessary anyway, as an asset change may modify sight ranges.
  • Fixed the highlighting of plots when viewports are active. There were many cases, but the common one was the highlighting of worked plots in the city screen. All cases should now work correctly.

Edit - rev 3270, also:
  • Changed selection centering, so that using the center key ('C') will not only center the selected tile on screen (as it always has), but also center the viewport there if the selected tile would otherwise be within 5 tiles of the edge of the viewport
 
Updates
  • Merged disease branch back into trunk and deleted disease branch.
  • Fixed loading build lists saved with Ctrl-1 and similar when using the option to invert shift behavior.
  • Added a WIP build list editing screen (neither complete nor does it anything beyond displaying things yet).
 
Updates:

-All Cuirassier units now require Horse and Sulphur and Firearms.
-All Cavalry units now require Horse and Ammunition and Firearms.
-Many gunpowder units now require Firearms
-Many Culture Units now have more than 2 AND requirements
-Many ships now have more than 1 unit graphically with Single Unit graphics disabled.
-The Rurales is now based off of Cavalry, not the Cuirassier.
-Fixed a typo on the Tomol.
 
Just pushed to SVN (3275):
  • Fixed fog-of-war mis-setting after recalc
 
Just pushed to SVN (3280):
  • Fixed crash when using selection centering key with nothing selected
 
Back
Top Bottom