1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import {Il2CppTypeEnum} from "../Il2CppTypeEnum";
- import {log} from "../../logger";
- import {Tabledefs as tabledefs} from "../tabledefs";
- export var utils = {
- readTypeEnumValue: function (pointer, typeEnum, fieldClass) {
- switch (typeEnum) {
- case Il2CppTypeEnum.IL2CPP_TYPE_BOOLEAN:
- return !!pointer.readS8();
- case Il2CppTypeEnum.IL2CPP_TYPE_I1:
- return pointer.readS8();
- case Il2CppTypeEnum.IL2CPP_TYPE_I2:
- return pointer.readS16();
- case Il2CppTypeEnum.IL2CPP_TYPE_U2:
- return pointer.readU16();
- case Il2CppTypeEnum.IL2CPP_TYPE_I4:
- return pointer.readS32();
- case Il2CppTypeEnum.IL2CPP_TYPE_U4:
- return pointer.readU32();
- case Il2CppTypeEnum.IL2CPP_TYPE_CHAR:
- return pointer.readU16();
- case Il2CppTypeEnum.IL2CPP_TYPE_I8:
- return pointer.readS64();
- case Il2CppTypeEnum.IL2CPP_TYPE_U8:
- return pointer.readU64();
- case Il2CppTypeEnum.IL2CPP_TYPE_R4:
- return pointer.readFloat();
- case Il2CppTypeEnum.IL2CPP_TYPE_R8:
- return pointer.readDouble();
- case Il2CppTypeEnum.IL2CPP_TYPE_VALUETYPE:
- let enumBaseType = fieldClass.getEnumBaseType();
- // log("baseType:"+enumBaseType.getTypeEnum()+"pointer:"+pointer.readS32());
- if (enumBaseType.getTypeEnum() === Il2CppTypeEnum.IL2CPP_TYPE_I4) {
- return pointer.readS32();
- }
- return null;
- default:
- return null;
- }
- }
- ,
- get_method_static:function (flags){
- if (flags & tabledefs.METHOD_ATTRIBUTE_STATIC){
- return true;
- }else {
- return false;
- }
- },
- get_method_modifier: function (flags) {
- let content;
- let access = flags & tabledefs.METHOD_ATTRIBUTE_MEMBER_ACCESS_MASK;
- switch (access) {
- case tabledefs.METHOD_ATTRIBUTE_PRIVATE:
- content = "private ";
- break;
- case tabledefs.METHOD_ATTRIBUTE_PUBLIC:
- content = "public ";
- break;
- case tabledefs.METHOD_ATTRIBUTE_FAMILY:
- content = "protected ";
- break;
- case tabledefs.METHOD_ATTRIBUTE_ASSEM:
- case tabledefs.METHOD_ATTRIBUTE_FAM_AND_ASSEM:
- content = "internal ";
- break;
- case tabledefs.METHOD_ATTRIBUTE_FAM_OR_ASSEM:
- content = "protected internal ";
- break;
- }
- if (flags & tabledefs.METHOD_ATTRIBUTE_STATIC) {
- content = content + "static ";
- }
- if (flags & tabledefs.METHOD_ATTRIBUTE_ABSTRACT) {
- content = content+ "abstract ";
- if ((flags & tabledefs.METHOD_ATTRIBUTE_VTABLE_LAYOUT_MASK) === tabledefs.METHOD_ATTRIBUTE_REUSE_SLOT) {
- content = content+ "override ";
- }
- } else if (flags & tabledefs.METHOD_ATTRIBUTE_FINAL) {
- if ((flags & tabledefs.METHOD_ATTRIBUTE_VTABLE_LAYOUT_MASK) === tabledefs.METHOD_ATTRIBUTE_REUSE_SLOT) {
- content = content+ "sealed override ";
- }
- } else if (flags & tabledefs.METHOD_ATTRIBUTE_VIRTUAL) {
- if ((flags & tabledefs.METHOD_ATTRIBUTE_VTABLE_LAYOUT_MASK) === tabledefs.METHOD_ATTRIBUTE_NEW_SLOT) {
- content = content+ "virtual ";
- } else {
- content = content+ "override ";
- }
- }
- if (flags & tabledefs.METHOD_ATTRIBUTE_PINVOKE_IMPL) {
- content = content+ "extern ";
- }
- return content;
- }
- }
|