예제 #1
0
  __int16 result; // ax@32
  signed int v5; // [sp+24h] [bp-28h]@16
  int v6; // [sp+28h] [bp-24h]@22
  char v7; // [sp+2Ch] [bp-20h]@10
  int v8; // [sp+30h] [bp-1Ch]@1
  float v9; // [sp+34h] [bp-18h]@1
  int v10; // [sp+38h] [bp-14h]@10
  int creatureType; // [sp+3Ch] [bp-10h]@1
  signed int slot; // [sp+40h] [bp-Ch]@10
  int a3a; // [sp+44h] [bp-8h]@1
  int v14; // [sp+48h] [bp-4h]@33

  creatureType = *(_BYTE *)(a1 + 3);
  a3a = (unsigned __int8)((unsigned __int8)(*(_WORD *)(a1 + 4) >> 8) >> -5);
  v8 = ((unsigned __int8)(*(_WORD *)(a1 + 4) >> 8) >> -5) & 0;
  v9 = (double)getArmyStrength((ArmyInfo *)(a2 + 101), (Hero *)a2, 0, 0, 0, 0)
     / (double)(a3a * creature_table[creatureType].fight_value);
  if ( ArmyInfo::hasRoomForCreatureType((ArmyInfo *)(a2 + 101), creatureType)
    && !Hero::hasArtifact((Hero *)a2, ARTIFACT_HIDEOUS_MASK)
    && v9 > 2.0
    && creatureType != 59
    && creatureType != 62
    && creatureType != 63
    && creatureType != 64
    && creatureType != 65 )
  {
    if ( !v8 )
    {
      if ( !*(_BYTE *)(a2 + 120) )
        goto LABEL_28;
      if ( *(_BYTE *)(a2 + 120) == 3 )
예제 #2
0
ui64 CGHeroInstance::getTotalStrength() const
{
	double ret = getFightingStrength() * getArmyStrength();
	return (ui64) ret;
}