From 0fffa3d2ce4371a24bfe74a054bb81e758ff4248 Mon Sep 17 00:00:00 2001 From: d0k3 Date: Wed, 21 Dec 2016 00:31:21 +0100 Subject: [PATCH] Cleanup virtual.c source code --- source/virtual/vgame.c | 1 - source/virtual/virtual.c | 8 +++----- source/virtual/virtual.h | 1 - source/virtual/vnand.c | 2 +- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/source/virtual/vgame.c b/source/virtual/vgame.c index 6caa4cf..e1d752d 100644 --- a/source/virtual/vgame.c +++ b/source/virtual/vgame.c @@ -363,7 +363,6 @@ int ReadNcchImageBytes(u8* buffer, u64 offset, u64 count) { bool OpenVGameDir(VirtualDir* vdir, VirtualFile* ventry) { // build vdir object vdir->index = -1; - vdir->virtual_src = VRT_GAME; if (!ventry) { // root dir vdir->offset = 0; vdir->size = GetMountSize(); diff --git a/source/virtual/virtual.c b/source/virtual/virtual.c index 8a12905..5d8ee80 100644 --- a/source/virtual/virtual.c +++ b/source/virtual/virtual.c @@ -34,7 +34,7 @@ bool CheckVirtualDrive(const char* path) { } bool ReadVirtualDir(VirtualFile* vfile, VirtualDir* vdir) { - u32 virtual_src = vdir->virtual_src; + u32 virtual_src = vdir->flags & VRT_SOURCE; bool ret = false; if (virtual_src & (VRT_SYSNAND|VRT_EMUNAND|VRT_IMGNAND|VRT_XORPAD)) { ret = ReadVNandDir(vfile, vdir); @@ -57,7 +57,6 @@ bool OpenVirtualRoot(VirtualDir* vdir, u32 virtual_src) { } vdir->index = -1; vdir->flags |= VFLAG_DIR|virtual_src; - vdir->virtual_src = virtual_src; return true; } @@ -74,7 +73,6 @@ bool OpenVirtualDir(VirtualDir* vdir, VirtualFile* ventry) { vdir->flags = ventry->flags; } vdir->flags |= virtual_src; - vdir->virtual_src = virtual_src; return true; } @@ -96,7 +94,7 @@ bool GetVirtualFile(VirtualFile* vfile, const char* path) { char* name; VirtualDir vdir; if (!OpenVirtualRoot(&vdir, virtual_src)) return false; - for (name = strtok(lpath + 3, "/"); name && vdir.virtual_src; name = strtok(NULL, "/")) { + for (name = strtok(lpath + 3, "/"); name && vdir.flags; name = strtok(NULL, "/")) { if (!(vdir.flags & VFLAG_LV3)) { // standard method while (true) { if (!ReadVirtualDir(vfile, &vdir)) return false; @@ -109,7 +107,7 @@ bool GetVirtualFile(VirtualFile* vfile, const char* path) { return false; } if (!OpenVirtualDir(&vdir, vfile)) - vdir.virtual_src = 0; + vdir.flags = 0; } return (name == NULL); // if name is NULL, this succeeded diff --git a/source/virtual/virtual.h b/source/virtual/virtual.h index 09af1b6..1e1dd69 100644 --- a/source/virtual/virtual.h +++ b/source/virtual/virtual.h @@ -40,7 +40,6 @@ typedef struct { u64 offset; u64 size; u32 flags; - u32 virtual_src; } __attribute__((packed)) VirtualDir; u32 GetVirtualSource(const char* path); diff --git a/source/virtual/vnand.c b/source/virtual/vnand.c index 5dcfb09..2931996 100644 --- a/source/virtual/vnand.c +++ b/source/virtual/vnand.c @@ -37,7 +37,7 @@ bool CheckVNandDrive(u32 nand_src) { bool ReadVNandDir(VirtualFile* vfile, VirtualDir* vdir) { // uses a generic vdir object generated in virtual.c int n_templates = sizeof(vNandFileTemplates) / sizeof(VirtualFile); const VirtualFile* templates = vNandFileTemplates; - u32 nand_src = vdir->virtual_src; + u32 nand_src = vdir->flags & VRT_SOURCE; while (++vdir->index < n_templates) { // get NAND type (O3DS/N3DS/NO3DS), workaround for empty EmuNAND