Advertisement
Guest User

Untitled

a guest
Dec 5th, 2013
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //NOTE: Code is not in this specific order, Sprite and ItemContainer are taken from the program itself where the other functions and classes are cut down(very large program)
  2. namespace Carp
  3. {
  4.     struct Sprite{
  5.         Gorilla::Rectangle *spr;
  6.         Ogre::String name/*Sprite name*/, index/*directional/frame index*/, codex;
  7.         Coord2 pos, siz, sect, scale/*x=pos, y=siz*/;
  8.         Color clr;
  9.         ///---------------------------Constructor-------------------------
  10.         Sprite(){setter("BLANK","");codex="";spr=0;};
  11.         Sprite(Ogre::String n,Ogre::String i){setter(n,i);codex="";spr=0;};
  12.         Sprite(Ogre::String n,Ogre::String i,Coord2 p,Coord2 sz,Coord2 st,Coord2 sc,Color c){
  13.             setter(n,i,p,sz,st,sc,c);codex="";spr=0;}
  14.         Sprite(const Carp::Sprite& s) :
  15.             name(s.name),index(s.index),codex(s.codex),pos(s.pos),siz(s.siz),sect(s.sect),
  16.             scale(s.scale),clr(s.clr),spr(0){}
  17.         ///---------------------------Setters-----------------------------
  18.         void setter(Sprite s){setter(s.name,s.index,s.pos,s.siz,s.sect,s.scale,s.clr);};
  19.         void setter(Ogre::String n,Ogre::String i){name=n;index=i;}
  20.         void setter(Ogre::String n,Ogre::String i,Coord2 p,Coord2 sz,Coord2 st,Coord2 sc,Color c){
  21.             name=n;index=i;pos.setter(p);siz.setter(sz);sect.setter(st);scale.setter(sc);clr.setter(c);}
  22.         ///---------------------------Functions---------------------------
  23.         void changeSpr(Ogre::String n,Ogre::String i){setter(n,i);update();}
  24.         void init(Gorilla::Layer *layer);///->
  25.         void update();///->
  26.     };
  27.    
  28.     ///ItemPtr is a shared_ptr of class Item(below)
  29.     struct ItemContainer{
  30.         ItemPtr inventory[60];
  31.         ItemPtr equip[2][7];
  32.         ItemPtr storage[10][100];
  33.         int limit,eGems[10];
  34.         ItemContainer(){
  35.             limit=28;
  36.             for(int a=0;a<10;a++)
  37.                 eGems[a]=0;
  38.             for(int b=0;b<60;b++)
  39.                 inventory[b].reset();
  40.             for(int c=0;c<2;c++)
  41.                 for(int d=0;d<7;d++)
  42.                 equip[c][d].reset();
  43.             for(int e=0;e<10;e++)
  44.                 for(int f=0;f<100;f++)
  45.                 storage[e][f].reset();
  46.         }
  47.         bool addItem(ItemPtr t);///->
  48.         bool storeItem(ItemPtr t);///->
  49.         ItemPtr dropItem(int p);///->
  50.         bool fillDupesI(ItemPtr t);///->
  51.         void delItem(int p);///->
  52.         void equipItem(int i,int s,int e);///->
  53.         void unequipItem(int s,int e);///->
  54.         bool useItem(int i);///->
  55.         void addGem(int i,int a){
  56.             eGems[i]+=a;}
  57.     };
  58.    
  59.     class Item{
  60.     protected:
  61.         Sprite spr;
  62.     public:
  63.         Sprite _spr() {return spr;};
  64.     };
  65.    
  66.     class Character{
  67.     protected:
  68.         ItemContainer *items;
  69.     public:
  70.         ItemContainer *_items(){return items;};
  71.     };
  72.    
  73.     class Interface{
  74.         public:
  75.         Sprite sItemP[28],sItemK[28];
  76.     }
  77.    
  78.     void Interface::updateGUI{
  79.         for(int a=0;a<28;a++){
  80.             if(myWatch->_items()->inventory[a].get()!=0){
  81.                 std::cout<<"Item Info: "<<a<<"\nItemContainer: "<<
  82.                 myWatch->_items()<<"\nItem: "<<
  83.                 myWatch->_items()->inventory[a].get()<<"\nSprite: "<<
  84.                 myWatch->_items()->inventory[a]->_spr()<<"\nSprite Name: "<<        ///ERROR!!
  85.                 myWatch->_items()->inventory[a]->_spr().name<<"\nSprite Index: "<<
  86.                 myWatch->_items()->inventory[a]->_spr().index<<"\n"<<std::endl;
  87.                 sItemP[a].changeSpr(myWatch->_items()->inventory[a]->_spr().name,myWatch->_items()->inventory[a]->_spr().index);
  88.                 sItemK[a].changeSpr(myWatch->_items()->inventory[a]->_sparkle().name,myWatch->_items()->inventory[a]->_sparkle().index);
  89.                 sItemP[a].clr.setter(myWatch->_items()->inventory[a]->_spr().clr);
  90.                 if(myWatch->_items()->inventory[a]->_amount().maxim!=-1){cItem[a].changeText(ogreSTR(myWatch->_items()->inventory[a]->_amount().current));}
  91.                 else if(myWatch->_items()->inventory[a]->_durability().maxim!=-1){cItem[a].changeText(ogreSTR(myWatch->_items()->inventory[a]->_durability().current));}
  92.                 else{cItem[a].changeText("");}
  93.             }
  94.             else{
  95.                 sItemP[a].changeSpr("BLANK","");
  96.                 sItemK[a].changeSpr("BLANK","");
  97.                 cItem[a].changeText("");
  98.             }
  99.         }
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement