Caveman 2 Cosmos

Hello Civfans (C2C)

While I'm playing C2C v17 I notice here and there little graphical faults, suchs as wrong sizes of units, missing icons and a building on the map whereoff you see a pink underground in place of being transparent.

Now I ask myself if it is of any use that I would post such bugs here with screenshots (and I shall keep them small Strategyonly :) )
 
Founding cities is expensive (processing time wise) so turn 1 and turn 2 tend to be slowish for that reason. I haven't noticed (and am not aware of) anything else more widespread though. It's POSSIBLE spawn changes are taking more processing time with the latest changes there (I haven't profiled it recently, so not sure). I'll do a profiling run sometime before V18 gets released and address anything obvious.

I decided to replace civ*.dll with that one from latest update. Funny thing, when I checked with SVN updater didn't see need to update it to most recent, so I assume 9.30 dll was on the top of the stack. Now I have fast turn changes and no CTD.
Somewhere on the way when updating I got my civ*.dll messed up.
I love SVN updating regardless latest glitch.
 
Hello Civfans (C2C)

While I'm playing C2C v17 I notice here and there little graphical faults, such as wrong sizes of units, missing icons and a building on the map whereof you see a pink underground in place of being transparent.

Now I ask myself if it is of any use that I would post such bugs here with screenshots (and I shall keep them small Strategyonly :) )

I know about the pink building, that the way the author made it, sorry, but nobody on the Team is a nif (graphics) expert.

As far as the rest sure, go ahead and post them in the Crashes/Errors/Bugs thread, anything that can help us better C2C is always helpful, but if also possible, if putting in something that is wrong, put what you think it should be also. Thx:):)
 
I know about the pink building, that the way the author made it, sorry, but nobody on the Team is a nif (graphics) expert.

As far as the rest sure, go ahead and post them in the Crashes/Errors/Bugs thread, anything that can help us better C2C is always helpful, but if also possible, if putting in something that is wrong, put what you think it should be also. Thx:):)

Ok I shall post them there but I guess that the most are similar graphic bugs and can't be solved by you guys as you say. But if I could help here let me know. I have a little experience with graphics and 3d modelling (have done modelling for simcity4 in gmax long time ago) and I'm not bad with photography and photoshop.



As you can see on my selfportret I would like to donate my head as leaderhead :) lol
 
Good afternoon,

I am having a graphic issue with my units. The skin or art on them will keep changing every turn. For example, a wanderer will have the correct skin one turn and then the next look like a divine prophet. Or an animal will have the appropriate skin one turn and then look like a knight on a horse the next turn.

These graphics are constantly shifting. Anything I can do to fix?

Thanks,
Curt

If you are playing on lower than the highest graphics settings there is nothing that can be done. :( I have to play on the lowest graphics settings just to play which means that crocs appear as knights in the ocean.
 
Ok I shall post them there but I guess that the most are similar graphic bugs and can't be solved by you guys as you say. But if I could help here let me know. I have a little experience with graphics and 3d modelling (have done modelling for simcity4 in gmax long time ago) and I'm not bad with photography and photoshop.

As you can see on my self portrait I would like to donate my head as leaderhead :) lol

C2C DEFINITELY needs a graphics person, to do odd requests, like fix that pink around the building as you mentioned (Library of Alex. . .) i believe its the name? Also, Hydro wants Civ specific units added, and we are having a hard time finding some of them. Wouldn't take much trouble, but like i mentioned, nobody else knows graphics (nif/blender/gmax) usage.:(
 
http://i55.tinypic.com/xdyyaw.jpg

As you can see on my selfportret I would like to donate my head as leaderhead :) lol

Why do you only have 4 fingers?

but like i mentioned, nobody else knows graphics (nif/blender/gmax) usage.:(

Note entirely true, I have used gmax and own 3D Studio Max 6. I just have no idea how to get models into Civ4. I have done it for "Sim City 4", "Sims 2" and "Neverwinters Nights" though. All the civ4 tutorials I have tried are confusing and end up with me frustrated. Wish there was just a simple import/export tool. When I tried to use the import/export for 3DS to civ4 plugin it said it would not work and gave me a million errors. *sigh*
 
Why do you only have 4 fingers?

The fifth finger was straigt upwards ending behind my ear for supporting my head for preventing it from falling backwards. :)

