本文整理汇总了C++中CEntity::GetClassname方法的典型用法代码示例。如果您正苦于以下问题:C++ CEntity::GetClassname方法的具体用法?C++ CEntity::GetClassname怎么用?C++ CEntity::GetClassname使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CEntity
的用法示例。
在下文中一共展示了CEntity::GetClassname方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: EditEntity
int CEntitiesDialog::EditEntity( CEntityArray& Entities, int CurrentEntity, CFusionDoc* Doc)
{
// If more than one entity selected, make sure they're all the same type.
int nSel = 0;
CString EntityClassname;
int i;
pDoc = Doc;
mEntityArray = &Entities;
for (i = 0; i < mEntityArray->GetSize(); ++i)
{
CEntity *pEnt;
pEnt = &Entities[i];
if (pEnt->IsSelected ())
{
if (nSel == 0)
{
EntityClassname = pEnt->GetClassname ();
mCurrentEntity = i;
}
else
{
if (pEnt->GetClassname () != EntityClassname)
{
AfxMessageBox ("To edit multiple entities, they must all be of the same type.");
return CurrentEntity;
}
}
++nSel;
}
}
MultiEntityFlag = (nSel > 1);
if (MultiEntityFlag)
{
}
else
{
if (CurrentEntity != -1)
{
mCurrentEntity = CurrentEntity;
}
else
{
// Let's set entity 0 as selected if it exists...
mCurrentEntity = 0;
if (mEntityArray->GetSize() > 0)
{
pDoc->ResetAllSelectedEntities();
pDoc->SelectEntity (&(*mEntityArray)[mCurrentEntity]);
pDoc->mCurrentEntity = mCurrentEntity;
}
}
}
DoModal();
return mCurrentEntity;
}
示例2: NeedTextNotify
BOOL CEntitiesDialog::NeedTextNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
const char *pDocField;
CString EntityClassname;
CString FieldName;
int Index;
CEntity *pEnt;
// default return value is nothing...
pTTT->szText[0] = '\0';
// Fill the szText field with the documentation string for the current field.
// Get current entity selection and retrieve its name
Index = m_EntityCombo.GetCurSel ();
if (Index == CB_ERR)
{
return FALSE;
}
Index = m_EntityCombo.GetItemData (Index);
pEnt = &((*mEntityArray)[Index]);
EntityClassname = pEnt->GetClassname ();
m_PropertiesList.GetText (UglyGlobalItemId, FieldName);
pDocField = EntityTable_GetEntityFieldDoc (Level_GetEntityDefs (pDoc->pLevel), EntityClassname, FieldName);
if (pDocField != NULL)
{
strncpy (pTTT->szText, pDocField, sizeof (pTTT->szText));
pTTT->szText[sizeof (pTTT->szText)-1] = '\0';
}
return FALSE;
}
示例3: while
bool CServerOP4CTF::ClientIsImportant(CClient *pClient)
{
// see if this player has the flag...
CEntity *pEntity = NULL;
while (pEntity = UTIL_FindEntityInSphere(pEntity, pClient->GetOrigin(), 10)) {
if (!pEntity->GetOwner())
continue; // reliability check
if (*pEntity->GetOwner() == *pClient &&
pEntity->GetOrigin() == pClient->GetOrigin() &&
strcmp(pEntity->GetClassname(), "item_ctfflag") == 0)
return true; // this player has the flag
}
return false; // this player doesn't have the flag
}
示例4: our_trie_iterator
void our_trie_iterator(KTrie<IEntityFactory_CE *> *pTrie, const char *name, IEntityFactory_CE *& obj, void *data)
{
SourceHook::List<CEntity *> *cent_list = (SourceHook::List<CEntity *> *)data;
int count = 0;
SourceHook::List<CEntity *>::iterator _iter;
CEntity *pInfo;
for(_iter=cent_list->begin(); _iter!=cent_list->end(); _iter++)
{
pInfo = (*_iter);
if(strcmp(name, pInfo->GetClassname()) == 0)
{
count++;
continue;
}
IType *pType = GetType(pInfo->BaseEntity());
IBaseType *pBase = pType->GetBaseType();
do
{
const char *classname = GetTypeName(pBase->GetTypeInfo());
if(strcmp(classname, name) == 0)
{
count++;
}
} while (pBase->GetNumBaseClasses() && (pBase = pBase->GetBaseClass(0)));
pType->Destroy();
}
if(strlen(name) < 7)
META_CONPRINTF("%s:\t\t\t\t%d\n",name,count);
else if(strlen(name) < 15)
META_CONPRINTF("%s:\t\t\t%d\n",name,count);
else if(strlen(name) < 23)
META_CONPRINTF("%s:\t\t%d\n",name,count);
else
META_CONPRINTF("%s:\t%d\n",name,count);
}
示例5: OnDblclkPropertieslist
void CEntitiesDialog::OnDblclkPropertieslist()
{
// Double-click on the item...Edit it.
mCurrentKey = m_PropertiesList.GetCurSel ();
if (mCurrentKey != LB_ERR)
{
CEntity *Ent = &((*mEntityArray)[mCurrentEntity]);
CString EntityTypeName = Ent->GetClassname ();
CString KeyName;
CString TheValue;
m_PropertiesList.GetText (mCurrentKey, KeyName);
Ent->GetKeyValue (KeyName, TheValue);
TopType eType;
if (EntityTable_GetEntityPropertyType (Level_GetEntityDefs (pDoc->pLevel), EntityTypeName, KeyName, &eType))
{
CDialog *pEditDialog = NULL;
// Create the dialog that's appropriate for this type....
switch (eType)
{
case T_INT :
pEditDialog = new CIntKeyEditDlg (this, KeyName, &TheValue);
break;
case T_FLOAT :
pEditDialog = new CFloatKeyEditDlg (this, KeyName, &TheValue);
break;
case T_COLOR :
pEditDialog = new CColorKeyEditDlg (this, KeyName, &TheValue);
break;
case T_POINT :
pEditDialog = new CPointKeyEditDlg (this, KeyName, &TheValue);
break;
case T_STRING :
pEditDialog = new CKeyEditDlg (this, KeyName, &TheValue);
break;
case T_MODEL :
pEditDialog = new CModelKeyEditDlg (this, Level_GetModelInfo (pDoc->pLevel)->Models, KeyName, &TheValue);
break;
case T_STRUCT :
pEditDialog = new CStructKeyEditDlg (this, *Ent, KeyName, mEntityArray, &TheValue, Level_GetEntityDefs (pDoc->pLevel));
break;
case T_BOOLEAN :
pEditDialog = new CBoolKeyEditDlg (this, KeyName, &TheValue);
break;
case T_PTR :
default :
// bad or unknown type
assert (0);
break;
}
if (pEditDialog != NULL)
{
int ModalResult = pEditDialog->DoModal ();
delete pEditDialog;
if (ModalResult == IDOK)
{
if (MultiEntityFlag)
{
// multiple entities--change this property on all of them
int i;
for (i = 0; i < mEntityArray->GetSize (); ++i)
{
CEntity *pEnt;
pEnt = &(*mEntityArray)[i];
if (pEnt->IsSelected ())
{
pEnt->SetKeyValue (KeyName, TheValue);
}
}
}
else
{
// update
Ent->SetKeyValue (KeyName, TheValue);
}
FillInKeyValuePairs(mCurrentKey);
}
}
}
}
}
示例6: FillInKeyValuePairs
//================================================================================
// This function fills in the key value pairs for the current dialog.
//================================================================================
void CEntitiesDialog::FillInKeyValuePairs(int Selection)
{
// now get the actual entity number from that
int Entity ;
//ASSERT( m_EntityCombo.GetItemData( m_EntityCombo.GetCurSel( ) ) == (DWORD)Entity ) ;
Entity = m_EntityCombo.GetItemData( m_EntityCombo.GetCurSel( ) ) ;
// now go through that entity and add key/value pairs
// to the dialog
m_PropertiesList.ResetContent();
// what do we have here?
if( Entity == LB_ERR )
{
mCurrentKey = LB_ERR;
return;
}
CEntity *Ent = &((*mEntityArray)[Entity]);
EntityPropertiesList const *pProps;
// Get sorted list of published key/value pairs
CString EntityClassname = Ent->GetClassname ();
pProps = EntityTable_GetEntityPropertiesFromName (Level_GetEntityDefs (pDoc->pLevel), EntityClassname, ET_PUBLISHED);
if (pProps != NULL)
{
// Add key/value pairs to the listbox
for (int iProp = 0; iProp < pProps->NumProps; iProp++)
{
EntityProperty const *p;
p = &(pProps->Props[iProp]);
if (p->KeyNum == -1)
{
// a key number of -1 indicates the end of valid keys...
break;
}
// if this key doesn't exist for this entity, then add it
// and its default value...
CString TheVal;
if (!Ent->GetKeyValue (p->pKey, TheVal))
{
Ent->SetKeyValue (p->pKey, p->pValue);
}
if (p->published)
{
// add it to the listbox
m_PropertiesList.AddString (p->pKey);
}
}
EntityTable_ReleaseEntityProperties (pProps);
}
else
{
/*
We know nothing about this entity's type.
We have the key/value pairs, but we don't know what's supposed
to be published. So we'll display "unknown type".
*/
m_PropertiesList.AddString ("Unknown Entity Type");
Selection = LB_ERR;
}
// set the current
m_PropertiesList.SetCurSel (Selection);
}