// Copyright (c) 2010-2017 Zipline Games, Inc. All Rights Reserved. // http://getmoai.com #include #include #include //================================================================// // local //================================================================// int _parseArgStringAndCall ( char* exeName, char* scriptName, int argc, char** argv, int i ); //----------------------------------------------------------------// int _parseArgStringAndCall ( char* exeName, char* scriptName, int argc, char** argv, int i ) { int mode = AKU_AS_ARGS; char* args = 0; if ( i < ( argc - 1 )) { char* arg = argv [ i + 1 ]; if (( strcmp ( arg, "-a" ) == 0 )) { i += 2; args = argv [ i ]; mode = AKU_AS_ARGS; } else if (( strcmp ( arg, "-p" ) == 0 )) { i += 2; args = argv [ i ]; mode = AKU_AS_PARAMS; } } if ( args ) { AKUCallFuncWithArgString ( exeName, scriptName, args, mode ); } else { AKUCallFunc (); } return i; } //================================================================// // implementation //================================================================// //----------------------------------------------------------------// void AKUModulesParseArgs ( int argc, char** argv ) { if ( argc < 2 ) { if ( AKULoadFuncFromFile ( "main.lua" ) != AKU_OK ) return; AKUCallFunc (); } else { for ( int i = 1; i < argc; ++i ) { char* arg = argv [ i ]; if (( strcmp ( arg, "-s" ) == 0 )) { char* script = argv [ ++i ]; AKULoadFuncFromString ( script, strlen ( script ), 0 ); i = _parseArgStringAndCall ( argv [ 0 ], 0, argc, argv, i ); } else if (( strcmp ( arg, "-f" ) == 0 )) { char* filename = argv [ ++i ]; if ( AKULoadFuncFromFile ( filename ) != AKU_OK ) return; i = _parseArgStringAndCall ( argv [ 0 ], filename, argc, argv, i ); } else { int argc2 = argc - 2; char** argv2 = argc2 > 0 ? &argv [ i + 1 ] : 0; if ( AKULoadFuncFromFile ( arg ) != AKU_OK ) return; AKUCallFuncWithArgArray ( argv [ 0 ], argv [ i ], argc2, argv2, AKU_AS_ARGS ); break; } } } } //----------------------------------------------------------------// void AKUModulesRunLuaAPIWrapper () { }