📄 rezfind.cpp
字号:
/****************************************************************************
;
; MODULE: REZFIND (.CPP)
;
; PURPOSE: Routines to find the rez files
;
; HISTORY: 08/11/98 [blg] This file was created
;
; COMMENT: Copyright (c) 1998, Monolith Productions Inc.
;
****************************************************************************/
// Includes...
#include "StdAfx.h"
#include "Io.h"
#include "RezFind.h"
#include "Resource.h"
// Globals...
char g_sGameRez[128] = { "" };
char g_sSoundRez[128] = { "" };
// Prototypes...
BOOL ExistRezFile(const char* sFile);
BOOL ExistRezDir(const char* sDir);
// Functions...
// ----------------------------------------------------------------------- //
//
// ROUTINE: FindRezFiles
//
// PURPOSE: Looks for game and sound rez files
//
// ----------------------------------------------------------------------- //
BOOL FindRezFiles(HINSTANCE hInst)
{
// Sanity checks...
if (!hInst) return(FALSE);
// Clear the strings...
g_sGameRez[0] = '\0';
g_sSoundRez[0] = '\0';
// Load the rez file base name to use...
CString sGameRezBase;
CString sGameRezFile;
CString sGameRezDir;
if (!sGameRezBase.LoadString(IDS_REZBASE))
{
return(FALSE);
}
sGameRezFile = sGameRezBase + ".rez";
sGameRezDir = sGameRezBase;
// Look for game rez in the current directory...
if (ExistRezFile(sGameRezFile))
{
strcpy(g_sGameRez, sGameRezFile);
}
// If necessary, look for a shogo directory in the current directory...
if (g_sGameRez[0] == '\0')
{
if (ExistRezDir(sGameRezDir))
{
strcpy(g_sGameRez, sGameRezDir);
}
}
// Look for sound.rez in the current directory...
if (ExistRezFile("sound.rez"))
{
strcpy(g_sSoundRez, "sound.rez");
}
// If necessary, look for a sound directory...
if (g_sSoundRez[0] == '\0')
{
if (ExistRezDir("sound"))
{
strcpy(g_sSoundRez, "sound");
}
}
// Determine if we have enough rez info...
if (g_sGameRez[0] == '\0')
{
return(FALSE);
}
// All done...
return(TRUE);
}
char* GetGameRezFile()
{
return(g_sGameRez);
}
char* GetSoundRezFile()
{
return(g_sSoundRez);
}
// ----------------------------------------------------------------------- //
//
// ROUTINE: ExistRezFile
//
// PURPOSE: Determines if the given file exists
//
// ----------------------------------------------------------------------- //
BOOL ExistRezFile(const char* sFile)
{
// Sanity checks...
if (!sFile) return(FALSE);
if (sFile[0] == '\0') return(FALSE);
// Check if this file exists...
struct _finddata_t c_file;
long hFile;
hFile = _findfirst(sFile, &c_file);
if (hFile == -1L) return(FALSE);
if (c_file.attrib & _A_SUBDIR)
{
return(FALSE);
}
// All done...
return(TRUE);
}
// ----------------------------------------------------------------------- //
//
// ROUTINE: ExistRezDir
//
// PURPOSE: Determines if the given directory exists
//
// ----------------------------------------------------------------------- //
BOOL ExistRezDir(const char* sDir)
{
// Sanity checks...
if (!sDir) return(FALSE);
if (sDir[0] == '\0') return(FALSE);
// Check if this directory exists...
struct _finddata_t c_file;
long hFile;
hFile = _findfirst(sDir, &c_file);
if (hFile == -1L) return(FALSE);
if (!(c_file.attrib & _A_SUBDIR))
{
return(FALSE);
}
// All done...
return(TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -