Giter Site home page Giter Site logo

il2cpp-modding-codegen's People

Contributors

darknight1050 avatar fernthedev avatar redbrumbler avatar sc2ad avatar zoller27osu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

il2cpp-modding-codegen's Issues

An error occurred while using the program.

Drag and drop your dump.cs file (or a partial of it of the correct format) then press enter...
dump.cs
Parsing...
Unhandled exception. System.InvalidOperationException: Line 442: Method cannot be created from: ""
at Il2CppModdingCodegen.Data.DumpHandling.DumpMethod..ctor(TypeRef declaring, PeekableStreamReader fs) in D:\games\Il2Cpp-Modding-Codegen\Il2Cpp-Modding-Codegen\Data\DumpHandling\DumpMethod.cs:line 47
at Il2CppModdingCodegen.Data.DumpHandling.DumpTypeData.ParseMethods(PeekableStreamReader fs) in D:\games\Il2Cpp-Modding-Codegen\Il2Cpp-Modding-Codegen\Data\DumpHandling\DumpTypeData.cs:line 184
at Il2CppModdingCodegen.Data.DumpHandling.DumpTypeData..ctor(PeekableStreamReader fs, DumpConfig config) in D:\games\Il2Cpp-Modding-Codegen\Il2Cpp-Modding-Codegen\Data\DumpHandling\DumpTypeData.cs:line 220
at Il2CppModdingCodegen.Data.DumpHandling.DumpData.ParseTypes(PeekableStreamReader fs) in D:\games\Il2Cpp-Modding-Codegen\Il2Cpp-Modding-Codegen\Data\DumpHandling\DumpData.cs:line 43
at Il2CppModdingCodegen.Data.DumpHandling.DumpData.Parse(PeekableStreamReader fs) in D:\games\Il2Cpp-Modding-Codegen\Il2Cpp-Modding-Codegen\Data\DumpHandling\DumpData.cs:line 61
at Il2CppModdingCodegen.Data.DumpHandling.DumpData..ctor(Stream stream, DumpConfig config) in D:\games\Il2Cpp-Modding-Codegen\Il2Cpp-Modding-Codegen\Data\DumpHandling\DumpData.cs:line 74
at Il2CppModdingCodegen.DumpParser.Parse(Stream stream) in D:\games\Il2Cpp-Modding-Codegen\Il2Cpp-Modding-Codegen\Parsers\DumpParser.cs:line 17
at Codegen_CLI.Program.Main(String[] args) in D:\games\Il2Cpp-Modding-Codegen\Codegen-CLI\Program.cs:line 46
90мок

Casing issues

There seem to be a few issues with casing and the way things are generated:

image

image

This causes classes to not exist in the way that cpp expects them to be

Duplicate fields

Two of the same field are created if one of the original fields. E.g _radius and radius both become radius in a codegen header
image

Any way to skip invalid names?

Eg: Skip the following:

System.IO.IOException: The filename, directory name, or volume label syntax is incorrect. : 'D:\Il2Cpp-Modding-Codegen\Codegen-CLI\bin\Debug\netcoreapp3.1\output\include\<PrivateImplementationDetails>{FF33C43E-3513-4C16-A62D-5F1EFE332B71}'
   at System.IO.FileSystem.CreateDirectory(String fullPath, Byte[] securityDescriptor)
   at System.IO.Directory.CreateDirectory(String path)
   at Il2CppModdingCodegen.Serialization.CppHeaderCreator.Serialize(CppTypeContext context) in D:\Il2Cpp-Modding-Codegen\Il2Cpp-Modding-Codegen\Serialization\CppHeaderCreator.cs:line 34
   at Il2CppModdingCodegen.Serialization.CppDataSerializer.Serialize(CppStreamWriter writer, IParsedData data, Boolean _unused_) in D:\Il2Cpp-Modding-Codegen\Il2Cpp-Modding-Codegen\Serialization\CppDataSerializer.cs:line 146
   at Codegen_CLI.Program.Main(String[] args) in D:\Il2Cpp-Modding-Codegen\Codegen-CLI\Program.cs:line 169
[op_Implicit, 208], [op_Equality, 122], [op_Inequality, 101], [op_Explicit, 136], [op_Addition, 60], [op_Subtraction, 57], [op_UnaryNegation, 27], [op_Multiply, 77], [op_Division, 37], [op_LessThan, 27], [op_LessThanOrEqual, 13], [op_GreaterThan, 25], [op_GreaterThanOrEqual, 10], [op_Increment, 1], [op_Modulus, 5], [op_LeftShift, 2], [op_RightShift, 2], [op_BitwiseAnd, 17], [op_BitwiseOr, 15], [op_OnesComplement, 10], [op_UnaryPlus, 8], [op_ExclusiveOr, 5], [op_True, 1]

Union size issue

As demonstrated in this file Unions still cause issues,

here the issue is that the union of MapType and the 4 quants is seperated out into fields, causing it to mess up the size check for the object. This means that the generated project does not compile due to the size checks there.

A hacky fix is of course removing the size checks there, but eventually properly having unions is the expection (I assume)

Just putting this in so it's an issue that can be tested on

Resolve Vtable slot issue with generic base class

if the base class of a type is generic, and that is the type that a vtable slot needs to be resolved for, the generic parameter is lost in the source file, example:

// header
class A : B<float> {
    void thing();
}

// source
void A::thing() {
    ...
    ___internal__method = resolveVtableSlot(this, classof(B<T>*));
    ...
}

obviously this is very simplified but I hope this makes the issue clear enough to understand.

the B<T>* should obviously be B<float>* there.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.