Subversion Repositories WoWGM

Rev

Rev 31 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 31 Rev 32
Line 44... Line 44...
44
*   Detours setup
44
*   Detours setup
45
*
45
*
46
***/
46
***/
47
 
47
 
48
//===========================================================================
48
//===========================================================================
49
void WowGM::CGlueMgr::Initialize () {
-
 
50
	DETOUR_INIT;
-
 
51
 
-
 
52
	DETOUR_ATTACH(NetDisconnectHandlerPtr,::CGlueMgr::NetDisconnectHandler);
-
 
53
	DETOUR_ATTACH(ResumePtr,::CGlueMgr::Resume);
-
 
54
	DETOUR_ATTACH(SuspendPtr,::CGlueMgr::Suspend);
-
 
55
	DETOUR_ATTACH(ShutdownPtr,::CGlueMgr::Shutdown);
-
 
56
	
-
 
57
	DETOUR_COMMIT;
-
 
58
}
-
 
59
 
-
 
60
//===========================================================================
-
 
61
void WowGM::CGlueMgr::Shutdown () {
49
void WowGM::CGlueMgr::Shutdown () {
62
	DETOUR_INIT;
50
	DETOUR_INIT;
63
 
51
 
64
	DETOUR_DETACH(NetDisconnectHandlerPtr,::CGlueMgr::NetDisconnectHandler);
52
	DETOUR_DETACH(NetDisconnectHandlerPtr,::CGlueMgr::NetDisconnectHandler);
65
	DETOUR_DETACH(ResumePtr,::CGlueMgr::Resume);
53
	DETOUR_DETACH(ResumePtr,::CGlueMgr::Resume);
Line 68... Line 56...
68
	
56
	
69
	DETOUR_COMMIT;
57
	DETOUR_COMMIT;
70
}
58
}
71
 
59
 
72
//===========================================================================
60
//===========================================================================
73
void WowGM::CGlueMgr::RegisterConsoleCommands() {
61
void WowGM::CGlueMgr::RegisterConsoleCommands () {
74
	::CGlueMgr::RegisterConsoleCommands();
62
	::CGlueMgr::RegisterConsoleCommands();
75
}
63
}
76
 
64
 
