Allow use of old angle rules PSYS_SRC_INNERANGLE and PSYS_SRC_OUTERANGLE in llParticleSystem()
This is a patch from http://opensimulator.org/mantis/view.php?id=3201 Thanks Micheil Martin!0.7-release
parent
4a898fdf8d
commit
20c68cc531
|
@ -5860,6 +5860,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
PSYS_PART_MAX_AGE = 7,
|
PSYS_PART_MAX_AGE = 7,
|
||||||
PSYS_SRC_ACCEL = 8,
|
PSYS_SRC_ACCEL = 8,
|
||||||
PSYS_SRC_PATTERN = 9,
|
PSYS_SRC_PATTERN = 9,
|
||||||
|
PSYS_SRC_INNERANGLE = 10,
|
||||||
|
PSYS_SRC_OUTERANGLE = 11,
|
||||||
PSYS_SRC_TEXTURE = 12,
|
PSYS_SRC_TEXTURE = 12,
|
||||||
PSYS_SRC_BURST_RATE = 13,
|
PSYS_SRC_BURST_RATE = 13,
|
||||||
PSYS_SRC_BURST_PART_COUNT = 15,
|
PSYS_SRC_BURST_PART_COUNT = 15,
|
||||||
|
@ -5992,6 +5994,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
prules.Pattern = (Primitive.ParticleSystem.SourcePattern)tmpi;
|
prules.Pattern = (Primitive.ParticleSystem.SourcePattern)tmpi;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// PSYS_SRC_INNERANGLE and PSYS_SRC_ANGLE_BEGIN use the same variables. The
|
||||||
|
// PSYS_SRC_OUTERANGLE and PSYS_SRC_ANGLE_END also use the same variable. The
|
||||||
|
// client tells the difference between the two by looking at the 0x02 bit in
|
||||||
|
// the PartFlags variable.
|
||||||
|
case (int)ScriptBaseClass.PSYS_SRC_INNERANGLE:
|
||||||
|
tempf = (float)rules.GetLSLFloatItem(i + 1);
|
||||||
|
prules.InnerAngle = (float)tempf;
|
||||||
|
prules.PartFlags &= 0xFFFFFFFD; // Make sure new angle format is off.
|
||||||
|
break;
|
||||||
|
|
||||||
|
case (int)ScriptBaseClass.PSYS_SRC_OUTERANGLE:
|
||||||
|
tempf = (float)rules.GetLSLFloatItem(i + 1);
|
||||||
|
prules.OuterAngle = (float)tempf;
|
||||||
|
prules.PartFlags &= 0xFFFFFFFD; // Make sure new angle format is off.
|
||||||
|
break;
|
||||||
|
|
||||||
case (int)ScriptBaseClass.PSYS_SRC_TEXTURE:
|
case (int)ScriptBaseClass.PSYS_SRC_TEXTURE:
|
||||||
prules.Texture = KeyOrName(rules.GetLSLStringItem(i + 1));
|
prules.Texture = KeyOrName(rules.GetLSLStringItem(i + 1));
|
||||||
break;
|
break;
|
||||||
|
@ -6048,11 +6066,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
case (int)ScriptBaseClass.PSYS_SRC_ANGLE_BEGIN:
|
case (int)ScriptBaseClass.PSYS_SRC_ANGLE_BEGIN:
|
||||||
tempf = (float)rules.GetLSLFloatItem(i + 1);
|
tempf = (float)rules.GetLSLFloatItem(i + 1);
|
||||||
prules.InnerAngle = (float)tempf;
|
prules.InnerAngle = (float)tempf;
|
||||||
|
prules.PartFlags |= 0x02; // Set new angle format.
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (int)ScriptBaseClass.PSYS_SRC_ANGLE_END:
|
case (int)ScriptBaseClass.PSYS_SRC_ANGLE_END:
|
||||||
tempf = (float)rules.GetLSLFloatItem(i + 1);
|
tempf = (float)rules.GetLSLFloatItem(i + 1);
|
||||||
prules.OuterAngle = (float)tempf;
|
prules.OuterAngle = (float)tempf;
|
||||||
|
prules.PartFlags |= 0x02; // Set new angle format.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue