No need - it is already set to 'true' in the file cpumanager.ai. What difference did you think it would make?
I did not knew that... I was just trying to force the game to emit the highest amount of output in order to better track its inner workings (and in fact, I found the "debug = true" command inside the game code).
Also, it seems that I have landed into some AI-relevant code, that is responsible of loading the default AI code...
.text:0F20D996 sub_F20D996 proc near ; CODE XREF: sub_F20DB6F+135p
.text:0F20D996 mov eax, offset unknown_libname_185; MFC 3.1/4.0/4.2/7.1 32bit
.text:0F20D99B call __EH_prolog
.text:0F20D99B
.text:0F20D9A0 sub esp, 1Ch
.text:0F20D9A3 push ebx
.text:0F20D9A4 push esi
.text:0F20D9A5 push edi
.text:0F20D9A6 push 4
.text:0F20D9A8 mov esi, ecx
.text:0F20D9AA call operator new(uint)
.text:0F20D9AA
.text:0F20D9AF pop ecx
.text:0F20D9B0 mov ecx, eax
.text:0F20D9B2 mov [ebp-10h], ecx
.text:0F20D9B5 xor ebx, ebx
.text:0F20D9B7 cmp ecx, ebx
.text:0F20D9B9 mov [ebp-4], ebx
.text:0F20D9BC jz short loc_F20D9CB
.text:0F20D9BC
.text:0F20D9BE push offset aAi ; "AI"
.text:0F20D9C3 call ds:LuaConfig::LuaConfig(char const *)
.text:0F20D9C3
.text:0F20D9C9 jmp short loc_F20D9CD
.text:0F20D9C9
.text:0F20D9CB; ---------------------------------------------------------------------------
.text:0F20D9CB
.text:0F20D9CB loc_F20D9CB: ; CODE XREF: sub_F20D996+26j
.text:0F20D9CB xor eax, eax
.text:0F20D9CD
.text:0F20D9CD loc_F20D9CD: ; CODE XREF: sub_F20D996+33j
.text:0F20D9CD mov ecx, [esi+8]
.text:0F20D9D0 push 8
.text:0F20D9D2 mov [ecx+1Ch], eax
.text:0F20D9D5 mov eax, [esi+8]
.text:0F20D9D8 push offset dword_F383538
.text:0F20D9DD push dword ptr [eax+1Ch]
.text:0F20D9E0 or edi, 0FFFFFFFFh
.text:0F20D9E3 mov [ebp-4], edi
.text:0F20D9E6 call sub_F20B4B3
.text:0F20D9E6
.text:0F20D9EB push offset aProfileai; "profileai"
.text:0F20D9F0 call ds:Plat::Options::Exist(char const *)
.text:0F20D9F0
.text:0F20D9F6 test al, al
.text:0F20D9F8 jz short loc_F20DA0C
.text:0F20D9F8
.text:0F20D9FA mov eax, [esi+8]
.text:0F20D9FD mov ecx, [eax+1Ch]
.text:0F20DA00 push ebx
.text:0F20DA01 push offset aG_profileTrue; "g_profile = true"
.text:0F20DA06 call ds:LuaConfig::RunString(char const *,bool)
.text:0F20DA06
.text:0F20DA0C
.text:0F20DA0C loc_F20DA0C: ; CODE XREF: sub_F20D996+62j
.text:0F20DA0C push esi
.text:0F20DA0D call sub_F20E28C
.text:0F20DA0D
.text:0F20DA12 mov eax, [esi+8]
.text:0F20DA15 xor edx, edx
.text:0F20DA17 push edx
.text:0F20DA18 mov ecx, offset loc_F20B7B8
.text:0F20DA1D push ecx
.text:0F20DA1E push esi
.text:0F20DA1F push offset aAi_getplayerid; "AI_GetPlayerID"
.text:0F20DA24 push dword ptr [eax+1Ch]
.text:0F20DA27 lea eax, [ebp-10h]
.text:0F20DA2A push eax
.text:0F20DA2B call near ptr byte_F20D84E
.text:0F20DA2B
.text:0F20DA30 mov ecx, [esi+8]
.text:0F20DA33 push eax
.text:0F20DA34 add ecx, 4Ch
.text:0F20DA37 mov dword ptr [ebp-4], 1
.text:0F20DA3E call sub_F20D534
.text:0F20DA3E
.text:0F20DA43 lea ecx, [ebp-10h]
.text:0F20DA46 mov [ebp-4], edi
.text:0F20DA49 call ds:LuaBinding::Obj::~Obj(void)
.text:0F20DA49
.text:0F20DA4F mov eax, [esi+8]
.text:0F20DA52 push dword ptr [eax+1Ch]
.text:0F20DA55 lea ecx, [eax+20h]
.text:0F20DA58 call ds:LuaRuleSystem::Init(LuaConfig *)
.text:0F20DA58
.text:0F20DA5E push offset sub_F20B512
.text:0F20DA63 lea ecx, [ebp-1Ch]
.text:0F20DA66 mov [ebp-1Ch], ebx
.text:0F20DA69 mov [ebp-18h], ebx
.text:0F20DA6C mov [ebp-14h], ebx
.text:0F20DA6F call sub_F2E90CC
.text:0F20DA6F
.text:0F20DA74 mov eax, [esi+8]
.text:0F20DA77 lea ecx, [ebp-1Ch]
.text:0F20DA7A push ecx
.text:0F20DA7B mov ecx, [eax+1Ch]
.text:0F20DA7E mov dword ptr [ebp-4], 2
.text:0F20DA85 call ds:LuaConfig::SetOnImport(boost::function1<LuaConfig::Importer *,char const *,_STL::allocator<boost::function_base>> const &)
.text:0F20DA85
.text:0F20DA8B lea ecx, [ebp-1Ch]
.text:0F20DA8E mov [ebp-4], edi
.text:0F20DA91 call sub_F28865E
.text:0F20DA91
.text:0F20DA96 push offset loc_F20B4D8
.text:0F20DA9B lea ecx, [ebp-1Ch]
.text:0F20DA9E mov [ebp-1Ch], ebx
.text:0F20DAA1 mov [ebp-18h], ebx
.text:0F20DAA4 mov [ebp-14h], ebx
.text:0F20DAA7 call sub_F2F37C9
.text:0F20DAA7
.text:0F20DAAC mov eax, [esi+8]
.text:0F20DAAF lea ecx, [ebp-1Ch]
.text:0F20DAB2 push ecx
.text:0F20DAB3 mov ecx, [eax+1Ch]
.text:0F20DAB6 mov dword ptr [ebp-4], 3
.text:0F20DABD call ds:LuaConfig::SetOnPrint(boost::function1<void,char const *,_STL::allocator<boost::function_base>> const &)
.text:0F20DABD
.text:0F20DAC3 lea ecx, [ebp-1Ch]
.text:0F20DAC6 mov [ebp-4], edi
.text:0F20DAC9 call sub_F28865E
.text:0F20DAC9
.text:0F20DACE push offset loc_F20B4F2
.text:0F20DAD3 lea ecx, [ebp-28h]
.text:0F20DAD6 mov [ebp-28h], ebx
.text:0F20DAD9 mov [ebp-24h], ebx
.text:0F20DADC mov [ebp-20h], ebx
.text:0F20DADF call sub_F2F37C9
.text:0F20DADF
.text:0F20DAE4 mov eax, [esi+8]
.text:0F20DAE7 lea ecx, [ebp-28h]
.text:0F20DAEA push ecx
.text:0F20DAEB mov ecx, [eax+1Ch]
.text:0F20DAEE mov dword ptr [ebp-4], 4
.text:0F20DAF5 call ds:LuaConfig::SetOnAlert(boost::function1<void,char const *,_STL::allocator<boost::function_base>> const &)
.text:0F20DAF5
.text:0F20DAFB lea ecx, [ebp-28h]
.text:0F20DAFE mov [ebp-4], edi
.text:0F20DB01 call sub_F28865E
.text:0F20DB01
.text:0F20DB06 mov ecx, esi
.text:0F20DB08 call sub_F20B8D9
.text:0F20DB08
.text:0F20DB0D test al, al
.text:0F20DB0F jz short loc_F20DB4B
.text:0F20DB0F
.text:0F20DB11 mov edi, [ebp+8]
.text:0F20DB14 push edi
.text:0F20DB15 call ds:FilePath::GetFileType(char const *)
.text:0F20DB15
.text:0F20DB1B test eax, eax
.text:0F20DB1D push edi
.text:0F20DB1E jnz short loc_F20DB27
.text:0F20DB1E
.text:0F20DB20 push offset aAiScriptFileDo; "AI Script File Does Not Exist (%s)"
.text:0F20DB25 jmp short loc_F20DB3D
.text:0F20DB25
.text:0F20DB27; ---------------------------------------------------------------------------
.text:0F20DB27
.text:0F20DB27 loc_F20DB27: ; CODE XREF: sub_F20D996+188j
.text:0F20DB27 mov eax, [esi+8]
.text:0F20DB2A push dword ptr [eax+1Ch]
.text:0F20DB2D call ds:LuaConfigSave::LoadLua(LuaConfig &,char const *)
.text:0F20DB2D
.text:0F20DB33 test al, al
.text:0F20DB35 push edi
.text:0F20DB36 jnz short loc_F20DB53
.text:0F20DB36
.text:0F20DB38 push offset aErrorLoadingSc; "Error loading script file (%s). Check "...
.text:0F20DB3D
.text:0F20DB3D loc_F20DB3D: ; CODE XREF: sub_F20D996+18Fj
.text:0F20DB3D push 4149h
.text:0F20DB42 call ds:dbWarningfAux(ulong,char const *,...)
.text:0F20DB42
.text:0F20DB48 add esp, 0Ch
.text:0F20DB4B
.text:0F20DB4B loc_F20DB4B: ; CODE XREF: sub_F20D996+179j
.text:0F20DB4B mov eax, [esi+8]
.text:0F20DB4E mov [eax+3Ch], bl
.text:0F20DB51 jmp short loc_F20DB5E
.text:0F20DB51
.text:0F20DB53; ---------------------------------------------------------------------------
.text:0F20DB53
.text:0F20DB53 loc_F20DB53: ; CODE XREF: sub_F20D996+1A0j
.text:0F20DB53 mov ecx, [esi+8]
.text:0F20DB56 add ecx, 0Ch
.text:0F20DB59 call sub_F20425A
.text:0F20DB59
.text:0F20DB5E
.text:0F20DB5E loc_F20DB5E: ; CODE XREF: sub_F20D996+1BBj
.text:0F20DB5E mov ecx, [ebp-0Ch]
.text:0F20DB61 pop edi
.text:0F20DB62 pop esi
.text:0F20DB63 pop ebx
.text:0F20DB64 mov large fs:0, ecx
.text:0F20DB6B leave
.text:0F20DB6C retn 4
.text:0F20DB6C
.text:0F20DB6C sub_F20D996 endp; sp = 4
I suppose that here inside we will find something interesting to solve the problem...
Stay tuned...