You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(42) |
Sep
(42) |
Oct
(57) |
Nov
(12) |
Dec
(47) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(14) |
Feb
(4) |
Mar
(52) |
Apr
(13) |
May
(89) |
Jun
(38) |
Jul
(5) |
Aug
(32) |
Sep
(68) |
Oct
(27) |
Nov
(2) |
Dec
(13) |
| 2004 |
Jan
(3) |
Feb
(6) |
Mar
(3) |
Apr
(1) |
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-31 06:05:47
|
Log Message:
-----------
Info button on client patches, + fix for turning the options off
Modified Files:
--------------
/cvsroot/decaldev/source/DenAgent:
DenAgent.rc
OptionsDlg.cpp
OptionsDlg.h
resource.h
Revision Data
-------------
Index: DenAgent.rc
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/DenAgent.rc,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- DenAgent.rc 29 Aug 2003 23:41:15 -0000 1.74
+++ DenAgent.rc 31 Aug 2003 06:05:46 -0000 1.75
@@ -182,6 +182,7 @@
CONTROL "Windowed Mode",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,21,143,71,11
GROUPBOX "Client Patches",IDC_STATIC,14,122,244,35
+ PUSHBUTTON "?",IDC_PATCHHELP,241,135,10,15
END
IDD_DOWNLOADER DIALOG 0, 0, 202, 86
Index: OptionsDlg.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/OptionsDlg.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- OptionsDlg.cpp 29 Aug 2003 23:42:37 -0000 1.23
+++ OptionsDlg.cpp 31 Aug 2003 06:05:46 -0000 1.24
@@ -64,6 +64,7 @@
ON_BN_CLICKED(IDC_OLDINJECT, OnBnClickedOldInject)
ON_BN_CLICKED(IDC_TIMESTAMPON, OnBnClickedTimestampon)
ON_BN_CLICKED(IDC_FORMATHELP, OnBnClickedFormathelp)
+ ON_BN_CLICKED(IDC_PATCHHELP, OnBnClickedPatchHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
@@ -306,6 +307,9 @@
key.SetDWORDValue( "AllowWindowed", 0x1L );
}
+ else
+ key.SetDWORDValue( "AllowWindowed", 0x0L );
+
if( ::SendMessage( GetDlgItem( IDC_DUALLOG )->m_hWnd, BM_GETCHECK, 0, 0 ) )
{
// enabled, but old inject is on
@@ -316,6 +320,9 @@
key.SetDWORDValue( "AllowDualLog", 0x1L );
}
+ else
+ key.SetDWORDValue( "AllowDualLog", 0x0L );
+
// cbt hook injection
if( ::SendMessage(GetDlgItem(IDC_OLDINJECT)->m_hWnd, BM_GETCHECK, 0, 0) )
{
@@ -487,3 +494,8 @@
//open up ie and point at.... <Heyus> TimestampFormat.htm
ShellExecute(m_hWnd, _T("open"), _T("http://decaldev.sf.net/TimestampFormat.htm"), 0, 0, 0);
}
+
+void cOptionsDlg::OnBnClickedPatchHelp()
+{
+ ShellExecute(m_hWnd, _T("open"), _T("http://decaldev.sf.net/clientpatchinfo.html"), 0, 0, 0);
+}
\ No newline at end of file
Index: OptionsDlg.h
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/OptionsDlg.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- OptionsDlg.h 29 Aug 2003 23:41:15 -0000 1.7
+++ OptionsDlg.h 31 Aug 2003 06:05:46 -0000 1.8
@@ -65,6 +65,7 @@
afx_msg void OnBnClickedCheckAutostart();
afx_msg void OnBnClickedTimestampon();
afx_msg void OnBnClickedFormathelp();
+ afx_msg void OnBnClickedPatchHelp();
};
//{{AFX_INSERT_LOCATION}}
Index: resource.h
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/resource.h,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- resource.h 29 Aug 2003 23:41:15 -0000 1.22
+++ resource.h 31 Aug 2003 06:05:46 -0000 1.23
@@ -82,6 +82,8 @@
#define IDC_OLDINJECT 1054
#define IDC_DUALLOG 1055
#define IDC_WINDOWED 1056
+#define IDC_BUTTON2 1057
+#define IDC_PATCHHELP 1057
#define ID_SYSTRAY_CONFIGURE 32771
#define ID_SYSTRAY_EXIT 32772
@@ -91,7 +93,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 152
#define _APS_NEXT_COMMAND_VALUE 32776
-#define _APS_NEXT_CONTROL_VALUE 1057
+#define _APS_NEXT_CONTROL_VALUE 1058
#define _APS_NEXT_SYMED_VALUE 105
#endif
#endif
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-31 06:05:02
|
Log Message:
-----------
forgot to add this too
Modified Files:
--------------
/cvsroot/decaldev/source/DecalNet:
ACMessage.h
Revision Data
-------------
Index: ACMessage.h
===================================================================
RCS file: /cvsroot/decaldev/source/DecalNet/ACMessage.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- ACMessage.h 3 Oct 2002 05:25:50 -0000 1.1
+++ ACMessage.h 31 Aug 2003 06:05:01 -0000 1.2
@@ -11,5 +11,6 @@
class ACMessageSink
{
public:
- virtual void onMessage (ACMessage&) = 0;
+ virtual void onMessage( ACMessage& ) = 0;
+ virtual void onMessageOut( ACMessage& ) = 0;
};
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-30 23:55:25
|
Log Message:
-----------
It's still lane's fault
Modified Files:
--------------
/cvsroot/decaldev/source/DecalNet:
NetService.cpp
Revision Data
-------------
Index: NetService.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalNet/NetService.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- NetService.cpp 30 Aug 2003 23:21:18 -0000 1.12
+++ NetService.cpp 30 Aug 2003 23:54:41 -0000 1.13
@@ -9,7 +9,8 @@
#include "FilterAdapterV1.h"
-//#define _OUTGOING_PACKETS_
+#define _OUTGOING_PACKETS_
+//#define _LOGGING
extern DWORD HookCall (DWORD dwCallAddress, DWORD dwReplacement);
extern void PacketComplete ();
@@ -52,8 +53,6 @@
g_lPacketCompleteCallLocation = 0; // just in case.
hookFunctions( _hooks, 2, true );
-
- hookFunctions( _hooks, 2, true );
if( _hooks[ 0 ].m_pOldFunction != 0 )
g_fn_recvfrom = reinterpret_cast< fn_recvfrom >( _hooks[ 0 ].m_pOldFunction );
else if( _hooks[ 1 ].m_pOldFunction != 0 )
@@ -72,8 +71,7 @@
_ASSERTE( false );
#endif
- if( !g_lPacketCompleteCallLocation )
- m_stack.start( this );
+ m_stack.start( this );
// Start all of the network filters
{
@@ -144,18 +142,17 @@
m_filters.clear();
- if( !g_lPacketCompleteCallLocation )
- m_stack.stop();
+ m_stack.stop();
if( g_pService == this )
{
- if (g_lPacketCompleteCallLocation)
+#ifdef _OUTGOING_PACKETS_
+ hookFunctions( _hooksOut, 1, false );
+#endif
+ if( g_lPacketCompleteCallLocation )
HookCall( g_lPacketCompleteCallLocation, g_lPacketCompleteProc );
else
- {
hookFunctions( _hooks, 2, false );
- hookFunctions( _hooksOut, 1, false );
- }
g_pService = NULL;
}
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-30 23:21:20
|
Log Message:
-----------
I blame it on Lane
Modified Files:
--------------
/cvsroot/decaldev/source/DecalNet:
NetService.cpp
NetService.h
ProtocolStack.cpp
ProtocolStack.h
Revision Data
-------------
Index: NetService.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalNet/NetService.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- NetService.cpp 30 May 2003 04:12:03 -0000 1.11
+++ NetService.cpp 30 Aug 2003 23:21:18 -0000 1.12
@@ -4,11 +4,13 @@
#include "NetService.h"
#include "Message.h"
-#include "ProtocolHook.h"
#include <ApiHook.h>
+#include "ProtocolHook.h"
#include "FilterAdapterV1.h"
+//#define _OUTGOING_PACKETS_
+
extern DWORD HookCall (DWORD dwCallAddress, DWORD dwReplacement);
extern void PacketComplete ();
@@ -22,10 +24,13 @@
// Functions for hooking from wsock32.dll
int PASCAL recvfromF( SOCKET s, char FAR* buf, int len, int flags, struct sockaddr FAR* from, int FAR* fromlen );
-
+int PASCAL sendtoF( SOCKET s, const char FAR* buf, int len, int flags, const struct sockaddr FAR* to, int tolen );
static cHookDescriptor _hooks[] = {
- { eByOrdinal, _T( "fsock32.dll" ), _T( "recvfrom" ), 17, reinterpret_cast< DWORD >( recvfromF ), 0 },
- { eByOrdinal, _T( "wsock32.dll" ), _T( "recvfrom" ), 17, reinterpret_cast< DWORD >( recvfromF ), 0 },
+ { eByOrdinal, _T( "fsock32.dll" ), _T( "recvfrom" ), 17, reinterpret_cast< DWORD >( recvfromF ), 0 },
+ { eByOrdinal, _T( "wsock32.dll" ), _T( "recvfrom" ), 17, reinterpret_cast< DWORD >( recvfromF ), 0 },
+};
+static cHookDescriptor _hooksOut[] = {
+ { eByOrdinal, _T( "wsock32.dll" ), _T( "sendto" ), 20, reinterpret_cast< DWORD >( sendtoF ), 0 },
};
HRESULT cNetService::onInitialize()
@@ -34,20 +39,20 @@
{
g_pService = this;
- CComPtr<IACHooks> pHooks;
- m_pDecal->get_Hooks( &pHooks );
+ m_pDecal->get_Hooks( &m_pHooks );
- pHooks->QueryMemLoc (_bstr_t ("PacketComplete"), &g_lPacketCompleteCallLocation);
- pHooks->QueryMemLoc (_bstr_t ("PacketDataOffset"), &g_lPacketDataOffset);
- pHooks->QueryMemLoc (_bstr_t ("PacketSizeOffset"), &g_lPacketSizeOffset);
+ m_pHooks->QueryMemLoc( _bstr_t( "PacketComplete" ), &g_lPacketCompleteCallLocation );
+ m_pHooks->QueryMemLoc( _bstr_t( "PacketDataOffset" ), &g_lPacketDataOffset );
+ m_pHooks->QueryMemLoc( _bstr_t( "PacketSizeOffset" ), &g_lPacketSizeOffset );
- if (g_lPacketCompleteCallLocation && g_lPacketDataOffset && g_lPacketSizeOffset)
- {
- g_lPacketCompleteProc = HookCall ((DWORD) g_lPacketCompleteCallLocation, (DWORD) PacketComplete);
- }
+ if( g_lPacketCompleteCallLocation && g_lPacketDataOffset && g_lPacketSizeOffset )
+ g_lPacketCompleteProc = HookCall( g_lPacketCompleteCallLocation, (DWORD) PacketComplete );
else
{
g_lPacketCompleteCallLocation = 0; // just in case.
+
+ hookFunctions( _hooks, 2, true );
+
hookFunctions( _hooks, 2, true );
if( _hooks[ 0 ].m_pOldFunction != 0 )
g_fn_recvfrom = reinterpret_cast< fn_recvfrom >( _hooks[ 0 ].m_pOldFunction );
@@ -58,10 +63,17 @@
}
}
- if (!g_lPacketCompleteCallLocation)
- {
+#ifdef _OUTGOING_PACKETS_
+ hookFunctions( _hooksOut, 1, true );
+
+ if( _hooksOut[ 0 ].m_pOldFunction != 0 )
+ g_fn_sendto = reinterpret_cast< fn_sendto >( _hooksOut[ 0 ].m_pOldFunction );
+ else
+ _ASSERTE( false );
+#endif
+
+ if( !g_lPacketCompleteCallLocation )
m_stack.start( this );
- }
// Start all of the network filters
{
@@ -132,40 +144,75 @@
m_filters.clear();
- if (!g_lPacketCompleteCallLocation)
- {
+ if( !g_lPacketCompleteCallLocation )
m_stack.stop();
- }
if( g_pService == this )
{
if (g_lPacketCompleteCallLocation)
- {
- HookCall (g_lPacketCompleteCallLocation, g_lPacketCompleteProc);
- }
+ HookCall( g_lPacketCompleteCallLocation, g_lPacketCompleteProc );
else
{
hookFunctions( _hooks, 2, false );
+ hookFunctions( _hooksOut, 1, false );
}
g_pService = NULL;
}
+
+ m_pHooks.Release();
}
int PASCAL recvfromF( SOCKET s, char FAR* buf, int len, int flags, struct sockaddr FAR* from, int FAR* fromlen )
{
+ _ASSERTE( cNetService::g_pService != NULL );
+
+ int iRes = cNetService::g_fn_recvfrom( s, buf, len, flags, from, fromlen );
+
+#ifdef _LOGGING_
+ if( iRes != SOCKET_ERROR && cNetService::g_pService != NULL )
+ {
+ char *harro = new char[256];
+ _snprintf(harro, 256, "recvfrom( %d, %08X, %d, %d, %08X, %d ) = %d", s, buf, len, flags, from, fromlen, iRes);
+ m_pHooks->ChatOut(_bstr_t (harro), 0);
+ delete[] harro;
+ }
+#endif
+
+ if( iRes != SOCKET_ERROR && cNetService::g_pService != NULL )
+ cNetService::g_pService->m_stack.processPacket( static_cast< DWORD >( iRes ), reinterpret_cast< BYTE * >( buf ) );
+
+ return iRes;
+}
+
+int PASCAL sendtoF( SOCKET s, const char FAR* buf, int len, int flags, const struct sockaddr FAR* to, int tolen )
+{
_ASSERTE( cNetService::g_pService != NULL );
- int iRes = cNetService::g_fn_recvfrom( s, buf, len, flags, from, fromlen );
+#ifdef _LOGGING_
+ char *harro = new char[256];
+ char *buffer = new char[512];
+ sprintf(harro, "sendto( %d, %08X, %d, %d, %s:%d, %d )",
+ s, buf, len, flags,
+ inet_ntoa( ((sockaddr_in *)(to))->sin_addr ),
+ ntohs( ((sockaddr_in *)(to))->sin_port ),
+ tolen);
+ m_pHooks->ChatOut(_bstr_t (harro), 0);
+ delete[] buffer;
+ delete[] harro;
+#endif
+
+ int iRes = cNetService::g_fn_sendto( s, buf, len, flags, to, tolen );
if( iRes != SOCKET_ERROR && cNetService::g_pService != NULL )
- cNetService::g_pService->m_stack.processPacket( static_cast< DWORD >( iRes ), reinterpret_cast< BYTE * >( buf ) );
+ cNetService::g_pService->m_stack.processPacketOut( static_cast< DWORD >( len ), reinterpret_cast< const BYTE * >( buf ) );
return iRes;
}
cNetService *cNetService::g_pService = NULL;
cNetService::fn_recvfrom cNetService::g_fn_recvfrom = NULL;
+cNetService::fn_sendto cNetService::g_fn_sendto = NULL;
void cNetService::onMessage( ACMessage &msg )
{
@@ -184,6 +231,19 @@
i->m_p->DispatchServer( m_pMessage );
}
+void cNetService::onMessageOut( ACMessage &msg )
+{
+ _ASSERTE( m_pMessage != NULL );
+
+ DWORD dwMessageCode = msg.getType();
+
+ m_pMessage->crackMessage( msg.getData (), msg.getSize () );
+
+ // Dispatch the message to all of the network filters
+ for( cFilterList::iterator i = m_filters.begin(); i != m_filters.end(); ++ i )
+ i->m_p->DispatchClient( m_pMessage );
+}
+
STDMETHODIMP cNetService::BeforePlugins()
{
USES_CONVERSION;
@@ -319,7 +379,7 @@
}
}
-void __declspec (naked) PacketComplete ()
+void __declspec (naked) PacketComplete()
{
_asm
{
@@ -373,3 +433,4 @@
return dwOriginal ;
}
+
Index: NetService.h
===================================================================
RCS file: /cvsroot/decaldev/source/DecalNet/NetService.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- NetService.h 3 Oct 2002 05:27:12 -0000 1.4
+++ NetService.h 30 Aug 2003 23:21:18 -0000 1.5
@@ -31,21 +31,26 @@
HRESULT onInitialize();
void onTerminate();
- static cNetService *g_pService;
- typedef int (PASCAL *fn_recvfrom)(SOCKET, char FAR*, int , int, struct sockaddr FAR*, int FAR*);
- static fn_recvfrom g_fn_recvfrom;
+ CComPtr< IACHooks > m_pHooks;
- // ACMessageSink overrides
- virtual void onMessage (ACMessage&);
+ static cNetService *g_pService;
+ typedef int (PASCAL *fn_recvfrom)(SOCKET, char FAR*, int , int, struct sockaddr FAR*, int FAR*);
+ typedef int (PASCAL *fn_sendto)(SOCKET, const char FAR*, int , int, const struct sockaddr FAR*, int);
+ static fn_recvfrom g_fn_recvfrom;
+ static fn_sendto g_fn_sendto;
- // The network filter list
- enum ePluginVersion { eVersion1, eVersion2 };
- struct cFilter
- {
- ePluginVersion m_ver;
- CLSID m_clsid;
- CComPtr< INetworkFilter2 > m_p;
- };
+ // ACMessageSink overrides
+ virtual void onMessage( ACMessage& );
+ virtual void onMessageOut( ACMessage& );
+
+ // The network filter list
+ enum ePluginVersion { eVersion1, eVersion2 };
+ struct cFilter
+ {
+ ePluginVersion m_ver;
+ CLSID m_clsid;
+ CComPtr< INetworkFilter2 > m_p;
+ };
typedef std::list< cFilter > cFilterList;
cFilterList m_filters;
Index: ProtocolStack.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalNet/ProtocolStack.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- ProtocolStack.cpp 3 Oct 2002 05:27:12 -0000 1.4
+++ ProtocolStack.cpp 30 Aug 2003 23:21:18 -0000 1.5
@@ -186,6 +186,42 @@
splitPacket( dwLength - dwOffset, pbPayload + dwOffset );
}
+void cMessageStack::processPacketOut( DWORD dwLength, const BYTE *pbPayload )
+{
+ // First filter based on our status and the message type
+ if( m_pCallback == NULL )
+ // We currently only support send or receive type messages
+ return;
+
+ // AC messages must be at least as big as a packet header.+ a message header
+ if (dwLength < (sizeof (cPacketHeader) + sizeof (cMessageHeader)))
+ return;
+
+ // Filter non-application messages
+ const cPacketHeader *pHeader = reinterpret_cast< const cPacketHeader * >( pbPayload );
+
+ if((pHeader->m_wTotalSize) != (dwLength - sizeof(cPacketHeader)))
+ return;
+
+ DWORD dwOffset = 0;
+ if (pHeader->m_dwFlags & 0x00100000)
+ // 8 extra header bytes
+ dwOffset += 8;
+
+ if (pHeader->m_dwFlags & 0x00200000)
+ // 6 extra header bytes
+ dwOffset += 6;
+
+ if (pHeader->m_dwFlags & 0x00800000)
+ // 4 extra header bytes
+ dwOffset += 4;
+
+ if (dwLength < (dwOffset + sizeof (cMessageHeader)))
+ return;
+
+ splitPacketOut( dwLength - dwOffset, const_cast<const BYTE *>(pbPayload + dwOffset) );
+}
+
void cMessageStack::splitPacket( DWORD dwLength, BYTE *pbPayload )
{
DWORD dwFragLength = 0;
@@ -225,6 +261,51 @@
if( msg.isComplete() )
// It's only one piece, dispatch right away
m_pCallback->onMessage( msg );
+ else
+ // This requires more parts add it into the queue to wait
+ m_messages.push_back( msg );
+ }
+}
+
+void cMessageStack::splitPacketOut( DWORD dwLength, const BYTE *pbPayload )
+{
+ DWORD dwFragLength = 0;
+ BYTE *i_end_packet = const_cast< BYTE * >(pbPayload) + dwLength;
+
+ for( BYTE *iFrag = const_cast< BYTE * >(pbPayload) + sizeof( cPacketHeader ); iFrag != i_end_packet; iFrag += dwFragLength )
+ {
+ dwFragLength = reinterpret_cast< const cMessageHeader * >( iFrag )->m_wFragmentLength;
+
+ if( dwFragLength == 0 || ( iFrag + dwFragLength ) > i_end_packet )
+ // We are off the end somehow
+ return;
+
+ // First walk through our cached fragments and see if one will take this fragment
+ for( cMessageList::iterator i = m_messages.begin(); i != m_messages.end(); ++ i )
+ {
+ if( i->fragmentMatch( iFrag ) )
+ {
+ i->insertFragment( iFrag );
+ if( i->isComplete() )
+ {
+ // Remove it from the list and dispatch the message
+ m_pCallback->onMessageOut( *i );
+ m_messages.erase( i );
+ }
+ break;
+ }
+ }
+
+ if( i != m_messages.end() )
+ // The fragment was found in the list
+ continue;
+
+ // Ok, we have a new fragment on our hands - generate the fragment object
+ cProtocolMessage msg( iFrag );
+
+ if( msg.isComplete() )
+ // It's only one piece, dispatch right away
+ m_pCallback->onMessageOut( msg );
else
// This requires more parts add it into the queue to wait
m_messages.push_back( msg );
Index: ProtocolStack.h
===================================================================
RCS file: /cvsroot/decaldev/source/DecalNet/ProtocolStack.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- ProtocolStack.h 3 Oct 2002 05:27:12 -0000 1.3
+++ ProtocolStack.h 30 Aug 2003 23:21:18 -0000 1.4
@@ -96,9 +96,11 @@
void stop();
void processPacket( DWORD dwLength, BYTE *pbPayload );
+ void processPacketOut( DWORD dwLength, const BYTE *pbPayload );
private:
void splitPacket( DWORD dwLength, BYTE *pbPayload );
+ void splitPacketOut( DWORD dwLength, const BYTE *pbPayload );
};
#endif
|
|
From: John D. <go...@us...> - 2003-08-30 16:57:29
|
Log Message:
-----------
Added storage of ID Packet information to World Filter! No, the ID request must still come externally.
Modified Files:
--------------
/cvsroot/decaldev/source/DecalFilters:
DecalFilters.idl
World.cpp
World.h
WorldObject.cpp
WorldObject.h
Revision Data
-------------
Index: DecalFilters.idl
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/DecalFilters.idl,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- DecalFilters.idl 25 Aug 2003 18:18:23 -0000 1.34
+++ DecalFilters.idl 30 Aug 2003 16:57:22 -0000 1.35
@@ -544,6 +544,39 @@
[propget, id(50), helpstring("property CreateFlags2")] HRESULT CreateFlags2([out, retval] long *pVal);
[propget, id(51), helpstring("property ObjectFlags1")] HRESULT ObjectFlags1([out, retval] long *pVal);
[propget, id(52), helpstring("property ObjectFlags2")] HRESULT ObjectFlags2([out, retval] long *pVal);
+ [propget, id(53), helpstring("property HasIdData")] HRESULT HasIdData([out, retval] VARIANT_BOOL *pVal);
+ [propget, id(54), helpstring("property ArmorLevel")] HRESULT ArmorLevel([out, retval] long *pVal);
+ [propget, id(55), helpstring("property MagicDef")] HRESULT MagicDef([out, retval] long *pVal);
+ [propget, id(56), helpstring("property Spellcraft")] HRESULT Spellcraft([out, retval] long *pVal);
+ [propget, id(57), helpstring("property MaximumMana")] HRESULT MaximumMana([out, retval] long *pVal);
+ [propget, id(58), helpstring("property LoreReq")] HRESULT LoreReq([out, retval] long *pVal);
+ [propget, id(59), helpstring("property RankReq")] HRESULT RankReq([out, retval] long *pVal);
+ [propget, id(60), helpstring("property SkillReq")] HRESULT SkillReq([out, retval] long *pVal);
+ [propget, id(61), helpstring("property WieldReqType")] HRESULT WieldReqType([out, retval] long *pVal);
+ [propget, id(62), helpstring("property WieldReqId")] HRESULT WieldReqId([out, retval] long *pVal);
+ [propget, id(63), helpstring("property WieldReq")] HRESULT WieldReq([out, retval] long *pVal);
+ [propget, id(64), helpstring("property TinkerCount")] HRESULT TinkerCount([out, retval] long *pVal);
+ [propget, id(65), helpstring("property SkillReqId")] HRESULT SkillReqId([out, retval] long *pVal);
+ [propget, id(66), helpstring("property SpecialProps")] HRESULT SpecialProps([out, retval] long *pVal);
+ [propget, id(67), helpstring("property ManaCMod")] HRESULT ManaCMod([out, retval] float *pVal);
+ [propget, id(68), helpstring("property SpellCount")] HRESULT SpellCount([out, retval] long *pVal);
+ [propget, id(69), helpstring("property GetSpell")] HRESULT Spell([in] long index, [out, retval] long *pVal);
+ [propget, id(70), helpstring("property Inscription")] HRESULT Inscription([out, retval] BSTR *pVal);
+ [propget, id(71), helpstring("property WeapSpeed")] HRESULT WeapSpeed([out, retval] long *pVal);
+ [propget, id(72), helpstring("property EquipSkill")] HRESULT EquipSkill([out, retval] long *pVal);
+ [propget, id(73), helpstring("property DamageType")] HRESULT DamageType([out, retval] long *pVal);
+ [propget, id(74), helpstring("property MaxDamage")] HRESULT MaxDamage([out, retval] long *pVal);
+ [propget, id(75), helpstring("property Variance")] HRESULT Variance([out, retval] float *pVal);
+ [propget, id(76), helpstring("property DefenseBonus")] HRESULT DefenseBonus([out, retval] float *pVal);
+ [propget, id(77), helpstring("property AttackBonus")] HRESULT AttackBonus([out, retval] float *pVal);
+ [propget, id(78), helpstring("property Range")] HRESULT Range([out, retval] float *pVal);
+ [propget, id(79), helpstring("property SlashProt")] HRESULT SlashProt([out, retval] float *pVal);
+ [propget, id(80), helpstring("property PierceProt")] HRESULT PierceProt([out, retval] float *pVal);
+ [propget, id(81), helpstring("property BludProt")] HRESULT BludProt([out, retval] float *pVal);
+ [propget, id(82), helpstring("property ColdProt")] HRESULT ColdProt([out, retval] float *pVal);
+ [propget, id(83), helpstring("property FireProt")] HRESULT FireProt([out, retval] float *pVal);
+ [propget, id(84), helpstring("property ElectProt")] HRESULT ElectProt([out, retval] float *pVal);
+ [propget, id(85), helpstring("property RaceReq")] HRESULT RaceReq([out, retval] BSTR *pVal);
};
[
@@ -646,3 +679,4 @@
[default] interface IIdentifyQueue;
};
};
+
Index: World.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/World.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- World.cpp 25 Aug 2003 18:18:23 -0000 1.49
+++ World.cpp 30 Aug 2003 16:57:22 -0000 1.50
@@ -32,6 +32,30 @@
BSTR strSlot;
BSTR strslot;
BSTR strwielder;
+BSTR strkey ;
+BSTR strdwords ;
+BSTR strstring ;
+BSTR strdoubles ;
+BSTR strstrings ;
+BSTR strspellCount ;
+BSTR strspells ;
+BSTR strspellID ;
+BSTR strspellFlag ;
+BSTR strdamageType ;
+BSTR strspeed ;
+BSTR strskill ;
+BSTR strdamage ;
+BSTR strdamageRange ;
+BSTR strrange ;
+BSTR strdefenseBonus ;
+BSTR strattackBonus ;
+BSTR strslashProt ;
+BSTR strpierceProt ;
+BSTR strbludgeonProt ;
+BSTR strcoldProt ;
+BSTR strfireProt ;
+BSTR stracidProt ;
+BSTR strelectricalProt ;
BSTR strlandblock;
BSTR strOffset;
BSTR strStackCount;
@@ -52,6 +76,7 @@
BSTR strsequence2;
BSTR strcoverage;
BSTR strflags1;
+BSTR strflags;
BSTR strlocation;
BSTR strwieldingSlot;
BSTR strflags2;
@@ -129,6 +154,7 @@
{
gevLogin = 0x0013,
gevInsertIntoInventory = 0x0022,
+ gevIdentifyObject = 0x00C9,
gevSetPackContents = 0x0196,
gevDropItem = 0x019A,
gevWearItem = 0x0023,
@@ -154,6 +180,30 @@
SysReAllocString( &strSlot, L"Slot" );
SysReAllocString( &strslot, L"slot" );
SysReAllocString( &strwielder, L"wielder" );
+ SysReAllocString( &strkey, L"key" );
+ SysReAllocString( &strdwords, L"dwords" );
+ SysReAllocString( &strstring, L"string" );
+ SysReAllocString( &strdoubles, L"doubles") ;
+ SysReAllocString( &strstrings, L"strings") ;
+ SysReAllocString( &strspellCount, L"spellCount") ;
+ SysReAllocString( &strspells, L"spells") ;
+ SysReAllocString( &strspellID, L"spellID") ;
+ SysReAllocString( &strspellFlag, L"spellFlag") ;
+ SysReAllocString( &strdamageType, L"damageType") ;
+ SysReAllocString( &strspeed, L"speed") ;
+ SysReAllocString( &strskill, L"skill") ;
+ SysReAllocString( &strdamage, L"damage") ;
+ SysReAllocString( &strdamageRange, L"damageRange") ;
+ SysReAllocString( &strrange, L"range") ;
+ SysReAllocString( &strdefenseBonus, L"defenseBonus") ;
+ SysReAllocString( &strattackBonus, L"attackBonus") ;
+ SysReAllocString( &strslashProt, L"slashProt") ;
+ SysReAllocString( &strpierceProt, L"pierceProt") ;
+ SysReAllocString( &strbludgeonProt, L"bludgeonProt") ;
+ SysReAllocString( &strcoldProt, L"coldProt") ;
+ SysReAllocString( &strfireProt, L"fireProt") ;
+ SysReAllocString( &stracidProt, L"acidProt") ;
+ SysReAllocString( &strelectricalProt, L"electricalProt") ;
SysReAllocString( &strlandblock, L"landblock" );
SysReAllocString( &strOffset, L"Offset" );
SysReAllocString( &strStackCount, L"StackCount" );
@@ -174,6 +224,7 @@
SysReAllocString( &strsequence2, L"sequence2" );
SysReAllocString( &strcoverage, L"coverage" );
SysReAllocString( &strflags1, L"flags1" );
+ SysReAllocString( &strflags, L"flags" );
SysReAllocString( &strlocation, L"location" );
SysReAllocString( &strwieldingSlot, L"wieldingSlot" );
SysReAllocString( &strflags2, L"flags2" );
@@ -291,12 +342,40 @@
SysFreeString( strSlot );
SysFreeString( strslot );
SysFreeString( strwielder );
+ SysFreeString( strkey );
+ SysFreeString( strdwords );
+ SysFreeString( strstring );
+ SysFreeString(strdoubles) ;
+ SysFreeString(strstrings) ;
+ SysFreeString(strspellCount) ;
+ SysFreeString(strspells) ;
+ SysFreeString(strspellID) ;
+ SysFreeString(strspellFlag) ;
+ SysFreeString(strdamageType) ;
+ SysFreeString(strspeed) ;
+ SysFreeString(strskill) ;
+ SysFreeString(strdamage) ;
+ SysFreeString(strdamageRange) ;
+ SysFreeString(strrange) ;
+ SysFreeString(strdefenseBonus) ;
+ SysFreeString(strattackBonus) ;
+ SysFreeString(strslashProt) ;
+ SysFreeString(strpierceProt) ;
+ SysFreeString(strbludgeonProt) ;
+ SysFreeString(strcoldProt) ;
+ SysFreeString(strfireProt) ;
+ SysFreeString(stracidProt) ;
+ SysFreeString(strelectricalProt) ;
+ SysFreeString(strlandblock);
+ SysFreeString(strOffset);
+ SysFreeString(strStackCount);
+ SysFreeString(strstackCount);
+ SysFreeString(strvalue);
SysFreeString( strlandblock );
SysFreeString( strOffset );
SysFreeString( strStackCount );
SysFreeString( strstackCount );
SysFreeString( strvalue );
-
SysFreeString( strxOffset );
SysFreeString( stryOffset );
SysFreeString( strzOffset );
@@ -311,6 +390,7 @@
SysFreeString( strsequence2 );
SysFreeString( strcoverage );
SysFreeString( strflags1 );
+ SysFreeString( strflags );
SysFreeString( strlocation );
SysFreeString( strwieldingSlot );
SysFreeString( strflags2 );
@@ -454,6 +534,7 @@
case gevLogin: DoLogin(pMembers) ; break ;
case gevInsertIntoInventory: DoInsertIntoInventory(pMembers) ; break ;
case gevSetPackContents: DoSetPackContents(pMembers) ; break ;
+ case gevIdentifyObject: DoIdentifyObject(pMembers) ; break ;
case gevDropItem: DoDropItem(pMembers) ; break ;
case gevWearItem: DoWearItem(pMembers) ; break ;
}
@@ -785,6 +866,154 @@
Fire_ChangeObject(pData->m_p, strStorageChange);
}
}
+
+void cWorld::DoIdentifyObject(CComPtr<IMessageIterator> pMembers)
+{
+ USES_CONVERSION ;
+ long nObject;
+ pMembers->get_NextInt(strobject, &nObject);
+
+ _DebugLog("\n\nIdentifyObject %x", nObject) ;
+
+ cWorldData *pData = Data(nObject);
+
+ if (pData != NULL )
+ {
+ pData->m_tExpires = 0;
+ pData->m_HasIdData = true ;
+ _DebugLog("\n HasIDData") ;
+ } else {
+ _DebugLog(" Object not found") ;
+ return ; // we don't have the create, so can't store id info
+ }
+
+ long ObjectIdMask ;
+ pMembers->get_NextInt(strflags, &ObjectIdMask) ;
+
+ if (ObjectIdMask && 0x0001) {
+ _DebugLog("\nChecking dwords") ;
+ CComPtr<IMessageIterator> pItems, pItem;
+
+ pMembers->get_NextObject(strdwords, &pItems);
+ while (SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
+ long key, value ;
+ pItem->get_NextInt(strkey, &key) ;
+ pItem->get_NextInt(strvalue, &value) ;
+ _DebugLog("\n key:%x value:%d || ", key, value) ;
+ switch (key) {
+ case 0x1C: pData->m_ArmorLevel = value ; _DebugLog("ArmorLevel %d", value) ; break ;
+ case 0x24: pData->m_MagicDef = value ; _DebugLog("MagicDef %d", value) ; break ;
+ case 0x6A: pData->m_Spellcraft = value ; _DebugLog("Spellcraft %d", value) ; break ;
+ case 0x6C: pData->m_MaximumMana = value ; _DebugLog("MaximumMana %d", value) ; break ;
+ case 0x6D: pData->m_LoreReq = value ; _DebugLog("LoreReq %d", value) ; break ;
+ case 0x6E: pData->m_RankReq = value ; _DebugLog("RankReq %d", value) ; break ;
+ case 0x73: pData->m_SkillReq = value ; _DebugLog("SkillReq %d", value) ; break ;
+ case 0x9E: pData->m_WieldReqType = value ; _DebugLog("WieldReqType %d", value) ; break ;
+ case 0x9F: pData->m_WieldReqId = value ; _DebugLog("WieldReqId %d", value) ; break ;
+ case 0xA0: pData->m_WieldReq = value ; _DebugLog("WieldReq %d", value) ; break ;
+ case 0xAB: pData->m_TinkerCount = value ; _DebugLog("TinkerCount %d", value) ; break ;
+ case 0xB0: pData->m_SkillReqId = value ; _DebugLog("SkillReqId %d", value) ; break ;
+ case 0xB3: pData->m_SpecialProps = value ; _DebugLog("SpecialProps %d", value) ; break ;
+ }
+ }
+ }
+
+ if (ObjectIdMask && 0x0004) {
+ _DebugLog("\nChecking doubles") ;
+ CComPtr<IMessageIterator> pItems, pItem;
+
+ _DebugLog("\nGetting iterator") ;
+ pMembers->get_NextObject(strdoubles, &pItems);
+ if (pItems == NULL) {
+ _DebugLog("\nFailed getting iterator!") ;
+ } else {
+ _DebugLog("\nGetting object") ;
+ while (SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
+ long key ;
+ float value ;
+ _DebugLog("\nGetting key") ;
+ pItem->get_NextInt(strkey, &key) ;
+ _DebugLog("\nGetting value") ;
+ pItem->get_NextFloat(strvalue, &value) ;
+ _DebugLog("\n key:%d value:%f || ", key, value) ;
+ switch (key) {
+ case 0x90: pData->m_ManaCMod = value ; _DebugLog("ManaCMod %f", value) ; break ;
+ }
+ }
+ }
+ }
+
+ if (ObjectIdMask && 0x0008) {
+ _DebugLog("\nChecking strings") ;
+
+ CComPtr<IMessageIterator> pItems, pItem;
+
+ pMembers->get_NextObject(strstrings, &pItems);
+ if (pItems == NULL) {
+ _DebugLog("\nNo strings") ;
+ } else {
+ while (SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
+ long key ;
+ BSTR value ;
+ pItem->get_NextInt(strkey, &key) ;
+ pItem->get_NextString(strstring, &value) ;
+ std::string sValue = OLE2A(value) ;
+ _DebugLog("\n key:%d value:%s || ", key, sValue.c_str()) ;
+
+ switch (key) {
+ case 0x07: pData->m_Inscription = sValue ; _DebugLog("Inscription") ; break ;
+ case 0x13: pData->m_RaceReq = sValue ; _DebugLog("RaceReq") ; break ;
+ }
+ }
+ }
+ }
+
+ if (ObjectIdMask && 0x0010) {
+ _DebugLog("\nChecking spells") ;
+ CComPtr<IMessageIterator> pItems, pItem;
+
+ pMembers->get_NextObject(strspells, &pItems);
+
+ if (pItems == NULL) {
+ _DebugLog("\nNo spells") ;
+ } else {
+ int ix=0 ;
+ while (SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
+ long spellID, spellFlag ;
+ pItem->get_NextInt(strspellID, &spellID) ;
+ pItem->get_NextInt(strspellFlag, &spellFlag) ;
+
+ _DebugLog("\n key:%d value:%d || ", spellID, spellFlag) ;
+ if (spellFlag == 0 && ix < 10) {
+ pData->m_Spell[ix++] = spellID ;
+ }
+ }
+ pData->m_SpellCount = ix ;
+ }
+ }
+ if (ObjectIdMask && 0x0020) {
+ _DebugLog("\nChecking damages") ;
+ pMembers->get_NextInt(strdamageType, &(pData->m_DamageType)) ;
+ pMembers->get_NextInt(strspeed, &(pData->m_WeapSpeed)) ;
+ pMembers->get_NextInt(strskill, &(pData->m_EquipSkill)) ;
+ pMembers->get_NextInt(strdamage, &(pData->m_MaxDamage)) ;
+ pMembers->get_NextFloat(strdamageRange, &(pData->m_Variance)) ;
+ pMembers->get_NextFloat(strrange, &(pData->m_Range)) ;
+ pMembers->get_NextFloat(strdefenseBonus, &(pData->m_DefenseBonus)) ;
+ pMembers->get_NextFloat(strattackBonus, &(pData->m_AttackBonus)) ;
+ }
+ if (ObjectIdMask && 0x0020) {
+ _DebugLog("\nChecking prots") ;
+ pMembers->get_NextFloat(strslashProt, &(pData->m_SlashProt)) ;
+ pMembers->get_NextFloat(strpierceProt, &(pData->m_PierceProt)) ;
+ pMembers->get_NextFloat(strbludgeonProt, &(pData->m_BludProt)) ;
+ pMembers->get_NextFloat(strcoldProt, &(pData->m_ColdProt)) ;
+ pMembers->get_NextFloat(strfireProt, &(pData->m_FireProt)) ;
+ pMembers->get_NextFloat(stracidProt, &(pData->m_AcidProt)) ;
+ pMembers->get_NextFloat(strelectricalProt, &(pData->m_ElectProt)) ;
+ }
+}
+
void cWorld::DoSetPackContents(CComPtr<IMessageIterator> pMembers)
{
Index: World.h
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/World.h,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- World.h 25 Aug 2003 18:18:23 -0000 1.36
+++ World.h 30 Aug 2003 16:57:22 -0000 1.37
@@ -100,6 +100,37 @@
m_HookMask=0;
m_HookType=0;
m_bTag = false;
+ m_HasIdData = false ;
+ m_ArmorLevel = -1 ;
+ m_MagicDef = -1 ;
+ m_Spellcraft = -1 ;
+ m_MaximumMana = -1 ;
+ m_LoreReq = -1 ;
+ m_RankReq = -1 ;
+ m_SkillReq = -1 ;
+ m_WieldReqType = -1 ;
+ m_WieldReqId = -1 ;
+ m_WieldReq = -1 ;
+ m_TinkerCount = -1 ;
+ m_SkillReqId = -1 ;
+ m_SpecialProps = -1 ;
+ m_ManaCMod = -1 ;
+ m_SpellCount = 0 ;
+ for (int x=0; x<10; x++) m_Spell[x] = -1 ;
+ m_WeapSpeed = -1 ;
+ m_EquipSkill = -1 ;
+ m_DamageType = -1 ;
+ m_MaxDamage = -1 ;
+ m_Variance = -1.0 ;
+ m_DefenseBonus = -1.0 ;
+ m_AttackBonus = -1.0 ;
+ m_Range = -1.0 ;
+ m_SlashProt = -1.0 ;
+ m_PierceProt = -1.0 ;
+ m_BludProt = -1.0 ;
+ m_ColdProt = -1.0 ;
+ m_FireProt = -1.0 ;
+ m_ElectProt = -1.0 ;
}
~cWorldData()
@@ -160,6 +191,40 @@
long m_HouseOwner ;
long m_HookMask ;
long m_HookType ;
+ bool m_HasIdData ;
+ long m_ArmorLevel ;
+ long m_MagicDef ;
+ long m_Spellcraft ;
+ long m_MaximumMana ;
+ long m_LoreReq ;
+ long m_RankReq ;
+ long m_SkillReq ;
+ long m_WieldReqType ;
+ long m_WieldReqId ;
+ long m_WieldReq ;
+ long m_TinkerCount ;
+ long m_SkillReqId ;
+ long m_SpecialProps ;
+ float m_ManaCMod ;
+ long m_SpellCount ;
+ long m_Spell[10] ;
+ std::string m_Inscription ;
+ std::string m_RaceReq ;
+ long m_WeapSpeed ;
+ long m_EquipSkill ;
+ long m_DamageType ;
+ long m_MaxDamage ;
+ float m_Variance ;
+ float m_DefenseBonus ;
+ float m_AttackBonus ;
+ float m_Range ;
+ float m_SlashProt ;
+ float m_PierceProt ;
+ float m_BludProt ;
+ float m_ColdProt ;
+ float m_FireProt ;
+ float m_ElectProt ;
+ float m_AcidProt ;
CComPtr< IWorldObject > m_p;
bool m_bTag;
@@ -263,6 +328,7 @@
void DoLogin(CComPtr<IMessageIterator> pMembers) ;
void DoInsertIntoInventory(CComPtr<IMessageIterator> pMembers) ;
void DoSetPackContents(CComPtr<IMessageIterator> pMembers) ;
+ void DoIdentifyObject(CComPtr<IMessageIterator> pMembers) ;
void DoDropItem(CComPtr<IMessageIterator> pMembers) ;
void DoWearItem(CComPtr<IMessageIterator> pMembers) ;
#ifdef Logging
Index: WorldObject.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/WorldObject.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- WorldObject.cpp 25 Aug 2003 18:18:23 -0000 1.22
+++ WorldObject.cpp 30 Aug 2003 16:57:22 -0000 1.23
@@ -400,3 +400,255 @@
*pVal = m_p->m_Workmanship ;
return S_OK ;
}
+
+STDMETHODIMP cWorldObject::get_HasIdData(VARIANT_BOOL *pVal)
+{
+ if(!pVal) {
+ _ASSERT(FALSE);
+ return E_POINTER;
+ }
+
+ *pVal = m_p->m_HasIdData ;
+ return S_OK;
+}
+
+STDMETHODIMP cWorldObject::get_ArmorLevel(long *pVal)
+{
+ return GetLong(m_p->m_ArmorLevel, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_MagicDef(long *pVal)
+{
+ return GetLong(m_p->m_MagicDef, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_Spellcraft(long *pVal)
+{
+ return GetLong(m_p->m_Spellcraft, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_MaximumMana(long *pVal)
+{
+ return GetLong(m_p->m_MaximumMana, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_LoreReq(long *pVal)
+{
+ return GetLong(m_p->m_LoreReq, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_RankReq(long *pVal)
+{
+ return GetLong(m_p->m_RankReq, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_SkillReq(long *pVal)
+{
+ return GetLong(m_p->m_SkillReq, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_WieldReqType(long *pVal)
+{
+ return GetLong(m_p->m_WieldReqType, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_WieldReqId(long *pVal)
+{
+ return GetLong(m_p->m_WieldReqId, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_WieldReq(long *pVal)
+{
+ return GetLong(m_p->m_WieldReq, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_TinkerCount(long *pVal)
+{
+ return GetLong(m_p->m_TinkerCount, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_SkillReqId(long *pVal)
+{
+ return GetLong(m_p->m_SkillReqId, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_SpecialProps(long *pVal)
+{
+ return GetLong(m_p->m_SpecialProps, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_ManaCMod(float *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_ManaCMod ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_SpellCount(long *pVal)
+{
+ return GetLong(m_p->m_SpellCount, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_Spell(long ix, long *pVal)
+{
+ return GetLong(m_p->m_Spell[ix], pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_Inscription(BSTR *pVal)
+{
+ USES_CONVERSION;
+
+ if(!pVal)
+ {
+ _ASSERT(FALSE);
+ return E_POINTER;
+ }
+
+ *pVal = T2BSTR(m_p->m_Inscription.c_str());
+
+ return S_OK;
+}
+
+STDMETHODIMP cWorldObject::get_RaceReq(BSTR *pVal)
+{
+ USES_CONVERSION;
+
+ if(!pVal)
+ {
+ _ASSERT(FALSE);
+ return E_POINTER;
+ }
+
+ *pVal = T2BSTR(m_p->m_RaceReq.c_str());
+
+ return S_OK;
+}
+
+STDMETHODIMP cWorldObject::get_WeapSpeed(long *pVal)
+{
+ return GetLong(m_p->m_WeapSpeed, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_EquipSkill(long *pVal)
+{
+ return GetLong(m_p->m_EquipSkill, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_DamageType(long *pVal)
+{
+ return GetLong(m_p->m_DamageType, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_MaxDamage(long *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_MaxDamage ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_Variance(float *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_Variance ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_DefenseBonus(float *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_DefenseBonus ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_AttackBonus(float *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_AttackBonus ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_Range(float *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_Range ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_SlashProt(float *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_SlashProt ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_PierceProt(float *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_PierceProt ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_BludProt(float *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_BludProt ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_ColdProt(float *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_ColdProt ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_FireProt(float *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_FireProt ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_ElectProt(float *pVal)
+{
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_ElectProt ;
+ return S_OK ;
+}
+
Index: WorldObject.h
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/WorldObject.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- WorldObject.h 25 Aug 2003 18:18:23 -0000 1.18
+++ WorldObject.h 30 Aug 2003 16:57:22 -0000 1.19
@@ -89,6 +89,39 @@
STDMETHOD(get_HookType)(/*[out, retval]*/ long *pVal);
STDMETHOD(get_RealModel)(/*[out, retval]*/long *pVal);
STDMETHOD(get_Scale)(/*[out, retval]*/float *pVal);
+ STDMETHOD(get_HasIdData)(/*[out, retval]*/ VARIANT_BOOL *pVal);
+ STDMETHOD(get_ArmorLevel)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_MagicDef)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_Spellcraft)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_MaximumMana)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_LoreReq)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_RankReq)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_SkillReq)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_WieldReqType)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_WieldReqId)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_WieldReq)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_TinkerCount)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_SkillReqId)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_SpecialProps)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_ManaCMod)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_SpellCount)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_Spell)(long index, /*[out, retval]*/ long *pVal);
+ STDMETHOD(get_Inscription)(/*[out, retval]*/ BSTR *pVal);
+ STDMETHOD(get_WeapSpeed)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_EquipSkill)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_DamageType)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_MaxDamage)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_Variance)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_DefenseBonus)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_AttackBonus)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_Range)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_SlashProt)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_PierceProt)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_BludProt)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_ColdProt)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_FireProt)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_ElectProt)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_RaceReq)(/*[out, retval]*/ BSTR *pVal);
// IWorldObject2
STDMETHOD(get_Flags)(/*[out, retval]*/ long *pVal);
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-30 00:43:26
|
Log Message:
-----------
Some sort of merge problem with cvs, this should fix the can't enumerate directdraw bug associated with the windowed mode exe patch
Modified Files:
--------------
/cvsroot/decaldev/source/Inject:
Inject.cpp
Revision Data
-------------
Index: Inject.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/Inject/Inject.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- Inject.cpp 28 Aug 2003 23:30:12 -0000 1.26
+++ Inject.cpp 30 Aug 2003 00:43:22 -0000 1.27
@@ -132,7 +132,7 @@
key.QueryStringValue( "AgentPath", szPath, &dwCount );
key.Close();
- strncat( szPath, "\\clientpatches.xml", MAX_PATH );
+ strncat( szPath, "clientpatches.xml", MAX_PATH );
::CoInitialize( NULL );
MSXML::IXMLDOMDocumentPtr pPatchesDoc;
@@ -471,8 +471,17 @@
unsigned char *szPatternArray = new unsigned char[ iLen ];
memset( szPatternArray, 0, iLen );
- for( int i = 0; i <= iLen * 3; i += 3 )
- szPatternArray[ i / 3 ] = strtoul( szPatchPattern + i, NULL, 16 );
+/* FILE *f = fopen( "C:\\decal\\log.txt", "a+" );
+ fprintf( f, "iLen = %d\nszPatchPattern = %s\nszPatternArray = ", iLen, szPatchPattern ); */
+
+ for( int i = 0; i < iLen; ++i )
+// {
+ szPatternArray[ i ] = strtoul( szPatchPattern + (i*3), NULL, 16 );
+// fprintf( f, "%02X ", szPatternArray[ i ] );
+// }
+
+/* fprintf( f, "\n" );
+ fclose( f );*/
bool bAbort = true;
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-29 23:42:38
|
Log Message:
-----------
I know grammar. Really.
Modified Files:
--------------
/cvsroot/decaldev/source/DenAgent:
OptionsDlg.cpp
Revision Data
-------------
Index: OptionsDlg.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/OptionsDlg.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- OptionsDlg.cpp 29 Aug 2003 23:41:15 -0000 1.22
+++ OptionsDlg.cpp 29 Aug 2003 23:42:37 -0000 1.23
@@ -324,14 +324,14 @@
if( dwViewMode != 1 )
{
key.SetDWORDValue("OldInjection", 0x1L);
- MessageBox( "You must restart DenAgent for this injection method changes to take effect!", "DenAgent", MB_OK );
+ MessageBox( "You must restart DenAgent for injection method changes to take effect!", "DenAgent", MB_OK );
}
}
else
{
key.SetDWORDValue("OldInjection", 0x1L);
- MessageBox( "You must restart DenAgent for this injection method changes to take effect!", "DenAgent", MB_OK );
+ MessageBox( "You must restart DenAgent for injection method changes to take effect!", "DenAgent", MB_OK );
}
}
@@ -341,7 +341,7 @@
if( dwViewMode != 0 )
{
key.SetDWORDValue("OldInjection", 0x0L);
- MessageBox( "You must restart DenAgent for this injection method changes to take effect!", "DenAgent", MB_OK );
+ MessageBox( "You must restart DenAgent for injection method changes to take effect!", "DenAgent", MB_OK );
}
}
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-29 23:41:18
|
Log Message:
-----------
Shoot me later..
Modified Files:
--------------
/cvsroot/decaldev/source/DenAgent:
DenAgent.rc
OptionsDlg.cpp
OptionsDlg.h
resource.h
Revision Data
-------------
Index: DenAgent.rc
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/DenAgent.rc,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -d -r1.73 -r1.74
--- DenAgent.rc 20 Jun 2003 06:41:19 -0000 1.73
+++ DenAgent.rc 29 Aug 2003 23:41:15 -0000 1.74
@@ -123,13 +123,13 @@
IDC_STATIC,7,7,165,14,SS_CENTERIMAGE
END
-IDD_OPTIONS DIALOGEX 0, 0, 271, 177
+IDD_OPTIONS DIALOGEX 0, 0, 271, 220
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Decal Options"
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
- DEFPUSHBUTTON "OK",IDOK,154,156,50,14
- PUSHBUTTON "Cancel",IDCANCEL,208,156,50,14
+ DEFPUSHBUTTON "OK",IDOK,155,199,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,214,199,50,14
CTEXT "Bar Alpha",IDC_STATIC,17,20,35,8,SS_CENTERIMAGE
EDITTEXT IDC_BARALPHA,59,16,45,14,ES_CENTER | ES_AUTOHSCROLL |
ES_NUMBER
@@ -144,22 +144,22 @@
UDS_ARROWKEYS,47,31,11,14
CTEXT "0 is Transparent - 255 is Opaque",IDC_STATIC,21,46,106,
9
- GROUPBOX "Decal Update URL",IDC_STATIC,7,125,257,27
- LTEXT "http://decaldev.sourceforge.net",IDC_PLUGINDIR,14,136,
+ GROUPBOX "Decal Update URL",IDC_STATIC,7,164,257,29
+ LTEXT "http://decaldev.sourceforge.net",IDC_PLUGINDIR,14,177,
169,8,SS_CENTERIMAGE
- PUSHBUTTON "Change",IDC_CHANGE_DIR,208,133,50,14
+ PUSHBUTTON "Change",IDC_CHANGE_DIR,208,173,50,14
CONTROL "Start on Bootup",IDC_CHECK_AUTOSTART,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,14,158,63,12
- PUSHBUTTON "Reset Bar Position",IDC_BTN_RESET,81,156,68,14
- GROUPBOX "Font",IDC_STATIC,14,57,244,31
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,201,63,12
+ PUSHBUTTON "Reset Bar Position",IDC_BTN_RESET,81,199,68,14
+ GROUPBOX "Font Options",IDC_STATIC,14,66,244,28
CONTROL "Default",IDC_DEFAULT_FONT_RADIO,"Button",
- BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,20,70,39,10
+ BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,21,78,39,10
CONTROL "AC Client",IDC_CLIENT_FONT_RADIO,"Button",
- BS_AUTORADIOBUTTON | WS_TABSTOP,64,70,45,10
+ BS_AUTORADIOBUTTON | WS_TABSTOP,64,78,45,10
CONTROL "Custom",IDC_CUSTOM_FONT_RADIO,"Button",
- BS_AUTORADIOBUTTON | WS_TABSTOP,111,70,39,10
- EDITTEXT IDC_CUSTOM_FONT_EDIT,153,68,98,12,ES_AUTOHSCROLL
- GROUPBOX "View Options",IDC_STATIC,7,7,257,116
+ BS_AUTORADIOBUTTON | WS_TABSTOP,111,78,39,10
+ EDITTEXT IDC_CUSTOM_FONT_EDIT,151,76,98,12,ES_AUTOHSCROLL
+ GROUPBOX "View Options",IDC_STATIC,7,7,257,156
CONTROL "Use Hardware Mode",IDC_BLENDINGGDIPLUS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,144,16,114,9
CONTROL "Multiple Views",IDC_VIEWMULTI,"Button",BS_AUTOCHECKBOX |
@@ -167,16 +167,21 @@
CONTROL "Adjust Bar for Radar",IDC_RADARYES,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,144,36,114,9
CONTROL "Enabled",IDC_TIMESTAMPON,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,20,101,44,9,WS_EX_RIGHT | WS_EX_RTLREADING
- GROUPBOX "Time Stamping",IDC_STATIC,14,90,244,27
- COMBOBOX IDC_FORMATCLR,92,99,29,67,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,21,108,44,9,WS_EX_RIGHT | WS_EX_RTLREADING
+ GROUPBOX "Time Stamping",IDC_STATIC,14,95,244,27
+ COMBOBOX IDC_FORMATCLR,92,105,29,67,CBS_DROPDOWNLIST | WS_VSCROLL |
WS_TABSTOP
- EDITTEXT IDC_FORMATSTR,152,99,88,12,ES_AUTOHSCROLL
- LTEXT "Color",IDC_STATIC,71,101,19,11
- LTEXT "Format",IDC_STATIC,125,101,25,9
- PUSHBUTTON "?",IDC_FORMATHELP,244,99,7,12
+ EDITTEXT IDC_FORMATSTR,151,105,88,12,ES_AUTOHSCROLL
+ LTEXT "Color",IDC_STATIC,71,108,19,11
+ LTEXT "Format",IDC_STATIC,123,108,25,9
+ PUSHBUTTON "?",IDC_FORMATHELP,244,105,7,12
CONTROL "Use Old Injection Method",IDC_OLDINJECT,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,144,46,114,10
+ CONTROL "Dual Log",IDC_DUALLOG,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,21,130,44,15
+ CONTROL "Windowed Mode",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,21,143,71,11
+ GROUPBOX "Client Patches",IDC_STATIC,14,122,244,35
END
IDD_DOWNLOADER DIALOG 0, 0, 202, 86
@@ -202,8 +207,8 @@
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,5,2,0
- PRODUCTVERSION 2,5,2,0
+ FILEVERSION 2,6,0,0
+ PRODUCTVERSION 2,6,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -220,12 +225,12 @@
BEGIN
VALUE "Comments", "DenAgent is the program that manages Decal settings"
VALUE "FileDescription", "DenAgent MFC Application"
- VALUE "FileVersion", "2, 5, 2, 0"
+ VALUE "FileVersion", "2, 6, 0, 0"
VALUE "InternalName", "DenAgent"
VALUE "LegalCopyright", "Copyright (C) 2000, 2001"
VALUE "OriginalFilename", "DenAgent.EXE"
VALUE "ProductName", "DenAgent Application"
- VALUE "ProductVersion", "2, 5, 2, 0"
+ VALUE "ProductVersion", "2, 6, 0, 0"
END
END
BLOCK "VarFileInfo"
@@ -305,7 +310,7 @@
VERTGUIDE, 14
VERTGUIDE, 258
TOPMARGIN, 7
- BOTTOMMARGIN, 170
+ BOTTOMMARGIN, 213
END
IDD_DOWNLOADER, DIALOG
Index: OptionsDlg.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/OptionsDlg.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- OptionsDlg.cpp 25 Jul 2003 00:11:05 -0000 1.21
+++ OptionsDlg.cpp 29 Aug 2003 23:41:15 -0000 1.22
@@ -61,6 +61,7 @@
ON_BN_CLICKED(IDC_CLIENT_FONT_RADIO, OnClientFontRadio)
ON_BN_CLICKED(IDC_CUSTOM_FONT_RADIO, OnCustomFontRadio)
//}}AFX_MSG_MAP
+ ON_BN_CLICKED(IDC_OLDINJECT, OnBnClickedOldInject)
ON_BN_CLICKED(IDC_TIMESTAMPON, OnBnClickedTimestampon)
ON_BN_CLICKED(IDC_FORMATHELP, OnBnClickedFormathelp)
END_MESSAGE_MAP()
@@ -71,7 +72,9 @@
BOOL cOptionsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
-
+
+ m_bClientPatchesEnabled = true;
+
// TODO: Add extra initialization here
RegKey key;
if( key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal" )) != ERROR_SUCCESS )
@@ -159,15 +162,32 @@
if( dwViewMode == 1 )
::SendMessage( GetDlgItem( IDC_VIEWMULTI )->m_hWnd, BM_SETCHECK, 1, 0 );
+ // haz - add checks for Dual/Windowed Mode
+ if( key.QueryDWORDValue( "AllowWindowed", dwViewMode )== ERROR_SUCCESS )
+ if( dwViewMode == 1 )
+ {
+ ::SendMessage( GetDlgItem( IDC_WINDOWED )->m_hWnd, BM_SETCHECK, 1, 0 );
+ }
+
+ if( key.QueryDWORDValue( "AllowDualLog", dwViewMode )== ERROR_SUCCESS )
+ if( dwViewMode == 1 )
+ {
+ ::SendMessage( GetDlgItem( IDC_DUALLOG )->m_hWnd, BM_SETCHECK, 1, 0 );
+ }
+
// haz - added old inject option
if( key.QueryDWORDValue( "OldInjection", dwViewMode )== ERROR_SUCCESS )
if( dwViewMode == 1 )
+ {
::SendMessage( GetDlgItem( IDC_OLDINJECT )->m_hWnd, BM_SETCHECK, 1, 0 );
-
+ m_bClientPatchesEnabled = true;
+ ::EnableWindow( GetDlgItem( IDC_WINDOWED )->m_hWnd, FALSE );
+ ::EnableWindow( GetDlgItem( IDC_DUALLOG )->m_hWnd, FALSE );
+ }
key.Close();
- if( key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal\\Agent" )) != ERROR_SUCCESS )
+ if( key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal\\Agent" )) != ERROR_SUCCESS )
return TRUE;
TCHAR szURLDirectory[ 1024 ];
@@ -274,8 +294,29 @@
else
key.SetDWORDValue("AlphaBlendMode", 0x1L);
- // cbt hook injection
+ // dual/window
+ bool bMessage = false;
DWORD dwViewMode = 0;
+ if( ::SendMessage( GetDlgItem( IDC_WINDOWED )->m_hWnd, BM_GETCHECK, 0, 0 ) )
+ {
+ // enabled, but old inject is on
+ if( ! m_bClientPatchesEnabled )
+ MessageBox( "One drawback of the old injection method is that Decal is not loaded before Asheron's Call.\nThis means the dual log and windowed mode fixes will not work.", "Decal Agent", MB_OK ), bMessage = true;
+
+ key.SetDWORDValue( "AllowWindowed", 0x1L );
+ }
+
+ if( ::SendMessage( GetDlgItem( IDC_DUALLOG )->m_hWnd, BM_GETCHECK, 0, 0 ) )
+ {
+ // enabled, but old inject is on
+ if( ! m_bClientPatchesEnabled )
+ if( ! bMessage )
+ MessageBox( "One drawback of the old injection method is that Decal is not loaded before Asheron's Call.\nThis means the dual log and windowed mode fixes will not work.", "Decal Agent", MB_OK ), bMessage = true;
+
+ key.SetDWORDValue( "AllowDualLog", 0x1L );
+ }
+
+ // cbt hook injection
if( ::SendMessage(GetDlgItem(IDC_OLDINJECT)->m_hWnd, BM_GETCHECK, 0, 0) )
{
if( key.QueryDWORDValue( "OldInjection", dwViewMode ) == ERROR_SUCCESS )
@@ -283,14 +324,14 @@
if( dwViewMode != 1 )
{
key.SetDWORDValue("OldInjection", 0x1L);
- MessageBox( "You must restart DenAgent for this option to take effect!", "DenAgent", MB_OK );
+ MessageBox( "You must restart DenAgent for this injection method changes to take effect!", "DenAgent", MB_OK );
}
}
else
{
key.SetDWORDValue("OldInjection", 0x1L);
- MessageBox( "You must restart DenAgent for this option to take effect!", "DenAgent", MB_OK );
+ MessageBox( "You must restart DenAgent for this injection method changes to take effect!", "DenAgent", MB_OK );
}
}
@@ -300,7 +341,7 @@
if( dwViewMode != 0 )
{
key.SetDWORDValue("OldInjection", 0x0L);
- MessageBox( "You must restart DenAgent for this option to take effect!", "DenAgent", MB_OK );
+ MessageBox( "You must restart DenAgent for this injection method changes to take effect!", "DenAgent", MB_OK );
}
}
@@ -408,6 +449,23 @@
UpdateCustomEdit();
}
+void cOptionsDlg::OnBnClickedOldInject()
+{
+ if( ::SendMessage( GetDlgItem( IDC_OLDINJECT )->m_hWnd, BM_GETCHECK, 0, 0 ) )
+ {
+ ::EnableWindow( GetDlgItem( IDC_WINDOWED )->m_hWnd, FALSE );
+ ::EnableWindow( GetDlgItem( IDC_DUALLOG )->m_hWnd, FALSE );
+ m_bClientPatchesEnabled = false;
+ }
+
+ else
+ {
+ ::EnableWindow( GetDlgItem( IDC_WINDOWED )->m_hWnd, TRUE );
+ ::EnableWindow( GetDlgItem( IDC_DUALLOG )->m_hWnd, TRUE );
+ m_bClientPatchesEnabled = true;
+ }
+}
+
void cOptionsDlg::OnBnClickedTimestampon()
{
//we need to activate the options when this is enabled
@@ -416,6 +474,7 @@
::EnableWindow( GetDlgItem( IDC_FORMATSTR )->m_hWnd, true );
::EnableWindow( GetDlgItem( IDC_FORMATCLR )->m_hWnd, true );
}
+
else
{
::EnableWindow( GetDlgItem( IDC_FORMATSTR )->m_hWnd, false );
Index: OptionsDlg.h
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/OptionsDlg.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- OptionsDlg.h 30 Mar 2003 08:51:19 -0000 1.6
+++ OptionsDlg.h 29 Aug 2003 23:41:15 -0000 1.7
@@ -47,6 +47,7 @@
// Implementation
protected:
+ bool m_bClientPatchesEnabled;
// Generated message map functions
//{{AFX_MSG(cOptionsDlg)
@@ -60,6 +61,7 @@
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
public:
+ afx_msg void OnBnClickedOldInject();
afx_msg void OnBnClickedCheckAutostart();
afx_msg void OnBnClickedTimestampon();
afx_msg void OnBnClickedFormathelp();
Index: resource.h
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/resource.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- resource.h 20 Jun 2003 06:41:19 -0000 1.21
+++ resource.h 29 Aug 2003 23:41:15 -0000 1.22
@@ -80,6 +80,8 @@
#define IDC_FORMATSTR 1053
#define IDC_CHECK1 1054
#define IDC_OLDINJECT 1054
+#define IDC_DUALLOG 1055
+#define IDC_WINDOWED 1056
#define ID_SYSTRAY_CONFIGURE 32771
#define ID_SYSTRAY_EXIT 32772
@@ -89,7 +91,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 152
#define _APS_NEXT_COMMAND_VALUE 32776
-#define _APS_NEXT_CONTROL_VALUE 1055
+#define _APS_NEXT_CONTROL_VALUE 1057
#define _APS_NEXT_SYMED_VALUE 105
#endif
#endif
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-29 12:01:41
|
Log Message:
-----------
Remind me again why I try and do things when I'm tired
Modified Files:
--------------
/cvsroot/decaldev/source/Include:
DecalVersion.h
Revision Data
-------------
Index: DecalVersion.h
===================================================================
RCS file: /cvsroot/decaldev/source/Include/DecalVersion.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- DecalVersion.h 29 Aug 2003 03:51:12 -0000 1.3
+++ DecalVersion.h 29 Aug 2003 12:01:38 -0000 1.4
@@ -5,8 +5,8 @@
#define __DECALVERSION_H__
#define DECAL_MAJOR 2
-#define DECAL_MINOR 5
-#define DECAL_BUGFIX 2
+#define DECAL_MINOR 6
+#define DECAL_BUGFIX 0
#define DECAL_RELEASE 0
#define DECAL_VERSION_STRING "2, 6, 0, 0"
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-29 04:42:56
|
Log Message:
-----------
fixy fixy
Modified Files:
--------------
/cvsroot/decaldev/source/Installer/Res:
Install.vbs
Revision Data
-------------
Index: Install.vbs
===================================================================
RCS file: /cvsroot/decaldev/source/Installer/Res/Install.vbs,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- Install.vbs 29 Aug 2003 03:55:22 -0000 1.38
+++ Install.vbs 29 Aug 2003 04:42:54 -0000 1.39
@@ -101,7 +101,6 @@
AllProducts.Add "2.5.0.5", "{35012CC1-DC9F-49C3-9593-2B246AE68D3A}"
AllProducts.Add "2.5.2.0 RC1", "{ED4744B7-3F12-453B-9908-D192E0F5477A}"
AllProducts.Add "2.5.2.0 RC2", "{3EA7A26F-9112-45D4-BDE0-9BE451D42A9F}"
-AllProducts.Add "2.5.2.0 RC2", "{3EA7A26F-9112-45D4-BDE0-9BE451D42A9F}"
AllProducts.Add "2.5.2.0 RC3", "{B04617E3-2AFF-4650-84AF-10BE73B22A15}"
AllProducts.Add "2.6.0.0", "{6E766A51-09A9-4571-B55A-EE2E4E74B8BC}"
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-29 03:59:44
|
Log Message:
-----------
update to 2.6.0.0 installer.... this is how I'm checking if you read your email mekle ;) I'm not going to push this out until you tell me you won't have issues with the installer in IB installation
Modified Files:
--------------
/cvsroot/decaldev/source/DecalInstaller:
DecalInstaller.vdproj
Revision Data
-------------
Index: DecalInstaller.vdproj
===================================================================
RCS file: /cvsroot/decaldev/source/DecalInstaller/DecalInstaller.vdproj,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- DecalInstaller.vdproj 24 Jul 2003 21:58:23 -0000 1.13
+++ DecalInstaller.vdproj 29 Aug 2003 03:59:42 -0000 1.14
@@ -27,60 +27,6 @@
}
"Entry"
{
- "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8"
- "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8"
- "OwnerKey" = "8:_F7B461AAFB7641F699DAEAF49904A662"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8"
- "OwnerKey" = "8:_BD4EC7DFE26A40BA84001249533EC862"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8"
- "OwnerKey" = "8:_AC7940677AFA439D9D75C9827A0003A2"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8"
- "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8"
- "OwnerKey" = "8:_8E9B4D574D014738B94369502A191459"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8"
- "OwnerKey" = "8:_287894F290604710B0E99CD646021261"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8"
- "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8"
- "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -105,24 +51,6 @@
}
"Entry"
{
- "MsmKey" = "8:_41F2E99B0C1B72CFD51382D5E140A7E8"
- "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_41F2E99B0C1B72CFD51382D5E140A7E8"
- "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_41F2E99B0C1B72CFD51382D5E140A7E8"
- "OwnerKey" = "8:_287894F290604710B0E99CD646021261"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_422DA789643D4CFC8308DBB6EB58ED8B"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -165,60 +93,12 @@
}
"Entry"
{
- "MsmKey" = "8:_942AAA28BB647CF0EF1C6137B296D4FE"
- "OwnerKey" = "8:_BD4EC7DFE26A40BA84001249533EC862"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_A03B9AE58553491581FA0975DF6E6E88"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
- "MsmKey" = "8:_A363B66FCAE3DB5C7CECA058D6C5B2B4"
- "OwnerKey" = "8:_287894F290604710B0E99CD646021261"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_A6E2165DAF724B38BD8B951949C710F5"
- "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_A6E2165DAF724B38BD8B951949C710F5"
- "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_A6E2165DAF724B38BD8B951949C710F5"
- "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_AB8B779E801448568C9C2869BFA349A8"
- "OwnerKey" = "8:_287894F290604710B0E99CD646021261"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_AB8B779E801448568C9C2869BFA349A8"
- "OwnerKey" = "8:_E256A97055264EB5B195F1414117D027"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_AB8B779E801448568C9C2869BFA349A8"
- "OwnerKey" = "8:_673044C5656142EBAA86D07A36EFFF5A"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_AC7940677AFA439D9D75C9827A0003A2"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -231,18 +111,6 @@
}
"Entry"
{
- "MsmKey" = "8:_BC87E37B7AD8F9835E2A3AC4B4EDBC61"
- "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_BC87E37B7AD8F9835E2A3AC4B4EDBC61"
- "OwnerKey" = "8:_BD4EC7DFE26A40BA84001249533EC862"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_BD4EC7DFE26A40BA84001249533EC862"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -255,42 +123,6 @@
}
"Entry"
{
- "MsmKey" = "8:_E3796CB4DDEB47C8A0A151F01BE61090"
- "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_E3796CB4DDEB47C8A0A151F01BE61090"
- "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_E3796CB4DDEB47C8A0A151F01BE61090"
- "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_E510132BBCC44CDFA220913E6ED4A37A"
- "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_E510132BBCC44CDFA220913E6ED4A37A"
- "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_E510132BBCC44CDFA220913E6ED4A37A"
- "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_F033647B20DD4A8C88658A817EFEED68"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -307,18 +139,6 @@
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
- "Entry"
- {
- "MsmKey" = "8:_FD2F9BAB00E2CB44E03A93E604085DE2"
- "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_FD2F9BAB00E2CB44E03A93E604085DE2"
- "OwnerKey" = "8:_287894F290604710B0E99CD646021261"
- "MsmSig" = "8:_UNDEFINED"
- }
}
"Configurations"
{
@@ -377,26 +197,6 @@
}
"File"
{
- "{A582A373-4685-4296-BEFE-614B80A702C3}:_10D01E415273DFB80A6309EC12D187D8"
- {
- "SourcePath" = "8:msxml.dll"
- "TargetName" = "8:msxml.dll"
- "Tag" = "8:"
- "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:4"
- "Exclude" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{A582A373-4685-4296-BEFE-614B80A702C3}:_2946BCB3B3574315816189D84E505D59"
{
"SourcePath" = "8:..\\Release\\Tab-Active.bmp"
@@ -437,26 +237,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{A582A373-4685-4296-BEFE-614B80A702C3}:_41F2E99B0C1B72CFD51382D5E140A7E8"
- {
- "SourcePath" = "8:VERSION.dll"
- "TargetName" = "8:VERSION.dll"
- "Tag" = "8:"
- "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{A582A373-4685-4296-BEFE-614B80A702C3}:_422DA789643D4CFC8308DBB6EB58ED8B"
{
"SourcePath" = "8:..\\Release\\Switch-Active.bmp"
@@ -557,66 +337,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{A582A373-4685-4296-BEFE-614B80A702C3}:_942AAA28BB647CF0EF1C6137B296D4FE"
- {
- "SourcePath" = "8:DDRAW.dll"
- "TargetName" = "8:DDRAW.dll"
- "Tag" = "8:"
- "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
- "{A582A373-4685-4296-BEFE-614B80A702C3}:_A363B66FCAE3DB5C7CECA058D6C5B2B4"
- {
- "SourcePath" = "8:comdlg32.dll"
- "TargetName" = "8:comdlg32.dll"
- "Tag" = "8:"
- "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
- "{A582A373-4685-4296-BEFE-614B80A702C3}:_AB8B779E801448568C9C2869BFA349A8"
- {
- "SourcePath" = "8:ForceLibrary.dll"
- "TargetName" = "8:ForceLibrary.dll"
- "Tag" = "8:"
- "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{A582A373-4685-4296-BEFE-614B80A702C3}:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0"
{
"SourcePath" = "8:..\\Installer\\Res\\decalbar.jpg"
@@ -637,26 +357,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{A582A373-4685-4296-BEFE-614B80A702C3}:_BC87E37B7AD8F9835E2A3AC4B4EDBC61"
- {
- "SourcePath" = "8:inject.tlb"
- "TargetName" = "8:inject.tlb"
- "Tag" = "8:"
- "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:2"
- "Exclude" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
"{A582A373-4685-4296-BEFE-614B80A702C3}:_F033647B20DD4A8C88658A817EFEED68"
{
"SourcePath" = "8:..\\Release\\ForceLibrary.dll"
@@ -697,26 +397,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
- "{A582A373-4685-4296-BEFE-614B80A702C3}:_FD2F9BAB00E2CB44E03A93E604085DE2"
- {
- "SourcePath" = "8:urlmon.dll"
- "TargetName" = "8:urlmon.dll"
- "Tag" = "8:"
- "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:4"
- "Exclude" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
}
"FileType"
{
@@ -794,13 +474,13 @@
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:Decal"
- "ProductCode" = "8:{B04617E3-2AFF-4650-84AF-10BE73B22A15}"
- "PackageCode" = "8:{8009F85D-1CCB-4234-AD6E-FE3EE424A79D}"
+ "ProductCode" = "8:{6E766A51-09A9-4571-B55A-EE2E4E74B8BC}"
+ "PackageCode" = "8:{7C8DF61C-1096-4B4E-AA98-B4FDFFC47B77}"
"UpgradeCode" = "8:{3025AB1B-80B9-46B7-9CE9-9887ADA2914F}"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
- "ProductVersion" = "8:2.5.20"
+ "ProductVersion" = "8:2.6.0"
"Manufacturer" = "8:Decal Developers"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:http://forums.acdev.org/"
@@ -1318,54 +998,12 @@
}
"MergeModule"
{
- "{35A69C6E-5BA4-440D-803D-762B59A45393}:_A6E2165DAF724B38BD8B951949C710F5"
- {
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "SourcePath" = "8:vc_user_atl71_rtl_x86_---.msm"
- "Properties"
- {
- }
- "LanguageId" = "3:0"
- "Exclude" = "11:FALSE"
- "Folder" = "8:"
- "Feature" = "8:"
- "IsolateTo" = "8:"
- }
- "{35A69C6E-5BA4-440D-803D-762B59A45393}:_E3796CB4DDEB47C8A0A151F01BE61090"
- {
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm"
- "Properties"
- {
- }
- "LanguageId" = "3:0"
- "Exclude" = "11:FALSE"
- "Folder" = "8:"
- "Feature" = "8:"
- "IsolateTo" = "8:"
- }
- "{35A69C6E-5BA4-440D-803D-762B59A45393}:_E510132BBCC44CDFA220913E6ED4A37A"
- {
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm"
- "Properties"
- {
- }
- "LanguageId" = "3:0"
- "Exclude" = "11:FALSE"
- "Folder" = "8:"
- "Feature" = "8:"
- "IsolateTo" = "8:"
- }
}
"ProjectOutput"
{
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_0593B7A6B4D74017A43CC5F9741D078B"
{
- "SourcePath" = "8:..\\Release\\DecalNet.dll"
+ "SourcePath" = "8:..\\debug\\DecalNet.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
@@ -1393,7 +1031,7 @@
}
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_10B736524B444A95B8CC8D36B521F980"
{
- "SourcePath" = "8:..\\Release\\DecalInput.dll"
+ "SourcePath" = "8:..\\debug\\DecalInput.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
@@ -1421,7 +1059,7 @@
}
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_11AE7CD5CB2A43E395B33FDD50522940"
{
- "SourcePath" = "8:..\\Release\\DecalDat.dll"
+ "SourcePath" = "8:..\\debug\\DecalDat.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
@@ -1449,7 +1087,7 @@
}
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_287894F290604710B0E99CD646021261"
{
- "SourcePath" = "8:..\\Release\\DenAgent.exe"
+ "SourcePath" = "8:..\\debug\\DenAgent.exe"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
@@ -1477,7 +1115,7 @@
}
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_673044C5656142EBAA86D07A36EFFF5A"
{
- "SourcePath" = "8:..\\Release\\LobbyHook.dll"
+ "SourcePath" = "8:..\\debug\\LobbyHook.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B4A52EA52B0946A1AF1F0D1FA55A352F"
@@ -1505,7 +1143,7 @@
}
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_8E9B4D574D014738B94369502A191459"
{
- "SourcePath" = "8:..\\Release\\DecalFilters.dll"
+ "SourcePath" = "8:..\\debug\\DecalFilters.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
@@ -1533,7 +1171,7 @@
}
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_A03B9AE58553491581FA0975DF6E6E88"
{
- "SourcePath" = "8:..\\Release\\Decal.dll"
+ "SourcePath" = "8:..\\debug\\Decal.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
@@ -1561,7 +1199,7 @@
}
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_AC7940677AFA439D9D75C9827A0003A2"
{
- "SourcePath" = "8:..\\Release\\DecalControls.dll"
+ "SourcePath" = "8:..\\debug\\DecalControls.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
@@ -1589,7 +1227,7 @@
}
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_BD4EC7DFE26A40BA84001249533EC862"
{
- "SourcePath" = "8:..\\Release\\Inject.dll"
+ "SourcePath" = "8:..\\debug\\Inject.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
@@ -1617,7 +1255,7 @@
}
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_E256A97055264EB5B195F1414117D027"
{
- "SourcePath" = "8:..\\Release\\LobbyHook.dll"
+ "SourcePath" = "8:..\\debug\\LobbyHook.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
@@ -1645,7 +1283,7 @@
}
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_F7B461AAFB7641F699DAEAF49904A662"
{
- "SourcePath" = "8:..\\Release\\PlainText.dll"
+ "SourcePath" = "8:..\\debug\\PlainText.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F"
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-29 03:55:54
|
Log Message:
-----------
update to 2.6.0.0 installer product code
Modified Files:
--------------
/cvsroot/decaldev/source/Installer/Res:
Install.vbs
Revision Data
-------------
Index: Install.vbs
===================================================================
RCS file: /cvsroot/decaldev/source/Installer/Res/Install.vbs,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- Install.vbs 23 Jun 2003 07:05:42 -0000 1.37
+++ Install.vbs 29 Aug 2003 03:55:22 -0000 1.38
@@ -56,7 +56,7 @@
'All of these -must- be specified
Private Const ThisProduct = "Decal" ' The name of your product, used it dialogs and such
-Private Const ThisVersion = "2.5.2.0 RC2" ' The version of your product, used in dialogs and such
+Private Const ThisVersion = "2.6.0.0" ' The version of your product, used in dialogs and such
Private Const MSIFileName = "Decal.msi" ' The name of the MSI file that will be excuted
'Add all of your previous product IDs to the dictionary for removal by the installer
AllProducts.Add "1.0.1.0", "{4AFA7857-D10F-4A74-A504-9C10320A6DB9}"
@@ -101,7 +101,9 @@
AllProducts.Add "2.5.0.5", "{35012CC1-DC9F-49C3-9593-2B246AE68D3A}"
AllProducts.Add "2.5.2.0 RC1", "{ED4744B7-3F12-453B-9908-D192E0F5477A}"
AllProducts.Add "2.5.2.0 RC2", "{3EA7A26F-9112-45D4-BDE0-9BE451D42A9F}"
-
+AllProducts.Add "2.5.2.0 RC2", "{3EA7A26F-9112-45D4-BDE0-9BE451D42A9F}"
+AllProducts.Add "2.5.2.0 RC3", "{B04617E3-2AFF-4650-84AF-10BE73B22A15}"
+AllProducts.Add "2.6.0.0", "{6E766A51-09A9-4571-B55A-EE2E4E74B8BC}"
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-29 03:51:14
|
Log Message:
-----------
update to 2.6.0.0 version resource
Modified Files:
--------------
/cvsroot/decaldev/source/Include:
DecalVersion.h
Revision Data
-------------
Index: DecalVersion.h
===================================================================
RCS file: /cvsroot/decaldev/source/Include/DecalVersion.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- DecalVersion.h 19 Jun 2003 21:58:12 -0000 1.2
+++ DecalVersion.h 29 Aug 2003 03:51:12 -0000 1.3
@@ -9,6 +9,6 @@
#define DECAL_BUGFIX 2
#define DECAL_RELEASE 0
-#define DECAL_VERSION_STRING "2, 5, 2, 0"
+#define DECAL_VERSION_STRING "2, 6, 0, 0"
#endif
|
|
From: Jeffrey D. <ha...@us...> - 2003-08-28 23:30:29
|
Log Message:
-----------
Windowed mode patching (+XML, for later client patches like no splash patch (if I can figure out a pattern for it)
Modified Files:
--------------
/cvsroot/decaldev/source/Inject:
Inject.cpp
Revision Data
-------------
Index: Inject.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/Inject/Inject.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- Inject.cpp 28 Aug 2003 13:54:43 -0000 1.25
+++ Inject.cpp 28 Aug 2003 23:30:12 -0000 1.26
@@ -74,10 +74,14 @@
};
static bool bDualLog = false;
+static bool bWindowed = false;
static cHookDescriptor _hooksDualLog[] = {
{ eByName, _T( "kernel32.dll" ), _T( "CreateSemaphoreA" ), 102, reinterpret_cast< DWORD >( Replacement_CreateSemaphoreA ), 0 },
};
+bool CheckClientVersion( MSXML::IXMLDOMDocument *pDoc );
+bool PatchWindowMode( MSXML::IXMLDOMDocument *pDoc );
+
HINSTANCE hAlphaBlendDLL;
/////////////////////////////////////////////////////////////////////////////
@@ -108,16 +112,55 @@
RegKey key;
if( key.Open( HKEY_LOCAL_MACHINE, "SOFTWARE\\Decal" ) == ERROR_SUCCESS )
{
- DWORD dwDual = 0;
- if( key.QueryDWORDValue( "AllowDualLog", dwDual ) == ERROR_SUCCESS )
+ DWORD dwReg = 0;
+ if( key.QueryDWORDValue( "AllowDualLog", dwReg ) == ERROR_SUCCESS )
{
- if( dwDual )
+ if( dwReg )
{
bDualLog = true;
hookFunctions( _hooksDualLog, 1 );
}
}
}
+
+ key.Close();
+
+ // Get decal path
+ char szPath[ MAX_PATH ];
+ DWORD dwCount = MAX_PATH;
+ key.Open( HKEY_LOCAL_MACHINE, "SOFTWARE\\Decal\\Agent" );
+ key.QueryStringValue( "AgentPath", szPath, &dwCount );
+ key.Close();
+
+ strncat( szPath, "\\clientpatches.xml", MAX_PATH );
+
+ ::CoInitialize( NULL );
+ MSXML::IXMLDOMDocumentPtr pPatchesDoc;
+ pPatchesDoc.CreateInstance( __uuidof( MSXML::DOMDocument ) );
+ pPatchesDoc->async = false;
+
+ bool bSuccess = pPatchesDoc->load( szPath );
+ if( bSuccess )
+ {
+ if( CheckClientVersion( pPatchesDoc ) )
+ {
+ RegKey key;
+ if( key.Open( HKEY_LOCAL_MACHINE, "SOFTWARE\\Decal" ) == ERROR_SUCCESS )
+ {
+ // Windowed Mode patch
+ DWORD dwReg = 0;
+ if( key.QueryDWORDValue( "AllowWindowed", dwReg ) == ERROR_SUCCESS )
+ {
+ if( dwReg )
+ bWindowed = PatchWindowMode( pPatchesDoc );
+ }
+
+
+
+
+ }
+ }
+ }
}
_hUpdateEnabled = ::CreateMutex( NULL, FALSE, _T( "InjectEnablePlugins" ) );
@@ -134,6 +177,7 @@
else if (dwReason == DLL_PROCESS_DETACH)
{
::CloseHandle( _hUpdateEnabled );
+ ::CoUninitialize();
if( hAlphaBlendDLL )
FreeLibrary( hAlphaBlendDLL );
@@ -311,6 +355,152 @@
else
return CreateSemaphore( lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName );
+}
+
+bool CheckClientVersion( MSXML::IXMLDOMDocument *pDoc )
+{
+ USES_CONVERSION;
+
+ MSXML::IXMLDOMElementPtr pNode = pDoc->selectSingleNode( _bstr_t( "patches" ) );
+
+ long lVerMajor = 0, lVerMinor = 0, lVerRelease = 0;
+
+ _variant_t vVersion = pNode->getAttribute( _bstr_t( "version" ) );
+ char *szVersion = OLE2A( vVersion.bstrVal );
+
+ sscanf( szVersion, "%d.%d.%d", &lVerMajor, &lVerMinor, &lVerRelease );
+
+ RegKey rk;
+ if( rk.Open( HKEY_LOCAL_MACHINE, _T( "Software\\Microsoft\\Microsoft Games\\Asheron's Call\\1.00" ) ) == ERROR_SUCCESS )
+ {
+ TCHAR szClientPath[ MAX_PATH ];
+ DWORD dwPathLength = MAX_PATH;
+ if( rk.QueryStringValue ( _T( "path" ), szClientPath, &dwPathLength ) == ERROR_SUCCESS )
+ {
+ ::_tcscpy( szClientPath + ( dwPathLength - 1 ), _T( "\\client.exe" ) );
+
+ DWORD dwDummy,
+ dwVerSize = ::GetFileVersionInfoSize( const_cast< LPTSTR > ( szClientPath ), &dwDummy );
+ if( dwVerSize != 0 )
+ {
+ BYTE *pbVersionInfo = reinterpret_cast< BYTE * >( ::_alloca( dwVerSize ) );
+
+ ::GetFileVersionInfo( const_cast< LPTSTR > ( szClientPath ), 0, dwVerSize, pbVersionInfo );
+
+ VS_FIXEDFILEINFO *vffi;
+ UINT nLength = sizeof( VS_FIXEDFILEINFO );
+ if( ::VerQueryValue( pbVersionInfo, _T( "\\" ), reinterpret_cast< LPVOID * >( &vffi ), &nLength ) )
+ {
+ if( (static_cast< long >( HIWORD( vffi->dwFileVersionMS ) ) == lVerMajor) &&
+ (static_cast< long >( LOWORD( vffi->dwFileVersionMS ) ) == lVerMinor) &&
+ (static_cast< long >( HIWORD( vffi->dwFileVersionLS ) ) == lVerRelease) )
+ {
+ return true;
+ }
+ }
+ }
+ }
+ }
+
+ return false;
+}
+
+bool PatchWindowMode( MSXML::IXMLDOMDocument *pDoc )
+{
+ if( pDoc == NULL )
+ return false;
+
+ USES_CONVERSION;
+
+ MSXML::IXMLDOMElementPtr pNode;
+ MSXML::IXMLDOMNodeListPtr pNodes = pDoc->selectNodes( _bstr_t( "/patches/patch" ) );
+
+ bool bWindowPattern = false, bWindowReplaceOffset = false, bWindowReplace = false, bWindowMaxOffset = false;
+ char *szPatchPattern;
+ unsigned char lReplace;
+ long lReplaceOffset;
+ long lMaxOffset;
+
+ for( pNode = pNodes->nextNode(); pNode.GetInterfacePtr() != NULL; pNode = pNodes->nextNode() )
+ {
+ if( bWindowPattern && bWindowReplace && bWindowReplaceOffset && bWindowMaxOffset )
+ break;
+
+ _variant_t vName = pNode->getAttribute( _bstr_t( "name" ) );
+ char *szName = OLE2A( vName.bstrVal );
+
+ if( stricmp( szName, "WindowedModePattern" ) == 0 )
+ {
+ _variant_t vPatchPattern = pNode->getAttribute( _bstr_t( "value" ) );
+ szPatchPattern = OLE2A( vPatchPattern.bstrVal );
+ bWindowPattern = true;
+ continue;
+ }
+
+ if( stricmp( szName, "WindowedModeReplace" ) == 0 )
+ {
+ _variant_t vReplace = pNode->getAttribute( _bstr_t( "value" ) );
+ lReplace = wcstoul( vReplace.bstrVal, NULL, 16 );
+ bWindowReplace = true;
+ continue;
+ }
+
+ if( stricmp( szName, "WindowedModeReplaceOffset" ) == 0 )
+ {
+ _variant_t vReplaceOffset = pNode->getAttribute( _bstr_t( "value" ) );
+ lReplaceOffset = wcstoul( vReplaceOffset.bstrVal, NULL, 16 ) - 1; // Arrays are 0 indexed in c++
+ bWindowReplaceOffset = true;
+ continue;
+ }
+
+ if( stricmp( szName, "WindowedModeMaxOffset" ) == 0 )
+ {
+ _variant_t vMaxOffset = pNode->getAttribute( _bstr_t( "value" ) );
+ lMaxOffset = wcstoul( vMaxOffset.bstrVal, NULL, 16 );
+ bWindowMaxOffset = true;
+ continue;
+ }
+ }
+
+ if( !(bWindowPattern && bWindowReplace && bWindowReplaceOffset && bWindowMaxOffset) )
+ return false;
+
+ unsigned char *pAddy = reinterpret_cast< unsigned char * >( 0x400000 );
+
+ int iLen = strlen( szPatchPattern + 1 ) / 3 + 1;
+ unsigned char *szPatternArray = new unsigned char[ iLen ];
+ memset( szPatternArray, 0, iLen );
+
+ for( int i = 0; i <= iLen * 3; i += 3 )
+ szPatternArray[ i / 3 ] = strtoul( szPatchPattern + i, NULL, 16 );
+
+ bool bAbort = true;
+
+ for( int i = 0; i < lMaxOffset; ++i, ++pAddy )
+ {
+ // peek at current byte
+ if( *pAddy == szPatternArray[ 0 ] )
+ {
+ // see if entire pattern matches.
+ if( strcmp( reinterpret_cast< const char * >( szPatternArray ) + 1, reinterpret_cast< char * >( pAddy ) + 1 ) == 0 )
+ {
+ // yahoo? ...
+ bAbort = false;
+ pAddy += lReplaceOffset;
+ break;
+ }
+ }
+ }
+
+ if( bAbort )
+ return false;
+
+ DWORD dwOldProtect, dwNewProtect;
+ VirtualProtect( reinterpret_cast< void * >( pAddy ), 1, PAGE_READWRITE, &dwOldProtect );
+ pAddy[ 0 ] = lReplace;
+ VirtualProtect( reinterpret_cast< void * >( pAddy ), 1, dwOldProtect, &dwNewProtect );
+
+ return true;
}
PIMAGE_IMPORT_DESCRIPTOR getNamedImportDescriptor( HMODULE hModule, LPCSTR szImportMod )
|
|
From: Mike G. <me...@us...> - 2003-08-28 15:01:57
|
Log Message:
-----------
Oops. Forgot to clean up my comment.
Modified Files:
--------------
/cvsroot/decaldev/CVSROOT:
loginfo
Revision Data
-------------
Index: loginfo
===================================================================
RCS file: /cvsroot/decaldev/CVSROOT/loginfo,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- loginfo 28 Aug 2003 14:56:42 -0000 1.10
+++ loginfo 28 Aug 2003 15:01:25 -0000 1.11
@@ -32,5 +32,5 @@
# DEFAULT $CVSROOT/CVSROOT/syncmail %{sVv} dec...@li...
# (yourgod - changing to activitymail to preserve what's left of my sanity)
-# (mekle - removed the "-u nobody" so that we can see who made the change
+# (mekle - removed the "-u nobody" so that we can see who made the change)
DEFAULT $CVSROOT/CVSROOT/activitymail -cdpgf %{sVv} -t dec...@li...
|
|
From: <no...@us...> - 2003-08-28 14:57:16
|
Log Message:
-----------
Fix "from" address for change emails.
Modified Files:
--------------
/cvsroot/decaldev/CVSROOT:
loginfo
Revision Data
-------------
Index: loginfo
===================================================================
RCS file: /cvsroot/decaldev/CVSROOT/loginfo,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- loginfo 3 Jun 2003 16:26:36 -0000 1.9
+++ loginfo 28 Aug 2003 14:56:42 -0000 1.10
@@ -32,4 +32,5 @@
# DEFAULT $CVSROOT/CVSROOT/syncmail %{sVv} dec...@li...
# (yourgod - changing to activitymail to preserve what's left of my sanity)
-DEFAULT $CVSROOT/CVSROOT/activitymail -u nobody -cdpgf %{sVv} -t dec...@li...
+# (mekle - removed the "-u nobody" so that we can see who made the change
+DEFAULT $CVSROOT/CVSROOT/activitymail -cdpgf %{sVv} -t dec...@li...
|
|
From: <no...@us...> - 2003-08-28 13:54:45
|
Log Message:
-----------
eh whatever
Modified Files:
--------------
/cvsroot/decaldev/source/Inject:
Inject.cpp
Revision Data
-------------
Index: Inject.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/Inject/Inject.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- Inject.cpp 27 Aug 2003 19:46:28 -0000 1.24
+++ Inject.cpp 28 Aug 2003 13:54:43 -0000 1.25
@@ -302,11 +302,15 @@
HANDLE __stdcall Replacement_CreateSemaphoreA( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCTSTR lpName )
{
- HANDLE hSem = CreateSemaphore( lpSemaphoreAttributes, lInitialCount, /* lMaximumCount */ 0x7F, lpName );
-
- SetLastError( 0 );
+ if( stricmp( lpName, "Empyrean Client" ) == 0 )
+ {
+ HANDLE hSem = CreateSemaphore( lpSemaphoreAttributes, lInitialCount, /* lMaximumCount */ 0x7F, lpName );
+ SetLastError( 0 );
+ return hSem;
+ }
- return hSem;
+ else
+ return CreateSemaphore( lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName );
}
PIMAGE_IMPORT_DESCRIPTOR getNamedImportDescriptor( HMODULE hModule, LPCSTR szImportMod )
|
|
From: <no...@us...> - 2003-08-27 19:47:00
|
Log Message:
-----------
yes kiddies decal can enable dual logging without a client patch.
Modified Files:
--------------
/cvsroot/decaldev/source/Inject:
Inject.cpp
Revision Data
-------------
Index: Inject.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/Inject/Inject.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- Inject.cpp 21 Jul 2003 19:11:22 -0000 1.23
+++ Inject.cpp 27 Aug 2003 19:46:28 -0000 1.24
@@ -47,6 +47,8 @@
// Functions for hooking from kernel32.dll
HANDLE WINAPI CreateFileF( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile );
+HANDLE WINAPI Replacement_CreateSemaphoreA( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCTSTR lpName );
+
enum eAddressing
{
eByName,
@@ -67,8 +69,13 @@
HANDLE _hUpdateEnabled = NULL;
static cHookDescriptor _hooks[] = {
- { eByName, _T( "ddraw.dll" ), _T( "DirectDrawCreate" ), 0, reinterpret_cast< DWORD >( DirectDrawCreateF ), 0 },
- { eByName, _T( "kernel32.dll" ), _T( "CreateFileA" ), 0, reinterpret_cast< DWORD >( CreateFileF ), 0 },
+ { eByName, _T( "ddraw.dll" ), _T( "DirectDrawCreate" ), 0, reinterpret_cast< DWORD >( DirectDrawCreateF ), 0 },
+ { eByName, _T( "kernel32.dll" ), _T( "CreateFileA" ), 0, reinterpret_cast< DWORD >( CreateFileF ), 0 },
+};
+
+static bool bDualLog = false;
+static cHookDescriptor _hooksDualLog[] = {
+ { eByName, _T( "kernel32.dll" ), _T( "CreateSemaphoreA" ), 102, reinterpret_cast< DWORD >( Replacement_CreateSemaphoreA ), 0 },
};
HINSTANCE hAlphaBlendDLL;
@@ -94,11 +101,23 @@
if( ::_tcsicmp( strProcessName + 1, _T( "client" ) ) == 0 )
{
- // ::MessageBox( NULL, _T( "DllMain" ), _T( "Inject.dll" ), MB_OK );
- hookFunctions( _hooks, 2 );
- bRegisteredInAC = true;
- //MessageBox(0,"asd","asd",0);
- //_asm int 3
+ hookFunctions( _hooks, 2 );
+ bRegisteredInAC = true;
+
+ // Check if dual logging is enabled
+ RegKey key;
+ if( key.Open( HKEY_LOCAL_MACHINE, "SOFTWARE\\Decal" ) == ERROR_SUCCESS )
+ {
+ DWORD dwDual = 0;
+ if( key.QueryDWORDValue( "AllowDualLog", dwDual ) == ERROR_SUCCESS )
+ {
+ if( dwDual )
+ {
+ bDualLog = true;
+ hookFunctions( _hooksDualLog, 1 );
+ }
+ }
+ }
}
_hUpdateEnabled = ::CreateMutex( NULL, FALSE, _T( "InjectEnablePlugins" ) );
@@ -114,12 +133,12 @@
}
else if (dwReason == DLL_PROCESS_DETACH)
{
- ::CloseHandle( _hUpdateEnabled );
+ ::CloseHandle( _hUpdateEnabled );
- if( hAlphaBlendDLL )
- FreeLibrary( hAlphaBlendDLL );
+ if( hAlphaBlendDLL )
+ FreeLibrary( hAlphaBlendDLL );
- _Module.Term();
+ _Module.Term();
}
return TRUE; // ok
}
@@ -281,6 +300,15 @@
return hFile;
}
+HANDLE __stdcall Replacement_CreateSemaphoreA( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCTSTR lpName )
+{
+ HANDLE hSem = CreateSemaphore( lpSemaphoreAttributes, lInitialCount, /* lMaximumCount */ 0x7F, lpName );
+
+ SetLastError( 0 );
+
+ return hSem;
+}
+
PIMAGE_IMPORT_DESCRIPTOR getNamedImportDescriptor( HMODULE hModule, LPCSTR szImportMod )
{
PIMAGE_DOS_HEADER pDOSHeader = reinterpret_cast< PIMAGE_DOS_HEADER >( hModule );
@@ -396,7 +424,6 @@
void DisplayErrorMessage( DWORD dwError, char* szFrom )
{
- LRESULT lrLength;
char szBuffer[1024];
char *lpMsgBuf;
|
|
From: <no...@us...> - 2003-08-27 19:07:17
|
Log Message:
-----------
no message
Modified Files:
--------------
/cvsroot/decaldev/source/Decal:
ACHooks.cpp
Revision Data
-------------
Index: ACHooks.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/Decal/ACHooks.cpp,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- ACHooks.cpp 27 Aug 2003 19:06:23 -0000 1.60
+++ ACHooks.cpp 27 Aug 2003 19:07:16 -0000 1.61
@@ -805,7 +805,6 @@
HookCall( m_lRequestShortcircuit1, g_lIdentifyHijackProc );
HookCall( m_lRequestShortcircuit2, g_lIdentifyHijackProc );
HookCall( m_lRequestShortcircuit3, g_lIdentifyHijackProc );
- HookCall( m_lRequestShortcircuit4, g_lIdentifyHijackProc );
}
s_pACHooks = NULL;
|
|
From: <no...@us...> - 2003-08-27 19:06:24
|
Log Message:
-----------
oops.
Modified Files:
--------------
/cvsroot/decaldev/source/Decal:
ACHooks.cpp
Revision Data
-------------
Index: ACHooks.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/Decal/ACHooks.cpp,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- ACHooks.cpp 21 Aug 2003 22:22:46 -0000 1.59
+++ ACHooks.cpp 27 Aug 2003 19:06:23 -0000 1.60
@@ -746,7 +746,6 @@
m_lRequestShortcircuit1 = 0;
m_lRequestShortcircuit2 = 0;
m_lRequestShortcircuit3 = 0;
- m_lRequestShortcircuit4 = 0;
if( QueryMemLoc( BSTRT( "RequestShortcircuit1" ), &Val ) == S_OK )
m_lRequestShortcircuit1 = Val;
|
|
From: <no...@us...> - 2003-08-27 19:02:32
|
Log Message:
-----------
IRender3DSink.. woot?
Modified Files:
--------------
/cvsroot/decaldev/source/Inject:
Direct3DHook.cpp
Inject.idl
Manager.cpp
Manager.h
Revision Data
-------------
Index: Direct3DHook.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/Inject/Direct3DHook.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- Direct3DHook.cpp 18 Aug 2001 19:34:50 -0000 1.1.1.1
+++ Direct3DHook.cpp 27 Aug 2003 19:02:19 -0000 1.2
@@ -11,18 +11,20 @@
void CDirect3DHook::setObject( IUnknown *pDevice )
{
- pDevice->QueryInterface( IID_IDirect3DDevice, reinterpret_cast< void ** >( &m_pDevice ) );
- pDevice->QueryInterface( IID_IDirect3DDevice2, reinterpret_cast< void ** >( &m_pDevice2 ) );
- pDevice->QueryInterface( IID_IDirect3DDevice3, reinterpret_cast< void ** >( &m_pDevice3 ) );
+ pDevice->QueryInterface( IID_IDirect3DDevice, reinterpret_cast< void ** >( &m_pDevice ) );
+ pDevice->QueryInterface( IID_IDirect3DDevice2, reinterpret_cast< void ** >( &m_pDevice2 ) );
+ pDevice->QueryInterface( IID_IDirect3DDevice3, reinterpret_cast< void ** >( &m_pDevice3 ) );
}
STDMETHODIMP CDirect3DHook::EndScene()
{
- HRESULT hRes = m_pDevice->EndScene();
+ cManager::_p->draw3D();
- // Draw the user 2D layer
- cManager::_p->draw2D();
+ HRESULT hRes = m_pDevice->EndScene();
- return hRes;
+ // Draw the user 2D layer
+ cManager::_p->draw2D();
+
+ return hRes;
}
Index: Inject.idl
===================================================================
RCS file: /cvsroot/decaldev/source/Inject/Inject.idl,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- Inject.idl 21 Mar 2003 09:03:22 -0000 1.37
+++ Inject.idl 27 Aug 2003 19:02:19 -0000 1.38
@@ -138,7 +138,8 @@
{
eManagerSinkCapWindowMessage = 0x01,
eManagerSinkCapPlugin = 0x02,
- eManagerSinkCapRender = 0x04
+ eManagerSinkCapRender = 0x04,
+ eManagerSinkCapRender3D = 0x08,
};
[
@@ -245,6 +246,17 @@
[
object,
+ uuid(FE9DCC98-22AE-44c1-877D-AAEA77E1249F),
+ helpstring("IRender3DSink Interface"),
+ pointer_default(unique)
+ ]
+ interface IRender3DSink : IUnknown
+ {
+ [helpstring("method Render3D")] HRESULT Render3D(IUnknown* pD3D);
+ };
+
+ [
+ object,
uuid(996B377C-1953-4db1-AAC1-157F72592D3E),
dual,
helpstring("Base interface for all controls."),
@@ -785,6 +797,7 @@
interface IPlugin;
interface IPluginSink;
interface IRenderSink;
+ interface IRender3DSink;
interface ILayerSite;
interface IControl;
Index: Manager.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/Inject/Manager.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- Manager.cpp 6 Aug 2003 01:21:17 -0000 1.74
+++ Manager.cpp 27 Aug 2003 19:02:19 -0000 1.75
@@ -261,27 +261,30 @@
void cManager::loadPlugin( IUnknown *pUnkPlugin )
{
- cPlugin p;
- p.m_pPlugin = pUnkPlugin;
- p.m_dwSinkCaps = 0;
+ cPlugin p;
+ p.m_pPlugin = pUnkPlugin;
+ p.m_dwSinkCaps = 0;
- // Test for sink caps
- static cManagerSinkCapTest _capstest[] = {
- { eManagerSinkCapWindowMessage, &IID_IWindowsMessageSink }, { eManagerSinkCapPlugin, &IID_IPluginSink}, { eManagerSinkCapRender, &IID_IRenderSink}
- };
+ // Test for sink caps
+ static cManagerSinkCapTest _capstest[] = {
+ { eManagerSinkCapWindowMessage, &IID_IWindowsMessageSink },
+ { eManagerSinkCapPlugin, &IID_IPluginSink},
+ { eManagerSinkCapRender, &IID_IRenderSink },
+ { eManagerSinkCapRender3D, &IID_IRender3DSink },
+ };
- static cManagerSinkCapTest *_end_caps = _capstest + ( sizeof( _capstest ) / sizeof( cManagerSinkCapTest ) );
+ static cManagerSinkCapTest *_end_caps = _capstest + ( sizeof( _capstest ) / sizeof( cManagerSinkCapTest ) );
- for( cManagerSinkCapTest *i = _capstest; i != _end_caps; ++ i )
- {
- CComPtr< IUnknown > pUnk;
- if( SUCCEEDED( pUnkPlugin->QueryInterface( *( i->m_iid ), reinterpret_cast< void ** >( &pUnk ) ) ) )
- p.m_dwSinkCaps |= i->m_mask;
- }
+ for( cManagerSinkCapTest *i = _capstest; i != _end_caps; ++ i )
+ {
+ CComPtr< IUnknown > pUnk;
+ if( SUCCEEDED( pUnkPlugin->QueryInterface( *( i->m_iid ), reinterpret_cast< void ** >( &pUnk ) ) ) )
+ p.m_dwSinkCaps |= i->m_mask;
+ }
- // Don't bother adding plugins without any sink interfaces
- if ( p.m_dwSinkCaps != 0 )
- m_plugins.push_back( p );
+ // Don't bother adding plugins without any sink interfaces
+ if ( p.m_dwSinkCaps != 0 )
+ m_plugins.push_back( p );
}
void cManager::unloadPlugins ()
@@ -348,6 +351,22 @@
_ASSERTMEM( _CrtCheckMemory( ) );
}
+}
+
+void cManager::draw3D()
+{
+ if( m_pRootSite != NULL )
+ {
+ for( cPluginList::iterator i = m_plugins.begin(); i != m_plugins.end(); ++i )
+ {
+ if( i->m_dwSinkCaps & eManagerSinkCapRender3D )
+ {
+ CComPtr< IRender3DSink > pSink;
+ i->m_pPlugin->QueryInterface( &pSink );
+ pSink->Render3D( m_p3DDevice );
+ }
+ }
+ }
}
void cManager::removeImage( cImage *pImage )
Index: Manager.h
===================================================================
RCS file: /cvsroot/decaldev/source/Inject/Manager.h,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- Manager.h 21 Jul 2003 19:11:22 -0000 1.31
+++ Manager.h 27 Aug 2003 19:02:19 -0000 1.32
@@ -51,6 +51,7 @@
void setWindow( HWND hWnd );
void draw2D();
+ void draw3D();
void clearDestroyList();
void __stdcall onChatMessage(BSTR bstrText, long lColor, VARIANT_BOOL *pbEat);
|
|
From: <no...@us...> - 2003-08-26 03:51:11
|
Log Message:
-----------
World updates... mostly for ReadlModel/Scale properties, but I also updated the strings to be faster
Modified Files:
--------------
/cvsroot/decaldev/source/DecalFilters:
DecalFilters.idl
World.cpp
World.h
WorldObject.cpp
WorldObject.h
Revision Data
-------------
Index: DecalFilters.idl
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/DecalFilters.idl,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- DecalFilters.idl 22 Aug 2003 05:51:02 -0000 1.33
+++ DecalFilters.idl 25 Aug 2003 18:18:23 -0000 1.34
@@ -537,6 +537,13 @@
[propget, id(43), helpstring("property HouseOwner")] HRESULT HouseOwner([out, retval] long *pVal);
[propget, id(44), helpstring("property HookMask")] HRESULT HookMask([out, retval] long *pVal);
[propget, id(45), helpstring("property HookType")] HRESULT HookType([out, retval] long *pVal);
+ [propget, id(46), helpstring("property RealModel")] HRESULT RealModel([out, retval] long *pVal);
+ [propget, id(47), helpstring("property Scale")] HRESULT Scale([out, retval] float* pVal);
+ [propget, id(48), helpstring("property Flags")] HRESULT Flags([out, retval] long *pVal);
+ [propget, id(49), helpstring("property CreateFlags1")] HRESULT CreateFlags1([out, retval] long *pVal);
+ [propget, id(50), helpstring("property CreateFlags2")] HRESULT CreateFlags2([out, retval] long *pVal);
+ [propget, id(51), helpstring("property ObjectFlags1")] HRESULT ObjectFlags1([out, retval] long *pVal);
+ [propget, id(52), helpstring("property ObjectFlags2")] HRESULT ObjectFlags2([out, retval] long *pVal);
};
[
Index: World.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/World.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- World.cpp 22 Aug 2003 05:51:02 -0000 1.48
+++ World.cpp 25 Aug 2003 18:18:23 -0000 1.49
@@ -27,74 +27,85 @@
// cWorld
// static bstring stable of doom :(
-#define strContainer "Container"
-#define strcontainer "container"
-#define strSlot "Slot"
-#define strslot "slot"
-#define strwielder "wielder"
-#define strlandblock "landblock"
-#define strOffset "Offset"
-#define strStackCount "StackCount"
-#define strstackCount "stackCount"
-#define strvalue "value"
+BSTR strContainer;
+BSTR strcontainer;
+BSTR strSlot;
+BSTR strslot;
+BSTR strwielder;
+BSTR strlandblock;
+BSTR strOffset;
+BSTR strStackCount;
+BSTR strstackCount;
+BSTR strvalue;
-#define strxOffset "xOffset"
-#define stryOffset "yOffset"
-#define strzOffset "zOffset"
-#define strxHeading "xHeading"
-#define strdestroyed "destroyed"
-#define stritem "item"
-#define strcount "count"
-#define strobject "object"
-#define strowner "owner"
-#define strsequence "sequence"
-#define strequipType "equipType"
-#define strsequence2 "sequence2"
-#define strcoverage "coverage"
-#define strflags1 "flags1"
-#define strlocation "location"
-#define strwieldingSlot "wieldingSlot"
-#define strflags2 "flags2"
-#define strobjectName "objectName"
-#define strsecondaryName "secondaryName"
-#define strmodel "model"
-#define stricon "icon"
-#define strunknown_v0_2 "unknown_v0_2"
-#define strunknown_v0_3 "unknown_v0_3"
-#define stritemSlots "itemSlots"
-#define strpackSlots "packSlots"
-#define strusesLeft "usesLeft"
-#define strtotalUses "totalUses"
-#define strstackMax "stackMax"
-#define strapproachDistance "approachDistance"
-#define strequipmentType "equipmentType"
-#define strtradenoteVendor "tradenoteVendor"
-#define strcoverage1 "coverage1"
-#define strcoverage2 "coverage2"
-#define strcoverage3 "coverage3"
-#define strmonarch "monarch"
-#define strmaterial "material"
-#define strassociatedSpell "associatedSpell"
-#define strtext "text"
-#define strsenderName "senderName"
-#define strtype "type"
-#define strcharacter "character"
-#define strevent "event"
-#define strpack "pack"
-#define stritemCount "itemCount"
-#define stritems "items"
-#define strdestination "destination"
-#define strinventoryCount "inventoryCount"
-#define strinventory "inventory"
-#define strisContainer "isContainer"
-#define strOwner "Owner"
-#define strposition "position"
-#define strSizeChange "EvtSizeChange"
-#define strStorageChange "EvtStorageChange"
-#define strLocationChange "EvtLocationChange"
-#define strIdentReceived "EvtIdentReceived"
-#define strReleasePending "EvtReleasePending"
-#define strExpirationCancel "EvtExpirationCancel"
+BSTR strxOffset;
+BSTR stryOffset;
+BSTR strzOffset;
+BSTR strxHeading;
+BSTR strdestroyed;
+BSTR stritem;
+BSTR strcount;
+BSTR strobject;
+BSTR strowner;
+BSTR strsequence;
+BSTR strequipType;
+BSTR strsequence2;
+BSTR strcoverage;
+BSTR strflags1;
+BSTR strlocation;
+BSTR strwieldingSlot;
+BSTR strflags2;
+BSTR strobjectName;
+BSTR strsecondaryName;
+BSTR strmodel;
+BSTR strrealmodel;
+BSTR strunkgreen;
+BSTR stricon;
+BSTR strunknown_v0_2;
+BSTR strunknown_v0_3;
+BSTR strunknown_v2;
+BSTR strunknown_v4;
+BSTR strunknown_v5;
+BSTR strunknown_w1;
+BSTR strunknown10;
+BSTR strunknown11b;
+BSTR stritemSlots;
+BSTR strpackSlots;
+BSTR strusesLeft;
+BSTR strtotalUses;
+BSTR strstackMax;
+BSTR strapproachDistance;
+BSTR strequipmentType;
+BSTR strtradenoteVendor;
+BSTR strcoverage1;
+BSTR strcoverage2;
+BSTR strcoverage3;
+BSTR strmonarch;
+BSTR strmaterial;
+BSTR strassociatedSpell;
+BSTR strtext;
+BSTR strsenderName;
+BSTR strtype;
+BSTR strcharacter;
+BSTR strevent;
+BSTR strpack;
+BSTR stritemCount;
+BSTR stritems;
+BSTR strdestination;
+BSTR strinventoryCount;
+BSTR strinventory;
+BSTR strisContainer;
+BSTR strOwner;
+BSTR strposition;
+BSTR strburden;
+BSTR strworkmanship;
+BSTR strhouseOwnerID;
+BSTR strSizeChange;
+BSTR strStorageChange;
+BSTR strLocationChange;
+BSTR strIdentReceived;
+BSTR strReleasePending;
+BSTR strExpirationCancel;
enum AcMessages
{
@@ -137,6 +148,87 @@
_DebugLog("\n\nLogin") ;
+ SysReAllocString( &strContainer, L"Container" );
+ SysReAllocString( &strContainer, L"Container" );
+ SysReAllocString( &strcontainer, L"container" );
+ SysReAllocString( &strSlot, L"Slot" );
+ SysReAllocString( &strslot, L"slot" );
+ SysReAllocString( &strwielder, L"wielder" );
+ SysReAllocString( &strlandblock, L"landblock" );
+ SysReAllocString( &strOffset, L"Offset" );
+ SysReAllocString( &strStackCount, L"StackCount" );
+ SysReAllocString( &strstackCount, L"stackCount" );
+ SysReAllocString( &strvalue, L"value" );
+
+ SysReAllocString( &strxOffset, L"xOffset" );
+ SysReAllocString( &stryOffset, L"yOffset" );
+ SysReAllocString( &strzOffset, L"zOffset" );
+ SysReAllocString( &strxHeading, L"xHeading" );
+ SysReAllocString( &strdestroyed, L"destroyed" );
+ SysReAllocString( &stritem, L"item" );
+ SysReAllocString( &strcount, L"count" );
+ SysReAllocString( &strobject, L"object" );
+ SysReAllocString( &strowner, L"owner" );
+ SysReAllocString( &strsequence, L"sequence" );
+ SysReAllocString( &strequipType, L"equipType" );
+ SysReAllocString( &strsequence2, L"sequence2" );
+ SysReAllocString( &strcoverage, L"coverage" );
+ SysReAllocString( &strflags1, L"flags1" );
+ SysReAllocString( &strlocation, L"location" );
+ SysReAllocString( &strwieldingSlot, L"wieldingSlot" );
+ SysReAllocString( &strflags2, L"flags2" );
+ SysReAllocString( &strobjectName, L"objectName" );
+ SysReAllocString( &strsecondaryName, L"secondaryName" );
+ SysReAllocString( &strmodel, L"model" );
+ SysReAllocString( &strrealmodel, L"modelNumber" );
+ SysReAllocString( &strunkgreen, L"unknown_green" );
+ SysReAllocString( &stricon, L"icon" );
+ SysReAllocString( &strunknown_v0_2, L"unknown_v0_2" );
+ SysReAllocString( &strunknown_v0_3, L"unknown_v0_3" );
+ SysReAllocString( &strunknown_v2, L"unknown_v2" );
+ SysReAllocString( &strunknown_v4, L"unknown_v4" );
+ SysReAllocString( &strunknown_v4, L"unknown_v5" );
+ SysReAllocString( &strunknown_w1, L"unknown_w1" );
+ SysReAllocString( &strunknown10, L"unknown10" );
+ SysReAllocString( &strunknown11b, L"unknown11b" );
+ SysReAllocString( &stritemSlots, L"itemSlots" );
+ SysReAllocString( &strpackSlots, L"packSlots" );
+ SysReAllocString( &strusesLeft, L"usesLeft" );
+ SysReAllocString( &strtotalUses, L"totalUses" );
+ SysReAllocString( &strstackMax, L"stackMax" );
+ SysReAllocString( &strapproachDistance, L"approachDistance" );
+ SysReAllocString( &strequipmentType, L"equipmentType" );
+ SysReAllocString( &strtradenoteVendor, L"tradenoteVendor" );
+ SysReAllocString( &strcoverage1, L"coverage1" );
+ SysReAllocString( &strcoverage2, L"coverage2" );
+ SysReAllocString( &strcoverage3, L"coverage3" );
+ SysReAllocString( &strmonarch, L"monarch" );
+ SysReAllocString( &strmaterial, L"material" );
+ SysReAllocString( &strassociatedSpell, L"associatedSpell" );
+ SysReAllocString( &strtext, L"text" );
+ SysReAllocString( &strsenderName, L"senderName" );
+ SysReAllocString( &strtype, L"type" );
+ SysReAllocString( &strcharacter, L"character" );
+ SysReAllocString( &strevent, L"event" );
+ SysReAllocString( &strpack, L"pack" );
+ SysReAllocString( &stritemCount, L"itemCount" );
+ SysReAllocString( &stritems, L"items" );
+ SysReAllocString( &strdestination, L"destination" );
+ SysReAllocString( &strinventoryCount, L"inventoryCount" );
+ SysReAllocString( &strinventory, L"inventory" );
+ SysReAllocString( &strisContainer, L"isContainer" );
+ SysReAllocString( &strOwner, L"Owner" );
+ SysReAllocString( &strposition, L"position" );
+ SysReAllocString( &strburden, L"burden" );
+ SysReAllocString( &strworkmanship, L"workmanship" );
+ SysReAllocString( &strhouseOwnerID, L"houseOwnerID" );
+ SysReAllocString( &strSizeChange, L"EvtSizeChange" );
+ SysReAllocString( &strStorageChange, L"EvtStorageChange" );
+ SysReAllocString( &strLocationChange, L"EvtLocationChange" );
+ SysReAllocString( &strIdentReceived, L"EvtIdentReceived" );
+ SysReAllocString( &strReleasePending, L"EvtReleasePending" );
+ SysReAllocString( &strExpirationCancel, L"EvtExpirationCancel" );
+
if( !m_HookIsSet )
SetHook() ;
@@ -193,6 +285,86 @@
m_pDecal = NULL ;
}
+ // cleanup our bstr mess...
+ SysFreeString( strContainer );
+ SysFreeString( strcontainer );
+ SysFreeString( strSlot );
+ SysFreeString( strslot );
+ SysFreeString( strwielder );
+ SysFreeString( strlandblock );
+ SysFreeString( strOffset );
+ SysFreeString( strStackCount );
+ SysFreeString( strstackCount );
+ SysFreeString( strvalue );
+
+ SysFreeString( strxOffset );
+ SysFreeString( stryOffset );
+ SysFreeString( strzOffset );
+ SysFreeString( strxHeading );
+ SysFreeString( strdestroyed );
+ SysFreeString( stritem );
+ SysFreeString( strcount );
+ SysFreeString( strobject );
+ SysFreeString( strowner );
+ SysFreeString( strsequence );
+ SysFreeString( strequipType );
+ SysFreeString( strsequence2 );
+ SysFreeString( strcoverage );
+ SysFreeString( strflags1 );
+ SysFreeString( strlocation );
+ SysFreeString( strwieldingSlot );
+ SysFreeString( strflags2 );
+ SysFreeString( strobjectName );
+ SysFreeString( strsecondaryName );
+ SysFreeString( strmodel );
+ SysFreeString( strrealmodel );
+ SysFreeString( strunkgreen );
+ SysFreeString( stricon );
+ SysFreeString( strunknown_v0_2 );
+ SysFreeString( strunknown_v0_3 );
+ SysFreeString( strunknown_v2 );
+ SysFreeString( strunknown_v4 );
+ SysFreeString( strunknown_v5 );
+ SysFreeString( strunknown_w1 );
+ SysFreeString( strunknown10 );
+ SysFreeString( stritemSlots );
+ SysFreeString( strpackSlots );
+ SysFreeString( strusesLeft );
+ SysFreeString( strtotalUses );
+ SysFreeString( strstackMax );
+ SysFreeString( strapproachDistance );
+ SysFreeString( strequipmentType );
+ SysFreeString( strtradenoteVendor );
+ SysFreeString( strcoverage1 );
+ SysFreeString( strcoverage2 );
+ SysFreeString( strcoverage3 );
+ SysFreeString( strmonarch );
+ SysFreeString( strmaterial );
+ SysFreeString( strassociatedSpell );
+ SysFreeString( strtext );
+ SysFreeString( strsenderName );
+ SysFreeString( strtype );
+ SysFreeString( strcharacter );
+ SysFreeString( strevent );
+ SysFreeString( strpack );
+ SysFreeString( stritemCount );
+ SysFreeString( stritems );
+ SysFreeString( strdestination );
+ SysFreeString( strinventoryCount );
+ SysFreeString( strinventory );
+ SysFreeString( strisContainer );
+ SysFreeString( strOwner );
+ SysFreeString( strposition );
+ SysFreeString( strburden );
+ SysFreeString( strworkmanship );
+ SysFreeString( strhouseOwnerID );
+ SysFreeString( strSizeChange );
+ SysFreeString( strStorageChange );
+ SysFreeString( strLocationChange );
+ SysFreeString( strIdentReceived );
+ SysFreeString( strReleasePending );
+ SysFreeString( strExpirationCancel );
+
return S_OK;
}
@@ -255,11 +427,12 @@
BSTR Sender ;
long nType ;
- pMembers->get_NextString(_bstr_t(strtext), &Text) ;
- pMembers->get_NextString(_bstr_t(strsenderName), &Sender) ;
- pMembers->get_NextInt(_bstr_t(strtype), &nType) ;
+ pMembers->get_NextString(strtext, &Text) ;
+ pMembers->get_NextString(strsenderName, &Sender) ;
+ pMembers->get_NextInt(strtype, &nType) ;
if (nType==2) {
- _DebugLog("\n\n%s: %s", LPCSTR(_bstr_t(Sender)), LPCSTR(_bstr_t(Text))) ;
+ USES_CONVERSION;
+ _DebugLog("\n\n%s: %s", OLE2A(Sender), OLE2A(Text)) ;
}
}
#endif
@@ -268,8 +441,8 @@
{
long nCharacter, nEvent;
- pMembers->get_NextInt(_bstr_t(strcharacter), &nCharacter);
- pMembers->get_NextInt(_bstr_t(strevent), &nEvent);
+ pMembers->get_NextInt(strcharacter, &nCharacter);
+ pMembers->get_NextInt(strevent, &nEvent);
if (!m_objects.player()) {
_DebugLog("\nPlayer: %x", nCharacter) ;
@@ -468,7 +641,7 @@
void cWorld::DoDestroyObj(CComPtr< IMessageIterator > pMembers)
{
long nDestroyed;
- pMembers->get_NextInt(_bstr_t(strdestroyed), &nDestroyed);
+ pMembers->get_NextInt(strdestroyed, &nDestroyed);
_DebugLog("\n\nDestroyObj %x", nDestroyed) ;
// if we know about this object
@@ -486,8 +659,8 @@
void cWorld::DoSetCoverage(CComPtr<IMessageIterator> pMembers)
{
long object, coverage ;
- pMembers->get_NextInt(_bstr_t(strobject), &object) ;
- pMembers->get_NextInt(_bstr_t(strcoverage), &coverage) ;
+ pMembers->get_NextInt(strobject, &object) ;
+ pMembers->get_NextInt(strcoverage, &coverage) ;
_DebugLog("\n\nSetCoverage %x %x", object, coverage) ;
if (cWorldData *pData = Data(object)) {
@@ -506,11 +679,11 @@
{
long object, container, seq, type, seq2 ;
- pMembers->get_NextInt(_bstr_t(strsequence), &seq) ;
- pMembers->get_NextInt(_bstr_t(strobject), &object) ;
- pMembers->get_NextInt(_bstr_t(strequipType), &type) ;
- pMembers->get_NextInt(_bstr_t(strcontainer), &container) ;
- pMembers->get_NextInt(_bstr_t(strsequence2), &seq2) ;
+ pMembers->get_NextInt(strsequence, &seq) ;
+ pMembers->get_NextInt(strobject, &object) ;
+ pMembers->get_NextInt(strequipType, &type) ;
+ pMembers->get_NextInt(strcontainer, &container) ;
+ pMembers->get_NextInt(strsequence2, &seq2) ;
_DebugLog("\n\nSetContainer: %d, %x, %d, %x, %d", seq, object, type, container, seq2) ;
@@ -556,9 +729,9 @@
{
long nItem, nCount, nValue;
- pMembers->get_NextInt(_bstr_t(stritem), &nItem);
- pMembers->get_NextInt(_bstr_t(strcount), &nCount);
- pMembers->get_NextInt(_bstr_t(strvalue), &nValue);
+ pMembers->get_NextInt(stritem, &nItem);
+ pMembers->get_NextInt(strcount, &nCount);
+ pMembers->get_NextInt(strvalue, &nValue);
_DebugLog("\n\nAdjustStackSize %x %d %d", nItem, nCount, nValue) ;
@@ -570,15 +743,15 @@
pData->m_dwValue = nValue;
// Fire change events for those items that may have changed
- Fire_ChangeObject(pData->m_p, _bstr_t(strSizeChange));
+ Fire_ChangeObject(pData->m_p, strSizeChange);
}
}
void cWorld::DoWearItem(CComPtr<IMessageIterator> pMembers)
{
long nObject, nSlot;
- pMembers->get_NextInt(_bstr_t(stritem), &nObject);
- pMembers->get_NextInt(_bstr_t(strslot), &nSlot) ;
+ pMembers->get_NextInt(stritem, &nObject);
+ pMembers->get_NextInt(strslot, &nSlot) ;
_DebugLog("\n\nWearItem %x %x", nObject, nSlot) ;
if (cWorldData *pData = Data(nObject))
@@ -591,14 +764,14 @@
// Gouru: Changed to capitalized versions of these string for consistency with other
// fired events
- Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
+ Fire_ChangeObject(pData->m_p, strStorageChange);
}
}
void cWorld::DoDropItem(CComPtr<IMessageIterator> pMembers)
{
long nItem;
- pMembers->get_NextInt(_bstr_t(stritem), &nItem);
+ pMembers->get_NextInt(stritem, &nItem);
_DebugLog("\n\nDropItem %x", nItem) ;
if (cWorldData *pData = Data(nItem)) {
@@ -609,7 +782,7 @@
pData->m_dwContainer = 0;
pData->m_dwWielder = 0 ; // not wielded when on ground
}
- Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
+ Fire_ChangeObject(pData->m_p, strStorageChange);
}
}
@@ -618,9 +791,9 @@
CComPtr<IMessageIterator> pItems, pItem;
long nPack, nItemCount, ixItem = 0, ixPack=0;
- pMembers->get_NextInt(_bstr_t(strpack), &nPack);
- pMembers->get_NextInt(_bstr_t(stritemCount), &nItemCount);
- pMembers->get_NextObject(_bstr_t(stritems), &pItems);
+ pMembers->get_NextInt(strpack, &nPack);
+ pMembers->get_NextInt(stritemCount, &nItemCount);
+ pMembers->get_NextObject(stritems, &pItems);
_DebugLog("\n\nSetPackContents %x %d", nPack, nItemCount) ;
@@ -628,8 +801,8 @@
{
long nItem, nType;
- pItem->get_NextInt(_bstr_t(stritem), &nItem);
- pItem->get_NextInt(_bstr_t(strtype), &nType);
+ pItem->get_NextInt(stritem, &nItem);
+ pItem->get_NextInt(strtype, &nType);
CSlot slot = (nType==0) ? CSlot(ixItem++, 0x00) : CSlot(ixPack++, 0x01) ;
@@ -641,7 +814,7 @@
pData->m_Slot = slot ;
//SetObjectOwner(pData);
- Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
+ Fire_ChangeObject(pData->m_p, strStorageChange);
}
else
{
@@ -658,9 +831,9 @@
{
long nItem, nDest, nSlot;
- pMembers->get_NextInt(_bstr_t(stritem), &nItem);
- pMembers->get_NextInt(_bstr_t(strdestination), &nDest);
- pMembers->get_NextInt(_bstr_t(strslot), &nSlot);
+ pMembers->get_NextInt(stritem, &nItem);
+ pMembers->get_NextInt(strdestination, &nDest);
+ pMembers->get_NextInt(strslot, &nSlot);
_DebugLog("\n\nInsertIntoInventory %x %x %d", nItem, nDest, nSlot) ;
@@ -687,7 +860,7 @@
pData->m_Slot.slot = nSlot;
pData->m_dwWielder = 0 ; // not wielded when in inventory
- Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
+ Fire_ChangeObject(pData->m_p, strStorageChange);
}
}
@@ -697,16 +870,16 @@
CComPtr<IMessageIterator> pItems, pItem;
long nCount, ixSlot = 0, ixPack=0 ;
- pMembers->get_NextInt(_bstr_t(strinventoryCount), &nCount);
- pMembers->get_NextObject(_bstr_t(strinventory), &pItems);
+ pMembers->get_NextInt(strinventoryCount, &nCount);
+ pMembers->get_NextObject(strinventory, &pItems);
while (pItems->get_NextObjectIndex(&pItem) == S_OK)
{
long nObject, nIsContainer;
cWorldData *pData;
- pItem->get_NextInt(_bstr_t(strobject), &nObject);
- pItem->get_NextInt(_bstr_t(strisContainer), &nIsContainer);
+ pItem->get_NextInt(strobject, &nObject);
+ pItem->get_NextInt(strisContainer, &nIsContainer);
CSlot info ;
if (nIsContainer) {
@@ -735,7 +908,7 @@
void cWorld::DoMoveToInventory(CComPtr<IMessageIterator> pMembers)
{
long nObject;
- pMembers->get_NextInt(_bstr_t(strobject), &nObject);
+ pMembers->get_NextInt(strobject, &nObject);
_DebugLog("\n\nMoveToInventory %x", nObject) ;
@@ -749,7 +922,7 @@
}
pData->m_dwWielder = 0 ; // unwielded unless we get a wield msg later
- Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
+ Fire_ChangeObject(pData->m_p, strStorageChange);
}
}
@@ -759,7 +932,7 @@
USES_CONVERSION ;
long nObject;
- pMembers->get_NextInt(_bstr_t(strobject), &nObject);
+ pMembers->get_NextInt(strobject, &nObject);
_DebugLog("\n\nCreateObject %x", nObject) ;
@@ -793,23 +966,23 @@
_ASSERTE(pCreate);
pCreate->m_dwGUID = nObject;
- pMembers->get_NextInt(_bstr_t(strflags1), &pCreate->m_dwFlags1);
+ pMembers->get_NextInt(strflags1, &pCreate->m_dwFlags1);
// Location of Object
if (pCreate->m_dwFlags1 & 0x00008000)
{
CComPtr< IMessageIterator > pPos;
- pMembers->get_NextObject(_bstr_t(strlocation), &pPos);
+ pMembers->get_NextObject(strlocation, &pPos);
- pPos->get_NextInt(_bstr_t(strlandblock), &pCreate->m_dwLandblock);
+ pPos->get_NextInt(strlandblock, &pCreate->m_dwLandblock);
_DebugLog("\n Landblock %d", pCreate->m_dwLandblock) ;
- pPos->get_NextFloat(_bstr_t(strxOffset), &pCreate->m_fxOffset);
+ pPos->get_NextFloat(strxOffset, &pCreate->m_fxOffset);
_DebugLog("\n xOffset %f", pCreate->m_fxOffset) ;
- pPos->get_NextFloat(_bstr_t(stryOffset), &pCreate->m_fyOffset);
+ pPos->get_NextFloat(stryOffset, &pCreate->m_fyOffset);
_DebugLog("\n yOffset %f", pCreate->m_fyOffset) ;
- pPos->get_NextFloat(_bstr_t(strzOffset), &pCreate->m_fzOffset);
+ pPos->get_NextFloat(strzOffset, &pCreate->m_fzOffset);
_DebugLog("\n zOffset %f", pCreate->m_fzOffset) ;
- pPos->get_NextFloat(_bstr_t(strxHeading), &pCreate->m_fxHeading);
+ pPos->get_NextFloat(strxHeading, &pCreate->m_fxHeading);
_DebugLog("\n Heading %f", pCreate->m_fxHeading) ;
// landblock info used to speed up culling
pCreate->m_LandblockCol = (pCreate->m_dwLandblock>>24) & 0xff ;
@@ -821,32 +994,46 @@
// Wielder Information
if (pCreate->m_dwFlags1 & 0x00000020)
{
- pMembers->get_NextInt(_bstr_t(strwielder), &pCreate->m_dwWielder);
+ pMembers->get_NextInt(strwielder, &pCreate->m_dwWielder);
_DebugLog("\n Wielder %d", pCreate->m_dwWielder) ;
- pMembers->get_NextInt(_bstr_t(strwieldingSlot), &pCreate->m_dwWieldingSlot);
+ pMembers->get_NextInt(strwieldingSlot, &pCreate->m_dwWieldingSlot);
_DebugLog("\n Wieldingslot %d", pCreate->m_dwWieldingSlot) ;
pCreate->m_Slot.slot = -1 ; // wielded items are slot 1
pCreate->m_dwContainer = pCreate->m_dwWielder ;
}
- pMembers->get_NextInt(_bstr_t(strflags2), &pCreate->m_dwFlags2);
+ // Real Model
+ if (pCreate->m_dwFlags1 & 0x1)
+ {
+ pMembers->get_NextInt(strrealmodel, &pCreate->m_dwRealModel);
+ _DebugLog("\n Real Model %x",pCreate->m_dwRealModel) ;
+ }
+
+ // Scale
+ if( pCreate->m_dwFlags1 & 0x80 )
+ {
+ pMembers->get_NextFloat(strunkgreen, &pCreate->m_fScale);
+ _DebugLog("\n Scale %.2f",pCreate->m_fScale) ;
+ }
+
+ pMembers->get_NextInt(strflags2, &pCreate->m_dwFlags2);
BSTR strName;
- pMembers->get_NextString(_bstr_t(strobjectName), &strName);
+ pMembers->get_NextString(strobjectName, &strName);
pCreate->m_strName = OLE2A(strName);
_DebugLog("\n Name: %s", pCreate->m_strName.c_str()) ;
- pMembers->get_NextInt(_bstr_t(strmodel), &pCreate->m_dwModel);
+ pMembers->get_NextInt(strmodel, &pCreate->m_dwModel);
_DebugLog("\n Model %x",pCreate->m_dwModel) ;
- pMembers->get_NextInt(_bstr_t(stricon), &pCreate->m_dwIcon);
+ pMembers->get_NextInt(stricon, &pCreate->m_dwIcon);
_DebugLog("\n Icon %x",pCreate->m_dwIcon) ;
- pMembers->get_NextInt(_bstr_t(strunknown_v0_2), &pCreate->m_dwObjectFlags1);
- pMembers->get_NextInt(_bstr_t(strunknown_v0_3), &pCreate->m_dwObjectFlags2);
+ pMembers->get_NextInt(strunknown_v0_2, &pCreate->m_dwObjectFlags1);
+ pMembers->get_NextInt(strunknown_v0_3, &pCreate->m_dwObjectFlags2);
// Secondary name
if (pCreate->m_dwFlags2 & 0x00000001) {
BSTR strName;
- pMembers->get_NextString(_bstr_t(strsecondaryName), &strName);
+ pMembers->get_NextString(strsecondaryName, &strName);
pCreate->m_strSecondaryName = OLE2A(strName);
_DebugLog("\n SecName: %s", pCreate->m_strSecondaryName.c_str()) ;
}
@@ -855,7 +1042,7 @@
if (pCreate->m_dwFlags2 & 0x00000002)
{
pCreate->m_flags |= FLAG_CONTAINS;
- pMembers->get_NextInt(_bstr_t(stritemSlots), (long *)&pCreate->m_nItemSlots);
+ pMembers->get_NextInt(stritemSlots, (long *)&pCreate->m_nItemSlots);
_DebugLog("\n ItemSlots %x",pCreate->m_nItemSlots) ;
// if it has slots for items, must be a container type
pCreate->m_Slot.type = 1 ;
@@ -865,7 +1052,7 @@
if (pCreate->m_dwFlags2 & 0x00000004)
{
pCreate->m_flags |= FLAG_CONTAINS;
- pMembers->get_NextInt(_bstr_t(strpackSlots), (long *)&pCreate->m_nPackSlots);
+ pMembers->get_NextInt(strpackSlots, (long *)&pCreate->m_nPackSlots);
_DebugLog("\n PackSlots %x",pCreate->m_nPackSlots) ;
// if it has slots for packs, must be a container type
pCreate->m_Slot.type = 1 ;
@@ -873,7 +1060,7 @@
// Value
if (pCreate->m_dwFlags2 & 0x00000008) {
- pMembers->get_NextInt(_bstr_t(strvalue), &pCreate->m_dwValue);
+ pMembers->get_NextInt(strvalue, &pCreate->m_dwValue);
_DebugLog("\n Value %x",pCreate->m_dwValue) ;
} else {
pCreate->m_dwValue = -1;
@@ -882,7 +1069,7 @@
// Total Value
if (pCreate->m_dwFlags2 & 0x00000010) {
- pMembers->get_NextInt(_bstr_t("unknown_v2"), &pCreate->m_TotalValue);
+ pMembers->get_NextInt(strunknown_v2, &pCreate->m_TotalValue);
_DebugLog("\n TotValue %x",pCreate->m_TotalValue) ;
} else {
pCreate->m_dwValue = -1;
@@ -891,60 +1078,60 @@
// approachDistance
if (pCreate->m_dwFlags2 & 0x00000020) {
- pMembers->get_NextFloat(_bstr_t(strapproachDistance), &pCreate->m_fApproachDistance);
+ pMembers->get_NextFloat(strapproachDistance, &pCreate->m_fApproachDistance);
_DebugLog("\n ApproachDist %f",pCreate->m_fApproachDistance) ;
}
// Icon Outline
if (pCreate->m_dwFlags2 & 0x00000080) {
- pMembers->get_NextInt(_bstr_t("unknown_v4"), &pCreate->m_IconOutline);
+ pMembers->get_NextInt(strunknown_v4, &pCreate->m_IconOutline);
_DebugLog("\n m_IconOutline %x",pCreate->m_IconOutline) ;
}
// Missile Type
if (pCreate->m_dwFlags2 & 0x00000100) {
- pMembers->get_NextInt(_bstr_t("unknown_w1"), &pCreate->m_MissileType);
+ pMembers->get_NextInt(strunknown_w1, &pCreate->m_MissileType);
_DebugLog("\n m_MissileType %x",pCreate->m_MissileType) ;
}
// Equip Type
if (pCreate->m_dwFlags2 & 0x00000200) {
- pMembers->get_NextInt(_bstr_t(strequipmentType), &pCreate->m_dwEquipType);
+ pMembers->get_NextInt(strequipmentType, &pCreate->m_dwEquipType);
_DebugLog("\n EquipType %x",pCreate->m_dwEquipType) ;
}
// Uses Left
if (pCreate->m_dwFlags2 & 0x00000400) {
pCreate->m_flags |= FLAG_USEABLE;
- pMembers->get_NextInt(_bstr_t(strusesLeft), (long *)&pCreate->m_nUsesLeft);
+ pMembers->get_NextInt(strusesLeft, (long *)&pCreate->m_nUsesLeft);
_DebugLog("\n UsesLeft %x",pCreate->m_nUsesLeft) ;
}
// Total Uses
if (pCreate->m_dwFlags2 & 0x00000800) {
pCreate->m_flags |= FLAG_USEABLE;
- pMembers->get_NextInt(_bstr_t(strtotalUses), (long *)&pCreate->m_nTotalUses);
+ pMembers->get_NextInt(strtotalUses, (long *)&pCreate->m_nTotalUses);
_DebugLog("\n TotalUses %x",pCreate->m_nTotalUses) ;
}
// Stack Count
if (pCreate->m_dwFlags2 & 0x00001000) {
pCreate->m_flags |= FLAG_STACKABLE;
- pMembers->get_NextInt(_bstr_t(strstackCount), (long *)&pCreate->m_nStackCount);
+ pMembers->get_NextInt(strstackCount, (long *)&pCreate->m_nStackCount);
_DebugLog("\n StackCount %x",pCreate->m_nStackCount) ;
}
// Stack Maximum
if (pCreate->m_dwFlags2 & 0x00002000) {
pCreate->m_flags |= FLAG_STACKABLE;
- pMembers->get_NextInt(_bstr_t(strstackMax), (long *)&pCreate->m_nStackMax);
+ pMembers->get_NextInt(strstackMax, (long *)&pCreate->m_nStackMax);
_DebugLog("\n StackMax %x",pCreate->m_nStackMax) ;
}
// Container ID
if (pCreate->m_dwFlags2 & 0x00004000) {
- pMembers->get_NextInt(_bstr_t(strcontainer), &pCreate->m_dwContainer);
+ pMembers->get_NextInt(strcontainer, &pCreate->m_dwContainer);
_DebugLog("\n container: %x",pCreate->m_dwContainer) ;
}
@@ -953,7 +1140,7 @@
long dword ;
// gouru, owner is same as container for these purposes, however, the item appears
// to be either worn or wielded, assume slot -1
- pMembers->get_NextInt(_bstr_t(strowner), &dword);
+ pMembers->get_NextInt(strowner, &dword);
_DebugLog("\n ownerid: %x",dword) ;
pCreate->m_dwContainer = dword ;
pCreate->m_Slot.slot = -1 ;
@@ -961,85 +1148,85 @@
// Coverage1
if (pCreate->m_dwFlags2 & 0x00010000) {
- pMembers->get_NextInt(_bstr_t(strcoverage1), &pCreate->m_dwCoverage);
+ pMembers->get_NextInt(strcoverage1, &pCreate->m_dwCoverage);
_DebugLog("\n coverage1: %x",pCreate->m_dwCoverage) ;
}
// Coverage2
if (pCreate->m_dwFlags2 & 0x00020000) {
- pMembers->get_NextInt(_bstr_t(strcoverage2), &pCreate->m_dwCoverage2);
+ pMembers->get_NextInt(strcoverage2, &pCreate->m_dwCoverage2);
_DebugLog("\n coverage2: %x",pCreate->m_dwCoverage2) ;
}
// Coverage3
if (pCreate->m_dwFlags2 & 0x00040000) {
- pMembers->get_NextInt(_bstr_t(strcoverage3), &pCreate->m_dwCoverage3);
+ pMembers->get_NextInt(strcoverage3, &pCreate->m_dwCoverage3);
_DebugLog("\n coverage3: %x",pCreate->m_dwCoverage3) ;
}
// Usage Mask
if (pCreate->m_dwFlags2 & 0x00080000) {
- pMembers->get_NextInt(_bstr_t("unknown_v5"), &pCreate->m_UsageMask);
+ pMembers->get_NextInt(strunknown_v5, &pCreate->m_UsageMask);
_DebugLog("\n m_UsageMask: %x",pCreate->m_UsageMask) ;
}
// Monarch
if (pCreate->m_dwFlags2 & 0x00000040) {
- pMembers->get_NextInt(_bstr_t(strmonarch), &pCreate->m_dwMonarch);
+ pMembers->get_NextInt(strmonarch, &pCreate->m_dwMonarch);
_DebugLog("\n Monarch: %x",pCreate->m_dwMonarch) ;
}
// Tradenote Vendor ID
if (pCreate->m_dwFlags2 & 0x00020000) {
- pMembers->get_NextInt(_bstr_t(strtradenoteVendor), &pCreate->m_dwTradeNoteVendor);
+ pMembers->get_NextInt(strtradenoteVendor, &pCreate->m_dwTradeNoteVendor);
_DebugLog("\n TradeNoteVendor: %x",pCreate->m_dwTradeNoteVendor) ;
}
// Burden
if (pCreate->m_dwFlags2 & 0x00200000) {
- pMembers->get_NextInt(_bstr_t("burden"), &pCreate->m_Burden);
+ pMembers->get_NextInt(strburden, &pCreate->m_Burden);
_DebugLog("\n m_Burden: %x",pCreate->m_Burden) ;
}
// Associated Spell
if (pCreate->m_dwFlags2 & 0x00400000) {
- pMembers->get_NextInt(_bstr_t(strassociatedSpell), &pCreate->m_dwAssociatedSpell);
+ pMembers->get_NextInt(strassociatedSpell, &pCreate->m_dwAssociatedSpell);
_DebugLog("\n m_dwAssociatedSpell: %x",pCreate->m_dwAssociatedSpell) ;
}
// Workmanship
if (pCreate->m_dwFlags2 & 0x01000000) {
- pMembers->get_NextFloat(_bstr_t("workmanship"), &pCreate->m_Workmanship);
+ pMembers->get_NextFloat(strworkmanship, &pCreate->m_Workmanship);
_DebugLog("\n m_dwMaterial: %x",pCreate->m_dwMaterial) ;
}
// Workmanship
if (pCreate->m_dwFlags2 & 0x02000000) {
- pMembers->get_NextInt(_bstr_t("houseOwnerID"), &pCreate->m_HouseOwner);
+ pMembers->get_NextInt(strhouseOwnerID, &pCreate->m_HouseOwner);
_DebugLog("\n m_HouseOwner: %x",pCreate->m_HouseOwner) ;
}
// Hook Mask
if (pCreate->m_dwFlags2 & 0x10000000) {
- pMembers->get_NextInt(_bstr_t("unknown10"), &pCreate->m_HookMask);
+ pMembers->get_NextInt(strunknown10, &pCreate->m_HookMask);
_DebugLog("\n m_HookMask: %x",pCreate->m_HookMask) ;
}
// Hook Type
if (pCreate->m_dwFlags2 & 0x10000000) {
- pMembers->get_NextInt(_bstr_t("unknown11b"), &pCreate->m_HookType);
+ pMembers->get_NextInt(strunknown11b, &pCreate->m_HookType);
_DebugLog("\n m_HookType: %x",pCreate->m_HookType) ;
}
// Material
if (pCreate->m_dwFlags2 & 0x80000000) {
- pMembers->get_NextInt(_bstr_t(strmaterial), &pCreate->m_dwMaterial);
+ pMembers->get_NextInt(strmaterial, &pCreate->m_dwMaterial);
_DebugLog("\n m_dwMaterial: %x",pCreate->m_dwMaterial) ;
}
@@ -1209,7 +1396,7 @@
void cWorld::DoRemoveItem(CComPtr<IMessageIterator> pMembers)
{
long nObject;
- pMembers->get_NextInt(_bstr_t(strobject), &nObject);
+ pMembers->get_NextInt(strobject, &nObject);
_DebugLog("\n\nRemoveItem %x", nObject) ;
@@ -1222,8 +1409,8 @@
void cWorld::DoWieldItem(CComPtr<IMessageIterator> pMembers)
{
long nObject, nOwner;
- pMembers->get_NextInt(_bstr_t(strowner), &nOwner);
- pMembers->get_NextInt(_bstr_t(strobject), &nObject);
+ pMembers->get_NextInt(strowner, &nOwner);
+ pMembers->get_NextInt(strobject, &nObject);
_DebugLog("\n\nWieldItem %x %x", nObject, nOwner) ;
if (cWorldData *pData = Data(nObject))
@@ -1233,7 +1420,7 @@
MoveSlotBack(pData); // moves back only if player owns this item
pData->m_Slot.slot = -1;
- Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
+ Fire_ChangeObject(pData->m_p, strStorageChange);
}
}
@@ -1260,7 +1447,7 @@
void cWorld::DoSetObjectPosition(CComPtr<IMessageIterator> pMembers)
{
long nObject;
- pMembers->get_NextInt(_bstr_t(strobject), &nObject);
+ pMembers->get_NextInt(strobject, &nObject);
// Gouru: not normally logged as we get an S load of these messages, uncomment if you
// really need it for testing...
// _DebugLog("\nSetObjectPosition %x", nObject) ;
@@ -1270,10 +1457,10 @@
if (pData)
{
CComPtr< IMessageIterator > pPos;
- pMembers->get_NextObject(_bstr_t(strposition), &pPos);
+ pMembers->get_NextObject(strposition, &pPos);
DWORD dwLandblock;
- pPos->get_NextInt(_bstr_t(strlandblock), (long *)&dwLandblock);
+ pPos->get_NextInt(strlandblock, (long *)&dwLandblock);
// long oldLandblock = pData->m_dwLandblock ;
// long colLandblock = (dwLandblock>>24) & 0xff ;
@@ -1283,10 +1470,10 @@
pData->m_dwLandblock = dwLandblock;
pData->m_LandblockCol = (dwLandblock>>24) & 0xff ;
pData->m_LandblockRow = (dwLandblock>>16) & 0xff ;
- pPos->get_NextFloat(_bstr_t(strxOffset), &pData->m_fxOffset);
- pPos->get_NextFloat(_bstr_t(stryOffset), &pData->m_fyOffset);
- pPos->get_NextFloat(_bstr_t(strzOffset), &pData->m_fzOffset);
- pPos->get_NextFloat(_bstr_t(strxHeading), &pData->m_fxHeading);
+ pPos->get_NextFloat(strxOffset, &pData->m_fxOffset);
+ pPos->get_NextFloat(stryOffset, &pData->m_fyOffset);
+ pPos->get_NextFloat(strzOffset, &pData->m_fzOffset);
+ pPos->get_NextFloat(strxHeading, &pData->m_fxHeading);
// Object culling monster!
// If moving object is player, and player changed landblocks...
@@ -1326,7 +1513,7 @@
// if (!pObject->m_tExpires) {
// _DebugLog("\nculling %x", pObject->m_dwGUID) ;
// pObject->m_tExpires = time(NULL)+30 ;
-// Fire_ChangeObject(pObject->m_p, _bstr_t(strReleasePending));
+// Fire_ChangeObject(pObject->m_p, strReleasePending);
// } else {
// _DebugLog("\n%x already tagged", pObject->m_dwGUID) ;
// }
@@ -1335,7 +1522,7 @@
// // cance the expiration
// _DebugLog("\ncancelled cull %x", pObject->m_dwGUID) ;
// pObject->m_tExpires = 0 ;
-// Fire_ChangeObject(pObject->m_p, _bstr_t(strExpirationCancel));
+// Fire_ChangeObject(pObject->m_p, strExpirationCancel);
// }
// }
// } else {
@@ -1348,7 +1535,7 @@
// if (!pData->m_tExpires) {
// _DebugLog("\nculling %x", pData->m_dwGUID) ;
// pData->m_tExpires = time(NULL) + 30 ;
-// Fire_ChangeObject(pData->m_p, _bstr_t(strReleasePending));
+// Fire_ChangeObject(pData->m_p, strReleasePending);
// } else {
// _DebugLog("%x already tagged", pData->m_dwGUID) ;
// }
@@ -1357,12 +1544,12 @@
// // else it is inside the culling distance and if tagged to expire
// // cancel the expiration
// pData->m_tExpires = 0 ;
-// Fire_ChangeObject(pData->m_p, _bstr_t(strExpirationCancel));
+// Fire_ChangeObject(pData->m_p, strExpirationCancel);
// }
// }
// }
pData->m_flags |= FLAG_LOCATION;
- Fire_ChangeObject(pData->m_p, _bstr_t(strLocationChange));
+ Fire_ChangeObject(pData->m_p, strLocationChange);
}
}
Index: World.h
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/World.h,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- World.h 22 Aug 2003 05:51:02 -0000 1.35
+++ World.h 25 Aug 2003 18:18:23 -0000 1.36
@@ -52,10 +52,13 @@
cWorldData()
: m_Slot(0,0)
{
+ m_bIdentified = false;
m_dwGUID = 0;
m_dwContainer = 0;
m_dwIcon = 0;
m_dwModel = 0;
+ m_dwRealModel = 0;
+ m_fScale = 1.0f;
m_dwValue = -1;
m_dwFlags1 = 0;
m_dwFlags2 = 0;
@@ -103,6 +106,7 @@
{
}
+ bool m_bIdentified;
long m_dwGUID;
long m_dwContainer;
long m_dwValue;
@@ -113,6 +117,8 @@
long m_dwObjectFlags2;
long m_dwIcon;
long m_dwModel;
+ long m_dwRealModel;
+ float m_fScale;
long m_flags;
std::string m_strName;
std::string m_strSecondaryName ;
Index: WorldObject.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/WorldObject.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- WorldObject.cpp 22 Aug 2003 05:51:02 -0000 1.21
+++ WorldObject.cpp 25 Aug 2003 18:18:23 -0000 1.22
@@ -3,6 +3,7 @@
#include "DecalFilters.h"
#include "World.h"
#include "WorldObject.h"
+#include ".\worldobject.h"
/////////////////////////////////////////////////////////////////////////////
// cWorldObject
@@ -33,6 +34,11 @@
return GetLong(m_p->m_dwModel, pVal) ;
}
+STDMETHODIMP cWorldObject::get_RealModel(LONG* pVal)
+{
+ return GetLong(m_p->m_dwRealModel, pVal) ;
+}
+
STDMETHODIMP cWorldObject::get_Icon(long *pVal)
{
return GetLong(m_p->m_dwIcon, pVal) ;
@@ -288,6 +294,13 @@
return S_OK ;
}
+
+STDMETHODIMP cWorldObject::get_Scale(float* pVal)
+{
+ *pVal = m_p->m_fScale;
+ return S_OK;
+}
+
STDMETHODIMP cWorldObject::get_Flags(long *pVal)
{
return GetLong(m_p->m_flags, pVal) ;
@@ -387,4 +400,3 @@
*pVal = m_p->m_Workmanship ;
return S_OK ;
}
-
Index: WorldObject.h
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/WorldObject.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- WorldObject.h 22 Aug 2003 05:51:02 -0000 1.17
+++ WorldObject.h 25 Aug 2003 18:18:23 -0000 1.18
@@ -87,6 +87,8 @@
STDMETHOD(get_HouseOwner)(/*[out, retval]*/ long *pVal);
STDMETHOD(get_HookMask)(/*[out, retval]*/ long *pVal);
STDMETHOD(get_HookType)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_RealModel)(/*[out, retval]*/long *pVal);
+ STDMETHOD(get_Scale)(/*[out, retval]*/float *pVal);
// IWorldObject2
STDMETHOD(get_Flags)(/*[out, retval]*/ long *pVal);
|
|
From: <no...@us...> - 2003-08-22 05:51:07
|
Log Message:
-----------
Removed static bstr's that can cause random crashes on startup. Added additional properties to World Object for new CreateObject format.
Modified Files:
--------------
/cvsroot/decaldev/source/DecalFilters:
DecalFilters.idl
World.cpp
World.h
WorldObject.cpp
WorldObject.h
Revision Data
-------------
Index: DecalFilters.idl
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/DecalFilters.idl,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- DecalFilters.idl 11 Apr 2003 03:24:42 -0000 1.32
+++ DecalFilters.idl 22 Aug 2003 05:51:02 -0000 1.33
@@ -528,6 +528,15 @@
[propget, id(34), helpstring("property ApproachDistance")] HRESULT ApproachDistance([out, retval] float *pVal);
[propget, id(35), helpstring("property SecondaryName")] HRESULT SecondaryName([out, retval] BSTR *pVal);
[propget, id(36), helpstring("property RawCoordinates")] HRESULT RawCoordinates([in, out] float *pX, [in, out] float *pY, float *pZ, [out, retval] VARIANT_BOOL *pVal);
+ [propget, id(37), helpstring("property Burden")] HRESULT Burden([out, retval] long *pVal);
+ [propget, id(38), helpstring("property Workmanship")] HRESULT Workmanship([out, retval] float *pVal);
+ [propget, id(39), helpstring("property IconOutline")] HRESULT IconOutline([out, retval] long *pVal);
+ [propget, id(40), helpstring("property MissileType")] HRESULT MissileType([out, retval] long *pVal);
+ [propget, id(41), helpstring("property TotalValue")] HRESULT TotalValue([out, retval] long *pVal);
+ [propget, id(42), helpstring("property UsageMask")] HRESULT UsageMask([out, retval] long *pVal);
+ [propget, id(43), helpstring("property HouseOwner")] HRESULT HouseOwner([out, retval] long *pVal);
+ [propget, id(44), helpstring("property HookMask")] HRESULT HookMask([out, retval] long *pVal);
+ [propget, id(45), helpstring("property HookType")] HRESULT HookType([out, retval] long *pVal);
};
[
Index: World.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/World.cpp,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -d -r1.47 -r1.48
--- World.cpp 20 Aug 2003 03:24:43 -0000 1.47
+++ World.cpp 22 Aug 2003 05:51:02 -0000 1.48
@@ -27,76 +27,74 @@
// cWorld
// static bstring stable of doom :(
-static _bstr_t strContainer("Container");
-static _bstr_t strSlot("Slot");
-static _bstr_t strWielder("Wielder");
-static _bstr_t strLandblock("Landblock");
-static _bstr_t strOffset("Offset");
-static _bstr_t strStackCount("StackCount");
-static _bstr_t strValue("Value");
-static _bstr_t strlandblock("landblock");
-static _bstr_t strxOffset("xOffset");
-static _bstr_t stryOffset("yOffset");
-static _bstr_t strzOffset("zOffset");
-static _bstr_t strxHeading("xHeading");
-static _bstr_t strdestroyed("destroyed");
-static _bstr_t stritem("item");
-static _bstr_t strcount("count");
-static _bstr_t strvalue("value");
-static _bstr_t strobject("object");
-static _bstr_t strslot("slot");
-static _bstr_t strowner("owner");
-static _bstr_t strcontainer("container");
-static _bstr_t strsequence("sequence") ;
-static _bstr_t strequipType("equipType") ;
-static _bstr_t strsequence2("sequence2") ;
-static _bstr_t strcoverage("coverage") ;
-static _bstr_t strflags1("flags1");
-static _bstr_t strlocation("location");
-static _bstr_t strwielder("wielder");
-static _bstr_t strwieldingSlot("wieldingSlot");
-static _bstr_t strflags2("flags2");
-static _bstr_t strobjectName("objectName");
-static _bstr_t strsecondaryName("secondaryName");
-static _bstr_t strmodel("model");
-static _bstr_t stricon("icon");
-static _bstr_t strunknown_v0_2("unknown_v0_2");
-static _bstr_t strunknown_v0_3("unknown_v0_3");
-static _bstr_t stritemSlots("itemSlots");
-static _bstr_t strpackSlots("packSlots");
-static _bstr_t strusesLeft("usesLeft");
-static _bstr_t strtotalUses("totalUses");
-static _bstr_t strstackCount("stackCount");
-static _bstr_t strstackMax("stackMax");
-static _bstr_t strapproachDistance("approachDistance");
-static _bstr_t strequipmentType("equipmentType");
-static _bstr_t strtradenoteVendor("tradenoteVendor");
-static _bstr_t strcoverage1("coverage1") ;
-static _bstr_t strcoverage2("coverage2") ;
-static _bstr_t strcoverage3("coverage3") ;
-static _bstr_t strmonarch("monarch") ;
-static _bstr_t strmaterial("material") ;
-static _bstr_t strassociatedSpell("associatedSpell");
-static _bstr_t strtext("text") ;
-static _bstr_t strsenderName("senderName") ;
-static _bstr_t strtype("type") ;
-static _bstr_t strcharacter("character");
-static _bstr_t strevent("event");
-static _bstr_t strpack("pack");
-static _bstr_t stritemCount("itemCount");
-static _bstr_t stritems("items");
-static _bstr_t strdestination("destination");
-static _bstr_t strinventoryCount("inventoryCount");
-static _bstr_t strinventory("inventory");
-static _bstr_t strisContainer("isContainer");
-static _bstr_t strOwner("Owner");
-static _bstr_t strposition("position");
-static _bstr_t strSizeChange("EvtSizeChange") ;
-static _bstr_t strStorageChange("EvtStorageChange") ;
-static _bstr_t strLocationChange("EvtLocationChange") ;
-static _bstr_t strIdentReceived("EvtIdentReceived") ;
-static _bstr_t strReleasePending( "EvtReleasePending" );
-static _bstr_t strExpirationCancel( "EvtExpirationCancel" );
+#define strContainer "Container"
+#define strcontainer "container"
+#define strSlot "Slot"
+#define strslot "slot"
+#define strwielder "wielder"
+#define strlandblock "landblock"
+#define strOffset "Offset"
+#define strStackCount "StackCount"
+#define strstackCount "stackCount"
+#define strvalue "value"
+
+#define strxOffset "xOffset"
+#define stryOffset "yOffset"
+#define strzOffset "zOffset"
+#define strxHeading "xHeading"
+#define strdestroyed "destroyed"
+#define stritem "item"
+#define strcount "count"
+#define strobject "object"
+#define strowner "owner"
+#define strsequence "sequence"
+#define strequipType "equipType"
+#define strsequence2 "sequence2"
+#define strcoverage "coverage"
+#define strflags1 "flags1"
+#define strlocation "location"
+#define strwieldingSlot "wieldingSlot"
+#define strflags2 "flags2"
+#define strobjectName "objectName"
+#define strsecondaryName "secondaryName"
+#define strmodel "model"
+#define stricon "icon"
+#define strunknown_v0_2 "unknown_v0_2"
+#define strunknown_v0_3 "unknown_v0_3"
+#define stritemSlots "itemSlots"
+#define strpackSlots "packSlots"
+#define strusesLeft "usesLeft"
+#define strtotalUses "totalUses"
+#define strstackMax "stackMax"
+#define strapproachDistance "approachDistance"
+#define strequipmentType "equipmentType"
+#define strtradenoteVendor "tradenoteVendor"
+#define strcoverage1 "coverage1"
+#define strcoverage2 "coverage2"
+#define strcoverage3 "coverage3"
+#define strmonarch "monarch"
+#define strmaterial "material"
+#define strassociatedSpell "associatedSpell"
+#define strtext "text"
+#define strsenderName "senderName"
+#define strtype "type"
+#define strcharacter "character"
+#define strevent "event"
+#define strpack "pack"
+#define stritemCount "itemCount"
+#define stritems "items"
+#define strdestination "destination"
+#define strinventoryCount "inventoryCount"
+#define strinventory "inventory"
+#define strisContainer "isContainer"
+#define strOwner "Owner"
+#define strposition "position"
+#define strSizeChange "EvtSizeChange"
+#define strStorageChange "EvtStorageChange"
+#define strLocationChange "EvtLocationChange"
+#define strIdentReceived "EvtIdentReceived"
+#define strReleasePending "EvtReleasePending"
+#define strExpirationCancel "EvtExpirationCancel"
enum AcMessages
{
@@ -257,9 +255,9 @@
BSTR Sender ;
long nType ;
- pMembers->get_NextString(strtext, &Text) ;
- pMembers->get_NextString(strsenderName, &Sender) ;
- pMembers->get_NextInt(strtype, &nType) ;
+ pMembers->get_NextString(_bstr_t(strtext), &Text) ;
+ pMembers->get_NextString(_bstr_t(strsenderName), &Sender) ;
+ pMembers->get_NextInt(_bstr_t(strtype), &nType) ;
if (nType==2) {
_DebugLog("\n\n%s: %s", LPCSTR(_bstr_t(Sender)), LPCSTR(_bstr_t(Text))) ;
}
@@ -270,8 +268,8 @@
{
long nCharacter, nEvent;
- pMembers->get_NextInt(strcharacter, &nCharacter);
- pMembers->get_NextInt(strevent, &nEvent);
+ pMembers->get_NextInt(_bstr_t(strcharacter), &nCharacter);
+ pMembers->get_NextInt(_bstr_t(strevent), &nEvent);
if (!m_objects.player()) {
_DebugLog("\nPlayer: %x", nCharacter) ;
@@ -470,7 +468,7 @@
void cWorld::DoDestroyObj(CComPtr< IMessageIterator > pMembers)
{
long nDestroyed;
- pMembers->get_NextInt(strdestroyed, &nDestroyed);
+ pMembers->get_NextInt(_bstr_t(strdestroyed), &nDestroyed);
_DebugLog("\n\nDestroyObj %x", nDestroyed) ;
// if we know about this object
@@ -488,8 +486,8 @@
void cWorld::DoSetCoverage(CComPtr<IMessageIterator> pMembers)
{
long object, coverage ;
- pMembers->get_NextInt(strobject, &object) ;
- pMembers->get_NextInt(strcoverage, &coverage) ;
+ pMembers->get_NextInt(_bstr_t(strobject), &object) ;
+ pMembers->get_NextInt(_bstr_t(strcoverage), &coverage) ;
_DebugLog("\n\nSetCoverage %x %x", object, coverage) ;
if (cWorldData *pData = Data(object)) {
@@ -508,11 +506,11 @@
{
long object, container, seq, type, seq2 ;
- pMembers->get_NextInt(strsequence, &seq) ;
- pMembers->get_NextInt(strobject, &object) ;
- pMembers->get_NextInt(strequipType, &type) ;
- pMembers->get_NextInt(strcontainer, &container) ;
- pMembers->get_NextInt(strsequence2, &seq2) ;
+ pMembers->get_NextInt(_bstr_t(strsequence), &seq) ;
+ pMembers->get_NextInt(_bstr_t(strobject), &object) ;
+ pMembers->get_NextInt(_bstr_t(strequipType), &type) ;
+ pMembers->get_NextInt(_bstr_t(strcontainer), &container) ;
+ pMembers->get_NextInt(_bstr_t(strsequence2), &seq2) ;
_DebugLog("\n\nSetContainer: %d, %x, %d, %x, %d", seq, object, type, container, seq2) ;
@@ -558,9 +556,9 @@
{
long nItem, nCount, nValue;
- pMembers->get_NextInt(stritem, &nItem);
- pMembers->get_NextInt(strcount, &nCount);
- pMembers->get_NextInt(strvalue, &nValue);
+ pMembers->get_NextInt(_bstr_t(stritem), &nItem);
+ pMembers->get_NextInt(_bstr_t(strcount), &nCount);
+ pMembers->get_NextInt(_bstr_t(strvalue), &nValue);
_DebugLog("\n\nAdjustStackSize %x %d %d", nItem, nCount, nValue) ;
@@ -568,19 +566,19 @@
if (cWorldData *pData = Data(nItem)) {
// change the object values, reset expiration to 0
pData->m_tExpires = 0;
- pData->m_nStackCount = nCount;
+ pData->m_nStackCount = WORD(nCount);
pData->m_dwValue = nValue;
// Fire change events for those items that may have changed
- Fire_ChangeObject(pData->m_p, strSizeChange);
+ Fire_ChangeObject(pData->m_p, _bstr_t(strSizeChange));
}
}
void cWorld::DoWearItem(CComPtr<IMessageIterator> pMembers)
{
long nObject, nSlot;
- pMembers->get_NextInt(stritem, &nObject);
- pMembers->get_NextInt(strslot, &nSlot) ;
+ pMembers->get_NextInt(_bstr_t(stritem), &nObject);
+ pMembers->get_NextInt(_bstr_t(strslot), &nSlot) ;
_DebugLog("\n\nWearItem %x %x", nObject, nSlot) ;
if (cWorldData *pData = Data(nObject))
@@ -593,14 +591,14 @@
// Gouru: Changed to capitalized versions of these string for consistency with other
// fired events
- Fire_ChangeObject(pData->m_p, strStorageChange);
+ Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
}
}
void cWorld::DoDropItem(CComPtr<IMessageIterator> pMembers)
{
long nItem;
- pMembers->get_NextInt(stritem, &nItem);
+ pMembers->get_NextInt(_bstr_t(stritem), &nItem);
_DebugLog("\n\nDropItem %x", nItem) ;
if (cWorldData *pData = Data(nItem)) {
@@ -611,7 +609,7 @@
pData->m_dwContainer = 0;
pData->m_dwWielder = 0 ; // not wielded when on ground
}
- Fire_ChangeObject(pData->m_p, strStorageChange);
+ Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
}
}
@@ -620,9 +618,9 @@
CComPtr<IMessageIterator> pItems, pItem;
long nPack, nItemCount, ixItem = 0, ixPack=0;
- pMembers->get_NextInt(strpack, &nPack);
- pMembers->get_NextInt(stritemCount, &nItemCount);
- pMembers->get_NextObject(stritems, &pItems);
+ pMembers->get_NextInt(_bstr_t(strpack), &nPack);
+ pMembers->get_NextInt(_bstr_t(stritemCount), &nItemCount);
+ pMembers->get_NextObject(_bstr_t(stritems), &pItems);
_DebugLog("\n\nSetPackContents %x %d", nPack, nItemCount) ;
@@ -630,8 +628,8 @@
{
long nItem, nType;
- pItem->get_NextInt(stritem, &nItem);
- pItem->get_NextInt(strtype, &nType);
+ pItem->get_NextInt(_bstr_t(stritem), &nItem);
+ pItem->get_NextInt(_bstr_t(strtype), &nType);
CSlot slot = (nType==0) ? CSlot(ixItem++, 0x00) : CSlot(ixPack++, 0x01) ;
@@ -643,7 +641,7 @@
pData->m_Slot = slot ;
//SetObjectOwner(pData);
- Fire_ChangeObject(pData->m_p, strStorageChange);
+ Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
}
else
{
@@ -660,9 +658,9 @@
{
long nItem, nDest, nSlot;
- pMembers->get_NextInt(stritem, &nItem);
- pMembers->get_NextInt(strdestination, &nDest);
- pMembers->get_NextInt(strslot, &nSlot);
+ pMembers->get_NextInt(_bstr_t(stritem), &nItem);
+ pMembers->get_NextInt(_bstr_t(strdestination), &nDest);
+ pMembers->get_NextInt(_bstr_t(strslot), &nSlot);
_DebugLog("\n\nInsertIntoInventory %x %x %d", nItem, nDest, nSlot) ;
@@ -689,7 +687,7 @@
pData->m_Slot.slot = nSlot;
pData->m_dwWielder = 0 ; // not wielded when in inventory
- Fire_ChangeObject(pData->m_p, strStorageChange);
+ Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
}
}
@@ -699,16 +697,16 @@
CComPtr<IMessageIterator> pItems, pItem;
long nCount, ixSlot = 0, ixPack=0 ;
- pMembers->get_NextInt(strinventoryCount, &nCount);
- pMembers->get_NextObject(strinventory, &pItems);
+ pMembers->get_NextInt(_bstr_t(strinventoryCount), &nCount);
+ pMembers->get_NextObject(_bstr_t(strinventory), &pItems);
while (pItems->get_NextObjectIndex(&pItem) == S_OK)
{
long nObject, nIsContainer;
cWorldData *pData;
- pItem->get_NextInt(strobject, &nObject);
- pItem->get_NextInt(strisContainer, &nIsContainer);
+ pItem->get_NextInt(_bstr_t(strobject), &nObject);
+ pItem->get_NextInt(_bstr_t(strisContainer), &nIsContainer);
CSlot info ;
if (nIsContainer) {
@@ -737,7 +735,7 @@
void cWorld::DoMoveToInventory(CComPtr<IMessageIterator> pMembers)
{
long nObject;
- pMembers->get_NextInt(strobject, &nObject);
+ pMembers->get_NextInt(_bstr_t(strobject), &nObject);
_DebugLog("\n\nMoveToInventory %x", nObject) ;
@@ -751,7 +749,7 @@
}
pData->m_dwWielder = 0 ; // unwielded unless we get a wield msg later
- Fire_ChangeObject(pData->m_p, strStorageChange);
+ Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
}
}
@@ -761,7 +759,7 @@
USES_CONVERSION ;
long nObject;
- pMembers->get_NextInt(strobject, &nObject);
+ pMembers->get_NextInt(_bstr_t(strobject), &nObject);
_DebugLog("\n\nCreateObject %x", nObject) ;
@@ -788,26 +786,31 @@
p->m_p = pCreate;
p->QueryInterface(&pCreate->m_p);
- _DebugLog(" | Inserting object") ;
+ _DebugLog("\nInserting object") ;
m_objects.insert(m_objects.end(), std::pair< DWORD, cWorldData * >(nObject, pCreate));
}
_ASSERTE(pCreate);
pCreate->m_dwGUID = nObject;
- pMembers->get_NextInt(strflags1, &pCreate->m_dwFlags1);
+ pMembers->get_NextInt(_bstr_t(strflags1), &pCreate->m_dwFlags1);
// Location of Object
if (pCreate->m_dwFlags1 & 0x00008000)
{
CComPtr< IMessageIterator > pPos;
- pMembers->get_NextObject(strlocation, &pPos);
+ pMembers->get_NextObject(_bstr_t(strlocation), &pPos);
- pPos->get_NextInt(strlandblock, &pCreate->m_dwLandblock);
- pPos->get_NextFloat(strxOffset, &pCreate->m_fxOffset);
- pPos->get_NextFloat(stryOffset, &pCreate->m_fyOffset);
- pPos->get_NextFloat(strzOffset, &pCreate->m_fzOffset);
- pPos->get_NextFloat(strxHeading, &pCreate->m_fxHeading);
+ pPos->get_NextInt(_bstr_t(strlandblock), &pCreate->m_dwLandblock);
+ _DebugLog("\n Landblock %d", pCreate->m_dwLandblock) ;
+ pPos->get_NextFloat(_bstr_t(strxOffset), &pCreate->m_fxOffset);
+ _DebugLog("\n xOffset %f", pCreate->m_fxOffset) ;
+ pPos->get_NextFloat(_bstr_t(stryOffset), &pCreate->m_fyOffset);
+ _DebugLog("\n yOffset %f", pCreate->m_fyOffset) ;
+ pPos->get_NextFloat(_bstr_t(strzOffset), &pCreate->m_fzOffset);
+ _DebugLog("\n zOffset %f", pCreate->m_fzOffset) ;
+ pPos->get_NextFloat(_bstr_t(strxHeading), &pCreate->m_fxHeading);
+ _DebugLog("\n Heading %f", pCreate->m_fxHeading) ;
// landblock info used to speed up culling
pCreate->m_LandblockCol = (pCreate->m_dwLandblock>>24) & 0xff ;
pCreate->m_LandblockRow = (pCreate->m_dwLandblock>>16) & 0xff ;
@@ -818,37 +821,42 @@
// Wielder Information
if (pCreate->m_dwFlags1 & 0x00000020)
{
- pMembers->get_NextInt(strwielder, &pCreate->m_dwWielder);
- pMembers->get_NextInt(strwieldingSlot, &pCreate->m_dwWieldingSlot);
+ pMembers->get_NextInt(_bstr_t(strwielder), &pCreate->m_dwWielder);
+ _DebugLog("\n Wielder %d", pCreate->m_dwWielder) ;
+ pMembers->get_NextInt(_bstr_t(strwieldingSlot), &pCreate->m_dwWieldingSlot);
+ _DebugLog("\n Wieldingslot %d", pCreate->m_dwWieldingSlot) ;
pCreate->m_Slot.slot = -1 ; // wielded items are slot 1
pCreate->m_dwContainer = pCreate->m_dwWielder ;
- _DebugLog(" | Wield %x",pCreate->m_dwWielder) ;
}
- pMembers->get_NextInt(strflags2, &pCreate->m_dwFlags2);
+ pMembers->get_NextInt(_bstr_t(strflags2), &pCreate->m_dwFlags2);
BSTR strName;
- pMembers->get_NextString(strobjectName, &strName);
+ pMembers->get_NextString(_bstr_t(strobjectName), &strName);
pCreate->m_strName = OLE2A(strName);
- _DebugLog(" | %s", pCreate->m_strName.c_str()) ;
+ _DebugLog("\n Name: %s", pCreate->m_strName.c_str()) ;
- pMembers->get_NextInt(strmodel, &pCreate->m_dwModel);
- pMembers->get_NextInt(stricon, &pCreate->m_dwIcon);
- pMembers->get_NextInt(strunknown_v0_2, &pCreate->m_dwObjectFlags1);
- pMembers->get_NextInt(strunknown_v0_3, &pCreate->m_dwObjectFlags2);
+ pMembers->get_NextInt(_bstr_t(strmodel), &pCreate->m_dwModel);
+ _DebugLog("\n Model %x",pCreate->m_dwModel) ;
+ pMembers->get_NextInt(_bstr_t(stricon), &pCreate->m_dwIcon);
+ _DebugLog("\n Icon %x",pCreate->m_dwIcon) ;
+ pMembers->get_NextInt(_bstr_t(strunknown_v0_2), &pCreate->m_dwObjectFlags1);
+ pMembers->get_NextInt(_bstr_t(strunknown_v0_3), &pCreate->m_dwObjectFlags2);
// Secondary name
if (pCreate->m_dwFlags2 & 0x00000001) {
BSTR strName;
- pMembers->get_NextString(strsecondaryName, &strName);
+ pMembers->get_NextString(_bstr_t(strsecondaryName), &strName);
pCreate->m_strSecondaryName = OLE2A(strName);
+ _DebugLog("\n SecName: %s", pCreate->m_strSecondaryName.c_str()) ;
}
// Item Slots
if (pCreate->m_dwFlags2 & 0x00000002)
{
pCreate->m_flags |= FLAG_CONTAINS;
- pMembers->get_NextInt(stritemSlots, (long *)&pCreate->m_nItemSlots);
+ pMembers->get_NextInt(_bstr_t(stritemSlots), (long *)&pCreate->m_nItemSlots);
+ _DebugLog("\n ItemSlots %x",pCreate->m_nItemSlots) ;
// if it has slots for items, must be a container type
pCreate->m_Slot.type = 1 ;
}
@@ -857,14 +865,25 @@
if (pCreate->m_dwFlags2 & 0x00000004)
{
pCreate->m_flags |= FLAG_CONTAINS;
- pMembers->get_NextInt(strpackSlots, (long *)&pCreate->m_nPackSlots);
+ pMembers->get_NextInt(_bstr_t(strpackSlots), (long *)&pCreate->m_nPackSlots);
+ _DebugLog("\n PackSlots %x",pCreate->m_nPackSlots) ;
// if it has slots for packs, must be a container type
pCreate->m_Slot.type = 1 ;
}
// Value
if (pCreate->m_dwFlags2 & 0x00000008) {
- pMembers->get_NextInt(strvalue, &pCreate->m_dwValue);
+ pMembers->get_NextInt(_bstr_t(strvalue), &pCreate->m_dwValue);
+ _DebugLog("\n Value %x",pCreate->m_dwValue) ;
+ } else {
+ pCreate->m_dwValue = -1;
+ }
+
+
+ // Total Value
+ if (pCreate->m_dwFlags2 & 0x00000010) {
+ pMembers->get_NextInt(_bstr_t("unknown_v2"), &pCreate->m_TotalValue);
+ _DebugLog("\n TotValue %x",pCreate->m_TotalValue) ;
} else {
pCreate->m_dwValue = -1;
}
@@ -872,43 +891,61 @@
// approachDistance
if (pCreate->m_dwFlags2 & 0x00000020) {
- pMembers->get_NextFloat(strapproachDistance, &pCreate->m_fApproachDistance);
+ pMembers->get_NextFloat(_bstr_t(strapproachDistance), &pCreate->m_fApproachDistance);
+ _DebugLog("\n ApproachDist %f",pCreate->m_fApproachDistance) ;
}
+ // Icon Outline
+ if (pCreate->m_dwFlags2 & 0x00000080) {
+ pMembers->get_NextInt(_bstr_t("unknown_v4"), &pCreate->m_IconOutline);
+ _DebugLog("\n m_IconOutline %x",pCreate->m_IconOutline) ;
+ }
+
+ // Missile Type
+ if (pCreate->m_dwFlags2 & 0x00000100) {
+ pMembers->get_NextInt(_bstr_t("unknown_w1"), &pCreate->m_MissileType);
+ _DebugLog("\n m_MissileType %x",pCreate->m_MissileType) ;
+ }
+
// Equip Type
if (pCreate->m_dwFlags2 & 0x00000200) {
- pMembers->get_NextInt(strequipmentType, &pCreate->m_dwEquipType);
+ pMembers->get_NextInt(_bstr_t(strequipmentType), &pCreate->m_dwEquipType);
+ _DebugLog("\n EquipType %x",pCreate->m_dwEquipType) ;
}
// Uses Left
if (pCreate->m_dwFlags2 & 0x00000400) {
pCreate->m_flags |= FLAG_USEABLE;
- pMembers->get_NextInt(strusesLeft, (long *)&pCreate->m_nUsesLeft);
+ pMembers->get_NextInt(_bstr_t(strusesLeft), (long *)&pCreate->m_nUsesLeft);
+ _DebugLog("\n UsesLeft %x",pCreate->m_nUsesLeft) ;
}
// Total Uses
if (pCreate->m_dwFlags2 & 0x00000800) {
pCreate->m_flags |= FLAG_USEABLE;
- pMembers->get_NextInt(strtotalUses, (long *)&pCreate->m_nTotalUses);
+ pMembers->get_NextInt(_bstr_t(strtotalUses), (long *)&pCreate->m_nTotalUses);
+ _DebugLog("\n TotalUses %x",pCreate->m_nTotalUses) ;
}
// Stack Count
if (pCreate->m_dwFlags2 & 0x00001000) {
pCreate->m_flags |= FLAG_STACKABLE;
- pMembers->get_NextInt(strstackCount, (long *)&pCreate->m_nStackCount);
+ pMembers->get_NextInt(_bstr_t(strstackCount), (long *)&pCreate->m_nStackCount);
+ _DebugLog("\n StackCount %x",pCreate->m_nStackCount) ;
}
// Stack Maximum
if (pCreate->m_dwFlags2 & 0x00002000) {
pCreate->m_flags |= FLAG_STACKABLE;
- pMembers->get_NextInt(strstackMax, (long *)&pCreate->m_nStackMax);
+ pMembers->get_NextInt(_bstr_t(strstackMax), (long *)&pCreate->m_nStackMax);
+ _DebugLog("\n StackMax %x",pCreate->m_nStackMax) ;
}
// Container ID
if (pCreate->m_dwFlags2 & 0x00004000) {
- pMembers->get_NextInt(strcontainer, &pCreate->m_dwContainer);
- _DebugLog(" | container: %x",pCreate->m_dwContainer) ;
+ pMembers->get_NextInt(_bstr_t(strcontainer), &pCreate->m_dwContainer);
+ _DebugLog("\n container: %x",pCreate->m_dwContainer) ;
}
// Owner ID
@@ -916,53 +953,101 @@
long dword ;
// gouru, owner is same as container for these purposes, however, the item appears
// to be either worn or wielded, assume slot -1
- pMembers->get_NextInt(strowner, &dword);
+ pMembers->get_NextInt(_bstr_t(strowner), &dword);
+ _DebugLog("\n ownerid: %x",dword) ;
pCreate->m_dwContainer = dword ;
pCreate->m_Slot.slot = -1 ;
- _DebugLog(" | container(worn): %x",pCreate->m_dwContainer) ;
}
// Coverage1
if (pCreate->m_dwFlags2 & 0x00010000) {
- pMembers->get_NextInt(strcoverage1, &pCreate->m_dwCoverage);
+ pMembers->get_NextInt(_bstr_t(strcoverage1), &pCreate->m_dwCoverage);
+ _DebugLog("\n coverage1: %x",pCreate->m_dwCoverage) ;
}
// Coverage2
if (pCreate->m_dwFlags2 & 0x00020000) {
- pMembers->get_NextInt(strcoverage2, &pCreate->m_dwCoverage2);
+ pMembers->get_NextInt(_bstr_t(strcoverage2), &pCreate->m_dwCoverage2);
+ _DebugLog("\n coverage2: %x",pCreate->m_dwCoverage2) ;
}
// Coverage3
if (pCreate->m_dwFlags2 & 0x00040000) {
- pMembers->get_NextInt(strcoverage3, &pCreate->m_dwCoverage3);
+ pMembers->get_NextInt(_bstr_t(strcoverage3), &pCreate->m_dwCoverage3);
+ _DebugLog("\n coverage3: %x",pCreate->m_dwCoverage3) ;
+ }
+
+
+ // Usage Mask
+ if (pCreate->m_dwFlags2 & 0x00080000) {
+ pMembers->get_NextInt(_bstr_t("unknown_v5"), &pCreate->m_UsageMask);
+ _DebugLog("\n m_UsageMask: %x",pCreate->m_UsageMask) ;
}
// Monarch
if (pCreate->m_dwFlags2 & 0x00000040) {
- pMembers->get_NextInt(strmonarch, &pCreate->m_dwMonarch);
+ pMembers->get_NextInt(_bstr_t(strmonarch), &pCreate->m_dwMonarch);
+ _DebugLog("\n Monarch: %x",pCreate->m_dwMonarch) ;
}
// Tradenote Vendor ID
if (pCreate->m_dwFlags2 & 0x00020000) {
- pMembers->get_NextInt(strtradenoteVendor, &pCreate->m_dwTradeNoteVendor);
+ pMembers->get_NextInt(_bstr_t(strtradenoteVendor), &pCreate->m_dwTradeNoteVendor);
+ _DebugLog("\n TradeNoteVendor: %x",pCreate->m_dwTradeNoteVendor) ;
}
+ // Burden
+ if (pCreate->m_dwFlags2 & 0x00200000) {
+ pMembers->get_NextInt(_bstr_t("burden"), &pCreate->m_Burden);
+ _DebugLog("\n m_Burden: %x",pCreate->m_Burden) ;
+ }
+
// Associated Spell
if (pCreate->m_dwFlags2 & 0x00400000) {
- pMembers->get_NextInt(strassociatedSpell, &pCreate->m_dwAssociatedSpell);
+ pMembers->get_NextInt(_bstr_t(strassociatedSpell), &pCreate->m_dwAssociatedSpell);
+ _DebugLog("\n m_dwAssociatedSpell: %x",pCreate->m_dwAssociatedSpell) ;
+ }
+
+ // Workmanship
+ if (pCreate->m_dwFlags2 & 0x01000000) {
+ pMembers->get_NextFloat(_bstr_t("workmanship"), &pCreate->m_Workmanship);
+ _DebugLog("\n m_dwMaterial: %x",pCreate->m_dwMaterial) ;
}
+ // Workmanship
+ if (pCreate->m_dwFlags2 & 0x02000000) {
+ pMembers->get_NextInt(_bstr_t("houseOwnerID"), &pCreate->m_HouseOwner);
+ _DebugLog("\n m_HouseOwner: %x",pCreate->m_HouseOwner) ;
+ }
+
+ // Hook Mask
+ if (pCreate->m_dwFlags2 & 0x10000000) {
+ pMembers->get_NextInt(_bstr_t("unknown10"), &pCreate->m_HookMask);
+ _DebugLog("\n m_HookMask: %x",pCreate->m_HookMask) ;
+ }
+
+
+ // Hook Type
+ if (pCreate->m_dwFlags2 & 0x10000000) {
+ pMembers->get_NextInt(_bstr_t("unknown11b"), &pCreate->m_HookType);
+ _DebugLog("\n m_HookType: %x",pCreate->m_HookType) ;
+ }
+
+
// Material
if (pCreate->m_dwFlags2 & 0x80000000) {
- pMembers->get_NextInt(strmaterial, &pCreate->m_dwMaterial);
+ pMembers->get_NextInt(_bstr_t(strmaterial), &pCreate->m_dwMaterial);
+ _DebugLog("\n m_dwMaterial: %x",pCreate->m_dwMaterial) ;
}
+
// Assume the type is unknown
pCreate->m_eType = eUnknownObject;
+ _DebugLog("\n m_dwObjectFlags1: %x",pCreate->m_dwObjectFlags1) ;
// Get the type from ObjectFlags1
/**/ if (pCreate->m_dwObjectFlags1 & 0x00000001)
pCreate->m_eType = eMeleeWeapon;
@@ -1021,6 +1106,7 @@
else if (pCreate->m_dwObjectFlags1 & 0x40000000)
pCreate->m_eType = eSalvage;
+ _DebugLog("\n m_dwObjectFlags2: %x",pCreate->m_dwObjectFlags2) ;
// Get the type from ObjectFlags2 (this means ObjectFlags2 overrides ObjectFlags1)
/**/ if (pCreate->m_dwObjectFlags2 & 0x00000008)
pCreate->m_eType = ePlayer;
@@ -1123,7 +1209,7 @@
void cWorld::DoRemoveItem(CComPtr<IMessageIterator> pMembers)
{
long nObject;
- pMembers->get_NextInt(strobject, &nObject);
+ pMembers->get_NextInt(_bstr_t(strobject), &nObject);
_DebugLog("\n\nRemoveItem %x", nObject) ;
@@ -1136,8 +1222,8 @@
void cWorld::DoWieldItem(CComPtr<IMessageIterator> pMembers)
{
long nObject, nOwner;
- pMembers->get_NextInt(strowner, &nOwner);
- pMembers->get_NextInt(strobject, &nObject);
+ pMembers->get_NextInt(_bstr_t(strowner), &nOwner);
+ pMembers->get_NextInt(_bstr_t(strobject), &nObject);
_DebugLog("\n\nWieldItem %x %x", nObject, nOwner) ;
if (cWorldData *pData = Data(nObject))
@@ -1147,7 +1233,7 @@
MoveSlotBack(pData); // moves back only if player owns this item
pData->m_Slot.slot = -1;
- Fire_ChangeObject(pData->m_p, strStorageChange);
+ Fire_ChangeObject(pData->m_p, _bstr_t(strStorageChange));
}
}
@@ -1174,7 +1260,7 @@
void cWorld::DoSetObjectPosition(CComPtr<IMessageIterator> pMembers)
{
long nObject;
- pMembers->get_NextInt(strobject, &nObject);
+ pMembers->get_NextInt(_bstr_t(strobject), &nObject);
// Gouru: not normally logged as we get an S load of these messages, uncomment if you
// really need it for testing...
// _DebugLog("\nSetObjectPosition %x", nObject) ;
@@ -1184,10 +1270,10 @@
if (pData)
{
CComPtr< IMessageIterator > pPos;
- pMembers->get_NextObject(strposition, &pPos);
+ pMembers->get_NextObject(_bstr_t(strposition), &pPos);
DWORD dwLandblock;
- pPos->get_NextInt(strlandblock, (long *)&dwLandblock);
+ pPos->get_NextInt(_bstr_t(strlandblock), (long *)&dwLandblock);
// long oldLandblock = pData->m_dwLandblock ;
// long colLandblock = (dwLandblock>>24) & 0xff ;
@@ -1197,10 +1283,10 @@
pData->m_dwLandblock = dwLandblock;
pData->m_LandblockCol = (dwLandblock>>24) & 0xff ;
pData->m_LandblockRow = (dwLandblock>>16) & 0xff ;
- pPos->get_NextFloat(strxOffset, &pData->m_fxOffset);
- pPos->get_NextFloat(stryOffset, &pData->m_fyOffset);
- pPos->get_NextFloat(strzOffset, &pData->m_fzOffset);
- pPos->get_NextFloat(strxHeading, &pData->m_fxHeading);
+ pPos->get_NextFloat(_bstr_t(strxOffset), &pData->m_fxOffset);
+ pPos->get_NextFloat(_bstr_t(stryOffset), &pData->m_fyOffset);
+ pPos->get_NextFloat(_bstr_t(strzOffset), &pData->m_fzOffset);
+ pPos->get_NextFloat(_bstr_t(strxHeading), &pData->m_fxHeading);
// Object culling monster!
// If moving object is player, and player changed landblocks...
@@ -1240,7 +1326,7 @@
// if (!pObject->m_tExpires) {
// _DebugLog("\nculling %x", pObject->m_dwGUID) ;
// pObject->m_tExpires = time(NULL)+30 ;
-// Fire_ChangeObject(pObject->m_p, strReleasePending);
+// Fire_ChangeObject(pObject->m_p, _bstr_t(strReleasePending));
// } else {
// _DebugLog("\n%x already tagged", pObject->m_dwGUID) ;
// }
@@ -1249,7 +1335,7 @@
// // cance the expiration
// _DebugLog("\ncancelled cull %x", pObject->m_dwGUID) ;
// pObject->m_tExpires = 0 ;
-// Fire_ChangeObject(pObject->m_p, strExpirationCancel);
+// Fire_ChangeObject(pObject->m_p, _bstr_t(strExpirationCancel));
// }
// }
// } else {
@@ -1262,7 +1348,7 @@
// if (!pData->m_tExpires) {
// _DebugLog("\nculling %x", pData->m_dwGUID) ;
// pData->m_tExpires = time(NULL) + 30 ;
-// Fire_ChangeObject(pData->m_p, strReleasePending);
+// Fire_ChangeObject(pData->m_p, _bstr_t(strReleasePending));
// } else {
// _DebugLog("%x already tagged", pData->m_dwGUID) ;
// }
@@ -1271,12 +1357,12 @@
// // else it is inside the culling distance and if tagged to expire
// // cancel the expiration
// pData->m_tExpires = 0 ;
-// Fire_ChangeObject(pData->m_p, strExpirationCancel);
+// Fire_ChangeObject(pData->m_p, _bstr_t(strExpirationCancel));
// }
// }
// }
pData->m_flags |= FLAG_LOCATION;
- Fire_ChangeObject(pData->m_p, strLocationChange);
+ Fire_ChangeObject(pData->m_p, _bstr_t(strLocationChange));
}
}
@@ -1380,7 +1466,7 @@
float cWorld::EastWest(long landblock, float xOffset)
{
long n = (((landblock>>24)&0xff)-0x7f)*192 ;
- return (float(n) + xOffset - 84.0) / 240.0 ;
+ return float((float(n) + xOffset - 84.0) / 240.0) ;
}
@@ -1388,7 +1474,7 @@
float cWorld::NorthSouth(long landblock, float yOffset)
{
long n = (((landblock>>16)&0xff)-0x7f)*192 ;
- return (float(n) + yOffset - 84.0) / 240.0 ;
+ return float((float(n) + yOffset - 84.0) / 240.0) ;
}
Index: World.h
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/World.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- World.h 16 May 2003 20:52:46 -0000 1.34
+++ World.h 22 Aug 2003 05:51:02 -0000 1.35
@@ -87,6 +87,15 @@
m_dwEquipType = 0 ;
m_fApproachDistance = 0.0f ;
+ m_Burden=0;
+ m_Workmanship=0.0;
+ m_IconOutline=0;
+ m_MissileType=0;
+ m_TotalValue=0;
+ m_UsageMask=0;
+ m_HouseOwner=0;
+ m_HookMask=0;
+ m_HookType=0;
m_bTag = false;
}
@@ -136,6 +145,15 @@
long m_dwCoverage2 ;
long m_dwCoverage3 ;
long m_dwEquipType ;
+ long m_Burden ;
+ float m_Workmanship ;
+ long m_IconOutline ;
+ long m_MissileType ;
+ long m_TotalValue ;
+ long m_UsageMask ;
+ long m_HouseOwner ;
+ long m_HookMask ;
+ long m_HookType ;
CComPtr< IWorldObject > m_p;
bool m_bTag;
Index: WorldObject.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/WorldObject.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- WorldObject.cpp 30 Aug 2002 19:13:40 -0000 1.20
+++ WorldObject.cpp 22 Aug 2003 05:51:02 -0000 1.21
@@ -338,12 +338,53 @@
return GetLong(m_p->m_dwEquipType, pVal) ;
}
+STDMETHODIMP cWorldObject::get_Burden(long *pVal) {
+ return GetLong(m_p->m_Burden, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_IconOutline(long *pVal) {
+ return GetLong(m_p->m_IconOutline, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_MissileType(long *pVal) {
+ return GetLong(m_p->m_MissileType, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_TotalValue(long *pVal) {
+ return GetLong(m_p->m_TotalValue, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_UsageMask(long *pVal) {
+ return GetLong(m_p->m_UsageMask, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_HouseOwner(long *pVal) {
+ return GetLong(m_p->m_HouseOwner, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_HookMask(long *pVal) {
+ return GetLong(m_p->m_HookMask, pVal) ;
+}
+
+STDMETHODIMP cWorldObject::get_HookType(long *pVal) {
+ return GetLong(m_p->m_HookType, pVal) ;
+}
+
STDMETHODIMP cWorldObject::get_ApproachDistance(float *pVal) {
if (!pVal) {
_ASSERT(FALSE) ;
return E_POINTER ;
}
*pVal = m_p->m_fApproachDistance ;
+ return S_OK ;
+}
+
+STDMETHODIMP cWorldObject::get_Workmanship(float *pVal) {
+ if (!pVal) {
+ _ASSERT(FALSE) ;
+ return E_POINTER ;
+ }
+ *pVal = m_p->m_Workmanship ;
return S_OK ;
}
Index: WorldObject.h
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/WorldObject.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- WorldObject.h 30 Aug 2002 19:13:40 -0000 1.16
+++ WorldObject.h 22 Aug 2003 05:51:02 -0000 1.17
@@ -78,6 +78,16 @@
STDMETHOD(get_EquipType)(/*[out, retval]*/ long *pVal);
STDMETHOD(get_SecondaryName)(/*[out, retval]*/ BSTR *pVal);
STDMETHOD(get_ApproachDistance)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_Workmanship)(/*[out, retval]*/ float *pVal);
+ STDMETHOD(get_Burden)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_IconOutline)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_MissileType)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_TotalValue)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_UsageMask)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_HouseOwner)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_HookMask)(/*[out, retval]*/ long *pVal);
+ STDMETHOD(get_HookType)(/*[out, retval]*/ long *pVal);
+
// IWorldObject2
STDMETHOD(get_Flags)(/*[out, retval]*/ long *pVal);
STDMETHOD(get_CreateFlags1)(/*[out, retval]*/ long *pVal);
|
|
From: <no...@us...> - 2003-08-21 22:30:46
|
Log Message:
-----------
XRefs on RequestIDpanel went from 4 to 3
Modified Files:
--------------
/cvsroot/decaldev/source/Decal:
ACHooks.cpp
ACHooks.h
Revision Data
-------------
Index: ACHooks.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/Decal/ACHooks.cpp,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- ACHooks.cpp 20 Jun 2003 14:25:10 -0000 1.58
+++ ACHooks.cpp 21 Aug 2003 22:22:46 -0000 1.59
@@ -754,17 +754,14 @@
m_lRequestShortcircuit2 = Val;
if( QueryMemLoc( BSTRT( "RequestShortcircuit3" ), &Val ) == S_OK )
m_lRequestShortcircuit3 = Val;
- if( QueryMemLoc( BSTRT( "RequestShortcircuit4" ), &Val ) == S_OK )
- m_lRequestShortcircuit4 = Val;
- if( m_lRequestShortcircuit1 && m_lRequestShortcircuit2 && m_lRequestShortcircuit3 && m_lRequestShortcircuit4 )
+ if( m_lRequestShortcircuit1 && m_lRequestShortcircuit2 && m_lRequestShortcircuit3 )
{
DWORD dwHook1 = HookCall( m_lRequestShortcircuit1, (DWORD) IdentifyShortcircuit );
DWORD dwHook2 = HookCall( m_lRequestShortcircuit2, (DWORD) IdentifyShortcircuit );
DWORD dwHook3 = HookCall( m_lRequestShortcircuit3, (DWORD) IdentifyShortcircuit );
- DWORD dwHook4 = HookCall( m_lRequestShortcircuit4, (DWORD) IdentifyShortcircuit );
- if( dwHook1 && dwHook2 && dwHook3 && dwHook4 && (dwHook1 == dwHook2) && (dwHook2 == dwHook3) && (dwHook3 == dwHook4) )
+ if( dwHook1 && dwHook2 && dwHook3 && (dwHook1 == dwHook2) && (dwHook2 == dwHook3) )
{
m_bRequestShortcircuit = true;
g_lIdentifyHijackProc = dwHook1;
@@ -776,7 +773,6 @@
HookCall( m_lRequestShortcircuit1, dwHook1 );
HookCall( m_lRequestShortcircuit2, dwHook2 );
HookCall( m_lRequestShortcircuit3, dwHook3 );
- HookCall( m_lRequestShortcircuit4, dwHook4 );
}
}
Index: ACHooks.h
===================================================================
RCS file: /cvsroot/decaldev/source/Decal/ACHooks.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- ACHooks.h 20 Jun 2003 14:25:10 -0000 1.43
+++ ACHooks.h 21 Aug 2003 22:22:46 -0000 1.44
@@ -239,7 +239,6 @@
long m_lRequestShortcircuit1;
long m_lRequestShortcircuit2;
long m_lRequestShortcircuit3;
- long m_lRequestShortcircuit4;
unsigned int m_HooksEx[1];
unsigned int m_HookCount;
|
|
From: <no...@us...> - 2003-08-20 05:28:57
|
Log Message:
-----------
Test checkin from new machine. Just added a comment.
Modified Files:
--------------
/cvsroot/decaldev/source/DecalFilters:
World.cpp
Revision Data
-------------
Index: World.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/World.cpp,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -r1.46 -r1.47
--- World.cpp 11 Apr 2003 03:24:42 -0000 1.46
+++ World.cpp 20 Aug 2003 03:24:43 -0000 1.47
@@ -1,4 +1,6 @@
// World.cpp : Implementation of cWorld
+// Prepping for latest modifications
+
#include "stdafx.h"
#include "DecalFilters.h"
|