Announcement

Collapse
No announcement yet.

Crash: City Cultural Influence Extending Over Edge of Map

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Crash: City Cultural Influence Extending Over Edge of Map

    Not sure if anyone posted this in the bug list, but the game will
    crash if the cultural influence of the city ever extends past the
    north pole (and probably the south pole also).

    This can occur hours into gameplay, and seeming for no reason
    when at the end of a turn the game will crash. Reloading, from
    an earlier save game won't work and neither will restarting.
    Somewhere down the line, the crash can occur.
    This is because a city may be okay when it is newly built, but as
    its culture grows, so does it radius of cultural influence, until
    *crash*.

    This can occur on random maps where sometimes land
    placement extends closer to the poles, and the computer will
    happily build cities where there is viable land.

    This has occured to other people as well and as a note to map
    makers, don't place land too close to the poles:



    The crash can be avoided in game by razing any offending city
    that is too close to a pole. It is necessary to use the scenario
    editor to check that no land is too close to the poles.
    Fortunately, the random world generator rarely puts land to close
    to the poles. It is obvious foresight by the programmers and it is
    generally a good workaround.

    Hopefully, though, the civ3 developers do fix this in a patch
    because not allowing land to be a screen away from the poles is
    not a feature when you can't turn it off. It signifies a rushed
    development schedule.

    If it is a speed concern, will adding this limiter check for every city
    really slow down the code that much?
    Program method 1 (fastest):
    Predetermined mask/map used to check if resources are in range.
    This mask is the shape of the cultural influence.
    Adding a limiter would mean not checking the complete mask.
    This messier to program around. The key is to arrange the
    mask into a list with rows of coordinate data. The mask
    is limited by only searching the rows that are in a valid range.

    Program method 2 (medium):
    If one were to use a formula to determine if a square were in
    range of a city, i.e. pseudocode:
    if( square(x-Cx)+square(y-Cy) lessthan square(Cinfluence) )
    why not also:
    && (y>=0) && (y lessthan MAPSIZEY)
    and even:
    && (x>=0) && (x lessthan MAPSIZEX)
    I realize it is a little more complicated than this for cities on the
    edge of the map.

    In fact, this problem is probably the same reason that the
    unscrollable world that everyone wanted was not implemented.
    That is why we can't have a map of Europe and not walk
    from Spain to Austria. Because the land can't extend to the
    closing edge of a map without crashing the program when a
    city is built too close to the edge.

    BTW, a torus or toroidal shaped world would be nice to add in a
    patch also. This is where the top and bottom edges of the map
    are also connected. (but not necessary)


    Civ3 works well on my computer:
    Intel P3 866EB; 512MB RAM; 80GB ATA/100; 5x DVD
    ATI AIW Radeon 32MB; Win 98SE; DirectX 8.0a; etc.
    Last edited by yinyan8; November 17, 2001, 15:50.
Working...
X