diff --git a/source/blood/src/db.cpp b/source/blood/src/db.cpp index 99f5a47cf..190c7d786 100644 --- a/source/blood/src/db.cpp +++ b/source/blood/src/db.cpp @@ -548,12 +548,9 @@ MAPHEADER2 byte_19AE44; unsigned int dbReadMapCRC(const char *pPath) { - char name2[BMAX_PATH]; byte_1A76C7 = 0; byte_1A76C8 = 0; - Bstrncpy(name2, pPath, BMAX_PATH); - Bstrupr(name2); DICTNODE* pNode; pNode = gSysRes.Lookup(pPath, "MAP"); if (!pNode) @@ -604,7 +601,7 @@ const int nXSpriteSize = 56; const int nXWallSize = 24; int dbLoadMap(const char *pPath, int *pX, int *pY, int *pZ, short *pAngle, short *pSector, unsigned int *pCRC) { - char name2[BMAX_PATH]; int16_t tpskyoff[256]; + int16_t tpskyoff[256]; memset(show2dsector, 0, sizeof(show2dsector)); memset(show2dwall, 0, sizeof(show2dwall)); memset(show2dsprite, 0, sizeof(show2dsprite)); @@ -615,8 +612,6 @@ int dbLoadMap(const char *pPath, int *pX, int *pY, int *pZ, short *pAngle, short Polymost_prepare_loadboard(); #endif - Bstrncpy(name2, pPath, BMAX_PATH); - Bstrupr(name2); DICTNODE* pNode; pNode = gSysRes.Lookup(pPath, "MAP"); diff --git a/source/blood/src/messages.cpp b/source/blood/src/messages.cpp index 2c2ac7a2f..56e4331b9 100644 --- a/source/blood/src/messages.cpp +++ b/source/blood/src/messages.cpp @@ -635,7 +635,6 @@ bool CCheatMgr::Check(char *pzString) { char buffer[80]; strcpy(buffer, pzString); - Bstrupr(buffer); for (size_t i = 0; i < strlen(pzString); i++) buffer[i]++; for (int i = 0; i < 36; i++) @@ -643,7 +642,7 @@ bool CCheatMgr::Check(char *pzString) int nCheatLen = strlen(s_CheatInfo[i].pzString); if (s_CheatInfo[i].flags & 1) { - if (!strncmp(buffer, s_CheatInfo[i].pzString, nCheatLen)) + if (!strnicmp(buffer, s_CheatInfo[i].pzString, nCheatLen)) { Process(s_CheatInfo[i].id, buffer+nCheatLen); return true; diff --git a/source/blood/src/view.cpp b/source/blood/src/view.cpp index f110cbe63..73495b6ea 100644 --- a/source/blood/src/view.cpp +++ b/source/blood/src/view.cpp @@ -1346,10 +1346,9 @@ void viewDrawPlayerSlots(void) } } -char gTempStr[128]; - void viewDrawPlayerFrags(void) { + FString gTempStr; viewDrawPlayerSlots(); for (int i = 0, p = connecthead; p >= 0; i++, p = connectpoint2[p]) { @@ -1358,18 +1357,19 @@ void viewDrawPlayerFrags(void) int col = gPlayer[p].teamId & 3; char* name = gProfile[p].name; if (gProfile[p].skill == 2) - sprintf(gTempStr, "%s", name); + gTempStr.Format("%s", name); else - sprintf(gTempStr, "%s [%d]", name, gProfile[p].skill); - Bstrupr(gTempStr); + gTempStr.Format("%s [%d]", name, gProfile[p].skill); + gTempStr.ToUpper(); viewDrawText(4, gTempStr, x + 4, y + 1, -128, 11 + col, 0, 0); - sprintf(gTempStr, "%2d", gPlayer[p].fragCount); + gTempStr.Format("%2d", gPlayer[p].fragCount); viewDrawText(4, gTempStr, x + 76, y + 1, -128, 11 + col, 2, 0); } } void viewDrawPlayerFlags(void) { + FString gTempStr; viewDrawPlayerSlots(); for (int i = 0, p = connecthead; p >= 0; i++, p = connectpoint2[p]) { @@ -1378,13 +1378,13 @@ void viewDrawPlayerFlags(void) int col = gPlayer[p].teamId & 3; char* name = gProfile[p].name; if (gProfile[p].skill == 2) - sprintf(gTempStr, "%s", name); + gTempStr.Format("%s", name); else - sprintf(gTempStr, "%s [%d]", name, gProfile[p].skill); - Bstrupr(gTempStr); + gTempStr.Format("%s [%d]", name, gProfile[p].skill); + gTempStr.ToUpper(); viewDrawText(4, gTempStr, x + 4, y + 1, -128, 11 + col, 0, 0); - sprintf(gTempStr, "F"); + gTempStr.Format("F"); x += 76; if (gPlayer[p].hasFlag & 2) { @@ -1399,6 +1399,7 @@ void viewDrawPlayerFlags(void) void viewDrawCtfHudVanilla(ClockTicks arg) { + FString gTempStr; int x = 1, y = 1; if (dword_21EFD0[0] == 0 || ((int)totalclock & 8)) { @@ -1406,7 +1407,7 @@ void viewDrawCtfHudVanilla(ClockTicks arg) dword_21EFD0[0] = dword_21EFD0[0] - arg; if (dword_21EFD0[0] < 0) dword_21EFD0[0] = 0; - sprintf(gTempStr, "%-3d", dword_21EFB0[0]); + gTempStr.Format("%-3d", dword_21EFB0[0]); viewDrawText(0, gTempStr, x, y + 10, -128, 10, 0, 0, 256); } x = 319; @@ -1416,7 +1417,7 @@ void viewDrawCtfHudVanilla(ClockTicks arg) dword_21EFD0[1] = dword_21EFD0[1] - arg; if (dword_21EFD0[1] < 0) dword_21EFD0[1] = 0; - sprintf(gTempStr, "%3d", dword_21EFB0[1]); + gTempStr.Format("%3d", dword_21EFB0[1]); viewDrawText(0, gTempStr, x, y + 10, -128, 7, 2, 0, 512); } } @@ -1673,7 +1674,8 @@ void UpdateStatusBar(ClockTicks arg) TileHGauge(2208, 44, 190, pPlayer->armor[2], 3200); DrawStatNumber("%3d", pPlayer->armor[2]>>4, 2230, 50, 193, 0, 0); } - sprintf(gTempStr, "v%s", GetVersionString()); + FString gTempStr; + gTempStr.Format("v%s", GetVersionString()); viewDrawText(3, gTempStr, 20, 191, 32, 0, 1, 0); for (int i = 0; i < 6; i++) @@ -3532,7 +3534,7 @@ RORHACK: } else if (gView != gMe) { - sprintf(gTempStr, "] %s [", gProfile[gView->nPlayer].name); + FStringf gTempStr("] %s [", gProfile[gView->nPlayer].name); viewDrawText(0, gTempStr, 160, 10, 0, 0, 1, 0); } if (errMsg[0]) diff --git a/source/build/include/compat.h b/source/build/include/compat.h index 864ad92c2..fc984603c 100644 --- a/source/build/include/compat.h +++ b/source/build/include/compat.h @@ -808,30 +808,9 @@ typedef struct { ////////// Language tricks that depend on size_t ////////// -#if defined _MSC_VER -# define ARRAY_SIZE(arr) _countof(arr) -#elif defined HAVE_CONSTEXPR -template -static FORCE_INLINE constexpr size_t ARRAY_SIZE(T const (&)[N]) noexcept -{ - return N; -} -#elif defined __cplusplus -struct bad_arg_to_ARRAY_SIZE -{ - class Is_pointer; // incomplete - class Is_array {}; - template - static Is_pointer check_type(const T*, const T* const*); - static Is_array check_type(const void*, const void*); -}; -# define ARRAY_SIZE(arr) ( \ - 0 * sizeof(reinterpret_cast(arr)) + \ - 0 * sizeof(::bad_arg_to_ARRAY_SIZE::check_type((arr), &(arr))) + \ - sizeof(arr) / sizeof((arr)[0]) ) -#else -# define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) -#endif +#include "basics.h" + +# define ARRAY_SIZE(arr) countof(arr) #define ARRAY_SSIZE(arr) (native_t)ARRAY_SIZE(arr) @@ -961,9 +940,6 @@ static FORCE_INLINE CONSTEXPR uint64_t B_PASS64(uint64_t const x) { return x; } # define B_BIG16(x) B_PASS16(x) #endif -// TODO: Determine when, if ever, we should use the bit-shift-and-mask variants -// due to alignment issues or performance gains. -#if 1 static FORCE_INLINE void B_BUF16(void * const buf, uint16_t const x) { *(uint16_t *) buf = x; } static FORCE_INLINE void B_BUF32(void * const buf, uint32_t const x) { *(uint32_t *) buf = x; } static FORCE_INLINE void B_BUF64(void * const buf, uint64_t const x) { *(uint64_t *) buf = x; } @@ -971,54 +947,6 @@ static FORCE_INLINE void B_BUF64(void * const buf, uint64_t const x) { *(uint64_ static FORCE_INLINE CONSTEXPR uint16_t B_UNBUF16(void const * const buf) { return *(uint16_t const *) buf; } static FORCE_INLINE CONSTEXPR uint32_t B_UNBUF32(void const * const buf) { return *(uint32_t const *) buf; } static FORCE_INLINE CONSTEXPR uint64_t B_UNBUF64(void const * const buf) { return *(uint64_t const *) buf; } -#else -static FORCE_INLINE void B_BUF16(void * const vbuf, uint16_t const x) -{ - uint8_t * const buf = (uint8_t *) vbuf; - buf[0] = (x & 0x00FF); - buf[1] = (x & 0xFF00) >> 8; -} -static FORCE_INLINE void B_BUF32(void * const vbuf, uint32_t const x) -{ - uint8_t * const buf = (uint8_t *) vbuf; - buf[0] = (x & 0x000000FF); - buf[1] = (x & 0x0000FF00) >> 8; - buf[2] = (x & 0x00FF0000) >> 16; - buf[3] = (x & 0xFF000000) >> 24; -} -# if 0 -// i686-apple-darwin11-llvm-gcc-4.2 complains "integer constant is too large for 'long' type" -static FORCE_INLINE void B_BUF64(void * const vbuf, uint64_t const x) -{ - uint8_t * const buf = (uint8_t *) vbuf; - buf[0] = (x & 0x00000000000000FF); - buf[1] = (x & 0x000000000000FF00) >> 8; - buf[2] = (x & 0x0000000000FF0000) >> 16; - buf[3] = (x & 0x00000000FF000000) >> 24; - buf[4] = (x & 0x000000FF00000000) >> 32; - buf[5] = (x & 0x0000FF0000000000) >> 40; - buf[6] = (x & 0x00FF000000000000) >> 48; - buf[7] = (x & 0xFF00000000000000) >> 56; -} -# endif - -static FORCE_INLINE uint16_t B_UNBUF16(void const * const vbuf) -{ - uint8_t const * const buf = (uint8_t const *) vbuf; - return (buf[1] << 8) | (buf[0]); -} -static FORCE_INLINE uint32_t B_UNBUF32(void const * const vbuf) -{ - uint8_t const * const buf = (uint8_t const *) vbuf; - return (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | (buf[0]); -} -static FORCE_INLINE uint64_t B_UNBUF64(void const * const vbuf) -{ - uint8_t const * const buf = (uint8_t const *) vbuf; - return ((uint64_t)buf[7] << 56) | ((uint64_t)buf[6] << 48) | ((uint64_t)buf[5] << 40) | - ((uint64_t)buf[4] << 32) | (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | (buf[0]); -} -#endif ////////// Abstract data operations ////////// @@ -1174,18 +1102,6 @@ int32_t Bcorrectfilename(char *filename, int32_t removefn); char *Bstrtoken(char *s, const char *delim, char **ptrptr, int chop); char *Bstrtolower(char *str); -#ifdef _WIN32 -# ifdef _MSC_VER -# define Bstrlwr _strlwr -# define Bstrupr _strupr -# else -# define Bstrlwr strlwr -# define Bstrupr strupr -# endif -#else -char *Bstrlwr(char *); -char *Bstrupr(char *); -#endif ////////// Miscellaneous ////////// diff --git a/source/build/src/compat.cpp b/source/build/src/compat.cpp index 7c411ef24..496d9a62a 100644 --- a/source/build/src/compat.cpp +++ b/source/build/src/compat.cpp @@ -6,28 +6,6 @@ #include "compat.h" #include "debugbreak.h" -#ifdef _WIN32 -# define NEED_SHLOBJ_H -# include "windows_inc.h" -#elif __APPLE__ -# include "osxbits.h" -#endif - -#ifndef USE_PHYSFS -#if defined(_MSC_VER) -# include -#else -# include -#endif -#endif - -#if defined __linux || defined EDUKE32_BSD -# include // for dirname() -#endif -#if defined EDUKE32_BSD -# include // for PATH_MAX -# include // for sysctl() to get path to executable -#endif #include "baselayer.h" @@ -161,7 +139,7 @@ char *Bstrtolower(char *str) if (!str) return NULL; - int len = Bstrlen(str); + int len = strlen(str); if (len <= 0) return str; @@ -170,28 +148,9 @@ char *Bstrtolower(char *str) do { - *(str + i) = Btolower(*(str + i)); + *(str + i) = tolower(*(str + i)); i++; } while (--len); return str; } - -#if !defined(_WIN32) -char *Bstrlwr(char *s) -{ - if (!s) return s; - char *t = s; - while (*t) { *t = Btolower(*t); t++; } - return s; -} - -char *Bstrupr(char *s) -{ - if (!s) return s; - char *t = s; - while (*t) { *t = Btoupper(*t); t++; } - return s; -} -#endif - diff --git a/source/duke3d/src/gamevars.cpp b/source/duke3d/src/gamevars.cpp index 406a89a89..c081f52ca 100644 --- a/source/duke3d/src/gamevars.cpp +++ b/source/duke3d/src/gamevars.cpp @@ -1075,8 +1075,8 @@ static int32_t G_StaticToDynamicSound(int32_t const sound) } while (0) #else # define ADDWEAPONVAR(Weapidx, Membname) do { \ - Bsprintf(aszBuf, "WEAPON%d_" #Membname, Weapidx); \ - Bstrupr(aszBuf); \ + FStringf aszBuf("WEAPON%d_" #Membname, Weapidx); \ + aszBuf.ToUpper(); \ Gv_NewVar(aszBuf, weapondefaults[Weapidx].Membname, GAMEVAR_PERPLAYER | GAMEVAR_SYSTEM); \ } while (0) #endif diff --git a/source/exhumed/src/exhumed.cpp b/source/exhumed/src/exhumed.cpp index 03fb934b4..f81e8c62a 100644 --- a/source/exhumed/src/exhumed.cpp +++ b/source/exhumed/src/exhumed.cpp @@ -2394,14 +2394,8 @@ GAMELOOP: nBestLevel = levelnew - 1; goto LOOP2; - case 3: // When selecting 'Training' from ingame menu when already playing a level - if (levelnum == 0 || !Query(2, 4, "Quit current game?", "Y/N", 'Y', 13, 'N', 27)) - { - levelnew = 0; - levelnum = 0; - - goto STARTGAME2; - } + case 3: + goto STARTGAME2; case 6: goto GAMELOOP; } @@ -2762,112 +2756,6 @@ void EraseScreen(int nVal) videoClearScreen(nVal); } -int Query(short nLines, short nKeys, ...) -{ - short i; - - char strings[20][80]; - char keys[20]; - - va_list args; - - short bPrevClip = bClip; - NoClip(); - - short nWidth = 0; - - va_start(args, nKeys); - - for (i = 0; i < nLines; i++) - { - char *str = va_arg(args, char*); - strcpy(strings[i], str); - Bstrupr(strings[i]); - - int strWidth = MyGetStringWidth(strings[i]); - - if (strWidth > nWidth) { - nWidth = strWidth; - } - } - - for (i = 0; i < nKeys; i++) { - keys[i] = (char)va_arg(args, int); - } - - va_end(args); - - int nHeight = (nLines + 1) * 10; - int y1 = (200 - nHeight) / 2; - int yB = y1; - - // add some padding to left and right sides of text in the box - nWidth += 30; - - int x1 = (320 - nWidth) / 2; - int x2 = x1 + nWidth; - - // if (bHiRes) - // { - // x1 *= 2; - // y1 *= 2; - // nHeight *= 2; - // x2 *= 2; - // } - - y1 = scale(y1, ydim, 200); - nHeight = scale(nHeight, ydim, 200); - x1 = scale(x1-160, ydim*4/3, 320)+xdim/2; - x2 = scale(x2-160, ydim*4/3, 320)+xdim/2; - - // draw background box that the text sits in - for (i = 0; i < nHeight; i++) { - renderDrawLine(x1 << 12, (y1 + i) << 12, x2 << 12, (y1 + i) << 12, overscanindex); - } - - y1 = yB + 5; - - // draw each line of text - for (i = 0; i < nLines; i++) { - myprintext((320 - MyGetStringWidth(strings[i])) / 2, (y1 + i*10) , strings[i], 0); - } - - videoNextPage(); - - if (bPrevClip) { - Clip(); - } - - i = 0; - - if (nKeys) - { - inputState.keyFlushChars(); - - while (1) - { - HandleAsync(); - - char key = toupper(inputState.keyGetChar()); - - for (i = 0; i < nKeys; i++) - { - if (keys[i] == 0 || key == keys[i]) - { - RefreshStatus(); - ClearAllKeys(); - return i; - } - } - } - } - - RefreshStatus(); - ClearAllKeys(); - - return i; -} - void InitSpiritHead() { char filename[20]; diff --git a/source/sw/CMakeLists.txt b/source/sw/CMakeLists.txt index 9e08df46b..287891785 100644 --- a/source/sw/CMakeLists.txt +++ b/source/sw/CMakeLists.txt @@ -98,7 +98,6 @@ set( PCH_SOURCES src/spike.cpp src/sprite.cpp src/sumo.cpp - src/swconfig.cpp src/sync.cpp src/text.cpp src/track.cpp diff --git a/source/sw/src/cheats.cpp b/source/sw/src/cheats.cpp index 27db405cd..c929c7a5f 100644 --- a/source/sw/src/cheats.cpp +++ b/source/sw/src/cheats.cpp @@ -50,7 +50,6 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms BEGIN_SW_NS SWBOOL CheatInputMode = FALSE; -char CheatInputString[256]; SWBOOL EveryCheat = FALSE; SWBOOL ResCheat = FALSE; @@ -480,17 +479,14 @@ void CheatInput(void) //if (CommEnabled) // return; - - strcpy(CheatInputString,MessageInputString); - - // make sure string is lower cased - Bstrlwr(CheatInputString); + FString CheatInputString = MessageInputString; + CheatInputString.ToLower(); // check for at least one single match for (i = 0; i < SIZ(ci); i++) { // compare without the NULL - if (cheatcmp(CheatInputString, ci[i].CheatInputCode, strlen(CheatInputString)) == 0) + if (cheatcmp(CheatInputString, ci[i].CheatInputCode, CheatInputString.Len()) == 0) { // if they are equal in length then its a complet match diff --git a/source/sw/src/network.cpp b/source/sw/src/network.cpp index d404caf65..d4aefc507 100644 --- a/source/sw/src/network.cpp +++ b/source/sw/src/network.cpp @@ -458,6 +458,7 @@ InitNetPlayerOptions(void) } } +#if 0 void SendMulitNameChange(char *new_name) { @@ -468,7 +469,6 @@ SendMulitNameChange(char *new_name) if (!CommEnabled) return; - Bstrupr(new_name); strcpy(pp->PlayerName, new_name); playername = new_name; SetRedrawScreen(pp); @@ -484,6 +484,7 @@ SendMulitNameChange(char *new_name) } } } +#endif void SendVersion(int version) diff --git a/source/sw/src/scrip2.cpp b/source/sw/src/scrip2.cpp index b1aad0ae2..fdb0256f7 100644 --- a/source/sw/src/scrip2.cpp +++ b/source/sw/src/scrip2.cpp @@ -100,9 +100,6 @@ SWBOOL LoadScriptFile(const char *filename) scriptbuffer[readsize] = '\0'; - // Convert filebuffer to all upper case - //Bstrupr(scriptbuffer); - script_p = scriptbuffer; scriptend_p = script_p + size; scriptline = 1; diff --git a/source/sw/src/swconfig.cpp b/source/sw/src/swconfig.cpp deleted file mode 100644 index b182c99d8..000000000 --- a/source/sw/src/swconfig.cpp +++ /dev/null @@ -1,106 +0,0 @@ -//------------------------------------------------------------------------- -/* -Copyright (C) 1997, 2005 - 3D Realms Entertainment - -This file is part of Shadow Warrior version 1.2 - -Shadow Warrior is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -Original Source: 1997 - Frank Maddin and Jim Norwood -Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms -*/ -//------------------------------------------------------------------------- -#include "ns.h" -#include "build.h" - -#include "keys.h" -#include "names2.h" -#include "panel.h" -#include "game.h" - -//#include "settings.h" -#include "mytypes.h" -#include "gamedefs.h" -#include "common_game.h" -#include "config.h" -#include "gamecontrol.h" - -#include "rts.h" - -BEGIN_SW_NS - -short GamePlays = 0; - -/* -=================== -= -= SetGameDefaults -= -=================== -*/ - -void SetGameDefaults(void) -{ -} - -extern SWBOOL DrawScreen; - -void EncodePassword(char *pw) -{ - int bak_DrawScreen = DrawScreen; - int bak_randomseed = randomseed; - int i; - int len; - - DrawScreen = FALSE; - randomseed = 1234L; - - Bstrupr(pw); - - len = strlen(pw); - for (i = 0; i < len; i++) - pw[i] += RANDOM_RANGE(26); - - randomseed = bak_randomseed; - DrawScreen = bak_DrawScreen; -} - -void DecodePassword(char *pw) -{ - int bak_DrawScreen = DrawScreen; - int bak_randomseed = randomseed; - int i; - int len; - - DrawScreen = FALSE; - randomseed = 1234L; - - Bstrupr(pw); - - len = strlen(pw); - for (i = 0; i < len; i++) - pw[i] -= RANDOM_RANGE(26); - - randomseed = bak_randomseed; - DrawScreen = bak_DrawScreen; -} - - -void TermSetup(void) -{ - extern SWBOOL BotMode; -} -END_SW_NS