+ //\r
+ if(pack->depencies.size() && action)\r
+ {\r
+ UINT count = pack->depencies.size();\r
+ WCHAR buffer[2000], buffer2[200];\r
+ wcscpy(buffer, PML_TransError(ERR_DEP1));\r
+ \r
+ for (i=0; i<pack->depencies.size(); i++)\r
+ {\r
+ int item = PML_FindItem(tree, pack->depencies[i]);\r
+\r
+ if(!item)\r
+ return ERR_GENERIC;\r
+\r
+ if(action == tree->packages[item].action)// || tree->packages[item].installed\r
+ {\r
+ count--;\r
+ continue;\r
+ }\r
+\r
+ MultiByteToWideChar (CP_ACP, 0, pack->depencies[i], strlen(pack->depencies[i])+1, buffer2, 200);\r
+ wsprintf(buffer, L"%s - %s\n", buffer, buffer2);//\r
+ }\r
+\r
+ wcscat(buffer, PML_TransError(ERR_DEP2));\r
+\r
+ if(count)\r
+ if(!Ask(buffer))\r
+ return ERR_GENERIC;\r
+\r
+ for (i=0; i<pack->depencies.size(); i++)\r
+ {\r
+ int item = PML_FindItem(tree, pack->depencies[i]);\r
+\r
+ tree->packages[item].neededBy.push_back(id);\r
+\r
+ PML_SetAction(tree, item, action, SetIcon, Ask);\r
+ }\r
+ }\r
+\r
+ // load it if it's not loaded yet\r
+ else if (!pack->loaded && pack->path)\r
+ {\r
+ PML_XmlDownload (pack->path, (void*)pack, pack_start, pack_end, pack_text);\r
+ pack->loaded = TRUE;\r
+\r
+ return PML_SetAction(tree, id, action, SetIcon, Ask);\r
+ }\r
+\r