sub_404F80
location:
404FEB
length: 0Ah
composition: 8 byte composed double float
This value when zeroed out prevented the AI sending any demands to the player (This value also affects whether a gift to a major empire increases attitude, zeroed they declared war no matter how many gifts I sent), and when set to 1.0 or higher, caused all kinds of treaties to be thrown about. They were still able to make statements and their attitude and sympathy values still work as expected. Seems to be a base value.
Example: BB 33 33 33 33 BE 33 33 C3 3F -> BB 00 00 00 00 BE 00 00 00 00
This probably also disables gifting (untested but not for long) Gifting works. This value also (likely) disables minor races from proposing any relations to you, and the other value for minors? (bribing, untested but not for long either).
Also, it has come to my attention that something may need to be fixed. I don't think it's a bug, but minor races can only declare war on one empire per turn. Nausicaan affiliates wanted to fight both Klingons and Romulans but could not declare war on both, so it was Klingons first, Romulans next. I think it might be depending on which empire is more enraged at you. Klingons were the more enraged party so they got the first declaration. Some things to think about yeah
location:
405030
length: 0Ah
composition: 8 byte composed double float
This value when zeroed out prevented the AI from declaring any wars, sending warpacts, or signing any thereof with each other. Minors still declared war on the major empires. The major empires still sent me demands.
I think from here now, using this new knowledge I should be able to now locate race specific values if any exist, thank you SCT again. 41 subroutines to look through, nice. I'll try to narrow them down by labeling
Of Interest
sub_405164
sub_41F5C0
Somewhere in here I might be able to jump to the relocation table and check for 02 "Ferengi" cmp 02 test > jump back from reloc > je to exit, for treaty proposals received.
Not sure if its the ones received BY AI
or Player though.. assumption is
they will ignore any treaty proposal. Seems like I will have to insert the checks in various locations. It would be nice if they can still make war declarations. Maybe let them demand as well, but remove player/AI gifting.
Somewhere like here:
Code: Select all
004051CE 4E0 89 E8 mov eax, ebp
004051D0 4E0 E8 2B 69 11 00 call gdlList_FirstItem ; Call Procedure
004051D5 4E0 89 C1 mov ecx, eax
004051D7 4E0 85 C0 test eax, eax ; Logical Compare
004051D9 4E0 0F 84 8E 00 00 00 jz loc_40526D ; Jump if Zero (ZF=1)