//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- bool CHL2WarsPlayer::ClientCommand( const CCommand &args ) { // FIXME: Most commands do not check the number of args. // (Although this doesn't really matter since an arg out of range is just an empty string...). if( GetControlledUnit() && GetControlledUnit()->GetIUnit() ) { if( GetControlledUnit()->GetIUnit()->ClientCommand( args ) ) return true; } if( !V_stricmp( args[0], "player_clearselection" ) ) { ClearSelection(); return true; } else if( !V_stricmp( args[0], "player_addunit" ) ) { for( int i = 1; i < args.ArgC(); i++ ) { #ifdef CLIENTSENDEHANDLE long iEncodedEHandle = atol(args[i]); int iSerialNum = (iEncodedEHandle >> MAX_EDICT_BITS); int iEntryIndex = iEncodedEHandle & ~(iSerialNum << MAX_EDICT_BITS); EHANDLE pEnt( iEntryIndex, iSerialNum ); #else CBaseEntity *pEnt = UTIL_EntityByIndex( atoi(args[i]) ); #endif // CLIENTSENDEHANDLE //DevMsg( "player_addunit: selecting ent #%d\n", atoi(args[i]) ); if( pEnt && pEnt->IsAlive() && pEnt->GetIUnit() ) pEnt->GetIUnit()->Select(this); else DevMsg( "player_addunit: tried to select an invalid unit (#%d)\n", atoi(args[i]) ); } return true; } else if( !V_stricmp( args[0], "player_removeunit" ) )
Acad::ErrorStatus CGraphListCtrl::GetBlock1( LPCTSTR szBlockName, AcDbBlockTableRecord*& pBlockRecord ) { Acad::ErrorStatus es; pBlockRecord = NULL; AcDbBlockTableRecordPointer pSrcRc(szBlockName, m_pCurDb, AcDb::kForRead); es = pSrcRc.openStatus(); if (Acad::eOk != es) return es; AcDbBlockTablePointer pDestTbl(m_DefDb, AcDb::kForRead); es = pDestTbl.openStatus(); if (Acad::eOk != es) return es; AcDbBlockTableRecordPointer pDestRc; pDestRc.create(); es = pDestRc.openStatus(); if (Acad::eOk != es) return es; es = pDestRc->setName(szBlockName); if (Acad::eOk != es) return es; pDestTbl->upgradeOpen(); es = pDestTbl->add(pDestRc.object()); pDestTbl->downgradeOpen(); if (Acad::eOk != es) return es; AcDbBlockTableRecordIterator* pIter = NULL; es = pSrcRc->newIterator(pIter); if (Acad::eOk != es) return es; AcDbObjectId objId; AcDbIdMapping idMap; AcDbObject* pObject = NULL; for (pIter->start(); !pIter->done(); pIter->step()) { es = pIter->getEntityId(objId); if (Acad::eOk != es) continue; AcDbEntityPointer pEnt(objId, AcDb::kForRead); es = pEnt.openStatus(); if (Acad::eOk != es) continue; if (pEnt->isKindOf(AcDbText::desc())) { continue; } es = pEnt->deepClone(pDestRc.object(), pObject, idMap, true); if (Acad::eOk != es) continue; pObject->close(); } pBlockRecord = pDestRc.object(); return es; }
//method ISerialEntity *CSerialEntityXML::NewChild(void) { CSerialEntityXML *pEnt(new CSerialEntityXML(this)); return pEnt; }