#include <acknex.h>
#include <default.c>
/////////////////////////////////////////////////////////////////////////////
// Decal shadow problem App
void main()
{
// Wait 1 frame
wait(1);
// Load empty level
level_load(NULL);
// Position camera
vec_set(camera.x,vector(-150,0,50));
// Create terrain
you = ent_createterrain(NULL,NULL,32,32,1000);
bmap_fill(bmap_for_entity(you,0), vector(60, 60, 60), 100);
// Create shadow casting entity
ENTITY *ent_player = ent_create(CUBE_MDL, vector(0, 0, 60), NULL);
c_setminmax(ent_player);
set(ent_player, SHADOW);
// Main loop
while(1)
{
// Morph entity into cube if UP key
if (key_cuu)
{
// Morph entity to cube
ent_morph(ent_player, CUBE_MDL);
// Scale cube
vec_set(ent_player->scale_x, vector(0.5, 0.5, 0.5));
//ent_player->min_x = -5;
//ent_player->max_x = 5;
reset(ent_player, SHADOW);
wait(1);
set(ent_player, SHADOW);
// Wait for key release
while(key_cuu)
{
wait(1);
}
}
// Morph entity to sphere if DOWN key
if (key_cud)
{
ent_morph(ent_player, SPHERE_MDL);
// scale sphere
vec_set(ent_player->scale_x, vector(2, 2, 2));
//ent_player->min_x = -20;
//ent_player->max_x = 20;
reset(ent_player, SHADOW);
wait(1);
set(ent_player, SHADOW);
// Wait for key release
while(key_cud)
{
wait(1);
}
}
DEBUG_VAR(ent_player->min_x, 100);
DEBUG_VAR(ent_player->max_x, 150);
// Wait 1 frame
wait(1);
}
}
/////////////////////////////////////////////////////////////////////////////