Düzeltme | Neredeyse Herkeste Olan Ymir Hatası

  • Konuyu açan Konuyu açan Kaiser
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 13
  • Gösterim Gösterim 418

Kaiser

Admin
Admin
Geliştirici
Yardımsever Üye
Mesaj
4.385
Çözümler
439
Beğeni
4.931
Puan
1.849
Ticaret Puanı
0
Efekt yönetimiyle alakalı küçük bir mantık hatası fark ettim. Bunun kasıtlı olarak yapılıp yapılmadığından emin değilim, efektlerle içli dışlı olanlar herhangi bir yanlış anlamayı düzeltebilirler, fakat kod bu haliyle mantıksız görünüyor.

ParticleSystemData.cpp:
C++:
Genişlet Daralt Kopyala
if (!rTextFileLoader.GetTokenByte("emittershape", &m_EmitterProperty.m_byEmitterShape))
    return FALSE;
    
if (!rTextFileLoader.GetTokenByte("emitteradvancedtype", &m_EmitterProperty.m_byEmitterAdvancedType))
{
    m_EmitterProperty.m_byEmitterShape = CEmitterProperty::EMITTER_ADVANCED_TYPE_FREE;
    /*
    m_byEmitterAdvancedType nesnesini sorguluyor ama m_byEmitterShape nesnesine aktarıyor?
    m_byEmitterShape bir üstte zaten ayrıca sorgulanmış.
     m_byEmitterShape ve m_byEmitterAdvancedType farklı enumlara aittir.
    */
}

Olması gereken(ikinci if):
C++:
Genişlet Daralt Kopyala
if (!rTextFileLoader.GetTokenByte("emitteradvancedtype", &m_EmitterProperty.m_byEmitterAdvancedType))
{
    m_EmitterProperty.m_byEmitterAdvancedType = CEmitterProperty::EMITTER_ADVANCED_TYPE_FREE;
}
 
neredeyse herkeste demiş çünkü benim fileste olmadığını biliyor...
 
Evet doğru tespitte bulunmuşsun emitteradvancedtype verisi okunamadığında, m_byEmitterAdvancedType yerine yanlışlıkla m_byEmitterShape değişkenine değer atanıyor. Bu mantıksal bir hata dediğin gibi muhtemelen bilerek yapmışlar aydınlattığın için teşekkürler 2 farklı dosyamda kontrol ettiğim girişi düzgün diğerinde mevcut hata
 
Efekt yönetimiyle alakalı küçük bir mantık hatası fark ettim. Bunun kasıtlı olarak yapılıp yapılmadığından emin değilim, efektlerle içli dışlı olanlar herhangi bir yanlış anlamayı düzeltebilirler, fakat kod bu haliyle mantıksız görünüyor.

ParticleSystemData.cpp:
C++:
Genişlet Daralt Kopyala
if (!rTextFileLoader.GetTokenByte("emittershape", &m_EmitterProperty.m_byEmitterShape))
    return FALSE;
   
if (!rTextFileLoader.GetTokenByte("emitteradvancedtype", &m_EmitterProperty.m_byEmitterAdvancedType))
{
    m_EmitterProperty.m_byEmitterShape = CEmitterProperty::EMITTER_ADVANCED_TYPE_FREE;
    /*
    m_byEmitterAdvancedType nesnesini sorguluyor ama m_byEmitterShape nesnesine aktarıyor?
    m_byEmitterShape bir üstte zaten ayrıca sorgulanmış.
     m_byEmitterShape ve m_byEmitterAdvancedType farklı enumlara aittir.
    */
}

Olması gereken(ikinci if):
C++:
Genişlet Daralt Kopyala
if (!rTextFileLoader.GetTokenByte("emitteradvancedtype", &m_EmitterProperty.m_byEmitterAdvancedType))
{
    m_EmitterProperty.m_byEmitterAdvancedType = CEmitterProperty::EMITTER_ADVANCED_TYPE_FREE;
}
imzadaki set hangi set kanka öyle
 
o zaman boss u ver bize :poke:
Başlıksız-1.webp
 
Geri
Üst