This commit is contained in:
lenheart
2024-07-22 19:26:56 +08:00
parent 945562c2b9
commit 48f5ee8c62
150 changed files with 826 additions and 1058 deletions

View File

@@ -587,6 +587,29 @@ static SQInteger L_S_Ptr(HSQUIRRELVM v)
sq_pushuserpointer(v, ptr);
return 1;
}
static SQInteger L_Str_Ptr(HSQUIRRELVM v)
{
const SQChar *str;
sq_getstring(v, 2, &str);
sq_pushuserpointer(v, (void *)str);
return 1;
}
static SQInteger New_Point(HSQUIRRELVM v)
{
SQInteger Len;
sq_getinteger(v, 2, &Len);
void *P = malloc(Len);
sq_pushuserpointer(v, P);
return 1;
}
static SQInteger Delete_Point(HSQUIRRELVM v)
{
SQUserPointer P;
sq_getuserpointer(v, 2, &P);
free(P);
return 0;
}
static void RegisterGame(HSQUIRRELVM v)
{
@@ -596,6 +619,12 @@ static void RegisterGame(HSQUIRRELVM v)
register_World_func(v, L_Ptr2Int, _SC("Sq_Ptr2Int"));
register_World_func(v, L_Int2Ptr, _SC("Sq_Int2Ptr"));
register_World_func(v, L_S_Ptr, _SC("S_Ptr"));
register_World_func(v, L_Str_Ptr, _SC("Str_Ptr"));
// new一个指针
register_World_func(v, New_Point, _SC("Sq_New_Point"));
// 销毁一个指针
register_World_func(v, Delete_Point, _SC("Sq_Delete_Point"));
// 获取频道配置
register_World_func(v, Game_GetConfig, _SC("Sq_Game_GetConfig"));

View File

@@ -74,6 +74,18 @@ static SQInteger Packet_Put_binary(HSQUIRRELVM v)
Pck->put_str((char *)Str, strlen(Str));
return 0;
}
static SQInteger Packet_Put_binaryex(HSQUIRRELVM v)
{
SQUserPointer Buf;
sq_getuserpointer(v, 2, &Buf);
InterfacePacketBuf *Pck = (InterfacePacketBuf *)Buf;
SQUserPointer Str;
sq_getuserpointer(v, 3, &Str);
SQInteger Len;
sq_getinteger(v, 4, &Len);
Pck->put_binary((char *)Str, Len);
return 0;
}
static SQInteger Packet_Finalize(HSQUIRRELVM v)
{
SQUserPointer Buf;
@@ -120,6 +132,7 @@ static void RegisterPacket(HSQUIRRELVM v)
register_Packet_func(v, Packet_Put_short, _SC("Sq_Packet_Put_short"));
register_Packet_func(v, Packet_Put_int, _SC("Sq_Packet_Put_int"));
register_Packet_func(v, Packet_Put_binary, _SC("Sq_Packet_Put_binary"));
register_Packet_func(v, Packet_Put_binaryex, _SC("Sq_Packet_Put_binaryex"));
register_Packet_func(v, Packet_Finalize, _SC("Sq_Packet_Finalize"));
register_Packet_func(v, Packet_Send, _SC("Sq_Packet_Send"));
register_Packet_func(v, Packet_Delete, _SC("Sq_Packet_Delete"));