SE2Revival/mods/toolkit/bwenums.h

71 lines
3 KiB
C++

// GENERATED by tools/se2_bwenums_gen.py - do not edit. Broken World enum names for Siege Editor 2.
// SiegeEditor2.exe PE timestamp 0x438B9DD2; Broken World DungeonSiege2.exe PE timestamp 0x449B02B3.
// Each entry: the static initialiser that builds the enum's string table in the editor (addresses of its
// table and count immediates with their expected values) and the names Broken World adds.
#pragma once
namespace bwenums {
const unsigned long kEditorTimestamp = 0x438B9DD2; // the addresses below are SiegeEditor2.exe 2.00.0.3931's
struct Extra {
const char* name;
unsigned long value; // pairs: the flag value; sequential: unused (appended)
};
struct Enum {
const char* name;
bool pairs; // name/value pairs (else one string per value)
unsigned long object; // the table object the initialiser constructs (zero until it runs)
unsigned long tableImm, table; // push imm32 table: address of the immediate, expected value
unsigned long countImm, count; // push count (pairs) / end (sequential, begin 0): address, expected value
int countSize; // 1 = imm8, 4 = imm32
const Extra* extra;
int extraCount;
};
const Extra kItemSkillTypeExtra[] = {
{"ist_blood_assassin", 0x20},
{"ist_fist_of_stone", 0x40},
};
const Extra kAlterationExtra[] = {
{"ALTER_MOVE_SPEED", 0x0},
{"ALTER_HEALING_BONUS_PERCENT", 0x0},
{"ALTER_SUMMON_DAMAGE_BONUS_PERCENT", 0x0},
{"ALTER_SUMMON_ATTACK_SPEED_BONUS_PERCENT", 0x0},
{"ALTER_MARK_RENDING", 0x0},
{"ALTER_MARK_AGONY", 0x0},
{"ALTER_MARK_HARVEST", 0x0},
{"ALTER_MARK_FIRE", 0x0},
{"ALTER_ATTACK_CHANCE_TO_CAST_TEMPLATE", 0x0},
{"ALTER_DEFEND_CHANCE_TO_CAST_TEMPLATE", 0x0},
{"ALTER_ICE_DAMAGE_PERCENT", 0x0},
{"ALTER_FIRE_DAMAGE_PERCENT", 0x0},
{"ALTER_LIGHTNING_DAMAGE_PERCENT", 0x0},
{"ALTER_DEATH_DAMAGE_PERCENT", 0x0},
{"ALTER_CRITICAL_DAMAGE_MELEE_BONUS_PERCENT", 0x0},
{"ALTER_CRITICAL_DAMAGE_RANGED_BONUS_PERCENT", 0x0},
{"ALTER_MAGIC_POWER_DAMAGE_PERCENT", 0x0},
{"ALTER_LIFE_STEAL_MELEE", 0x0},
{"ALTER_LIFE_STEAL_RANGED", 0x0},
{"ALTER_MANA_STEAL_MELEE", 0x0},
{"ALTER_MANA_STEAL_RANGED", 0x0},
{"ALTER_RANGED_ATTACK_MANA_DAMAGE", 0x0},
{"ALTER_RANGED_ATTACK_MANA_DRAIN", 0x0},
{"ALTER_MELEE_ATTACK_MANA_DAMAGE", 0x0},
{"ALTER_MELEE_ATTACK_MANA_DRAIN", 0x0},
{"ALTER_MELEE_EXP_PERCENT", 0x0},
{"ALTER_RANGED_EXP_PERCENT", 0x0},
{"ALTER_CMAGIC_EXP_PERCENT", 0x0},
{"ALTER_NMAGIC_EXP_PERCENT", 0x0},
{"ALTER_REFLECT_FIXED_DAMAGE", 0x0},
{"ALTER_DAMAGE_TO_MANA_PERCENT", 0x0},
{"ALTER_ATTACK_CHANCE_TO_PENETRATE", 0x0},
};
const Enum kEnums[] = {
{"eItemSkillType", true, 0x01059DA8, 0x00E809F3, 0x00EBB5E0, 0x00E809F1, 0x7, 1, kItemSkillTypeExtra, 2}, // initialiser call at 0x00E809FC
{"eAlteration", false, 0x0105E3F0, 0x00E83F6E, 0x01044E08, 0x00E83F67, 0x95, 4, kAlterationExtra, 32}, // initialiser call at 0x00E83F77
};
} // namespace bwenums