diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/easings.c | 516 | ||||
| -rw-r--r-- | src/lua_core.c | 50 | ||||
| -rw-r--r-- | src/main.c | 44 | ||||
| -rw-r--r-- | src/state.c | 9 |
4 files changed, 604 insertions, 15 deletions
diff --git a/src/easings.c b/src/easings.c new file mode 100644 index 0000000..b864cdb --- /dev/null +++ b/src/easings.c @@ -0,0 +1,516 @@ +#include "main.h" +#include "state.h" +#include "lua_core.h" +#include "easings.h" +#include "reasings.h" + +/* +## Easings - Linear Easing functions +*/ + +/* +> value = RL_EaseLinear( float t, float b, float c, float d ) + +Ease linear + +- Failure return false +- Success return float +*/ +int leasingsEaseLinear( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseLinear( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseLinearNone( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +## Easings - Sine Easing functions +*/ + +/* +> value = RL_EaseSineIn( float t, float b, float c, float d ) + +Ease sine in + +- Failure return false +- Success return float +*/ +int leasingsEaseSineIn( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseSineIn( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseSineIn( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseSineOut( float t, float b, float c, float d ) + +Ease sine out + +- Failure return false +- Success return float +*/ +int leasingsEaseSineOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseSineOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseSineOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseSineInOut( float t, float b, float c, float d ) + +Ease sine in out + +- Failure return false +- Success return float +*/ +int leasingsEaseSineInOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseSineInOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseSineInOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +## Easings - Circular Easing functions +*/ + +/* +> value = RL_EaseCircIn( float t, float b, float c, float d ) + +Ease circle in + +- Failure return false +- Success return float +*/ +int leasingsEaseCircIn( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseCircIn( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseCircIn( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseCircOut( float t, float b, float c, float d ) + +Ease circle out + +- Failure return false +- Success return float +*/ +int leasingsEaseCircOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseCircOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseCircOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseCircInOut( float t, float b, float c, float d ) + +Ease circle in out + +- Failure return false +- Success return float +*/ +int leasingsEaseCircInOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseCircInOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseCircInOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +## Easings - Cubic Easing functions +*/ + +/* +> value = RL_EaseCubicIn( float t, float b, float c, float d ) + +Ease cubic in + +- Failure return false +- Success return float +*/ +int leasingsEaseCubicIn( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseCubicIn( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseCubicIn( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseCubicOut( float t, float b, float c, float d ) + +Ease cubic out + +- Failure return false +- Success return float +*/ +int leasingsEaseCubicOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseCubicOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseCubicOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseCubicInOut( float t, float b, float c, float d ) + +Ease cubic in out + +- Failure return false +- Success return float +*/ +int leasingsEaseCubicInOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseCubicInOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseCubicInOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +## Easings - Quadratic Easing functions +*/ + +/* +> value = RL_EaseQuadIn( float t, float b, float c, float d ) + +Ease quadratic in + +- Failure return false +- Success return float +*/ +int leasingsEaseQuadIn( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseQuadIn( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseQuadIn( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseQuadOut( float t, float b, float c, float d ) + +Ease quadratic out + +- Failure return false +- Success return float +*/ +int leasingsEaseQuadOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseQuadOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseQuadOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseQuadInOut( float t, float b, float c, float d ) + +Ease quadratic in out + +- Failure return false +- Success return float +*/ +int leasingsEaseQuadInOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseQuadInOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseQuadInOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +## Easings - Exponential Easing functions +*/ + +/* +> value = RL_EaseExpoIn( float t, float b, float c, float d ) + +Ease exponential in + +- Failure return false +- Success return float +*/ +int leasingsEaseExpoIn( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseExpoIn( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseExpoIn( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseExpoOut( float t, float b, float c, float d ) + +Ease exponential out + +- Failure return false +- Success return float +*/ +int leasingsEaseExpoOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseExpoOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseExpoOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseExpoInOut( float t, float b, float c, float d ) + +Ease exponential in out + +- Failure return false +- Success return float +*/ +int leasingsEaseExpoInOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseExpoInOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseExpoInOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +## Easings - Back Easing functions +*/ + +/* +> value = RL_EaseBackIn( float t, float b, float c, float d ) + +Ease back in + +- Failure return false +- Success return float +*/ +int leasingsEaseBackIn( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseBackIn( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseBackIn( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseBackOut( float t, float b, float c, float d ) + +Ease back out + +- Failure return false +- Success return float +*/ +int leasingsEaseBackOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseBackOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseBackOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseBackInOut( float t, float b, float c, float d ) + +Ease back in out + +- Failure return false +- Success return float +*/ +int leasingsEaseBackInOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseBackInOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseBackInOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +## Easings - Bounce Easing functions +*/ + +/* +> value = RL_EaseBounceIn( float t, float b, float c, float d ) + +Ease bounce in + +- Failure return false +- Success return float +*/ +int leasingsEaseBounceIn( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseBounceIn( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseBounceIn( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseBounceOut( float t, float b, float c, float d ) + +Ease bounce out + +- Failure return false +- Success return float +*/ +int leasingsEaseBounceOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseBounceOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseBounceOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseBounceInOut( float t, float b, float c, float d ) + +Ease bounce in out + +- Failure return false +- Success return float +*/ +int leasingsEaseBounceInOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseBounceInOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseBounceInOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +## Easings - Elastic Easing functions +*/ + +/* +> value = RL_EaseElasticIn( float t, float b, float c, float d ) + +Ease elastic in + +- Failure return false +- Success return float +*/ +int leasingsEaseElasticIn( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseElasticIn( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseElasticIn( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseElasticOut( float t, float b, float c, float d ) + +Ease elastic out + +- Failure return false +- Success return float +*/ +int leasingsEaseElasticOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseElasticOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseElasticOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} + +/* +> value = RL_EaseElasticInOut( float t, float b, float c, float d ) + +Ease elastic in out + +- Failure return false +- Success return float +*/ +int leasingsEaseElasticInOut( lua_State *L ) { + if ( !lua_isnumber( L, -4 ) || !lua_isnumber( L, -3 ) || !lua_isnumber( L, -2 ) || !lua_isnumber( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_EaseElasticInOut( float t, float b, float c, float d )" ); + lua_pushboolean( L, false ); + return 1; + } + lua_pushnumber( L, EaseElasticInOut( lua_tonumber( L, -4 ), lua_tonumber( L, -3 ), lua_tonumber( L, -2 ), lua_tonumber( L, -1 ) ) ); + + return 1; +} diff --git a/src/lua_core.c b/src/lua_core.c index 1d3f1c8..5e20cd3 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -11,6 +11,7 @@ #include "rgui.h" #include "lights.h" #include "lrlgl.h" +#include "reasings.h" static void assignGlobalInt( int value, const char *name ) { lua_State *L = state->luaState; @@ -526,10 +527,10 @@ bool luaInit() { return false; } - luaRegister(); + // luaRegister(); defineGlobals(); - return luaCallMain(); + return true; } int luaTraceback( lua_State *L ) { @@ -592,8 +593,9 @@ bool luaCallMain() { return false; } } + //TODO Should this be removed? else { - TraceLog( LOG_ERROR, "%s", "No Lua main found!" ); + TraceLog( LOG_ERROR, "%s", "No Lua init found!" ); return false; } /* Apply custom callback here. */ @@ -1265,14 +1267,52 @@ void luaRegister() { lua_register( L, "RL_GuiSetIconPixel", lguiGuiSetIconPixel ); lua_register( L, "RL_GuiClearIconPixel", lguiGuiClearIconPixel ); lua_register( L, "RL_GuiCheckIconPixel", lguiGuiCheckIconPixel ); + /* Lights */ /* Basics. */ lua_register( L, "RL_CreateLight", llightsCreateLight ); lua_register( L, "RL_UpdateLightValues", llightsUpdateLightValues ); + /* RLGL */ /* General render state. */ - lua_register( L, "RL_rlSetLineWidth", lrlglSetLineWidth ); - lua_register( L, "RL_rlGetLineWidth", lrlglGetLineWidth ); + lua_register( L, "RL_rlglSetLineWidth", lrlglSetLineWidth ); + lua_register( L, "RL_rlglGetLineWidth", lrlglGetLineWidth ); + + /* Easings */ + /* Linear Easing functions. */ + lua_register( L, "RL_EaseLinear", leasingsEaseLinear ); + /* Sine Easing functions. */ + lua_register( L, "RL_EaseSineIn", leasingsEaseSineIn ); + lua_register( L, "RL_EaseSineOut", leasingsEaseSineOut ); + lua_register( L, "RL_EaseSineInOut", leasingsEaseSineInOut ); + /* Circular Easing functions. */ + lua_register( L, "RL_EaseCircIn", leasingsEaseCircIn ); + lua_register( L, "RL_EaseCircOut", leasingsEaseCircOut ); + lua_register( L, "RL_EaseCircInOut", leasingsEaseCircInOut ); + /* Cubic Easing functions. */ + lua_register( L, "RL_EaseCubicIn", leasingsEaseCubicIn ); + lua_register( L, "RL_EaseCubicOut", leasingsEaseCubicOut ); + lua_register( L, "RL_EaseCubicInOut", leasingsEaseCubicInOut ); + /* Quadratic Easing functions. */ + lua_register( L, "RL_EaseQuadIn", leasingsEaseQuadIn ); + lua_register( L, "RL_EaseQuadOut", leasingsEaseQuadOut ); + lua_register( L, "RL_EaseQuadInOut", leasingsEaseQuadInOut ); + /* Exponential Easing functions. */ + lua_register( L, "RL_EaseExpoIn", leasingsEaseExpoIn ); + lua_register( L, "RL_EaseExpoOut", leasingsEaseExpoOut ); + lua_register( L, "RL_EaseExpoInOut", leasingsEaseExpoInOut ); + /* Back Easing functions. */ + lua_register( L, "RL_EaseBackIn", leasingsEaseBackIn ); + lua_register( L, "RL_EaseBackOut", leasingsEaseBackOut ); + lua_register( L, "RL_EaseBackInOut", leasingsEaseBackInOut ); + /* Bounce Easing functions. */ + lua_register( L, "RL_EaseBounceIn", leasingsEaseBounceIn ); + lua_register( L, "RL_EaseBounceOut", leasingsEaseBounceOut ); + lua_register( L, "RL_EaseBounceInOut", leasingsEaseBounceInOut ); + /* Elastic Easing functions. */ + lua_register( L, "RL_EaseElasticIn", leasingsEaseElasticIn ); + lua_register( L, "RL_EaseElasticOut", leasingsEaseElasticOut ); + lua_register( L, "RL_EaseElasticInOut", leasingsEaseElasticInOut ); } /* Lua util functions. */ @@ -13,12 +13,26 @@ inline static void printVersion() { int main( int argn, const char **argc ) { char exePath[ STRING_LEN ] = { '\0' }; + bool interpret_mode = false; if ( 1 < argn ) { if ( strcmp( argc[1], "--version" ) == 0 || strcmp( argc[1], "-v" ) == 0 ) { printVersion(); return 1; } + else if ( strcmp( argc[1], "--help" ) == 0 || strcmp( argc[1], "-h" ) == 0 ) { + printf( +"Usage: ReiLua [Options] [Directory to main.lua or main]\nOptions:\n-h --help\tThis help\n-v --version\tShow ReiLua version\n-i --interpret\tInterpret mode [File name]\n" ); + + return 1; + } + else if ( strcmp( argc[1], "--interpret" ) == 0 || strcmp( argc[1], "-i" ) == 0 ) { + interpret_mode = true; + + if ( 2 < argn ) { + sprintf( exePath, "%s/%s", GetWorkingDirectory(), argc[2] ); + } + } else{ sprintf( exePath, "%s/%s", GetWorkingDirectory(), argc[1] ); } @@ -26,19 +40,29 @@ int main( int argn, const char **argc ) { else { sprintf( exePath, "%s/", GetWorkingDirectory() ); } - printVersion(); - stateInit( exePath ); - while ( state->run ) { - if ( WindowShouldClose() ) { - state->run = false; - } - if ( IsAudioDeviceReady() ) { - UpdateMusicStream( state->music ); + if ( interpret_mode ) { + stateInitInterpret(); + luaL_dofile( state->luaState, exePath ); + } + else { + printVersion(); + stateInit( exePath ); + luaRegister(); + state->run = luaCallMain(); + + while ( state->run ) { + if ( WindowShouldClose() ) { + state->run = false; + } + if ( IsAudioDeviceReady() ) { + UpdateMusicStream( state->music ); + } + luaCallProcess(); + luaCallDraw(); } - luaCallProcess(); - luaCallDraw(); } + stateFree(); return 1; diff --git a/src/state.c b/src/state.c index 8cecdcd..4f7e302 100644 --- a/src/state.c +++ b/src/state.c @@ -108,11 +108,20 @@ bool stateInit( const char *exePath ) { if ( state->run ) { InitAudioDevice(); state->run = luaInit(); + // luaRegister(); + // defineGlobals(); + + state->run = luaInit(); } return state->run; } +bool stateInitInterpret() { + state = malloc( sizeof( State ) ); + luaInit(); +} + void stateFree() { for ( int i = 0; i < state->imageCount; ++i ) { if ( state->images[i] != NULL ) { |
