FfH2 Bug Thread

Basium doesn't get free buildings from wonders that were built by his ally before he was summoned. Free buildings from wonders that are built after Basium was summoned work however.
 
In this save, I get an "end of turn" hang as soon as you end the current turn.

This is .41g.

Janus,

I fixed it for you. The attached save is in the exact same spot. The error is a common one, it is almost always caused by the Svartalfar. I recommend that whenever you see this again (and unfortunately it may happen in this game) go into the worldbuilder, look at the Svartalfar, and look for stacks with hidden and non-hidden units. Apparently there is a bug for the Svartalfar that tries to group them illegally, leading to an infinite loop (my speculation). Nonetheless, I took off the hidden nationality promotion on 4 Svartalfar units and the game now works fine.

Best wishes,

Breunor
 

Attachments

I just updated to 3.19 and. loaded patch g. The screen update does not seem to work, by this I mean that if I click on a city and then hit ESC it does not clear the detail screen unless I do something like going to the diplomancy screen and then returning

Thanks

Lester
 
Search found no mention of this.

2 lanun boarding parties in the same tile attack two caravels in the same tile from 2 triremes. both successfully captured their targets.

after the first fight, both the captured ship and the boarding party were in the tile the boarding party attacked from. after the second attack, both captured caravals were in the tile the boarding parties attacked from, however both boarding parties moved into the tile the ships were at, which ofcourse was now empty. This is unexpected, a unit moving after its move was concluded

assuming they would die without a ship present, i moved a trireme and both caravals onto the tile with the two boarding parties(one of the triremes was out of moves). end turn, and one of the boarding parties vanished. it seems a boarding party is tied to the ship it attacked from, and will not automaticly board a suitable empty vessel in the same tile. instead it will just die.
fortunately i was able to manual tell the unit to board one of the empty caravals and have it survive. But this strikes me as a bug, at the very least i think a better solution exists, though i understand, what with capturing ships that can't carry crew, it is also complicated. why doesn't the boarding party automaticly return to its base ship? its not at all intuitive.

edit:
i should also add, attacking from the land to a ship on the coast, causes the boarding party to be stranded in the sea, and the ship to be on the land tile the unit attacked from.
 
there is a little bug in CvGameTextMgr.cpp.
Changing
int iUnhappyProd = (city.isUnhappyProduction() ? city.angryPopulation(0) : 0);

to

int iUnhappyProd = (city.isUnhappyProduction() ? city.unhappyLevel(0) : 0);

corrects the display of Production bonus from Manor/Pillar of Chains. Oh, and the Manors are very unbalanced, but you probably already know this.
 
Search found no mention of this.

2 lanun boarding parties in the same tile attack two caravels in the same tile from 2 triremes. both successfully captured their targets.

after the first fight, both the captured ship and the boarding party were in the tile the boarding party attacked from. after the second attack, both captured caravals were in the tile the boarding parties attacked from, however both boarding parties moved into the tile the ships were at, which ofcourse was now empty. This is unexpected, a unit moving after its move was concluded

assuming they would die without a ship present, i moved a trireme and both caravals onto the tile with the two boarding parties(one of the triremes was out of moves). end turn, and one of the boarding parties vanished. it seems a boarding party is tied to the ship it attacked from, and will not automaticly board a suitable empty vessel in the same tile. instead it will just die.
fortunately i was able to manual tell the unit to board one of the empty caravals and have it survive. But this strikes me as a bug, at the very least i think a better solution exists, though i understand, what with capturing ships that can't carry crew, it is also complicated. why doesn't the boarding party automaticly return to its base ship? its not at all intuitive.

edit:
i should also add, attacking from the land to a ship on the coast, causes the boarding party to be stranded in the sea, and the ship to be on the land tile the unit attacked from.

Did you hit "end turn" and see what happens? In my experience, after a boarding action that leaves a ship on the land and the boarding party at sea with no ship, they reset to the nearest "legal terrain" at the beginning of your next turn.
 
Did you hit "end turn" and see what happens? In my experience, after a boarding action that leaves a ship on the land and the boarding party at sea with no ship, they reset to the nearest "legal terrain" at the beginning of your next turn.

In that instance, i didn't end my turn, i had just lost the unit in the example mentioned before that, the one involving the 2 caravals. so i assumed all was lost here and just reloaded. if i do it again i will be sure to check.

when the two caravals were involved i ended my turn, and while i didn't perform an exhaustive search, i did check the nearest legal terrain by my reckoning, however i was well behind enemy lines, so its possible given the complexity of finding a legal location, the game came up with some obscure location as being the nearest.

but i didn't notice any boarding party unit sitting out of place waiting for orders when i cycled my troops. where ever it was sent, it should have been idling, So while you may be right, i strongly doubt it atleast in this case atleast.

if that is what happened, and i just couldn't find him, its good that he isn't dead, but having a unit, in the middle of battle, vanish from the front lines is pretty frustrating, and in my oppinion is still something that needs to be resolved.
 
I have reached about turn 350 in Fall From Heaven 2 and since then I receive continually "failure to allocate video memory" and the game freezes or crashes. please explain to a novice how to fix this. thanks
 
I'm warring against my neighbors, but after I finish my turn and the other countries go, I get a crash to desktop.

I've tried going back a few turns and changing the pace of my actions, but the game always crashes on the NPC turn on either 398 or 400. Seems that this is happening when the AC goes to 75, but I thought the next Armageddon event was at 80.

For the turn 398 crash, it happened while manes were spawning, but this does not seem to be the case for the turn 400 crash.
 
I have reached about turn 350 in Fall From Heaven 2 and since then I receive continually "failure to allocate video memory" and the game freezes or crashes. please explain to a novice how to fix this. thanks

Turn all graphic settings on low, including anti-aliasing.

It's a common error late game when the computer runs out of RAM or graphics memory. Setting settings on low will give your more memory to run with.

(FYI, I always play on low settings. Faster turns & better games).
 
CvUnit.cpp in "canCast" function around 13547 line,
Spoiler :
Code:
	if (!CvString(GC.getSpellInfo(eSpell).getPyRequirement()).empty())
	{
		CyUnit* pyUnit = new CyUnit(this);
		CyArgsList argsList;
		argsList.add(gDLL->getPythonIFace()->makePythonObject(pyUnit));	// pass in unit class
		argsList.add(spell);//the spell #
		long lResult=0;
		gDLL->getPythonIFace()->callFunction(PYSpellModule, "canCast", argsList.makeFunctionArgs(), &lResult);
		delete pyUnit; // python fxn must not hold on to this pointer
		if (lResult == 0)
		{
			[COLOR="Red"]return false;[/COLOR]
		}
		[COLOR="Red"]return true;[/COLOR]
	}
	if (GC.getSpellInfo(eSpell).isRemoveHasCasted())
	{
		if (isHasCasted())
		{
			return true;
		}
	}
If the spell has a PyRequirement, all conditional statements after red marked lines are ignored.
Is this valid behavior?
 
Basium doesn't get free buildings from wonders that were built by his ally before he was summoned. Free buildings from wonders that are built after Basium was summoned work however.
This behavior is depending on "addPlayerAdvanced" function in CvGame.cpp.
Variable "m_paiFreeBuildingCount" (It means numbers of each free buildings of the civiliziation. Count is usually 0 or 1.) are not initialized correctly when Basium is summoned.

I have fixed it in the past.
http://forums.civfanatics.com/showthread.php?t=322354

But this shows different behavior from original FfH2 (e.g. Basium copies his diplomatic attitudes from summoning leader), because I have mimicked code that goes independence of colony.
 
The PyRequirement is intentional. Everything which comes after that is checking if the spell will actually DO anything. All actual "Am I allowed to cast" checks come before that point. I use the PyReq as my search key to place my own new code for SpellInfos in the correct half of the function. First section to deny casting for requirements, second half to deny for common sense. Placing it at this latest possible point in the checks for being allowed to cast also has the benefit of reducing the number of calls made to the function.

Of course, many PyReq python code blocks aren't written to return false in the case that the spell does nothing worthwhile, but that is more a fault in how the python side is written than in the DLL side.

EDIT: Thinking closer on it, I suppose that the final return True isn't actually needed, since there is a later check for the PyResult not being empty.
 
I have reached about turn 350 in Fall From Heaven 2 and since then I receive continually "failure to allocate video memory" and the game freezes or crashes. please explain to a novice how to fix this. thanks

there exists a manual how to increase your memory on 32bit machines somewhere on civfanatics
found it here
 
The PyRequirement is intentional. Everything which comes after that is checking if the spell will actually DO anything. All actual "Am I allowed to cast" checks come before that point.

Thanks a lot for your explanation. I could understood well.

My modmod is added "PyResultSecondary" to divide "Am I allowed to cast" check and "Will spell actually DO anything" check on python layer, but I think adding "PyReqAmIAllowedToCast" and "PyReqWillSpellActuallyDoAnything" is more smart method.

I will try it. Thanks again!
 
Kuriotates settlements can work tiles, produce commerce and science, but cannot build anything or grow. They also cost city maintenance.

I though they were intended just to grab land and ressources, without ANY commerce, science or maintenance?

I searched the bug thread or the change log to see where it come from but didn't find anything. Guess it is a bug.
 
Back
Top Bottom