forked from circlecloud/tera
parent
8c849ed49f
commit
9c300cd191
|
@ -16,19 +16,14 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
|
||||||
global.ToLogTrace("ERRR StringFormat ");
|
global.ToLogTrace("ERRR StringFormat ");
|
||||||
throw "ERR!!";
|
throw "ERR!!";
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
var format = StringFormat;
|
var format = StringFormat;
|
||||||
if (format.substr(0, 6) === "buffer" && format.length > 6) {
|
if (format.substr(0, 6) === "buffer" && format.length > 6) {
|
||||||
ParamValue = parseInt(format.substr(6));
|
ParamValue = parseInt(format.substr(6));
|
||||||
format = "buffer";
|
format = "buffer";
|
||||||
}
|
} else if (format.substr(0, 3) === "arr" && format.length > 3) {
|
||||||
else
|
|
||||||
if (format.substr(0, 3) === "arr" && format.length > 3) {
|
|
||||||
ParamValue = parseInt(format.substr(3));
|
ParamValue = parseInt(format.substr(3));
|
||||||
format = "arr";
|
format = "arr";
|
||||||
}
|
} else if (format.substr(0, 3) === "str" && format.length > 3) {
|
||||||
else
|
|
||||||
if (format.substr(0, 3) === "str" && format.length > 3) {
|
|
||||||
var length = parseInt(format.substr(3));
|
var length = parseInt(format.substr(3));
|
||||||
if (data)
|
if (data)
|
||||||
buf.write(data, buf.len, length);
|
buf.write(data, buf.len, length);
|
||||||
|
@ -191,9 +186,7 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
|
||||||
for (var i = 0; i < length; i++) {
|
for (var i = 0; i < length; i++) {
|
||||||
Write(buf, data[i], formatNext, undefined, WorkStruct);
|
Write(buf, data[i], formatNext, undefined, WorkStruct);
|
||||||
}
|
}
|
||||||
}
|
} else if (CurFormat === "<") {
|
||||||
else
|
|
||||||
if (CurFormat === "<") {
|
|
||||||
let length;
|
let length;
|
||||||
if (data)
|
if (data)
|
||||||
length = data.length;
|
length = data.length;
|
||||||
|
@ -209,9 +202,7 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
buf.writeUInt32LE(IndexCount, len, 4);
|
buf.writeUInt32LE(IndexCount, len, 4);
|
||||||
}
|
} else if (CurFormat === "{") {
|
||||||
else
|
|
||||||
if (CurFormat === "{") {
|
|
||||||
var attrs = WorkStruct[format];
|
var attrs = WorkStruct[format];
|
||||||
if (!attrs) {
|
if (!attrs) {
|
||||||
attrs = GetAttributes(GetMiddleString(format));
|
attrs = GetAttributes(GetMiddleString(format));
|
||||||
|
@ -221,13 +212,11 @@ function Write(buf, data, StringFormat?, ParamValue?, WorkStruct?) {
|
||||||
var type = attrs[i];
|
var type = attrs[i];
|
||||||
Write(buf, data[type.Key], type.Value, undefined, WorkStruct);
|
Write(buf, data[type.Key], type.Value, undefined, WorkStruct);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw "Bad write type params: " + format;
|
throw "Bad write type params: " + format;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
|
function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
|
||||||
|
@ -236,29 +225,22 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
|
||||||
global.ToLogTrace("ERR StringFormat");
|
global.ToLogTrace("ERR StringFormat");
|
||||||
throw "ERRR!";
|
throw "ERRR!";
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
var format = StringFormat;
|
var format = StringFormat;
|
||||||
if (format.substr(0, 6) === "buffer") {
|
if (format.substr(0, 6) === "buffer") {
|
||||||
if (format.length > 6) {
|
if (format.length > 6) {
|
||||||
ParamValue = parseInt(format.substr(6));
|
ParamValue = parseInt(format.substr(6));
|
||||||
format = "buffer";
|
format = "buffer";
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
ParamValue = 0;
|
ParamValue = 0;
|
||||||
}
|
}
|
||||||
}
|
} else if (format.substr(0, 3) === "arr") {
|
||||||
else
|
|
||||||
if (format.substr(0, 3) === "arr") {
|
|
||||||
if (format.length > 3) {
|
if (format.length > 3) {
|
||||||
ParamValue = parseInt(format.substr(3));
|
ParamValue = parseInt(format.substr(3));
|
||||||
format = "arr";
|
format = "arr";
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
ParamValue = 0;
|
ParamValue = 0;
|
||||||
}
|
}
|
||||||
}
|
} else if (format.substr(0, 3) === "str") {
|
||||||
else
|
|
||||||
if (format.substr(0, 3) === "str") {
|
|
||||||
if (format.length > 3) {
|
if (format.length > 3) {
|
||||||
var length = parseInt(format.substr(3));
|
var length = parseInt(format.substr(3));
|
||||||
ret = buf.toString('utf8', buf.len, buf.len + length);
|
ret = buf.toString('utf8', buf.len, buf.len + length);
|
||||||
|
@ -270,13 +252,8 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (nEnd >= 0)
|
return nEnd >= 0 ? ret.substr(0, i + 1) : "";
|
||||||
ret = ret.substr(0, i + 1);
|
} else {
|
||||||
else
|
|
||||||
ret = "";
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ParamValue = 0;
|
ParamValue = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -424,21 +401,15 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
|
||||||
var formatNext = GetMiddleString(format);
|
var formatNext = GetMiddleString(format);
|
||||||
let length = Read(buf, "uint32");
|
let length = Read(buf, "uint32");
|
||||||
for (var i = 0; i < length; i++) {
|
for (var i = 0; i < length; i++) {
|
||||||
if (buf.len <= buf.length) {
|
if (buf.len > buf.length) { break; }
|
||||||
if (bIndexArr) {
|
if (bIndexArr) {
|
||||||
var index = Read(buf, "uint32");
|
var index = Read(buf, "uint32");
|
||||||
ret[index] = Read(buf, formatNext, undefined, WorkStruct, bDisableTime);
|
ret[index] = Read(buf, formatNext, undefined, WorkStruct, bDisableTime);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
ret[i] = Read(buf, formatNext, undefined, WorkStruct, bDisableTime);
|
ret[i] = Read(buf, formatNext, undefined, WorkStruct, bDisableTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
} else if (LStr === "{") {
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
if (LStr === "{") {
|
|
||||||
var attrs = WorkStruct[format];
|
var attrs = WorkStruct[format];
|
||||||
if (!attrs) {
|
if (!attrs) {
|
||||||
attrs = GetAttributes(GetMiddleString(format));
|
attrs = GetAttributes(GetMiddleString(format));
|
||||||
|
@ -449,13 +420,11 @@ function Read(buf, StringFormat, ParamValue?, WorkStruct?, bDisableTime?) {
|
||||||
var type = attrs[i];
|
var type = attrs[i];
|
||||||
ret[type.Key] = Read(buf, type.Value, undefined, WorkStruct, bDisableTime);
|
ret[type.Key] = Read(buf, type.Value, undefined, WorkStruct, bDisableTime);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw "Bad read type params: " + format;
|
throw "Bad read type params: " + format;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue