576 lines
17 KiB
C++
576 lines
17 KiB
C++
//#################################################################################
|
|
//
|
|
// BASE CLASS OF YOUR DLL interface
|
|
//
|
|
//#################################################################################
|
|
#include "StdAfx.h"
|
|
|
|
#include "ACP_Base.h"
|
|
#include "ITF.h"
|
|
#include "IncMEC.h"
|
|
#define D_State_Define
|
|
#include "IncGAM.h"
|
|
#undef D_State_Define
|
|
#include "GLI.h"
|
|
#include "SCR.h"
|
|
|
|
#include "_Minterf.hpp"
|
|
#include "EMECStrg.hpp"
|
|
#include "EMECVwMn.hpp"
|
|
|
|
#include "Meca_Res.h"
|
|
#include "ErO.h"
|
|
#include "IncTUT.h"
|
|
|
|
#include "X:\CPA\Main\Inc\_EditID.h"
|
|
|
|
// infos
|
|
static CString g_csTMEName = C_szDLLMecaName;
|
|
static CString g_csTMEAuthor = "Y. Babitch";
|
|
static CString g_csTMEVersion = "V 4.0.2 18/03/99";
|
|
static CString g_csTMEFrenchHelpFile = "Meca.hlp";
|
|
static CString g_csTMEEnglishHelpFile = "";
|
|
|
|
BOOL g_bTipFirstTime = TRUE;
|
|
|
|
|
|
CPA_Meca_Interface *g_pclInterface;
|
|
|
|
#define C_EdMeca_MenuID_OpenID 31
|
|
#define C_EdMeca_MenuID_CloseID 32
|
|
|
|
#define C_EdMeca_MenuID_SaveDimensions 35
|
|
|
|
#define C_EdMeca_PopupID_Exit_Editor 41
|
|
|
|
// the DLL global definition
|
|
tdstDLLIdentity g_stMecaDLLIdentity;
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// CONSTRUCTOR.
|
|
// You must put here all your DLL interface definitions.
|
|
//--------------------------------------------------------------------------------
|
|
CPA_Meca_Interface::CPA_Meca_Interface(void)
|
|
{
|
|
// ************************** private internal
|
|
m_p_stDLLIdentity = &g_stMecaDLLIdentity;
|
|
|
|
// Does your DLL can output in main game view ?
|
|
m_stBaseDLLDefinition.bCanOutputIn3DView = FALSE;
|
|
|
|
// Does your DLL can be refresh by engine ?
|
|
m_stBaseDLLDefinition.bCanBeRefreshedByEngine = FALSE;
|
|
|
|
// Specific Init.
|
|
m_pclMecaMainFrame = NULL;
|
|
|
|
m_csEditorVersion = "4.0.0 [" + CString(__DATE__) + "] (<using CTL version " + CTL_fn_csGetVersion() + ">)";
|
|
|
|
SetEditorInfo(g_csTMEName, g_csTMEAuthor, g_csTMEVersion, g_csTMEFrenchHelpFile, g_csTMEEnglishHelpFile);
|
|
|
|
SetCurrent(FALSE);
|
|
|
|
//For errors
|
|
ERROR_g_fn_vAddAModuleDescriptor( g_c_csMecaModuleNameForErrors,
|
|
m_csEditorVersion,
|
|
"Yves BABITCH",
|
|
"01 48 18 53 74 (Montreuil)",
|
|
"ybabitch@ubisoft.fr",
|
|
"Daniel PALIX",
|
|
"04 50 51 26 63 (Annecy)",
|
|
"dpalix@ubisoft.fr",
|
|
"",
|
|
"",
|
|
""
|
|
);
|
|
|
|
m_pri_pclSelectedCard = NULL;
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::fn_vJustAfterRegistered(void)
|
|
{
|
|
CString a_csTypes[] =
|
|
{
|
|
g_c_csMecaCardTypeName,
|
|
};
|
|
|
|
fn_vRegisterObjectsType(a_csTypes, 1);
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::fn_vConstruct()
|
|
{
|
|
//Windows constructions
|
|
|
|
//Creates the main frame
|
|
if ( m_pclMecaMainFrame == NULL )
|
|
{
|
|
m_pclMecaMainFrame = new CPA_Meca_MainFrame;
|
|
|
|
m_pclMecaMainFrame->CreateBase( "",
|
|
1,
|
|
2,
|
|
GetInterface()->GetMainWorld() );
|
|
|
|
m_pclMecaMainFrame->mfn_vEnableCaption(FALSE);
|
|
|
|
m_pclMecaMainFrame->m_iInitWidth = m_clDocument.m_ulEditorWidth;
|
|
m_pclMecaMainFrame->m_bKeepPos = TRUE;
|
|
|
|
m_pclMecaMainFrame->m_stWinRight.cLinkSame = FRM_C_MoveLeft;
|
|
}
|
|
|
|
ERROR_PREPARE_M(g_c_csMecaModuleNameForErrors,
|
|
"Construction of Mechanics Editor",
|
|
"CPA_Meca_Interface::fn_vConstruct()",
|
|
E_ERROR_GRAVITY_FATAL,
|
|
"Dialog List could not be created for this Editor");
|
|
ERROR_ASSERT( m_clDocument.m_pclDialogList != NULL );
|
|
|
|
m_clDocument.m_pclDialogList->fn_vInitAllLists();
|
|
m_clDocument.m_pclDialogList->fn_vReinitDialog();
|
|
|
|
//////////////
|
|
//////////////
|
|
//Registers for TUT Module
|
|
TUT_M_vGetTutDll();
|
|
|
|
TUT_M_vRegisterControl(m_pclMecaMainFrame->m_hWnd, "TME_MainFrame", TUT_e_Window);
|
|
//End of Registers for TUT Module
|
|
//////////////
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::fn_vLevelChanges()
|
|
{
|
|
//Researches for existing Mechanics (loaded by Motor)
|
|
m_fn_pclGetDocument()->m_fn_vSearchForLoadedCards();
|
|
|
|
//Loads others
|
|
m_fn_pclGetDocument()->m_fn_vLoadUnloadedCards();
|
|
|
|
//Displays in the Editor
|
|
m_fn_pclGetDocument()->m_fn_vReInitDisplay();
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::fn_vAfterSaveAll(void)
|
|
{
|
|
m_fn_pclGetDocument()->m_pclControlView->m_fn_vUpdateCardsName();
|
|
}
|
|
|
|
//**************************************************************************************
|
|
BOOL CPA_Meca_Interface::fn_bLoadBaseObject(CPA_BaseObject *p_oObject)
|
|
{
|
|
ERROR_PREPARE_M(g_c_csMecaModuleNameForErrors,
|
|
"Trying to load a mechanical Card",
|
|
"CPA_Meca_Interface::fn_bLoadBaseObject(...)",
|
|
E_ERROR_GRAVITY_FATAL,
|
|
"The given object is not of the right type");
|
|
ERROR_ASSERT( p_oObject->fn_bIsOfType(C_szMecaCardTypeName) );
|
|
|
|
//Loads the Card
|
|
return ((CPA_Meca_Card *)p_oObject)->m_fn_bLoadIfUnloaded();
|
|
}
|
|
|
|
//**************************************************************************************
|
|
tdePermission CPA_Meca_Interface::fn_eAcceptNewEditor(CPA_EditorBase *pNewEditor)
|
|
{
|
|
return C_Allow;
|
|
}
|
|
|
|
//**************************************************************************************
|
|
BOOL CPA_Meca_Interface::fn_bCanActivateEditor(CPA_List<CPA_BaseObject> *pParams)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::fn_vOnActivateEditor(CPA_List<CPA_BaseObject> *pParams,
|
|
BOOL bBackActivated)
|
|
{
|
|
m_fn_vShowEditor();
|
|
}
|
|
|
|
//**************************************************************************************
|
|
BOOL CPA_Meca_Interface::fn_bCanCloseEditor(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::fn_vOnCloseEditor(void)
|
|
{
|
|
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::fn_vBeforeEngine(void)
|
|
{
|
|
m_fn_vHideEditor();
|
|
//ANNECY jt {
|
|
CPA_BaseObject* poBaseObject;
|
|
Position xPos;
|
|
CPA_BaseObjectList* poListOfCard = GetInterface()->GetMainWorld()->fn_p_oGetOriginalObjectList (g_c_csMecaCardTypeName);
|
|
|
|
for ( poBaseObject = poListOfCard->GetHeadElement(xPos); xPos; poBaseObject = poListOfCard->GetNextElement(xPos) )
|
|
{
|
|
if ( poBaseObject->fn_bIsValid() )
|
|
{
|
|
CPA_Meca_Card* poCard = (CPA_Meca_Card*)poBaseObject;
|
|
if (poCard->m_bDataCreated)
|
|
{
|
|
if (poCard->m_fn_pclGetCardType()->m_fn_csGetCardTypeName()=="Base Cards")
|
|
{
|
|
DNM_tdstMecBaseIdCard *pMecCard = (DNM_tdstMecBaseIdCard *)poCard->m_fn_pvGetBaseAddress();
|
|
DNM_M_vBaseIdCardSetSlopeLimit ( pMecCard, MTH_M_xTan (MTH_M_xDegToRad (DNM_M_xBaseIdCardGetSlopeLimit(pMecCard))) );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//ENDANNECY jt }
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::fn_vBeforeEditor(void)
|
|
{
|
|
if ( fn_bIsCurrentEditor() )
|
|
m_fn_vShowEditor();
|
|
//ANNECY jt {
|
|
CPA_BaseObject* poBaseObject;
|
|
Position xPos;
|
|
CPA_BaseObjectList* poListOfCard = GetInterface()->GetMainWorld()->fn_p_oGetOriginalObjectList (g_c_csMecaCardTypeName);
|
|
|
|
for ( poBaseObject = poListOfCard->GetHeadElement(xPos); xPos; poBaseObject = poListOfCard->GetNextElement(xPos) )
|
|
{
|
|
if ( poBaseObject->fn_bIsValid() )
|
|
{
|
|
CPA_Meca_Card* poCard = (CPA_Meca_Card*)poBaseObject;
|
|
if (poCard->m_bDataCreated)
|
|
{
|
|
if (poCard->m_fn_pclGetCardType()->m_fn_csGetCardTypeName()=="Base Cards")
|
|
{
|
|
DNM_tdstMecBaseIdCard *pMecCard = (DNM_tdstMecBaseIdCard *)poCard->m_fn_pvGetBaseAddress();
|
|
DNM_M_vBaseIdCardSetSlopeLimit ( pMecCard, MTH_M_xRadToDeg ( MTH_M_xATan (DNM_M_xBaseIdCardGetSlopeLimit(pMecCard))) );
|
|
poCard->m_pri_fn_vGetAllMotorValues();
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//ENDANNECY jt }
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::fn_vHasLostFocus(void)
|
|
{
|
|
|
|
}
|
|
|
|
//**************************************************************************************
|
|
BOOL CPA_Meca_Interface::fn_bHasGainedFocus(void)
|
|
{
|
|
// display Tip of the Day
|
|
GetInterface()->fn_vDisplayTipOfDay("Mechanics", "TME", g_bTipFirstTime);
|
|
g_bTipFirstTime = FALSE;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
//**************************************************************************************
|
|
//Begin Mircea Dunka 31 Aug 1998 - DialogBar interface
|
|
void CPA_Meca_Interface::fn_vDefineDlgBarBtnIcon (tde_DlgBarCategory wCategory, tds_DlgBarBtn *_pDlgBarBtn)
|
|
{
|
|
if(wCategory == C_DlgBarCategoryEditor)
|
|
{
|
|
_pDlgBarBtn->hIcon = ::LoadIcon((HINSTANCE)(GetDLLIdentity()->hModule), MAKEINTRESOURCE(IDI_TME_DLGBAR_ICON));
|
|
CString oCst;
|
|
oCst = C_szDLLMecaName;
|
|
if( (M_GetMainApp()) && (M_GetMainApp()->mp_oAppKeyboard) )
|
|
{
|
|
oCst += " (";
|
|
oCst += M_GetMainApp()->mp_oAppKeyboard->mfn_oConvertIniStringToKeyString((const CString*)&CString("Activate Mechanic Editor"));
|
|
oCst += ")";
|
|
}
|
|
strcpy(_pDlgBarBtn->szToolTip, (char*)(LPCTSTR)oCst);
|
|
_pDlgBarBtn->uID = (UINT)this;
|
|
}
|
|
}
|
|
//end Mircea Dunka 31 Aug 1998
|
|
|
|
//**************************************************************************************
|
|
BOOL CPA_Meca_Interface::fn_bDefineSubMenu(EDT_SubMenu *_p_oEDTSubMenu)
|
|
{
|
|
if ( _p_oEDTSubMenu->GetSubMenuType() == C_SubMenuEditor )
|
|
{
|
|
CString csMenuDescString;
|
|
CString csMenuAccelString = M_GetMainApp()->mp_oAppKeyboard->mfn_oConvertIniStringToKeyString((const CString*)&CString("Activate Mechanic Editor"));
|
|
|
|
csMenuDescString.Format("%s\t%s", C_szDLLMecaName, csMenuAccelString);
|
|
|
|
if ( fn_bIsCurrentEditor() )
|
|
_p_oEDTSubMenu->AddAnEntry(this, M_MAKECHAR(csMenuDescString), C_EdMeca_MenuID_CloseID, TRUE);
|
|
else
|
|
_p_oEDTSubMenu->AddAnEntry(this, M_MAKECHAR(csMenuDescString), C_EdMeca_MenuID_OpenID, FALSE);
|
|
}
|
|
else if ( _p_oEDTSubMenu->GetSubMenuType() == C_SubMenuPreference )
|
|
{
|
|
if ( fn_bIsCurrentEditor() )
|
|
_p_oEDTSubMenu->AddAnEntry(this, "Save dimensions (Mechanics)", C_EdMeca_MenuID_SaveDimensions, FALSE);
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::_OnSubMenuCommand( EDT_SubMenu *_p_oEDTSubMenu,
|
|
UINT uiMsgID)
|
|
{
|
|
switch (uiMsgID)
|
|
{
|
|
case C_EdMeca_MenuID_OpenID:
|
|
if ( !fn_bIsCurrentEditor() )
|
|
GetMainWorld()->fn_bActivateEditor(this, NULL);
|
|
break;
|
|
|
|
case C_EdMeca_MenuID_CloseID:
|
|
if ( fn_bIsCurrentEditor() )
|
|
GetMainWorld()->fn_bCloseEditor(this);
|
|
break;
|
|
|
|
case C_EdMeca_MenuID_SaveDimensions:
|
|
if ( fn_bIsCurrentEditor() )
|
|
m_clDocument.m_pub_fn_bSavePreferences();
|
|
break;
|
|
}
|
|
}
|
|
|
|
//**************************************************************************************
|
|
//**************************************************************************************
|
|
// Popup
|
|
//**************************************************************************************
|
|
BOOL CPA_Meca_Interface::fn_bDefinePopupMenu(EDT_PopUpMenu *pPopup,
|
|
CPA_List<CPA_SuperObject> *pSelection,
|
|
BOOL bIsAlone)
|
|
{
|
|
BOOL bReturn = FALSE;
|
|
|
|
if ( !bIsAlone )
|
|
{
|
|
if ( fn_bIsCurrentEditor() )
|
|
{
|
|
pPopup->AddAnEntry(this, "Exit Mechanics Editor", C_EdMeca_PopupID_Exit_Editor);
|
|
|
|
bReturn = TRUE;
|
|
}
|
|
}
|
|
|
|
return bReturn;
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::_OnPopUpMenuCommand(UINT m_IDCmdMsg)
|
|
{
|
|
switch (m_IDCmdMsg)
|
|
{
|
|
case C_EdMeca_PopupID_Exit_Editor:
|
|
if ( fn_bIsCurrentEditor() )
|
|
GetMainWorld()->fn_bCloseEditor(this);
|
|
break;
|
|
}
|
|
}
|
|
|
|
//**************************************************************************************
|
|
//**************************************************************************************
|
|
//Lists Dialog
|
|
//**************************************************************************************
|
|
|
|
#define C_szCards "Cards"
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::GetListsForDialog(CPA_DialogList *pDialog)
|
|
{
|
|
pDialog->fn_vAddANewList(C_szCards, &(m_clDocument.m_clListOfCards));
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::fn_vInitDefaultParameters(CPA_DialogList *pDialog)
|
|
{
|
|
pDialog->SetDefaultButtonState(FALSE);
|
|
pDialog->SetDefaultTestName("<< No Filter >>");
|
|
pDialog->SetDefaultTypeName(C_szCards);
|
|
}
|
|
|
|
//**************************************************************************************
|
|
void CPA_Meca_Interface::fn_vSetANewTest( CPA_DialogList *pDialog,
|
|
CString csCurrentList)
|
|
{
|
|
CString csButtonText = "All cards";
|
|
BOOL bButtonMustBeEnabled = TRUE;
|
|
BOOL bButtonState = FALSE;
|
|
|
|
if ( csCurrentList.Compare(C_szCards) == 0 )
|
|
{
|
|
if ( m_fn_pclGetDocument()->m_pclCurrentCardType != NULL )
|
|
csButtonText = CString("Cards of type '")
|
|
+ m_fn_pclGetDocument()->m_pclCurrentCardType->m_fn_csGetCardTypeName()
|
|
+ CString("'");
|
|
else
|
|
csButtonText = "All cards";
|
|
|
|
bButtonMustBeEnabled = TRUE;
|
|
bButtonState = TRUE;
|
|
}
|
|
|
|
pDialog->fn_vInitButtonTest((char *)LPCTSTR(csButtonText),
|
|
bButtonState,
|
|
bButtonMustBeEnabled);
|
|
}
|
|
|
|
//**************************************************************************************
|
|
BOOL CPA_Meca_Interface::fn_bTestFunction(CString csCurrentType,
|
|
CString csTestName,
|
|
CPA_BaseObject *pEdObj)
|
|
{
|
|
BOOL bReturnValue = TRUE;
|
|
|
|
if ( csCurrentType.Compare(C_szCards) == 0 )
|
|
{
|
|
if ( m_fn_pclGetDocument()->m_pclCurrentCardType != NULL )
|
|
bReturnValue = ( ((CPA_Meca_Card *)pEdObj)->m_fn_pclGetCardType() == m_fn_pclGetDocument()->m_pclCurrentCardType );
|
|
}
|
|
|
|
return bReturnValue;
|
|
}
|
|
|
|
//**************************************************************************************
|
|
BOOL CPA_Meca_Interface::fn_bOnButtonTest(CPA_DialogList *pDialog,
|
|
CString csTypeName,
|
|
tdeListDrawMode eDraw)
|
|
{
|
|
BOOL bReturnValue = FALSE;
|
|
|
|
//Shows all Cards
|
|
m_fn_pclGetDocument()->m_pclCurrentCardType = NULL;
|
|
pDialog->fn_vUpdateSelection(E_lrm_ReinitList);
|
|
|
|
pDialog->fn_vInitButtonTest("All cards",
|
|
TRUE,
|
|
TRUE);
|
|
|
|
return bReturnValue;
|
|
}
|
|
|
|
//***********************************************************************
|
|
BOOL CPA_Meca_Interface::fn_bOnSelChangeComboList(CPA_DialogList *pDialog,
|
|
CString csTypeName)
|
|
{
|
|
if ( csTypeName.CompareNoCase(C_szCards) == 0 )
|
|
{
|
|
//Shows all Cards
|
|
m_fn_pclGetDocument()->m_pclCurrentCardType = NULL;
|
|
pDialog->fn_vUpdateSelection(E_lrm_ReinitList);
|
|
|
|
pDialog->fn_vInitButtonTest("All cards",
|
|
TRUE,
|
|
TRUE);
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
//***********************************************************************
|
|
BOOL CPA_Meca_Interface::fn_bOnSelChangeListObjects(CPA_DialogList *pDialog,
|
|
CString csTypeName,
|
|
CPA_BaseObject *pSelectedObject,
|
|
BOOL bUnselect)
|
|
{
|
|
if ( csTypeName.CompareNoCase(C_szCards) == 0 )
|
|
{
|
|
//Displays Card
|
|
CPA_Meca_Card *pclCard = (CPA_Meca_Card *)pSelectedObject;
|
|
|
|
if ( bUnselect )
|
|
m_pri_pclSelectedCard = NULL;
|
|
else
|
|
{
|
|
if ( pclCard->fn_bIsAvailable() )
|
|
{
|
|
m_fn_pclGetDocument()->m_fn_vEditCard(pclCard);
|
|
m_pri_pclSelectedCard = pclCard;
|
|
}
|
|
// else
|
|
// if ( m_fn_pclGetDocument()->m_pclCurrentCardType != NULL )
|
|
// m_pri_pclSelectedCard = m_fn_pclGetDocument()->m_pclCurrentCardType ->m_fn_pclGetEditedCard();
|
|
}
|
|
|
|
pDialog->fn_vUpdateSelection(E_lrm_ChangeSelection);
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
//***********************************************************************
|
|
CPA_BaseObject *CPA_Meca_Interface::GetDialogSelection( CPA_DialogList *pDialog,
|
|
CString csTypeName,
|
|
tdeListDrawMode eDrawMode)
|
|
{
|
|
if ( csTypeName.CompareNoCase(C_szCards) == 0 )
|
|
return m_pri_pclSelectedCard;
|
|
|
|
return NULL;
|
|
}
|
|
|
|
//**************************************************************************************
|
|
//**************************************************************************************
|
|
//**************************************************************************************
|
|
// Specific members
|
|
|
|
//***********************************************************************
|
|
void CPA_Meca_Interface::m_fn_vShowEditor()
|
|
{
|
|
g_oFrameGest.mfn_vSetRefresh(FALSE);
|
|
|
|
if ( m_pclMecaMainFrame != NULL )
|
|
g_oFrameGest.mfn_vActivateWindow(m_pclMecaMainFrame);
|
|
|
|
g_oFrameGest.mfn_vSetRefresh(TRUE);
|
|
}
|
|
|
|
//***********************************************************************
|
|
void CPA_Meca_Interface::m_fn_vHideEditor()
|
|
{
|
|
g_oFrameGest.mfn_vSetRefresh(FALSE);
|
|
|
|
if ( m_pclMecaMainFrame != NULL )
|
|
g_oFrameGest.mfn_vDisactivateWindow(m_pclMecaMainFrame);
|
|
|
|
g_oFrameGest.mfn_vSetRefresh(TRUE);
|
|
}
|
|
|
|
//**************************************************************************************
|
|
CPA_Meca_MyDocument *CPA_Meca_Interface::m_fn_pclGetDocument()
|
|
{
|
|
ERROR_ASSERT ( AfxIsValidAddress(&m_clDocument, sizeof(CPA_Meca_MyDocument)) );
|
|
|
|
return &m_clDocument;
|
|
}
|
|
|
|
//**************************************************************************************
|
|
|
|
long CPA_Meca_Interface::OnQueryAction(CPA_EditorBase * /*p_oSender*/, WPARAM _wParam, LPARAM _lParam)
|
|
{
|
|
switch (_wParam )
|
|
{
|
|
case Cw_TME_Query_updateAfterLoading:
|
|
//Researches for existing Mechanics (loaded by Motor)
|
|
m_fn_pclGetDocument()->m_fn_vUpdateUnLoadedCards();
|
|
break;
|
|
}
|
|
return 0L;
|
|
}
|