bool Settings::read() { SimXMLDocument *document = new SimXMLDocument(); document->registerObject(); bool success = true; if(document->loadFile(mFile.c_str())) { clearAllFields(); // set our base element if(document->pushFirstChildElement(getName())) { setModStaticFields(false); readLayer(document); setModStaticFields(true); } else success = false; } else success = false; document->deleteObject(); return success; }
void Settings::setValue(const UTF8 *settingName, const UTF8 *settingValue) { String name; buildGroupString(name, settingName); StringTableEntry nameEntry = StringTable->insert(name.c_str()); setModStaticFields(false); setDataField(nameEntry, NULL, settingValue); setModStaticFields(true); }
void Settings::setDefaultValue(const UTF8 *settingName, const UTF8 *settingValue, const UTF8 *settingType) { String baseName; buildGroupString(baseName, settingName); String name = baseName + "_default"; StringTableEntry nameEntry = StringTable->insert(name.c_str()); String type = baseName + "_type"; StringTableEntry typeEntry = StringTable->insert(type.c_str()); setModStaticFields(false); setDataField(nameEntry, NULL, settingValue); setDataField(typeEntry, NULL, settingType); setModStaticFields(true); }
const UTF8 *Settings::value(const UTF8 *settingName, const UTF8 *defaultValue) { String name; buildGroupString(name, settingName); StringTableEntry nameEntry = StringTable->insert(name.c_str()); name += "_default"; StringTableEntry defaultNameEntry = StringTable->insert(name.c_str()); // we do this setModStaticFields call to make sure our get/set calls // don't grab a regular field, don't want to stomp anything setModStaticFields(false); const UTF8 *value = getDataField(nameEntry, NULL); const UTF8 *storedDefaultValue = getDataField(defaultNameEntry, NULL); setModStaticFields(true); if(dStrcmp(value, "") != 0) return value; else if(dStrcmp(storedDefaultValue, "") != 0) return storedDefaultValue; else return defaultValue; }
bool EditTSCtrl::onAdd() { if(!Parent::onAdd()) return(false); // give all derived access to the fields setModStaticFields(true); GFXStateBlockDesc blenddesc; blenddesc.setBlend(true, GFXBlendSrcAlpha, GFXBlendInvSrcAlpha); mBlendSB = GFX->createStateBlock( blenddesc ); if ( !mGizmoProfile ) { Con::errorf( "EditTSCtrl::onadd - gizmoProfile was not assigned, cannot create control!" ); return false; } mGizmo = new Gizmo(); mGizmo->setProfile( mGizmoProfile ); mGizmo->registerObject(); return true; }
SimDataBlock::SimDataBlock() { setModDynamicFields(true); setModStaticFields(true); }