plVarDescriptor::Type plVarDescriptor::GetTypeFromString(const plString& type, bool isEoa) { plString itype = type.toLower(); if (isEoa) { // These translate differently in Myst5... if (itype == "bool") return kBool; else if (itype == "char") return kChar; else if (itype == "byte") return kByte; else if (itype == "int") return kInt; else if (itype == "uint") return kUint; else if (itype == "float") return kFloat; else if (itype == "double") return kDouble; else if (itype == "string") return kString; else if (itype == "time") return kTime; else if (itype == "uoid") return kKey; else if (itype == "vector3") return kVector3; else if (itype == "point3") return kPoint3; else if (itype == "quaternion") return kQuaternion; else if (itype == "matrix44") return kMatrix44; else if (itype == "rgba") return kRGBA; else if (itype == "buffer") return kBuffer; else if (itype == "agetimeofday") return kAgeTimeOfDay; else if (itype == "agetimeelapsed") return kAgeTimeElapsed; else if (itype == "gametimeelapsed") return kGameTimeElapsed; else return kStateDescriptor; } else { if (type.startsWith("$")) return kStateDescriptor; else if (itype == "int") return kInt; else if (itype == "float") return kFloat; else if (itype == "bool") return kBool; else if (itype == "string32") return kString; else if (itype == "plkey") return kKey; else if (itype == "creatable" || itype == "message") return kCreatable; else if (itype == "double") return kDouble; else if (itype == "time") return kTime; else if (itype == "byte") return kByte; else if (itype == "short") return kShort; else if (itype == "agetimeofday") return kAgeTimeOfDay; else if (itype == "vector3") return kVector3; else if (itype == "point3") return kPoint3; else if (itype == "rgb") return kRGB; else if (itype == "rgba") return kRGBA; else if (itype == "quat" || itype == "quaternion") return kQuaternion; else if (itype == "rgb8") return kRGB8; else if (itype == "rgba8") return kRGBA8; else return kNone; } }