int GameLoop::loadStates(LoadXML* loader) { int status = -1; if(loader != NULL && loader->getDocument() != NULL) { XMLCh nodeName[100]; XMLString::copyString(nodeName, newString("state").c_str()); DOMNodeList* nodeList = loader->getDocument()->getElementsByTagName(nodeName); if(nodeList != NULL && nodeList->getLength() > 0) { for(int i = 0; i < nodeList->getLength(); i++) { String type = loader->getTagContent(newString("type"), (DOMElement*)nodeList->item(i)); String name = loader->getTagContent(newString("name"), (DOMElement*)nodeList->item(i)); BaseState* state = this->newState(name, type); String camera = loader->getTagContent(newString("camera"), (DOMElement*)nodeList->item(i)); String resources = loader->getTagContent(newString("resources"), (DOMElement*)nodeList->item(i)); if(state != NULL) { state->setName(name); state->setResourceXML(resources); state->setCamera(camera); } } } } return status; }
BaseState * StateWidget::getState() { BaseState * toInsertState = StateWidgets[tmpWidget]->getStateObject(); if(toInsertState==NULL)return NULL; toInsertState->setName(this->stateNameEdit->text()); int chosen = getStateTypeTable().indexOf(stateTypeCombo->currentText()); toInsertState->setType((StateType)chosen); toInsertState->setParameters(paramEdit->text()); return toInsertState; }
void StateWidget::AcceptState() { if(edited==NULL) { emit reportError(QString("Please, select a state to edit, edit it and then press OK.")); return; } if ( !StateNameOK()) { return; } BaseState * toInsertState = StateWidgets[tmpWidget]->getStateObject(); if(toInsertState==NULL) return; toInsertState->setName(this->stateNameEdit->text()); toInsertState->setType(StateType(stateTypeCombo->currentIndex())); toInsertState->setParameters(paramEdit->text()); OKButton->setDisabled(true); BaseState * tmp = edited; edited = NULL; emit ReplaceState(tmp, toInsertState); }