BOOL CTrkObjList::OnNewObj(LONG ObjClassId,POINT Point,UINT Flags,CWnd* pWnd, double Zoom,int UpdateMode) { BOOL Created = FALSE; UnselectAll(pWnd,Zoom,UpdateMode); CTrk* pTrk = SetupNewObjTrk(ObjClassId); if (pTrk != NULL) Created = pTrk->TrackRubberBand(Point,Flags,pWnd,Zoom); if (Created) { CTrkObj* pObj = CreateObj(ObjClassId,pTrk,pWnd); if (pObj != NULL) { Add(pObj); Select(pObj,pWnd,Zoom,UpdateMode); } } delete pTrk; return(Created); }
int _tmain(int argc, _TCHAR* argv[]) { cConcrete *pObj = new cConcrete(); cSub1 *pObj; if( CreateObj( cConcrete::kClassId, cSub1::kIID, (void**)&pObj ) ) { // yay } std::cout<< "v1=" << ((cSub1*)pObj)->Get() << std::endl; ((cSub1*)pObj)->mIsTrue = true; std::cout<< "v1=" << ((cSub1*)pObj)->Get() << std::endl; std::cout<< "v2=" << ((cSub2*)pObj)->mIsTrue << std::endl; // http://thedocs.com/13435asdf //tAutoPtr<cSub1> pSub1; cSub1 *pSub1; //if( pObj->QI( cSub1::kIID, pSub1.AsPPV() ) ) if( pObj->QI( cSub1::kIID, (void**)&pSub1 ) ) { pSub1->Test(); cSub2 *pSub2; if( pSub1->QI( cSub2::kIID, (void**)&pSub2 ) ) { pSub2->Test(); } } //std::cout<< "-------"<< std::endl; //std::cout<< "sub1"<< std::endl; //cSub1 *pSub1 = static_cast<cSub1 *>(pObj); //std::cout<< "v=" << pSub1->mIsTrue << std::endl; //pSub1->Test(); //std::cout<< "sub2"<< std::endl; //cSub2 *pSub2 = static_cast<cSub2 *>(pObj); //std::cout<< "v=" << pSub2->mIsTrue << std::endl; //pSub2->Test(); //std::cout<< "sub2 -> base2"<< std::endl; //cBase *pBase2 = static_cast<cBase *>(pSub2); //std::cout<< "v=" << pBase2->mIsTrue << std::endl; //pBase2->Test(); //std::cout<< "base2 -> sub1"<< std::endl; //cSub1 *pBase2_Sub1 = static_cast<cSub1 *>(pBase2); //std::cout<< "v=" << pBase2_Sub1->mIsTrue << std::endl; //pBase2_Sub1->Test(); delete pObj; return 0; }
OpencvWidget::OpencvWidget(QWidget *parent) : QWidget(parent) { MatRows = 200; MatCols = 300; CreateObj(); setUI(); QObject::connect( funs[0], SIGNAL(triggered()), this, SLOT(createCameraThread()) ); QObject::connect( funs[1], SIGNAL(triggered()), this, SLOT(createOptFlowThread()) ); QObject::connect( funs[2], SIGNAL(triggered()), this, SLOT(createFeatureMatchThread()) ); QObject::connect( funs[3], SIGNAL(triggered()), this, SLOT(createContourThread()) ); QObject::connect( funs[4], SIGNAL(triggered()), this, SLOT(createRGBLineChart()) ); QObject::connect( funs[5], SIGNAL(triggered()), this, SLOT(createBackProjection()) ); this->setWindowTitle("My_project"); this->resize(800, 600); this->show(); }
void CQuiz::SetNPC() { CMover* pMover = (CMover*)CreateObj( D3DDEVICE, OT_MOVER, m_sNPC.dwNPCId ); if( !pMover ) { Error( "CQuiz::SetNPC() - pMover is NULL - %d, %s", m_sNPC.dwNPCId, m_sNPC.strCharKey.c_str() ); return; } lstrcpy( pMover->m_szCharacterKey, m_sNPC.strCharKey.c_str() ); pMover->InitNPCProperty(); pMover->InitCharacter( pMover->GetCharacter() ); pMover->SetPos( m_sNPC.vPos ); pMover->InitMotion( MTI_STAND ); pMover->UpdateLocalMatrix(); pMover->AddItToGlobalId(); m_sNPC.idNpc = pMover->GetId(); CWorld* pWorld = g_WorldMng.GetWorld( WI_WORLD_MADRIGAL ); if( pWorld ) pWorld->ADDOBJ( pMover, FALSE, nDefaultLayer ); }
vCommonCtrl* CreateExpBox(vUser* pUser) { vCommonCtrl* pCtrl = (vCommonCtrl*)CreateObj(OT_CTRL, CI_EXPBOX); if( !pCtrl ) return nullptr; float fRate = 0.1f, fDecExp = 0.0f; bool bPxpClear = false, bLvDown = false; int nLevel = pUser->GetLevel(); pUser->GetDieDecExp( nLevel, fRate, fDecExp, bPxpClear, bLvDown ); if( fDecExp ) pUser->GetDieDecExpRate( fDecExp, 0, FALSE ); if( pUser->IsSMMode( SM_REVIVAL ) ) fDecExp = 0.0f; if( pUser->GetExp1() == 0 ) fDecExp = 0.0f; if( pUser->m_bLastPK || pUser->m_bGuildCombat || pUser->m_bLastDuelParty ) fDecExp = 0.0f; if( fDecExp == 0.0f ) return NULL; pCtrl->m_CtrlElem.m_dwSet = UA_PLAYER_ID; pCtrl->m_idExpPlayer = pUser->GetId(); pCtrl->m_nExpBox = (__int64)((float)g_prj.m_pExpCharacter[pUser->GetLevel()+1].nExp1 * fDecExp); pCtrl->m_dwDelete = GetTickCount() + MIN( 30 ); pCtrl->SetPos( pUser->GetPos() ); pUser->AddDefinedText(TID_GAME_EXPBOX_INFO_MSG, "" ); pUser->AddChatText( TID_GAME_EXPBOX_INFO_MSG, ""); return pCtrl; }
Bool HsGame::PostProtocol(SID iSid, Protocol* pProto) { XID sXid; ProtoType iType = pProto->GetType(); if (iType == ProtocolId::LOGIN_GAME) { UString sName = ((LoginGame*)pProto)->m_sName; HawkStringUtil::Trim<UString>(sName); UInt32 iPlayerId = HawkStringUtil::HashString<UString>(sName); SafeObj user_obj(XID(HSO_PLAYER, iPlayerId)); if(!user_obj.IsObjValid()) CreateObj(XID(HSO_PLAYER, iPlayerId)); sXid = XID(HSO_PLAYER, iPlayerId); } else { sXid = GetXidBySid(iSid); } return HawkAppFrame::PostProtocol(sXid, iSid, pProto); }
void CCreateMonster::CreateMonster( CUser* pUser, DWORD dwObjId, D3DXVECTOR3 vPos ) { if( (int)( m_mapCreateMonsterInfo.size() ) >= m_nMaxCreateNum ) { pUser->AddDefinedText( TID_GAME_CREATEMON_LIMIT ); return; } CItemElem* pItemElem = pUser->m_Inventory.GetAtId( dwObjId ); if( !IsUsableItem( pItemElem ) ) return; CREATE_MONSTER_PROP* pCreateMonsterProp = GetCreateMonsterProp( pItemElem ); if( !pCreateMonsterProp ) return; DWORD dwMonsterId = pCreateMonsterProp->GetRandomMonsterId(); if( dwMonsterId == NULL_ID ) return; CWorld* pWorld = pUser->GetWorld(); MoverProp* pMoverProp = prj.GetMoverProp( dwMonsterId ); if( pWorld && pMoverProp && pMoverProp->dwID != 0 ) { D3DXVECTOR3 vDist2 = pUser->GetPos() - vPos; float fDist = D3DXVec3Length( &vDist2 ); // 두좌표간의 거리 if( 15.f < fDist ) { pUser->AddDefinedText( TID_GAME_CREATEMON_F_15 ); return; } int nAttr = pWorld->GetHeightAttribute( vPos.x, vPos.z ); // 이동할 위치의 속성 읽음. if( nAttr == HATTR_NOWALK || nAttr == HATTR_NOMOVE ) // 못 움직이는 곳이면 Pass { pUser->AddDefinedText( TID_GAME_CREATEMON_F_AREA ); return; } if( pUser->IsRegionAttr( RA_SAFETY )) // 안전지역이면 Pass { pUser->AddDefinedText( TID_GAME_CREATEMON_F_AREA ); return; } if( pWorld->GetID() != WI_WORLD_MADRIGAL ) { pUser->AddDefinedText( TID_GAME_CREATEMON_F_AREA ); return; } CObj* pObj = CreateObj( D3DDEVICE, OT_MOVER, pMoverProp->dwID ); if( NULL == pObj ) return; // ASSERT( pObj ); pObj->SetPos( vPos ); pObj->InitMotion( MTI_STAND ); pObj->UpdateLocalMatrix(); ((CMover*)pObj)->m_bActiveAttack = FALSE; ((CMover*)pObj)->AddItToGlobalId(); pWorld->ADDOBJ( pObj, FALSE, pUser->GetLayer() ); LogItemInfo aLogItem; aLogItem.Action = "i"; aLogItem.SendName = pUser->GetName(); char szTemp[128] = {0,}; sprintf( szTemp, "M_C_%s", pMoverProp->szName ); memset( szTemp+31, 0, sizeof(szTemp)-31 ); aLogItem.RecvName = szTemp; aLogItem.Gold = aLogItem.Gold2 = pUser->GetGold(); aLogItem.Gold_1 = ((CMover*)pObj)->GetId(); aLogItem.WorldId = pUser->GetWorld()->GetID(); g_DPSrvr.OnLogItem( aLogItem, pItemElem, 1 ); pUser->AddDefinedText( TID_GAME_CREATEMON_S, "\"%s\"", pMoverProp->szName ); pUser->RemoveItem( (BYTE)( dwObjId ), (short)( 1 ) ); CREATE_MONSTER_INFO createMonsterInfo; createMonsterInfo.chState = 'N'; createMonsterInfo.dwOwnerId = pUser->m_idPlayer; createMonsterInfo.dwEndTick = pCreateMonsterProp->dwKeepTime + GetTickCount(); m_mapCreateMonsterInfo.insert( make_pair( ((CMover*)pObj)->GetId(), createMonsterInfo ) ); } }
void YKReader::ReadData( const YK_TYPE& type ) { WRDataInfo& dataInfo = m_pDS->GetDataInfo(); dataInfo.type = type; m_pCallBack->SetCurCallBack(type); if (!IsEnableSync()) { m_pDS->Clear(); if (!m_pCallBack->ProBeforeProData(dataInfo, this) || !BeforeProData(dataInfo)) return; } if (!IsEnableSync() && dataInfo.type != type) { m_pCallBack->SetCurCallBack(dataInfo.type); if (!m_pCallBack->ProBeforeProData(dataInfo, this)) return; } if (dataInfo.type == TblTableState) { ReadTblModel(dataInfo); return; }else if(viewWnd_def == dataInfo.type) { ReadViewStates(dataInfo); return; } else if(dataInfo.type == TblCustomRule) { ReadTableTypeValue(dataInfo); return; } if (dataInfo.type == TblSpec) { int num = 0; } while (m_pDS->Step()) { //BOOST_ASSERT(m_pDS->ValidData()); if(!m_pDS->ValidData()) continue; YKObjectSPtr obj = CreateObj(dataInfo); if (!obj.ValidObj()) continue; if (!IsEnableSync()) { if (!m_pCallBack->ProBeforeObject(obj, dataInfo, this) || !BeforeObject(obj, dataInfo)) { continue; } } const std::size_t len = dataInfo.m_vecFields.size(); dataInfo.bInvalidObj = false; for (std::size_t i = 0; i < len; ++i) { YK_UINT field = dataInfo.m_vecFields[i]; dataInfo.curField = field; YKString val = std::move(m_pDS->GetData(i)); val.Replace(dataInfo.replaceField, dataInfo.sepField); val.Replace(dataInfo.replaceObject, dataInfo.sepObject); if (IsEnableSync() || (m_pCallBack->ProProField(obj, dataInfo, val, this) && ProField(obj, dataInfo, val) && field != DATESAVE_SPEC_COL && field != DATESAVE_SPEC_DATA_COL && field != DATESAVE_SPEC_RANGE_COL)) { m_dataWriter.Write(dataInfo.type, obj, field, val); } if (dataInfo.bInvalidObj) break; } if (!IsEnableSync() && !dataInfo.bInvalidObj) { if (m_pCallBack->ProAfterObject(obj, dataInfo, this)) AfterObject(obj, dataInfo); } if (!IsEnableSync()) { if (dataInfo.bInvalidObj) FreeObject(obj, dataInfo); else obj->GetFlag().m_bTempRead = false; } } if (!IsEnableSync()) { if (m_pCallBack->ProAfterProData(dataInfo, this)) AfterProData(dataInfo); } }