From cb39716f1ee896473ed03bcb6dbf927715f74cee Mon Sep 17 00:00:00 2001 From: Alexander M Pickering Date: Fri, 17 Dec 2021 15:15:58 -0600 Subject: commit to back up work before moving --- src/shared/lua_api/load_common.cpp | 163 +++++++++++++++++---------------- src/shared/lua_api/phys/bphysmodel.cpp | 2 +- 2 files changed, 83 insertions(+), 82 deletions(-) diff --git a/src/shared/lua_api/load_common.cpp b/src/shared/lua_api/load_common.cpp index 188cd30..e0128ce 100644 --- a/src/shared/lua_api/load_common.cpp +++ b/src/shared/lua_api/load_common.cpp @@ -1,81 +1,82 @@ -#include -#include -extern "C" { - #include - #include - #include -} -//Open group -#include //for io.dir("file/path") -#include //required before sys/stat.h on windows -#include //for io.time("path/to.file") -#include -#include //For better errors - -using namespace std::chrono; - -//Gets the time -int get_time(lua_State* L){ - std::chrono::high_resolution_clock::time_point now = high_resolution_clock::now(); - std::chrono::high_resolution_clock::duration since_epoch = now.time_since_epoch(); - double dc = std::chrono::duration_cast(since_epoch).count(); - lua_pushnumber(L,dc); - return 1; -} - -char *epath; -size_t epathlen; -/*Add an io.dir(path) function, which lists all the files in (path)*/ -int dirpath(lua_State *L){ - if(!lua_isstring(L,-1)){ - lua_pushstring(L,"io.dir() requires a string as argument #1"); - lua_error(L); - } - size_t pathstrlen; - const char *pathstr = lua_tolstring(L,-1,&pathstrlen); - char tpathstr[pathstrlen + epathlen + 1 + 1]; //+1 for null, +1 for / - memcpy(tpathstr,epath,epathlen); - tpathstr[epathlen] = '/'; - memcpy(tpathstr+epathlen+1,pathstr,pathstrlen); - tpathstr[pathstrlen + epathlen + 1] = '\0'; - lua_pop(L,1); - DIR *dir; - struct dirent *ent; - dir = opendir(tpathstr); - if(dir == NULL){ - perror("Cannot open"); - lua_pushstring(L,"Failed to open directory: "); - lua_pushstring(L,tpathstr); - lua_concat(L,2); - lua_error(L); - } - int i = 1; - ent = readdir(dir); - lua_newtable(L); - while( (ent = readdir(dir)) != NULL){ - lua_pushinteger(L,i); - lua_pushstring(L,ent->d_name); - lua_settable(L,-3); - i++; - } - closedir(dir); - return 1; -} - -void loadCommonLibs(lua_State* L){ - lua_getglobal(L,"GAME"); - lua_pushcfunction(L,make_crashy); - lua_setfield(L,-2,"crashy"); - lua_pop(L,1); - lua_pushcfunction(L,get_time); - lua_setglobal(L,"get_time"); - - lua_getglobal(L,"io"); - lua_pushcfunction(L,dirpath); - lua_setfield(L,-2,"dir"); - lua_pop(L,1); -} - -void gameloop_common(lua_State* L){ - -} +#include +#include +extern "C" { + #include + #include + #include +} +//Open group +#include //for io.dir("file/path") +#include //required before sys/stat.h on windows +#include //for io.time("path/to.file") +#include +#include //For better errors +#include //for memcpy + +using namespace std::chrono; + +//Gets the time +int get_time(lua_State* L){ + std::chrono::high_resolution_clock::time_point now = high_resolution_clock::now(); + std::chrono::high_resolution_clock::duration since_epoch = now.time_since_epoch(); + double dc = std::chrono::duration_cast(since_epoch).count(); + lua_pushnumber(L,dc); + return 1; +} + +char *epath; +size_t epathlen; +/*Add an io.dir(path) function, which lists all the files in (path)*/ +int dirpath(lua_State *L){ + if(!lua_isstring(L,-1)){ + lua_pushstring(L,"io.dir() requires a string as argument #1"); + lua_error(L); + } + size_t pathstrlen; + const char *pathstr = lua_tolstring(L,-1,&pathstrlen); + char tpathstr[pathstrlen + epathlen + 1 + 1]; //+1 for null, +1 for / + memcpy(tpathstr,epath,epathlen); + tpathstr[epathlen] = '/'; + memcpy(tpathstr+epathlen+1,pathstr,pathstrlen); + tpathstr[pathstrlen + epathlen + 1] = '\0'; + lua_pop(L,1); + DIR *dir; + struct dirent *ent; + dir = opendir(tpathstr); + if(dir == NULL){ + perror("Cannot open"); + lua_pushstring(L,"Failed to open directory: "); + lua_pushstring(L,tpathstr); + lua_concat(L,2); + lua_error(L); + } + int i = 1; + ent = readdir(dir); + lua_newtable(L); + while( (ent = readdir(dir)) != NULL){ + lua_pushinteger(L,i); + lua_pushstring(L,ent->d_name); + lua_settable(L,-3); + i++; + } + closedir(dir); + return 1; +} + +void loadCommonLibs(lua_State* L){ + lua_getglobal(L,"GAME"); + lua_pushcfunction(L,make_crashy); + lua_setfield(L,-2,"crashy"); + lua_pop(L,1); + lua_pushcfunction(L,get_time); + lua_setglobal(L,"get_time"); + + lua_getglobal(L,"io"); + lua_pushcfunction(L,dirpath); + lua_setfield(L,-2,"dir"); + lua_pop(L,1); +} + +void gameloop_common(lua_State* L){ + +} diff --git a/src/shared/lua_api/phys/bphysmodel.cpp b/src/shared/lua_api/phys/bphysmodel.cpp index a813e17..d4a689a 100644 --- a/src/shared/lua_api/phys/bphysmodel.cpp +++ b/src/shared/lua_api/phys/bphysmodel.cpp @@ -28,7 +28,7 @@ extern std::list Objects; //btTriangleMesh *trimesh = new btTriangleMesh(); //} -static void get_file_data(const char* filename, char **data, size_t *len){ +static void get_file_data(const char* filename, int is_mtl, const char *obj_filename, char **data, size_t *len){ FILE *objfile = fopen(filename,"rb"); fseek(objfile,0,SEEK_END); *len = (size_t)ftell(objfile); -- cgit v1.2.3-70-g09d2