F4MP/f4mp_originalcode/f4mp_server/api.cpp

63 lines
1.6 KiB
C++
Raw Normal View History

#include "api.h"
#define GEN_DATA_READWRITE(TYPE) \
EXPORT TYPE ZPL_JOIN2(data_r,TYPE)(struct librg_data *data){ return ZPL_JOIN2(librg_data_r,TYPE)(data); } \
EXPORT void ZPL_JOIN2(data_w,TYPE)(struct librg_data *data, TYPE value){ ZPL_JOIN2(librg_data_w,TYPE)(data, value); } \
EXPORT TYPE ZPL_JOIN3(data_r,TYPE,_at)(struct librg_data *data, isize position){ return ZPL_JOIN3(librg_data_r,TYPE,_at)(data, position); } \
EXPORT void ZPL_JOIN3(data_w,TYPE,_at)(struct librg_data *data, TYPE value, isize position){ ZPL_JOIN3(librg_data_w,TYPE,_at)(data, value, position); }
EXPORT f4mp::Server* server_create(const char* address, i32 port)
{
try
{
return new f4mp::Server(address, port);
}
catch (const std::exception&)
{
return nullptr;
}
}
EXPORT void server_destroy(f4mp::Server* server)
{
delete server;
}
EXPORT void server_start(f4mp::Server* server)
{
server->Start();
}
EXPORT librg_ctx* server_get_ctx(f4mp::Server* server)
{
return server->GetContext();
}
EXPORT void server_tick(f4mp::Server* server)
{
server->Tick();
}
GEN_DATA_READWRITE(i8);
GEN_DATA_READWRITE(u8);
GEN_DATA_READWRITE(i16);
GEN_DATA_READWRITE(u16);
GEN_DATA_READWRITE(i32);
GEN_DATA_READWRITE(u32);
GEN_DATA_READWRITE(i64);
GEN_DATA_READWRITE(u64);
GEN_DATA_READWRITE(f32);
GEN_DATA_READWRITE(f64);
GEN_DATA_READWRITE(b8);
GEN_DATA_READWRITE(b16);
GEN_DATA_READWRITE(b32);
EXPORT void event_add(f4mp::Server* server, u64 id, librg_event_cb* callback)
{
librg_event_add(server->GetContext(), id, callback);
}
EXPORT void network_add(f4mp::Server* server, u16 id, librg_message_cb* callback)
{
librg_network_add(server->GetContext(), id, callback);
}