SHOW:
|
|
- or go back to the newest paste.
| 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: "<< |
| 81 | + | |
| 82 | - | myWatch->_items()<<"\nItem: "<< |
| 82 | + | |
| 83 | - | myWatch->_items()->inventory[a].get()<<"\nSprite: "<< |
| 83 | + | |
| 84 | - | myWatch->_items()->inventory[a]->_spr()<<"\nSprite Name: "<< ///ERROR!! |
| 84 | + | |
| 85 | - | myWatch->_items()->inventory[a]->_spr().name<<"\nSprite Index: "<< |
| 85 | + | |
| 86 | - | myWatch->_items()->inventory[a]->_spr().index<<"\n"<<std::endl; |
| 86 | + | |
| 87 | } | |
| 88 | else{
| |
| 89 | sItemP[a].changeSpr("BLANK","");
| |
| 90 | sItemK[a].changeSpr("BLANK","");
| |
| 91 | cItem[a].changeText("");
| |
| 92 | } | |
| 93 | } | |
| 94 | } | |
| 95 | } |