Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //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)
- namespace Carp
- {
- struct Sprite{
- Gorilla::Rectangle *spr;
- Ogre::String name/*Sprite name*/, index/*directional/frame index*/, codex;
- Coord2 pos, siz, sect, scale/*x=pos, y=siz*/;
- Color clr;
- ///---------------------------Constructor-------------------------
- Sprite(){setter("BLANK","");codex="";spr=0;};
- Sprite(Ogre::String n,Ogre::String i){setter(n,i);codex="";spr=0;};
- Sprite(Ogre::String n,Ogre::String i,Coord2 p,Coord2 sz,Coord2 st,Coord2 sc,Color c){
- setter(n,i,p,sz,st,sc,c);codex="";spr=0;}
- Sprite(const Carp::Sprite& s) :
- name(s.name),index(s.index),codex(s.codex),pos(s.pos),siz(s.siz),sect(s.sect),
- scale(s.scale),clr(s.clr),spr(0){}
- ///---------------------------Setters-----------------------------
- void setter(Sprite s){setter(s.name,s.index,s.pos,s.siz,s.sect,s.scale,s.clr);};
- void setter(Ogre::String n,Ogre::String i){name=n;index=i;}
- void setter(Ogre::String n,Ogre::String i,Coord2 p,Coord2 sz,Coord2 st,Coord2 sc,Color c){
- name=n;index=i;pos.setter(p);siz.setter(sz);sect.setter(st);scale.setter(sc);clr.setter(c);}
- ///---------------------------Functions---------------------------
- void changeSpr(Ogre::String n,Ogre::String i){setter(n,i);update();}
- void init(Gorilla::Layer *layer);///->
- void update();///->
- };
- ///ItemPtr is a shared_ptr of class Item(below)
- struct ItemContainer{
- ItemPtr inventory[60];
- ItemPtr equip[2][7];
- ItemPtr storage[10][100];
- int limit,eGems[10];
- ItemContainer(){
- limit=28;
- for(int a=0;a<10;a++)
- eGems[a]=0;
- for(int b=0;b<60;b++)
- inventory[b].reset();
- for(int c=0;c<2;c++)
- for(int d=0;d<7;d++)
- equip[c][d].reset();
- for(int e=0;e<10;e++)
- for(int f=0;f<100;f++)
- storage[e][f].reset();
- }
- bool addItem(ItemPtr t);///->
- bool storeItem(ItemPtr t);///->
- ItemPtr dropItem(int p);///->
- bool fillDupesI(ItemPtr t);///->
- void delItem(int p);///->
- void equipItem(int i,int s,int e);///->
- void unequipItem(int s,int e);///->
- bool useItem(int i);///->
- void addGem(int i,int a){
- eGems[i]+=a;}
- };
- class Item{
- protected:
- Sprite spr;
- public:
- Sprite _spr() {return spr;};
- };
- class Character{
- protected:
- ItemContainer *items;
- public:
- ItemContainer *_items(){return items;};
- };
- class Interface{
- public:
- Sprite sItemP[28],sItemK[28];
- }
- void Interface::updateGUI{
- for(int a=0;a<28;a++){
- if(myWatch->_items()->inventory[a].get()!=0){
- sItemP[a].changeSpr(myWatch->_items()->inventory[a]->_spr().name,myWatch->_items()->inventory[a]->_spr().index);
- sItemK[a].changeSpr(myWatch->_items()->inventory[a]->_sparkle().name,myWatch->_items()->inventory[a]->_sparkle().index);
- sItemP[a].clr.setter(myWatch->_items()->inventory[a]->_spr().clr);
- if(myWatch->_items()->inventory[a]->_amount().maxim!=-1){cItem[a].changeText(ogreSTR(myWatch->_items()->inventory[a]->_amount().current));}
- else if(myWatch->_items()->inventory[a]->_durability().maxim!=-1){cItem[a].changeText(ogreSTR(myWatch->_items()->inventory[a]->_durability().current));}
- else{cItem[a].changeText("");}
- }
- else{
- sItemP[a].changeSpr("BLANK","");
- sItemK[a].changeSpr("BLANK","");
- cItem[a].changeText("");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement