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

v27 and above - Single Player Bug/Crashes report thread

Discussion in 'Bugs and Crashes' started by Dancing Hoskuld, Nov 3, 2012.

Thread Status:
Not open for further replies.
  1. strategyonly

    strategyonly C2C Supreme Commander

    Joined:
    Mar 13, 2006
    Messages:
    20,552
    Gender:
    Male
    Location:
    MN
    Now see even in your attached game, :gold: now for some reason, is getting out of and??
     
  2. God-Emperor

    God-Emperor Deity

    Joined:
    Jul 18, 2009
    Messages:
    3,551
    Location:
    Texas
    Of course not. Chief Head Hunter is the leader of the Jivaro, I think it is, which was who split off from you via rebellion sometime in the past (or got those cities after they split off from you). He has decided that those two cities may rejoin you, if not they will split off from him anyway and form Mexico.

    No idea why it would fall over.
     
  3. strategyonly

    strategyonly C2C Supreme Commander

    Joined:
    Mar 13, 2006
    Messages:
    20,552
    Gender:
    Male
    Location:
    MN
    HUGE error, pls correct. . .

    In the autosaved game, IF you click on the "arrows" for checking city (now that we finally got them to work again), BUT they are not anymore for some reason, the games CTD as soon as i do so:(

    SVN 4584, Huge map, marathon. (Attached autosavedgame plus Minidump, this is REPEATABLE.


    EDIT:
    No offense to whom ever made the changes BUT what the "heck" are all those words doing over in the hover area????? Not needed.(as far as i can tell?)
     
  4. Dancing Hoskuld

    Dancing Hoskuld Deity

    Joined:
    Jul 5, 2004
    Messages:
    23,518
    Gender:
    Male
    Location:
    Canberra, Australia
    No one split off from me. Jivaro was in at the start of the game. He put a number of cities on an originally unpopulated island and then I conquered 4 barbarian cities in that island. The two cities were his but my culture has been pushing his culture back on those two which are isolated from all his other cities.
     
  5. Stormwind

    Stormwind King

    Joined:
    Dec 7, 2008
    Messages:
    697
    The "words" are probably the display of the civic traits, this can be deactivated in BUG options - C2C tab - Show civic traits.

    Main screen city arrow cycling also works fine for me. Rev 4584.
     
  6. God-Emperor

    God-Emperor Deity

    Joined:
    Jul 18, 2009
    Messages:
    3,551
    Location:
    Texas
    In that case that is also, in addition to the crash, a bug: the Revolutions code thinks they were yours. However it is deciding that must be wrong - presumably it is just checking the culture and since you have a lot (I assume) of culture there it is apparently deciding they used to be yours.
     
  7. strategyonly

    strategyonly C2C Supreme Commander

    Joined:
    Mar 13, 2006
    Messages:
    20,552
    Gender:
    Male
    Location:
    MN
    Nope, just looked and i dont have on Display Civ Traits, sorry.
     
  8. Thunderbrd

    Thunderbrd C2C War Dog

    Joined:
    Jan 2, 2010
    Messages:
    27,453
    Gender:
    Male
    Location:
    Las Vegas
    I can't answer to the first bug in that report, SO, but I CAN say... read the print at the bottom!

    Hold down shift and mouseover the flag again. What's happening with all those words is you're cycling through your traits' descriptions. Each time you hold down shift and move the mouse back over the flag it will show a different trait. Only one trait will be expressed at a time and there is a middle setting where only the trait names will show (thus taking up next to no space at all in that popup display) that you will find in the cycle if you hold shift and repeat mousing over the flag.

    The text display is coming out rather annoyingly (all those builds and buildings mentioned are the ones listing off with a new line after each and they are supposed to be separated by commas not hard returns) but my change to that must be on the code I'm running now that hasn't yet been updated. So that will improve and it shouldn't be stretching across the whole screen like that when a trait info is showing.

    With the Developing Leaders trait, there is absolutely a need for accessing the trait informations, leader level, and progress reports to getting to the next level on the main screen somewhere. I chose the flag and as stated in the first post on the thread explaining those options, the Developing Leaders option overrides the Display Civ Traits BUG option off setting. However that setting is not entirely meaningless since if it remains off, the version display will still come up before the traits stuff.

    I'd prefer to put the traits into button form somewhere on the main screen with a help popup for hovering over them but that'd take a bit (meaning a LOT) more python know-how than I've got.


    Sorry for the confusion. Hydro pointed out I should've used some screen captures to explain all that and I was going to go in and get those but I've been caught up in projects since and forgotten to do so. I'll try to find time in the next day or two to show how to work that visually.
     
  9. strategyonly

    strategyonly C2C Supreme Commander

    Joined:
    Mar 13, 2006
    Messages:
    20,552
    Gender:
    Male
    Location:
    MN
    OK i now get it, thx, but couldn't you have this as the first hover over instead of the "full" one first, thx. Good nifty trick, i like.
     
  10. ls612

    ls612 Deity Moderator

    Joined:
    Mar 10, 2008
    Messages:
    8,072
    Location:
    America
    Huh? Does anyone know what could cause this error with the Debug DLL?
     

    Attached Files:

    • Huh.PNG
      Huh.PNG
      File size:
      13.8 KB
      Views:
      32
  11. JosEPh_II

    JosEPh_II TBS WarLord

    Joined:
    Jun 20, 2007
    Messages:
    16,033
    Gender:
    Male
    Location:
    Western IL. cornfields
    Could this be an effect from Alex Costa's problem in the SVN (and posted in the SVN thread)?

    JosEPh
     
  12. ls612

    ls612 Deity Moderator

    Joined:
    Mar 10, 2008
    Messages:
    8,072
    Location:
    America
    No, it is a product of me not patching to 3.19 after reinstalling civ. :hammer2:
     
  13. ls612

    ls612 Deity Moderator

    Joined:
    Mar 10, 2008
    Messages:
    8,072
    Location:
    America
    I figured out what was wrong with the Scaling City Limits. It turns out that the getGridWidth() and getGridHeight() return how many increments of 4 tiles the map has. So the limits were 1/16th (trunctated to an int) of what they should have been. :rolleyes: I'll be committing a fix later tonight and hopefully that will allow it to function as intended.
     
  14. Thunderbrd

    Thunderbrd C2C War Dog

    Joined:
    Jan 2, 2010
    Messages:
    27,453
    Gender:
    Male
    Location:
    Las Vegas
    Thanks! It did take some imagination to figure that one out. It'll look better when the commas on all those builds listed aren't taken as new lines. Will allow the full description of the trait to be much more compact and should fit almost all screens.

    And it really should be the default setting to just show the names of the traits, so you must've accidentally held shift and mousedover when you weren't paying attention. I'm sure during play there's probably a lot of ways that could happen. In fact, after the next update, it will default back to the base setting every time there's a recalc done too.
     
  15. Thunderbrd

    Thunderbrd C2C War Dog

    Joined:
    Jan 2, 2010
    Messages:
    27,453
    Gender:
    Male
    Location:
    Las Vegas
    I've done a bit of research on Hydro's bug. Now that I've merged the files it is in fact giving us a problem on the current svn. (Not in the code per se... I don't think so anyhow.)

    It appears we have a problem in the routes structure somewhere.

    This line comes up as the last reportable line in the call stack:
    Code:
    >	CvGameCoreDLL.dll!std::vector<CvRouteInfo *,std::allocator<CvRouteInfo *> >::iterator::operator+(int _Off=39)  Line 264 + 0xf bytes	C++
    
    And this is the section it's pointing to in vector (I stopped copying this function where the call stack is pointing but it went on to have an actual issue in the exe itself of course):
    Code:
    // vector standard header
    #pragma once
    #ifndef _VECTOR_
    #define _VECTOR_
    #include <memory>
    #include <stdexcept>
    
    #pragma pack(push,8)
    #pragma warning(push,3)
    
     #pragma warning(disable: 4244)
    
    _STD_BEGIN
    		// TEMPLATE CLASS _Vector_val
    template<class _Ty, class _Alloc>
    	class _Vector_val
    	{	// base class for vector to hold allocator _Alval
    protected:
    	_Vector_val(_Alloc _Al = _Alloc())
    		: _Alval(_Al)
    		{	// construct allocator from _Al
    		}
    
    	typedef typename _Alloc::template
    		rebind<_Ty>::other _Alty;
    
    	_Alty _Alval;	// allocator object for values
    	};
    
    		// TEMPLATE CLASS vector
    template<class _Ty,
    	class _Ax = allocator<_Ty> >
    	class vector
    		: public _Vector_val<_Ty, _Ax>
    	{	// varying size array of values
    public:
    	typedef vector<_Ty, _Ax> _Myt;
    	typedef _Vector_val<_Ty, _Ax> _Mybase;
    	typedef typename _Mybase::_Alty _Alloc;
    	typedef _Alloc allocator_type;
    	typedef typename _Alloc::size_type size_type;
    	typedef typename _Alloc::difference_type _Dift;
    	typedef _Dift difference_type;
    	typedef typename _Alloc::pointer _Tptr;
    	typedef typename _Alloc::const_pointer _Ctptr;
    	typedef _Tptr pointer;
    	typedef _Ctptr const_pointer;
    	typedef typename _Alloc::reference _Reft;
    	typedef _Reft reference;
    	typedef typename _Alloc::const_reference const_reference;
    	typedef typename _Alloc::value_type value_type;
    
      #define _ITER_BASE(it)	(it)._Myptr
    		// CLASS const_iterator
    	class const_iterator;
    	friend class const_iterator;
    
    	class const_iterator
    		: public _Ranit<_Ty, _Dift, _Ctptr, const_reference>
    		{	// iterator for nonmutable vector
    	public:
    		typedef random_access_iterator_tag iterator_category;
    		typedef _Ty value_type;
    		typedef _Dift difference_type;
    		typedef _Ctptr pointer;
    		typedef const_reference reference;
    
    		const_iterator()
    			{	// construct with null pointer
    			_Myptr = 0;
    			}
    
    		const_iterator(_Tptr _Ptr)
    			{	// construct with pointer _Ptr
    			_Myptr = _Ptr;
    			}
    
    		const_reference operator*() const
    			{	// return designated object
    
    
    			return (*_Myptr);
    			}
    
    		_Ctptr operator->() const
    			{	// return pointer to class object
    			return (&**this);
    			}
    
    		const_iterator& operator++()
    			{	// preincrement
    			++_Myptr;
    			return (*this);
    			}
    
    		const_iterator operator++(int)
    			{	// postincrement
    			const_iterator _Tmp = *this;
    			++*this;
    			return (_Tmp);
    			}
    
    		const_iterator& operator--()
    			{	// predecrement
    			--_Myptr;
    			return (*this);
    			}
    
    		const_iterator operator--(int)
    			{	// postdecrement
    			const_iterator _Tmp = *this;
    			--*this;
    			return (_Tmp);
    			}
    
    		const_iterator& operator+=(difference_type _Off)
    			{	// increment by integer
    			_Myptr += _Off;
    			return (*this);
    			}
    
    		const_iterator operator+(difference_type _Off) const
    			{	// return this + integer
    			const_iterator _Tmp = *this;
    			return (_Tmp += _Off);
    			}
    
    		const_iterator& operator-=(difference_type _Off)
    			{	// decrement by integer
    			return (*this += -_Off);
    			}
    
    		const_iterator operator-(difference_type _Off) const
    			{	// return this - integer
    			const_iterator _Tmp = *this;
    			return (_Tmp -= _Off);
    			}
    
    		difference_type operator-(const const_iterator& _Right) const
    			{	// return difference of iterators
    
    
    			return (_Myptr - _Right._Myptr);
    			}
    
    		const_reference operator[](difference_type _Off) const
    			{	// subscript
    			return (*(*this + _Off));
    			}
    
    		bool operator==(const const_iterator& _Right) const
    			{	// test for iterator equality
    
    
    			return (_Myptr == _Right._Myptr);
    			}
    
    		bool operator!=(const const_iterator& _Right) const
    			{	// test for iterator inequality
    			return (!(*this == _Right));
    			}
    
    		bool operator<(const const_iterator& _Right) const
    			{	// test if this < _Right
    
    
    			return (_Myptr < _Right._Myptr);
    			}
    
    		bool operator>(const const_iterator& _Right) const
    			{	// test if this > _Right
    			return (_Right < *this);
    			}
    
    		bool operator<=(const const_iterator& _Right) const
    			{	// test if this <= _Right
    			return (!(_Right < *this));
    			}
    
    		bool operator>=(const const_iterator& _Right) const
    			{	// test if this >= _Right
    			return (!(*this < _Right));
    			}
    
    		friend const_iterator operator+(difference_type _Off,
    			const const_iterator& _Right)
    			{	// return iterator + integer
    			return (_Right + _Off);
    			}
    
    
    		_Tptr _Myptr;	// offset of element in vector
    		};
    
    		// CLASS iterator
    	class iterator;
    	friend class iterator;
    
    	class iterator
    		: public const_iterator
    		{	// iterator for mutable vector
    	public:
    		typedef random_access_iterator_tag iterator_category;
    		typedef _Ty value_type;
    		typedef _Dift difference_type;
    		typedef _Tptr pointer;
    		typedef _Reft reference;
    
    		iterator()
    			{	// construct with null vector pointer
    			}
    
    		iterator(pointer _Ptr)
    			: const_iterator(_Ptr)
    			{	// construct with pointer _Ptr
    			}
    
    		reference operator*() const
    			{	// return designated object
    			return ((reference)**(const_iterator *)this);
    			}
    
    		_Tptr operator->() const
    			{	// return pointer to class object
    			return (&**this);
    			}
    
    		iterator& operator++()
    			{	// preincrement
    			++this->_Myptr;
    			return (*this);
    			}
    
    		iterator operator++(int)
    			{	// postincrement
    			iterator _Tmp = *this;
    			++*this;
    			return (_Tmp);
    			}
    
    		iterator& operator--()
    			{	// predecrement
    			--this->_Myptr;
    			return (*this);
    			}
    
    		iterator operator--(int)
    			{	// postdecrement
    			iterator _Tmp = *this;
    			--*this;
    			return (_Tmp);
    			}
    
    		iterator& operator+=(difference_type _Off)
    			{	// increment by integer
    			this->_Myptr += _Off;
    			return (*this);
    			}
    
    		iterator operator+(difference_type _Off) const
    			{	// return this + integer
    			iterator _Tmp = *this;
    			return (_Tmp += _Off);
    			}
    From all this I am led to believe some recent change in our Improvements, particularly among routes, is causing trouble. It MAY be trouble that's due to his particular game gaining a lot of new land out of the ocean tiles but since it loads before any recent code changes (except perhaps for ls612's recent stuff which I don't THINK has much to do with anything) I'm suspicious of any Improvement info changes made recently.

    @Hydro: You could help us by finding the exact revision that it starts crashing at. The change causing trouble is somewhere in that revision.

    So unfortunately, this means my update won't fix Hydro's save but we ARE a step closer at figuring out what's wrong.

    @Koshling: If you're reading this, do you have any insight as to what this bug report could be pointing at?
     
  16. Snofru1

    Snofru1 Emperor

    Joined:
    Dec 29, 2005
    Messages:
    1,216
    Location:
    Germany
    There must be something wrong with Quantonium Cristals...
     
  17. strategyonly

    strategyonly C2C Supreme Commander

    Joined:
    Mar 13, 2006
    Messages:
    20,552
    Gender:
    Male
    Location:
    MN
  18. Talin2009

    Talin2009 King

    Joined:
    Jul 12, 2009
    Messages:
    604
    Playing latest version of C2C (perfect world, immense, eons, limited religions on, divine prophets on) i notice AGAIN bug/flaw in AI behavior that is in game for a few months at least: Wilhelmina is another top civ on my continent and she tries to research EVERY religion tech, falling bad behind me. And she did not start any religion yet ... She researches Jainism now, i research Drama.

    Otherwise new C2C is very sweet. Keep up good work guys, i cant wait to see new engine without vewport limits to play my favourite big maps.
     
  19. Koshling

    Koshling Vorlon

    Joined:
    Apr 11, 2011
    Messages:
    9,254
    It just means there's a memory corruption that has trampled on the memory for that vector. Most likely something is indexing out-of-bounds in some array, but there's no real way to know what from this - it whatever happened to be allocated next to the vector at the time which could be anything essentially. Any changes to use of a (heap allocated) array recently would be the likely culprit.
     
  20. ls612

    ls612 Deity Moderator

    Joined:
    Mar 10, 2008
    Messages:
    8,072
    Location:
    America
    That would fit if Koshling is right about heap corruption.
     
Thread Status:
Not open for further replies.

Share This Page