<?xml version="1.0" encoding="utf-8"?>
<CheatTable ApoctEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>315</ID>
      <Description>"Map Reveal1"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Colonization
  Version: 
  Date   : 2023-09-01
  Author : Apocalypticx

  This script does map reveal1
}

[ENABLE]

aobscanmodule(mapreveal,Colonization.exe,83 3B 01 75 22) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
mov dword ptr [ebx],(byte)2

code:
  cmp dword ptr [ebx],01
  jne Colonization.exe+5B58E
  jmp return

mapreveal:
  jmp newmem
return:
registersymbol(mapreveal)

[DISABLE]

mapreveal:
  db 83 3B 01 75 22

unregistersymbol(mapreveal)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Colonization.exe+5B567

Colonization.exe+5B546: D9 80 8C 00 00 00  - fld dword ptr [eax+0000008C]
Colonization.exe+5B54C: D9 42 08           - fld dword ptr [edx+08]
Colonization.exe+5B54F: DA E9              - fucompp 
Colonization.exe+5B551: DF E0              - fnstsw ax
Colonization.exe+5B553: F6 C4 44           - test ah,44
Colonization.exe+5B556: 7A 0C              - jp Colonization.exe+5B564
Colonization.exe+5B558: 8B 44 24 64        - mov eax,[esp+64]
Colonization.exe+5B55C: D8 80 94 00 00 00  - fadd dword ptr [eax+00000094]
Colonization.exe+5B562: EB 03              - jmp Colonization.exe+5B567
Colonization.exe+5B564: D8 42 08           - fadd dword ptr [edx+08]
// ---------- INJECTING HERE ----------
Colonization.exe+5B567: 83 3B 01           - cmp dword ptr [ebx],01
// ---------- DONE INJECTING  ----------
Colonization.exe+5B56A: 75 22              - jne Colonization.exe+5B58E
Colonization.exe+5B56C: 8B 44 24 64        - mov eax,[esp+64]
Colonization.exe+5B570: D9 80 8C 00 00 00  - fld dword ptr [eax+0000008C]
Colonization.exe+5B576: D9 43 08           - fld dword ptr [ebx+08]
Colonization.exe+5B579: DA E9              - fucompp 
Colonization.exe+5B57B: DF E0              - fnstsw ax
Colonization.exe+5B57D: F6 C4 44           - test ah,44
Colonization.exe+5B580: 7A 0C              - jp Colonization.exe+5B58E
Colonization.exe+5B582: 8B 44 24 64        - mov eax,[esp+64]
Colonization.exe+5B586: D8 80 94 00 00 00  - fadd dword ptr [eax+00000094]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>316</ID>
      <Description>"Map Reveal2"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Colonization
  Version: 
  Date   : 2023-09-01
  Author : Apocalypticx

  This script does map reveal2
}

[ENABLE]

aobscanmodule(mapreveal2,Colonization.exe,8B 04 08 83 C7 01) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
mov [eax+ecx],(byte)2

code:
  mov eax,[eax+ecx]
  add edi,01
  jmp return

mapreveal2:
  jmp newmem
  nop
return:
registersymbol(mapreveal2)

[DISABLE]

mapreveal2:
  db 8B 04 08 83 C7 01

unregistersymbol(mapreveal2)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Colonization.exe+5A9F6

Colonization.exe+5A9DD: EB 0D                 - jmp Colonization.exe+5A9EC
Colonization.exe+5A9DF: 8B 54 24 14           - mov edx,[esp+14]
Colonization.exe+5A9E3: 83 C2 FF              - add edx,-01
Colonization.exe+5A9E6: 3B C2                 - cmp eax,edx
Colonization.exe+5A9E8: 7E 02                 - jle Colonization.exe+5A9EC
Colonization.exe+5A9EA: 8B C2                 - mov eax,edx
Colonization.exe+5A9EC: 0F AF C3              - imul eax,ebx
Colonization.exe+5A9EF: 03 C1                 - add eax,ecx
Colonization.exe+5A9F1: 8B 0E                 - mov ecx,[esi]
Colonization.exe+5A9F3: C1 E0 04              - shl eax,04
// ---------- INJECTING HERE ----------
Colonization.exe+5A9F6: 8B 04 08              - mov eax,[eax+ecx]
// ---------- DONE INJECTING  ----------
Colonization.exe+5A9F9: 83 C7 01              - add edi,01
Colonization.exe+5A9FC: 83 FF 05              - cmp edi,05
Colonization.exe+5A9FF: D8 84 86 88 00 00 00  - fadd dword ptr [esi+eax*4+00000088]
Colonization.exe+5AA06: 0F 8C 76 FF FF FF     - jl Colonization.exe+5A982
Colonization.exe+5AA0C: D8 0D D4 C2 AD 00     - fmul dword ptr [Colonization.exe+6DC2D4]
Colonization.exe+5AA12: 8B 7C 24 24           - mov edi,[esp+24]
Colonization.exe+5AA16: 8B 44 24 78           - mov eax,[esp+78]
Colonization.exe+5AA1A: 83 F8 01              - cmp eax,01
Colonization.exe+5AA1D: 8B 4C 24 20           - mov ecx,[esp+20]
Colonization.exe+5AA21: 89 4C 24 3C           - mov [esp+3C],ecx
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>337</ID>
      <Description>"City Reveal"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Colonization
  Version: 
  Date   : 2023-09-03
  Author : Apocalypticx

  This script does city reveal
}

[ENABLE]

aobscanmodule(cityreveal,CvGameCoreDLL.dll,8A 04 01 5E C2 08 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov al,[ecx+eax]
  mov al,(byte)1
  pop esi
  ret 0008
  jmp return

cityreveal:
  jmp newmem
  nop
  nop
return:
registersymbol(cityreveal)

[DISABLE]

cityreveal:
  db 8A 04 01 5E C2 08 00

unregistersymbol(cityreveal)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: CvGameCoreDLL.CvCity::isRevealed+29

CvGameCoreDLL.CvCity::isRevealed+8: 74 15              - je CvGameCoreDLL.CvCity::isRevealed+1F
CvGameCoreDLL.CvCity::isRevealed+A: 8B 0D C4 44 6D 07  - mov ecx,[CvGameCoreDLL.dll+3644C4]
CvGameCoreDLL.CvCity::isRevealed+10: E8 7B AA 03 00     - call CvGameCoreDLL.CvGame::isDebugMode
CvGameCoreDLL.CvCity::isRevealed+15: 84 C0              - test al,al
CvGameCoreDLL.CvCity::isRevealed+17: 74 06              - je CvGameCoreDLL.CvCity::isRevealed+1F
CvGameCoreDLL.CvCity::isRevealed+19: B0 01              - mov al,01
CvGameCoreDLL.CvCity::isRevealed+1B: 5E                 - pop esi
CvGameCoreDLL.CvCity::isRevealed+1C: C2 08 00           - ret 0008
CvGameCoreDLL.CvCity::isRevealed+1F: 8B 86 C0 00 00 00  - mov eax,[esi+000000C0]
CvGameCoreDLL.CvCity::isRevealed+25: 8B 4C 24 08        - mov ecx,[esp+08]
// ---------- INJECTING HERE ----------
CvGameCoreDLL.CvCity::isRevealed+29: 8A 04 01           - mov al,[ecx+eax]
// ---------- DONE INJECTING  ----------
CvGameCoreDLL.CvCity::isRevealed+2C: 5E                 - pop esi
CvGameCoreDLL.CvCity::isRevealed+2D: C2 08 00           - ret 0008
CvGameCoreDLL.CvCity::getNameKey: 81 C1 C8 00 00 00  - add ecx,000000C8
CvGameCoreDLL.CvCity::getNameKey+6: FF 25 0C 50 60 07  - jmp dword ptr [CvGameCoreDLL.dll+29500C]
CvGameCoreDLL.CvCity::getNameKey+C: CC                 - int 3 
CvGameCoreDLL.CvCity::getNameKey+D: CC                 - int 3 
CvGameCoreDLL.CvCity::getNameKey+E: CC                 - int 3 
CvGameCoreDLL.CvCity::getNameKey+F: CC                 - int 3 
CvGameCoreDLL.CvCity::getNameKey+10: 64 A1 00 00 00 00  - mov eax,fs:[00000000]
CvGameCoreDLL.CvCity::getNameKey+16: 6A FF              - push -01
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>338</ID>
      <Description>"Unit Reveal"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Colonization
  Version: 
  Date   : 2023-09-03
  Author : Apocalypticx

  This script does unit reveal
}

[ENABLE]

aobscanmodule(unitreveal,CvGameCoreDLL.dll,84 C0 74 06 B0 01 5E C2 08 00 8B 4C) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  test al,al
  mov al,01
  jmp return

unitreveal:
  jmp newmem
  nop
return:
registersymbol(unitreveal)

[DISABLE]

unitreveal:
  db 84 C0 74 06 B0 01

unregistersymbol(unitreveal)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: CvGameCoreDLL.CvPlot::isVisible+15

CvGameCoreDLL.CvPlot::getPoint+40C: CC                 - int 3 
CvGameCoreDLL.CvPlot::getPoint+40D: CC                 - int 3 
CvGameCoreDLL.CvPlot::getPoint+40E: CC                 - int 3 
CvGameCoreDLL.CvPlot::getPoint+40F: CC                 - int 3 
CvGameCoreDLL.CvPlot::isVisible: 80 7C 24 08 00     - cmp byte ptr [esp+08],00
CvGameCoreDLL.CvPlot::isVisible+5: 56                 - push esi
CvGameCoreDLL.CvPlot::isVisible+6: 8B F1              - mov esi,ecx
CvGameCoreDLL.CvPlot::isVisible+8: 74 15              - je CvGameCoreDLL.CvPlot::isVisible+1F
CvGameCoreDLL.CvPlot::isVisible+A: 8B 0D C4 44 6D 07  - mov ecx,[CvGameCoreDLL.dll+3644C4]
CvGameCoreDLL.CvPlot::isVisible+10: E8 EB 2E F4 FF     - call CvGameCoreDLL.CvGame::isDebugMode
// ---------- INJECTING HERE ----------
CvGameCoreDLL.CvPlot::isVisible+15: 84 C0              - test al,al
// ---------- DONE INJECTING  ----------
CvGameCoreDLL.CvPlot::isVisible+17: 74 06              - je CvGameCoreDLL.CvPlot::isVisible+1F
CvGameCoreDLL.CvPlot::isVisible+19: B0 01              - mov al,01
CvGameCoreDLL.CvPlot::isVisible+1B: 5E                 - pop esi
CvGameCoreDLL.CvPlot::isVisible+1C: C2 08 00           - ret 0008
CvGameCoreDLL.CvPlot::isVisible+1F: 8B 4C 24 08        - mov ecx,[esp+08]
CvGameCoreDLL.CvPlot::isVisible+23: 83 F9 FF           - cmp ecx,-01
CvGameCoreDLL.CvPlot::isVisible+26: 75 06              - jne CvGameCoreDLL.CvPlot::isVisible+2E
CvGameCoreDLL.CvPlot::isVisible+28: 32 C0              - xor al,al
CvGameCoreDLL.CvPlot::isVisible+2A: 5E                 - pop esi
CvGameCoreDLL.CvPlot::isVisible+2B: C2 08 00           - ret 0008
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>339</ID>
      <Description>"Flag Reveal"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Colonization
  Version: 
  Date   : 2023-09-03
  Author : Apocalypticx

  This script does flag reveal
}

[ENABLE]

