<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="16">
  <CheatEntries>
    <CheatEntry>
      <ID>10</ID>
      <Description>"ENERGY"</Description>
      <Color>80000008</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Author: +METHOS
//Target: X3 Albion Prelude

[ENABLE]
aobscan(aob1,01 81 34 01 00 00)
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(highenergy)
label(energypointer)
registersymbol(energypointer)
registersymbol(aob1)

newmem:
cmp [ecx+4C],00002400
je highenergy
jmp originalcode

highenergy:
mov [energypointer],ecx
add [ecx+00000134],eax
jmp returnhere

originalcode:
add [ecx+00000134],eax
jmp returnhere

energypointer:
dd 0

aob1:
jmp newmem
nop
returnhere:

[DISABLE]
dealloc(newmem)
aob1:
db 01 81 34 01 00 00

//"X3AP.exe"+4DFA0:
//add [ecx+00000134],eax

//Alt: db 01 81 34 01 00 00

unregistersymbol(energypointer)
unregistersymbol(aob1)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>11</ID>
          <Description>"ENERGY POINTER ADDRESS"</Description>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>energypointer</Address>
          <Offsets>
            <Offset>134</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>40</ID>
      <Description>"SHIELD CAPACITY"</Description>
      <Color>80000008</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Author: +METHOS
//Target: X3 Albion Prelude

[ENABLE]
aobscan(aob2,8B 4F 01 89 4E 01 8B C6)
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(shieldcap)
registersymbol(aob2)
registersymbol(shieldcap)

newmem:
cmp [edi+FA],0000001C
jne originalcode
cmp [edi+F6],0000001B
jne originalcode
cmp [edi+FE],0000001D
jne originalcode
mov [shieldcap],edi
mov ecx,[edi+01]
mov [esi+01],ecx
jmp returnhere

originalcode:
mov ecx,[edi+01]
mov [esi+01],ecx
jmp returnhere

shieldcap:
dd 0

aob2:
jmp newmem
nop
returnhere:

[DISABLE]
dealloc(newmem)
aob2:
db 8B 4F 01 89 4E 01

//"X3AP.exe"+A5CD7:
//mov ecx,[edi+01]
//mov [esi+01],ecx

//Alt: db 8B 4F 01 89 4E 01

unregistersymbol(aob2)
unregistersymbol(shieldcap)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>41</ID>
          <Description>"SHIELD CAPACITY POINTER ADDRESS"</Description>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>shieldcap</Address>
          <Offsets>
            <Offset>1</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols>
    <SymbolEntry>
      <Name>energypointer</Name>
      <Address>158E002E</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>aob1</Name>
      <Address> 0044DFA0</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>aob2</Name>
      <Address> 004A5CD7</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>shieldcap</Name>
      <Address>00AA004C</Address>
    </SymbolEntry>
  </UserdefinedSymbols>
</CheatTable>
