/* Constructeur */ Msg::Msg(const std::string& strMsg){ initEnum(); //initialise tous les champs de l'enum std::string tmpTag, defTag[2]; int i,numTag; std::istringstream ssMsg(strMsg); /* Tant qu'il reste des séparateurs */ while (std::getline(ssMsg, tmpTag, SEP)) { std::istringstream ssTag(tmpTag); i=0,numTag=0; /* Séparation du numéro du tag et de sa valeur */ while (std::getline(ssTag, defTag[i], EQU)) { i++; } if(i!=2){ std::cerr << "Erreur: Orthographe du Tag\n";// Traiter l'erreur } /* Cast en int du numero de tag */ std::istringstream ssNumTag(defTag[0]); ssNumTag >> numTag; defineEnum(numTag); vTags.push_back(defTag[1]); } if(vTags[tagName.MsgType]=="null"){ std::cerr << "Erreur: Vecteur -> MsgType manquant";// Traiter l'erreur } }
// Just a quick helper function BOOL LoadSprite(std::wstring path, std::wstring filename, CD2D *renderer, CSprite **ppRet) { std::wostringstream ss; ss << path.c_str() << L"\\" << filename.c_str(); CSprite *spr = new CSprite(); auto bRet = spr->Load(ss.str(), renderer); if (!bRet) { std::wostringstream ssMsg(L"Failed to load '"); ssMsg << ss.str().c_str() << "'!"; MessageBox(NULL, ssMsg.str().c_str(), L"Error", MB_OK | MB_ICONERROR); return FALSE; } *ppRet = spr; return TRUE; }