Advertisement
Guest User

Molma 4-26

a guest
Apr 26th, 2011
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 35.05 KB | None | 0 0
  1. #include <SFML/Graphics.hpp>
  2. #include <SFML/Window.hpp>
  3. #include <iostream>
  4. #include <string>
  5. #include <stdio.h>
  6. #include <fstream>
  7. #include <sstream>
  8. #include <assert.h>
  9. #include <vector>
  10. #include <glm/glm.h>
  11. #include <glm/Texture.h>
  12. #include <Box2D/Box2D.h>
  13. #include <Bullet/src/btBulletCollisionCommon.h>
  14. #include <Bullet/src/btBulletDynamicsCommon.h>
  15.  
  16. #include <Bullet/src/Serialize/BulletWorldImporter/btBulletWorldImporter.h>
  17.  
  18. #include "Item.hpp"
  19. #include "Player.hpp"
  20.  
  21.  
  22.  
  23.  
  24. using namespace std;
  25. ///GLOBAL VARIABLES
  26. sf::Sprite SpriteList[40];
  27. sf::Image iSpriteList[40];
  28. sf::Image sfTexture[2];
  29. GLMmodel* ModelList[2];
  30. GLuint _texture[2];
  31. vector<Item*> DefItemList;
  32. Player *pPlayer=new Player();
  33. sf::Font MainFont;
  34.  
  35. sf::RenderWindow GameWind(sf::VideoMode(800,600,32),"Carperon Game Window",sf::Style::Titlebar);
  36. sf::View GameView(sf::FloatRect(0,0,25,18.75));//65x45 and 8x  0,0,65,45
  37. sf::String TextStat[10];
  38.  
  39.  
  40. ///PROTOTYPE FUNCTIONS
  41. void SFMLcreate();
  42. void SFMLdraw();
  43. void GLMcreate();
  44. void GLdraw();
  45. GLuint LoadTexture(sf::Image image);
  46. void GLiniti();
  47. void ITEMdefault();
  48. void CreateTexture();
  49. btDynamicsWorld *CreateDynamoWorld();
  50. btRigidBody *GroundBodyCreate();
  51. btRigidBody *LivingBodyCreate();
  52.  
  53. ///BULLET STUFF
  54. btDynamicsWorld *PhysicsWorld = CreateDynamoWorld();
  55. btRigidBody *LiveBody = LivingBodyCreate();
  56. btRigidBody *WorldBody = GroundBodyCreate();
  57. btScalar MassB = 1;
  58. btVector3 FallInertiaB(0,0,0);
  59. btStridingMeshInterface *MeshInter;
  60.  
  61.  
  62.  
  63. ///BULLET STUFF
  64. ///////////////////////////////////STOP PROTOTYPES//////////////////////////////
  65. //////////////////////////////////FUNCTIONS//////////////////////////////////
  66. int main()
  67. {
  68.     GLiniti();
  69.     SFMLcreate();
  70.     GLMcreate();
  71.  
  72.     ITEMdefault();
  73.     sf::Event EventMain;
  74.     sf::Image isbItem[45],iseItem[6],playertext;
  75.     sf::Sprite sbItem[45],seItem[6];
  76.     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};
  77.     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};
  78.     signed int EquipSlotX[6] {0,30,60,90,120,150};
  79.     bool BagUpdate = true;
  80.     int click = 0;
  81.     ///MAIN PLAYER
  82.     pPlayer->PlayerCreate("Molma");
  83.     pPlayer->EquipFill(DefItemList[0]);
  84.     pPlayer->AddItem(DefItemList[1]);
  85.     pPlayer->AddItem(DefItemList[2]);
  86.     pPlayer->AddItem(DefItemList[3]);
  87.     pPlayer->AddItem(DefItemList[4]);
  88.     pPlayer->AddItem(DefItemList[5]);
  89.     pPlayer->AddItem(DefItemList[6]);
  90.     pPlayer->AddItem(DefItemList[7]);
  91.     pPlayer->AddItem(DefItemList[8]);
  92.     pPlayer->AddItem(DefItemList[9]);
  93.     pPlayer->AddItem(DefItemList[10]);
  94.     pPlayer->AddItem(DefItemList[11]);
  95.     pPlayer->AddItem(DefItemList[12]);
  96.     pPlayer->AddItem(DefItemList[13]);
  97.     pPlayer->AddItem(DefItemList[14]);
  98.     pPlayer->AddItem(DefItemList[15]);
  99.     pPlayer->AddItem(DefItemList[16]);
  100.     pPlayer->AddItem(DefItemList[17]);
  101.     pPlayer->AddItem(DefItemList[18]);
  102.     pPlayer->AddItem(DefItemList[19]);
  103.     pPlayer->AddItem(DefItemList[20]);
  104.     pPlayer->AddItem(DefItemList[21]);
  105.     pPlayer->AddItem(DefItemList[5]);
  106.     pPlayer->AddItem(DefItemList[15]);
  107.     pPlayer->AddItem(DefItemList[20]);
  108.     ///BULLET
  109.     btBulletWorldImporter *fileLoader = new btBulletWorldImporter(PhysicsWorld);
  110.     if(!fileLoader->loadFile("CarperonColv1.bullet"))
  111.     {
  112.         cout << "Load Failed!!" << endl;
  113.     }
  114.     //PhysicsWorld->setGravity(btVector3(0,-30,0));
  115.  
  116.  
  117. //PhysicsWorld->addRigidBody(WorldBody);
  118. //PhysicsWorld->addRigidBody(fileLoader->getRigidBodyByName("World"));
  119. LiveBody->getCollisionShape()->calculateLocalInertia(MassB,FallInertiaB);
  120. PhysicsWorld->addRigidBody(LiveBody);
  121. LiveBody->translate(btVector3(0,50,0));
  122. //cout << "Rigid Bodies: " << fileLoader->getNumRigidBodies() << endl;
  123. cout << "Rigid Bodies: " << PhysicsWorld->getNumCollisionObjects() << endl;
  124.  
  125. GLdouble pos3D_x, pos3D_y, pos3D_z;// arrays to hold matrix information
  126. GLdouble model_view[16];
  127. glGetDoublev(GL_MODELVIEW_MATRIX, model_view);
  128. GLdouble projection[16];
  129. glGetDoublev(GL_PROJECTION_MATRIX, projection);
  130. GLint viewport[4];
  131. glGetIntegerv(GL_VIEWPORT, viewport);   // get 3D coordinates based on window coordinates
  132. gluUnProject(800/2, 600/2, 0.01,    model_view, projection, viewport,   &pos3D_x, &pos3D_y, &pos3D_z);
  133.  
  134.  
  135. cout << "Vindices test: " << ModelList[0]->vertices[0,0] << endl;
  136. cout << ModelList[0]->numvertices << endl;
  137.  
  138.  
  139.     ///BULLET
  140.  
  141.     while(GameWind.IsOpened())
  142.     {
  143.         while(GameWind.GetEvent(EventMain))
  144.         {
  145.             //If its closed
  146.             if(EventMain.Type==sf::Event::Closed)
  147.             {
  148.                 //Close the whole thing!
  149.                 //GameWind.Close();
  150.                 GameWind.Close();
  151.             }
  152.         }
  153.         float MouseX = (GameWind.GetInput().GetMouseX()/32.f);
  154.         float MouseY = (GameWind.GetInput().GetMouseY()/32.f);
  155.         if(GameWind.GetInput().IsKeyDown(sf::Key::Escape))
  156.         {
  157.             GameWind.Close();
  158.             //GameWind.Close();
  159.         }
  160. /////////////////////////////BEGIN INPUT/////////////////////////////////////////////////
  161.         if(GameWind.GetInput().IsKeyDown(sf::Key::Return))
  162.         {
  163.             pPlayer->RandHealth();
  164.             pPlayer->UpdateImage();
  165.             BagUpdate = true;
  166.  
  167.         }
  168.         if(GameWind.GetInput().IsKeyDown(sf::Key::Z))
  169.         {
  170.             pPlayer->GetHit();
  171.         }
  172.  
  173.         if(GameWind.GetInput().IsMouseButtonDown(sf::Mouse::Right)&&click<=0)
  174.         {
  175.             for(int a=0;a<pPlayer->Bag.size();++a)
  176.             {
  177.                 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)))
  178.                 {
  179.                     pPlayer->ItemUse(pPlayer->Bag[a],a);
  180.                     BagUpdate = true;
  181.                     click=20;
  182.                         //cout << "Item used!" << endl;
  183.                 }
  184.             }
  185.             for(int b=0;b<6;++b)
  186.             {
  187.                 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")
  188.                 {
  189.                     pPlayer->Unequip(pPlayer->EqSpot[b],DefItemList[0],b);
  190.                     BagUpdate = true;
  191.                     click=20;
  192.                 }
  193.             }
  194.         }
  195.  
  196.         if(GameWind.GetInput().IsKeyDown(sf::Key::Down))
  197.         {
  198.             pPlayer->Move(0);
  199.             //glTranslatef((pPlayer->get_posX()),(pPlayer->get_posY())-3.f,(pPlayer->get_posZ())-10.f);
  200.         }
  201.         if(GameWind.GetInput().IsKeyDown(sf::Key::Right))
  202.         {
  203.             pPlayer->Move(3);
  204.             //glTranslatef((pPlayer->get_posX()),(pPlayer->get_posY())-3.f,(pPlayer->get_posZ())-10.f);
  205.         }
  206.         if(GameWind.GetInput().IsKeyDown(sf::Key::Up))
  207.         {
  208.             pPlayer->Move(2);
  209.             //glTranslatef((pPlayer->get_posX()),(pPlayer->get_posY())-3.f,(pPlayer->get_posZ())-10.f);
  210.         }
  211.         if(GameWind.GetInput().IsKeyDown(sf::Key::Left))
  212.         {
  213.             pPlayer->Move(1);
  214.             //glTranslatef((pPlayer->get_posX()),(pPlayer->get_posY())-3.f,(pPlayer->get_posZ())-10.f);
  215.         }
  216.  
  217.  
  218. ///////////////////////////////END INPUT/////////////////////////////////////////////////
  219.  
  220. //////////////////////////////AUTO FUNCTIONS//////////////////////////////////////////////
  221.     //glRotatef(MouseX * 50, 0.f, 1.f, 0.f);
  222.     //glRotatef(MouseY * 30, 1.f, 0.f, 0.f);
  223.         pPlayer->Guarding();
  224.         pPlayer->HitTiming();
  225.         if(BagUpdate)
  226.         {
  227.             for(int a=0;a<pPlayer->Bag.size();++a)
  228.             {
  229.                 isbItem[a].LoadFromFile("Graphics/Items.png");
  230.                 isbItem[a].SetSmooth(false);
  231.                 sbItem[a].SetImage(isbItem[a]);
  232.                 sbItem[a].SetPosition(((4.f+(BagSlotX[a]))/32.f),((474.f+(BagSlotY[a]))/32.f));
  233.             }
  234.             for(int b=0;b<6;++b)
  235.             {
  236.                     iseItem[b].LoadFromFile("Graphics/Items.png");
  237.                     iseItem[b].SetSmooth(false);
  238.                     seItem[b].SetImage(iseItem[b]);
  239.                     seItem[b].SetPosition(((4.f+(EquipSlotX[b]))/32.f),444.f/32.f);
  240.             }
  241.             BagUpdate=false;
  242.         }
  243.         if(click>0)
  244.         {
  245.             click-=1;
  246.         }
  247.  
  248.         SpriteList[22].SetPosition(MouseX,MouseY);
  249.  
  250.         GameWind.SetView(GameView);
  251.         //m_pDynamicsWorld->stepSimulation(deltaTime, m_maxSubSteps);
  252.         GLdraw();
  253.  
  254.  
  255.         LiveBody->getMotionState()->getWorldTransform(pPlayer->Transfo);
  256.         PhysicsWorld->stepSimulation(GameWind.GetFrameTime(),10);
  257.         //cout << MouseX*32 << "," << MouseY*32 << endl;
  258.  
  259.         //std::cout << "sphere height: " << pPlayer->Transfo.getOrigin().getY() << std::endl;
  260.         //gluProject(&pos3D_x,&pos3D_y,&pos3D_z,model_view,projection,viewport,MouseX*16.f,MouseY*16.f,0.01);
  261.         cout << pPlayer->get_posY() << "," << pPlayer->Transfo.getOrigin().getX() << endl;
  262.         pPlayer->Fall(pPlayer->Transfo);
  263.         PhysicsWorld->debugDrawWorld();
  264.         SFMLdraw();
  265.  
  266.         for(int a=0;a<24;++a)//18-27=A
  267.         {
  268.             if(a<pPlayer->Bag.size())
  269.             {
  270.  
  271.             sbItem[a].Resize(15.f/16.f,15.f/16.f);
  272.             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)));
  273.             GameWind.Draw(sbItem[a]);
  274.             //cout << "Items Drawn! Position: " << BagSlotX[a] << "," << BagSlotY[a] << "Item: " << a << endl;
  275.                 //image pos resize subrect
  276.             }
  277.         }
  278.         for(int b=0;b<6;++b)
  279.         {
  280.  
  281.                 seItem[b].Resize(15.f/16.f,15.f/16.f);
  282.                 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)));
  283.                 GameWind.Draw(seItem[b]);
  284.  
  285.         }
  286.  
  287.         GameWind.Draw(SpriteList[22]);
  288.         GameWind.Display();
  289.         GameWind.SetFramerateLimit(60);
  290.  
  291.         //cout << pPlayer->get_posX() << "," << pPlayer->get_posZ() << endl;
  292.         glGetDoublev(GL_MODELVIEW_MATRIX, model_view);
  293.         glGetDoublev(GL_PROJECTION_MATRIX, projection);
  294.         glGetIntegerv(GL_VIEWPORT, viewport);
  295.         gluUnProject(MouseX*16.f, MouseY*16.f, 0.01, model_view, projection, viewport,  &pos3D_x, &pos3D_y, &pos3D_z);
  296.  
  297.         //cout << pos3D_x << "," << pos3D_y << "," << pos3D_z <<endl;
  298.     }
  299.     return EXIT_SUCCESS;
  300. }
  301.  
  302.  
  303.  
  304. void SFMLcreate()
  305. {
  306.  
  307.     MainFont.LoadFromFile("Graphics/carperite2.ttf");
  308.     //LoadFromFile
  309.     iSpriteList[0].LoadFromFile("Graphics/Player Stat/StatWindow.png");
  310.     iSpriteList[1].LoadFromFile("Graphics/Player Stat/Bars/Health.png");
  311.     iSpriteList[2].LoadFromFile("Graphics/Player Stat/Bars/Energy.png");
  312.     iSpriteList[3].LoadFromFile("Graphics/Player Stat/Bars/Strength.png");
  313.     iSpriteList[4].LoadFromFile("Graphics/Player Stat/Bars/Dexterity.png");
  314.     iSpriteList[5].LoadFromFile("Graphics/Player Stat/Bars/Intelligence.png");
  315.     iSpriteList[6].LoadFromFile("Graphics/Player Stat/Bars/Endurance.png");
  316.     iSpriteList[7].LoadFromFile("Graphics/Player Stat/Bars/Critical.png");
  317.     iSpriteList[8].LoadFromFile("Graphics/Player Stat/Bars/SwordAxe.png");
  318.     iSpriteList[9].LoadFromFile("Graphics/Player Stat/Bars/SwordAxe.png");
  319.     iSpriteList[10].LoadFromFile("Graphics/Player Stat/Bars/Bow.png");
  320.     iSpriteList[11].LoadFromFile("Graphics/Player Stat/Bars/Star.png");
  321.     iSpriteList[12].LoadFromFile("Graphics/Player Stat/Bars/WandStaff.png");
  322.     iSpriteList[13].LoadFromFile("Graphics/Player Stat/Bars/WandStaff.png");
  323.     iSpriteList[14].LoadFromFile("Graphics/Player Stat/BagCh.png");
  324.     iSpriteList[15].LoadFromFile("Graphics/Player Stat/BagCh.png");
  325.     iSpriteList[16].LoadFromFile("Graphics/Player Stat/Shield.png");
  326.     iSpriteList[17].LoadFromFile("Graphics/KILL.png");///KILL
  327.     iSpriteList[18].LoadFromFile("Graphics/KILL.png");///KILL
  328.     iSpriteList[19].LoadFromFile("Graphics/Player Stat/Bars/Guard.png");
  329.     iSpriteList[20].LoadFromFile("Graphics/Player Stat/Bars/RankPoint.png");
  330.     iSpriteList[21].LoadFromFile("Graphics/KILL.png");///KILL
  331.     iSpriteList[22].LoadFromFile("Graphics/Cursor.png");
  332.     iSpriteList[23].LoadFromFile("Graphics/Player Stat/StrengthSt.png");
  333.     iSpriteList[24].LoadFromFile("Graphics/Player Stat/DexteritySt.png");
  334.     iSpriteList[25].LoadFromFile("Graphics/Player Stat/Intelli Stat.png");
  335.     iSpriteList[26].LoadFromFile("Graphics/Player Stat/EnduranceSt.png");
  336.  
  337.     //SetSmooth()
  338.     iSpriteList[0].SetSmooth(false);
  339.     iSpriteList[1].SetSmooth(false);
  340.     iSpriteList[2].SetSmooth(false);
  341.     iSpriteList[3].SetSmooth(false);
  342.     iSpriteList[4].SetSmooth(false);
  343.     iSpriteList[5].SetSmooth(false);
  344.     iSpriteList[6].SetSmooth(false);
  345.     iSpriteList[7].SetSmooth(false);
  346.     iSpriteList[8].SetSmooth(false);
  347.     iSpriteList[9].SetSmooth(false);
  348.     iSpriteList[10].SetSmooth(false);
  349.     iSpriteList[11].SetSmooth(false);
  350.     iSpriteList[12].SetSmooth(false);
  351.     iSpriteList[13].SetSmooth(false);
  352.     iSpriteList[14].SetSmooth(false);
  353.     iSpriteList[15].SetSmooth(false);
  354.     iSpriteList[19].SetSmooth(false);
  355.     iSpriteList[20].SetSmooth(false);
  356.     iSpriteList[23].SetSmooth(false);
  357.     iSpriteList[24].SetSmooth(false);
  358.     iSpriteList[25].SetSmooth(false);
  359.     iSpriteList[26].SetSmooth(false);
  360.  
  361.  
  362.  
  363.     //SetImage!!
  364.     SpriteList[0].SetImage(iSpriteList[0]);
  365.     SpriteList[1].SetImage(iSpriteList[1]);
  366.     SpriteList[2].SetImage(iSpriteList[2]);
  367.     SpriteList[3].SetImage(iSpriteList[3]);
  368.     SpriteList[4].SetImage(iSpriteList[4]);
  369.     SpriteList[5].SetImage(iSpriteList[5]);
  370.     SpriteList[6].SetImage(iSpriteList[6]);
  371.     SpriteList[7].SetImage(iSpriteList[7]);
  372.     SpriteList[8].SetImage(iSpriteList[8]);
  373.     SpriteList[9].SetImage(iSpriteList[9]);
  374.     SpriteList[10].SetImage(iSpriteList[10]);
  375.     SpriteList[11].SetImage(iSpriteList[11]);
  376.     SpriteList[12].SetImage(iSpriteList[12]);
  377.     SpriteList[13].SetImage(iSpriteList[13]);
  378.     SpriteList[14].SetImage(iSpriteList[14]);
  379.     SpriteList[15].SetImage(iSpriteList[15]);
  380.     SpriteList[16].SetImage(iSpriteList[16]);
  381.     SpriteList[17].SetImage(iSpriteList[17]);
  382.     SpriteList[18].SetImage(iSpriteList[18]);
  383.     SpriteList[19].SetImage(iSpriteList[19]);
  384.     SpriteList[20].SetImage(iSpriteList[20]);
  385.     SpriteList[21].SetImage(iSpriteList[21]);
  386.     SpriteList[22].SetImage(iSpriteList[22]);
  387.     SpriteList[23].SetImage(iSpriteList[23]);
  388.     SpriteList[24].SetImage(iSpriteList[24]);
  389.     SpriteList[25].SetImage(iSpriteList[25]);
  390.     SpriteList[26].SetImage(iSpriteList[26]);
  391.     //SetPosition(x,y)!!
  392.     SpriteList[0].SetPosition(-5.f/32.f,-5.f/32.f);///
  393.     SpriteList[1].SetPosition(333.f/32.f,13.f/32.f);///
  394.     SpriteList[2].SetPosition(333.f/32.f,39.f/32.f);///
  395.     SpriteList[3].SetPosition(33.f/32.f,48.f/32.f);///
  396.     SpriteList[4].SetPosition(26.f/32.f,99.f/32.f);///
  397.     SpriteList[5].SetPosition(174.f/32.f,54.f/32.f);///
  398.     SpriteList[6].SetPosition(172.f/32.f,90.f/32.f);///
  399.     SpriteList[7].SetPosition(164.f/32.f,108.f/32.f);///
  400.     SpriteList[8].SetPosition(49.f/32.f,40.f/32.f);///
  401.     SpriteList[9].SetPosition(49.f/32.f,72.f/32.f);///
  402.     SpriteList[10].SetPosition(24.f/32.f,93.f/32.f);///
  403.     SpriteList[11].SetPosition(24.f/32.f,109.f/32.f);///
  404.     SpriteList[12].SetPosition(205.f/32.f,39.5f/32.f);///
  405.     SpriteList[13].SetPosition(205.f/32.f,70.5f/32.f);///
  406.     SpriteList[14].SetPosition(110.f/32.f,403.f/32.f);///
  407.     SpriteList[15].SetPosition(110.f/32.f,403.f/32.f);///
  408.     SpriteList[16].SetPosition(332.f/32.f,22.f/32.f);////
  409.     SpriteList[17].SetPosition(4.f/32.f,22.f/32.f);////
  410.     SpriteList[18].SetPosition(4.f/32.f,30.f/32.f);////
  411.     SpriteList[19].SetPosition(343.f/32.f,22.f/32.f);///
  412.     SpriteList[20].SetPosition(333.5f/32.f,65.f/32.f);///
  413.     SpriteList[21].SetPosition(39.5f/32.f,23.f/32.f);////
  414.     SpriteList[23].SetPosition(9.f/32.f,39.5f/32.f);///
  415.     SpriteList[24].SetPosition(9.f/32.f,84.f/32.f);///
  416.     SpriteList[25].SetPosition(154.5f/32.f,39.f/32.f);///
  417.     SpriteList[26].SetPosition(154.5f/32.f,84.f/32.f);///
  418.     //VECTOR STORE
  419.  
  420.  
  421.  
  422.     TextStat[0].SetColor(sf::Color::Yellow);
  423.     TextStat[1].SetColor(sf::Color::Red);
  424.     TextStat[2].SetColor(sf::Color::Green);
  425.     TextStat[3].SetColor(sf::Color::Yellow);
  426.     TextStat[4].SetColor(sf::Color::Blue);
  427.  
  428.  
  429.     TextStat[0].SetPosition(9.f/32.f,15.f/32.f);
  430.     TextStat[1].SetPosition(223.f/32.f,7.f/32.f);
  431.     TextStat[2].SetPosition(223.f/32.f,21.f/32.f);
  432.     TextStat[3].SetPosition(273.f/32.f,18.f/32.f);
  433.     TextStat[4].SetPosition(305.f/32.f,400.f/32.f);
  434.  
  435.  
  436.     TextStat[0].SetSize(0.5);
  437.     TextStat[1].SetSize(8.f/32.f);
  438.     TextStat[2].SetSize(10.f/32.f);
  439.     TextStat[3].SetSize(9.f/32.f);
  440.     TextStat[4].SetSize(12.f/32.f);//10
  441.  
  442.  
  443.     //TextStat[0].SetFont(MainFont);
  444.     TextStat[1].SetFont(MainFont);
  445.     TextStat[2].SetFont(MainFont);
  446.     TextStat[3].SetFont(MainFont);
  447.     TextStat[4].SetFont(MainFont);
  448.  
  449.  
  450. }
  451.  
  452. void SFMLdraw()
  453. {
  454. //////////////////////////////STAT RESIZE/SUBRECT///////////////////////////////////////
  455.         //SpriteList[1].SetSubRect(sf::IntRect(0,0,120,12)); //30,3
  456.         //SpriteList[2].SetSubRect(sf::IntRect(0,0,120,12)); //30,3
  457.         //SpriteList[3].SetSubRect(sf::IntRect(pPlayer->get_Str()*28,0,(pPlayer->get_Str()*28)+28,7)); //28,7
  458.         //SpriteList[4].SetSubRect(sf::IntRect(pPlayer->get_Dex()*28,0,(pPlayer->get_Dex()*28)+28,7)); //28,7
  459.         //SpriteList[5].SetSubRect(sf::IntRect(pPlayer->get_Int()*28,0,(pPlayer->get_Int()*28)+28,7)); //28,7
  460.         //SpriteList[6].SetSubRect(sf::IntRect(pPlayer->get_End()*28,0,(pPlayer->get_End()*28)+28,7)); //28,7
  461.         //SpriteList[7].SetSubRect(sf::IntRect(pPlayer->get_Crit()*28,0,(pPlayer->get_Crit()*28)+28,7)); //28,7
  462.         SpriteList[8].SetSubRect(sf::IntRect(pPlayer->get_Sword()*69,0,(pPlayer->get_Sword()*69)+69,8)); //18,3
  463.         SpriteList[9].SetSubRect(sf::IntRect(pPlayer->get_Axe()*69,0,(pPlayer->get_Axe()*69)+69,8)); //18,3
  464.         SpriteList[10].SetSubRect(sf::IntRect(pPlayer->get_Bow()*65,0,(pPlayer->get_Bow()*65)+65,5)); //18,3
  465.         SpriteList[11].SetSubRect(sf::IntRect(pPlayer->get_Star()*65,0,(pPlayer->get_Star()*65)+65,5)); //18,3
  466.         SpriteList[12].SetSubRect(sf::IntRect(pPlayer->get_Wand()*52,0,(pPlayer->get_Wand()*52)+52,7)); //18,3
  467.         SpriteList[13].SetSubRect(sf::IntRect(pPlayer->get_Staff()*52,0,(pPlayer->get_Staff()*52)+52,7)); //18,3
  468.         SpriteList[14].SetSubRect(sf::IntRect((pPlayer->get_BagShow()*42),0,(pPlayer->get_BagShow()*42)+42,21));
  469.         SpriteList[15].SetSubRect(sf::IntRect(((pPlayer->get_EquipShow()+5)*42),0,((pPlayer->get_EquipShow()+5)*42)+42,21));
  470.         //SpriteList[16].SetSubRect(sf::IntRect(pPlayer->get_SkillShow()*30,0,(pPlayer->get_SkillShow()*30)+30,64));
  471.         //SpriteList[17].SetSubRect(sf::IntRect(pPlayer->get_Health()*7,0,(pPlayer->get_Health()*7)+7,5));
  472.         //SpriteList[18].SetSubRect(sf::IntRect(pPlayer->get_Energy()*7,0,(pPlayer->get_Energy()*7)+7,5));
  473.         //SpriteList[19].SetSubRect(sf::IntRect(0,0,128,20));
  474.         //SpriteList[20].SetSubRect(sf::IntRect(pPlayer->get_Rank()*14,0,(pPlayer->get_Rank()*14)+14,6));//10
  475.         //SpriteList[21].SetSubRect(sf::IntRect(pPlayer->get_tRankXPN()*18,0,(pPlayer->get_tRankXPN()*18)+18,10));//16
  476.  
  477. /////////////////////RESIZE PART
  478.         SpriteList[0].Resize(810.f/32.f,610.f/32.f);
  479.         SpriteList[1].Resize(((pPlayer->get_Health()/pPlayer->get_MaxHealth())*72.f)/32.f,18.f/32.f);
  480.         SpriteList[2].Resize(((pPlayer->get_Energy()/100.f)*72.f)/32.f,18.f/32.f);
  481.         SpriteList[3].Resize(((pPlayer->get_Str()/15.f)*105.f)/32.f,24.f/32.f);
  482.         SpriteList[4].Resize(((pPlayer->get_Dex()/15.f)*105.f)/32.f,10.f/32.f);
  483.         SpriteList[5].Resize(((pPlayer->get_Int()/15.f)*105.f)/32.f,11.f/32.f);
  484.         SpriteList[6].Resize(((pPlayer->get_End()/15.f)*105.f)/32.f,9.f/32.f);
  485.         SpriteList[7].Resize((((pPlayer->get_Crit()/15.f)*105.f))/32.f,6.f/32.f);
  486.         SpriteList[8].Resize(69.f/32.f,8.f/32.f);
  487.         SpriteList[9].Resize(69.f/32.f,8.f/32.f);
  488.         SpriteList[10].Resize(65.f/32.f,5.f/32.f);
  489.         SpriteList[11].Resize(65.f/32.f,5.f/32.f);
  490.         SpriteList[12].Resize(52.f/32.f,7.f/32.f);
  491.         SpriteList[13].Resize(52.f/32.f,7.f/32.f);
  492.         SpriteList[14].Resize(42.f/32.f,21.f/32.f);
  493.         SpriteList[15].Resize(42.f/32.f,21.f/32.f);
  494.         SpriteList[16].Resize(10.f/32.f,10.f/32.f);//
  495.         SpriteList[17].Resize(7.f/16.f,5.f/16.f);//
  496.         SpriteList[18].Resize(7.f/16.f,5.f/16.f);//
  497.         SpriteList[19].Resize(((pPlayer->get_Guard()/100)*62.f)/32.f,9.f/32.f);
  498.         SpriteList[20].Resize(((pPlayer->get_RankXP()/pPlayer->get_RankXPN())*72.f)/32.f,18.f/32.f);
  499.         SpriteList[21].Resize(18.f/16.f,10.f/16.f);//
  500.         SpriteList[22].Resize(15.f/16.f,15.f/16.f);
  501.         SpriteList[23].Resize(139.f/32.f,40.f/32.f);
  502.         SpriteList[24].Resize(139.f/32.f,40.f/32.f);
  503.         SpriteList[25].Resize(139.f/32.f,40.f/32.f);
  504.         SpriteList[26].Resize(139.f/32.f,40.f/32.f);
  505.  
  506.         string ssHP,ssEP,ssLV;
  507.         std::stringstream sssHP,sssEP,sssLV;
  508.  
  509.         sssHP << pPlayer->get_Health();
  510.         sssEP << pPlayer->get_Energy();
  511.         sssLV << pPlayer->get_Rank();
  512.  
  513.         sssHP>>ssHP;
  514.         sssEP>>ssEP;
  515.         sssLV>>ssLV;
  516.  
  517.         TextStat[0].SetText(pPlayer->get_Name());
  518.         TextStat[1].SetText(ssHP);
  519.         TextStat[2].SetText(ssEP);
  520.         TextStat[3].SetText(ssLV);
  521.         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 ");
  522.  
  523. ///////////////////////////////////END RESIZE/SUBRECT!!!////////////////////////////////
  524. ////////////////////////////////////DONT TOUCH/////////////////////////////////////////
  525.  
  526. ///////////////////////////////NOW YOU CAN TOUCH//////////////////////////////////////////
  527. //////////////////////////////DRAW STARTS///////////////////////////////////////////////
  528.         ///LAYER 1
  529.         GameWind.Draw(SpriteList[0]);
  530.         if(pPlayer->get_Health()!=0){GameWind.Draw(SpriteList[1]);}
  531.         if(pPlayer->get_Energy()!=0){GameWind.Draw(SpriteList[2]);}
  532.         if(pPlayer->get_Str()!=0){GameWind.Draw(SpriteList[3]);}
  533.         if(pPlayer->get_Dex()!=0){GameWind.Draw(SpriteList[4]);}
  534.         if(pPlayer->get_Int()!=0){GameWind.Draw(SpriteList[5]);}
  535.         if(pPlayer->get_End()!=0){GameWind.Draw(SpriteList[6]);}
  536.         if(pPlayer->get_Crit()!=0){GameWind.Draw(SpriteList[7]);}
  537.         if(pPlayer->get_Sword()!=0){GameWind.Draw(SpriteList[8]);}
  538.         if(pPlayer->get_Axe()!=0){GameWind.Draw(SpriteList[9]);}
  539.         if(pPlayer->get_Bow()!=0){GameWind.Draw(SpriteList[10]);}
  540.         if(pPlayer->get_Star()!=0){GameWind.Draw(SpriteList[11]);}
  541.         if(pPlayer->get_Wand()!=0){GameWind.Draw(SpriteList[12]);}
  542.         if(pPlayer->get_Staff()!=0){GameWind.Draw(SpriteList[13]);}
  543.         //GameWind.Draw(SpriteList[14]);
  544.         //GameWind.Draw(SpriteList[15]);
  545.         if(pPlayer->get_Guard()!=0){GameWind.Draw(SpriteList[19]);}
  546.         if(pPlayer->get_RankXP()!=0){GameWind.Draw(SpriteList[20]);}
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.         ///LAYER 2
  555.         GameWind.Draw(SpriteList[23]);
  556.         GameWind.Draw(SpriteList[24]);
  557.         GameWind.Draw(SpriteList[25]);
  558.         GameWind.Draw(SpriteList[26]);
  559.         GameWind.Draw(SpriteList[16]);
  560.         GameWind.Draw(TextStat[0]);
  561.         GameWind.Draw(TextStat[1]);
  562.         GameWind.Draw(TextStat[2]);
  563.         GameWind.Draw(TextStat[3]);
  564.         GameWind.Draw(TextStat[4]);
  565.  
  566.  
  567. }
  568.  
  569. void GLMcreate()
  570. {
  571.     ModelList[0] = glmReadOBJ("3Dobject/CarperonMAINv1.obj");
  572.     glmUnitize(ModelList[0]);
  573.     glmFacetNormals(ModelList[0]);
  574.     glmVertexNormals(ModelList[0], 200.0,0);
  575.     glmLinearTexture(ModelList[0]);
  576.     glmScale(ModelList[0],1000);
  577.  
  578.     sfTexture[0].LoadFromFile("3Dobject/CarperonTextv1.tga");
  579.     _texture[0] = LoadTexture(sfTexture[0]);
  580.  
  581.     ModelList[0]->textures->id =  _texture[0];
  582.     ModelList[0]->textures->width=1;
  583.     ModelList[0]->textures->height=1;
  584.  
  585.     ModelList[1] = glmReadOBJ("3Dobject/WaterModel.obj");
  586.     glmUnitize(ModelList[1]);
  587.     glmLinearTexture(ModelList[1]);
  588.     glmScale(ModelList[1],1000);
  589.  
  590.     sfTexture[1].LoadFromFile("3Dobject/WaterText.png");
  591.     _texture[1] = LoadTexture(sfTexture[1]);
  592.  
  593.     ModelList[1]->textures->id =  _texture[1];
  594.     ModelList[1]->textures->width=30;
  595.     ModelList[1]->textures->height=30;
  596.  
  597. }
  598.  
  599. void GLdraw()
  600. {
  601.     GameWind.SetActive();
  602.     glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
  603.     ////////AMBIENT LIGHT
  604.     GLfloat AmbientColor[] = {1.f,0.0f,0.0f,1.0f};
  605.     glLightModelfv(GL_LIGHT_MODEL_AMBIENT,AmbientColor);
  606.     ////////POSITIONED LIGHT
  607.     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
  608.     GLfloat LightPos0[] = {0.0f,900.0f,1000.0f,1.0f};
  609.     glLightfv(GL_LIGHT0,GL_DIFFUSE,LightColor0);
  610.     glLightfv(GL_LIGHT0,GL_POSITION,LightPos0);
  611.     ////////DIRECTED LIGHT
  612.     GLfloat LightColor1[] = {0.9f,0.9f,0.6f,0.0f};
  613.     /////Coming from direction (x,y,z)
  614.     GLfloat LightPos1[] = {0.0f,0.3f,-10.5f,0.0f};
  615.     glLightfv(GL_LIGHT1,GL_DIFFUSE,LightColor1);
  616.     glLightfv(GL_LIGHT1,GL_POSITION,LightPos1);
  617.  
  618.  
  619.  
  620.     ///DRAWING MODELS
  621.     glPushMatrix();
  622.     glTranslatef(0,0,0);
  623.     glmDraw(ModelList[0],GLM_SMOOTH|GLM_TEXTURE|GLM_MATERIAL);
  624.     glPopMatrix();
  625.  
  626.     glPushMatrix();
  627.     glTranslatef(0,-32.5,0);
  628.     glmDraw(ModelList[1],GLM_SMOOTH|GLM_TEXTURE|GLM_MATERIAL);
  629.     glPopMatrix();
  630.     ///PLAYER
  631.     glPushMatrix();
  632.     glTranslatef(pPlayer->get_posX(),pPlayer->get_posY(),pPlayer->get_posZ());
  633.     glRotatef(90,1,0,0);
  634.     glmDraw(pPlayer->LiveModel,GLM_SMOOTH|GLM_TEXTURE|GLM_MATERIAL);
  635.     glPopMatrix();
  636.  
  637. }
  638.  
  639. void GLiniti()
  640. {
  641.     GameWind.PreserveOpenGLStates(true);
  642.     GameWind.ShowMouseCursor(false);
  643.  
  644.     glClearDepth(1.f);
  645.     glClearColor(0.0f,0.0f,0.0f,1.f);
  646.     /////z buffer
  647.     glEnable(GL_POLYGON_STIPPLE);
  648.     glEnable(GL_BLEND);
  649.     glEnable(GL_DEPTH_TEST);
  650.     glEnable(GL_DEPTH_BUFFER_BIT);
  651.     glEnable(GL_COLOR_MATERIAL);
  652.     glEnable(GL_LIGHTING);
  653.     glEnable(GL_LIGHT0);
  654.     //glEnable(GL_LIGHT1);
  655.     //glEnable(GL_CULL_FACE);
  656.     glEnable(GL_NORMALIZE);
  657.     glEnable(GL_TEXTURE_2D);
  658.  
  659.  
  660.     glEnableClientState(GL_VERTEX_ARRAY);
  661.     glEnableClientState(GL_TEXTURE_COORD_ARRAY);
  662.     glEnableClientState(GL_NORMAL_ARRAY);
  663.  
  664.     glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  665.     //glCullFace(GL_FRONT_AND_BACK);
  666.     glFrontFace(GL_CW);
  667.     glShadeModel(GL_SMOOTH);
  668.     glDepthMask(GL_TRUE);
  669.  
  670.     glDepthFunc(GL_LEQUAL);
  671.     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
  672.  
  673.  
  674.  
  675.  
  676.     glMatrixMode(GL_PROJECTION);
  677.     glLoadIdentity();
  678.     gluPerspective(35.f,(double)800 / (double)600,1.f,9000.f);
  679.     glRotatef(30.f,1.f,0.f,0.f);
  680.     //glTranslatef(0.f, -3.f, -10.0f);
  681.  
  682. }
  683.  
  684. GLuint LoadTexture(sf::Image image)
  685. {
  686.     GLuint Texture;
  687.  
  688.     glGenTextures(1, &Texture);
  689.     glBindTexture(GL_TEXTURE_2D, Texture);
  690.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
  691.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
  692.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  693.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  694.     glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, image.GetWidth(), image.GetHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, image.GetPixelsPtr());
  695.  
  696.  
  697.     return Texture;
  698. }
  699.  
  700. void ITEMdefault()
  701. {
  702.     Blank *BlankSpot=new Blank();
  703.     BlankSpot->ItemCreate();
  704.     DefItemList.push_back(BlankSpot);///0
  705.  
  706.  
  707.     ///Other Items 10-49
  708.     //Potions 10-14
  709.     OtherItem *HPpotion=new OtherItem();
  710.     HPpotion->PotionCreate(10,6,8,6);
  711.     DefItemList.push_back(HPpotion);///1
  712.     OtherItem *EPpotion=new OtherItem();
  713.     EPpotion->PotionCreate(11,7,8,7);
  714.     DefItemList.push_back(EPpotion);///2
  715.     //Molds 15-24
  716.     OtherItem *SwordMold=new OtherItem();
  717.     SwordMold->MoldCreate(15,1,7);
  718.     DefItemList.push_back(SwordMold);///3
  719.     OtherItem *AxeMold=new OtherItem();
  720.     AxeMold->MoldCreate(16,2,7);
  721.     DefItemList.push_back(AxeMold);///4
  722.     OtherItem *MailMold=new OtherItem();
  723.     MailMold->MoldCreate(17,3,7);
  724.     DefItemList.push_back(MailMold);///5
  725.     OtherItem *BowMold=new OtherItem();
  726.     BowMold->MoldCreate(18,4,7);
  727.     DefItemList.push_back(BowMold);///6
  728.     OtherItem *StarMold=new OtherItem();
  729.     StarMold->MoldCreate(19,5,7);
  730.     DefItemList.push_back(StarMold);///7
  731.     OtherItem *LeatherMold=new OtherItem();
  732.     LeatherMold->MoldCreate(20,6,7);
  733.     DefItemList.push_back(LeatherMold);///8
  734.     OtherItem *WandMold=new OtherItem();
  735.     WandMold->MoldCreate(21,7,7);
  736.     DefItemList.push_back(WandMold);///9
  737.     OtherItem *StaffMold=new OtherItem();
  738.     StaffMold->MoldCreate(22,8,7);
  739.     DefItemList.push_back(StaffMold);///10
  740.     OtherItem *ClothMold=new OtherItem();
  741.     ClothMold->MoldCreate(23,9,7);
  742.     DefItemList.push_back(ClothMold);///11
  743.     OtherItem *NeckMold=new OtherItem();
  744.     NeckMold->MoldCreate(24,10,7);
  745.     DefItemList.push_back(NeckMold);///12
  746.  
  747.     ///Color Orbs 50-59
  748.     //Default
  749.     Orb *ReddOrb=new Orb();
  750.     ReddOrb->OrbCreate(50,0,1);
  751.     DefItemList.push_back(ReddOrb);///13
  752.     Orb *PurpolOrb=new Orb();
  753.     PurpolOrb->OrbCreate(51,0,2);
  754.     DefItemList.push_back(PurpolOrb);///14
  755.     Orb *BlooOrb=new Orb();
  756.     BlooOrb->OrbCreate(52,0,3);
  757.     DefItemList.push_back(BlooOrb);///15
  758.     Orb *GrinOrb=new Orb();
  759.     GrinOrb->OrbCreate(53,0,4);
  760.     DefItemList.push_back(GrinOrb);///16
  761.     Orb *YellerOrb=new Orb();
  762.     YellerOrb->OrbCreate(54,0,5);
  763.     DefItemList.push_back(YellerOrb);///17
  764.     Orb *GressOrb=new Orb();
  765.     GressOrb->OrbCreate(55,0,6);
  766.     DefItemList.push_back(GressOrb);///18
  767.  
  768.     ///Weapon Icons 60-69
  769.     //Default
  770.     WpnIcon *SwordIcon=new WpnIcon();
  771.     SwordIcon->WpnIcnCreate(60,1,0);
  772.     DefItemList.push_back(SwordIcon);///19
  773.     WpnIcon *AxeIcon=new WpnIcon();
  774.     AxeIcon->WpnIcnCreate(61,2,0);
  775.     DefItemList.push_back(AxeIcon);///20
  776.     WpnIcon *MailIcon=new WpnIcon();
  777.     MailIcon->WpnIcnCreate(62,3,0);
  778.     DefItemList.push_back(MailIcon);///21
  779.     WpnIcon *BowIcon=new WpnIcon();
  780.     BowIcon->WpnIcnCreate(63,4,0);
  781.     DefItemList.push_back(BowIcon);///22
  782.     WpnIcon *StarIcon=new WpnIcon();
  783.     StarIcon->WpnIcnCreate(64,5,0);
  784.     DefItemList.push_back(StarIcon);///23
  785.     WpnIcon *LeatherIcon=new WpnIcon();
  786.     LeatherIcon->WpnIcnCreate(65,6,0);
  787.     DefItemList.push_back(LeatherIcon);///24
  788.     WpnIcon *WandIcon=new WpnIcon();
  789.     WandIcon->WpnIcnCreate(66,7,0);
  790.     DefItemList.push_back(WandIcon);///25
  791.     WpnIcon *StaffIcon=new WpnIcon();
  792.     StaffIcon->WpnIcnCreate(67,8,0);
  793.     DefItemList.push_back(StaffIcon);///26
  794.     WpnIcon *ClothIcon=new WpnIcon();
  795.     ClothIcon->WpnIcnCreate(68,9,0);
  796.     DefItemList.push_back(ClothIcon);///27
  797.     WpnIcon *NeckIcon=new WpnIcon();
  798.     NeckIcon->WpnIcnCreate(69,10,0);
  799.     DefItemList.push_back(NeckIcon);///28
  800.  
  801.     ///Stat Gems 70-79
  802.     //Default
  803.     StatGem *StrGem=new StatGem();
  804.     StrGem->StatGemCreate(70,0,8,0);
  805.     DefItemList.push_back(StrGem);///29
  806.     StatGem *EndGem=new StatGem();
  807.     EndGem->StatGemCreate(71,1,8,3);
  808.     DefItemList.push_back(EndGem);///30
  809.     StatGem *IntGem=new StatGem();
  810.     IntGem->StatGemCreate(72,2,8,2);
  811.     DefItemList.push_back(IntGem);///31
  812.     StatGem *DexGem=new StatGem();
  813.     DexGem->StatGemCreate(73,3,0,1);
  814.     DefItemList.push_back(DexGem);///32
  815.     StatGem *CritGem=new StatGem();
  816.     CritGem->StatGemCreate(74,4,8,4);
  817.     DefItemList.push_back(CritGem);///33
  818.     StatGem *ShareGem=new StatGem();
  819.     ShareGem->StatGemCreate(75,5,8,5);
  820.     DefItemList.push_back(ShareGem);///34
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828. }
  829.  
  830. btDynamicsWorld *CreateDynamoWorld()
  831. {
  832.     btDbvtBroadphase *MainBF = new btDbvtBroadphase();
  833.     btDefaultCollisionConfiguration *defCOLL = new btDefaultCollisionConfiguration();
  834.     btCollisionDispatcher *COLLdispatch = new btCollisionDispatcher(defCOLL);
  835.     btSequentialImpulseConstraintSolver *SICsolver = new btSequentialImpulseConstraintSolver;
  836.     btDiscreteDynamicsWorld *DynamoWorld = new btDiscreteDynamicsWorld(COLLdispatch,MainBF,SICsolver,defCOLL);
  837.  
  838.     DynamoWorld->setGravity(btVector3(0,-10,0));
  839.     return DynamoWorld;
  840. }
  841.  
  842. btRigidBody *LivingBodyCreate()
  843. {
  844.  
  845.     btDefaultMotionState *FallingStateMOT = new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(pPlayer->get_posX(),pPlayer->get_posY(),pPlayer->get_posZ())));
  846.     btScalar Mass = 10;
  847.     btVector3 FallInertia(0,0,0);
  848.     btCollisionShape* WfallShape = new btSphereShape(1);
  849.     btRigidBody::btRigidBodyConstructionInfo FallingRigidCI(Mass,FallingStateMOT,WfallShape,FallInertia);
  850.     btRigidBody *FallRigid = new btRigidBody(FallingRigidCI);
  851.     return FallRigid;
  852. }
  853.  
  854.  
  855. btRigidBody *GroundBodyCreate()
  856. {
  857.     btCollisionShape* Worldshape = new btStaticPlaneShape(btVector3(0,1,0),-25);
  858.     //btCollisionShape *WorldTriangleShape = new btBvhTriangleMeshShape(indexVertexArrays,useQuantizedBvhTree);
  859.     btDefaultMotionState *defMOTstate = new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,-1,0)));
  860.     btRigidBody::btRigidBodyConstructionInfo GroundBodyCI(0,defMOTstate,Worldshape,btVector3(0,0,0));
  861.     btRigidBody *GroundBody = new btRigidBody(GroundBodyCI);
  862.     return GroundBody;
  863. }
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872. /*
  873. btRigidBody *GroundBodyCreate()
  874. {
  875.     //int VERTI_AM = ModelList[0]->numvertices;
  876.     btTriangleMesh *WorldTriMesh = new btTriangleMesh();
  877.     for(int v=0;v<16641;v+3)
  878.     {
  879.         btScalar c1 = ModelList[0]->vertices[v,0];
  880.         btScalar c2 = ModelList[0]->vertices[v,1];
  881.         btScalar c3 = ModelList[0]->vertices[v,2];
  882.         btVector3 TriangleVertex1(c1,c2,c3);
  883.         btScalar c4 = ModelList[0]->vertices[v+1,0];
  884.         btScalar c5 = ModelList[0]->vertices[v+1,1];
  885.         btScalar c6 = ModelList[0]->vertices[v+1,2];
  886.         btVector3 TriangleVertex2(c4,c5,c6);
  887.         btScalar c7 = ModelList[0]->vertices[v+2,0];
  888.         btScalar c8 = ModelList[0]->vertices[v+2,1];
  889.         btScalar c9 = ModelList[0]->vertices[v+2,2];
  890.         btVector3 TriangleVertex3(c7,c8,c9);
  891.         WorldTriMesh->addTriangle(TriangleVertex1,TriangleVertex2,TriangleVertex3);
  892.         //btVector3 v0(ModelList[0]->vertices[v,0],ModelList[0]->vertices[v,1],ModelList[0]->vertices[v,2]);
  893.         //btVector3 v1(ModelList[0]->vertices[v+1,0],ModelList[0]->vertices[v+1,1],ModelList[0]->vertices[v+1,2]);
  894.         //btVector3 v2(ModelList[0]->vertices[v+2,0],ModelList[0]->vertices[v+2,1],ModelList[0]->vertices[v+2,2]);
  895.         //WorldTriMesh->addTriangle(v0,v1,v2);
  896.         //WorldTriMesh->addTriangle(ModelList[0]->vertices[v],ModelList[0]->vertices[v+1],ModelList[0]->vertices[v+2])
  897.     }
  898.     btCollisionShape *WorldColShape = new btBvhTriangleMeshShape(WorldTriMesh,false);
  899.     btDefaultMotionState *defMOTstate = new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,-1,0)));
  900.     btRigidBody::btRigidBodyConstructionInfo GroundBodyCI(0,defMOTstate,WorldColShape,btVector3(0,0,0));
  901.     btRigidBody *GroundBody = new btRigidBody(GroundBodyCI);
  902.     return GroundBody;
  903. }
  904. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement