Hi!
Faced some troubles with your solution, txesmi!
Fullscreen mode messes everything up..
Take a look at this code
void main(){
fps_max = 60;
level_load("");
wait(3);
camera->arc = 90;
my = ent_create("test.png", nullvector, NULL);
set(my, PASSABLE | NOFILTER | ZNEAR);
vec_fill(&my->scale_x, 1);
my->ambient = 100;
var distance = 16, size_z = 8;
while(my){
my->skill20 = fcos(0.5 * camera->arc, distance);
my->skill21 = 0;
my->skill22 = size_z - fsin(0.5 * camera->arc, distance) * screen_size.y / screen_size.x;
vec_set(&my->x, &my->skill20);
vec_rotate(&my->x, &camera->pan);
vec_add(&my->x, &camera->x);
my->pan = ang(camera->pan - 180);
my->tilt = -camera->tilt;
my->roll = -camera->roll;
wait(1);
}
}
And a small bmap to test it, here it goes (right click and save, it's 16x16):
As far as I understood it should work correctly, but it does not :<
Screen examples (notice that resolution is the same!)
Windowed mode
Fullscreen mode
Greets!