MCPcopy Create free account
hub / github.com/axhlzy/Il2CppHookScripts / to

Method to

Il2cppHook/_Ufunc.js:12202–12257  ·  view source on GitHub ↗

Creates a reference to the specified value.

(value, type)

Source from the content-addressed store, hash-verified

12200 }
12201 /** Creates a reference to the specified value. */
12202 static to(value, type) {
12203 const handle = Memory.alloc(Process.pointerSize);
12204 switch (typeof value) {
12205 case "boolean":
12206 return new Il2Cpp.Reference(handle.writeS8(+value), Il2Cpp.Image.corlib.class("System.Boolean").type);
12207 case "number":
12208 switch (type?.typeEnum) {
12209 case 5 /* U1 */:
12210 return new Il2Cpp.Reference(handle.writeU8(value), type);
12211 case 4 /* I1 */:
12212 return new Il2Cpp.Reference(handle.writeS8(value), type);
12213 case 3 /* Char */:
12214 case 7 /* U2 */:
12215 return new Il2Cpp.Reference(handle.writeU16(value), type);
12216 case 6 /* I2 */:
12217 return new Il2Cpp.Reference(handle.writeS16(value), type);
12218 case 9 /* U4 */:
12219 return new Il2Cpp.Reference(handle.writeU32(value), type);
12220 case 8 /* I4 */:
12221 return new Il2Cpp.Reference(handle.writeS32(value), type);
12222 case 11 /* U8 */:
12223 return new Il2Cpp.Reference(handle.writeU64(value), type);
12224 case 10 /* I8 */:
12225 return new Il2Cpp.Reference(handle.writeS64(value), type);
12226 case 12 /* R4 */:
12227 return new Il2Cpp.Reference(handle.writeFloat(value), type);
12228 case 13 /* R8 */:
12229 return new Il2Cpp.Reference(handle.writeDouble(value), type);
12230 }
12231 case "object":
12232 if (value instanceof Il2Cpp.ValueType || value instanceof Il2Cpp.Pointer) {
12233 return new Il2Cpp.Reference(handle.writePointer(value), value.type);
12234 }
12235 else if (value instanceof Il2Cpp.Object) {
12236 return new Il2Cpp.Reference(handle.writePointer(value), value.class.type);
12237 }
12238 else if (value instanceof Il2Cpp.String || value instanceof Il2Cpp.Array) {
12239 return new Il2Cpp.Reference(handle.writePointer(value), value.object.class.type);
12240 }
12241 else if (value instanceof NativePointer) {
12242 switch (type?.typeEnum) {
12243 case 25 /* UnsignedNativeInteger */:
12244 case 24 /* NativeInteger */:
12245 return new Il2Cpp.Reference(handle.writePointer(value), type);
12246 }
12247 }
12248 else if (value instanceof Int64) {
12249 return new Il2Cpp.Reference(handle.writeS64(value), Il2Cpp.Image.corlib.class("System.Int64").type);
12250 }
12251 else if (value instanceof UInt64) {
12252 return new Il2Cpp.Reference(handle.writeU64(value), Il2Cpp.Image.corlib.class("System.UInt64").type);
12253 }
12254 default:
12255 (0, console_1.raise)(`don't know how to create a reference to ${value} using type ${type?.name}`);
12256 }
12257 }
12258}
12259Il2Cpp.Reference = Il2CppReference;

Callers

nothing calls this directly

Calls 2

allocMethod · 0.45
classMethod · 0.45

Tested by

no test coverage detected