///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c> ///////////////////////////////////TWO CAMERA CODE/////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define look_ship 1
#define look_ranger 0
ENTITY* pl_ship;
ENTITY* pl_ranger;
ENTITY* player1;
var look = 1;
function camera_walking();
function camera_ship();
action act_ship() {
pl_ship = me;
me.ambient = 10;
while(pl_ranger == NULL) { wait(1); }
while(me != NULL) {
if (player1 == me) {
reset(me, PASSABLE);
camera_ship();
if (key_o) { // key_o sets to ranger mode
player1 = pl_ranger;
set(me, PASSABLE); // set ship to PASSABLE so ranger doesn't get stuck
}
if (key_z) {me.pan += 3*time_step;}
if (key_x) {me.pan -= 3*time_step;}
if (key_a){c_move (me,vector( 5,0,0),nullvector,GLIDE);}
if (key_s){c_move (me,vector( -5,0,0),nullvector,GLIDE);}
if (key_q){c_move (me,vector( 0,0,1),nullvector,GLIDE);}
if (key_e){c_move (me,vector( 0,0,-1),nullvector,GLIDE);}
if (key_c) {me.tilt += 3*time_step;}
if (key_v) {me.tilt -= 3*time_step;}
if (key_r) {me.roll -= 3*time_step;}
if (key_t) {me.roll += 3*time_step;}
}
wait(1);
}
}
action act_ranger() {
pl_ranger = me;
me.ambient = 10;
while(pl_ship == NULL) { wait(1); }
while(me != NULL) {
if (player1 == NULL) { player1 = me; } // defaults to pl_ranger
if (player1 == me) {
reset(me, PASSABLE);
reset(me, INVISIBLE);
camera_walking();
if (key_k){c_move (me,vector( 5,0,0),nullvector,GLIDE);}
if (key_l){c_move (me,vector( -5,0,0),nullvector,GLIDE);}
if (key_h) {me.pan += 3*time_step;}
if (key_j) {me.pan -= 3*time_step;}
c_move (me,vector(0,0,-.5),nullvector,GLIDE);
if (key_p) { // key_p sets to ship mode
player1 = pl_ship;
set(me, PASSABLE | INVISIBLE); // hide ranger
}
}
wait(1);
}
}
function main() {
player1 = NULL;
video_screen = 1;
video_mode = 7;
max_entities = 1000; // alows up to 1000 Entities.
level_load ("place.wmb");
wait(3);
ent_create("ship.mdl", vector(-3000, 0, 60), act_ship);
ent_create("ranger.mdl", vector(100, 0, 30), act_ranger);
}
function camera_ship() {
if (player1 == NULL) { return 0; }
// move the camera together with the player1 entity
vec_set(camera.x, player1.x);
vec_set(camera.pan, player1.pan);
}
function camera_walking() {
if (player1 == NULL) { return 0; }
// move the camera together with the player1 entity
vec_set(camera.x, vector(player1.x, player1.y, player1.z + 50));
vec_set(camera.pan, player1.pan);
}