Added blacklist, fixed compiler warnings

This commit is contained in:
Furkan Mudanyali 2020-09-26 03:20:50 +03:00
parent a87abaf976
commit 010e64b382
2 changed files with 59 additions and 36 deletions

View File

@ -3,21 +3,22 @@ System.createDirectory("ux0:/data/TrackPlug/")
System.createDirectory("ux0:/data/TrackPlug/Records")
System.createDirectory("ux0:/data/TrackPlug/Config")
System.createDirectory("ux0:/data/TrackPlug/Assets")
-- Scanning TrackPlug folder
local tbl = System.listDirectory("ux0:/data/TrackPlug/Records")
local blacklist = {}
-- Removing blacklisted games
--[[for i, file in pairs(tbl) do
local titleid = string.sub(file.name,1,-5)
for k, toberemoved in pairs(blacklist) do
if titleid == blacklist[k] then
System.deleteFile("ux0:/data/TrackPlug/Records"..file.name)
end
end
-- Creating blacklist file if it doesn't exist
if not System.doesFileExist("ux0:/data/TrackPlug/blacklist.txt") then
local blacklist_file = System.openFile("ux0:/data/TrackPlug/blacklist.txt", FCREATE)
System.closeFile(blacklist_file)
end
-- Reset the table
tbl = System.listDirectory("ux0:/data/TrackPlug/Records")]]--
-- Reading blacklist file
local blacklist_file = System.openFile("ux0:/data/TrackPlug/blacklist.txt", FREAD)
local blacklist_fsize = System.sizeFile(blacklist_file)
local blacklist_var = System.readFile(blacklist_file, blacklist_fsize)
System.closeFile(blacklist_file)
-- Removing blacklisted titles
for line in blacklist_var:gmatch("([^\n]*)\n?") do
System.deleteFile("ux0:/data/TrackPlug/Records/" .. line .. ".bin")
end
-- Read entries to a table
local tbl = System.listDirectory("ux0:/data/TrackPlug/Records")
if tbl == nil then
tbl = {}
end
@ -259,6 +260,7 @@ end
local sel_val = 128
local decrease = true
local freeze = false
local freeze_blacklist = false
local mov_y = 0
local mov_step = 0
local new_list_idx = nil
@ -311,7 +313,7 @@ function RenderList()
if i ~= list_idx + 5 then
Graphics.drawImage(5, y + mov_y, big_tbl[i].icon)
end
Graphics.debugPrint(150, y + 35 + mov_y, big_tbl[i].title, Color.new(230,140,175))
Graphics.debugPrint(150, y + 35 + mov_y, string.gsub(big_tbl[i].title, "\n", " "), Color.new(230,140,175))
--Graphics.debugPrint(150, y + 45 + mov_y, "Title ID: " .. big_tbl[i].id, white)
--Graphics.debugPrint(150, y + 65 + mov_y, "Region: " .. big_tbl[i].region, white)
Graphics.debugPrint(150, y + 65 + mov_y, "Playtime: " .. big_tbl[i].ptime, white)
@ -319,7 +321,7 @@ function RenderList()
if r_idx == 0 then
r_idx = #tbl
end
Graphics.debugPrint(920, y + 100 + mov_y, "#" .. r_idx, white)
Graphics.debugPrint(910, y + 100 + mov_y, "#" .. r_idx, white)
y = y + 132
if real_i <= 0 then
i = real_i
@ -331,23 +333,32 @@ end
-- Main loop
local f_idx = 1
local f_idx_2 = 1
local useless = 0
local blacklisted_title = "kek"
local blacklisted_title_id = "kek"
local oldpad = Controls.read()
while #tbl > 0 do
Graphics.initBlend()
Graphics.fillRect(0,960,0,544,Color.new(10,5,15))
Graphics.fillRect(0,960,0,544,Color.new(10,5,15))
Graphics.fillRect(0,960,4,140,Color.new(20,20,20))
wav:init()
RenderList()
if freeze then
showAlarm("Do you want to delete this record permanently? \n" .. tbl[list_idx].title, f_idx)
end
showAlarm("Do you want to clear playtime of this record? \n" .. string.gsub(tbl[list_idx].title, "\n", " "), f_idx)
end
if freeze_blacklist then
showAlarm("Do you want to blacklist this record? \n" .. blacklisted_title, f_idx_2)
end
Graphics.termBlend()
Screen.flip()
Screen.waitVblankStart()
local pad = Controls.read()
if Controls.check(pad, SCE_CTRL_UP) and mov_y == 0 then
if freeze then
f_idx = 1
f_idx = 1
elseif freeze_blacklist then
f_idx_2 = 1
else
new_list_idx = list_idx - 1
if new_list_idx == 0 then
@ -357,7 +368,9 @@ while #tbl > 0 do
end
elseif Controls.check(pad, SCE_CTRL_DOWN) and mov_y == 0 then
if freeze then
f_idx = 2
f_idx = 2
elseif freeze_blacklist then
f_idx_2 = 2
else
new_list_idx = list_idx + 1
if new_list_idx > #tbl then
@ -366,17 +379,30 @@ while #tbl > 0 do
mov_y = -11
end
elseif Controls.check(pad, SCE_CTRL_TRIANGLE) and not Controls.check(oldpad, SCE_CTRL_TRIANGLE) and not freeze then
freeze = true
f_idx = 1
elseif Controls.check(pad, SCE_CTRL_CROSS) and not Controls.check(oldpad, SCE_CTRL_CROSS) and freeze then
freeze = false
if f_idx == 1 then -- Delete
System.deleteFile("ux0:/data/TrackPlug/Records/" .. tbl[list_idx].id .. ".bin")
freeze = true
f_idx = 2
f_idx_2 = 2
elseif Controls.check(pad, SCE_CTRL_CROSS) and not Controls.check(oldpad, SCE_CTRL_CROSS) and freeze then
freeze = false
if f_idx == 1 then -- Delete
blacklisted_title_id = tbl[list_idx].id
blacklisted_title = string.gsub(tbl[list_idx].title, "\n", " ")
System.deleteFile("ux0:/data/TrackPlug/Records/" .. tbl[list_idx].id .. ".bin")
freeze_blacklist = true
table.remove(tbl, list_idx)
big_tbl = {}
list_idx = list_idx - 1
end
end
elseif Controls.check(pad, SCE_CTRL_CROSS) and not Controls.check(oldpad, SCE_CTRL_CROSS) and freeze_blacklist then
freeze_blacklist = false
if f_idx_2 == 1 then -- Blacklist
local file = System.openFile("ux0:/data/TrackPlug/blacklist.txt", FRDWR)
local file_size = System.sizeFile(file)
local file_var = System.readFile(file, file_size)
System.writeFile(file, blacklisted_title_id .. "\n", string.len(blacklisted_title_id) + 1)
System.closeFile(file)
end
end
oldpad = pad
end

