1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Assertion failed! (FArray.h i < ARRAY_SIZE)

Discussion in 'Civ5 - SDK / LUA' started by ww2commander, Feb 10, 2013.

  1. ww2commander

    ww2commander Emperor

    Joined:
    Aug 23, 2003
    Messages:
    1,243
    Location:
    Australia
    Have had this message a few times in the past and always solved it, but this time it has me stumped.

    The message I get is:
    Code:
    Assertion failed!
    Line:149
    Expression: i < ARRAY_SIZE
    I am not a C++ guru so not sure what the code is doing on that line, but it seems to be confirming the size of a specific table being passed.

    I have checked units, buildings and promotions and they are all under 255 entries so its not the usual offender.

    What I want to know (if someone can help) is what other tables are being checked through the code in FArray.h?

    Is there any way of telling or do I have to go through a wild goose chase by adding and removing tables in my mod!
     
  2. Gedemon

    Gedemon Modder Super Moderator

    Joined:
    Oct 4, 2004
    Messages:
    9,632
    Location:
    France
    I can give you this, where you have Firaxis::Array<type, size > name

    Spoiler :
    Code:
    Search "Firaxis::Array" (76 hits in 14 files)
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL\CvPlayer.cpp (3 hits)
    	Line 1011: 		Firaxis::Array< int, NUM_YIELD_TYPES > yield;
    	Line 14346: 		Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppaaiSpecialistExtraYield[eIndex1];
    	Line 14379: 		Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppaaiImprovementYieldChange[eIndex1];
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL\CvPlayer.h (3 hits)
    	Line 1559: 	FAutoVariable< std::vector< Firaxis::Array<int, NUM_YIELD_TYPES > >, CvPlayer> m_ppaaiSpecialistExtraYield;
    	Line 1560: 	FAutoVariable< std::vector< Firaxis::Array<int, NUM_YIELD_TYPES > >, CvPlayer> m_ppaaiImprovementYieldChange;
    	Line 1563: 	FAutoVariable< std::vector< Firaxis::Array< int, NUM_YIELD_TYPES > >, CvPlayer> m_ppaaiBuildingClassYieldMod;
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL\CvTeam.h (15 hits)
    	Line 429: 	Firaxis::Array< int, REALLY_MAX_TEAMS > m_aiTechShareCount;
    	Line 430: 	Firaxis::Array< int, REALLY_MAX_TEAMS > m_aiNumTurnsAtWar;
    	Line 431: 	Firaxis::Array< int, REALLY_MAX_TEAMS > m_aiNumTurnsLockedIntoWar;
    	Line 432: 	Firaxis::Array< int, NUM_DOMAIN_TYPES > m_aiExtraMoves;
    	Line 433: 	Firaxis::Array< int, REALLY_MAX_TEAMS > m_paiTurnMadePeaceTreatyWithTeam;
    	Line 435: 	Firaxis::Array< bool, REALLY_MAX_PLAYERS > m_abHasFoundPlayersTerritory;
    	Line 436: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abHasMet;
    	Line 437: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abAtWar;
    	Line 438: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abPermanentWarPeace;
    	Line 439: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abOpenBorders;
    	Line 440: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abDefensivePact;
    	Line 441: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abResearchAgreement;
    	Line 442: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abTradeAgreement;
    	Line 443: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abForcePeace;
    	Line 444: 	Firaxis::Array< int, REALLY_MAX_PLAYERS > m_aiTurnTeamMet;
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL\CvTraitClasses.cpp (4 hits)
    	Line 923: 						Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppaaiImprovementYieldChange[iImprovementLoop];
    	Line 934: 						Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppaaiSpecialistYieldChange[iSpecialistLoop];
    	Line 1043: 	Firaxis::Array< int, NUM_YIELD_TYPES > yield;
    	Line 1561: 		Firaxis::Array< int, NUM_YIELD_TYPES > yield;
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL\CvTraitClasses.h (2 hits)
    	Line 386: 	std::vector< Firaxis::Array<int, NUM_YIELD_TYPES > > m_ppaaiImprovementYieldChange;
    	Line 387: 	std::vector< Firaxis::Array<int, NUM_YIELD_TYPES > > m_ppaaiSpecialistYieldChange;
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL_Expansion\CvEspionageClasses.h (10 hits)
    	Line 116: typedef Firaxis::Array<int, MAX_MAJOR_CIVS> MaxTechCost;
    	Line 117: typedef Firaxis::Array<std::vector<HeistLocation>, MAX_MAJOR_CIVS> HeistLocationList;
    	Line 215: typedef Firaxis::Array<int, MAX_MAJOR_CIVS> SpyAssignmentList;
    	Line 216: typedef Firaxis::Array<int, MAX_MAJOR_CIVS> SpyAmountProgressList;
    	Line 217: typedef Firaxis::Array<int, MAX_MAJOR_CIVS> SpyRateProgressList;
    	Line 218: typedef Firaxis::Array<int, MAX_MAJOR_CIVS> SpyGoalProgressList;
    	Line 219: typedef Firaxis::Array<int, MAX_MAJOR_CIVS> LastProgressList;
    	Line 220: typedef Firaxis::Array<int, MAX_MAJOR_CIVS> SpyResultList;
    	Line 221: typedef Firaxis::Array<int, MAX_MAJOR_CIVS> LastPotentialList;
    	Line 222: typedef Firaxis::Array<int, MAX_MAJOR_CIVS> NumTimesCityRobbedList;
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL_Expansion\CvMinorCivAI.cpp (1 hits)
    	Line 8436: 	Firaxis::Array<CvEspionageSpy*, MAX_MAJOR_CIVS> apSpy;
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL_Expansion\CvPlayer.cpp (5 hits)
    	Line 1090: 		Firaxis::Array< int, NUM_YIELD_TYPES > yield;
    	Line 16267: 		Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppaaiSpecialistExtraYield[eIndex1];
    	Line 16300: 		Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppaaiImprovementYieldChange[eIndex1];
    	Line 20019: 		Firaxis::Array< int, 4 > oldYield;
    	Line 20020: 		Firaxis::Array< int, 6 > newYield;
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL_Expansion\CvPlayer.h (3 hits)
    	Line 1692: 	FAutoVariable< std::vector< Firaxis::Array<int, NUM_YIELD_TYPES > >, CvPlayer> m_ppaaiSpecialistExtraYield;
    	Line 1693: 	FAutoVariable< std::vector< Firaxis::Array<int, NUM_YIELD_TYPES > >, CvPlayer> m_ppaaiImprovementYieldChange;
    	Line 1696: 	FAutoVariable< std::vector< Firaxis::Array< int, NUM_YIELD_TYPES > >, CvPlayer> m_ppaaiBuildingClassYieldMod;
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL_Expansion\CvTeam.h (16 hits)
    	Line 444: 	Firaxis::Array< int, REALLY_MAX_TEAMS > m_aiTechShareCount;
    	Line 445: 	Firaxis::Array< int, REALLY_MAX_TEAMS > m_aiNumTurnsAtWar;
    	Line 446: 	Firaxis::Array< int, REALLY_MAX_TEAMS > m_aiNumTurnsLockedIntoWar;
    	Line 447: 	Firaxis::Array< int, NUM_DOMAIN_TYPES > m_aiExtraMoves;
    	Line 448: 	Firaxis::Array< int, REALLY_MAX_TEAMS > m_paiTurnMadePeaceTreatyWithTeam;
    	Line 450: 	Firaxis::Array< bool, REALLY_MAX_PLAYERS > m_abHasFoundPlayersTerritory;
    	Line 451: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abHasMet;
    	Line 452: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abAtWar;
    	Line 453: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abPermanentWarPeace;
    	Line 454: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abEmbassy;
    	Line 455: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abOpenBorders;
    	Line 456: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abDefensivePact;
    	Line 457: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abResearchAgreement;
    	Line 458: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abTradeAgreement;
    	Line 459: 	Firaxis::Array< bool, REALLY_MAX_TEAMS > m_abForcePeace;
    	Line 460: 	Firaxis::Array< int, REALLY_MAX_PLAYERS > m_aiTurnTeamMet;
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL_Expansion\CvTraitClasses.cpp (7 hits)
    	Line 1184: 						Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppaaiUnimprovedFeatureYieldChange[iFeatureLoop];
    	Line 1195: 						Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppaaiImprovementYieldChange[iImprovementLoop];
    	Line 1206: 						Firaxis::Array<int, NUM_YIELD_TYPES> yields = m_ppaaiSpecialistYieldChange[iSpecialistLoop];
    	Line 1339: 	Firaxis::Array< int, NUM_YIELD_TYPES > yield;
    	Line 2424: 		Firaxis::Array< int, 4 > oldYield;
    	Line 2425: 		Firaxis::Array< int, 6 > newYield;
    	Line 2459: 		Firaxis::Array< int, NUM_YIELD_TYPES > yield;
      \Documents\Dev\_dev\Git-Civ5-DLL\CvGameCoreDLL_Expansion\CvTraitClasses.h (3 hits)
    	Line 713: 	std::vector< Firaxis::Array<int, NUM_YIELD_TYPES > > m_ppaaiImprovementYieldChange;
    	Line 714: 	std::vector< Firaxis::Array<int, NUM_YIELD_TYPES > > m_ppaaiSpecialistYieldChange;
    	Line 715: 	std::vector< Firaxis::Array<int, NUM_YIELD_TYPES > > m_ppaaiUnimprovedFeatureYieldChange;
      \Documents\Dev\_dev\Git-Civ5-DLL\CvWorldBuilderMap\include\CvWorldBuilderMapTypeDesc.h (1 hits)
    	Line 51: 		Firaxis::Array<String, TSize> asTypes;
      \Documents\Dev\_dev\Git-Civ5-DLL\FirePlace\include\FireWorks\FDataStream.h (3 hits)
    	Line 555: //Serialization for Firaxis::Array
    	Line 559: FDataStream & operator >> ( FDataStream & kStream, Firaxis::Array<T, ARRAY_SIZE> & kArray )
    	Line 569: FDataStream & operator << (FDataStream & kStream, const Firaxis::Array< T, ARRAY_SIZE > & kArray )


    and wish you good luck, I suppose one of the game array created while loading your mod is above the size listed here.

    (hoping your problem does not trigger the assert from the exe or the other DLLs we don't have access to)

    but when does the assert happens exactly ?

    or what do you add to the mod recently ?

    and before scrambling your mod, wait for the advice of guys who really know c++ :D
     
  3. whoward69

    whoward69 DLL Minion

    Joined:
    May 30, 2011
    Messages:
    8,518
    Location:
    Near Portsmouth, UK
    Excluding espionage, most uses of Firaxis::Array (which is where the assert is coming from) relate to yields / yield enhancements for buildings/improvements
     
  4. ww2commander

    ww2commander Emperor

    Joined:
    Aug 23, 2003
    Messages:
    1,243
    Location:
    Australia
    The error occurs only once (thankfully?) when I click the Start scenario button once I have chosen the scenario map.

    The only significant changes I made recently (table wise) is a mass deletion of unit table entries as I reached a limit on number of entries. The other major chance completed last night was the physical placement of all the units on the game map. There are hundreds of units, but this has not been an issue in the past when I did it with a previous versions of the mod.

    I am worried I exceeded some hard cap limit for the actual number of units that can be placed on the map!

    From memory, I don't remember changing any yield entries that would cause such a message.

    Can we tell what the array sizes are for things like NUM_YIELD_TYPES, REALLY_MAX_TEAMS etc?
     
  5. ww2commander

    ww2commander Emperor

    Joined:
    Aug 23, 2003
    Messages:
    1,243
    Location:
    Australia
    Found the solution cause.

    I will try my best to explain this and hopefully caution others to be careful as the fix requires me to possibly recreate my scenario map!

    Step 1
    After completing all my SQL/XML modding, I created a new map for my scenario. The map contained cities, roads, improvements, resource...but no units as I had not finalized some lua coding yet.

    In creating the map, the game seems to have assigned some kind of 'signature' relating to the number of unit, building and other entries in the database....even if they are not actual present on the map.

    Step 2
    After spending some further time finalizing my lua code relating to units, I decided it was time to add units to the map via WorldBuilder (WB). The thing I should point out is that the unit table for my mod has roughly 200+ units (vanilla units have not been removed).

    I soon find that WB does not play nice with very long drop-down lists (200+ units mentioned above) and things start to go haywire as I try to place units. Best way to describe the bug is every scroll of the map generates phantom units all over the place!

    Step 3
    I write a new set of deletion queries that remove unused vanilla units from my scenario which should minimize the WB drop-down list size.

    I reload the map in WB and unit placement now works fine. :D....at this point I am so proud with my self for solving this bug with one guess!

    Step 4
    Having placed all my unit (around 300 on the map), I save the map and reload in-game to test it. Now I am presented with the dreaded Assertion Failed message.

    The reason for this.....I have changed the ID ordering associated when the original map was created...and thus I have broken it!

    Outcome
    Thus I have caused a catch-22 situation. I can't add units via WB with the current SQL ruleset and I can not resolve the WB issue without creating assertion failed error!

    And for those thinking 'why doesn't he place the units with the deletion queries active and then remove those queries when done....I tried that and it also did not work.

    Worst case scenario I will likely have to recreate the map from scratch as the resize function in WB only allows terrain, features and rivers to be imported; but not cities, routes, resource, improvements or units.

    CONCLUSION
    Modders should be cautious to finalize your SQL and eliminate any unused entries from the core game database tables before attempting to creating maps. Making any SQL changes retrospectively will likely 'Assert fail' your existing maps! :(
     
  6. Gedemon

    Gedemon Modder Super Moderator

    Joined:
    Oct 4, 2004
    Messages:
    9,632
    Location:
    France
    so you had more than 255 unit types in the DB at some point ?
     
  7. whoward69

    whoward69 DLL Minion

    Joined:
    May 30, 2011
    Messages:
    8,518
    Location:
    Near Portsmouth, UK
    Probably also helps to explain why every DLC scenario places units with Lua and not directly on the map - that way the unit devs can mess around to their hearts content while the map devs create the map
     
  8. whoward69

    whoward69 DLL Minion

    Joined:
    May 30, 2011
    Messages:
    8,518
    Location:
    Near Portsmouth, UK
    Just idle wondering ...

    It wouldn't actually be that hard to write a Lua script that read all the units in play and wrote out (as part of lua.log) a Lua script to place all those units - and if that uses the Unit Type (and not the ID) it wouldn't matter if you re-sequenced the unit table in the future

    That way you could use FireTuner to place units, run the script, then copy the needed bit into your mod start-up code - no more placing of units with WorldBuilder.

    You could probably also do the same for buildings in cities.

    Mmmm ....
     
  9. Gedemon

    Gedemon Modder Super Moderator

    Joined:
    Oct 4, 2004
    Messages:
    9,632
    Location:
    France
    from my experience, it's breaking the 256 unit's types limit that will mess the map loading, not re-ordering the IDs (I've changed unit's IDs multiple times in R.E.D. WWII)

    IIRC it was just a matter of having one ID > 255, even if the table had less entries than that.

    The "phantom units" bug on WB or SV is another symptom of the 255 limit.

    @ww2commander: you still have performance issues when using my DLL ?
     
  10. ww2commander

    ww2commander Emperor

    Joined:
    Aug 23, 2003
    Messages:
    1,243
    Location:
    Australia
    Yes, guilty on this charge. But my excuse for not removing the vanilla units was due to the paranoia that set in after that city ID bug I had a while back. I figured I would not tamper with the vanilla items to be on the safe side.....boy was I dumb to stick with that theory. :hammer2:

    I am starting to also think this is the case. Map creation overall is at the mercy of the SQL by the looks of it.

    Yes, adding more units or reordering IDs might not cause an issue as opposed to removing units (shrinking the table) after the map was created.

    Maybe some testing might help from your end. See what happens if you reduce your unit table size with a pre-built map. It would be good to know if this is a bug that Firaxis might want to consider in a patch. WB definitely needs some work done in subsequent patches!

    That is currently plan B if I can not resolve this via the WB. I am already initiating buildings via lua, so it would not be hard to do units as well. I could continue to use the 'assertion failed' map as a template to place units and then run lua code to extract positions, names and direction of each unit.

    I have not attempt to use in this version of my mod. I went back and started from scratch after the city ID bug as I had too many issues/errors and I wanted to sort out my lua code first. Ironically, I was planning on running it after placing all the units on the map as I wanted to try the support unit double stacking!
     
  11. whoward69

    whoward69 DLL Minion

    Joined:
    May 30, 2011
    Messages:
    8,518
    Location:
    Near Portsmouth, UK
    I have some prototype code to prove it can be done easily, but as I have no (immediate) use for it probably won't develop it any further. PM me if you need it
     
  12. Gedemon

    Gedemon Modder Super Moderator

    Joined:
    Oct 4, 2004
    Messages:
    9,632
    Location:
    France
    how/when do you remove the units in your mod ? if it's after adding your units, do you renumber the IDs ?

    I asked for the DLL, because it can take this option:
     
  13. ww2commander

    ww2commander Emperor

    Joined:
    Aug 23, 2003
    Messages:
    1,243
    Location:
    Australia
    I deleted unit entries before placement.

    However, I also went back and tried various combinations which also produced issues:
    1. Remove deletion queries with units on map - results in WB bug again!
    2. Add deletion queries but don't place units - results in assert fail

    The only backup that works fine is a map that does not have any units placed and does not include any unit deletion queries.

    :wow: I was not aware of that option. However, a while back you cautioned me not to run the DLL if I was planning on using WB (or something along those lines). Thus why I have left DLL testing as the last thing on my list!

    Cheers whoward. I will pop you an email if my own code breaks out in flames. Planning on recycling the existing building placement code I have!
     
  14. whoward69

    whoward69 DLL Minion

    Joined:
    May 30, 2011
    Messages:
    8,518
    Location:
    Near Portsmouth, UK
    The Lua code I have reads all the units in play and writes out the Lua code that would be required to place them. The main advantage is that you can place the units with LiveTuner and then get the Lua code needed to replicate the placement - you don't need to work out all the X,Y pairs yourself ;)

    Edit: Running it on my current game gets the following Lua script written into lua.log

    Spoiler :
    Code:
    function InitUnits()
      local pPlayer, pUnit
    
      -- Player 0 (Harald Bluetooth)
      pPlayer = Players[0]
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_RANGER, 21, 26, GameInfoTypes.UNITAI_EXPLORE, DirectionTypes.DIRECTION_NORTHEAST)
      pUnit:Embark()
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_ENGINEER, 55, 18, GameInfoTypes.UNITAI_ENGINEER, DirectionTypes.DIRECTION_SOUTHEAST)
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_WORKER, 54, 22, GameInfoTypes.UNITAI_WORKER, DirectionTypes.DIRECTION_NORTHWEST)
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_VIKING_LONGBOAT, 12, 9, GameInfoTypes.UNITAI_ATTACK_SEA, DirectionTypes.DIRECTION_NORTHEAST)
      -- etc
    
      -- Player 1 (Catherine)
      pPlayer = Players[1]
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_RANGER, 22, 24, GameInfoTypes.UNITAI_EXPLORE, DirectionTypes.DIRECTION_SOUTHEAST)
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_CATAPULT, 20, 6, GameInfoTypes.UNITAI_CITY_BOMBARD, DirectionTypes.DIRECTION_SOUTHWEST)
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_HORSEMAN, 24, 12, GameInfoTypes.UNITAI_FAST_ATTACK, DirectionTypes.DIRECTION_EAST)
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_WORKER, 32, 19, GameInfoTypes.UNITAI_WORKER, DirectionTypes.DIRECTION_SOUTHWEST)
      pUnit:Embark()
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_KNIGHT, 26, 14, GameInfoTypes.UNITAI_FAST_ATTACK, DirectionTypes.DIRECTION_EAST)
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_CARAVEL, 8, 34, GameInfoTypes.UNITAI_EXPLORE_SEA, DirectionTypes.DIRECTION_WEST)
      -- etc
    
      -- etc
    
      -- Player 29 (Lisbon)
      pPlayer = Players[29]
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_WORKER, 45, 41, GameInfoTypes.UNITAI_WORKER, DirectionTypes.DIRECTION_SOUTHEAST)
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_CROSSBOWMAN, 45, 42, GameInfoTypes.UNITAI_RANGED, DirectionTypes.DIRECTION_NORTHWEST)
    
      -- Player 63 (Barbarian)
      pPlayer = Players[63]
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_PIKEMAN, 31, 3, GameInfoTypes.UNITAI_COUNTER, DirectionTypes.DIRECTION_SOUTHEAST)
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_TRIREME, 4, 1, GameInfoTypes.UNITAI_ATTACK_SEA, DirectionTypes.DIRECTION_SOUTHEAST)
      pUnit = pPlayer:InitUnit(GameInfoTypes.UNIT_BARBARIAN_WARRIOR, 58, 48, GameInfoTypes.UNITAI_ATTACK, DirectionTypes.DIRECTION_SOUTHEAST)
      -- etc
    end
    
     
  15. ww2commander

    ww2commander Emperor

    Joined:
    Aug 23, 2003
    Messages:
    1,243
    Location:
    Australia
    Since you put it that way....yes I would indeed like a piece of that cake! :drool:

    Shoot it over and I will give it a look.

    However, what to do with the existing map which has all those 'historically' positioned units I spent so much time researching. This is part of the problem in that I am trying to represent the position of each division in the Red Army on 22 June 1941.
     
  16. whoward69

    whoward69 DLL Minion

    Joined:
    May 30, 2011
    Messages:
    8,518
    Location:
    Near Portsmouth, UK
    Well if you still have V3 working, you can at least use that as a starting point
     
  17. whoward69

    whoward69 DLL Minion

    Joined:
    May 30, 2011
    Messages:
    8,518
    Location:
    Near Portsmouth, UK
    See attached.

    The units for the scenario are placed by InitUnits()

    If you want, you can use LiveTuner to move them around, then use LiveTuner to run the WritePlaceUnits() method which will write a new PlaceUnits() method into lua.log

    Edit: "LiveTuner - Scenario Utils" can now be downloaded from my mod web site
     
  18. ww2commander

    ww2commander Emperor

    Joined:
    Aug 23, 2003
    Messages:
    1,243
    Location:
    Australia
    Cheers whoward :goodjob:
     
  19. Ogenvi

    Ogenvi Chieftain

    Joined:
    Mar 23, 2011
    Messages:
    66
    I don't have any unit and I have problems with it. It's very annoying; I don't know how this game has been made... It happens to when I want to load a scenario map in WB and in Civ
     

Share This Page