From 90148f79eb83cc43faf88036cebde925cbe2b754 Mon Sep 17 00:00:00 2001 From: wolfy852 Date: Wed, 9 Jan 2019 15:35:51 -0600 Subject: [PATCH 1/2] If kmd2.dat isn't found in srb2home, search the game's directory for it --- src/hardware/hw_md2.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/hardware/hw_md2.c b/src/hardware/hw_md2.c index 0267770e..0568151a 100644 --- a/src/hardware/hw_md2.c +++ b/src/hardware/hw_md2.c @@ -818,9 +818,13 @@ void HWR_InitMD2(void) if (!f) { - CONS_Printf("%s %s\n", M_GetText("Error while loading kmd2.dat:"), strerror(errno)); - nomd2s = true; - return; + f = fopen(va("%s"PATHSEP"%s", srb2path, "kmd2.dat"), "rt"); + if (!f) + { + CONS_Printf("%s %s\n", M_GetText("Error while loading kmd2.dat:"), strerror(errno)); + nomd2s = true; + return; + } } while (fscanf(f, "%19s %31s %f %f", name, filename, &scale, &offset) == 4) { @@ -885,9 +889,13 @@ void HWR_AddPlayerMD2(int skin) // For MD2's that were added after startup if (!f) { - CONS_Printf("Error while loading kmd2.dat\n"); - nomd2s = true; - return; + f = fopen(va("%s"PATHSEP"%s", srb2path, "kmd2.dat"), "rt"); + if (!f) + { + CONS_Printf("%s %s\n", M_GetText("Error while loading kmd2.dat:"), strerror(errno)); + nomd2s = true; + return; + } } // Check for any MD2s that match the names of player skins! @@ -931,9 +939,13 @@ void HWR_AddSpriteMD2(size_t spritenum) // For MD2s that were added after startu if (!f) { - CONS_Printf("Error while loading kmd2.dat\n"); - nomd2s = true; - return; + f = fopen(va("%s"PATHSEP"%s", srb2path, "kmd2.dat"), "rt"); + if (!f) + { + CONS_Printf("%s %s\n", M_GetText("Error while loading kmd2.dat:"), strerror(errno)); + nomd2s = true; + return; + } } // Check for any MD2s that match the names of player skins! From dbb7267f228dd4f8825c96aa4b9c873c5e340842 Mon Sep 17 00:00:00 2001 From: wolfy852 Date: Wed, 9 Jan 2019 15:53:59 -0600 Subject: [PATCH 2/2] Missed a few spots --- src/hardware/hw_md2.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/hardware/hw_md2.c b/src/hardware/hw_md2.c index 0568151a..63ef8098 100644 --- a/src/hardware/hw_md2.c +++ b/src/hardware/hw_md2.c @@ -300,8 +300,12 @@ static md2_model_t *md2_readModel(const char *filename) file = fopen(va("%s"PATHSEP"%s", srb2home, filename), "rb"); if (!file) { - free(model); - return 0; + file = fopen(va("%s"PATHSEP"%s", srb2path, filename), "rb"); + if (!file) + { + free(model); + return 0; + } } // initialize model and read header @@ -500,8 +504,12 @@ static GrTextureFormat_t PNG_Load(const char *filename, int *w, int *h, GLPatch_ png_FILE = fopen(pngfilename, "rb"); if (!png_FILE) { + pngfilename = va("%s"PATHSEP"md2"PATHSEP"%s", srb2path, filename); + FIL_ForceExtension(pngfilename, ".png"); + png_FILE = fopen(pngfilename, "rb"); //CONS_Debug(DBG_RENDER, "M_SavePNG: Error on opening %s for loading\n", filename); - return 0; + if (!png_FILE) + return 0; } png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, @@ -628,7 +636,13 @@ static GrTextureFormat_t PCX_Load(const char *filename, int *w, int *h, FIL_ForceExtension(pcxfilename, ".pcx"); file = fopen(pcxfilename, "rb"); if (!file) - return 0; + { + pcxfilename = va("%s"PATHSEP"md2"PATHSEP"%s", srb2path, filename); + FIL_ForceExtension(pcxfilename, ".pcx"); + file = fopen(pcxfilename, "rb"); + if (!file) + return 0; + } if (fread(&header, sizeof (PcxHeader), 1, file) != 1) {