#include <default.c>
#define PRAGMA_PATH "shadec"
#include "shade-c.h"
#include "common.h"
ENTITY* skycube =
{
type = "plain_abraham+6.tga";
flags2 = SKY | CUBE | SHOW;
red = 130;
green = 130;
blue = 130;
}
VECTOR vSpeed, vAngularSpeed, vForce, vMove;
ENTITY* spotlight[144];
void main()
{
fps_max = 60;
shadow_stencil = -1;
video_set(800, 600, 0, 2);
level_load("05.wmb");
wait(3);
vec_set(sun_color, vector(0,0,0));
vec_set(ambient_color, vector(0,0,0));
vec_set(camera.x,vector(840,-870,700));
vec_set(camera.pan,vector(135,-40,0));
camera.arc = 90;
sc_sky(skycube);
sc_screen_default = sc_screen_create(camera);
sc_setup(sc_screen_default);
int i,j,k=0;
var dist_x = -646, dist_y = 520;
random_seed(0);
for (i=0;i<12;i++){
for (j=0;j<12;j++){
spotlight[k] = sc_light_create(vector(dist_x,dist_y,200), 500, vector(random(255),random(255),random(255)), SC_LIGHT_SPOT | SC_LIGHT_SPECULAR, vector(0,-90,0), 40);
k++;
dist_x += 114;
}
dist_x = -646;
dist_y -= 114;
}
for (k=0;k<143;k++)
sc_light_update(spotlight[k]);
def_debug();
draw_textmode("Arial",3,16,100);
var speed = 20;
while(1)
{
draw_text("click and hold [RMB] and use [QWEASD] keys to move the camera",2,115,COLOR_GREEN);
if(mouse_right) // Move the camera if the right mouse button was pressed
{
vForce.x = -speed *(key_force.x + mouse_force.x); // pan angle
vForce.y = speed *(key_force.y + mouse_force.y); // tilt angle
vForce.z = 0; // roll angle
vec_accelerate(vMove,vAngularSpeed,vForce,0.8);
vec_add(camera.pan,vMove);
vForce.x = speed * (key_w - key_s); // forward
vForce.y = speed * (key_a - key_d); // sideward
vForce.z = speed * (key_q - key_e); // upward
vec_accelerate(vMove,vSpeed,vForce,0.5);
vec_rotate(vMove,camera.pan);
vec_add(camera.x,vMove);
}
wait(1);
}
}