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; }
Meteorites::Meteorites() : Client(), Message(){ SetName("MeteoritesGame"); printf("------------------------------------------------------------------------\n"); printf("Initializing TV-Meteorites, Copyright (C) RealityMakers Entertainment as\n"); printf("------------------------------------------------------------------------\n"); // char *str = new char[strlen(GetCurrentProcess()->GetName())+]; // SetName(); extern Host *host; // AttatchHook = host->CreateHook("Attatch"); // DetatchHook = host->CreateHook("Detatch"); // ShutDownHook = host->CreateHook("ShutDown"); View1 = new View(Rect(0,0,1,1)); View1->SetClearState(false); /* ScoreView = new View(Rect(.8f,0,1,.5f)); ScoreView->SetClearState(false); ScoreView->ConsoleStream::Clear(); ScoreView->Print(" 1: 1261\n 2: 8726\n"); ScoreView->Print(" 3: 8145\n 4: 6923\n"); ScoreView->Print(" 5: 1261\n 6: 8726\n"); ScoreView->Print(" 7: 8145\n 8: 6923\n"); ScoreView->Print(" 9: 1261\n10: 8726\n"); ScoreView->Print("11: 8145\n12: 6923\n"); ScoreView->Print("13: 1261\n14: 8726\n"); ScoreView->Print("15: 8145\n16: 6923\n"); font = new Font("Fonts/Swiss"); ScoreView->ConsoleStream::Apply(font); View1->Apply(ScoreView); */ // View2 = new View(Rect(.8f,0,1,.5f)); View4 = new View(Rect(.75f,0,1,.8f)); // View2->SetClearState(false); // View4->SetClearState(false); // MeteoritesBitmap = new Bitmap("Textures/interface/divider"/*Textures/Title/title"*/,BITMAP_RGB); //Titletv4"); // View *LoadView = new View(Rect(.2f,.2f,1-.2f,1-.2f)); // View4->Apply(MeteoritesBitmap); //View1->Apply(View4); // Initialize scene // Bitmap *DividerBitmap = new Bitmap("Textures/interface/divider"/*Textures/Title/title"*/,BITMAP_RGB); //Titletv4"); Bitmap *ShadowBM = new Bitmap("Textures/Interface/Shipshadow",BITMAP_ARGB); View *Shadow = new View(Rect(.7f,0,1,1)); // View1->Apply(Shadow); ScoreViews = new DynamicArray(); font = new Font("Fonts/Swiss"); for(int n=0; n<4; n++){ // 12.5 x 23.3, 54.2 x 23.3 #define xofs .01f #define yofs .1f #define width (.233f*.8f) #define height (((.125f+.542f)/16.0f)*.8f) #define spacing ((0.1666667f/100.0f)*5.0f) // View *DividerView = new View(Rect(1-width,float(n)*height,1,float(n)*height+height-spacing)); // DividerView->Apply(DividerBitmap); // DividerView->SetClearState(false); // View1->Apply(DividerView); char str[1024]; sprintf(str,"Textures/interface/playernum/no%d",n+1); Bitmap *PlayerNBitmap = new Bitmap(str,BITMAP_RGB); //Titletv4"); View *PlayerNView = new View(Rect(1-width-height+xofs,float(n)*height+yofs,1-width-spacing+xofs,float(n)*height+height-spacing+yofs)); PlayerNView->Apply(PlayerNBitmap); PlayerNView->SetClearState(false); View1->Apply(PlayerNView); float scl = 1-width-height*2.0f+xofs; float sct = float(n)*height+yofs; float scr = 1-width-height+xofs; float scb = float(n)*height+height+yofs; float xs = (scr-scl)*.2f; float ys = (scb-sct)*.2f; scl+=xs; scr-=xs; sct+=ys; scb-=ys; switch(n){ Bitmap *PlaceBitmap; View *PlaceView; case 0: PlaceBitmap = new Bitmap("Textures/interface/first",BITMAP_RGB); //Titletv4"); PlaceView = new View(Rect(scl,sct,scr,scb)); PlaceView->Apply(PlaceBitmap); PlaceView->SetClearState(false); View1->Apply(PlaceView); break; case 1: PlaceBitmap = new Bitmap("Textures/interface/second",BITMAP_RGB); //Titletv4"); PlaceView = new View(Rect(scl,sct,scr,scb)); PlaceView->Apply(PlaceBitmap); PlaceView->SetClearState(false); View1->Apply(PlaceView); break; case 2: PlaceBitmap = new Bitmap("Textures/interface/third",BITMAP_RGB); //Titletv4"); PlaceView = new View(Rect(scl,sct,scr,scb)); PlaceView->Apply(PlaceBitmap); PlaceView->SetClearState(false); View1->Apply(PlaceView); break; } #define fontscale 0 View *v = new View(Rect(1-width+xofs,float(n)*height+fontscale+yofs,1+xofs,float(n)*height+height-spacing-fontscale+yofs)); v->ConsoleStream::Apply(font); v->SetClearState(false); v->Print("0 ..."); /* switch(n){ case 0: v->SetColor(ARGB(1,0,0)); break; case 1: v->SetColor(ARGB(0,0,1)); break; case 2: v->SetColor(ARGB(1,1,0)); break; case 3: v->SetColor(ARGB(0,1,0)); break; case 4: v->SetColor(ARGB(1,.5f,.5f)); break; case 5: v->SetColor(ARGB(0,1,1)); break; case 6: v->SetColor(ARGB(.5f,.5f,.5f)); break; case 7: v->SetColor(ARGB(1,0,0)); break; case 8: v->SetColor(ARGB(1,0,0)); break; case 9: v->SetColor(ARGB(1,0,0)); break; case 10: v->SetColor(ARGB(1,0,0)); break; case 11: v->SetColor(ARGB(1,0,0)); break; case 12: v->SetColor(ARGB(1,0,0)); break; case 13: v->SetColor(ARGB(1,0,0)); break; case 14: v->SetColor(ARGB(1,0,0)); break; case 15: v->SetColor(ARGB(1,0,0)); break; } */ v->SetColor(ARGB(1,1,1)); View1->Apply(v); ScoreViews->Add(v); } // 191,189 // 101 // 85 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)); 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); null = new Geometry(); null->SetPosition(Vector(0,0,1000000)); Back = new Geometry(); Back->Node::Apply(new Background(Back)); Back->SetPosition(Vector(0,0,800000)); Back->Post(); null->Node::Apply(Back); new Planet(null); cam = new Camera(); cam->SetName("Camera"); null->Node::Apply(cam); camAI = new CameraAI(cam); cam->Apply(camAI); View1->Attatch(cam); PlayerGeometries = new DynamicArray(); for(n=0; n<4; n++){ Geometry *Ship = new Geometry(); char name[1024]; sprintf(name,"Player%d",n); Ship->SetName(name); //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,(View*)ScoreViews->GetItem(n))); } // printf("Initializing levels.\n"); //#ifndef _DEBUG InitLevels(2); NextLevel(10); //#endif printf("Done.\n"); printf("------------------------------------------------------------------------\n"); printf(" TV-Meteorites initalized\n"); printf("------------------------------------------------------------------------\n"); Initialized = true; }
ScoreViews::ScoreViews(View *parent){// : Semaphore(){ // Acquire(); msg = new Message(); Views = new DynamicArray(); BitmapBunch = new DynamicArray(); ViewBunch = new DynamicArray(); //font = new Font("Fonts/arial15pt1"); font = new Font("Fonts/swed");//Humnst777_BT_40"); //swiss"); //arial15pt1"); font->SetSize(.035f); players = new Players(); for(int n=0; n<MAX_PLAYERS; n++){ // 12.5 x 23.3, 54.2 x 23.3 connect_log[n] = -1; #define xofs .02f #define yofs .1f #define width (.233f*.65f) #define height (((.125f+.542f)/16.0f)*.65f) #define spacing ((0.1666667f/100.0f)*3.0f) char str[1024]; sprintf(str,"Textures/interface/playernum/no%d",n+1); Bitmap *PlayerNBitmap = new Bitmap(str,Bitmap::cRGB); //Titletv4"); #ifdef _DEBUG BitmapBunch->Add(PlayerNBitmap,__FILE__,__LINE__); #else BitmapBunch->Add(PlayerNBitmap); #endif View *PlayerNView = new View(Rect(1+1-width-height+xofs,1+float(n)*height+yofs,1+1-width-spacing+xofs,1+float(n)*height+height-spacing+yofs)); #ifdef _DEBUG ViewBunch->Add(PlayerNView,__FILE__,__LINE__); #else ViewBunch->Add(PlayerNView); #endif PlayerNView->Apply(PlayerNBitmap); PlayerNView->SetClearState(false); parent->Apply(PlayerNView); float scl = 1-width-height*2.0f+xofs; float sct = float(n)*height+yofs-.005f; float scr = 1-width-height+xofs; float scb = sct+height; // float xs = (scr-scl)*.2f; // float ys = (scb-sct)*.2f; // scl+=xs; // scr-=xs; // sct+=ys; // scb-=ys; /* switch(n){ Bitmap *PlaceBitmap; View *PlaceView; case 0: BitmapBunch->Add(PlaceBitmap = new Bitmap("Textures/interface/first",BITMAP_RGB)); //Titletv4"); ViewBunch->Add(PlaceView = new View(Rect(scl,sct,scr,scb))); PlaceView->Apply(PlaceBitmap); PlaceView->SetClearState(false); parent->Apply(PlaceView); break; case 1: BitmapBunch->Add(PlaceBitmap = new Bitmap("Textures/interface/second",BITMAP_RGB)); //Titletv4"); ViewBunch->Add(PlaceView = new View(Rect(scl,sct,scr,scb))); PlaceView->Apply(PlaceBitmap); PlaceView->SetClearState(false); parent->Apply(PlaceView); break; case 2: BitmapBunch->Add(PlaceBitmap = new Bitmap("Textures/interface/third",BITMAP_RGB)); //Titletv4"); ViewBunch->Add(PlaceView = new View(Rect(scl,sct,scr,scb))); PlaceView->Apply(PlaceBitmap); PlaceView->SetClearState(false); parent->Apply(PlaceView); break; } */ #define fontscale 0 #define yo (-.0105f) View *v = new View(Rect(1+1-width+xofs,1+float(n)*height+fontscale+yofs+yo,1+xofs,1+float(n)*height+height-spacing-fontscale+yofs)); v->/*ConsoleStream::*/Apply(font); v->SetClearState(false); #ifdef _DEBUG ViewBunch->Add(v,__FILE__,__LINE__); #else ViewBunch->Add(v); #endif v->Print(" 0"); v->SetColor(ARGB(.7f,.7f,.7f)); parent->Apply(v); #ifdef _DEBUG Views->Add(v,__FILE__,__LINE__); #else Views->Add(v); #endif View *nv = new View(Rect(1+1-width+xofs,1+float(n)*height+fontscale+yofs+yo,1+xofs,1+float(n)*height+height-spacing-fontscale+yofs)); nv->/*ConsoleStream::*/Apply(font); nv->SetClearState(false); #ifdef _DEBUG ViewBunch->Add(nv,__FILE__,__LINE__); #else ViewBunch->Add(nv); #endif nv->Print("a"); nv->SetColor(ARGB(.7f,.7f,.7f)); parent->Apply(nv); #ifdef _DEBUG Views->Add(nv,__FILE__,__LINE__); #else Views->Add(nv); #endif Player *pl = new Player; pl->num = n; pl->name[0] = '\0'; pl->score = 0; pl->View = v; pl->NameView = nv; pl->numview = PlayerNView; pl->active = false; #ifdef _DEBUG players->Add(pl,__FILE__,__LINE__); #else players->Add(pl); #endif } for(n=0; n<10; n++){ hiscore.score[n]=0; sprintf(hiscore.name[n],"ano"); } // Release(); }