#1 12-05-2010 04:29

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Camera Movement via Function - Problem

I'm not so good with this.

 ; int __stdcall CCamera__setPositionAndRotation(RwV3D *position, RwV3D *rotation)
    CCamera__setPositionAndRotation proc near

    position= dword ptr  4
    rotation= dword ptr  8

I'm unsure about how to use the params in a function call. I'm using it like this at the moment:

0AA7: call_function 0x50C8B0 num_params 6 pop 6 VAR1 VAR2 VAR3 0.0 0.0 0.0

Imagining use of the opcode.


But it seems to want only 2 dword parameters... How does that work?

Offline

#2 12-05-2010 06:17

Alien
Registered: 12-10-2008
Posts: 564

Re: Camera Movement via Function - Problem

void __thiscall CCamera__setPositionAndRotation(CCamera *this, RwV3D *position, RwV3D *rotation)

Function gets 3 pointers - to the camera, to the position vector and to the rotation vector (* - indirection operator in C++).

0AC7: 0@ = var 1@ offset
1@ = ... // x coord
2@ = ... // y coord
3@ = ... // z coord
0AC7: 4@ = var 5@ offset
5@ = ... // x angle
6@ = ... // y angle
7@ = ... // z angle
0AA6: call_method 0x50BEC0 struct 0xB6F028 num_params 2 pop 0 4@ 0@

opcode_015F do the same action.

Offline

#3 12-05-2010 13:55

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: Camera Movement via Function - Problem

Thanks. Hopefully it will fix the other problems I've been having.


Meh... Has the exact same problems as 015F.


I'm trying to make a free-camera mode that lets you move the cam with the keyboard keys and change where it's pointing with the mouse. For some very strange reason, when the camera gets near something solid, it starts moving forward by itself.

Last edited by Deji (12-05-2010 14:40)

Offline

Board footer

Powered by FluxBB