Shock::Shock(class PlayerAI *player, Vector &direction){ mat = new Material("Textures/Shield/Shield",Texture::cARGB); mat->SetMode(MATERIAL_DEST_ADD_SOURCE); Geometry *g = new Geometry(); g->SetName(0,"Shock"); g->Apply(mat); g->Add(Vector(-25000, 25000,0)); g->Add(Vector( 25000, 25000,0)); g->Add(Vector( 25000,-25000,0)); g->Add(Vector(-25000,-25000,0)); g->Add(Vertex(0,0,0)); g->Add(Vertex(1,1,0)); g->Add(Vertex(2,1,1)); g->Add(Vertex(3,0,1)); IndexedPolygon *pol; pol = g->NewIndexedPolygon(); //new IndexedPolygon(g); pol->Add(0); pol->Add(1); pol->Add(2); pol->Add(3); Intelligence::Apply(g); g->Node::Apply(0,this); player->GetCreatorGeometry()->Node::Apply(0,g); SetPosition(Vector(0,0,0)); Quaternion dir = Quaternion(direction.X,-direction.Y,0,0); SetOrientation(Quaternion(dir)); Spawn = -1.0f; }
Planet::Planet(Camera *cam, class Geometry *parent){ camera = cam; mat = new Material("Textures/Backdrops/Planet5",Texture::cARGB); mat->SetMode(MATERIAL_SOURCE_DIFFUSE|MATERIAL_DEST_MULTIPLY_ONE_MINUS_ALPHA); Geometry *g = new Geometry(); g->SetName(0,"Planet"); g->Apply(mat); g->Add(Vector(-6000, 6000,0)); g->Add(Vector( 6000, 6000,0)); g->Add(Vector( 6000,-6000,0)); g->Add(Vector(-6000,-6000,0)); g->Add(Vertex(0,0,0)); g->Add(Vertex(1,1,0)); g->Add(Vertex(2,1,1)); g->Add(Vertex(3,0,1)); IndexedPolygon *pol; pol = /*g->NewIndexedPolygon();*/ new IndexedPolygon(g); pol->Add(0); pol->Add(1); pol->Add(2); pol->Add(3); Intelligence::Apply(g); g->Node::Apply(0,this); parent->Node::Apply(0,g); SetPosition(Vector(0,0,0)); g->SetSquareRadius(0); }
Meteorites::Meteorites() : Client(), Message(){ ViewBunch = new DynamicArray(); BitmapBunch = new DynamicArray(); SetName("MeteoritesGame"); printf("------------------------------------------------------------------------\n"); printf("Initializing TV-Meteorites, Copyright (C) RealityMakers Entertainment as\n"); printf("------------------------------------------------------------------------\n"); View1 = new View(Rect(0,0,1,1)); View1->SetClearState(false); /* Scores = new ScoreViews(View1); */ // 191,189 // 101 // 85 #ifdef TV2 tv2bm = new Bitmap("Textures/tv2/tv2",BITMAP_RGB); tv2v = new View(Rect( 1-.075f*.8f-.01f, .01f, 1-.01f, .1f*.8f+.01f)); tv2bm->SetTranslusency(.5f); tv2v->Apply(tv2bm); tv2v->SetClearState(false); View1->Apply(tv2v); #endif #ifdef SCHIBSTED tv2bm = new Bitmap("Textures/tv2/slogo",BITMAP_RGB); tv2v = new View(Rect( 1-.09f*.8f*1.5f-.01f, .01f, 1-.01f, .1f*.8f+.01f)); tv2bm->SetTranslusency(.5f); tv2v->Apply(tv2bm); tv2v->SetClearState(false); View1->Apply(tv2v); #endif #ifdef JANCO Bitmap *tv2bm = new Bitmap("Textures/tv2/janco",BITMAP_RGB); View *tv2v = new View(Rect( .9f, 0, 1, .1f)); tv2bm->SetTranslusency(.5f); tv2v->Apply(tv2bm); tv2v->SetClearState(false); View1->Apply(tv2v); #endif Info1 = new Bitmap("Textures/Interface/Instructions/Inntasting",BITMAP_RGB); Info2 = new Bitmap("Textures/Interface/Instructions/Kontroll",BITMAP_RGB); Info3 = new Bitmap("Textures/Interface/Instructions/Pickups",BITMAP_RGB); //printf("%d,%d\n",Info1->GetWidth(),Info1->GetHeight()); //printf("%d,%d\n",Info2->GetWidth(),Info2->GetHeight()); //printf("%d,%d\n",Info3->GetWidth(),Info3->GetHeight()); View *InfoView = new View(Rect(.75f,.7f,.95f,.9f)); InfoView->SetClearState(false); View *v1 = new View(Rect(0,0,1,1.3f)); View *v2 = new View(Rect(0,0,1,101.0f/189.0f*1.3f)); View *v3 = new View(Rect(0,0,1,85.0f/189.0f*1.3f)); InfoViews = new DynamicArray(); InfoViews->Add(InfoView); InfoViews->Add(v1); InfoViews->Add(v2); InfoViews->Add(v3); v1->Apply(Info1); v2->Apply(Info2); v3->Apply(Info3); v1->SetClearState(false); v2->SetClearState(false); v3->SetClearState(false); InfoView->Apply(v1); InfoView->Apply(v2); InfoView->Apply(v3); View1->Apply(InfoView); // Info3->SetTranslusency(.8f); #if 1 scene = new Scene(View1); #else Scores = new ScoreViews(View1); null = new Geometry(); null->SetPosition(Vector(0,0,10000)); Back = new Geometry(); Back->Node::Apply(new Background(Back)); Back->SetPosition(Vector(0,0,8000*3)); Back->Post(); null->Node::Apply(Back); new Nebula(null); new Sun(null); // new Planet(null); cam = new Camera(); cam->SetName(String("Camera")); null->Node::Apply(cam); camAI = new CameraAI(cam); cam->Apply(camAI); View1->Attatch(cam); /* // PlayerGeometries = new DynamicArray(); for(int n=0; n<16; n++){ Geometry *Ship = new Geometry(); char name[1024]; sprintf(name,"Player%d",n); Ship->SetName(String(name)); // fixme: Optimize! //Ship->SetPosition(Vector(0,0,-800000)); Ship->Post(); // PlayerGeometries->Add(Ship); //AI_Player1 = new PlayerAI(Ship); null->Node::Apply(Ship); Ship->Node::Apply(new PlayerAI(Ship,Scores,Scores->GetPlayer(n),0)); } */ //#if 0 for(int n=0; n<10; n++){ Geometry *Rock = new Geometry(); Rock->SetName("Rock"); Rock->Add(Vector(-400,-400,0)); Rock->Add(Vector( 400,-400,0)); Rock->Add(Vector( 400, 400,0)); Rock->Add(Vector(-400, 400,0)); Rock->Add(Vertex(0,0,0)); Rock->Add(Vertex(1,1,0)); Rock->Add(Vertex(2,1,1)); Rock->Add(Vertex(3,0,1)); IndexedPolygon *pol = Rock->NewIndexedPolygon(); pol->Add(0); pol->Add(1); pol->Add(2); pol->Add(3); RockAI *AI_Rock = new RockAI(/*this,*/Rock,400.0f); Rock->Node::Apply(AI_Rock); null->Node::Apply(Rock); } //#endif // #if 0 printf("Initializing levels.\n"); //#ifndef _DEBUG InitLevels(2); NextLevel(10); //#endif printf("Done.\n"); #endif #endif printf("------------------------------------------------------------------------\n"); printf(" TV-Meteorites initalized\n"); printf("------------------------------------------------------------------------\n"); Initialized = true; }
Sun::Sun(Camera *cam, class Geometry *parent){ camera = cam; mat1 = new Material("Textures/Lens/Halo",Texture::cRGB); mat1->SetMode(MATERIAL_SOURCE_DIFFUSE|MATERIAL_DEST_ADD_SOURCE); //MATERIAL_DEST_MULTIPLY_ONE_MINUS_ALPHA); mat2 = new Material("Textures/Lens/Sun",Texture::cRGB); mat2->SetMode(MATERIAL_SOURCE_DIFFUSE|MATERIAL_DEST_ADD_SOURCE); //MULTIPLY_ONE_MINUS_ALPHA); //mat1->SetTransparency(.6f); //mat2->SetTransparency(.8f); mat1->SetTransparency(.95f); mat2->SetTransparency(.8f); Geometry *g = new Geometry(); g->SetName(0,"Sun"); g->Apply(mat1); /* g->Add(Vector(-6000/2/3, 6000/2/3,0)); g->Add(Vector( 6000/2/3, 6000/2/3,0)); g->Add(Vector( 6000/2/3,-6000/2/3,0)); g->Add(Vector(-6000/2/3,-6000/2/3,0)); g->Add(Vector(-6000*5/2, 6000*5/2,-10000)); g->Add(Vector( 6000*5/2, 6000*5/2,-10000)); g->Add(Vector( 6000*5/2,-6000*5/2,-10000)); g->Add(Vector(-6000*5/2,-6000*5/2,-10000)); */ g->Add(Vector(-6000*5/2, 6000*5/2,0)); g->Add(Vector( 6000*5/2, 6000*5/2,0)); g->Add(Vector( 6000*5/2,-6000*5/2,0)); g->Add(Vector(-6000*5/2,-6000*5/2,0)); g->Add(Vector(-6000*5/2, 6000*5/2,-10000)); g->Add(Vector( 6000*5/2, 6000*5/2,-10000)); g->Add(Vector( 6000*5/2,-6000*5/2,-10000)); g->Add(Vector(-6000*5/2,-6000*5/2,-10000)); g->Add(Vertex(0,0,0)); g->Add(Vertex(1,1,0)); g->Add(Vertex(2,1,1)); g->Add(Vertex(3,0,1)); g->Add(Vertex(4,0,0)); g->Add(Vertex(5,1,0)); g->Add(Vertex(6,1,1)); g->Add(Vertex(7,0,1)); IndexedPolygon *pol; pol = new IndexedPolygon(g); //new IndexedPolygon(g); pol->Add(0); pol->Add(1); pol->Add(2); pol->Add(3); //pol->Apply(mat1); /* pol = new IndexedPolygon(g); //new IndexedPolygon(g); pol->Apply(mat2); pol->Add(4); pol->Add(5); pol->Add(6); pol->Add(7);*/ Intelligence::Apply(g); g->Node::Apply(0,this); parent->Node::Apply(0,g); SetPosition(Vector(0,0,50000)); g->SetSquareRadius(0); }