BOOL IsEqualType( /* [in] */ const CLSModule* module, /* [in] */ const TypeDescriptor* descriptor1, /* [in] */ const TypeDescriptor* descriptor2) { TypeDescriptor src, dest; GetOriginalType(module, descriptor1, &src); GetOriginalType(module, descriptor2, &dest); _Return (!memcmp(&src, &dest, sizeof(src))); }
inline bool MtgCard::operator==(const MtgCard& rhs) { return GetLayout() == rhs.GetLayout() && GetManacost() == rhs.GetManacost() && GetCmc() == rhs.GetCmc() && CompareStringList(GetColors(), rhs.GetColors()) && type == rhs.type && CompareStringList(GetSupertypes(), rhs.GetSupertypes()) && CompareStringList(GetTypes(), rhs.GetTypes()) && CompareStringList(GetSubtypes(), rhs.GetSubtypes()) && GetRarity() == rhs.GetRarity() && text == rhs.GetText() && GetFlavor() == rhs.GetFlavor() && GetArtist() == rhs.GetArtist() && GetNumber() == rhs.GetNumber() && GetPower() == rhs.GetPower() && GetToughness() == rhs.GetToughness() && GetLoyalty() == rhs.GetLoyalty() && GetMultiverseid() == rhs.GetMultiverseid() && CompareIntList(GetVariations(), rhs.GetVariations()) && GetImageName() == rhs.GetImageName() && GetWatermark() == rhs.GetWatermark() && GetBorder() == rhs.GetBorder() && IsTimeshifted() == rhs.IsTimeshifted() && GetHand() == rhs.GetHand() && GetLife() == rhs.GetLife() && IsReserved() == rhs.IsReserved() && GetReleasedate() == rhs.GetReleasedate() && IsStarter() == rhs.IsStarter() && CompareStringPairList(GetRulings(), rhs.GetRulings()) && CompareStringPairList(GetForeignNames(), rhs.GetForeignNames()) && GetOriginalText() == rhs.GetOriginalText() && GetOriginalType() == rhs.GetOriginalType() && CompareStringPairList(GetLegalities(), rhs.GetLegalities()) && GetEdition() == rhs.GetEdition(); }
BOOL TypeConditionValue(PLUBECTX pCtx, ObjectType object, const char *pszDest) { TypeDescriptor *pType, type; const char *pszSource; switch (object) { case Object_Library: pszSource = pCtx->m_pLibrary + strlen(pCtx->m_pLibrary); while (pszSource != pCtx->m_pLibrary && *(pszSource - 1) != '.') { pszSource--; } return !_stricmp(pszSource, pszDest); case Object_Typedef: pType = &pCtx->m_pTypedef->mType; break; case Object_IntfConst: { if (pCtx->m_pInterfaceConst->mType == TYPE_BOOLEAN) return !_stricmp("Boolean", pszDest); else if (pCtx->m_pInterfaceConst->mType == TYPE_CHAR32) return !_stricmp("Char32", pszDest); else if (pCtx->m_pInterfaceConst->mType == TYPE_BYTE) return !_stricmp("Byte", pszDest); else if (pCtx->m_pInterfaceConst->mType == TYPE_INTEGER16) return !_stricmp("Int16", pszDest); else if (pCtx->m_pInterfaceConst->mType == TYPE_INTEGER32) return !_stricmp("Int32", pszDest); else if (pCtx->m_pInterfaceConst->mType == TYPE_INTEGER64) return !_stricmp("Int64", pszDest); else if (pCtx->m_pInterfaceConst->mType == TYPE_FLOAT) return !_stricmp("Float", pszDest); else if (pCtx->m_pInterfaceConst->mType == TYPE_DOUBLE) return !_stricmp("Double", pszDest); else if (pCtx->m_pInterfaceConst->mType == TYPE_STRING) return !_stricmp("String", pszDest); assert(TRUE == FALSE); return FALSE; } case Object_ClassMethod: case Object_IntfMethod: pType = &pCtx->m_pMethod->mType; break; case Object_Param: pType = &pCtx->m_pParam->mType; break; case Object_StcMember: pType = &pCtx->m_pStructMember->mType; break; default: assert(TRUE == FALSE); return FALSE; } GetOriginalType(pCtx->m_pModule, pType, &type); pszSource = Type2CString(pCtx->m_pModule, &type); return !_stricmp(pszSource, pszDest); }