| 8948 | }; |
| 8949 | exports.readU16 = readU16; |
| 8950 | const showArray = (mPtr, funcTransform) => { |
| 8951 | if (typeof mPtr == "number") |
| 8952 | mPtr = ptr(mPtr); |
| 8953 | if (mPtr == undefined || mPtr == ptr(0)) |
| 8954 | return; |
| 8955 | let retPtr = mPtr; |
| 8956 | let arrLength = retPtr.add(p_size * 3).readUInt(); |
| 8957 | LOGD(`\n[*] Array length : ${arrLength} | RET => ${retPtr}\n`); |
| 8958 | if (arrLength == 0) |
| 8959 | return; |
| 8960 | seeHexA(retPtr.add(p_size * 4), (arrLength > 32 ? 32 : arrLength) * p_size, false, enum_1.LogColor.C33); |
| 8961 | newLine(); |
| 8962 | for (let i = 0; i < arrLength; ++i) { |
| 8963 | let tmpPtr = ptr(retPtr).add(p_size * (4 + i)); |
| 8964 | let relItem = tmpPtr.readPointer(); |
| 8965 | let ObjToString = ""; |
| 8966 | try { |
| 8967 | ObjToString = `${getType(relItem).toString()} | ${new Il2Cpp.Object(relItem).toString()}`; |
| 8968 | } |
| 8969 | catch { |
| 8970 | ObjToString = new Il2Cpp.Object(relItem).toString(); |
| 8971 | } |
| 8972 | if (ObjToString.indexOf("String")) |
| 8973 | ObjToString += `\t|${readU16(relItem)}|`; |
| 8974 | if (ObjToString.indexOf("Text")) |
| 8975 | ObjToString += `\t${callFunctionRUS(["UnityEngine.UI", "Text", "get_fontSize", 0])} ${relItem}`; |
| 8976 | if (ObjToString.indexOf("TermData") || ObjToString.indexOf("LanguageData")) |
| 8977 | ObjToString += `\t | ${readU16(tmpPtr.readPointer().add(0x8).readPointer())}| `; |
| 8978 | LOGD(String("[" + i + "]").padEnd(5, " ") + " " + tmpPtr + " ---> " + relItem + " | " + ObjToString); |
| 8979 | if (funcTransform != undefined && typeof funcTransform == "function") |
| 8980 | LOG("\t" + funcTransform(relItem, ObjToString), enum_1.LogColor.C90); |
| 8981 | } |
| 8982 | newLine(); |
| 8983 | }; |
| 8984 | exports.showArray = showArray; |
| 8985 | var seeHexR = (addr, length = 0x40, color) => { |
| 8986 | addr = (0, common_1.PTR2NativePtr)(addr); |