diff -r 3fd1717664b3 -r 1f2595deaf77 extensions/sdktools/vhelpers.cpp --- a/extensions/sdktools/vhelpers.cpp Tue Mar 19 11:22:52 2013 -0400 +++ b/extensions/sdktools/vhelpers.cpp Tue Mar 19 11:24:01 2013 -0400 @@ -786,6 +786,7 @@ fprintf(fp, "//\n\n"); + static int offsEFlags = -1; for ( int i = dict->m_Factories.First(); i != dict->m_Factories.InvalidIndex(); i = dict->m_Factories.Next( i ) ) { IServerNetworkable *entity = dict->Create(dict->m_Factories.GetElementName(i)); @@ -796,14 +797,19 @@ UTIL_DrawDataTable(fp, pMap, 0); - typedescription_t *datamap = gamehelpers->FindInDataMap(pMap, "m_iEFlags"); + if (offsEFlags == -1) + { + typedescription_t *datamap = gamehelpers->FindInDataMap(pMap, "m_iEFlags"); - if (!datamap) - { - continue; + if (!datamap) + { + continue; + } + + offsEFlags = GetTypeDescOffs(datamap); } - int *eflags = (int *)((char *)entity->GetBaseEntity() + GetTypeDescOffs(datamap)); + int *eflags = (int *)((char *)entity->GetBaseEntity() + offsEFlags); *eflags |= (1<<0); // EFL_KILLME }