From 137746e4427659e00004e16dc2c0d9d33af8115b Mon Sep 17 00:00:00 2001 From: Kp Date: Thu, 18 Dec 2014 04:12:38 +0000 Subject: [PATCH] List initialize credits to zero --- common/include/physfsx.h | 3 +++ similar/main/credits.cpp | 28 +++++++--------------------- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/common/include/physfsx.h b/common/include/physfsx.h index 1e6eb2aa7..61855eaa9 100644 --- a/common/include/physfsx.h +++ b/common/include/physfsx.h @@ -262,6 +262,9 @@ struct PHYSFSX_gets_line_t { PHYSFSX_gets_line_t() = default; PHYSFSX_gets_line_t(const PHYSFSX_gets_line_t &) = delete; + PHYSFSX_gets_line_t &operator=(const PHYSFSX_gets_line_t &) = delete; + PHYSFSX_gets_line_t(PHYSFSX_gets_line_t &&) = default; + PHYSFSX_gets_line_t &operator=(PHYSFSX_gets_line_t &&) = default; struct line_t { char buf[N]; diff --git a/similar/main/credits.cpp b/similar/main/credits.cpp index d842fe508..c16b353f9 100644 --- a/similar/main/credits.cpp +++ b/similar/main/credits.cpp @@ -56,6 +56,8 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "args.h" #endif +#include "compiler-make_unique.h" + #define ROW_SPACING (SHEIGHT / 17) #define NUM_LINES 20 //14 #if defined(DXX_BUILD_DESCENT_I) @@ -221,27 +223,12 @@ void credits_show(const char *credits_filename) { window *wind; int pcx_error; - char * tempp; - char filename[32]; + const char *filename = CREDITS_FILE; palette_array_t backdrop_palette; - std::unique_ptr cr(new credits); - - cr->have_bin_file = 0; - cr->buffer_line = 0; - cr->first_line_offset = 0; - cr->extra_inc = 0; - cr->done = 0; - cr->row = 0; - - // Clear out all tex buffer lines. - for (int i=0; ibuffer[i][0] = 0; - - sprintf(filename, "%s", CREDITS_FILE); - cr->have_bin_file = 0; + auto cr = make_unique({}); if (credits_filename) { - strcpy(filename,credits_filename); + filename = credits_filename; cr->have_bin_file = 1; } cr->file = PHYSFSX_openReadBuffered( filename ); @@ -253,9 +240,8 @@ void credits_show(const char *credits_filename) return; //ok to not find special filename } - tempp = strchr(filename, '.'); - *tempp = '\0'; - sprintf(nfile, "%s.txb", filename); + auto tempp = strchr(filename, '.'); + snprintf(nfile, sizeof(nfile), "%.*stxb", static_cast(tempp - filename + 1), filename); cr->file = PHYSFSX_openReadBuffered(nfile); if (cr->file == NULL) Error("Missing CREDITS.TEX and CREDITS.TXB file\n");