.com.unity Forums
  The Official e-Store of Shrapnel Games

This Month's Specials

Raging Tiger- Save $9.00
winSPMBT: Main Battle Tank- Save $6.00

   







Go Back   .com.unity Forums > Illwinter Game Design > Dominions 3: The Awakening

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old November 29th, 2007, 08:24 AM
vfb's Avatar

vfb vfb is offline
General
 
Join Date: Mar 2007
Location: Japan
Posts: 3,691
Thanks: 269
Thanked 397 Times in 200 Posts
vfb is on a distinguished road
Default The scale bug is caused by province neighbors

Summary:
The scale bug occurs when you have more than 6 foreign (indy or hostile) neighbors attached to your home province, and those neighbors have inferior scales to your home.

This includes "ghost" neighbors. "Ghost" neighbors exist in provinces with less than 6 real neighbors, when you create a new game without exiting the dom3 application. They are left over data from the previous game.

If you have less than 7 neighbors attached to your home province, including having no "ghost" neighbors, you will not get the scale bug.

Once your dominion spreads to neighbor #7, this bug will be temporarily squished in the game. If it spreads to neighbor #1 but not #7, you will only see partial scale loss.

If you acquire an additional province which also has more than 6 neighbors, once you have positive dominion in the province, it is also vulnerable to the bug.

There may of course be additional bugs which cause the scales to start vanishing later in the game.



I stepped through the application, specifically the host_scales() function. The scales for the home province are adjusted based first on a comparison with the 7th neighbor (esi register is initially 6, and is used as an index into the geo table, whose neighbor entries are offset from 0). If the home province has any positive scale (which is represented as a negative number) better than the neighbor, that scale is incremented (made worse). Then the process loops up to 19 more times comparing to the first neighbor (esi=0), each time sucking away scales.

It will not compare the scales to provinces under the dominion the nation. I realize this conflicts with reports of scales also disappearing in the late game. I could be misinterpreting offset 0x41 in the land table, I think it's the province owner (nation number) but I'm not sure. Edit Nope, 0x41 is the offset for the id of the nation whose dominion the province is under.

I was able to reproduce no initial scale loss by creating random MA Rlyeh games where the home province had 6 or fewer neighbors. And I was able to reproduce initial scale loss by creating random MA Rlyeh games where the home province had 7 or more neighbors.

But since my assembler is a bit rusty, I'm not entirely sure this is 100% correct.

So I'd appreciate it if people in games where the home province has 7 neighbors and no scale bug, (or 6 or less neighbors and the scale bug) could post their saves to this thread.

Edit: More testing: I created a few more games with O3P3 scales, all nations (all human), random starts. All nations with 6 or less neighbors at their home province did not lose scales. All nations with 7 or more neighbors lost scales.
__________________
Whether he submitted the post, or whether he did not, made no difference. The Thought Police would get him just the same. He had committed— would still have committed, even if he had never set pen to paper— the essential crime that contained all others in itself. Thoughtcrime, they called it. Thoughtcrime was not a thing that could be concealed forever.
http://z7.invisionfree.com/Dom3mods/index.php?
Reply With Quote
 

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT -4. The time now is 04:52 PM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©1999 - 2024, Shrapnel Games, Inc. - All Rights Reserved.