#include <acknex.h>
var distance = 16;
var cameraProp = 1;
var screenProp = 1;
void safe_video_switch (var _mode) {
video_mode = video_switch(_mode, 32, video_screen);
if(!video_mode)
video_mode = video_switch(7, 32, video_screen);
if (video_screen == 1)
cameraProp = distance * screenProp / camera->aspect;
else
cameraProp = distance * screen_size.y / (screen_size.x * camera->aspect);
}
void onQ () {
safe_video_switch(video_mode + 1);
}
void onW () {
video_screen = 1 + video_screen % 2;
safe_video_switch(video_mode);
}
void weaponLocate (ENTITY *_ent) {
var size_z = 8 * _ent->scale_z;
_ent->x = distance;
_ent->y = 0;
_ent->z = size_z - tanv(0.5 * camera->arc) * cameraProp;
vec_rotate(&_ent->x, &camera->pan);
vec_add(&_ent->x, &camera->x);
_ent->pan = ang(camera->pan - 180);
_ent->tilt = -camera->tilt;
_ent->roll = -camera->roll;
}
void main () {
screenProp = sys_metrics(1) / sys_metrics(0);
fps_max = 60;
video_mode = 7;
video_screen = 1;
wait(1);
on_q = onQ;
on_w = onW;
level_load("");
camera->arc = 90;
camera->aspect = 1;
safe_video_switch(7);
ENTITY *_ent = ent_create("sprite2.tga", nullvector, NULL);
set(_ent, PASSABLE | NOFILTER | ZNEAR | DECAL);
vec_fill(&_ent->scale_x, 1);
_ent->ambient = 100;
while (!key_esc) {
camera->pan = ang(camera->pan - mickey.x * 0.2);
camera->tilt = clamp(camera->tilt - mickey.y * 0.2, -90, 90);
weaponLocate(_ent);
wait(1);
}
sys_exit(NULL);
}