Lua interpreter mode and easings module.

This commit is contained in:
jussi
2022-11-11 19:23:35 +02:00
parent 1094b1f833
commit 921ed3b07f
17 changed files with 1213 additions and 28 deletions

516
src/easings.c Normal file
View File

@@ -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;
}

View File

@@ -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. */

View File

@@ -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 );
}
luaCallProcess();
luaCallDraw();
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();
}
}
stateFree();
return 1;

View File

@@ -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 ) {