Quick and dirty class for reading the chat log:
Code:
public static class ChatLog
{
private const int MessageSize = 512;
public static IEnumerable<string> ReadMessages(MemoryManager mem)
{
uint ptrNextChatMessageOffset = OffsetManager.GetAddress("Global", "ChatLogNextMessageOffset");
uint ptrCurrentMessage = OffsetManager.GetAddress("Global", "ChatLog");
uint ptrNextMessage = 0;
string message = ".";
while (!String.IsNullOrEmpty(message.Trim()))
{
message = mem.ReadString(ptrCurrentMessage, true, MessageSize);
yield return message;
ptrNextMessage = ptrCurrentMessage + ptrNextChatMessageOffset; // Sets ptrNextMessage to the next message in the log
if (ptrNextMessage == ptrCurrentMessage)
break;
else
ptrCurrentMessage = ptrNextMessage;
}
}
With a regular expression and a 'Message' structure you can have a sweet little logger.