But I agree that a sortlike tool for getting 3D objects in Civ4 like the one for Simcity4 would be usefull. But on the other hand modelling a person in place of a building is also a whole other thing and I guess I'm not skilled enough for this.
 
I started a game of C2C, and i am very positive about it.
I encountered one problem : the file usersettings stays empty, so i can not change anything and the bugoptions are reset every time.
What can i do ?

I have a very new pc with windows 7
 
I started a game of C2C, and i am very positive about it.
I encountered one problem : the file usersettings stays empty, so i can not change anything and the bugoptions are reset every time.
What can i do ?

I have a very new pc with windows 7
You need to give the user you start the game with write access to the folder with the user settings.
By default the standard user does not have write access to the subfolders of Program Files.
 
AKA, right click on the link/shortcut & select "Run As Administrator" ;)
 
In my current game I have no way to build any wonder. It says I have 0 world wonders left to build in the city.

I am in prehistoric era and NO wonders have been built.
I am trying to build lacauix paints wonder ( I do have the preq building to build the wonder)

Is my game bugged?
 
In my current game I have no way to build any wonder. It says I have 0 world wonders left to build in the city.

I am in prehistoric era and NO wonders have been built.
I am trying to build lacauix paints wonder ( I do have the preq building to build the wonder)

Is my game bugged?
Are you sure that you have not built a world wonder in that city already?
The amount of world wonders you can build in a city depends on the culture level of the city.
I think it was 1 on the first culture levels and then 2 with developing and more with higher culture levels up to 6 with the highest.

If you have no world wonder built there, then post a savegame and I will check.
 
Are you sure that you have not built a world wonder in that city already?
The amount of world wonders you can build in a city depends on the culture level of the city.
I think it was 1 on the first culture levels and then 2 with developing and more with higher culture levels up to 6 with the highest.

If you have no world wonder built there, then post a savegame and I will check.

Here is my savegame

On another note, it says BUG year built if I hover my mouse over the buildings in the city screen.
This feature is not working?

EDIT: Tried to increase my culture to 100.000 and city size to 20 in World builder but it did not work.
 

Attachments

Here is my savegame

On another note, it says BUG year built if I hover my mouse over the buildings in the city screen.
This feature is not working?

EDIT: Tried to increase my culture to 100.000 and city size to 20 in World builder but it did not work.

I'll assume AIAndy is looking at your specific issue with the Wonder since he already responded, but on th BUG_YEAR, yeh, it's never worked as far as I can tell - I keep meaning to look at it, but since it doesn't really BREAK anything I haven't got round to it yet
 
I had updated my CvGameCoreDLL.rar from the patch forum.
After I reinstalled the file and started a new game, I was able to build the wonder after using world editor.
 
Quick question - where is the module for calculating a random promotion through battle? I'm trying to work out how they work and can't for the life of me find an xml file with the details in it.
 
Quick question - where is the module for calculating a random promotion through battle? I'm trying to work out how they work and can't for the life of me find an xml file with the details in it.

I'll guess its this part of cvunit.cpp:
Spoiler :

Code:
void CvUnit::doBattleFieldPromotions(CvUnit* pDefender, CombatDetails cdDefenderDetails, const CvPlot* pPlot, bool bAttackerHasLostNoHP, bool bAttackerWithdrawn, int iAttackerInitialDamage, int iWinningOdds, int iInitialAttXP, int iInitialAttGGXP, int iDefenderInitialDamage, int iInitialDefXP, int iInitialDefGGXP, bool &bAttackerPromoted, bool &bDefenderPromoted)
{
	if (GC.getGameINLINE().getModderGameOption(MODDERGAMEOPTION_BATTLEFIELD_PROMOTIONS))
	{
		if (getUnitCombatType() != NO_UNITCOMBAT && pDefender->getUnitCombatType() != NO_UNITCOMBAT)
		{
			std::vector<PromotionTypes> aAttackerAvailablePromotions;
			std::vector<PromotionTypes> aDefenderAvailablePromotions;
			int iI;
			for (iI = 0; iI < GC.getNumPromotionInfos(); iI++)	//loop through promotions
			{
				CvPromotionInfo &kPromotion = GC.getPromotionInfo((PromotionTypes)iI);
				/* Block These Promotions */	
				if (kPromotion.getKamikazePercent() > 0)
					continue;
				if (kPromotion.getStateReligionPrereq() != NO_RELIGION)
				{
					if (GET_PLAYER(getOwnerINLINE()).getStateReligion() != kPromotion.getStateReligionPrereq())
						continue;
				}
				if (kPromotion.isLeader())
					continue;
				/* Block These Promotions */
				
				if (pDefender->isDead() || m_combatResult.bDefenderWithdrawn)
				{
					//* defender withdrawn, give him withdrawal promo
					if (m_combatResult.bDefenderWithdrawn && kPromotion.getWithdrawalChange() > 0 &&
						pDefender->canAcquirePromotion((PromotionTypes)iI))
					{
						aDefenderAvailablePromotions.push_back((PromotionTypes)iI);
					}
					
					if (!canAcquirePromotion((PromotionTypes)iI)) //attacker can not acquire this promotion
					{
						continue;
					}
					//* attacker was crossing river
					if (kPromotion.isRiver() && cdDefenderDetails.iRiverAttackModifier != 0)	//this bonus is being applied to defender
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* attack from water
					else if (kPromotion.isAmphib() && cdDefenderDetails.iAmphibAttackModifier != 0)
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* attack terrain
					else if (kPromotion.getTerrainAttackPercent((int)pPlot->getTerrainType()) > 0)
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* attack feature
					else if (pPlot->getFeatureType() != NO_FEATURE && 
						kPromotion.getFeatureAttackPercent((int)pPlot->getFeatureType()) > 0)
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* attack hills
					else if (kPromotion.getHillsAttackPercent() > 0 && pPlot->isHills())
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* attack city
					else if (kPromotion.getCityAttackPercent() > 0 && pPlot->isCity(true))	//count forts too
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* first strikes/chanses promotions
					else if ((kPromotion.getFirstStrikesChange() > 0 || 
						kPromotion.getChanceFirstStrikesChange() > 0) && (firstStrikes() > 0 || chanceFirstStrikes() > 0)	)
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* unit combat mod
					else if (kPromotion.getUnitCombatModifierPercent((int)pDefender->getUnitCombatType()) > 0)
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* combat strength promotions
					else if (kPromotion.getCombatPercent() > 0 && !kPromotion.isAmphib())
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* domain mod
					else if (kPromotion.getDomainModifierPercent((int)pDefender->getDomainType()))
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* blitz
					else if (kPromotion.isBlitz() && bAttackerHasLostNoHP)
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
				}	//if defender is dead or withdrawn
				else	//attacker is dead or withdrawn
				{
					//* attacker withdrawn
					if (bAttackerWithdrawn && kPromotion.getWithdrawalChange() > 0 && canAcquirePromotion((PromotionTypes)iI))
					{
						aAttackerAvailablePromotions.push_back((PromotionTypes)iI);
					}
					
					if (!pDefender->canAcquirePromotion((PromotionTypes)iI)) 
					{
						continue;
					}

					//* defend terrain
					if (kPromotion.getTerrainDefensePercent((int)pPlot->getTerrainType()) > 0)
					{
						aDefenderAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* defend feature
					else if (pPlot->getFeatureType() != NO_FEATURE && 
						kPromotion.getFeatureDefensePercent((int)pPlot->getFeatureType()) > 0)
					{
						aDefenderAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* defend hills
					else if (kPromotion.getHillsDefensePercent() > 0 && pPlot->isHills())
					{
						aDefenderAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* defend city
					else if (kPromotion.getCityDefensePercent() > 0 && pPlot->isCity(true))	//count forts too
					{
						aDefenderAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* first strikes/chanses promotions
					else if ((kPromotion.getFirstStrikesChange() > 0 || 
						kPromotion.getChanceFirstStrikesChange() > 0) && 
						(pDefender->firstStrikes() > 0 || pDefender->chanceFirstStrikes() > 0))
					{
						aDefenderAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* unit combat mod vs attacker unit type
					else if (kPromotion.getUnitCombatModifierPercent((int)getUnitCombatType()) > 0)
					{
						aDefenderAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* combat strength promotions
					else if (kPromotion.getCombatPercent() > 0)
					{
						aDefenderAvailablePromotions.push_back((PromotionTypes)iI);
					}
					//* domain mod
					else if (kPromotion.getDomainModifierPercent((int)getDomainType()))
					{
						aDefenderAvailablePromotions.push_back((PromotionTypes)iI);
					}
				}	//if attacker withdrawn
			}	//end promotion types cycle

			//promote attacker:
			if (!isDead() && aAttackerAvailablePromotions.size() > 0)
			{
				FAssertMsg(maxHitPoints() - iAttackerInitialDamage > 0, "Attacker is Dead!");
				int iHealthPercent = (maxHitPoints() - getDamage()) * 100 / std::max(1,(maxHitPoints() - iAttackerInitialDamage));
				int iPromotionChanceModifier = iHealthPercent * iHealthPercent / maxHitPoints();
				int iPromotionChance = (GC.getCOMBAT_DIE_SIDES() - iWinningOdds) * (100 + iPromotionChanceModifier) / 100;
				
				if (GC.getGameINLINE().getSorenRandNum(GC.getCOMBAT_DIE_SIDES(), "Occasional Promotion") < iPromotionChance)
				{
					//select random promotion from available
					PromotionTypes ptPromotion = aAttackerAvailablePromotions[
						GC.getGameINLINE().getSorenRandNum(aAttackerAvailablePromotions.size(), "Select Promotion Type")];
					//promote
					setHasPromotion(ptPromotion, true);
					bAttackerPromoted = true;
					//Reset XP
					setExperience100(iInitialAttXP);
					GET_PLAYER(getOwnerINLINE()).setCombatExperience(iInitialAttGGXP);
					
					// Great Commander XP
					if (getUsedCommander() != NULL)
					{
						getUsedCommander()->setExperience100(getUsedCommander()->getExperience100() + 100);	
					}
					//show message
					CvWString szBuffer = gDLL->getText("TXT_KEY_MISC_YOUR_UNIT_PROMOTED_IN_BATTLE", getNameKey(), GC.getPromotionInfo(ptPromotion).getText());
					gDLL->getInterfaceIFace()->addMessage(
						getOwnerINLINE(), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, 
						GC.getPromotionInfo((PromotionTypes)0).getSound(), MESSAGE_TYPE_INFO, NULL, 
						(ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), this->plot()->getX_INLINE(), this->plot()->getY_INLINE());
				}
			}
			//promote defender:
			if (!pDefender->isDead() && aDefenderAvailablePromotions.size() > 0)
			{
				FAssertMsg(pDefender->maxHitPoints() - iDefenderInitialDamage > 0, "Defender is Dead!");
				int iHealthPercent = (pDefender->maxHitPoints() - pDefender->getDamage()) * 100 / std::max(1,(pDefender->maxHitPoints() - iDefenderInitialDamage));
				int iPromotionChanceModifier = iHealthPercent * iHealthPercent / pDefender->maxHitPoints();
				int iPromotionChance = iWinningOdds * (100 + iPromotionChanceModifier) / 100;
			
				if (GC.getGameINLINE().getSorenRandNum(GC.getCOMBAT_DIE_SIDES(), "Occasional Promotion") < iPromotionChance)
				{
					//select random promotion from available
					PromotionTypes ptPromotion = aDefenderAvailablePromotions[
						GC.getGameINLINE().getSorenRandNum(aDefenderAvailablePromotions.size(), "Select Promotion Type")];
					//promote
					pDefender->setHasPromotion(ptPromotion, true);
					//Reset XP
					pDefender->setExperience100(iInitialDefXP);
					GET_PLAYER(pDefender->getOwnerINLINE()).setCombatExperience(iInitialDefGGXP);
					bDefenderPromoted = true;
					
					// Great Commander XP
					if (pDefender->getUsedCommander() != NULL)
					{
						pDefender->getUsedCommander()->setExperience100(pDefender->getUsedCommander()->getExperience100() + 100);	
					}
					//show message
					CvWString szBuffer = gDLL->getText("TXT_KEY_MISC_YOUR_UNIT_PROMOTED_IN_BATTLE", pDefender->getNameKey(), 
						GC.getPromotionInfo(ptPromotion).getText());
					gDLL->getInterfaceIFace()->addMessage(
						pDefender->getOwnerINLINE(), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, 
						GC.getPromotionInfo((PromotionTypes)0).getSound(), MESSAGE_TYPE_INFO, NULL, 
						(ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), pPlot->getX_INLINE(), pPlot->getY_INLINE());
				}
			}
		}
	}
}
 
Back
Top Bottom