int Plane::property(DmuArgs &args) const { switch(args.prop) { case DMU_EMITTER: args.setValue(DMT_PLANE_EMITTER, d->soundEmitter, 0); break; case DMU_SECTOR: { Sector const *secPtr = §or(); args.setValue(DMT_PLANE_SECTOR, &secPtr, 0); break; } case DMU_HEIGHT: args.setValue(DMT_PLANE_HEIGHT, &d->height, 0); break; case DMU_TARGET_HEIGHT: args.setValue(DMT_PLANE_TARGET, &d->targetHeight, 0); break; case DMU_SPEED: args.setValue(DMT_PLANE_SPEED, &d->speed, 0); break; default: return MapElement::property(args); } return false; // Continue iteration. }
int Plane::setProperty(DmuArgs const &args) { switch(args.prop) { case DMU_HEIGHT: { coord_t newHeight = d->height; args.value(DMT_PLANE_HEIGHT, &newHeight, 0); d->applySharpHeightChange(newHeight); break; } case DMU_TARGET_HEIGHT: args.value(DMT_PLANE_TARGET, &d->targetHeight, 0); break; case DMU_SPEED: args.value(DMT_PLANE_SPEED, &d->speed, 0); break; default: return MapElement::setProperty(args); } return false; // Continue iteration. }
dint MapElement::property(DmuArgs &args) const { switch (args.prop) { case DMU_ARCHIVE_INDEX: args.setValue(DMT_ARCHIVE_INDEX, &d->indexInArchive, 0); break; default: /// @throw UnknownPropertyError The requested property is not readable. throw UnknownPropertyError(QString("%1::property").arg(DMU_Str(d->type)), QString("'%1' is unknown/not readable").arg(DMU_Str(args.prop))); } return false; // Continue iteration. }
dint Sector::setProperty(DmuArgs const &args) { switch (args.prop) { case DMU_COLOR: { Vector3f newColor = d->lightColor; args.value(DMT_SECTOR_RGB, &newColor.x, 0); args.value(DMT_SECTOR_RGB, &newColor.y, 1); args.value(DMT_SECTOR_RGB, &newColor.z, 2); setLightColor(newColor); break; } case DMU_COLOR_RED: { Vector3f newColor = d->lightColor; args.value(DMT_SECTOR_RGB, &newColor.x, 0); setLightColor(newColor); break; } case DMU_COLOR_GREEN: { Vector3f newColor = d->lightColor; args.value(DMT_SECTOR_RGB, &newColor.y, 0); setLightColor(newColor); break; } case DMU_COLOR_BLUE: { Vector3f newColor = d->lightColor; args.value(DMT_SECTOR_RGB, &newColor.z, 0); setLightColor(newColor); break; } case DMU_LIGHT_LEVEL: { dfloat newLightLevel; args.value(DMT_SECTOR_LIGHTLEVEL, &newLightLevel, 0); setLightLevel(newLightLevel); break; } case DMU_VALID_COUNT: args.value(DMT_SECTOR_VALIDCOUNT, &d->validCount, 0); break; default: return MapElement::setProperty(args); } return false; // Continue iteration. }
int Surface::setProperty(DmuArgs const &args) { switch(args.prop) { case DMU_BLENDMODE: { blendmode_t newBlendMode; args.value(DMT_SURFACE_BLENDMODE, &newBlendMode, 0); setBlendMode(newBlendMode); break; } case DMU_FLAGS: args.value(DMT_SURFACE_FLAGS, &d->flags, 0); break; case DMU_COLOR: { Vector3f newColor = d->tintColor; args.value(DMT_SURFACE_RGBA, &newColor.x, 0); args.value(DMT_SURFACE_RGBA, &newColor.y, 1); args.value(DMT_SURFACE_RGBA, &newColor.z, 2); setTintColor(newColor); break; } case DMU_COLOR_RED: { Vector3f newColor = d->tintColor; args.value(DMT_SURFACE_RGBA, &newColor.x, 0); setTintColor(newColor); break; } case DMU_COLOR_GREEN: { Vector3f newColor = d->tintColor; args.value(DMT_SURFACE_RGBA, &newColor.y, 0); setTintColor(newColor); break; } case DMU_COLOR_BLUE: { Vector3f newColor = d->tintColor; args.value(DMT_SURFACE_RGBA, &newColor.z, 0); setTintColor(newColor); break; } case DMU_ALPHA: { float newOpacity; args.value(DMT_SURFACE_RGBA, &newOpacity, 0); setOpacity(newOpacity); break; } case DMU_MATERIAL: { Material *newMaterial; args.value(DMT_SURFACE_MATERIAL, &newMaterial, 0); setMaterial(newMaterial); break; } case DMU_OFFSET_X: { Vector2f newOrigin = d->materialOrigin; args.value(DMT_SURFACE_OFFSET, &newOrigin.x, 0); setMaterialOrigin(newOrigin); break; } case DMU_OFFSET_Y: { Vector2f newOrigin = d->materialOrigin; args.value(DMT_SURFACE_OFFSET, &newOrigin.y, 0); setMaterialOrigin(newOrigin); break; } case DMU_OFFSET_XY: { Vector2f newOrigin = d->materialOrigin; args.value(DMT_SURFACE_OFFSET, &newOrigin.x, 0); args.value(DMT_SURFACE_OFFSET, &newOrigin.y, 1); setMaterialOrigin(newOrigin); break; } default: return MapElement::setProperty(args); } return false; // Continue iteration. }
int Surface::property(DmuArgs &args) const { switch(args.prop) { case DMU_MATERIAL: { Material *mat = (d->materialIsMissingFix? nullptr : d->material); args.setValue(DMT_SURFACE_MATERIAL, &mat, 0); break; } case DMU_OFFSET_X: args.setValue(DMT_SURFACE_OFFSET, &d->materialOrigin.x, 0); break; case DMU_OFFSET_Y: args.setValue(DMT_SURFACE_OFFSET, &d->materialOrigin.y, 0); break; case DMU_OFFSET_XY: args.setValue(DMT_SURFACE_OFFSET, &d->materialOrigin.x, 0); args.setValue(DMT_SURFACE_OFFSET, &d->materialOrigin.y, 1); break; case DMU_TANGENT_X: args.setValue(DMT_SURFACE_TANGENT, &d->tangentMatrix.at(0, 0), 0); break; case DMU_TANGENT_Y: args.setValue(DMT_SURFACE_TANGENT, &d->tangentMatrix.at(1, 0), 0); break; case DMU_TANGENT_Z: args.setValue(DMT_SURFACE_TANGENT, &d->tangentMatrix.at(2, 0), 0); break; case DMU_TANGENT_XYZ: args.setValue(DMT_SURFACE_TANGENT, &d->tangentMatrix.at(0, 0), 0); args.setValue(DMT_SURFACE_TANGENT, &d->tangentMatrix.at(1, 0), 1); args.setValue(DMT_SURFACE_TANGENT, &d->tangentMatrix.at(2, 0), 2); break; case DMU_BITANGENT_X: args.setValue(DMT_SURFACE_BITANGENT, &d->tangentMatrix.at(0, 1), 0); break; case DMU_BITANGENT_Y: args.setValue(DMT_SURFACE_BITANGENT, &d->tangentMatrix.at(1, 1), 0); break; case DMU_BITANGENT_Z: args.setValue(DMT_SURFACE_BITANGENT, &d->tangentMatrix.at(2, 1), 0); break; case DMU_BITANGENT_XYZ: args.setValue(DMT_SURFACE_BITANGENT, &d->tangentMatrix.at(0, 1), 0); args.setValue(DMT_SURFACE_BITANGENT, &d->tangentMatrix.at(1, 1), 1); args.setValue(DMT_SURFACE_BITANGENT, &d->tangentMatrix.at(2, 1), 2); break; case DMU_NORMAL_X: args.setValue(DMT_SURFACE_NORMAL, &d->tangentMatrix.at(0, 2), 0); break; case DMU_NORMAL_Y: args.setValue(DMT_SURFACE_NORMAL, &d->tangentMatrix.at(1, 2), 0); break; case DMU_NORMAL_Z: args.setValue(DMT_SURFACE_NORMAL, &d->tangentMatrix.at(2, 2), 0); break; case DMU_NORMAL_XYZ: args.setValue(DMT_SURFACE_NORMAL, &d->tangentMatrix.at(0, 2), 0); args.setValue(DMT_SURFACE_NORMAL, &d->tangentMatrix.at(1, 2), 1); args.setValue(DMT_SURFACE_NORMAL, &d->tangentMatrix.at(2, 2), 2); break; case DMU_COLOR: args.setValue(DMT_SURFACE_RGBA, &d->tintColor.x, 0); args.setValue(DMT_SURFACE_RGBA, &d->tintColor.y, 1); args.setValue(DMT_SURFACE_RGBA, &d->tintColor.z, 2); args.setValue(DMT_SURFACE_RGBA, &d->opacity, 2); break; case DMU_COLOR_RED: args.setValue(DMT_SURFACE_RGBA, &d->tintColor.x, 0); break; case DMU_COLOR_GREEN: args.setValue(DMT_SURFACE_RGBA, &d->tintColor.y, 0); break; case DMU_COLOR_BLUE: args.setValue(DMT_SURFACE_RGBA, &d->tintColor.z, 0); break; case DMU_ALPHA: args.setValue(DMT_SURFACE_RGBA, &d->opacity, 0); break; case DMU_BLENDMODE: args.setValue(DMT_SURFACE_BLENDMODE, &d->blendMode, 0); break; case DMU_FLAGS: args.setValue(DMT_SURFACE_FLAGS, &d->flags, 0); break; default: return MapElement::property(args); } return false; // Continue iteration. }
dint Sector::property(DmuArgs &args) const { switch (args.prop) { case DMU_LIGHT_LEVEL: args.setValue(DMT_SECTOR_LIGHTLEVEL, &d->lightLevel, 0); break; case DMU_COLOR: args.setValue(DMT_SECTOR_RGB, &d->lightColor.x, 0); args.setValue(DMT_SECTOR_RGB, &d->lightColor.y, 1); args.setValue(DMT_SECTOR_RGB, &d->lightColor.z, 2); break; case DMU_COLOR_RED: args.setValue(DMT_SECTOR_RGB, &d->lightColor.x, 0); break; case DMU_COLOR_GREEN: args.setValue(DMT_SECTOR_RGB, &d->lightColor.y, 0); break; case DMU_COLOR_BLUE: args.setValue(DMT_SECTOR_RGB, &d->lightColor.z, 0); break; case DMU_EMITTER: { SoundEmitter const *emitterAdr = d->emitter; args.setValue(DMT_SECTOR_EMITTER, &emitterAdr, 0); break; } case DMT_MOBJS: args.setValue(DMT_SECTOR_MOBJLIST, &d->mapObjects.head, 0); break; case DMU_VALID_COUNT: args.setValue(DMT_SECTOR_VALIDCOUNT, &d->validCount, 0); break; case DMU_FLOOR_PLANE: { Plane *pln = d->planes.at(Floor); args.setValue(DMT_SECTOR_FLOORPLANE, &pln, 0); break; } case DMU_CEILING_PLANE: { Plane *pln = d->planes.at(Ceiling); args.setValue(DMT_SECTOR_CEILINGPLANE, &pln, 0); break; } default: return MapElement::property(args); } return false; // Continue iteration. }