mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-09 04:49:39 -10:00
* Add automatic lua obj serialization function dispatch * Implement fundamental and object de/serialization * Proper default case for package deserialization * Add No Multi func * Add Serialization part * Fix max encoding size for userdata * Implement exception handling * Start Implementing lua RPC * Prepare waitAsync for RPC * Add packet order enforcing and forwarding * Add RPC registry * Make RPCs callable * Add waitRPC * Add serializers * Fix GCC error * Explicitly specify lua_net_exception * Fix Warnings * Replace Seriliaze fundamental with cross-platform data types * Appease Clang * Prevent serialization CTD on invalid objects * Actually use the temporaries assigned * Fix OSWPT shadow * Fix table deserialize order * Incorporate Feedback * Fix Warnigs * ix WArnings 2 * Add sanity checks for OSWPT wing serialization * Multi Bump * Forgot we have american-style dates there
45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "mission/missionparse.h"
|
|
#include "scripting/ade_api.h"
|
|
|
|
namespace scripting {
|
|
namespace api {
|
|
|
|
class parse_object_h {
|
|
p_object* _obj;
|
|
|
|
public:
|
|
explicit parse_object_h(p_object* obj);
|
|
|
|
p_object* getObject() const;
|
|
|
|
bool isValid() const;
|
|
|
|
void serialize(lua_State* /*L*/, const scripting::ade_table_entry& /*tableEntry*/, const luacpp::LuaValue& value, ubyte* data, int& packet_size);
|
|
void deserialize(lua_State* /*L*/, const scripting::ade_table_entry& /*tableEntry*/, char* data_ptr, ubyte* data, int& offset);
|
|
};
|
|
|
|
DECLARE_ADE_OBJ(l_ParseObject, parse_object_h);
|
|
|
|
class parse_subsys_h {
|
|
p_object* _obj = nullptr;
|
|
int _subsys_offset = -1;
|
|
|
|
public:
|
|
parse_subsys_h();
|
|
explicit parse_subsys_h(p_object* obj, int subsys_offset);
|
|
|
|
subsys_status* getSubsys() const;
|
|
|
|
bool isValid() const;
|
|
|
|
void serialize(lua_State* /*L*/, const scripting::ade_table_entry& /*tableEntry*/, const luacpp::LuaValue& value, ubyte* data, int& packet_size);
|
|
void deserialize(lua_State* /*L*/, const scripting::ade_table_entry& /*tableEntry*/, char* data_ptr, ubyte* data, int& offset);
|
|
};
|
|
|
|
DECLARE_ADE_OBJ(l_ParseSubsystem, parse_subsys_h);
|
|
|
|
} // namespace api
|
|
} // namespace scripting
|