本文整理汇总了C++中VStr::IsNotEmpty方法的典型用法代码示例。如果您正苦于以下问题:C++ VStr::IsNotEmpty方法的具体用法?C++ VStr::IsNotEmpty怎么用?C++ VStr::IsNotEmpty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VStr
的用法示例。
在下文中一共展示了VStr::IsNotEmpty方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FindMainWad
static VStr FindMainWad(VStr MainWad)
{
// First check in IWAD directories.
for (int i = 0; i < IWadDirs.Num(); i++)
{
if (Sys_FileExists(IWadDirs[i] + "/" + MainWad))
{
return IWadDirs[i] + "/" + MainWad;
}
}
// Then look in the save directory.
if (fl_savedir.IsNotEmpty() && Sys_FileExists(fl_savedir + "/" + MainWad))
{
return fl_savedir + "/" + MainWad;
}
// Finally in base directory.
if (Sys_FileExists(fl_basedir + "/" + MainWad))
{
return fl_basedir + "/" + MainWad;
}
return VStr();
}
示例2: AddGameDir
static void AddGameDir(const VStr& dir)
{
guard(AddGameDir);
AddGameDir(fl_basedir, dir);
if (fl_savedir.IsNotEmpty())
{
AddGameDir(fl_savedir, dir);
}
fl_gamedir = dir;
unguard;
}
示例3: Info_SetValueForKey
void Info_SetValueForKey(VStr& s, const VStr& key, const VStr& value)
{
guard(Info_SetValueForKey);
if (s.Length() >= MAX_INFO_STRING)
{
Host_Error("Info_SetValueForKey: oversize infostring");
}
if (strchr(*key, '\\') || strchr(*value, '\\'))
{
GCon->Log("Can't use keys or values with a \\");
return;
}
if (strchr(*key, '\"') || strchr(*value, '\"'))
{
GCon->Log("Can't use keys or values with a \"");
return;
}
// this next line is kinda trippy
VStr v = Info_ValueForKey(s, key);
if (v.IsNotEmpty())
{
// Key exists, make sure we have enough room for new value, if we
// don't, don't change it!
if (value.Length() - v.Length() + s.Length() > MAX_INFO_STRING)
{
GCon->Log("Info string length exceeded");
return;
}
}
Info_RemoveKey(s, key);
if (value.IsEmpty())
return;
VStr newi = VStr("\\") + key + "\\" + value;
if (newi.Length() + s.Length() > MAX_INFO_STRING)
{
GCon->Log("Info string length exceeded");
return;
}
s = s + newi;
unguard;
}
示例4: FL_OpenFileWrite
VStream* FL_OpenFileWrite(const VStr& Name)
{
guard(FL_OpenFileWrite);
VStr TmpName;
if (fl_savedir.IsNotEmpty())
TmpName = fl_savedir + "/" + fl_gamedir + "/" + Name;
else
TmpName = fl_basedir + "/" + fl_gamedir + "/" + Name;
FL_CreatePath(TmpName.ExtractFilePath());
FILE *File = fopen(*TmpName, "wb");
if (!File)
{
return NULL;
}
return new VStreamFileWriter(File, GCon);
unguard;
}
示例5: ParseBase
static void ParseBase(const VStr& name)
{
guard(ParseBase);
TArray<version_t> games;
bool select_game;
VStr UseName;
if (fl_savedir.IsNotEmpty() && Sys_FileExists(fl_savedir + "/" + name))
{
UseName = fl_savedir + "/" + name;
}
else if (Sys_FileExists(fl_basedir + "/" + name))
{
UseName = fl_basedir + "/" + name;
}
else
{
return;
}
select_game = false;
VScriptParser* sc = new VScriptParser(UseName, FL_OpenSysFileRead(UseName));
while (!sc->AtEnd())
{
version_t &dst = games.Alloc();
dst.ParmFound = 0;
dst.FixVoices = false;
sc->Expect("game");
sc->ExpectString();
dst.GameDir = sc->String;
if (sc->Check("iwad"))
{
sc->ExpectString();
dst.MainWad = sc->String;
}
while (sc->Check("addfile"))
{
sc->ExpectString();
dst.AddFiles.Append(sc->String);
}
if (sc->Check("param"))
{
sc->ExpectString();
dst.ParmFound = GArgs.CheckParm(*sc->String);
if (dst.ParmFound)
{
select_game = true;
}
}
if (sc->Check("fixvoices"))
{
dst.FixVoices = true;
}
sc->Expect("end");
}
delete sc;
sc = NULL;
for (int gi = games.Num() - 1; gi >= 0; gi--)
{
version_t& G = games[gi];
if (select_game && !G.ParmFound)
{
continue;
}
if (fl_mainwad.IsNotEmpty())
{
if (G.MainWad.IsEmpty() || G.MainWad == fl_mainwad || select_game)
{
if (!bIwadAdded)
{
IWadIndex = SearchPaths.Num();
VStr MainWadPath = FindMainWad(fl_mainwad);
W_AddFile(MainWadPath, fl_savedir, G.FixVoices);
bIwadAdded = true;
}
for (int j = 0; j < G.AddFiles.Num(); j++)
{
W_AddFile(fl_basedir + "/" + G.AddFiles[j], fl_savedir,
false);
}
SetupGameDir(G.GameDir);
return;
}
continue;
}
if (G.MainWad.IsEmpty())
{
continue;
}
// Look for the main wad file.
VStr MainWadPath = FindMainWad(G.MainWad);
if (MainWadPath.IsNotEmpty())
{
fl_mainwad = G.MainWad;
if (!bIwadAdded)
{
IWadIndex = SearchPaths.Num();
W_AddFile(MainWadPath, fl_savedir, G.FixVoices);
//.........这里部分代码省略.........
示例6: C_Responder
//.........这里部分代码省略.........
// Clear line
c_iline.Init();
c_autocompleteIndex = -1;
return true;
// Scroll lines up
case K_PAGEUP:
for (i = 0; i < (GInput->ShiftDown ? 1 : 5); i++)
{
if (last_line > 1)
{
last_line--;
}
}
return true;
// Scroll lines down
case K_PAGEDOWN:
for (i = 0; i < (GInput->ShiftDown ? 1 : 5); i++)
{
if (last_line < num_lines)
{
last_line++;
}
}
return true;
// Go to first line
case K_HOME:
last_line = 1;
return true;
// Go to last line
case K_END:
last_line = num_lines;
return true;
// Command history up
case K_UPARROW:
c_history_current++;
c_iline.Init();
if (c_history_current >= c_history_size)
{
c_history_current = c_history_size;
}
else
{
cp = c_history[(c_history_last +
c_history_current) % MAXHISTORY];
while (*cp) c_iline.AddChar(*cp++);
}
c_autocompleteIndex = -1;
return true;
// Command history down
case K_DOWNARROW:
c_history_current--;
c_iline.Init();
if (c_history_current < 0)
{
c_history_current = -1;
}
else
{
cp = c_history[(c_history_last +
c_history_current) % MAXHISTORY];
while (*cp) c_iline.AddChar(*cp++);
}
c_autocompleteIndex = -1;
return true;
// Auto complete
case K_TAB:
if (!c_iline.Data[0])
return true;
if (c_autocompleteIndex == -1)
{
c_autocompleteString = c_iline.Data;
}
str = VCommand::GetAutoComplete(c_autocompleteString,
c_autocompleteIndex, GInput->ShiftDown ? true : false);
if (str.IsNotEmpty())
{
c_iline.Init();
for (i = 0; i < (int)str.Length(); i++)
c_iline.AddChar(str[i]);
c_iline.AddChar(' ');
}
return true;
// Add character to input line
default:
eat = c_iline.Key((byte)ev->data1);
if (eat)
c_autocompleteIndex = -1;
return eat;
}
}