int LS_VirtualDrive_FileInsert(LuaState* state, LuaStackObject* args) { VirtualDrive* drive = VirtualDriveFromLua(state, args[1]); const char* srcFileName = luaL_checkstring(*state, 2); const char* destFileName = luaL_checkstring(*state, 3); int compressionMethod = (UINT)luaL_optnumber(*state, 4, VirtualDrive::COMPRESSED); DiskFile file; if (!file.Open(srcFileName, File::MODE_READONLY)) { state->PushBoolean(false); return 1; } time_t fileTime = (UINT)luaL_optnumber(*state, 5, (lua_Number)file.GetLastWriteTime()); state->PushBoolean(drive->FileCopy(file, destFileName, compressionMethod, &fileTime) != 0); return 1; }