bool Proyecto::loadFromStream(QString &filename) { QFile f(filename); if (!f.open(QIODevice::ReadOnly)) { //no se puede abrir el archivo return false; } QDataStream dsIn(&f); if (dsIn.version() != QDataStream::Qt_4_8) return false; FileHeader fh(objectVersion, objectName, this); dsIn >> fh; if (fh.isValidFile()) { Author author; dsIn >> author; //dsOut << fileName; dsIn >> nombre; dsIn >> propietarios; dsIn >> direccion; dsIn >> telefono; dsIn >> email; dsIn >> notas; int cantElementos = 0; dsIn >> cantElementos; for (int i = 0; i < cantElementos; i++) { QString nombreElemento; dsIn >> nombreElemento; ElementoConstructivo *el = new ElementoConstructivo(this); dsIn >> (*el); elementosConstructivos[nombreElemento] = el; } return true; // EL archivo se cargo OK }
bool isButtonPressed(char button, bool wait = true) { std::tuple<u32, u32, u32> input = dsIn(); kDown = std::get<0>(input); kHeld = std::get<1>(input); kUp = std::get<2>(input); while (!kDown && wait) {hidScanInput(); u32 kDown = hidKeysDown(); u32 kHeld = hidKeysHeld(); u32 kUp = hidKeysUp();} if (kDown && KEY_A && button == 'a') return 0; else if (kDown && KEY_B && button == 'b') return 0; else if (kDown && KEY_X && button == 'x') return 0; else if (kDown && KEY_Y && button == 'y') return 0; else if (kDown && KEY_L && button == 'l') return 0; else if (kDown && KEY_R && button == 'r') return 0; else if (kDown && KEY_START && button == 't') return 0; else if (kDown && KEY_SELECT && button == 'e') return 0; else if (kDown && KEY_UP && button == 'u') return 0; else if (kDown && KEY_DOWN && button == 'd') return 0; else if (kDown && KEY_LEFT && button == 'q') return 0; else if (kDown && KEY_RIGHT && button == 'e') return 0; else if (consoletype) { if (kDown && KEY_ZR && button == 'c') return 0; else if (kDown && KEY_ZL && button == 'z') return 0; } return 1; }