// EdIRCtl.cpp : implementation file // #include "stdafx.h" #include "Defines.hpp" #ifdef D_ED_IR_ACTIVE //BEGIN ROMTEAM Cristi Petrescu 98-06- #include "EDACCust.hpp" #include "EdIRird.hpp" #include "edirfrm.hpp" #include "edirbeen.hpp" //END ROMTEAM Cristi Petrescu 98-06- #include "EdIRCtl.hpp" #include "EdIRDat.hpp" #include "EdIRQuer.hpp" #include "EdIRWaW.hpp" #include "EDACDoc.hpp" #include "EDACActr.hpp" #include "_Actors.hpp" #include "Ctl.h" //ANNECY CB #include "x:\cpa\main\inc\_EditID.h" #include "ai_intf.hpp" #include "EDIRDvVw.hpp" //END #define C_OWNER_DATA_DATA_LEVEL "Data Level" #define C_OWNER_DATA_VISIBILITY "Visibility" //BEGIN ROMTEAM Cristi Petrescu 98-06- #define C_OWNER_DATA_QUALIFIER "Data Qualifier" //END ROMTEAM Cristi Petrescu 98-06- #include "EdIRStrg.hpp" /**********************************************************************************/ void fn_vDeleteControl(CTL_Editor_Control *pclControl) { delete pclControl; } /**********************************************************************************/ //BEGIN ROMTEAM Cristi Petrescu 98-06- void fn_vAddOwnerData(CTL_Editor_Control *pclControl,OAC_tdeDataLevel eDataLevel,OAC_tdeControlVisibility eVisibility, enum OAC_eDataQualifier eDataQualifier/*= OAC_DATA_PUBLIC*/) //END ROMTEAM Cristi Petrescu 98-06- { pclControl->m_pub_fn_pclAddOwnerData((long)eDataLevel,C_OWNER_DATA_DATA_LEVEL); pclControl->m_pub_fn_pclAddOwnerData((long)eVisibility,C_OWNER_DATA_VISIBILITY); //BEGIN ROMTEAM Cristi Petrescu 98-06- pclControl->m_pub_fn_pclAddOwnerData((long)eDataQualifier,C_OWNER_DATA_QUALIFIER); //END ROMTEAM Cristi Petrescu 98-06- } //BEGIN ROMTEAM Cristi Petrescu 98-06- /**********************************************************************************/ OAC_tdeDataQualifier fn_eGetDataQualifier(CTL_Editor_Control *pclControl) { CTL_OwnerData *pclOwnerData=pclControl->m_pub_fn_pclGetOwnerDataWithName(C_OWNER_DATA_QUALIFIER); if(pclOwnerData!=NULL) return (OAC_tdeDataQualifier)(pclOwnerData->m_pub_fn_lGetData()); else { ASSERT(FALSE); return OAC_DATA_PUBLIC; } } //END ROMTEAM Cristi Petrescu 98-06- /**********************************************************************************/ OAC_tdeDataLevel fn_eGetDataLevel(CTL_Editor_Control *pclControl) { CTL_OwnerData *pclOwnerData=pclControl->m_pub_fn_pclGetOwnerDataWithName(C_OWNER_DATA_DATA_LEVEL); if(pclOwnerData!=NULL) return (OAC_tdeDataLevel)(pclOwnerData->m_pub_fn_lGetData()); else { ASSERT(FALSE); return OAC_DATA_LEVEL_1; } } /**********************************************************************************/ OAC_tdeControlVisibility fn_eGetVisibility(CTL_Editor_Control *pclControl) { CTL_OwnerData *pclOwnerData=pclControl->m_pub_fn_pclGetOwnerDataWithName(C_OWNER_DATA_VISIBILITY); if(pclOwnerData!=NULL) return (OAC_tdeControlVisibility)(pclOwnerData->m_pub_fn_lGetData()); else { ASSERT(FALSE); return EDCAR_DATA_VISI_DUAL; } } /**********************************************************************************/ BOOL fn_bMustDisplay(CTL_Editor_Control *pclControl) { //BEGIN ROMTEAM Cristi Petrescu 98-06- CPA_EdIR_Frame *pclIRMainFrame = g_pclAIInterface->m_pclIRMainFrame; if (pclIRMainFrame) { CPA_EdIR_Brain *pclBrain = pclIRMainFrame -> m_pclBrain; if (pclBrain) { OAC_tdeDataQualifier eDataQualifier = fn_eGetDataQualifier (pclControl); if (eDataQualifier == OAC_DATA_PRIVATE && ! pclBrain -> m_bShowPrivateVariable) return FALSE; } } //END ROMTEAM Cristi Petrescu 98-06- EdActors_MyDocument *pclDocument=fn_pclGetEdActorsDocument(); OAC_eDataLevel eDataLevel=fn_eGetDataLevel(pclControl); OAC_tdeControlVisibility eVisibility=fn_eGetVisibility(pclControl); //ANNECY CB CPA_DLLBase *pclActorDLL=(CPA_DLLBase*)(g_pclAIInterface->GetMainWorld()->GetObjectDLLWithName(C_szDLLActorName)); CPA_EdIR_DesignerVariablesView *pclDsgVarView=(CPA_EdIR_DesignerVariablesView *)pclActorDLL->OnQueryAction(g_pclAIInterface,C_uiActor_GetDesignerVariablesView,0); //CPA2 Stegaru Cristian 98-06 if((pclDsgVarView->mfn_bHideVariables ())||(g_pclAIInterface->m_bIsOpened == FALSE)) //End CPA2 Stegaru Cristian 98-06 return FALSE; //END //Stefan Dumitrean 14-07-98 ( OAC Buttons ) BOOL bMustDisplayBecauseRightLevel = TRUE; /* switch( eDataLevel ) { case OAC_DATA_LEVEL_1: if( bMustDisplayBecauseRightLevel = pclDocument->m_aCurrentOACButtonsPressed[0] ) switch( pclControl->m_ucInitialCurrentPair ) { case 1: //is initial bMustDisplayBecauseRightLevel = !pclDocument->m_aCurrentOACButtonsPressed[2]; break; case 2: //is current bMustDisplayBecauseRightLevel = pclDocument->m_aCurrentOACButtonsPressed[2]; } break; case OAC_DATA_LEVEL_2: bMustDisplayBecauseRightLevel = pclDocument->m_aCurrentOACButtonsPressed[1] && !pclDocument->m_aCurrentOACButtonsPressed[2]; break; case OAC_DATA_LEVEL_3: bMustDisplayBecauseRightLevel = pclDocument->m_aCurrentOACButtonsPressed[1] && pclDocument->m_aCurrentOACButtonsPressed[2]; } */ switch( eDataLevel ) { case OAC_DATA_LEVEL_1: switch( pclControl->m_ucInitialCurrentPair ) { case 1: //is initial bMustDisplayBecauseRightLevel = pclDocument->m_bDisplayInitialValue; break; case 2: //is current bMustDisplayBecauseRightLevel = pclDocument->m_bDisplayCurrentValue; } break; case OAC_DATA_LEVEL_2: bMustDisplayBecauseRightLevel = pclDocument->m_bDisplayInitialValue; break; case OAC_DATA_LEVEL_3: bMustDisplayBecauseRightLevel = pclDocument->m_bDisplayCurrentValue; } return ( /* ( (pclDocument->m_tdeCurrentDataLevel>=eDataLevel) && (!pclDocument->m_bExclusiveLevel) ) || ( (pclDocument->m_tdeCurrentDataLevel==eDataLevel) && (pclDocument->m_bExclusiveLevel) ) */ bMustDisplayBecauseRightLevel //End Stefan Dumitrean 14-07-98 ( OAC Buttons ) ) && ( ( ( (eVisibility==EDCAR_DATA_VISI_ONLY_INSTANCES) || (eVisibility==EDCAR_DATA_VISI_DUAL) ) && (pclDocument->m_eCurrentDisplayMode==ED_ACTORS_eDisplayMode_Instance) ) || ( ( (eVisibility==EDCAR_DATA_VISI_ONLY_MODELS) || (eVisibility==EDCAR_DATA_VISI_DUAL) ) && ( (pclDocument->m_eCurrentDisplayMode==ED_ACTORS_eDisplayMode_Model) || (pclDocument->m_eCurrentDisplayMode==ED_ACTORS_eDisplayMode_AlwaysModel) ) ) ); } /**********************************************************************************/ void fn_vOnButtonClick(CTL_Editor_Static *pclStatic,enum CTL_eClickType eClickType) { if(pclStatic!=NULL) { if(pclStatic->m_pub_fn_tdeGetType()==CTL_STATIC_TYPE__FIELD_NAME) { CTL_Editor_Control *pclControl=pclStatic->m_pub_fn_pclGetParentControl(); if(pclControl!=NULL) { CTL_Editor_Data *pclData=pclControl->m_fn_pclGetEditedData(); if(pclData!=NULL && fn_pclGetAssociatedControl(pclData)==NULL) { switch(eClickType) { case CTL_CLICK_TYPE__LEFT_CLICK: break; case CTL_CLICK_TYPE__RIGHT_CLICK: { EdActors_EditorActor *pclActor=fn_pclGetParentActor(pclData); if(pclActor->m_pclActor->m_fn_bIsAnInstance()) { if(fn_bIsInWatch(pclData)) { fn_vRemoveValueFromWatch(pclData); fn_vSetInWatch(pclData,FALSE); pclStatic->InvalidateRect(NULL); } else { fn_vAddValueInWatch(pclData); fn_vSetInWatch(pclData,TRUE); pclStatic->InvalidateRect(NULL); } } } break; case CTL_CLICK_TYPE__LEFT_DOUBLE_CLICK: break; case CTL_CLICK_TYPE__RIGHT_DOUBLE_CLICK: break; default: break; } } } else { ASSERT(FALSE); } } } else { ASSERT(FALSE); } } /**********************************************************************************/ void fn_vGetStaticColor(CTL_Editor_Static *pclStatic,COLORREF &r_ColRefBackGround,COLORREF &r_ColRefText) { if(pclStatic!=NULL) { if(pclStatic->m_pub_fn_tdeGetType()==CTL_STATIC_TYPE__FIELD_NAME) { CTL_Editor_Control *pclControl=pclStatic->m_pub_fn_pclGetParentControl(); if(pclControl!=NULL) { CTL_Editor_Data *pclData=pclControl->m_fn_pclGetEditedData(); if(pclData!=NULL) { if(fn_bIsInWatch(pclData)) { r_ColRefBackGround=RGB(192,50,50); r_ColRefText=RGB(0,0,0); } else { EdActors_EditorActor *pclActor=fn_pclGetParentActor(pclData); if(pclActor->m_pclActor->m_fn_bIsAnInstance()) { switch (fn_eGetDataLevel(pclControl)) { case OAC_DATA_LEVEL_1: switch (pclControl->m_ucInitialCurrentPair) { case 2: r_ColRefBackGround=RGB(0,192,192); r_ColRefText=RGB(0,0,0); break; case 1: r_ColRefBackGround=RGB(192,192,0); r_ColRefText=RGB(0,0,0); break; case 0: default: r_ColRefBackGround=RGB(0,192,0); r_ColRefText=RGB(0,0,0); break; } break; case OAC_DATA_LEVEL_2: r_ColRefBackGround=RGB(192,192,0); r_ColRefText=RGB(0,0,0); break; case OAC_DATA_LEVEL_3: r_ColRefBackGround=RGB(0,192,192); r_ColRefText= RGB(0,0,0); break; } } else { // Shaitan => Check Save type if (pclData->m_pub_fn_csGetDataName().Find(g_c_csDsgVarSaveTypeText) != -1) { r_ColRefBackGround=((CTL_Editor_EnumData *)pclData)->m_pclCurrentValue->m_pub_fn_lGetValue() ? RGB(255,100,200) : RGB(0,255,255); r_ColRefText= RGB(0,0,0); } else if (pclData->m_pub_fn_csGetDataName().Find(g_c_csDsgVarInitTypeText)!= -1) { r_ColRefBackGround=(((CTL_Editor_EnumData *)pclData)->m_pclCurrentValue->m_pub_fn_lGetValue() != OTI_PlayerDead) ? RGB(255,100,0) : RGB(255,255,0); r_ColRefText = RGB(0,0,0); } else { r_ColRefBackGround=RGB(192,192,0); r_ColRefText= RGB(0,0,0); } // End Shaitan => Check Save type } } } else { ASSERT(FALSE); } } else { ASSERT(FALSE); } } } else { ASSERT(FALSE); } } #endif //D_ED_IR_ACTIVE