Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define GL_GLEXT_PROTOTYPES
- #define GLEW_STATIC
- #include <iostream>
- #include <algorithm>
- #include <math.h>
- #include <stdlib.h>
- #include <time.h>
- #include <string>
- #include <vector>
- #include <fstream>
- #include <sstream>
- #include <GL/glew.h>
- #include "SDL.h"
- #include "SDL_image.h"
- //#include <GL/glext.h>
- #include "SDL_opengl.h"
- #include "globals.h"
- #include "Object.h"
- #include <typeinfo>
- struct comp_by_zpos
- {
- bool operator() (const objcopy lhs, const objcopy rhs) { return lhs.posz < rhs.posz; }
- };
- int main( int argc, char* args[] )
- {
- //Start SDL
- SDL_Init( SDL_INIT_EVERYTHING );
- //SDL_Surface *MainSurf = NULL; //SDL 1.2
- SDL_Event event;
- A_UP=false; A_DOWN=false; A_LEFT=false; A_RIGHT=false; A_ATTACK=false; A_JUMP=false; A_DEFEND=false; A_SPECIAL=false;
- SDL_Window *MainSurf = SDL_CreateWindow(CAPT, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SFWIDTH, SFHEIGHT, SDL_WINDOW_OPENGL);
- //ini OPENGL
- SDL_GL_CreateContext(MainSurf);
- glMatrixMode( GL_PROJECTION);
- glLoadIdentity();
- glClearColor( 0.f, 0.f, 0.f, 1.f);
- glEnable( GL_TEXTURE_2D );
- glViewport(0, 0, SFWIDTH, SFHEIGHT);
- glOrtho(0.0f, SFWIDTH, SFHEIGHT, 0.0f, -1.0f, 1.0f);
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glEnable( GL_BLEND ); glDisable( GL_DEPTH_TEST ); glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
- //SDL_SetWindowFullscreen(MainSurf, (255, 255, 255));
- //SDL_SetWindowFullscreen(MainSurf, (255, 255, 255));
- LOAD LOADED(LOADTXTDIR, LOADTOKEN);
- LOADED.LoadOBJ();
- background A_Field(570, 180, 30, 964, "punkhazard1.bmp", "shadow.bmp");
- //background A_Field(445, 310, 30, 964, "sand.bmp", "shadow.bmp");
- //SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); // make the scaled rendering look smoother.
- //SDL_RenderSetLogicalSize(MainRend, SFWIDTH, SFHEIGHT);
- //MainSurf = SDL_SetVideoMode( SFWIDTH, SFHEIGHT, 24, SDL_HWSURFACE|SDL_DOUBLEBUF); //SDL 1.2
- //SDL_WM_SetCaption( CAPT, NULL ); //SDL 1.2
- SDL_Surface *upperscreen= SDL_LoadBMP("sys\\bar.BMP");
- //SDL_Rect barspos[8]={{0,0,0,0},{240,0,0,0}, {480,0,0,0},{720,0,0,0},{0,60,0,0},{240,60,0,0},{480,60,0,0},{720,60,0,0}};
- const Uint8 *keystates = SDL_GetKeyboardState(NULL);
- int countahframe = SDL_GetTicks();
- while (RUNNING == true){
- //for (int i=0;i<8;i++) SDL_BlitSurface (upperscreen, NULL, MainSurf, &barspos[i]);
- A_Field.Blit();
- for (int x=0;x < LOADED.ON_SCREEN_OBJCOUNT;x++){
- //SDL_PumpEvents();
- //Check control states
- A_RIGHT = keystates[ SDL_SCANCODE_RIGHT ];
- A_LEFT = keystates[ SDL_SCANCODE_LEFT ];
- A_UP = keystates[ SDL_SCANCODE_UP ];
- A_DOWN = keystates[ SDL_SCANCODE_DOWN ];
- A_ATTACK = keystates[ SDL_SCANCODE_C ];
- A_DEFEND = keystates[ SDL_SCANCODE_X ];
- A_JUMP = keystates[ SDL_SCANCODE_Z ];
- A_SPECIAL = keystates[ SDL_SCANCODE_V ];
- if (keystates[ SDL_SCANCODE_F1 ]) {PAUSE=!PAUSE;Sleep(90);}
- //end;
- if (A_UP && !LOADED.ON_SCREEN_OBJS[x]->iscom){
- if (LOADED.ON_SCREEN_OBJS[x]->P_UP_C) LOADED.ON_SCREEN_OBJS[x]->P_UP_C=false;
- if (LOADED.ON_SCREEN_OBJS[x]->Tu) {LOADED.ON_SCREEN_OBJS[x]->P_UP_C=true; LOADED.ON_SCREEN_OBJS[x]->Tu=false;}
- LOADED.ON_SCREEN_OBJS[x]->P_UP= true; LOADED.ON_SCREEN_OBJS[x]->P_DOWN= false;LOADED.ON_SCREEN_OBJS[x]->DASHL=0;LOADED.ON_SCREEN_OBJS[x]->DASHR=0;
- }else{
- LOADED.ON_SCREEN_OBJS[x]->Tu=true;
- LOADED.ON_SCREEN_OBJS[x]->P_UP= false;
- }
- if (A_DOWN && !LOADED.ON_SCREEN_OBJS[x]->iscom ){
- if (LOADED.ON_SCREEN_OBJS[x]->P_DOWN_C) LOADED.ON_SCREEN_OBJS[x]->P_DOWN_C=false;
- if (LOADED.ON_SCREEN_OBJS[x]->Td) {LOADED.ON_SCREEN_OBJS[x]->P_DOWN_C=true; LOADED.ON_SCREEN_OBJS[x]->Td=false;}
- LOADED.ON_SCREEN_OBJS[x]->P_DOWN= true; LOADED.ON_SCREEN_OBJS[x]->P_UP=false;LOADED.ON_SCREEN_OBJS[x]->DASHL=0;LOADED.ON_SCREEN_OBJS[x]->DASHR=0;
- }else{
- LOADED.ON_SCREEN_OBJS[x]->Td=true;
- LOADED.ON_SCREEN_OBJS[x]->P_DOWN= false;
- }
- if (A_LEFT && !LOADED.ON_SCREEN_OBJS[x]->iscom ){
- if (LOADED.ON_SCREEN_OBJS[x]->P_LEFT_C) LOADED.ON_SCREEN_OBJS[x]->P_LEFT_C=false;
- if (LOADED.ON_SCREEN_OBJS[x]->Tl) {LOADED.ON_SCREEN_OBJS[x]->P_LEFT_C=true; LOADED.ON_SCREEN_OBJS[x]->Tl=false;}
- LOADED.ON_SCREEN_OBJS[x]->P_LEFT= true; LOADED.ON_SCREEN_OBJS[x]->P_RIGHT=false;LOADED.ON_SCREEN_OBJS[x]->DshClksIntrvlL=SDL_GetTicks();LOADED.ON_SCREEN_OBJS[x]->DshClksIntrvlR=0;LOADED.ON_SCREEN_OBJS[x]->DASHR=0;
- }else if (!A_LEFT && LOADED.ON_SCREEN_OBJS[x]->P_LEFT){
- LOADED.ON_SCREEN_OBJS[x]->Tl=true;
- LOADED.ON_SCREEN_OBJS[x]->P_LEFT= false;
- if (!LOADED.ON_SCREEN_OBJS[x]->P_LEFT)if (SDL_GetTicks()-LOADED.ON_SCREEN_OBJS[x]->DshClksIntrvlL<110)LOADED.ON_SCREEN_OBJS[x]->DASHL=1;LOADED.ON_SCREEN_OBJS[x]->DASHR=0;
- }
- if (A_RIGHT && !LOADED.ON_SCREEN_OBJS[x]->iscom ){
- if (LOADED.ON_SCREEN_OBJS[x]->P_RIGHT_C) LOADED.ON_SCREEN_OBJS[x]->P_RIGHT_C=false;
- if (LOADED.ON_SCREEN_OBJS[x]->Tr) {LOADED.ON_SCREEN_OBJS[x]->P_RIGHT_C=true; LOADED.ON_SCREEN_OBJS[x]->Tr=false;}
- LOADED.ON_SCREEN_OBJS[x]->P_RIGHT=true; LOADED.ON_SCREEN_OBJS[x]->P_LEFT=false;LOADED.ON_SCREEN_OBJS[x]->DshClksIntrvlR=SDL_GetTicks();LOADED.ON_SCREEN_OBJS[x]->DshClksIntrvlL=0;LOADED.ON_SCREEN_OBJS[x]->DASHL=0;
- }else if (!A_RIGHT && LOADED.ON_SCREEN_OBJS[x]->P_RIGHT){
- LOADED.ON_SCREEN_OBJS[x]->Tr=true;
- LOADED.ON_SCREEN_OBJS[x]->P_RIGHT=false;
- if(!LOADED.ON_SCREEN_OBJS[x]->P_RIGHT)if (SDL_GetTicks()-LOADED.ON_SCREEN_OBJS[x]->DshClksIntrvlR<110)LOADED.ON_SCREEN_OBJS[x]->DASHR=1;LOADED.ON_SCREEN_OBJS[x]->DASHL=0;
- }
- if ( A_ATTACK && !LOADED.ON_SCREEN_OBJS[x]->iscom ){
- if (LOADED.ON_SCREEN_OBJS[x]->P_ATTACK_C) LOADED.ON_SCREEN_OBJS[x]->P_ATTACK_C=false;
- if (LOADED.ON_SCREEN_OBJS[x]->TA) {LOADED.ON_SCREEN_OBJS[x]->P_ATTACK_C=true; LOADED.ON_SCREEN_OBJS[x]->TA=false;}
- LOADED.ON_SCREEN_OBJS[x]->P_ATTACK=true;
- }else{
- LOADED.ON_SCREEN_OBJS[x]->TA=true;
- LOADED.ON_SCREEN_OBJS[x]->P_ATTACK=false;
- }
- if (A_DEFEND && !LOADED.ON_SCREEN_OBJS[x]->iscom ){
- if (LOADED.ON_SCREEN_OBJS[x]->P_DEFEND_C) LOADED.ON_SCREEN_OBJS[x]->P_DEFEND_C=false;
- if (LOADED.ON_SCREEN_OBJS[x]->TD) {LOADED.ON_SCREEN_OBJS[x]->P_DEFEND_C=true; LOADED.ON_SCREEN_OBJS[x]->TD=false;}
- LOADED.ON_SCREEN_OBJS[x]->P_DEFEND=true;
- }else{
- LOADED.ON_SCREEN_OBJS[x]->TD=true;
- LOADED.ON_SCREEN_OBJS[x]->P_DEFEND=false;
- }
- if ( A_JUMP && !LOADED.ON_SCREEN_OBJS[x]->iscom ){
- if (LOADED.ON_SCREEN_OBJS[x]->P_JUMP_C) LOADED.ON_SCREEN_OBJS[x]->P_JUMP_C=false;
- if (LOADED.ON_SCREEN_OBJS[x]->TJ) {LOADED.ON_SCREEN_OBJS[x]->P_JUMP_C=true; LOADED.ON_SCREEN_OBJS[x]->TJ=false;}
- LOADED.ON_SCREEN_OBJS[x]->P_JUMP=true;
- }else{
- LOADED.ON_SCREEN_OBJS[x]->TJ=true;
- LOADED.ON_SCREEN_OBJS[x]->P_JUMP=false;
- }
- if ( A_SPECIAL && !LOADED.ON_SCREEN_OBJS[x]->iscom ){
- if (LOADED.ON_SCREEN_OBJS[x]->P_SPECIAL_C) LOADED.ON_SCREEN_OBJS[x]->P_SPECIAL_C=false;
- if (LOADED.ON_SCREEN_OBJS[x]->TS) {LOADED.ON_SCREEN_OBJS[x]->P_SPECIAL_C=true; LOADED.ON_SCREEN_OBJS[x]->TS=false;}
- LOADED.ON_SCREEN_OBJS[x]->P_SPECIAL=true;
- }else{
- LOADED.ON_SCREEN_OBJS[x]->TS=true;
- LOADED.ON_SCREEN_OBJS[x]->P_SPECIAL=false;
- }
- if( SDL_PollEvent(&event)){
- if (event.type == SDL_QUIT){
- RUNNING = false;
- }
- }
- if (LOADED.ON_SCREEN_OBJS[x]->deleteobj==false){
- if (!PAUSE)
- LOADED.OBJECTS[LOADED.ON_SCREEN_OBJS[x]->id].Update(A_Field, &LOADED, LOADED.ON_SCREEN_OBJS[x]);
- LOADED.OBJECTS[LOADED.ON_SCREEN_OBJS[x]->id].BlitShadow(A_Field, LOADED.ON_SCREEN_OBJS[x]);
- }
- }
- if ( (SDL_GetTicks()-countahframe) < (1000/FPS) )
- {SDL_Delay((1000/FPS) - (SDL_GetTicks()-countahframe));SDL_SetWindowTitle(MainSurf, (stringify(1000/(SDL_GetTicks()-countahframe)).c_str()));}
- else{
- SDL_SetWindowTitle(MainSurf, (stringify(1000/(SDL_GetTicks()-countahframe)).c_str()));
- }
- countahframe = SDL_GetTicks();
- //
- for (int a=LOADED.ON_SCREEN_OBJCOUNT-1; a >=0; a--){
- if (LOADED.ON_SCREEN_REAL_OBJS[a].deleteobj==true && LOADED.ON_SCREEN_REAL_OBJS[a].deleted==false){
- LOADED.DELETED_OBJS[LOADED.D_O_INDEX++]=a; LOADED.ON_SCREEN_REAL_OBJS[a].deleted=true;
- }
- }
- for (int a=0; a <= SFHEIGHT; a++){
- for (int b=0; b<LOADED.ON_SCREEN_OBJCOUNT;b++){
- if ( LOADED.ON_SCREEN_OBJS[b]->posz == a && LOADED.ON_SCREEN_OBJS[b]->deleteobj==false) LOADED.OBJECTS[LOADED.ON_SCREEN_OBJS[b]->id].Blit(A_Field, LOADED.ON_SCREEN_OBJS[b], &LOADED);
- }
- }
- //SDL_SetRenderDrawColor(MainRend, 0, 255, 0, 55);
- //SDL_RenderPresent(MainRend);
- //SDL_RenderClear(MainRend);
- SDL_GL_SwapWindow(MainSurf);
- //
- //SDL_Flip( MainSurf ); //SDL 1.2
- //SDL_FillRect( MainSurf, NULL, SDL_MapRGB( MainSurf->format, 0x00, 0x00, 0x00 ) ); //SDL 1.2
- //std::sort(*(LOADED.ON_SCREEN_OBJS).begin(), *(LOADED.ON_SCREEN_OBJS).begin()+LOADED.ON_SCREEN_OBJCOUNT, comp_by_zpos());
- }
- SDL_Quit();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement