Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SFML/Graphics.hpp>
- #include <SFML/Window.hpp>
- #include <iostream>
- #include <string>
- #include <stdio.h>
- #include <fstream>
- #include <sstream>
- #include <assert.h>
- #include <vector>
- #include <glm/glm.h>
- #include <glm/Texture.h>
- #include <Box2D/Box2D.h>
- #include <Bullet/src/btBulletCollisionCommon.h>
- #include <Bullet/src/btBulletDynamicsCommon.h>
- #include <Bullet/src/Serialize/BulletWorldImporter/btBulletWorldImporter.h>
- #include "Item.hpp"
- #include "Player.hpp"
- using namespace std;
- ///GLOBAL VARIABLES
- sf::Sprite SpriteList[40];
- sf::Image iSpriteList[40];
- sf::Image sfTexture[2];
- GLMmodel* ModelList[2];
- GLuint _texture[2];
- vector<Item*> DefItemList;
- Player *pPlayer=new Player();
- sf::Font MainFont;
- sf::RenderWindow GameWind(sf::VideoMode(800,600,32),"Carperon Game Window",sf::Style::Titlebar);
- sf::View GameView(sf::FloatRect(0,0,25,18.75));//65x45 and 8x 0,0,65,45
- sf::String TextStat[10];
- ///PROTOTYPE FUNCTIONS
- void SFMLcreate();
- void SFMLdraw();
- void GLMcreate();
- void GLdraw();
- GLuint LoadTexture(sf::Image image);
- void GLiniti();
- void ITEMdefault();
- void CreateTexture();
- btDynamicsWorld *CreateDynamoWorld();
- btRigidBody *GroundBodyCreate();
- btRigidBody *LivingBodyCreate();
- ///BULLET STUFF
- btDynamicsWorld *PhysicsWorld = CreateDynamoWorld();
- btRigidBody *LiveBody = LivingBodyCreate();
- btRigidBody *WorldBody = GroundBodyCreate();
- btScalar MassB = 1;
- btVector3 FallInertiaB(0,0,0);
- btStridingMeshInterface *MeshInter;
- ///BULLET STUFF
- ///////////////////////////////////STOP PROTOTYPES//////////////////////////////
- //////////////////////////////////FUNCTIONS//////////////////////////////////
- int main()
- {
- GLiniti();
- SFMLcreate();
- GLMcreate();
- ITEMdefault();
- sf::Event EventMain;
- sf::Image isbItem[45],iseItem[6],playertext;
- sf::Sprite sbItem[45],seItem[6];
- signed int BagSlotX[24] {0,30,60,90,120,150,0,30,60,90,120,150,0,30,60,90,120,150,0,30,60,90,120,150};
- signed int BagSlotY[24] {0,0,0,0,0,0,30,30,30,30,30,30,60,60,60,60,60,60,90,90,90,90,90,90};
- signed int EquipSlotX[6] {0,30,60,90,120,150};
- bool BagUpdate = true;
- int click = 0;
- ///MAIN PLAYER
- pPlayer->PlayerCreate("Molma");
- pPlayer->EquipFill(DefItemList[0]);
- pPlayer->AddItem(DefItemList[1]);
- pPlayer->AddItem(DefItemList[2]);
- pPlayer->AddItem(DefItemList[3]);
- pPlayer->AddItem(DefItemList[4]);
- pPlayer->AddItem(DefItemList[5]);
- pPlayer->AddItem(DefItemList[6]);
- pPlayer->AddItem(DefItemList[7]);
- pPlayer->AddItem(DefItemList[8]);
- pPlayer->AddItem(DefItemList[9]);
- pPlayer->AddItem(DefItemList[10]);
- pPlayer->AddItem(DefItemList[11]);
- pPlayer->AddItem(DefItemList[12]);
- pPlayer->AddItem(DefItemList[13]);
- pPlayer->AddItem(DefItemList[14]);
- pPlayer->AddItem(DefItemList[15]);
- pPlayer->AddItem(DefItemList[16]);
- pPlayer->AddItem(DefItemList[17]);
- pPlayer->AddItem(DefItemList[18]);
- pPlayer->AddItem(DefItemList[19]);
- pPlayer->AddItem(DefItemList[20]);
- pPlayer->AddItem(DefItemList[21]);
- pPlayer->AddItem(DefItemList[5]);
- pPlayer->AddItem(DefItemList[15]);
- pPlayer->AddItem(DefItemList[20]);
- ///BULLET
- btBulletWorldImporter *fileLoader = new btBulletWorldImporter(PhysicsWorld);
- if(!fileLoader->loadFile("CarperonColv1.bullet"))
- {
- cout << "Load Failed!!" << endl;
- }
- //PhysicsWorld->setGravity(btVector3(0,-30,0));
- //PhysicsWorld->addRigidBody(WorldBody);
- //PhysicsWorld->addRigidBody(fileLoader->getRigidBodyByName("World"));
- LiveBody->getCollisionShape()->calculateLocalInertia(MassB,FallInertiaB);
- PhysicsWorld->addRigidBody(LiveBody);
- LiveBody->translate(btVector3(0,50,0));
- //cout << "Rigid Bodies: " << fileLoader->getNumRigidBodies() << endl;
- cout << "Rigid Bodies: " << PhysicsWorld->getNumCollisionObjects() << endl;
- GLdouble pos3D_x, pos3D_y, pos3D_z;// arrays to hold matrix information
- GLdouble model_view[16];
- glGetDoublev(GL_MODELVIEW_MATRIX, model_view);
- GLdouble projection[16];
- glGetDoublev(GL_PROJECTION_MATRIX, projection);
- GLint viewport[4];
- glGetIntegerv(GL_VIEWPORT, viewport); // get 3D coordinates based on window coordinates
- gluUnProject(800/2, 600/2, 0.01, model_view, projection, viewport, &pos3D_x, &pos3D_y, &pos3D_z);
- cout << "Vindices test: " << ModelList[0]->vertices[0,0] << endl;
- cout << ModelList[0]->numvertices << endl;
- ///BULLET
- while(GameWind.IsOpened())
- {
- while(GameWind.GetEvent(EventMain))
- {
- //If its closed
- if(EventMain.Type==sf::Event::Closed)
- {
- //Close the whole thing!
- //GameWind.Close();
- GameWind.Close();
- }
- }
- float MouseX = (GameWind.GetInput().GetMouseX()/32.f);
- float MouseY = (GameWind.GetInput().GetMouseY()/32.f);
- if(GameWind.GetInput().IsKeyDown(sf::Key::Escape))
- {
- GameWind.Close();
- //GameWind.Close();
- }
- /////////////////////////////BEGIN INPUT/////////////////////////////////////////////////
- if(GameWind.GetInput().IsKeyDown(sf::Key::Return))
- {
- pPlayer->RandHealth();
- pPlayer->UpdateImage();
- BagUpdate = true;
- }
- if(GameWind.GetInput().IsKeyDown(sf::Key::Z))
- {
- pPlayer->GetHit();
- }
- if(GameWind.GetInput().IsMouseButtonDown(sf::Mouse::Right)&&click<=0)
- {
- for(int a=0;a<pPlayer->Bag.size();++a)
- {
- if(MouseX>((5.f+(BagSlotX[a]))/32.f)&&MouseX<(((35.f+(BagSlotX[a]))/32.f))&&MouseY>((475.f+(BagSlotY[a]))/32.f)&&MouseY<(((505.f+(BagSlotY[a]))/32.f)))
- {
- pPlayer->ItemUse(pPlayer->Bag[a],a);
- BagUpdate = true;
- click=20;
- //cout << "Item used!" << endl;
- }
- }
- for(int b=0;b<6;++b)
- {
- if(MouseX>((5.f+(EquipSlotX[b]))/32.f)&&MouseX<((35.f+(EquipSlotX[b]))/32.f)&&MouseY>(445.f/32.f)&&MouseY<(475.f/32.f)&&pPlayer->EqSpot[b]->get_Type()!="Blank Spot")
- {
- pPlayer->Unequip(pPlayer->EqSpot[b],DefItemList[0],b);
- BagUpdate = true;
- click=20;
- }
- }
- }
- if(GameWind.GetInput().IsKeyDown(sf::Key::Down))
- {
- pPlayer->Move(0);
- //glTranslatef((pPlayer->get_posX()),(pPlayer->get_posY())-3.f,(pPlayer->get_posZ())-10.f);
- }
- if(GameWind.GetInput().IsKeyDown(sf::Key::Right))
- {
- pPlayer->Move(3);
- //glTranslatef((pPlayer->get_posX()),(pPlayer->get_posY())-3.f,(pPlayer->get_posZ())-10.f);
- }
- if(GameWind.GetInput().IsKeyDown(sf::Key::Up))
- {
- pPlayer->Move(2);
- //glTranslatef((pPlayer->get_posX()),(pPlayer->get_posY())-3.f,(pPlayer->get_posZ())-10.f);
- }
- if(GameWind.GetInput().IsKeyDown(sf::Key::Left))
- {
- pPlayer->Move(1);
- //glTranslatef((pPlayer->get_posX()),(pPlayer->get_posY())-3.f,(pPlayer->get_posZ())-10.f);
- }
- ///////////////////////////////END INPUT/////////////////////////////////////////////////
- //////////////////////////////AUTO FUNCTIONS//////////////////////////////////////////////
- //glRotatef(MouseX * 50, 0.f, 1.f, 0.f);
- //glRotatef(MouseY * 30, 1.f, 0.f, 0.f);
- pPlayer->Guarding();
- pPlayer->HitTiming();
- if(BagUpdate)
- {
- for(int a=0;a<pPlayer->Bag.size();++a)
- {
- isbItem[a].LoadFromFile("Graphics/Items.png");
- isbItem[a].SetSmooth(false);
- sbItem[a].SetImage(isbItem[a]);
- sbItem[a].SetPosition(((4.f+(BagSlotX[a]))/32.f),((474.f+(BagSlotY[a]))/32.f));
- }
- for(int b=0;b<6;++b)
- {
- iseItem[b].LoadFromFile("Graphics/Items.png");
- iseItem[b].SetSmooth(false);
- seItem[b].SetImage(iseItem[b]);
- seItem[b].SetPosition(((4.f+(EquipSlotX[b]))/32.f),444.f/32.f);
- }
- BagUpdate=false;
- }
- if(click>0)
- {
- click-=1;
- }
- SpriteList[22].SetPosition(MouseX,MouseY);
- GameWind.SetView(GameView);
- //m_pDynamicsWorld->stepSimulation(deltaTime, m_maxSubSteps);
- GLdraw();
- LiveBody->getMotionState()->getWorldTransform(pPlayer->Transfo);
- PhysicsWorld->stepSimulation(GameWind.GetFrameTime(),10);
- //cout << MouseX*32 << "," << MouseY*32 << endl;
- //std::cout << "sphere height: " << pPlayer->Transfo.getOrigin().getY() << std::endl;
- //gluProject(&pos3D_x,&pos3D_y,&pos3D_z,model_view,projection,viewport,MouseX*16.f,MouseY*16.f,0.01);
- cout << pPlayer->get_posY() << "," << pPlayer->Transfo.getOrigin().getX() << endl;
- pPlayer->Fall(pPlayer->Transfo);
- PhysicsWorld->debugDrawWorld();
- SFMLdraw();
- for(int a=0;a<24;++a)//18-27=A
- {
- if(a<pPlayer->Bag.size())
- {
- sbItem[a].Resize(15.f/16.f,15.f/16.f);
- sbItem[a].SetSubRect(sf::IntRect((pPlayer->Bag[a]->get_IconX()*15),((pPlayer->Bag[a]->get_IconY()*15)),(pPlayer->Bag[a]->get_IconX()*15)+15,((pPlayer->Bag[a]->get_IconY()*15)+15)));
- GameWind.Draw(sbItem[a]);
- //cout << "Items Drawn! Position: " << BagSlotX[a] << "," << BagSlotY[a] << "Item: " << a << endl;
- //image pos resize subrect
- }
- }
- for(int b=0;b<6;++b)
- {
- seItem[b].Resize(15.f/16.f,15.f/16.f);
- seItem[b].SetSubRect(sf::IntRect((pPlayer->EqSpot[b]->get_IconX()*15),((pPlayer->EqSpot[b]->get_IconY()*15)),((pPlayer->EqSpot[b]->get_IconX()*15)+15),((pPlayer->EqSpot[b]->get_IconY()*15)+15)));
- GameWind.Draw(seItem[b]);
- }
- GameWind.Draw(SpriteList[22]);
- GameWind.Display();
- GameWind.SetFramerateLimit(60);
- //cout << pPlayer->get_posX() << "," << pPlayer->get_posZ() << endl;
- glGetDoublev(GL_MODELVIEW_MATRIX, model_view);
- glGetDoublev(GL_PROJECTION_MATRIX, projection);
- glGetIntegerv(GL_VIEWPORT, viewport);
- gluUnProject(MouseX*16.f, MouseY*16.f, 0.01, model_view, projection, viewport, &pos3D_x, &pos3D_y, &pos3D_z);
- //cout << pos3D_x << "," << pos3D_y << "," << pos3D_z <<endl;
- }
- return EXIT_SUCCESS;
- }
- void SFMLcreate()
- {
- MainFont.LoadFromFile("Graphics/carperite2.ttf");
- //LoadFromFile
- iSpriteList[0].LoadFromFile("Graphics/Player Stat/StatWindow.png");
- iSpriteList[1].LoadFromFile("Graphics/Player Stat/Bars/Health.png");
- iSpriteList[2].LoadFromFile("Graphics/Player Stat/Bars/Energy.png");
- iSpriteList[3].LoadFromFile("Graphics/Player Stat/Bars/Strength.png");
- iSpriteList[4].LoadFromFile("Graphics/Player Stat/Bars/Dexterity.png");
- iSpriteList[5].LoadFromFile("Graphics/Player Stat/Bars/Intelligence.png");
- iSpriteList[6].LoadFromFile("Graphics/Player Stat/Bars/Endurance.png");
- iSpriteList[7].LoadFromFile("Graphics/Player Stat/Bars/Critical.png");
- iSpriteList[8].LoadFromFile("Graphics/Player Stat/Bars/SwordAxe.png");
- iSpriteList[9].LoadFromFile("Graphics/Player Stat/Bars/SwordAxe.png");
- iSpriteList[10].LoadFromFile("Graphics/Player Stat/Bars/Bow.png");
- iSpriteList[11].LoadFromFile("Graphics/Player Stat/Bars/Star.png");
- iSpriteList[12].LoadFromFile("Graphics/Player Stat/Bars/WandStaff.png");
- iSpriteList[13].LoadFromFile("Graphics/Player Stat/Bars/WandStaff.png");
- iSpriteList[14].LoadFromFile("Graphics/Player Stat/BagCh.png");
- iSpriteList[15].LoadFromFile("Graphics/Player Stat/BagCh.png");
- iSpriteList[16].LoadFromFile("Graphics/Player Stat/Shield.png");
- iSpriteList[17].LoadFromFile("Graphics/KILL.png");///KILL
- iSpriteList[18].LoadFromFile("Graphics/KILL.png");///KILL
- iSpriteList[19].LoadFromFile("Graphics/Player Stat/Bars/Guard.png");
- iSpriteList[20].LoadFromFile("Graphics/Player Stat/Bars/RankPoint.png");
- iSpriteList[21].LoadFromFile("Graphics/KILL.png");///KILL
- iSpriteList[22].LoadFromFile("Graphics/Cursor.png");
- iSpriteList[23].LoadFromFile("Graphics/Player Stat/StrengthSt.png");
- iSpriteList[24].LoadFromFile("Graphics/Player Stat/DexteritySt.png");
- iSpriteList[25].LoadFromFile("Graphics/Player Stat/Intelli Stat.png");
- iSpriteList[26].LoadFromFile("Graphics/Player Stat/EnduranceSt.png");
- //SetSmooth()
- iSpriteList[0].SetSmooth(false);
- iSpriteList[1].SetSmooth(false);
- iSpriteList[2].SetSmooth(false);
- iSpriteList[3].SetSmooth(false);
- iSpriteList[4].SetSmooth(false);
- iSpriteList[5].SetSmooth(false);
- iSpriteList[6].SetSmooth(false);
- iSpriteList[7].SetSmooth(false);
- iSpriteList[8].SetSmooth(false);
- iSpriteList[9].SetSmooth(false);
- iSpriteList[10].SetSmooth(false);
- iSpriteList[11].SetSmooth(false);
- iSpriteList[12].SetSmooth(false);
- iSpriteList[13].SetSmooth(false);
- iSpriteList[14].SetSmooth(false);
- iSpriteList[15].SetSmooth(false);
- iSpriteList[19].SetSmooth(false);
- iSpriteList[20].SetSmooth(false);
- iSpriteList[23].SetSmooth(false);
- iSpriteList[24].SetSmooth(false);
- iSpriteList[25].SetSmooth(false);
- iSpriteList[26].SetSmooth(false);
- //SetImage!!
- SpriteList[0].SetImage(iSpriteList[0]);
- SpriteList[1].SetImage(iSpriteList[1]);
- SpriteList[2].SetImage(iSpriteList[2]);
- SpriteList[3].SetImage(iSpriteList[3]);
- SpriteList[4].SetImage(iSpriteList[4]);
- SpriteList[5].SetImage(iSpriteList[5]);
- SpriteList[6].SetImage(iSpriteList[6]);
- SpriteList[7].SetImage(iSpriteList[7]);
- SpriteList[8].SetImage(iSpriteList[8]);
- SpriteList[9].SetImage(iSpriteList[9]);
- SpriteList[10].SetImage(iSpriteList[10]);
- SpriteList[11].SetImage(iSpriteList[11]);
- SpriteList[12].SetImage(iSpriteList[12]);
- SpriteList[13].SetImage(iSpriteList[13]);
- SpriteList[14].SetImage(iSpriteList[14]);
- SpriteList[15].SetImage(iSpriteList[15]);
- SpriteList[16].SetImage(iSpriteList[16]);
- SpriteList[17].SetImage(iSpriteList[17]);
- SpriteList[18].SetImage(iSpriteList[18]);
- SpriteList[19].SetImage(iSpriteList[19]);
- SpriteList[20].SetImage(iSpriteList[20]);
- SpriteList[21].SetImage(iSpriteList[21]);
- SpriteList[22].SetImage(iSpriteList[22]);
- SpriteList[23].SetImage(iSpriteList[23]);
- SpriteList[24].SetImage(iSpriteList[24]);
- SpriteList[25].SetImage(iSpriteList[25]);
- SpriteList[26].SetImage(iSpriteList[26]);
- //SetPosition(x,y)!!
- SpriteList[0].SetPosition(-5.f/32.f,-5.f/32.f);///
- SpriteList[1].SetPosition(333.f/32.f,13.f/32.f);///
- SpriteList[2].SetPosition(333.f/32.f,39.f/32.f);///
- SpriteList[3].SetPosition(33.f/32.f,48.f/32.f);///
- SpriteList[4].SetPosition(26.f/32.f,99.f/32.f);///
- SpriteList[5].SetPosition(174.f/32.f,54.f/32.f);///
- SpriteList[6].SetPosition(172.f/32.f,90.f/32.f);///
- SpriteList[7].SetPosition(164.f/32.f,108.f/32.f);///
- SpriteList[8].SetPosition(49.f/32.f,40.f/32.f);///
- SpriteList[9].SetPosition(49.f/32.f,72.f/32.f);///
- SpriteList[10].SetPosition(24.f/32.f,93.f/32.f);///
- SpriteList[11].SetPosition(24.f/32.f,109.f/32.f);///
- SpriteList[12].SetPosition(205.f/32.f,39.5f/32.f);///
- SpriteList[13].SetPosition(205.f/32.f,70.5f/32.f);///
- SpriteList[14].SetPosition(110.f/32.f,403.f/32.f);///
- SpriteList[15].SetPosition(110.f/32.f,403.f/32.f);///
- SpriteList[16].SetPosition(332.f/32.f,22.f/32.f);////
- SpriteList[17].SetPosition(4.f/32.f,22.f/32.f);////
- SpriteList[18].SetPosition(4.f/32.f,30.f/32.f);////
- SpriteList[19].SetPosition(343.f/32.f,22.f/32.f);///
- SpriteList[20].SetPosition(333.5f/32.f,65.f/32.f);///
- SpriteList[21].SetPosition(39.5f/32.f,23.f/32.f);////
- SpriteList[23].SetPosition(9.f/32.f,39.5f/32.f);///
- SpriteList[24].SetPosition(9.f/32.f,84.f/32.f);///
- SpriteList[25].SetPosition(154.5f/32.f,39.f/32.f);///
- SpriteList[26].SetPosition(154.5f/32.f,84.f/32.f);///
- //VECTOR STORE
- TextStat[0].SetColor(sf::Color::Yellow);
- TextStat[1].SetColor(sf::Color::Red);
- TextStat[2].SetColor(sf::Color::Green);
- TextStat[3].SetColor(sf::Color::Yellow);
- TextStat[4].SetColor(sf::Color::Blue);
- TextStat[0].SetPosition(9.f/32.f,15.f/32.f);
- TextStat[1].SetPosition(223.f/32.f,7.f/32.f);
- TextStat[2].SetPosition(223.f/32.f,21.f/32.f);
- TextStat[3].SetPosition(273.f/32.f,18.f/32.f);
- TextStat[4].SetPosition(305.f/32.f,400.f/32.f);
- TextStat[0].SetSize(0.5);
- TextStat[1].SetSize(8.f/32.f);
- TextStat[2].SetSize(10.f/32.f);
- TextStat[3].SetSize(9.f/32.f);
- TextStat[4].SetSize(12.f/32.f);//10
- //TextStat[0].SetFont(MainFont);
- TextStat[1].SetFont(MainFont);
- TextStat[2].SetFont(MainFont);
- TextStat[3].SetFont(MainFont);
- TextStat[4].SetFont(MainFont);
- }
- void SFMLdraw()
- {
- //////////////////////////////STAT RESIZE/SUBRECT///////////////////////////////////////
- //SpriteList[1].SetSubRect(sf::IntRect(0,0,120,12)); //30,3
- //SpriteList[2].SetSubRect(sf::IntRect(0,0,120,12)); //30,3
- //SpriteList[3].SetSubRect(sf::IntRect(pPlayer->get_Str()*28,0,(pPlayer->get_Str()*28)+28,7)); //28,7
- //SpriteList[4].SetSubRect(sf::IntRect(pPlayer->get_Dex()*28,0,(pPlayer->get_Dex()*28)+28,7)); //28,7
- //SpriteList[5].SetSubRect(sf::IntRect(pPlayer->get_Int()*28,0,(pPlayer->get_Int()*28)+28,7)); //28,7
- //SpriteList[6].SetSubRect(sf::IntRect(pPlayer->get_End()*28,0,(pPlayer->get_End()*28)+28,7)); //28,7
- //SpriteList[7].SetSubRect(sf::IntRect(pPlayer->get_Crit()*28,0,(pPlayer->get_Crit()*28)+28,7)); //28,7
- SpriteList[8].SetSubRect(sf::IntRect(pPlayer->get_Sword()*69,0,(pPlayer->get_Sword()*69)+69,8)); //18,3
- SpriteList[9].SetSubRect(sf::IntRect(pPlayer->get_Axe()*69,0,(pPlayer->get_Axe()*69)+69,8)); //18,3
- SpriteList[10].SetSubRect(sf::IntRect(pPlayer->get_Bow()*65,0,(pPlayer->get_Bow()*65)+65,5)); //18,3
- SpriteList[11].SetSubRect(sf::IntRect(pPlayer->get_Star()*65,0,(pPlayer->get_Star()*65)+65,5)); //18,3
- SpriteList[12].SetSubRect(sf::IntRect(pPlayer->get_Wand()*52,0,(pPlayer->get_Wand()*52)+52,7)); //18,3
- SpriteList[13].SetSubRect(sf::IntRect(pPlayer->get_Staff()*52,0,(pPlayer->get_Staff()*52)+52,7)); //18,3
- SpriteList[14].SetSubRect(sf::IntRect((pPlayer->get_BagShow()*42),0,(pPlayer->get_BagShow()*42)+42,21));
- SpriteList[15].SetSubRect(sf::IntRect(((pPlayer->get_EquipShow()+5)*42),0,((pPlayer->get_EquipShow()+5)*42)+42,21));
- //SpriteList[16].SetSubRect(sf::IntRect(pPlayer->get_SkillShow()*30,0,(pPlayer->get_SkillShow()*30)+30,64));
- //SpriteList[17].SetSubRect(sf::IntRect(pPlayer->get_Health()*7,0,(pPlayer->get_Health()*7)+7,5));
- //SpriteList[18].SetSubRect(sf::IntRect(pPlayer->get_Energy()*7,0,(pPlayer->get_Energy()*7)+7,5));
- //SpriteList[19].SetSubRect(sf::IntRect(0,0,128,20));
- //SpriteList[20].SetSubRect(sf::IntRect(pPlayer->get_Rank()*14,0,(pPlayer->get_Rank()*14)+14,6));//10
- //SpriteList[21].SetSubRect(sf::IntRect(pPlayer->get_tRankXPN()*18,0,(pPlayer->get_tRankXPN()*18)+18,10));//16
- /////////////////////RESIZE PART
- SpriteList[0].Resize(810.f/32.f,610.f/32.f);
- SpriteList[1].Resize(((pPlayer->get_Health()/pPlayer->get_MaxHealth())*72.f)/32.f,18.f/32.f);
- SpriteList[2].Resize(((pPlayer->get_Energy()/100.f)*72.f)/32.f,18.f/32.f);
- SpriteList[3].Resize(((pPlayer->get_Str()/15.f)*105.f)/32.f,24.f/32.f);
- SpriteList[4].Resize(((pPlayer->get_Dex()/15.f)*105.f)/32.f,10.f/32.f);
- SpriteList[5].Resize(((pPlayer->get_Int()/15.f)*105.f)/32.f,11.f/32.f);
- SpriteList[6].Resize(((pPlayer->get_End()/15.f)*105.f)/32.f,9.f/32.f);
- SpriteList[7].Resize((((pPlayer->get_Crit()/15.f)*105.f))/32.f,6.f/32.f);
- SpriteList[8].Resize(69.f/32.f,8.f/32.f);
- SpriteList[9].Resize(69.f/32.f,8.f/32.f);
- SpriteList[10].Resize(65.f/32.f,5.f/32.f);
- SpriteList[11].Resize(65.f/32.f,5.f/32.f);
- SpriteList[12].Resize(52.f/32.f,7.f/32.f);
- SpriteList[13].Resize(52.f/32.f,7.f/32.f);
- SpriteList[14].Resize(42.f/32.f,21.f/32.f);
- SpriteList[15].Resize(42.f/32.f,21.f/32.f);
- SpriteList[16].Resize(10.f/32.f,10.f/32.f);//
- SpriteList[17].Resize(7.f/16.f,5.f/16.f);//
- SpriteList[18].Resize(7.f/16.f,5.f/16.f);//
- SpriteList[19].Resize(((pPlayer->get_Guard()/100)*62.f)/32.f,9.f/32.f);
- SpriteList[20].Resize(((pPlayer->get_RankXP()/pPlayer->get_RankXPN())*72.f)/32.f,18.f/32.f);
- SpriteList[21].Resize(18.f/16.f,10.f/16.f);//
- SpriteList[22].Resize(15.f/16.f,15.f/16.f);
- SpriteList[23].Resize(139.f/32.f,40.f/32.f);
- SpriteList[24].Resize(139.f/32.f,40.f/32.f);
- SpriteList[25].Resize(139.f/32.f,40.f/32.f);
- SpriteList[26].Resize(139.f/32.f,40.f/32.f);
- string ssHP,ssEP,ssLV;
- std::stringstream sssHP,sssEP,sssLV;
- sssHP << pPlayer->get_Health();
- sssEP << pPlayer->get_Energy();
- sssLV << pPlayer->get_Rank();
- sssHP>>ssHP;
- sssEP>>ssEP;
- sssLV>>ssLV;
- TextStat[0].SetText(pPlayer->get_Name());
- TextStat[1].SetText(ssHP);
- TextStat[2].SetText(ssEP);
- TextStat[3].SetText(ssLV);
- TextStat[4].SetText("Test Line \nTest Line \nTest Line \nTest Line \nTest Line \nTest Line \nTest Line \nTest Line \nTest Line \nTest Line \nTest Line \nTest Line \nTest Line \nTest Line \nTest Line \n ");
- ///////////////////////////////////END RESIZE/SUBRECT!!!////////////////////////////////
- ////////////////////////////////////DONT TOUCH/////////////////////////////////////////
- ///////////////////////////////NOW YOU CAN TOUCH//////////////////////////////////////////
- //////////////////////////////DRAW STARTS///////////////////////////////////////////////
- ///LAYER 1
- GameWind.Draw(SpriteList[0]);
- if(pPlayer->get_Health()!=0){GameWind.Draw(SpriteList[1]);}
- if(pPlayer->get_Energy()!=0){GameWind.Draw(SpriteList[2]);}
- if(pPlayer->get_Str()!=0){GameWind.Draw(SpriteList[3]);}
- if(pPlayer->get_Dex()!=0){GameWind.Draw(SpriteList[4]);}
- if(pPlayer->get_Int()!=0){GameWind.Draw(SpriteList[5]);}
- if(pPlayer->get_End()!=0){GameWind.Draw(SpriteList[6]);}
- if(pPlayer->get_Crit()!=0){GameWind.Draw(SpriteList[7]);}
- if(pPlayer->get_Sword()!=0){GameWind.Draw(SpriteList[8]);}
- if(pPlayer->get_Axe()!=0){GameWind.Draw(SpriteList[9]);}
- if(pPlayer->get_Bow()!=0){GameWind.Draw(SpriteList[10]);}
- if(pPlayer->get_Star()!=0){GameWind.Draw(SpriteList[11]);}
- if(pPlayer->get_Wand()!=0){GameWind.Draw(SpriteList[12]);}
- if(pPlayer->get_Staff()!=0){GameWind.Draw(SpriteList[13]);}
- //GameWind.Draw(SpriteList[14]);
- //GameWind.Draw(SpriteList[15]);
- if(pPlayer->get_Guard()!=0){GameWind.Draw(SpriteList[19]);}
- if(pPlayer->get_RankXP()!=0){GameWind.Draw(SpriteList[20]);}
- ///LAYER 2
- GameWind.Draw(SpriteList[23]);
- GameWind.Draw(SpriteList[24]);
- GameWind.Draw(SpriteList[25]);
- GameWind.Draw(SpriteList[26]);
- GameWind.Draw(SpriteList[16]);
- GameWind.Draw(TextStat[0]);
- GameWind.Draw(TextStat[1]);
- GameWind.Draw(TextStat[2]);
- GameWind.Draw(TextStat[3]);
- GameWind.Draw(TextStat[4]);
- }
- void GLMcreate()
- {
- ModelList[0] = glmReadOBJ("3Dobject/CarperonMAINv1.obj");
- glmUnitize(ModelList[0]);
- glmFacetNormals(ModelList[0]);
- glmVertexNormals(ModelList[0], 200.0,0);
- glmLinearTexture(ModelList[0]);
- glmScale(ModelList[0],1000);
- sfTexture[0].LoadFromFile("3Dobject/CarperonTextv1.tga");
- _texture[0] = LoadTexture(sfTexture[0]);
- ModelList[0]->textures->id = _texture[0];
- ModelList[0]->textures->width=1;
- ModelList[0]->textures->height=1;
- ModelList[1] = glmReadOBJ("3Dobject/WaterModel.obj");
- glmUnitize(ModelList[1]);
- glmLinearTexture(ModelList[1]);
- glmScale(ModelList[1],1000);
- sfTexture[1].LoadFromFile("3Dobject/WaterText.png");
- _texture[1] = LoadTexture(sfTexture[1]);
- ModelList[1]->textures->id = _texture[1];
- ModelList[1]->textures->width=30;
- ModelList[1]->textures->height=30;
- }
- void GLdraw()
- {
- GameWind.SetActive();
- glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
- ////////AMBIENT LIGHT
- GLfloat AmbientColor[] = {1.f,0.0f,0.0f,1.0f};
- glLightModelfv(GL_LIGHT_MODEL_AMBIENT,AmbientColor);
- ////////POSITIONED LIGHT
- GLfloat LightColor0[] = {0.9f,0.9f,0.7f,1.0f};///MORN=5,5,9 DAY=9,9,7 EVE=7,3,5 NIGHT=2,2,6
- GLfloat LightPos0[] = {0.0f,900.0f,1000.0f,1.0f};
- glLightfv(GL_LIGHT0,GL_DIFFUSE,LightColor0);
- glLightfv(GL_LIGHT0,GL_POSITION,LightPos0);
- ////////DIRECTED LIGHT
- GLfloat LightColor1[] = {0.9f,0.9f,0.6f,0.0f};
- /////Coming from direction (x,y,z)
- GLfloat LightPos1[] = {0.0f,0.3f,-10.5f,0.0f};
- glLightfv(GL_LIGHT1,GL_DIFFUSE,LightColor1);
- glLightfv(GL_LIGHT1,GL_POSITION,LightPos1);
- ///DRAWING MODELS
- glPushMatrix();
- glTranslatef(0,0,0);
- glmDraw(ModelList[0],GLM_SMOOTH|GLM_TEXTURE|GLM_MATERIAL);
- glPopMatrix();
- glPushMatrix();
- glTranslatef(0,-32.5,0);
- glmDraw(ModelList[1],GLM_SMOOTH|GLM_TEXTURE|GLM_MATERIAL);
- glPopMatrix();
- ///PLAYER
- glPushMatrix();
- glTranslatef(pPlayer->get_posX(),pPlayer->get_posY(),pPlayer->get_posZ());
- glRotatef(90,1,0,0);
- glmDraw(pPlayer->LiveModel,GLM_SMOOTH|GLM_TEXTURE|GLM_MATERIAL);
- glPopMatrix();
- }
- void GLiniti()
- {
- GameWind.PreserveOpenGLStates(true);
- GameWind.ShowMouseCursor(false);
- glClearDepth(1.f);
- glClearColor(0.0f,0.0f,0.0f,1.f);
- /////z buffer
- glEnable(GL_POLYGON_STIPPLE);
- glEnable(GL_BLEND);
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_DEPTH_BUFFER_BIT);
- glEnable(GL_COLOR_MATERIAL);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- //glEnable(GL_LIGHT1);
- //glEnable(GL_CULL_FACE);
- glEnable(GL_NORMALIZE);
- glEnable(GL_TEXTURE_2D);
- glEnableClientState(GL_VERTEX_ARRAY);
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
- glEnableClientState(GL_NORMAL_ARRAY);
- glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- //glCullFace(GL_FRONT_AND_BACK);
- glFrontFace(GL_CW);
- glShadeModel(GL_SMOOTH);
- glDepthMask(GL_TRUE);
- glDepthFunc(GL_LEQUAL);
- glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(35.f,(double)800 / (double)600,1.f,9000.f);
- glRotatef(30.f,1.f,0.f,0.f);
- //glTranslatef(0.f, -3.f, -10.0f);
- }
- GLuint LoadTexture(sf::Image image)
- {
- GLuint Texture;
- glGenTextures(1, &Texture);
- glBindTexture(GL_TEXTURE_2D, Texture);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, image.GetWidth(), image.GetHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, image.GetPixelsPtr());
- return Texture;
- }
- void ITEMdefault()
- {
- Blank *BlankSpot=new Blank();
- BlankSpot->ItemCreate();
- DefItemList.push_back(BlankSpot);///0
- ///Other Items 10-49
- //Potions 10-14
- OtherItem *HPpotion=new OtherItem();
- HPpotion->PotionCreate(10,6,8,6);
- DefItemList.push_back(HPpotion);///1
- OtherItem *EPpotion=new OtherItem();
- EPpotion->PotionCreate(11,7,8,7);
- DefItemList.push_back(EPpotion);///2
- //Molds 15-24
- OtherItem *SwordMold=new OtherItem();
- SwordMold->MoldCreate(15,1,7);
- DefItemList.push_back(SwordMold);///3
- OtherItem *AxeMold=new OtherItem();
- AxeMold->MoldCreate(16,2,7);
- DefItemList.push_back(AxeMold);///4
- OtherItem *MailMold=new OtherItem();
- MailMold->MoldCreate(17,3,7);
- DefItemList.push_back(MailMold);///5
- OtherItem *BowMold=new OtherItem();
- BowMold->MoldCreate(18,4,7);
- DefItemList.push_back(BowMold);///6
- OtherItem *StarMold=new OtherItem();
- StarMold->MoldCreate(19,5,7);
- DefItemList.push_back(StarMold);///7
- OtherItem *LeatherMold=new OtherItem();
- LeatherMold->MoldCreate(20,6,7);
- DefItemList.push_back(LeatherMold);///8
- OtherItem *WandMold=new OtherItem();
- WandMold->MoldCreate(21,7,7);
- DefItemList.push_back(WandMold);///9
- OtherItem *StaffMold=new OtherItem();
- StaffMold->MoldCreate(22,8,7);
- DefItemList.push_back(StaffMold);///10
- OtherItem *ClothMold=new OtherItem();
- ClothMold->MoldCreate(23,9,7);
- DefItemList.push_back(ClothMold);///11
- OtherItem *NeckMold=new OtherItem();
- NeckMold->MoldCreate(24,10,7);
- DefItemList.push_back(NeckMold);///12
- ///Color Orbs 50-59
- //Default
- Orb *ReddOrb=new Orb();
- ReddOrb->OrbCreate(50,0,1);
- DefItemList.push_back(ReddOrb);///13
- Orb *PurpolOrb=new Orb();
- PurpolOrb->OrbCreate(51,0,2);
- DefItemList.push_back(PurpolOrb);///14
- Orb *BlooOrb=new Orb();
- BlooOrb->OrbCreate(52,0,3);
- DefItemList.push_back(BlooOrb);///15
- Orb *GrinOrb=new Orb();
- GrinOrb->OrbCreate(53,0,4);
- DefItemList.push_back(GrinOrb);///16
- Orb *YellerOrb=new Orb();
- YellerOrb->OrbCreate(54,0,5);
- DefItemList.push_back(YellerOrb);///17
- Orb *GressOrb=new Orb();
- GressOrb->OrbCreate(55,0,6);
- DefItemList.push_back(GressOrb);///18
- ///Weapon Icons 60-69
- //Default
- WpnIcon *SwordIcon=new WpnIcon();
- SwordIcon->WpnIcnCreate(60,1,0);
- DefItemList.push_back(SwordIcon);///19
- WpnIcon *AxeIcon=new WpnIcon();
- AxeIcon->WpnIcnCreate(61,2,0);
- DefItemList.push_back(AxeIcon);///20
- WpnIcon *MailIcon=new WpnIcon();
- MailIcon->WpnIcnCreate(62,3,0);
- DefItemList.push_back(MailIcon);///21
- WpnIcon *BowIcon=new WpnIcon();
- BowIcon->WpnIcnCreate(63,4,0);
- DefItemList.push_back(BowIcon);///22
- WpnIcon *StarIcon=new WpnIcon();
- StarIcon->WpnIcnCreate(64,5,0);
- DefItemList.push_back(StarIcon);///23
- WpnIcon *LeatherIcon=new WpnIcon();
- LeatherIcon->WpnIcnCreate(65,6,0);
- DefItemList.push_back(LeatherIcon);///24
- WpnIcon *WandIcon=new WpnIcon();
- WandIcon->WpnIcnCreate(66,7,0);
- DefItemList.push_back(WandIcon);///25
- WpnIcon *StaffIcon=new WpnIcon();
- StaffIcon->WpnIcnCreate(67,8,0);
- DefItemList.push_back(StaffIcon);///26
- WpnIcon *ClothIcon=new WpnIcon();
- ClothIcon->WpnIcnCreate(68,9,0);
- DefItemList.push_back(ClothIcon);///27
- WpnIcon *NeckIcon=new WpnIcon();
- NeckIcon->WpnIcnCreate(69,10,0);
- DefItemList.push_back(NeckIcon);///28
- ///Stat Gems 70-79
- //Default
- StatGem *StrGem=new StatGem();
- StrGem->StatGemCreate(70,0,8,0);
- DefItemList.push_back(StrGem);///29
- StatGem *EndGem=new StatGem();
- EndGem->StatGemCreate(71,1,8,3);
- DefItemList.push_back(EndGem);///30
- StatGem *IntGem=new StatGem();
- IntGem->StatGemCreate(72,2,8,2);
- DefItemList.push_back(IntGem);///31
- StatGem *DexGem=new StatGem();
- DexGem->StatGemCreate(73,3,0,1);
- DefItemList.push_back(DexGem);///32
- StatGem *CritGem=new StatGem();
- CritGem->StatGemCreate(74,4,8,4);
- DefItemList.push_back(CritGem);///33
- StatGem *ShareGem=new StatGem();
- ShareGem->StatGemCreate(75,5,8,5);
- DefItemList.push_back(ShareGem);///34
- }
- btDynamicsWorld *CreateDynamoWorld()
- {
- btDbvtBroadphase *MainBF = new btDbvtBroadphase();
- btDefaultCollisionConfiguration *defCOLL = new btDefaultCollisionConfiguration();
- btCollisionDispatcher *COLLdispatch = new btCollisionDispatcher(defCOLL);
- btSequentialImpulseConstraintSolver *SICsolver = new btSequentialImpulseConstraintSolver;
- btDiscreteDynamicsWorld *DynamoWorld = new btDiscreteDynamicsWorld(COLLdispatch,MainBF,SICsolver,defCOLL);
- DynamoWorld->setGravity(btVector3(0,-10,0));
- return DynamoWorld;
- }
- btRigidBody *LivingBodyCreate()
- {
- btDefaultMotionState *FallingStateMOT = new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(pPlayer->get_posX(),pPlayer->get_posY(),pPlayer->get_posZ())));
- btScalar Mass = 10;
- btVector3 FallInertia(0,0,0);
- btCollisionShape* WfallShape = new btSphereShape(1);
- btRigidBody::btRigidBodyConstructionInfo FallingRigidCI(Mass,FallingStateMOT,WfallShape,FallInertia);
- btRigidBody *FallRigid = new btRigidBody(FallingRigidCI);
- return FallRigid;
- }
- btRigidBody *GroundBodyCreate()
- {
- btCollisionShape* Worldshape = new btStaticPlaneShape(btVector3(0,1,0),-25);
- //btCollisionShape *WorldTriangleShape = new btBvhTriangleMeshShape(indexVertexArrays,useQuantizedBvhTree);
- btDefaultMotionState *defMOTstate = new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,-1,0)));
- btRigidBody::btRigidBodyConstructionInfo GroundBodyCI(0,defMOTstate,Worldshape,btVector3(0,0,0));
- btRigidBody *GroundBody = new btRigidBody(GroundBodyCI);
- return GroundBody;
- }
- /*
- btRigidBody *GroundBodyCreate()
- {
- //int VERTI_AM = ModelList[0]->numvertices;
- btTriangleMesh *WorldTriMesh = new btTriangleMesh();
- for(int v=0;v<16641;v+3)
- {
- btScalar c1 = ModelList[0]->vertices[v,0];
- btScalar c2 = ModelList[0]->vertices[v,1];
- btScalar c3 = ModelList[0]->vertices[v,2];
- btVector3 TriangleVertex1(c1,c2,c3);
- btScalar c4 = ModelList[0]->vertices[v+1,0];
- btScalar c5 = ModelList[0]->vertices[v+1,1];
- btScalar c6 = ModelList[0]->vertices[v+1,2];
- btVector3 TriangleVertex2(c4,c5,c6);
- btScalar c7 = ModelList[0]->vertices[v+2,0];
- btScalar c8 = ModelList[0]->vertices[v+2,1];
- btScalar c9 = ModelList[0]->vertices[v+2,2];
- btVector3 TriangleVertex3(c7,c8,c9);
- WorldTriMesh->addTriangle(TriangleVertex1,TriangleVertex2,TriangleVertex3);
- //btVector3 v0(ModelList[0]->vertices[v,0],ModelList[0]->vertices[v,1],ModelList[0]->vertices[v,2]);
- //btVector3 v1(ModelList[0]->vertices[v+1,0],ModelList[0]->vertices[v+1,1],ModelList[0]->vertices[v+1,2]);
- //btVector3 v2(ModelList[0]->vertices[v+2,0],ModelList[0]->vertices[v+2,1],ModelList[0]->vertices[v+2,2]);
- //WorldTriMesh->addTriangle(v0,v1,v2);
- //WorldTriMesh->addTriangle(ModelList[0]->vertices[v],ModelList[0]->vertices[v+1],ModelList[0]->vertices[v+2])
- }
- btCollisionShape *WorldColShape = new btBvhTriangleMeshShape(WorldTriMesh,false);
- btDefaultMotionState *defMOTstate = new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,-1,0)));
- btRigidBody::btRigidBodyConstructionInfo GroundBodyCI(0,defMOTstate,WorldColShape,btVector3(0,0,0));
- btRigidBody *GroundBody = new btRigidBody(GroundBodyCI);
- return GroundBody;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement