⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qvsfenum.cpp

📁 Windows上的MUD客户端程序
💻 CPP
字号:
#include <QvDebugError.h>
#include <QvReadError.h>
#include <QvSFEnum.h>

// Can't use macro, since we define a constructor.
QV_SFIELD_ASSIGN(QvSFEnum)

QvSFEnum::QvSFEnum()
{
    enumValues = NULL;
    enumNames  = NULL;
	numEnums = 0;
}

QvSFEnum::~QvSFEnum()
{
}

QvBool
QvSFEnum::findEnumValue(const QvName &name, int &val) const
{
    int	i;

    // Look through names table for one that matches
    for (i = 0; i < numEnums; i++) {
	if (name == enumNames[i]) {
	    val = enumValues[i];
	    return TRUE;
	}
    }

    return FALSE;
}

QvBool
QvSFEnum::readValue(QvInput *in)
{
    QvName n;

#ifdef DEBUG
    if (enumValues == NULL) {
	QvDebugError::post("QvSFEnum::readValue",
			   "Enum values were never initialized");
	QvReadError::post(in, "Couldn't read QvSFEnum value");
	return FALSE;
    }
#endif /* DEBUG */

    // Read mnemonic value as a character string identifier
    if (! in->read(n, TRUE))
	return FALSE;

    if (findEnumValue(n, value))
	return TRUE;

    // Not found? Maybe it's not been inited; 
	if(enumValues == NULL)
	{
								//  Must be QvUnknownNode, we hope
								//  Insert value n to string value
		strValue = n.getString();
		return TRUE;
	}
    // Not found? Too bad
    QvReadError::post(in, "Unknown QvSFEnum enumeration value \"%s\"",
		      n.getString());
    return FALSE;
}
void QvSFEnum::propagate(QvField *dest)
{
	*((QvSFEnum*)dest) = *this;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -