<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>9</ID>
      <Description>"-------DOW Original Campaign-------"</Description>
      <Color>4080FF</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>11</ID>
          <Description>"Requisition Ressource"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>4080FF</Color>
          <VariableType>Float</VariableType>
          <Address>"W40k.exe"+01347F78</Address>
          <Offsets>
            <Offset>388</Offset>
            <Offset>0</Offset>
            <Offset>28</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>12</ID>
          <Description>"Power Ressource"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>4080FF</Color>
          <VariableType>Float</VariableType>
          <Address>"W40k.exe"+01347F78</Address>
          <Offsets>
            <Offset>38C</Offset>
            <Offset>0</Offset>
            <Offset>28</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>13</ID>
      <Description>"-------Winter Assault Campaign-------"</Description>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>15</ID>
          <Description>"Requisition Ressource"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>"W40k.exe"+01347F78</Address>
          <Offsets>
            <Offset>3C0</Offset>
            <Offset>0</Offset>
            <Offset>28</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>16</ID>
          <Description>"Power Ressource"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>"W40k.exe"+01347F78</Address>
          <Offsets>
            <Offset>3C4</Offset>
            <Offset>0</Offset>
            <Offset>28</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>8</ID>
      <Description>"-------Dark Crusade Campaign-------"</Description>
      <Color>008000</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>1</ID>
          <Description>"Requisition Main Map"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>008000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>"DXP2Mod.dll"+003F8D98</Address>
          <Offsets>
            <Offset>18</Offset>
            <Offset>60</Offset>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>6</ID>
          <Description>"Requisition Ressource"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>008000</Color>
          <VariableType>Float</VariableType>
          <Address>"DXP2Mod.dll"+00406A30</Address>
          <Offsets>
            <Offset>3F8</Offset>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>7</ID>
          <Description>"Power Ressource"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>008000</Color>
          <VariableType>Float</VariableType>
          <Address>"DXP2Mod.dll"+00406A30</Address>
          <Offsets>
            <Offset>3FC</Offset>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>23</ID>
          <Description>"godmode all units (also enemy)"</Description>
          <Color>008000</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : W40k.exe
  Version: 
  Date   : 2025-08-17
  Author : steamuser

  This script does blah blah blah
}

define(address,"DXP2Mod.dll"+C738D)
define(bytes,F3 0F 11 41 28)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,"DXP2Mod.dll"+C738D)

label(code)
label(return)

newmem:
  nop

code:
  //movss [rcx+28],xmm0
  jmp return

address:
  jmp newmem
return:

[DISABLE]

address:
  db bytes
  // movss [rcx+28],xmm0

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DXP2Mod.dll+C738D

DXP2Mod.dll+C7367: 75 0F                    - jne DXP2Mod.dll+C7378
DXP2Mod.dll+C7369: 83 B9 EC 00 00 00 00     - cmp dword ptr [rcx+000000EC],00
DXP2Mod.dll+C7370: 7F 06                    - jg DXP2Mod.dll+C7378
DXP2Mod.dll+C7372: 83 79 40 00              - cmp dword ptr [rcx+40],00
DXP2Mod.dll+C7376: 7E 05                    - jle DXP2Mod.dll+C737D
DXP2Mod.dll+C7378: 0F 2F C1                 - comiss xmm0,xmm1
DXP2Mod.dll+C737B: 76 7A                    - jna DXP2Mod.dll+C73F7
DXP2Mod.dll+C737D: 0F 29 74 24 40           - movaps [rsp+40],xmm6
DXP2Mod.dll+C7382: F3 0F 10 35 96 26 24 00  - movss xmm6,[DXP2Mod.dll+309A20]
DXP2Mod.dll+C738A: 0F 2F C6                 - comiss xmm0,xmm6
// ---------- INJECTING HERE ----------
DXP2Mod.dll+C738D: F3 0F 11 41 28           - movss [rcx+28],xmm0
// ---------- DONE INJECTING  ----------
DXP2Mod.dll+C7392: 76 0A                    - jna DXP2Mod.dll+C739E
DXP2Mod.dll+C7394: C7 41 28 00 00 80 3F     - mov [rcx+28],3F800000
DXP2Mod.dll+C739B: 0F 28 C6                 - movaps xmm0,xmm6
DXP2Mod.dll+C739E: F3 0F 10 49 30           - movss xmm1,[rcx+30]
DXP2Mod.dll+C73A3: 0F 2F C8                 - comiss xmm1,xmm0
DXP2Mod.dll+C73A6: 76 08                    - jna DXP2Mod.dll+C73B0
DXP2Mod.dll+C73A8: F3 0F 11 49 28           - movss [rcx+28],xmm1
DXP2Mod.dll+C73AD: 0F 28 C1                 - movaps xmm0,xmm1
DXP2Mod.dll+C73B0: 0F 2F F8                 - comiss xmm7,xmm0
DXP2Mod.dll+C73B3: 72 3D                    - jb DXP2Mod.dll+C73F2
}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>17</ID>
      <Description>"-------Soulstorm Campaign-------"</Description>
      <Color>FF00FF</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>20</ID>
          <Description>"Requisition Ressource"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF00FF</Color>
          <VariableType>Float</VariableType>
          <Address>"DXP3Mod.dll"+00471030</Address>
          <Offsets>
            <Offset>3F8</Offset>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>21</ID>
          <Description>"Power Ressource"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF00FF</Color>
          <VariableType>Float</VariableType>
          <Address>"DXP3Mod.dll"+00471030</Address>
          <Offsets>
            <Offset>3FC</Offset>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>22</ID>
          <Description>"godmode all units (also enemy)"</Description>
          <Color>FF00FF</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : W40k.exe
  Version: 1.1
  Date   : 2025-08-17
  Author : Spike78

  This script makes all units invincible (also the enemy units)
  will need some more work to detect enemy units
}

