#include <acknex.h>
#include <default.c>
//
//
//
ENTITY** soldier;
var max_soldiers;
//
//
function main()
{
level_load(NULL); camera.x = -400; camera.z = -300; camera.tilt = 45;
//
//
// CREATE initial soldier array
max_soldiers = 5; //set initial number of soldiers
soldier = (ENTITY**)malloc(sizeof(ENTITY*)*max_soldiers); //create array to hold this many soldier-entities
soldier[0] = ent_create("cube.mdl", vector(0,10,0), NULL); //create solder 1
soldier[1] = ent_create("cube.mdl", vector(0,50,0), NULL); //create solder 2
soldier[2] = ent_create("cube.mdl", vector(0,100,0), NULL); //create solder 3
soldier[3] = ent_create("cube.mdl", vector(0,150,0), NULL); //create solder 4
soldier[4] = ent_create("cube.mdl", vector(0,200,0), NULL); //create solder 5
wait(-3); //pause demo for dramatic effect
//
// EXTEND soldier array
max_soldiers = 10; //increase number of soldiers
soldier = (ENTITY**)realloc(soldier, sizeof(ENTITY*)*max_soldiers); //extend array to hold aditional soldier-entities
soldier[5] = ent_create("cube.mdl", vector(0,-10,0), NULL); //create solder 6 in new space
soldier[6] = ent_create("cube.mdl", vector(0,-50,0), NULL); //create solder 7 in new space
soldier[7] = ent_create("cube.mdl", vector(0,-100,0), NULL); //create solder 8 in new space
soldier[8] = ent_create("cube.mdl", vector(0,-150,0), NULL); //create solder 9 in new space
soldier[9] = ent_create("cube.mdl", vector(0,-200,0), NULL); //create solder 10 in new space
//
wait(-1); //pause demo for dramatic effect
soldier[0].x -= 10; //move old soldier 1 to prove he is still accessable under old name
soldier[1].x -= 20; //move old soldier 2 to prove he is still accessable under old name
soldier[2].x -= 30; //move old soldier 3 to prove he is still accessable under old name
soldier[3].x -= 40; //move old soldier 4 to prove he is still accessable under old name
soldier[4].x -= 50; //move old soldier 5 to prove he is still accessable under old name
//
//
wait(-10);
//flush and reset soldier array for next level.
int i; for(i=0; i<max_soldiers; i++) { ent_remove(soldier[i]); } //see - old soldiers DO die
free(soldier); //now as if it had never been used...
//
//
//
beep();
}