[csharp] Renamed utility method ReadByte to ReadUByte to prevent future porting pitfalls (see preceding commit).

This commit is contained in:
Harald Csaszar 2024-01-12 19:48:47 +01:00
parent cb33b34a4a
commit be25484ac2
2 changed files with 24 additions and 20 deletions

View File

@ -307,7 +307,7 @@ namespace Spine {
if ((flags & 8) != 0) data.rotate = input.ReadFloat();
if ((flags & 16) != 0) data.scaleX = input.ReadFloat();
if ((flags & 32) != 0) data.shearX = input.ReadFloat();
data.step = 1f / input.ReadByte();
data.step = 1f / input.ReadUByte();
data.inertia = input.ReadFloat();
data.strength = input.ReadFloat();
data.damping = input.ReadFloat();
@ -428,7 +428,7 @@ namespace Spine {
String attachmentName, bool nonessential) {
float scale = this.scale;
int flags = input.ReadByte();
int flags = input.ReadUByte();
string name = (flags & 8) != 0 ? input.ReadStringRef() : attachmentName;
switch ((AttachmentType)(flags & 0x7)) { // 0b111
@ -658,7 +658,7 @@ namespace Spine {
for (int i = 0, n = input.ReadInt(true); i < n; i++) {
int slotIndex = input.ReadInt(true);
for (int ii = 0, nn = input.ReadInt(true); ii < nn; ii++) {
int timelineType = input.ReadByte(), frameCount = input.ReadInt(true), frameLast = frameCount - 1;
int timelineType = input.ReadUByte(), frameCount = input.ReadInt(true), frameLast = frameCount - 1;
switch (timelineType) {
case SLOT_ATTACHMENT: {
AttachmentTimeline timeline = new AttachmentTimeline(frameCount, slotIndex);
@ -678,7 +678,7 @@ namespace Spine {
float time2 = input.ReadFloat();
float r2 = input.Read() / 255f, g2 = input.Read() / 255f;
float b2 = input.Read() / 255f, a2 = input.Read() / 255f;
switch (input.ReadByte()) {
switch (input.ReadUByte()) {
case CURVE_STEPPED:
timeline.SetStepped(frame);
break;
@ -707,7 +707,7 @@ namespace Spine {
if (frame == frameLast) break;
float time2 = input.ReadFloat();
float r2 = input.Read() / 255f, g2 = input.Read() / 255f, b2 = input.Read() / 255f;
switch (input.ReadByte()) {
switch (input.ReadUByte()) {
case CURVE_STEPPED:
timeline.SetStepped(frame);
break;
@ -738,7 +738,7 @@ namespace Spine {
float nr = input.Read() / 255f, ng = input.Read() / 255f;
float nb = input.Read() / 255f, na = input.Read() / 255f;
float nr2 = input.Read() / 255f, ng2 = input.Read() / 255f, nb2 = input.Read() / 255f;
switch (input.ReadByte()) {
switch (input.ReadUByte()) {
case CURVE_STEPPED:
timeline.SetStepped(frame);
break;
@ -775,7 +775,7 @@ namespace Spine {
float time2 = input.ReadFloat();
float nr = input.Read() / 255f, ng = input.Read() / 255f, nb = input.Read() / 255f;
float nr2 = input.Read() / 255f, ng2 = input.Read() / 255f, nb2 = input.Read() / 255f;
switch (input.ReadByte()) {
switch (input.ReadUByte()) {
case CURVE_STEPPED:
timeline.SetStepped(frame);
break;
@ -807,7 +807,7 @@ namespace Spine {
if (frame == frameLast) break;
float time2 = input.ReadFloat();
float a2 = input.Read() / 255f;
switch (input.ReadByte()) {
switch (input.ReadUByte()) {
case CURVE_STEPPED:
timeline.SetStepped(frame);
break;
@ -829,7 +829,7 @@ namespace Spine {
for (int i = 0, n = input.ReadInt(true); i < n; i++) {
int boneIndex = input.ReadInt(true);
for (int ii = 0, nn = input.ReadInt(true); ii < nn; ii++) {
int type = input.ReadByte(), frameCount = input.ReadInt(true), bezierCount = input.ReadInt(true);
int type = input.ReadUByte(), frameCount = input.ReadInt(true), bezierCount = input.ReadInt(true);
switch (type) {
case BONE_ROTATE:
ReadTimeline(input, timelines, new RotateTimeline(frameCount, bezierCount, boneIndex), 1);
@ -875,7 +875,7 @@ namespace Spine {
timeline.SetFrame(frame, time, mix, softness, input.ReadSByte(), (flags & 1) != 0, (flags & 2) != 0);
if (frame == frameLast) break;
float time2 = input.ReadFloat(), mix2 = input.ReadFloat(), softness2 = input.ReadFloat() * scale;
switch (input.ReadByte()) {
switch (input.ReadUByte()) {
case CURVE_STEPPED:
timeline.SetStepped(frame);
break;
@ -902,7 +902,7 @@ namespace Spine {
if (frame == frameLast) break;
float time2 = input.ReadFloat(), mixRotate2 = input.ReadFloat(), mixX2 = input.ReadFloat(), mixY2 = input.ReadFloat(),
mixScaleX2 = input.ReadFloat(), mixScaleY2 = input.ReadFloat(), mixShearY2 = input.ReadFloat();
switch (input.ReadByte()) {
switch (input.ReadUByte()) {
case CURVE_STEPPED:
timeline.SetStepped(frame);
break;
@ -931,7 +931,7 @@ namespace Spine {
int index = input.ReadInt(true);
PathConstraintData data = skeletonData.pathConstraints.Items[index];
for (int ii = 0, nn = input.ReadInt(true); ii < nn; ii++) {
int type = input.ReadByte(), frameCount = input.ReadInt(true), bezierCount = input.ReadInt(true);
int type = input.ReadUByte(), frameCount = input.ReadInt(true), bezierCount = input.ReadInt(true);
switch (type) {
case PATH_POSITION:
ReadTimeline(input, timelines, new PathConstraintPositionTimeline(frameCount, bezierCount, index),
@ -949,7 +949,7 @@ namespace Spine {
if (frame == frameLast) break;
float time2 = input.ReadFloat(), mixRotate2 = input.ReadFloat(), mixX2 = input.ReadFloat(),
mixY2 = input.ReadFloat();
switch (input.ReadByte()) {
switch (input.ReadUByte()) {
case CURVE_STEPPED:
timeline.SetStepped(frame);
break;
@ -974,7 +974,7 @@ namespace Spine {
for (int i = 0, n = input.ReadInt(true); i < n; i++) {
int index = input.ReadInt(true) - 1;
for (int ii = 0, nn = input.ReadInt(true); ii < nn; ii++) {
int type = input.ReadByte(), frameCount = input.ReadInt(true);
int type = input.ReadUByte(), frameCount = input.ReadInt(true);
if (type == PHYSICS_RESET) {
PhysicsConstraintResetTimeline timeline = new PhysicsConstraintResetTimeline(frameCount, index);
for (int frame = 0; frame < frameCount; frame++)
@ -1019,7 +1019,7 @@ namespace Spine {
Attachment attachment = skin.GetAttachment(slotIndex, attachmentName);
if (attachment == null) throw new SerializationException("Timeline attachment not found: " + attachmentName);
int timelineType = input.ReadByte(), frameCount = input.ReadInt(true), frameLast = frameCount - 1;
int timelineType = input.ReadUByte(), frameCount = input.ReadInt(true), frameLast = frameCount - 1;
switch (timelineType) {
case ATTACHMENT_DEFORM: {
VertexAttachment vertexAttachment = (VertexAttachment)attachment;
@ -1054,7 +1054,7 @@ namespace Spine {
timeline.SetFrame(frame, time, deform);
if (frame == frameLast) break;
float time2 = input.ReadFloat();
switch (input.ReadByte()) {
switch (input.ReadUByte()) {
case CURVE_STEPPED:
timeline.SetStepped(frame);
break;
@ -1150,7 +1150,7 @@ namespace Spine {
timeline.SetFrame(frame, time, value);
if (frame == frameLast) break;
float time2 = input.ReadFloat(), value2 = input.ReadFloat() * scale;
switch (input.ReadByte()) {
switch (input.ReadUByte()) {
case CURVE_STEPPED:
timeline.SetStepped(frame);
break;
@ -1171,7 +1171,7 @@ namespace Spine {
timeline.SetFrame(frame, time, value1, value2);
if (frame == frameLast) break;
float time2 = input.ReadFloat(), nvalue1 = input.ReadFloat() * scale, nvalue2 = input.ReadFloat() * scale;
switch (input.ReadByte()) {
switch (input.ReadUByte()) {
case CURVE_STEPPED:
timeline.SetStepped(frame);
break;
@ -1214,10 +1214,14 @@ namespace Spine {
return input.ReadByte();
}
public byte ReadByte () {
/// <summary>Explicit unsigned byte variant to prevent pitfalls porting Java reference implementation
/// where byte is signed vs C# where byte is unsigned.</summary>
public byte ReadUByte () {
return (byte)input.ReadByte();
}
/// <summary>Explicit signed byte variant to prevent pitfalls porting Java reference implementation
/// where byte is signed vs C# where byte is unsigned.</summary>
public sbyte ReadSByte () {
int value = input.ReadByte();
if (value == -1) throw new EndOfStreamException();

View File

@ -2,7 +2,7 @@
"name": "com.esotericsoftware.spine.spine-csharp",
"displayName": "spine-csharp Runtime",
"description": "This plugin provides the spine-csharp core runtime.",
"version": "4.2.8",
"version": "4.2.9",
"unity": "2018.3",
"author": {
"name": "Esoteric Software",