/// init unit
{
owner = 1;
moveMax = 12;
moveLeft = irandom(12);
health = 100;
name = 'GravTank';
type = 30; // grav tanks all move the same for now
HX = getHX(x,y); HY = getHY(x,y);
w = 16;
l = 16;
h = .3;
z = 0;
vPosition = vecCreate(x, y, z);
hullFacing = irandom(5) * 60; // 0 to 300 degree
turretFacing = hullFacing + (irandom(4)-2 * 60); // offset +/- 120 degrees
modelHull = d3d_model_create();
modelTurret = d3d_model_create();
modelDisk = d3d_model_create();
tex01 = 0;
tex02 = 0;
d3d_model_load(modelDisk, "disk.d3d");
switch irandom(4)
{
case 0: tex01 = background_get_texture(back_Camo); break;
case 1: tex01 = background_get_texture(back_DarkCamo); break;
case 2: tex01 = background_get_texture(back_DarkHull); break;
case 3: tex01 = background_get_texture(back_Mecha1); break;
case 4: tex01 = background_get_texture(back_Mecha2); break;
}
switch irandom(5)
{
case 0: tex02 = sprite_get_texture(spr_unit_blue,0); owner=1; break;
case 1: tex02 = sprite_get_texture(spr_unit_green,0); owner=1; break;
case 2: tex02 = sprite_get_texture(spr_unit_red,0); owner=1; break;
case 3: tex02 = sprite_get_texture(spr_unit_white,0); owner=1; break;
case 4: tex02 = sprite_get_texture(spr_unit_yellow,0); owner=1; break;
case 5: tex02 = sprite_get_texture(spr_unit_magenta,0); owner=2; break;
}
switch irandom(8)
{
case 0:
d3d_model_load(modelHull, "grav_tank_01_hull.d3d");
d3d_model_load(modelTurret, "grav_tank_01_turret.d3d");
break;
case 1:
d3d_model_load(modelHull, "grav_tank_02_hull.d3d");
d3d_model_load(modelTurret, "grav_tank_02_turret.d3d");
break;
case 2:
d3d_model_load(modelHull, "grav_tank_03_hull.d3d");
d3d_model_load(modelTurret, "grav_tank_03_turret.d3d");
break;
case 3:
d3d_model_load(modelHull, "grav_tank_05_hull.d3d");
d3d_model_load(modelTurret, "grav_tank_05_turret.d3d");
break;
case 4:
d3d_model_load(modelHull, "grav_tank_06_hull.d3d");
d3d_model_load(modelTurret, "grav_tank_06_turret.d3d");
break;
case 5:
d3d_model_load(modelHull, "grav_tank_07_hull.d3d");
d3d_model_load(modelTurret, "grav_tank_07_turret.d3d");
break;
case 6:
d3d_model_load(modelHull, "grav_tank_09_hull.d3d");
d3d_model_load(modelTurret, "grav_tank_09_turret.d3d");
break;
case 7:
d3d_model_load(modelHull, "grav_tank_10_hull.d3d");
d3d_model_load(modelTurret, "grav_tank_10_turret.d3d");
break;
case 8:
d3d_model_load(modelHull, "grav_tank_11_hull.d3d");
d3d_model_load(modelTurret, "grav_tank_11_turret.d3d");
break;
}
}
/////////////////////////////////////////////////////////
// In the draw event of the tank object I have
if room == room_main
{
d3d_start();
d3d_set_perspective(true);
d3d_set_hidden(true);
d3d_set_culling(true);
draw_set_color(c_white);
d3d_set_lighting(true);
d3d_light_enable(0,true);
d3d_transform_set_identity();
d3d_transform_set_rotation_z(hullFacing);
d3d_transform_add_translation(x,y,z);
if( modelHull >= 0 ) d3d_model_draw(modelHull,0,0,0, tex01);
d3d_transform_set_identity();
d3d_transform_set_identity();
d3d_transform_set_rotation_z(hullFacing + turretFacing);
d3d_transform_add_translation(x,y,z);
if(modelTurret >= 0 ) d3d_model_draw(modelTurret,0,0,0, tex01);
d3d_transform_set_identity();
d3d_transform_set_identity();
d3d_transform_add_translation(x,y,z);
if(modelDisk >= 0 ) d3d_model_draw(modelDisk,0,0,0, tex02);
d3d_transform_set_identity();
}