define(address,"DXP3Mod.dll"+D3AFD)
define(bytes,F3 0F 11 41 28)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,"DXP3Mod.dll"+D3AFD)

label(code)
label(return)

newmem:
  //missing code for enemy or player recognition for now
  nop
code:
  //movss [rcx+28],xmm0
  jmp return

address:
  jmp newmem
return:

[DISABLE]

address:
  db bytes
  // movss [rcx+28],xmm0

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DXP3Mod.dll+D3AFD

DXP3Mod.dll+D3AD7: 75 0F                    - jne DXP3Mod.dll+D3AE8
DXP3Mod.dll+D3AD9: 83 B9 EC 00 00 00 00     - cmp dword ptr [rcx+000000EC],00
DXP3Mod.dll+D3AE0: 7F 06                    - jg DXP3Mod.dll+D3AE8
DXP3Mod.dll+D3AE2: 83 79 40 00              - cmp dword ptr [rcx+40],00
DXP3Mod.dll+D3AE6: 7E 05                    - jle DXP3Mod.dll+D3AED
DXP3Mod.dll+D3AE8: 0F 2F C1                 - comiss xmm0,xmm1
DXP3Mod.dll+D3AEB: 76 7A                    - jna DXP3Mod.dll+D3B67
DXP3Mod.dll+D3AED: 0F 29 74 24 40           - movaps [rsp+40],xmm6
DXP3Mod.dll+D3AF2: F3 0F 10 35 12 8A 28 00  - movss xmm6,[DXP3Mod.dll+35C50C]
DXP3Mod.dll+D3AFA: 0F 2F C6                 - comiss xmm0,xmm6
// ---------- INJECTING HERE ----------
DXP3Mod.dll+D3AFD: F3 0F 11 41 28           - movss [rcx+28],xmm0
// ---------- DONE INJECTING  ----------
DXP3Mod.dll+D3B02: 76 0A                    - jna DXP3Mod.dll+D3B0E
DXP3Mod.dll+D3B04: C7 41 28 00 00 80 3F     - mov [rcx+28],3F800000
DXP3Mod.dll+D3B0B: 0F 28 C6                 - movaps xmm0,xmm6
DXP3Mod.dll+D3B0E: F3 0F 10 49 30           - movss xmm1,[rcx+30]
DXP3Mod.dll+D3B13: 0F 2F C8                 - comiss xmm1,xmm0
DXP3Mod.dll+D3B16: 76 08                    - jna DXP3Mod.dll+D3B20
DXP3Mod.dll+D3B18: F3 0F 11 49 28           - movss [rcx+28],xmm1
DXP3Mod.dll+D3B1D: 0F 28 C1                 - movaps xmm0,xmm1
DXP3Mod.dll+D3B20: 0F 2F F8                 - comiss xmm7,xmm0
DXP3Mod.dll+D3B23: 72 3D                    - jb DXP3Mod.dll+D3B62
}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
