Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

/home/groups/n/no/noxwizard/cvs/src/set.h

Go to the documentation of this file.
00001   /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
00002     || NoX-Wizard UO Server Emulator (NXW) [http://noxwizard.sourceforge.net]  ||
00003     ||                                                                         ||
00004     || This software is free software released under GPL2 license.             ||
00005     || You can find detailed license information in nox-wizard.cpp file.       ||
00006     ||                                                                         ||
00007     || For any question post to NoX-Wizard forums.                             ||
00008     -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
00009 
00015 #ifndef __SET_H__
00016 #define __SET_H__
00017 
00018 #include "nxwcommn.h"
00019 #include "guild.h"
00020 
00021 class NxwWrapper {
00022 
00023 private:
00024         SERIAL_VECTOR vect;
00025         SERIAL_VECTOR::iterator current;
00026 
00027 protected:
00028         void next();
00029 
00030 public:
00031         NxwWrapper();
00032         ~NxwWrapper();
00033 
00034         LOGICAL isEmpty();
00035         void clear();
00036         UI32 size();
00037         
00038         void rewind();
00039         NxwWrapper& operator++(int);
00040 
00041 
00042         SERIAL get();
00043         void insert( SERIAL s );
00044         
00045         void copyQ( const NxwWrapper& from );
00046 };
00047 
00048 class NxwSerialWrapper : public NxwWrapper {
00049 
00050 protected: 
00051         void fillSerialInContainer( SERIAL serial, LOGICAL bIncludeSubContained = true, LOGICAL bIncludeOnlyFirstSubcont=false );
00052         void fillSerialInContainer( cObject* obj, LOGICAL bIncludeSubContained = true, LOGICAL bIncludeOnlyFirstSubcont=false );
00053 
00054 public:
00055         NxwSerialWrapper();
00056         ~NxwSerialWrapper();
00057 
00058         SERIAL getSerial();
00059         void insertSerial( SERIAL s );
00060         void insertSerial( cObject* obj );
00061 
00062 
00063 
00064 };
00065 
00066 class NxwCharWrapper : public NxwSerialWrapper {
00067 
00068 public:
00069         NxwCharWrapper();
00070         NxwCharWrapper( const NxwCharWrapper& that );
00071         ~NxwCharWrapper();
00072 
00073         P_CHAR getChar();
00074         void insertChar( P_CHAR pc );
00075 
00076         void fillOwnedNpcs( P_CHAR pc, LOGICAL bIncludeStabled = true, LOGICAL bOnlyFollowing = false );
00077         void fillCharsAtXY( Location location, LOGICAL bExcludeOfflinePlayers = true, LOGICAL bOnlyPlayer = false );
00078         void fillCharsAtXY( UI16 x, UI16 y, LOGICAL bExcludeOfflinePlayers = true, LOGICAL bOnlyPlayer = false );
00079         void fillCharsNearXYZ ( UI16 x, UI16 y, int nDistance = VISRANGE, LOGICAL bExcludeOfflinePlayers = true, LOGICAL bOnlyPlayer = false );
00080         void fillCharsNearXYZ ( Location location, int nDistance = VISRANGE, LOGICAL bExcludeOfflinePlayers = true, LOGICAL bOnlyPlayer = false );
00081         void fillPartyFriend( P_CHAR pc, UI32 nDistance = VISRANGE, LOGICAL bExcludeThis = false );
00082         void fillNpcsNearXY( UI16 x, UI16 y, int nDistance = VISRANGE );
00083         void fillNpcsNear( P_CHAR pc, int nDistance = VISRANGE );
00084         void fillNpcsNear( P_ITEM pi, int nDistance = VISRANGE );
00085         void fillGuildMembers( SERIAL guild );
00086         void fillGuildRecruits( SERIAL guild );
00087         void fillCoOwners ( SERIAL house );
00088         void fillFriends ( SERIAL house );
00089         void fillBanned ( SERIAL house );
00090         void fillCharsInsideHouse(SERIAL house);
00091         void fillCharsOutsideHouse(SERIAL house);
00092 };
00093 
00094 class NxwItemWrapper : public NxwSerialWrapper {
00095 
00096 public:
00097         NxwItemWrapper();
00098         NxwItemWrapper( const NxwItemWrapper& that );
00099         ~NxwItemWrapper();
00100 
00101         P_ITEM getItem();
00102         void insertItem( P_ITEM pi );
00103 
00104         void fillItemsInContainer ( P_ITEM pi, LOGICAL bIncludeSubContained = true, LOGICAL bIncludeOnlyFirstSubcont=false);
00105         void fillItemWeared( P_CHAR pc, LOGICAL bIncludeLikeHair = false, LOGICAL bIncludeProtectedLayer = false, LOGICAL bExcludeIllegalLayer=true );
00106         void fillItemsAtXY( UI16 x, UI16 y, SI32 type = INVALID, SI32 id = INVALID );
00107         void fillItemsAtXY( Location location, SI32 type = INVALID, SI32 id = INVALID );
00108         void fillItemsNearXYZ ( UI16 x, UI16 y, int nDistance = VISRANGE, LOGICAL bExcludeNotMovableItems = true);
00109         void fillItemsNearXYZ ( Location location, int nDistance = VISRANGE, LOGICAL bExcludeNotMovableItems = true);
00110         void fillGuilds( SERIAL guild, int options=0 );
00111         void fillHousesOwned( SERIAL chr);
00112         void fillItemsInsideHouse( SERIAL house, SI32 scriptID=INVALID);
00113         void fillItemsOutsideHouse( SERIAL house, SI32 scriptID=INVALID);
00114 
00115 };
00116 
00117 class NxwSocketWrapper : public NxwWrapper {
00118 
00119 public:
00120         NxwSocketWrapper();
00121         ~NxwSocketWrapper();
00122 
00123         SERIAL getSocket();
00124         NXWCLIENT getClient();
00125         void insertSocket( NXWSOCKET s );
00126         void insertClient( NXWCLIENT ps );
00127 
00128         void fillOnline( P_CHAR onlyNearThis, LOGICAL bExcludeThis = true, UI32 nDistance = VISRANGE );
00129         void fillOnline( Location location, int nDistance = VISRANGE );
00130         void fillOnline( P_ITEM onlyNearThis,int nDistance = VISRANGE );
00131         void fillOnline( );
00132 
00133 };
00134 
00135 
00136 const int RS_BACKPACK_ITEM = 1;
00137 const int RS_BANK_ITEM = 2;
00138 const int RS_EQUIP_ITEM = 3;
00139 
00140 
00141 namespace amxSet {
00142 
00143         typedef std::map< SERIAL, NxwWrapper* > AMX_WRAPPER_DB;
00144 
00145         
00146         SERIAL create(  );
00147         void deleteSet( SERIAL iSet );
00148         LOGICAL end( SERIAL iSet );
00149         void rewind( SERIAL iSet );
00150         void next( SERIAL iSet );
00151         UI32 size( SERIAL iSet);
00152 
00153         SERIAL get( SERIAL iSet );
00154         void add( SERIAL iSet, SERIAL nVal );
00155         void copy( SERIAL iSet, const NxwWrapper& from );
00156 
00157         void addOwnedNpcs( SERIAL iSet, P_CHAR pc, LOGICAL includeStabled, LOGICAL onlyFollowing );
00158         void addPartyFriend( SERIAL iSet, P_CHAR pc, int distance, LOGICAL excludeThis );
00159         void addNpcsNearXY( SERIAL iSet, UI16 x, UI16 y, int distance );
00160         void addNpcsNearObj( SERIAL iSet, P_CHAR pc, int nDistance );
00161         void addNpcsNearObj( SERIAL iSet, P_ITEM pi, int nDistance );
00162         void addItemsInContainer( SERIAL iSet, P_ITEM pi, LOGICAL includeSubCont, LOGICAL includeOnlyFirstSubCont );
00163         void addItemWeared( SERIAL iSet, P_CHAR pc, LOGICAL includeLikeHair, LOGICAL includeProtectedLayer, LOGICAL excludeIllegalLayer );
00164         void addItemsAtXY( SERIAL iSet, UI16 x, UI16 y, UI32 type );
00165         void addItemsNearXY( SERIAL iSet, UI16 x, UI16 y, int distance, LOGICAL excludeNotMovable );
00166         void addAllOnlinePlayers( SERIAL iSet );
00167         void addOnlinePlayersNearChar( SERIAL iSet, P_CHAR pc, LOGICAL excludeThis, int distance );
00168         void addOnlinePlayersNearItem( SERIAL iSet, P_ITEM pi, int distance );
00169         void addOnlinePlayersNearXY( SERIAL iSet, UI16 x, UI16 y, int distance );
00170 
00171         void addGuildMembers( SERIAL iSet, SERIAL guild );
00172         void addGuildRecruits( SERIAL iSet, SERIAL guild );
00173         void addGuilds( SERIAL iSet, SERIAL guild , int options = INVALID);
00174         void addHouseCoowners( SERIAL iSet, SERIAL house );
00175         void addHouseFriends( SERIAL iSet, SERIAL house  );
00176         void addHouseBans( SERIAL iSet, SERIAL house  );
00177         void addOwnHouses( SERIAL iSet, SERIAL chr  );
00178         void addCharsInsideHouse( SERIAL iSet, SERIAL house);
00179         void addCharsOutsideHouse( SERIAL iSet, SERIAL house);
00180         void addItemsInsideHouse( SERIAL iSet, SERIAL house, SI32 scriptID= INVALID);
00181         void addItemsOutsideHouse( SERIAL iSet, SERIAL house, SI32 scriptID= INVALID);
00182 
00183 
00184 }
00185 
00186 #endif //__SET_H__
SourceForge.net Logo