I don't really expect anybody to know the exact cause but maybe someone is familiar with the engine and could point me towards a possible solution.
I managed to create native classes that have functions that I can call from UnrealScript and vice versa. That works flawless without any problems. However, when I enable collision on my native actor that's where the problem occurs: The location of the collision cylinder is always negative the location of the actor. It looks like this if I move it around in the editor:
Strangely the collision works fine when bumping into the actor ingame which lead me to believe that it is just a visual error in the editor. But it isn't. If I create a native pawn and it is moving it teleports to the location where the collision cylinder shows up in the editor. I tried to simply invert 'ColLocation' but it doesn't have any effect.
I'm using a heavily modified version of the UT99 headers. I used the ucc to generate the class definition for the game's native classes like actor, pawn, etc... so that they are the exact same as in UnrealScript and I made sure that all the vtables for the different classes are correct.
This is just weird and at this point I don't really know what to do
Edit:
Fixed it. It was in fact a vtable issue. The following two functions were defined in the wrong order:
Code: Select all
virtual FMatrix LocalToWorld() const;
virtual FMatrix WorldToLocal() const;