Esempio n. 1
0
Box::Box(Vec3 pos, Vec3 length) {
	DEBUG_LOG("Constructor called")
	corners[0].set(0.0,0.0,0.0);
	corners[1].set(0.0,0.0,0.0);
	corners[2].set(0.0,0.0,0.0);
	corners[3].set(0.0,0.0,0.0);
	createbox(pos,length);
};
Esempio n. 2
0
Box::Box() {
	DEBUG_LOG("Constructor called")
	corners[0].set(0.0,0.0,0.0);
	corners[1].set(0.0,0.0,0.0);
	corners[2].set(0.0,0.0,0.0);
	corners[3].set(0.0,0.0,0.0);
	createbox(Vec3(100.0, 100.0, 0.0), Vec3(150.0, 100.0, 0.0));
};
Esempio n. 3
0
void setuplevel(void)
  {
  int count,count2;
  int numofobjectstemp;
  float vec[3];

  for (count=0;count<256;count++)
  for (count2=0;count2<256;count2++)
    level.gridmod[count][count2]=0;

  setuplevellines(1,1,254,254);

  numofparticles=0;
  numofbonds=0;
  numofobjects=0;
  numofropes=0;
  physicstemp.numofbonds=0;
  numofsprites=0;
  numofbosses=0;

  for (count=0;count<level.numofobjects;count++)
    if (level.object[count].type>=20 && level.object[count].type<40)
      {
      if (animation[level.object[count].type-20].loaded==0)
        animation[level.object[count].type-20].loaded=2;
      if (level.object[count].type-20==7)
        if (animation[2].loaded==0)
          animation[2].loaded=2;
      if (level.object[count].type-20==13)
        if (animation[8].loaded==0)
          animation[8].loaded=2;
      if (level.object[count].type-20==12)
        if (animation[11].loaded==0)
          animation[11].loaded=2;
      }
  loadanimations();

  for (count=0;count<level.numofobjects;count++)
    {
    numofobjectstemp=numofobjects;

    if (level.object[count].type==1)
      {
      createtarboy(level.object[count].position);
      object[numofobjects-1].texturenum=1;
      }
    if (level.object[count].type==2)
      createbox(level.object[count].position,level.object[count].size[0],level.object[count].size[1],level.object[count].mass,level.object[count].friction);
    if (level.object[count].type==3)
      {
      createbox(level.object[count].position,level.object[count].size[0],level.object[count].size[1],level.object[count].mass,level.object[count].friction);
      createparticle(2,level.object[count].position,NULL,10000.0f,-1,10000);
      createbond(numofparticles-5,numofparticles-1,1,-1);
      createbond(numofparticles-4,numofparticles-1,1,-1);
      createbond(numofparticles-3,numofparticles-1,1,-1);
      createbond(numofparticles-2,numofparticles-1,1,-1);
      }
    if (level.object[count].type==4)
      {
      if (level.gametype!=16)
        {
        createbox(level.object[count].position,level.object[count].size[0],level.object[count].size[1],level.object[count].mass,level.object[count].friction);
        vec[0]=level.object[count].position[0]-(level.object[count].size[0]-1.0f)*0.5f;
        vec[1]=level.object[count].position[1]-(level.object[count].size[1]-1.0f)*0.5f;
        vec[2]=0.0f;
        createparticle(2,vec,NULL,10000.0f,-1,10000);
        createbond(numofparticles-5,numofparticles-1,1,-1);
        createbond(numofparticles-4,numofparticles-1,1,-1);
        createbond(numofparticles-3,numofparticles-1,1,-1);
        createbond(numofparticles-2,numofparticles-1,1,-1);
        }
      else
        createcar(level.object[count].position,level.object[count].size[0],level.object[count].size[1],level.object[count].mass,level.object[count].friction);
      }
    if (level.object[count].type==5)
      {
      createbox(level.object[count].position,level.object[count].size[0],level.object[count].size[1],level.object[count].mass,level.object[count].friction);
      vec[0]=level.object[count].position[0]+(level.object[count].size[0]-1.0f)*0.5f;
      vec[1]=level.object[count].position[1]+(level.object[count].size[1]-1.0f)*0.5f;
      vec[2]=0.0f;
      createparticle(2,vec,NULL,10000.0f,-1,10000);
      createbond(numofparticles-5,numofparticles-1,1,-1);
      createbond(numofparticles-4,numofparticles-1,1,-1);
      createbond(numofparticles-3,numofparticles-1,1,-1);
      createbond(numofparticles-2,numofparticles-1,1,-1);
      }
    if (level.object[count].type==6)
      {
      createwheel(level.object[count].position,level.object[count].size[0],level.object[count].size[1],level.object[count].mass,level.object[count].friction,0);
      }
    if (level.object[count].type==7)
      {
      createwheel(level.object[count].position,level.object[count].size[0],level.object[count].size[1],level.object[count].mass,level.object[count].friction,1);
      //createparticle(2,level.object[count].position,NULL,10000.0f,-1,10000);
      //for (count2=0;count2<16;count2++)
      //  createbond(numofparticles-17+count2,numofparticles-1,1,-1);
      }
    if (level.object[count].type==8)
      createanchor(level.object[count].position);
    if (level.object[count].type==9)
      createbutton(level.object[count].position,level.object[count].mass);
    if (level.object[count].type==10)
      {
      createbutton(level.object[count].position,level.object[count].mass);
      object[numofobjects-1].idata[1]=1;
      }
    if (level.object[count].type==11)
      createswitch(level.object[count].position,level.object[count].mass,0);
    if (level.object[count].type==12)
      createswitch(level.object[count].position,level.object[count].mass,1);
    if (level.object[count].type==13)
      createswitch(level.object[count].position,level.object[count].mass,2);
    if (level.object[count].type==14)
      createswitch(level.object[count].position,level.object[count].mass,3);
    if (level.object[count].type==15)
      createareaswitch(level.object[count].position,level.object[count].size[0],level.object[count].size[1]);
    if (level.object[count].type==16)
      {
      createareaswitch(level.object[count].position,level.object[count].size[0],level.object[count].size[1]);
      object[numofobjects-1].idata[1]=1;
      }
    if (level.object[count].type==18)
      {
      createareaswitch(level.object[count].position,level.object[count].size[0],level.object[count].size[1]);
      object[numofobjects-1].idata[1]=2;
      }
    if (level.object[count].type==17)
      creategenerator(level.object[count].position,level.object[count].mass);

    if (level.object[count].type==20)
      createbeast(0,level.object[count].position,1.0f,1.0f,1.0f,0.2f);
    if (level.object[count].type==21)
      createbeast(1,level.object[count].position,1.0f,1.0f,1.0f,0.2f);
    if (level.object[count].type==22)
      createbeast(2,level.object[count].position,1.0f,1.0f,1.0f,0.2f);
    if (level.object[count].type==23)
      createbeast(3,level.object[count].position,1.5f,1.1f,8.0f,0.2f);
    if (level.object[count].type==24)
      createbeast(4,level.object[count].position,1.5f,1.1f,8.0f,0.2f);
    if (level.object[count].type==25)
      createbeast(5,level.object[count].position,1.5f,1.1f,8.0f,0.2f);
    if (level.object[count].type==26)
      createbeast(6,level.object[count].position,1.5f,1.1f,8.0f,0.2f);
    if (level.object[count].type==27)
      createbeast(7,level.object[count].position,3.0f,3.0f,20.0f,0.2f);
    if (level.object[count].type==28)
      createbeast(8,level.object[count].position,1.0f,1.0f,1.0f,0.2f);
    if (level.object[count].type==29)
      createbeast(9,level.object[count].position,1.5f,1.1f,8.0f,0.2f);
    if (level.object[count].type==30)
      createbeast(10,level.object[count].position,1.5f,1.1f,8.0f,0.2f);
    if (level.object[count].type==31)
      createbeast(11,level.object[count].position,1.0f,1.0f,1.0f,0.2f);
    if (level.object[count].type==32)
      createbeast(12,level.object[count].position,2.0f,0.85f,3.0f,0.2f);
    if (level.object[count].type==33)
      createbeast(13,level.object[count].position,3.0f,3.0f,20.0f,0.2f);
    if (level.object[count].type==34)
      createboss(14,level.object[count].position);
    if (level.object[count].type==35)
      createbeast(15,level.object[count].position,2.0f,2.0f,8.0f,0.2f);
    if (level.object[count].type==36)
      createbeast(16,level.object[count].position,1.0f,1.0f,1.0f,0.2f);

    if (numofobjects!=numofobjectstemp)
      {
      if (level.object[count].type>1 && level.object[count].type<20)
        object[numofobjects-1].texturenum=level.object[count].texturenum;
      object[numofobjects-1].link=level.object[count].link;
      object[numofobjects-1].lighttype=level.object[count].lighttype;
      if (level.object[count].lighttype==1 || level.object[count].lighttype==3)
        object[numofobjects-1].lighton=1;
      if (level.object[count].lighttype==2)
        object[numofobjects-1].lighton=0;
  
      object[numofobjects-1].size[0]=level.object[count].size[0];
      object[numofobjects-1].size[1]=level.object[count].size[1];
  
      object[numofobjects-1].lightcolor[0]=level.object[count].lightcolor[0];
      object[numofobjects-1].lightcolor[1]=level.object[count].lightcolor[1];
      object[numofobjects-1].lightcolor[2]=level.object[count].lightcolor[2];
      object[numofobjects-1].lightintensity=level.object[count].lightintensity;
      object[numofobjects-1].lightintensitymax=level.object[count].lightintensity;
      }
    }

  for (count=0;count<level.numofobjects;count++)
    {
    if ((level.object[count].type>=23 && level.object[count].type<=26) || level.object[count].type==29 || level.object[count].type==30)
      {
      vec[0]=level.object[count].position[0];
      vec[1]=level.object[count].position[1]+1.4f;//+1.42f;
      vec[2]=0.0f;
      createhead(vec,2.0f,1.6f,2.0f,0.5f);

      object[count].link=numofobjects-1;

      //createbond(object[numofobjects-1].particle[0],object[count].particle[0],6,count);
      createbond(object[numofobjects-1].particle[2],object[count].particle[0],6,count);
      createbond(object[numofobjects-1].particle[4],object[count].particle[0],6,count);
      createbond(object[numofobjects-1].particle[0],object[count].particle[1],6,count);
      createbond(object[numofobjects-1].particle[2],object[count].particle[1],6,count);
      //createbond(object[numofobjects-1].particle[4],object[count].particle[1],6,count);
      }
    }

  for (count=0;count<level.numofropes;count++)
    {
    createrope(level.rope[count].type,object[level.rope[count].obj1].particle[level.rope[count].obj1part],object[level.rope[count].obj2].particle[level.rope[count].obj2part],level.rope[count].obj1,level.rope[count].obj2,level.rope[count].texturenum);
    }
  }