コード例 #1
0
ファイル: SrLvlEditDlg.cpp プロジェクト: uesp/skyedit
/*===========================================================================
 *
 * Class CSrLvlEditDlg Method - int UpdateEditorID (void);
 *
 *=========================================================================*/
int CSrLvlEditDlg::UpdateEditorID (void)
{
    CString			Buffer;
    CSString		EditorID;
    CSrIdRecord*	pIdRecord;
    bool			Result;
    int				ListIndex;

    m_ObjectID.GetWindowText(Buffer);
    EditorID = Buffer;

    Result = SrPrepareEditorID(EditorID);
    if (!Result) return (SR_CHECKRESULT_ERROR);

    pIdRecord = m_pRecordHandler->FindEditorID(EditorID);
    if (pIdRecord == NULL) return (SR_CHECKRESULT_ERROR);
    if (pIdRecord->GetFormID() == m_ParentFormID) return (SR_CHECKRESULT_ERROR);

    ListIndex = m_RecordList.FindRecord(pIdRecord);
    if (ListIndex < 0) return (SR_CHECKRESULT_ERROR);

    m_ObjectFormID = pIdRecord->GetFormID();
    if (m_ObjectFormID == m_pListInfo->GetFormID()) return (SR_CHECKRESULT_NOCHANGE);

    Buffer.Format(_T("0x%08X"), m_ObjectFormID);
    m_FormID.SetWindowText(Buffer);

    return (SR_CHECKRESULT_OK);
}
コード例 #2
0
ファイル: SrSelectRecordDlg.cpp プロジェクト: caksony/skyedit
/*===========================================================================
 *
 * Class CSrSelectRecordDlg Method - int UpdateEditorID (void);
 *
 *=========================================================================*/
int CSrSelectRecordDlg::UpdateEditorID (void) {
    CString	Buffer;
    CSString	EditorID;
    CSrIdRecord*	pIdRecord;
    int		ListIndex;

    m_CurrentText.GetWindowText(Buffer);
    EditorID = Buffer;

    SrPrepareEditorID(EditorID);

    if (EditorID.IsEmpty())
    {
        m_CurrentFormID = 0;
    }
    else
    {
        pIdRecord = m_pRecordHandler->FindEditorID(EditorID);
        if (pIdRecord == NULL) return (SR_CHECKRESULT_ERROR);

        ListIndex = m_RecordList.FindRecord(pIdRecord);
        if (ListIndex < 0) return (SR_CHECKRESULT_ERROR);

        m_CurrentEditorID = pIdRecord->GetEditorID();
        m_CurrentFormID = pIdRecord->GetFormID();
    }

    if (m_CurrentFormID == m_InitialFormID) return (SR_CHECKRESULT_NOCHANGE);

    Buffer.Format(_T("0x%08X"), m_CurrentFormID);
    m_CurrentFormIDText.SetWindowText(Buffer);

    return (SR_CHECKRESULT_OK);
}
コード例 #3
0
ファイル: SrScrlView.cpp プロジェクト: Vuher/skyedit
void CSrScrlView::GetCurrentEffect (void)
{	
	CString Buffer;

	if (m_pCurrentEffect == NULL) return;

	if (m_pCurrentEffect->pEffectData) 
	{
		m_Magnitude.GetWindowText(Buffer);
		m_pCurrentEffect->pEffectData->SetMagnitude((float) atof(Buffer));
		m_Area.GetWindowText(Buffer);
		m_pCurrentEffect->pEffectData->SetArea(atoi(Buffer));
		m_Duration.GetWindowText(Buffer);
		m_pCurrentEffect->pEffectData->SetDuration(atoi(Buffer));
	}

	if (m_pCurrentEffect->pEffect)
	{
		m_EffectName.GetWindowText(Buffer);
		Buffer.Trim();

		if (Buffer.IsEmpty())
		{
			m_pCurrentEffect->pEffect->SetValue(0);
		}
		else
		{
			CSrIdRecord* pRecord = GetInputRecord()->GetParent()->FindEditorID(Buffer);
			if (pRecord) m_pCurrentEffect->pEffect->SetValue(pRecord->GetFormID());
		}
	}

	for (dword i = 0; i < m_Effects.GetSize(); ++i)
	{
		srrlcustomdata_t* pCustomData = (srrlcustomdata_t *) m_EffectList.GetItemData(i);
		if (pCustomData == NULL) continue;

		CSrFormidSubrecord* pEffect = SrCastClassNull(CSrFormidSubrecord, pCustomData->Subrecords[0]);
		if (pEffect == NULL) continue;
		if (pEffect != m_pCurrentEffect->pEffect) continue;

		pCustomData->UserCount = m_pCurrentEffect->Conditions.GetSize();
		pCustomData->Subrecords.Truncate(2);

		int CDIndex = 2;

		for (dword j = 0; j < m_pCurrentEffect->Conditions.GetSize(); ++j)
		{
			srconditioninfo_t* pCondInfo = m_pCurrentEffect->Conditions[j];
			pCustomData->Subrecords.Add(&pCondInfo->Condition);
			if (pCondInfo->pParam1 != NULL)	pCustomData->Subrecords.Add(pCondInfo->pParam1);
			if (pCondInfo->pParam2 != NULL)	pCustomData->Subrecords.Add(pCondInfo->pParam2);
		}

		UpdateEffectList(i, true);
		break;
	}
	
}
コード例 #4
0
void CSrWeapRecord::SetEquipSlot (const char* pEditorID)
{
	if (pEditorID == NULL || *pEditorID == 0)
	{
		SetEquipSlotID(0);
	}
	else if (m_pParent)
	{
		CSrIdRecord* pRecord = m_pParent->FindEditorID(pEditorID);

		if (pRecord == NULL)
			SetEquipSlotID(0);
		else
			SetEquipSlotID(pRecord->GetFormID());
	}
}