#ifndef SCRIPTING_H_ #define SCRIPTING_H_ #include <lua.h> #include <lauxlib.h> #include <lualib.h> #include <errno.h> #include "list.h" #include "mud.h" #define SCRIPT_DIR "../scripts" /* Directories under scripts.*/ #define IMP_HOME_DIR "/home" #define ESECURITY 0 #define VSECURITY 1 #define CSECURITY 2 extern lua_State * lua; extern DIRFILE_ENTRY * dirfile_root; extern LIST * dir_structure; #define DIRFILE_TYPE_DIR 0 #define DIRFILE_TYPE_FILE 1 struct dirfile_entry { DIRFILE_ENTRY * parent; char * name; char * creator; int vSecurity; int eSecurity; int cSecurity; int type; char * realpath; LIST * contents; BUFFER * data; bool locked; }; /* lua_base.c */ void stackDump(lua_State *l); void init_lua(); void dMobile_to_lua(D_MOBILE *dMob, lua_State *l); void register_dMobile(D_MOBILE *dMob); void input_to_lua(D_MOBILE *dMob, char * command, char * arg); /* lua_shell.c */ void init_dir_structure(); void load_code(LIST * target); void cmd_ls(D_MOBILE *dMob, char *arg); void cmd_touch(D_MOBILE *dMob, char *arg); void cmd_cd(D_MOBILE *dMob, char *arg); void cmd_view(D_MOBILE *dMob, char *arg); void cmd_rm(D_MOBILE *dMob, char*arg); void cmd_edit(D_MOBILE *dMob, char*arg); void cmd_return(D_MOBILE *dMob, char*arg); void cmd_mkdir(D_MOBILE *dMob, char*arg); void cmd_rmdir(D_MOBILE *dMob, char*arg); void cmd_reload(D_MOBILE *dMob, char * arg); void cmd_promote(D_MOBILE *dMob, char * arg); void cmd_demote(D_MOBILE *dMob, char * arg); void cmd_chown(D_MOBILE *dMob, char * arg); void cmd_chmod(D_MOBILE *dMob, char *arg); void cmd_mkcore(D_MOBILE *dMob, char *arg); void handle_file_editing(D_MOBILE *dMob, char *arg); DIRFILE_ENTRY * get_dirfile_from_real_path(const char* path, D_MOBILE *dMob); #endif /*SCRIPTING_H_*/