View File

@ -1,12 +1,9 @@
#include <stdio.h>
#include <taihen.h>
#include <psp2/io/fcntl.h>
#include <psp2kern/kernel/sysmem.h>
#include <psp2kern/kernel/sysmem.h>
#include <psp2kern/kernel/modulemgr.h>
#include <psp2kern/kernel/iofilemgr.h>
#include <string.h>
#include <stdarg.h>
#include <dolcesdkkern.h>
#include <stdlib.h>
#include <psp2/appmgr.h>
#define printf ksceDebugPrintf
#define SECOND 1000000
@ -97,7 +94,7 @@ static void adrenaline_titlewriter(char *dummy_id,char *dummy_title){
char pathfolder[128];
snprintf(path, 128, "ux0:/data/TrackPlug/Assets/%s/title.txt", dummy_id);
snprintf(pathfolder, 128, "ux0:/data/TrackPlug/Assets/%s/", dummy_id);
int dfd = ksceIoMkdir(pathfolder,6);
ksceIoMkdir(pathfolder,6);
SceUID fd = ksceIoOpen(path,
SCE_O_WRONLY | SCE_O_CREAT | SCE_O_TRUNC, 0777);
if (fd < 0) return;
@ -197,7 +194,7 @@ int event_handler(int pid, int ev, int a3, int a4, int *a5, int a6) {
//Write games playtime and reset the variable. If Adrenaline was in XMB, no need
//to write it again as it will be handled by the thread.
if (!isxmb) write_playtime(adrenaline_id);
snprintf(adrenaline_id,12,"pleasePLEASE");
snprintf(adrenaline_id,12,"pleasePLEAS");
pspemu = 0;
} else
write_playtime(id);