I have this code in C++ works without problem. but when i transpiled to 
nim-lang i crashed all times.
    
    
    DWORD* floatingEnumInstance = *reinterpret_cast<DWORD**>(base_address + 
0x24FB358);
            typedef int(__thiscall* FloatingTextGetTextType)(DWORD* 
floatingEnumInstance,int textType);
            FloatingTextGetTextType getFloatingTextType = 
*reinterpret_cast<FloatingTextGetTextType>(base_address + 0x5FBDD0);
            int* textType = (int*)getFloatingTextType(floatingEnumInstance, 1);
            
            DWORD* floatingTextInstance = 
*reinterpret_cast<DWORD**>(base_address + 0x24FB354);
            typedef void(__thiscall* FloatingTextAddInternalLine)(
                    DWORD* floatingTextInstance,
                    core::game_object* object,
                    int* textType,
                    const char* msg, float, int, int animType, DWORD);
            FloatingTextAddInternalLine showFloatingText = 
*reinterpret_cast<FloatingTextAddInternalLine>(base_address + 0x5F1E50);
            
            showFloatingText(
                    floatingTextInstance,
                    game->local_player,
                    textType,
                    "hello",
                    0.0f,
                    0,
                    0,
                    0
            );
    
    
    Run

My actual nim code
    
    
    type
        cstringConstImpl {.importcpp:"const char*".} = cstring
        constChar* = distinct cstringConstImpl
      
      let floatingEnumInstance = cast[ptr ByteAddress](address + 0x24FB358)[]
      type FloatingTextGetType = proc(floatingEnumInstance: ByteAddress, 
textType: int): int {.gcsafe, thiscall.}
      let getFloatingTextType = cast[FloatingTextGetType](address + 0x5FBDD0)
      let textType = cast[uint](getFloatingTextType(floatingEnumInstance, 1))
      
      let floatingTextManagerInstance = cast[ptr ByteAddress](address + 
0x24FB354)[]
      type FloatingTextAddInternalLine = proc(
        floatingTextInstance: ByteAddress,
        target: ByteAddress,
        textType: uint,
        text: constChar,
        idk1: float,
        idk2: int,
        animationType: int,
        instance2: DWORD
      ): void {.gcsafe, thiscall.}
      let showFloatingTextFunction = cast[FloatingTextAddInternalLine](address 
+ 0x5F1E50)
      showFloatingTextFunction(floatingTextManagerInstance, cast[ptr 
ByteAddress](self.localPlayer)[], textType, constChar("hello"), 0.0,0,0,0)
    
    
    Run

When i execute C++ code works without problem but nim code is crashing :/

Reply via email to