Update of /cvsroot/wpdev/wolfpack/network
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9671/network
Modified Files:
uorxpackets.h uosocket.cpp uosocket.h uotxpackets.cpp
uotxpackets.h
Log Message:
Reimplemented context menus
Index: uorxpackets.h
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/network/uorxpackets.h,v
retrieving revision 1.54
retrieving revision 1.55
diff -C2 -d -r1.54 -r1.55
*** uorxpackets.h 5 Jan 2004 06:25:38 -0000 1.54
--- uorxpackets.h 28 Jan 2004 02:18:13 -0000 1.55
***************
*** 312,316 ****
Q_UINT32 serial( void ) const { return getInt( 5 ); }
! Q_UINT16 EntryTag( void ) const { return getShort( 9 ); }
};
--- 312,316 ----
Q_UINT32 serial( void ) const { return getInt( 5 ); }
! Q_UINT16 entryTag( void ) const { return getShort( 9 ); }
};
Index: uosocket.cpp
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/network/uosocket.cpp,v
retrieving revision 1.303
retrieving revision 1.304
diff -C2 -d -r1.303 -r1.304
*** uosocket.cpp 26 Jan 2004 03:48:40 -0000 1.303
--- uosocket.cpp 28 Jan 2004 02:18:14 -0000 1.304
***************
*** 72,75 ****
--- 72,76 ----
#include <qvaluelist.h>
+ #include <functional>
using namespace std;
***************
*** 108,114 ****
}
- #include <functional>
-
-
/*!
Destructs the cUOSocket instance.
--- 109,112 ----
***************
*** 1052,1066 ****
P_CHAR pChar;
P_ITEM pItem;
- const cConMenu *menu;
! Q_UINT16 Tag = packet->EntryTag();
!
!
pItem = FindItemBySerial( packet->serial() );
if ( pItem )
{
- menu = ContextMenus::instance()->getMenu( pItem->bindmenu(), this->player()->account()->acl() );
- if ( !menu )
- return;
menu->onContextEntry( this->player(), pItem, Tag );
}
--- 1050,1077 ----
P_CHAR pChar;
P_ITEM pItem;
! if ( contextMenu_.isEmpty() )
! return;
!
! Q_UINT16 Tag = packet->entryTag();
! cContextMenu* menu = 0;
! bool found = false;
! for ( menu = contextMenu_.first(); menu; menu = contextMenu_.next() )
! {
! if ( Tag >= menu->count() )
! Tag -= menu->count();
! else
! {
! found = true;
! break;
! }
! }
!
! if ( !found )
! return;
!
pItem = FindItemBySerial( packet->serial() );
if ( pItem )
{
menu->onContextEntry( this->player(), pItem, Tag );
}
***************
*** 1070,1076 ****
if( !pChar )
return;
- menu = ContextMenus::instance()->getMenu( pChar->bindmenu(), this->player()->account()->acl() );
- if ( !menu )
- return;
menu->onContextEntry( this->player(), pChar, Tag );
}
--- 1081,1084 ----
***************
*** 1143,1174 ****
return;
! if( !ContextMenus::instance()->menuExists( clicked->bindmenu() ) )
{
clicked->setBindmenu(QString::null);
return;
}
!
! QString acl = this->account()->acl();
! QString bindmenu = clicked->bindmenu();
!
! cUOTxContextMenu menu;
! menu.setSerial ( packet->serial() );
!
! const cConMenuOptions *tOptions = ContextMenus::instance()->getMenuOptions( bindmenu, acl );
!
! if ( !tOptions )
! return;
!
! Q_UINT16 Tag, IntlocID, MsgID;
!
! for (int i = 0; i < tOptions->getOptions().size(); i++)
{
! Tag = tOptions->getOptions()[i].getTag();
! IntlocID = tOptions->getOptions()[i].getIntlocID();
! MsgID = tOptions->getOptions()[i].getMsgID();
!
! menu.addEntry ( Tag, IntlocID, MsgID );
}
! send( &menu );
}
--- 1151,1192 ----
return;
! /* if( !ContextMenus::instance()->menuExists( clicked->bindmenu() ) )
{
clicked->setBindmenu(QString::null);
return;
}
! */
! cUOTxContextMenu menuPacket;
! menuPacket.setSerial ( packet->serial() );
!
! QStringList bindMenus = QStringList::split(",", clicked->bindmenu());
! QStringList::const_iterator menuIt = bindMenus.begin();
!
! contextMenu_.clear();
! unsigned int i = 0;
! for ( ; menuIt != bindMenus.end(); ++menuIt )
{
! cContextMenu* menu = ContextMenus::instance()->getMenu( *menuIt );
!
! if ( !menu )
! continue;
!
! contextMenu_.append( menu );
! uint entryCount = 0;
! cContextMenu::const_iterator it = menu->begin();
! for ( ; it != menu->end(); ++it, ++entryCount )
! {
! if ( (*it)->checkVisible() )
! if ( !menu->onCheckVisible( this->player(), clicked, entryCount ) )
! continue;
! bool enabled = true;
! if ( (*it)->checkEnabled() )
! if ( !menu->onCheckEnabled( this->player(), clicked, entryCount ) )
! enabled = false;
! menuPacket.addEntry( i++, (*it)->cliloc(), enabled ? (*it)->flags() : (*it)->flags() | 0x0001, (*it)->color() );
! }
}
! if ( i ) // Won't send empty menus
! send( &menuPacket );
}
***************
*** 2393,2399 ****
/*
! thanks to codex, see
! http://www.wpdev.org/modules.php?op=modload&name=phpBB2&file=viewtopic&t=1117&sid=44a576c488c79ba923295eae549bed42
! for more information
*/
void cUOSocket::clilocMessage( const UINT32 MsgID, const QString ¶ms, const Q_UINT16 color, const Q_UINT16 font, cUObject *object )
--- 2411,2415 ----
/*
! thanks to codex
*/
void cUOSocket::clilocMessage( const UINT32 MsgID, const QString ¶ms, const Q_UINT16 color, const Q_UINT16 font, cUObject *object )
Index: uosocket.h
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/network/uosocket.h,v
retrieving revision 1.99
retrieving revision 1.100
diff -C2 -d -r1.99 -r1.100
*** uosocket.h 24 Nov 2003 20:27:28 -0000 1.99
--- uosocket.h 28 Jan 2004 02:18:14 -0000 1.100
***************
*** 47,50 ****
--- 47,51 ----
class cUObject;
class cCustomTags;
+ class cContextMenu;
***************
*** 80,84 ****
QString _ip; // IP used to connect
QBitArray *tooltipscache_;
!
QMap< SERIAL, cGump* > gumps;
--- 81,85 ----
QString _ip; // IP used to connect
QBitArray *tooltipscache_;
! QPtrList<cContextMenu> contextMenu_;
QMap< SERIAL, cGump* > gumps;
Index: uotxpackets.cpp
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/network/uotxpackets.cpp,v
retrieving revision 1.72
retrieving revision 1.73
diff -C2 -d -r1.72 -r1.73
*** uotxpackets.cpp 22 Dec 2003 11:01:56 -0000 1.72
--- uotxpackets.cpp 28 Jan 2004 02:18:14 -0000 1.73
***************
*** 221,225 ****
}
! void cUOTxContextMenu::addEntry ( Q_UINT16 RetVal, Q_UINT16 FileID, Q_UINT16 TextID, Q_UINT16 flags, Q_UINT16 color )
{
Q_UINT32 size = count();
--- 221,225 ----
}
! void cUOTxContextMenu::addEntry ( Q_UINT16 RetVal, Q_UINT16 msgID, Q_UINT16 flags, Q_UINT16 color )
{
Q_UINT32 size = count();
***************
*** 236,245 ****
else
{
! resize( size + 4 );
! setShort( 1, size + 4 );
}
setShort( size, RetVal );
! setShort( size+2, FileID*1000+TextID );
setShort( size+4, flags );
--- 236,245 ----
else
{
! resize( size + 6 );
! setShort( 1, size + 6 );
}
setShort( size, RetVal );
! setShort( size+2, msgID );
setShort( size+4, flags );
Index: uotxpackets.h
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/network/uotxpackets.h,v
retrieving revision 1.90
retrieving revision 1.91
diff -C2 -d -r1.90 -r1.91
*** uotxpackets.h 25 Sep 2003 03:05:59 -0000 1.90
--- uotxpackets.h 28 Jan 2004 02:18:14 -0000 1.91
***************
*** 614,619 ****
void setSerial ( Q_UINT32 data ) { setInt( 7, data ); }
! void setEntNum ( Q_UINT8 data ) { setShort ( 11, data ); }
! void addEntry ( Q_UINT16 RetVal, Q_UINT16 FileID, Q_UINT16 TextID, Q_UINT16 flags=Popcolor, Q_UINT16 color=0x7FE0 );
};
--- 614,619 ----
void setSerial ( Q_UINT32 data ) { setInt( 7, data ); }
! void setEntNum ( Q_UINT8 data ) { (*this)[11] = data; }
! void addEntry ( Q_UINT16 RetVal, Q_UINT16 msgID, Q_UINT16 flags=Popcolor, Q_UINT16 color=0x7FE0 );
};
|