AI attitude change

awesome! was looking exactly for this. hope i can get it to work!
 
Wow I only discovered this years after I returned to classic civ because of the crazy AI. Now I can play all those MGE scenarios all over again :D

I'm also late but this needs to be said: Thank you Skyler, you're a GOD that I shall periodically worship from now on. Expect some new improvements to your throne room in a day or two ;)
 
Going to try this in the next day or two (when I get VMWare Fusion on my new Mac) - does this patch still have the Find City problem mentioned earlier in this thread?
 
So I tried the link Catfish provided, and the link found there got an error 404, and I couldn't download the patch. I tried the two text files provided by the OP, but 7zip refuses to extract them. Can somebody give me a way of downloading the file, somehow? Or extracting it? Please?
 
I'm about to try this patch out right now. I came across this thread when I was searching the issue on google. Thanks so much for keeping this available.
 
Thanks, the "fix" works and is better than MGE AI for diplomacy was. Of course it does not actually fix the problem, just replaces the 100 attitude reset with 50 every turn, keeps your power at weak and does cause a few glitches as previous responses mention. Also only part 1 needs to be unzipped into the civ 2 directory, part 2 does nothing. If there is no patch available to fix this right, then maybe there is a way to downgrade MGE back to FW? Would be nice to have this problem resolved.
 
I can't seem to get tis to work. I downloaded the attitude.exe from the link above and ran it in my Civ2 directory. A black window briefly popped up then closed (civ2.exe had been modified). When I run the game though I experience game crashes (I think when I try to interact with AI players).

I have Civ2 installed by following Roberts guide at the top of the tech forum.. http://forums.civfanatics.com/showthread.php?t=507226

Any ideas?
 
The patch attached in the OP is bad for sure, it makes unnecessary changes (why?) that breaks some things as mentioned above. The attitude.exe patch is better, but still has an issue where is messes up the stack:

It changes
.text:00561FBD mov eax, [ebp+var_30]
.text:00561FC0 push eax
.text:00561FC1 mov eax, [ebp+arg_4]
.text:00561FC4 push eax
.text:00561FC5 mov eax, [ebp+arg_0]
.text:00561FC8 push eax
.text:00561FC9 call sub_4018E3
.text:00561FCE add esp, 0Ch​
to
.text:00561FBD mov eax, [ebp+var_30]
.text:00561FC0 push eax
.text:00561FC1 mov eax, [ebp+arg_4]
.text:00561FC4 push eax
.text:00561FC5 mov eax, [ebp+arg_0]
.text:00561FC8 push eax
.text:00561FC9 nop
.text:00561FCA nop
.text:00561FCB nop
.text:00561FCC nop
.text:00561FCD nop
.text:00561FCE nop
.text:00561FCF nop
.text:00561FD0 nop​

The instruction "add esp, 0Ch" is there adjust the stack pointer after the function call(to remove the three arguments passed to the call from the top of stack), but it is removed in the patch without also removing the three push instructions. To properly patch, you'd want to just nop the call by itself or all the code above.
 
The patch attached in the OP is bad for sure, it makes unnecessary changes (why?) that breaks some things as mentioned above. The attitude.exe patch is better, but still has an issue where is messes up the stack:

It changes
.text:00561FBD mov eax, [ebp+var_30]
.text:00561FC0 push eax
.text:00561FC1 mov eax, [ebp+arg_4]
.text:00561FC4 push eax
.text:00561FC5 mov eax, [ebp+arg_0]
.text:00561FC8 push eax
.text:00561FC9 call sub_4018E3
.text:00561FCE add esp, 0Ch​
to
.text:00561FBD mov eax, [ebp+var_30]
.text:00561FC0 push eax
.text:00561FC1 mov eax, [ebp+arg_4]
.text:00561FC4 push eax
.text:00561FC5 mov eax, [ebp+arg_0]
.text:00561FC8 push eax
.text:00561FC9 nop
.text:00561FCA nop
.text:00561FCB nop
.text:00561FCC nop
.text:00561FCD nop
.text:00561FCE nop
.text:00561FCF nop
.text:00561FD0 nop​

The instruction "add esp, 0Ch" is there adjust the stack pointer after the function call(to remove the three arguments passed to the call from the top of stack), but it is removed in the patch without also removing the three push instructions. To properly patch, you'd want to just nop the call by itself or all the code above.

Indeed, that is a bug that was copied into several projects including Civ2patch and Civ2UIA. But happily there is a LEAVE instruction at the end of procedure which restores ESP. And before that nothing complex is happening which could lead to stack error.

UPDATE:
Here is some related discussion
Civilization II MGE User Interface Additions (CIV2UIA)
 
  • Like
Reactions: fdm
Top Bottom