1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-12-01 23:12:49 +02:00

vcmi: modernize lua

This commit is contained in:
Konstantin
2023-02-05 19:24:34 +03:00
parent fb38050f9b
commit 976c5e7bd4
11 changed files with 43 additions and 35 deletions

View File

@@ -12,6 +12,7 @@
#include "api/Registry.h"
#include "LuaStack.h"
#include <type_traits>
VCMI_LIB_NAMESPACE_BEGIN
@@ -187,6 +188,7 @@ public:
template <typename U, typename T, typename R, typename P1, R(T:: * method)(P1)const>
class LuaMethodWrapper <U, R(T:: *)(P1)const, method>
{
using PM1 = std::remove_cv_t<std::remove_reference_t<P1>>;
public:
static int invoke(lua_State * L)
{
@@ -196,7 +198,7 @@ public:
if(!S.tryGet(1,obj))
return S.retVoid();
P1 p1;
PM1 p1;
if(!S.tryGet(2, p1))
return S.retVoid();
@@ -210,6 +212,7 @@ public:
template <typename U, typename T, typename R, typename P1, R(T:: * method)(P1)>
class LuaMethodWrapper <U, R(T:: *)(P1), method>
{
using PM1 = std::remove_cv_t<std::remove_reference_t<P1>>;
public:
static int invoke(lua_State * L)
{
@@ -219,7 +222,7 @@ public:
if(!S.tryGet(1,obj))
return S.retVoid();
P1 p1;
PM1 p1;
if(!S.tryGet(2, p1))
return S.retVoid();
@@ -233,6 +236,7 @@ public:
template <typename U, typename T, typename P1, void(T:: * method)(P1)const>
class LuaMethodWrapper <U, void(T:: *)(P1)const, method>
{
using PM1 = std::remove_cv_t<std::remove_reference_t<P1>>;
public:
static int invoke(lua_State * L)
{
@@ -242,7 +246,7 @@ public:
if(!S.tryGet(1,obj))
return S.retVoid();
P1 p1;
PM1 p1;
if(!S.tryGet(2, p1))
return S.retVoid();
@@ -256,6 +260,7 @@ public:
template <typename U, typename T, typename P1, void(T:: * method)(P1)>
class LuaMethodWrapper <U, void(T:: *)(P1), method>
{
using PM1 = std::remove_cv_t<std::remove_reference_t<P1>>;
public:
static int invoke(lua_State * L)
{
@@ -265,7 +270,7 @@ public:
if(!S.tryGet(1,obj))
return S.retVoid();
P1 p1;
PM1 p1;
if(!S.tryGet(2, p1))
return S.retVoid();
@@ -279,6 +284,8 @@ public:
template <typename U, typename T, typename R, typename P1, typename P2, R(T:: * method)(P1, P2)const>
class LuaMethodWrapper <U, R(T:: *)(P1, P2)const, method>
{
using PM1 = std::remove_cv_t<std::remove_reference_t<P1>>;
using PM2 = std::remove_cv_t<std::remove_reference_t<P2>>;
public:
static int invoke(lua_State * L)
{
@@ -288,11 +295,11 @@ public:
if(!S.tryGet(1, obj))
return S.retVoid();
P1 p1;
PM1 p1;
if(!S.tryGet(2, p1))
return S.retVoid();
P2 p2;
PM2 p2;
if(!S.tryGet(3, p2))
return S.retVoid();
@@ -306,6 +313,8 @@ public:
template <typename U, typename T, typename P1, typename P2, void(T:: * method)(P1, P2)const>
class LuaMethodWrapper <U, void(T:: *)(P1, P2)const, method>
{
using PM1 = std::remove_cv_t<std::remove_reference_t<P1>>;
using PM2 = std::remove_cv_t<std::remove_reference_t<P2>>;
public:
static int invoke(lua_State * L)
{
@@ -315,11 +324,11 @@ public:
if(!S.tryGet(1, obj))
return S.retVoid();
P1 p1;
PM1 p1;
if(!S.tryGet(2, p1))
return S.retVoid();
P2 p2;
PM2 p2;
if(!S.tryGet(3, p2))
return S.retVoid();