[Quest API] Add write overloads to lua packet quest api (#1366)

Makes prototyping easier without having to manually track an offset

Also add GetWritePosition and SetWritePosition
This commit is contained in:
hg 2021-05-24 21:22:31 -04:00 committed by GitHub
parent e5b9d72b81
commit efa245d636
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 78 additions and 8 deletions

View File

@ -89,6 +89,21 @@ void Lua_Packet::SetRawOpcode(int op) {
self->SetOpcode(static_cast<EmuOpcode>(op)); self->SetOpcode(static_cast<EmuOpcode>(op));
} }
int Lua_Packet::GetWritePosition() {
Lua_Safe_Call_Int();
return self->GetWritePosition();
}
void Lua_Packet::SetWritePosition(int offset) {
Lua_Safe_Call_Void();
self->SetWritePosition(offset);
}
void Lua_Packet::WriteInt8(int value) {
Lua_Safe_Call_Void();
self->WriteUInt8(static_cast<uint8_t>(value));
}
void Lua_Packet::WriteInt8(int offset, int value) { void Lua_Packet::WriteInt8(int offset, int value) {
Lua_Safe_Call_Void(); Lua_Safe_Call_Void();
@ -97,6 +112,11 @@ void Lua_Packet::WriteInt8(int offset, int value) {
} }
} }
void Lua_Packet::WriteInt16(int value) {
Lua_Safe_Call_Void();
self->WriteUInt16(static_cast<uint16_t>(value));
}
void Lua_Packet::WriteInt16(int offset, int value) { void Lua_Packet::WriteInt16(int offset, int value) {
Lua_Safe_Call_Void(); Lua_Safe_Call_Void();
@ -105,6 +125,11 @@ void Lua_Packet::WriteInt16(int offset, int value) {
} }
} }
void Lua_Packet::WriteInt32(int value) {
Lua_Safe_Call_Void();
self->WriteUInt32(static_cast<uint32_t>(value));
}
void Lua_Packet::WriteInt32(int offset, int value) { void Lua_Packet::WriteInt32(int offset, int value) {
Lua_Safe_Call_Void(); Lua_Safe_Call_Void();
@ -113,6 +138,11 @@ void Lua_Packet::WriteInt32(int offset, int value) {
} }
} }
void Lua_Packet::WriteInt64(int64 value) {
Lua_Safe_Call_Void();
self->WriteUInt64(static_cast<uint64_t>(value));
}
void Lua_Packet::WriteInt64(int offset, int64 value) { void Lua_Packet::WriteInt64(int offset, int64 value) {
Lua_Safe_Call_Void(); Lua_Safe_Call_Void();
@ -121,6 +151,11 @@ void Lua_Packet::WriteInt64(int offset, int64 value) {
} }
} }
void Lua_Packet::WriteFloat(float value) {
Lua_Safe_Call_Void();
self->WriteFloat(value);
}
void Lua_Packet::WriteFloat(int offset, float value) { void Lua_Packet::WriteFloat(int offset, float value) {
Lua_Safe_Call_Void(); Lua_Safe_Call_Void();
@ -129,6 +164,11 @@ void Lua_Packet::WriteFloat(int offset, float value) {
} }
} }
void Lua_Packet::WriteDouble(double value) {
Lua_Safe_Call_Void();
self->WriteDouble(value);
}
void Lua_Packet::WriteDouble(int offset, double value) { void Lua_Packet::WriteDouble(int offset, double value) {
Lua_Safe_Call_Void(); Lua_Safe_Call_Void();
@ -137,6 +177,11 @@ void Lua_Packet::WriteDouble(int offset, double value) {
} }
} }
void Lua_Packet::WriteString(std::string value) {
Lua_Safe_Call_Void();
self->WriteString(value.c_str());
}
void Lua_Packet::WriteString(int offset, std::string value) { void Lua_Packet::WriteString(int offset, std::string value) {
Lua_Safe_Call_Void(); Lua_Safe_Call_Void();
@ -146,6 +191,11 @@ void Lua_Packet::WriteString(int offset, std::string value) {
} }
} }
void Lua_Packet::WriteFixedLengthString(std::string value) {
Lua_Safe_Call_Void();
self->WriteLengthString(static_cast<uint32_t>(value.size()), value.c_str());
}
void Lua_Packet::WriteFixedLengthString(int offset, std::string value, int string_length) { void Lua_Packet::WriteFixedLengthString(int offset, std::string value, int string_length) {
Lua_Safe_Call_Void(); Lua_Safe_Call_Void();
@ -283,14 +333,24 @@ luabind::scope lua_register_packet() {
.def("SetOpcode", &Lua_Packet::SetOpcode) .def("SetOpcode", &Lua_Packet::SetOpcode)
.def("GetRawOpcode", &Lua_Packet::GetRawOpcode) .def("GetRawOpcode", &Lua_Packet::GetRawOpcode)
.def("SetRawOpcode", &Lua_Packet::SetRawOpcode) .def("SetRawOpcode", &Lua_Packet::SetRawOpcode)
.def("WriteInt8", &Lua_Packet::WriteInt8) .def("GetWritePosition", &Lua_Packet::GetWritePosition)
.def("WriteInt16", &Lua_Packet::WriteInt16) .def("SetWritePosition", &Lua_Packet::SetWritePosition)
.def("WriteInt32", &Lua_Packet::WriteInt32) .def("WriteInt8", (void(Lua_Packet::*)(int))&Lua_Packet::WriteInt8)
.def("WriteInt64", &Lua_Packet::WriteInt64) .def("WriteInt8", (void(Lua_Packet::*)(int, int))&Lua_Packet::WriteInt8)
.def("WriteFloat", &Lua_Packet::WriteFloat) .def("WriteInt16", (void(Lua_Packet::*)(int))&Lua_Packet::WriteInt16)
.def("WriteDouble", &Lua_Packet::WriteDouble) .def("WriteInt16", (void(Lua_Packet::*)(int, int))&Lua_Packet::WriteInt16)
.def("WriteString", &Lua_Packet::WriteString) .def("WriteInt32", (void(Lua_Packet::*)(int))&Lua_Packet::WriteInt32)
.def("WriteFixedLengthString", &Lua_Packet::WriteFixedLengthString) .def("WriteInt32", (void(Lua_Packet::*)(int, int))&Lua_Packet::WriteInt32)
.def("WriteInt64", (void(Lua_Packet::*)(int64))&Lua_Packet::WriteInt64)
.def("WriteInt64", (void(Lua_Packet::*)(int, int64))&Lua_Packet::WriteInt64)
.def("WriteFloat", (void(Lua_Packet::*)(float))&Lua_Packet::WriteFloat)
.def("WriteFloat", (void(Lua_Packet::*)(int, float))&Lua_Packet::WriteFloat)
.def("WriteDouble", (void(Lua_Packet::*)(double))&Lua_Packet::WriteDouble)
.def("WriteDouble", (void(Lua_Packet::*)(int, double))&Lua_Packet::WriteDouble)
.def("WriteString", (void(Lua_Packet::*)(std::string))&Lua_Packet::WriteString)
.def("WriteString", (void(Lua_Packet::*)(int, std::string))&Lua_Packet::WriteString)
.def("WriteFixedLengthString", (void(Lua_Packet::*)(std::string))&Lua_Packet::WriteFixedLengthString)
.def("WriteFixedLengthString", (void(Lua_Packet::*)(int, std::string, int))&Lua_Packet::WriteFixedLengthString)
.def("ReadInt8", &Lua_Packet::ReadInt8) .def("ReadInt8", &Lua_Packet::ReadInt8)
.def("ReadInt16", &Lua_Packet::ReadInt16) .def("ReadInt16", &Lua_Packet::ReadInt16)
.def("ReadInt32", &Lua_Packet::ReadInt32) .def("ReadInt32", &Lua_Packet::ReadInt32)

View File

@ -31,13 +31,23 @@ public:
void SetOpcode(int op); void SetOpcode(int op);
int GetRawOpcode(); int GetRawOpcode();
void SetRawOpcode(int op); void SetRawOpcode(int op);
int GetWritePosition();
void SetWritePosition(int offset);
void WriteInt8(int value);
void WriteInt8(int offset, int value); void WriteInt8(int offset, int value);
void WriteInt16(int value);
void WriteInt16(int offset, int value); void WriteInt16(int offset, int value);
void WriteInt32(int value);
void WriteInt32(int offset, int value); void WriteInt32(int offset, int value);
void WriteInt64(int64 value);
void WriteInt64(int offset, int64 value); void WriteInt64(int offset, int64 value);
void WriteFloat(float value);
void WriteFloat(int offset, float value); void WriteFloat(int offset, float value);
void WriteDouble(double value);
void WriteDouble(int offset, double value); void WriteDouble(int offset, double value);
void WriteString(std::string value);
void WriteString(int offset, std::string value); void WriteString(int offset, std::string value);
void WriteFixedLengthString(std::string value);
void WriteFixedLengthString(int offset, std::string value, int string_length); void WriteFixedLengthString(int offset, std::string value, int string_length);
int ReadInt8(int offset); int ReadInt8(int offset);
int ReadInt16(int offset); int ReadInt16(int offset);