Fix the bug where warhead flags are read twice#2128
Fix the bug where warhead flags are read twice#2128DeathFishAtEase wants to merge 1 commit intoPhobos-developers:developfrom
Conversation
|
Nightly build for this pull request:
This comment is automatic and is meant to allow guests to get latest nightly builds for this pull request without registering. It is updated on every successful build. |
|
What exactly causes it to be read twice? |
See 0x66919B. Later, it was changed to skip this part via |
|
If it's not easy to solve, it might as well be left alone. |
If this problem is left unresolved, all the old flags that have been replaced on the warhead will create identical Log entries twice. If the problem exists, it would be better to resolve it as thoroughly as possible. |
Does anyone know why repeated loading is necessary? I discovered this while handling #2093 and suspect it is a bug.
By switching to the
developbranch and adding log inWarheadTypeExt::ExtData::LoadFromINIFile, it can be observed that each warhead is loaded twice.For example, based on 6035b7b, make the following modifications:
void WarheadTypeExt::ExtData::LoadFromINIFile(CCINIClass* const pINI) { auto pThis = this->OwnerObject(); const char* pSection = pThis->ID; + static std::map<uintptr_t, int> iniCallCount; + uintptr_t iniAddr = reinterpret_cast<uintptr_t>(pINI); + int count = ++iniCallCount[iniAddr]; + Debug::Log("[DEBUG] LoadFromINIFile for [%s] count: %d\n", pSection, count); INI_EX exINI(pINI);In

debug.log, it can be observed: