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 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. }