RoseKavalier
Posts: 118
|
Great start!
My small contributions:
The functions window (1) allows CTRL+F filter which is fast, unlike the disassembly window.
IDA allows import of types (Local types Shift+F1, then Insert), enumeration, structure, types... there is no need to consult outside sources once everything useful is added, you can get something very readable without comments:
Code:
CombatMonster_Shoot_43F620(shooter, target);
if ( (shooter->flags >> CF_DOUBLEATTACK) & 1 && target->Count > 0 )
CombatMonster_Shoot_43F620(shooter, target);// shoot second time
if ( shooter->creatureID == BALLISTA && target->Count > 0 )
{
hypnotized = shooter->spellDuration[SPELL_HYPNOTIZE];
side = shooter->Side;
hypnotizeSide = hypnotized ? 1 - side : shooter->Side;
if ( P_CombatManager_699420->Hero[hypnotizeSide] )
{
hypnotizeSide2 = hypnotized ? 1 - side : shooter->Side;
if ( P_CombatManager_699420->Hero[hypnotizeSide2]->secSkills[ARTILLERY] > 1 )
CombatMonster_Shoot_43F620(shooter, target);
}
}
Code:
enum eCreatureFlags
{
CF_DOUBLE_WIDE = 0x0,
CF_FLYER = 0x1,
CF_SHOOTER = 0x2,
CF_EXTENDED = 0x3,
CF_ALIVE = 0x4,
CF_DESTROYWALLS = 0x5,
CF_SIEGEWEAPON = 0x6,
CF_KING1 = 0x7,
CF_KING2 = 0x8,
CF_KING3 = 0x9,
CF_MINDIMMUNITY = 0xA,
CF_NOOBSTACLEPENALTY = 0xB,
CF_NOMELEEPENALTY = 0xC,
CF_unk2000 = 0xD,
CF_FIREIMMUNITY = 0xE,
CF_DOUBLEATTACK = 0xF,
CF_NORETALIATION = 0x10,
CF_NOMORALE = 0x11,
CF_UNDEAD = 0x12,
CF_ATTACKALLAROUND = 0x13,
CF_MAGOG = 0x14,
CF_CANNOTMOVE = 0x15,
CF_SUMMON = 0x16,
CF_CLONE = 0x17,
CF_MORALE = 0x18,
CF_WAITING = 0x19,
CF_DONE = 0x1A,
CF_DEFENDING = 0x1B,
CF_SACRIFICED = 0x1C,
CF_NOCOLORING = 0x1D,
CF_GRAY = 0x1E,
CF_DRAGON = 0x1F,
};
|
|
23.07.2020 04:26 |
|