Having touble converting from Java -> PureBasic
Posted: Sat Aug 18, 2012 4:07 pm
Hi everyone, I'm attempting to copy over a game server written in Java. I'm almost through the login decoding but this is the part that is stopping me from finishing.
Java Vesion:
My Attempt
I've tried using PeekQ and PeekL but they aren't working. Maybe the problem is I can't use 32 left shift? PB is only allowing 31 as the maximum. Please help
Java Vesion:
Code: Select all
public int readDWord() {
currentOffset += 4;
return ((buffer[currentOffset - 4] & 0xff) << 24) + ((buffer[currentOffset - 3] & 0xff) << 16) + ((buffer[currentOffset - 2] & 0xff) << 8) + (buffer[currentOffset - 1] & 0xff);
}
public long readQWord() {
long l = (long)readDWord() & 0xffffffffL;
long l1 = (long)readDWord() & 0xffffffffL;
return (l << 32) + l1;
}Code: Select all
Procedure.l ReadDWord(*MemoryBuffer)
dword = ((PeekB(*MemoryBuffer) & $FF) << 24) + ((PeekB(*MemoryBuffer + 1) & $FF) << 16) + ((PeekB(*MemoryBuffer + 2) & $FF) << 8) + (((PeekB(*MemoryBuffer + 3) & $FF)))
ProcedureReturn dword
EndProcedure
Procedure.l ReadQWord(*MemoryBuffer)
l = ReadDWord(*MemoryBuffer) & 4294967295;
l1 = ReadDWord(*MemoryBuffer + 4) & 4294967295;
l2 = (l << 2)
ProcedureReturn (l2 << 30) + l1
EndProcedure