Antal1987
Warlord
Hello!
Golden Age
In C3C Editor golden age duration can be set up to 100. But in the runtime it can be set to any value. Here how it works.
Golden Age period for a Civlization (Player or AI) is technically prodived only by one variable: Golden Age End. It's 4-byte integer and it represents the exact turn, when Golden Age disables.
The variable is being initialized when the game sees that a Civ has built required wonders.
The Game just calculating End Turn as Current Turn (see Vistory Conditions) + Golden Age Duration (see General Settings in Civ Editor).
The variable has offset 0x3C from a civ class object start.
A Civ clas object can be found by 4-char string "LEAD" which has offset 0x08 from object's start.
In single player mode Player Civ has index 1 (counting from 0).
In C3C v1.22. Player Civ has address: 0x00A54F3C.
It's Golden Age End variable has address: 0x00A54F78.
Therefore, it's enough to change this value to let's say 10000 to have infinite Golden Age.
Science Age
Science Age works a little bit different. It has it's own variable for End Turn but it also has 4-byte integer for status.
When the Game initiates Science Age, it sets Science Age Status to 1 and Science Age End to Current Turn + 20 (hard-coded constant)
Here are offsets of these values is Civ class structure:
000015D0 Science_Age_Status (4 bytes)
000015D4 Science_Age_End dd (4 bytes)
In C3C v1.22 it's addresses are: 0x00A5650C and 0x00A56510 respectively.
Therefore, it's enough to change Status value to 1 ans End Turn value to let's say 10000 to have infinite Science Age.
Golden Age
In C3C Editor golden age duration can be set up to 100. But in the runtime it can be set to any value. Here how it works.
Golden Age period for a Civlization (Player or AI) is technically prodived only by one variable: Golden Age End. It's 4-byte integer and it represents the exact turn, when Golden Age disables.
The variable is being initialized when the game sees that a Civ has built required wonders.
The Game just calculating End Turn as Current Turn (see Vistory Conditions) + Golden Age Duration (see General Settings in Civ Editor).
The variable has offset 0x3C from a civ class object start.
A Civ clas object can be found by 4-char string "LEAD" which has offset 0x08 from object's start.
In single player mode Player Civ has index 1 (counting from 0).
In C3C v1.22. Player Civ has address: 0x00A54F3C.
It's Golden Age End variable has address: 0x00A54F78.
Therefore, it's enough to change this value to let's say 10000 to have infinite Golden Age.
Science Age
Science Age works a little bit different. It has it's own variable for End Turn but it also has 4-byte integer for status.
When the Game initiates Science Age, it sets Science Age Status to 1 and Science Age End to Current Turn + 20 (hard-coded constant)
Here are offsets of these values is Civ class structure:
000015D0 Science_Age_Status (4 bytes)
000015D4 Science_Age_End dd (4 bytes)
In C3C v1.22 it's addresses are: 0x00A5650C and 0x00A56510 respectively.
Therefore, it's enough to change Status value to 1 ans End Turn value to let's say 10000 to have infinite Science Age.