aobscanmodule(flagreveal,CvGameCoreDLL.dll,84 C0 75 58 83 FE FF) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  test al,al
  je CvGameCoreDLL.CvPlot::isFriendlyCity+7C1
  cmp esi,-01
  jmp return

flagreveal:
  jmp newmem
  nop
  nop
return:
registersymbol(flagreveal)

[DISABLE]

flagreveal:
  db 84 C0 75 58 83 FE FF

unregistersymbol(flagreveal)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: CvGameCoreDLL.CvPlot::isFriendlyCity+765

CvGameCoreDLL.CvPlot::isFriendlyCity+73B: 89 5C 24 04        - mov [esp+04],ebx
CvGameCoreDLL.CvPlot::isFriendlyCity+73F: E8 9C B6 F8 FF     - call CvGameCoreDLL.CvGlobals::IsGraphicsInitialized
CvGameCoreDLL.CvPlot::isFriendlyCity+744: 84 C0              - test al,al
CvGameCoreDLL.CvPlot::isFriendlyCity+746: 0F 84 3F 03 00 00  - je CvGameCoreDLL.CvPlot::isFriendlyCity+A8B
CvGameCoreDLL.CvPlot::isFriendlyCity+74C: 8B 0D C4 44 6D 07  - mov ecx,[CvGameCoreDLL.dll+3644C4]
CvGameCoreDLL.CvPlot::isFriendlyCity+752: 56                 - push esi
CvGameCoreDLL.CvPlot::isFriendlyCity+753: E8 88 F1 F3 FF     - call CvGameCoreDLL.CvGame::getActiveTeam
CvGameCoreDLL.CvPlot::isFriendlyCity+758: 8B 0D C4 44 6D 07  - mov ecx,[CvGameCoreDLL.dll+3644C4]
CvGameCoreDLL.CvPlot::isFriendlyCity+75E: 8B F0              - mov esi,eax
CvGameCoreDLL.CvPlot::isFriendlyCity+760: E8 2B BA F3 FF     - call CvGameCoreDLL.CvGame::isDebugMode
// ---------- INJECTING HERE ----------
CvGameCoreDLL.CvPlot::isFriendlyCity+765: 84 C0              - test al,al
// ---------- DONE INJECTING  ----------
CvGameCoreDLL.CvPlot::isFriendlyCity+767: 75 58              - jne CvGameCoreDLL.CvPlot::isFriendlyCity+7C1
CvGameCoreDLL.CvPlot::isFriendlyCity+769: 83 FE FF           - cmp esi,-01
CvGameCoreDLL.CvPlot::isFriendlyCity+76C: 74 14              - je CvGameCoreDLL.CvPlot::isFriendlyCity+782
CvGameCoreDLL.CvPlot::isFriendlyCity+76E: 8B 43 64           - mov eax,[ebx+64]
CvGameCoreDLL.CvPlot::isFriendlyCity+771: 85 C0              - test eax,eax
CvGameCoreDLL.CvPlot::isFriendlyCity+773: 74 04              - je CvGameCoreDLL.CvPlot::isFriendlyCity+779
CvGameCoreDLL.CvPlot::isFriendlyCity+775: 0F BF 04 70        - movsx eax,word ptr [eax+esi*2]
CvGameCoreDLL.CvPlot::isFriendlyCity+779: 85 C0              - test eax,eax
CvGameCoreDLL.CvPlot::isFriendlyCity+77B: 0F 9F C0           - setg al
CvGameCoreDLL.CvPlot::isFriendlyCity+77E: 84 C0              - test al,al
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>340</ID>
      <Description>"Donate Paypal"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
--NO_ACTIVATE
if syntaxcheck then return end
if memrec then print(memrec.Description) end

shellExecute('https://paypal.me/apocalypticx?country.x=GB&amp;locale.x=en_GB')

getLuaEngine().MenuItem1.DoClick()
getLuaEngine().Close()

[DISABLE]

</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
