Antal1987
Warlord
Hi, again!
I've already modified city tiles limit from 21 (0x15) to 45 (0x2D) (see)
It looks like this:

It also produces some bugs if user applies patch after game started.
I've finally completely rebuilt that system. Now City Tiles Limit is an optionional value. It depends now on 2 options I've included into INI file:
1) extended_limit. If it is "false" Limit = 0x15 (by default). If it is "true" Limit depends on 2-nd option;
2) improvement_required. If it is "false" and extended_limit is "true" Limit = 0x2D (extended limi). If it is "true" and extended_limit is "true" the Game checks the City wheter it has an improvement with new special flag = true.
That's because standard field for city improvements flags contains 32 flags (of 32 possible), I've used different field for storing new improvement flag.
CITY_TILES_LIMIT_FLAG = 0x1000. It's stored in Improvement.Small_Wonders_Flags.
Therefore, If you set these options both to "true" and change the Scenario making Hospital Improvement have CITY_TILES_LIMIT_FLAG in its Small_Wonder_Flags, every city with Hospital would have extended tiles limit.
I've placed these options into separate INI section: [city_tiles]. By default, both options are "false"
Also I've found a way to avoid resource bugs after changing limit options. I've made a stub which makes the Game completely recalculate resources after the user click center tile on City Screen Form.
Have a nice try!
New patch attached. Unpack it as usual.
P.S. I've not made patches for Civ3ConquestsEdit, so there are few ways to edit new flag:
1) Modify custom editor to provide the option
2) Modify Improvement data dirung runtime. The game contains Improvements at the following address:
0x009C406C struct_Improvement * Improvements
struct_Improvement has size of 0x110.
Small_Wonders_Flags has offset: 0xF4.
The address of Small_Wonder_Flags of Improvement with ID={ID} is the following:
*(int *)0x009C406C + 0x110 * {ID} + 0xF4
I've already modified city tiles limit from 21 (0x15) to 45 (0x2D) (see)
It looks like this:

It also produces some bugs if user applies patch after game started.
I've finally completely rebuilt that system. Now City Tiles Limit is an optionional value. It depends now on 2 options I've included into INI file:
1) extended_limit. If it is "false" Limit = 0x15 (by default). If it is "true" Limit depends on 2-nd option;
2) improvement_required. If it is "false" and extended_limit is "true" Limit = 0x2D (extended limi). If it is "true" and extended_limit is "true" the Game checks the City wheter it has an improvement with new special flag = true.
That's because standard field for city improvements flags contains 32 flags (of 32 possible), I've used different field for storing new improvement flag.
CITY_TILES_LIMIT_FLAG = 0x1000. It's stored in Improvement.Small_Wonders_Flags.
Therefore, If you set these options both to "true" and change the Scenario making Hospital Improvement have CITY_TILES_LIMIT_FLAG in its Small_Wonder_Flags, every city with Hospital would have extended tiles limit.
I've placed these options into separate INI section: [city_tiles]. By default, both options are "false"
Also I've found a way to avoid resource bugs after changing limit options. I've made a stub which makes the Game completely recalculate resources after the user click center tile on City Screen Form.
Have a nice try!
New patch attached. Unpack it as usual.
P.S. I've not made patches for Civ3ConquestsEdit, so there are few ways to edit new flag:
1) Modify custom editor to provide the option
2) Modify Improvement data dirung runtime. The game contains Improvements at the following address:
0x009C406C struct_Improvement * Improvements
struct_Improvement has size of 0x110.
Small_Wonders_Flags has offset: 0xF4.
The address of Small_Wonder_Flags of Improvement with ID={ID} is the following:
*(int *)0x009C406C + 0x110 * {ID} + 0xF4