Кресты / Говнокод #11608 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
uint32 originalDamage = damage;

    if (absorb && originalDamage > damage)
        *absorb += (originalDamage - damage);

Вытащил из 1 эмулятора игры World of WarCraft

Запостил: Heisenberg Heisenberg, (Updated )

Комментарии (14) RSS

  • Если вкопаться в TrinityCore по глубже, и не такой говнокод увидишь.
    Ответить
    • то есть присваивание с последующим сравнением тебя не смущают?
      Ответить
  • А ничего что вся функция выглядит вот так?
    void Unit::DealDamageMods(Unit *pVictim, uint32 &damage, uint32* absorb)
    {
        if (!pVictim->isAlive() || pVictim->IsTaxiFlying() || (pVictim->GetTypeId() == TYPEID_UNIT && ((Creature*)pVictim)->IsInEvadeMode()))
        {
            if (absorb)
                *absorb += damage;
            damage = 0;
            return;
        }
    
        uint32 originalDamage = damage;
    
        //Script Event damage Deal
        if (GetTypeId() == TYPEID_UNIT && ((Creature *)this)->AI())
            ((Creature *)this)->AI()->DamageDeal(pVictim, damage);
        //Script Event damage taken
        if (pVictim->GetTypeId() == TYPEID_UNIT && ((Creature *)pVictim)->AI())
            ((Creature *)pVictim)->AI()->DamageTaken(this, damage);
    
        if (absorb && originalDamage > damage)
            *absorb += (originalDamage - damage);
    }


    И переменные проверяются после модифицирования, так как они ссылочные. Автор не позорься.
    Ответить
  • Не надо меня учить) Не знаю где вы взяли этот код, но в мастер ветке тринити (я брал его оттуда, увидел в коммите) такого и близко нету. Вот что там
    https://github.com/TrinityCore/TrinityCore/blob/4.3.4/src/server/game/Entities/Unit/Unit.cpp#L543
    вот после удаления

    а вот этот коммит https://github.com/TrinityCore/TrinityCore/commit/8eba4aebfb56bf86a74fc9841af75359b9cf2346
    Ответить
  • Тогда извиняюсь. Я код взял из мангоса и других его форков, там код выше присутствует вместе с вызовами виртуалок. Видимо тринити когда-то убрали скриптовые ивенты отсюда и забыли про мертвый код.
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8