77
//===========================================================================
65
//===========================================================================
78
void WowGM::CGlueMgr::UnregisterConsoleCommands () {
66
void WowGM::CGlueMgr::UnregisterConsoleCommands () {
Line 85... Line 73...
85
*   Console commands and scripts
73
*   Console commands and scripts
86
*
74
*
87
***/
75
***/
88
 
76
 
89
//===========================================================================
77
//===========================================================================
90
int CCommand_Script2 (const char* cmd, char const* arguments) {
78
int CCommand_Script2 (char const* cmd, char const* arguments) {
91
	FrameScript_Execute(arguments, arguments, NULL);
79
	FrameScript_Execute(arguments, arguments, NULL);
92
	return 0;
80
	return 0;
93
}
81
}
94
 
82
 
95
//===========================================================================
83
//===========================================================================
96
int CCommand_MoveCharacter (const char* command, const char* arguments) {
84
int CCommand_MoveCharacter (char const* command, char const* arguments) {
97
  if ((*(int*)0x00B6A9E0)) {  // CGlueMgr::m_currentScreen == 2
85
  if ((*(int*)0x00B6A9E0)) {  // CGlueMgr::m_currentScreen == 2
98
    int characterIndex = (*(int*)0x00AC436C); //CCharacterSelection::s_selectionIndex
86
    int characterIndex = (*(int*)0x00AC436C); //CCharacterSelection::s_selectionIndex
99
    int numCharacters = (*(int*)0x00B6B23C);
87
    int numCharacters = (*(int*)0x00B6B23C);
100
    int sumtingwong = (*(int*)0xB6B240);
88
    int sumtingwong = (*(int*)0xB6B240);
101
 
89
 
102
	unsigned long long guid = *(unsigned long long*)(sumtingwong + 408 * characterIndex);
90
		unsigned long long guid = *(unsigned long long*)(sumtingwong + 408 * characterIndex);
103
 
91
 
104
    CDataStore netMsg;
92
    CDataStore netMsg;
105
    netMsg.Put(CMSG_MOVE_CHARACTER_CHEAT);
93
    netMsg.Put(CMSG_MOVE_CHARACTER_CHEAT);
106
    netMsg.Put(NULL);
94
    netMsg.Put(NULL);
107
    netMsg.Put(1);
95
    netMsg.Put(1);
Line 109... Line 97...
109
    netMsg.Put(16310.325195f);
97
    netMsg.Put(16310.325195f);
110
    netMsg.Put(16268.939453f);
98
    netMsg.Put(16268.939453f);
111
    netMsg.Put(69.444290f);
99
    netMsg.Put(69.444290f);
112
    netMsg.Put(0.00f);
100
    netMsg.Put(0.00f);
113
    netMsg.Finalize();
101
    netMsg.Finalize();
-
 
102
    
114
    ClientServices_SendOnConnection(&netMsg);
103
		ClientServices_SendOnConnection(&netMsg);
-
 
104
    
115
    FrameScript_Execute("GetCharacterListUpdate()", "GetCharacterListUpdate()", NULL);
105
		FrameScript_Execute("GetCharacterListUpdate()", "GetCharacterListUpdate()", NULL);
116
    //ClientConnection::GetCharacterList();
106
    //ClientConnection::GetCharacterList();
117
  }
107
  }
118
  else {
108
  else
119
    ConsoleWrite("You can only use this command on the character selection screen", ERROR_COLOR);
109
    ConsoleWrite("You can only use this command on the character selection screen", ERROR_COLOR);
120
  }
-
 
121
 
110
 
122
  return 0;
111
  return 0;
123
}
112
}
124
 
113
 
125
//===========================================================================
114
//===========================================================================
Line 134... Line 123...
134
*   CGlueMgr class implementation
123
*   CGlueMgr class implementation
135
*
124
*
136
***/
125
***/
137
 
126
 
138
//===========================================================================
127
//===========================================================================
-
 
128
void CGlueMgr::Initialize () {
-
 
129
  DETOUR_INIT;
-
 
130
  DETOUR_ATTACH(NetDisconnectHandlerPtr,CGlueMgr::NetDisconnectHandler);
-
 
131
  DETOUR_ATTACH(ResumePtr,CGlueMgr::Resume);
-
 
132
  DETOUR_ATTACH(SuspendPtr,CGlueMgr::Suspend);
-
 
133
  DETOUR_ATTACH(ShutdownPtr,CGlueMgr::Shutdown);
-
 
134
  DETOUR_COMMIT;
-
 
135
}
-
 
136
 
-
 
137
//===========================================================================
139
int CGlueMgr::NetDisconnectHandler (void const *a1, void *a2) {
138
int CGlueMgr::NetDisconnectHandler (void const* a1, void* a2) {
140
	NetDisconnectHandlerPtr(a1, a2);
139
	NetDisconnectHandlerPtr(a1, a2);
141
	WowGM::CGlueMgr::SetLoginPassword();
140
	WowGM::CGlueMgr::SetLoginPassword();
142
	return 1;
141
	return 1;
143
}
142
}
144
 
143
 
Line 147... Line 146...
147
	ResumePtr(initialized);
146
	ResumePtr(initialized);
148
	RegisterConsoleCommands();
147
	RegisterConsoleCommands();
149
}
148
}
150
 
149
 
151
//===========================================================================
150
//===========================================================================
152
void WowGM::CGlueMgr::SetLoginPassword() {
151
void WowGM::CGlueMgr::SetLoginPassword () {
153
	char command[256] = {};
152
	char command[256] = {};
154
 
153
 
155
	// TODO: Call SStrPrintF here
154
	// TODO: Call SStrPrintF here
156
	sprintf_s(command,
155
	sprintf_s(command,
157
		sizeof(command),
156
						sizeof(command),
158
		"AccountLoginPasswordEdit:SetText(\"%s\")",
157
						"AccountLoginPasswordEdit:SetText(\"%s\")",
159
		g_password->m_stringValue.m_string);
158
						g_password->m_stringValue.m_string);
-
 
159
 
160
	FrameScript_Execute(command,command,NULL);
160
	FrameScript_Execute(command,command,NULL);
161
}
161
}
162
 
162
 
163
//===========================================================================
163
//===========================================================================
164
void CGlueMgr::Suspend () {
164
void CGlueMgr::Suspend () {
Line 189... Line 189...
189
  ConsoleCommandUnregister("worldport");
189
  ConsoleCommandUnregister("worldport");
190
 
190
 
191
	//ConsoleCommandUnregister("signalevent");
191
	//ConsoleCommandUnregister("signalevent");
192
	FrameScript_UnregisterFunction("debugtest");
192
	FrameScript_UnregisterFunction("debugtest");
193
}
193
}
-
 
194