Terraforming Capacity of Task Forces
Posted: Sat Jun 27, 2009 2:39 pm
This topic has been renamed from former:
Instant-Terraforming Bug (fix)
Due to a bug in BotF a combination of a TT and a colony ship will terraform any planet instantly. The responsible code sequence is faulty and doesn't check for ship function.
As a reminder the vanilla production values of colony ships and TTs:
( * 100 = terraforming capacity! )
Colony 1 : 1 -> 100
Colony 2 : 3 -> 300
TT 1 : 400 -> 40000
TT 2 : 1600 -> 160000
Max terraforming value of planets is unmodded below 1000.
So in theory a TT 2 could terraform almost the whole map in one go.
Maximum value (unmodded) for a Colony is 9 => Colonies: population, farms, factories
Minimum value (unmodded) for a TT is 10 => The Ground Combat Tech Level Multiplier
Using this information we can fix the bug by inserting of a limit check for production capacities of ships.
(instead of the faulty code sequence)
EDIT: Code outdated ! see below
trek.exe at 0x6864F
replacewith
(with 0A being the critical limit)
Instant-Terraforming Bug (fix)
Due to a bug in BotF a combination of a TT and a colony ship will terraform any planet instantly. The responsible code sequence is faulty and doesn't check for ship function.
As a reminder the vanilla production values of colony ships and TTs:
( * 100 = terraforming capacity! )
Colony 1 : 1 -> 100
Colony 2 : 3 -> 300
TT 1 : 400 -> 40000
TT 2 : 1600 -> 160000
Max terraforming value of planets is unmodded below 1000.
So in theory a TT 2 could terraform almost the whole map in one go.
Maximum value (unmodded) for a Colony is 9 => Colonies: population, farms, factories
Minimum value (unmodded) for a TT is 10 => The Ground Combat Tech Level Multiplier
Using this information we can fix the bug by inserting of a limit check for production capacities of ships.
(instead of the faulty code sequence)
EDIT: Code outdated ! see below
trek.exe at 0x6864F
replace
Code: Select all
25 FF 00 00 00 E8 47 64 00 00 25 FF FF 00 00 42
Code: Select all
E8 4C 64 00 00 25 FF FF 00 00 42 83 F8 0A 7D 02
Code: Select all
loc_469241:
469241 mov eax, [ebx+6]
469244 sar eax, 10h
469247 call sub_44A690 -> (read Ships in Task Force)
46924C mov al, [eax+52h] -> (load ship IDs)
46924F and eax, 0FFh -> redundant! delete/ following statements moved up
469254 call sub_46F6A0 -> (read_CS_TT_production) -> fixed offset 5 bytes
469259 and eax, 0FFFFh
46925E inc edx -> now following: cmp eax,0A // jge short loc_469261
46925F add ecx, eax -> add ship production value to terraforming Task Force
469261 mov eax, [esi+4]
469264 add ebx, 4
469267 cmp edx, eax
469269 jl short loc_469241
46926B nop