Subversion Repositories WoWGM

Rev

Rev 31 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
19 tristanc 1
#include "pch.h"
2
#pragma hdrstop
3
 
4
#include "Player_C.h"
5
 
6
#include <WowSvcs/ClientServices.h>
7
#include <Console/ConsoleClient.h>
8
 
9
#define PLAYERCLIENTINITIALIZE	0x006E8EE0;
10
#define PLAYERCLIENTSHUTDOWN	0x006E0300;
11
void (*PlayerClientInitializePtr)()	= *(void(*)())PLAYERCLIENTINITIALIZE;
12
void (*PlayerClientShutdownPtr)()	= *(void(*)())PLAYERCLIENTSHUTDOWN;
13
 
14
void WowGM::PlayerClientInitialize()
15
{
16
	DETOUR_INIT;
17
	DETOUR_ATTACH(PlayerClientInitializePtr,::PlayerClientInitialize);
18
	DETOUR_ATTACH(PlayerClientShutdownPtr,::PlayerClientShutdown);
19
	DETOUR_COMMIT;
20
}
21
 
22
void WowGM::PlayerClientShutdown()
23
{
24
	DETOUR_INIT;
25
	DETOUR_DETACH(PlayerClientInitializePtr,::PlayerClientInitialize);
26
	DETOUR_DETACH(PlayerClientShutdownPtr,::PlayerClientShutdown);
27
	DETOUR_COMMIT;
28
}
29
 
30
//===========================================================================
31
BOOL GmResurrectFailedHandler(void* formal,
32
							 NETMESSAGE msgId,
33
							 unsigned int eventTime,
34
							 CDataStore* msg)
35
{
36
	BOOL failed;
37
	msg->Get(failed);
38
	if (!failed) {
39
		ConsoleWrite("Player resurrected", DEFAULT_COLOR);
40
	}
41
	else {
42
		ConsoleWrite("resurrect failed", DEFAULT_COLOR);
43
	}
44
	return TRUE;
45
}
46
 
47
//===========================================================================
48
void PlayerClientInitialize()
49
{
50
	PlayerClientInitializePtr();
51
 
52
	ClientServices_SetMessageHandler(SMSG_RESURRECT_FAILED,GmResurrectFailedHandler,0);
53
}
54
 
55
//===========================================================================
56
void PlayerClientShutdown()
57
{
58
	PlayerClientShutdownPtr();
59
 
60
	ClientServices_ClearMessageHandler(SMSG_RESURRECT_FAILED);
61
}