Replace NULL by nullptr in C++ sources

We don't support pre-C++0x any more, so nullptr should be fine everywhere (except in the plain C source files)
directional-lights
Sven Eberhardt 2016-11-02 19:58:02 -04:00
parent 54e8c14666
commit ebda8193ef
319 changed files with 3151 additions and 3158 deletions

View File

@ -30,8 +30,8 @@ public:
const char *GetData() const { return Data.getData(); } const char *GetData() const { return Data.getData(); }
const StdStrBuf & GetDataBuf() const { return Data; } const StdStrBuf & GetDataBuf() const { return Data; }
size_t GetDataSize() const { return Data.getLength(); } size_t GetDataSize() const { return Data.getLength(); }
bool Load(C4Group &hGroup, const char *szFilename, const char *szLanguage=NULL); bool Load(C4Group &hGroup, const char *szFilename, const char *szLanguage=nullptr);
bool Load(C4GroupSet &hGroupSet, const char *szFilename, const char *szLanguage=NULL); bool Load(C4GroupSet &hGroupSet, const char *szFilename, const char *szLanguage=nullptr);
bool GetLanguageString(const char *szLanguage, StdStrBuf &rTarget); bool GetLanguageString(const char *szLanguage, StdStrBuf &rTarget);
protected: protected:
// The component host's Data has changed. This callback can be used by // The component host's Data has changed. This callback can be used by

View File

@ -42,11 +42,11 @@ const char *C4CFN_FLS[] =
C4CFN_ScenarioSections, C4FLS_Section, C4CFN_ScenarioSections, C4FLS_Section,
C4CFN_Sound, C4FLS_Sound, C4CFN_Sound, C4FLS_Sound,
C4CFN_Music, C4FLS_Music, C4CFN_Music, C4FLS_Music,
NULL, NULL nullptr, nullptr
}; };
#ifdef _DEBUG #ifdef _DEBUG
const char *szCurrAccessedEntry = NULL; const char *szCurrAccessedEntry = nullptr;
int iC4GroupRewindFilePtrNoWarn=0; int iC4GroupRewindFilePtrNoWarn=0;
#endif #endif
@ -58,8 +58,8 @@ int iC4GroupRewindFilePtrNoWarn=0;
char C4Group_TempPath[_MAX_PATH+1]=""; char C4Group_TempPath[_MAX_PATH+1]="";
char C4Group_Ignore[_MAX_PATH+1]="cvs;CVS;Thumbs.db;.orig;.svn"; char C4Group_Ignore[_MAX_PATH+1]="cvs;CVS;Thumbs.db;.orig;.svn";
const char **C4Group_SortList = NULL; const char **C4Group_SortList = nullptr;
bool (*C4Group_ProcessCallback)(const char *, int)=NULL; bool (*C4Group_ProcessCallback)(const char *, int)=nullptr;
void C4Group_SetProcessCallback(bool (*fnCallback)(const char *, int)) void C4Group_SetProcessCallback(bool (*fnCallback)(const char *, int))
{ {
@ -260,7 +260,7 @@ bool C4Group_PackDirectoryTo(const char *szFilename, const char *szFilenameTo)
} }
} }
// Add normally otherwise // Add normally otherwise
else if (!hGroup.Add(*i, NULL)) else if (!hGroup.Add(*i, nullptr))
break; break;
} }
// Something went wrong? // Something went wrong?
@ -380,7 +380,7 @@ bool C4Group_ReadFile(const char *szFile, char **pData, size_t *iSize)
// create buffer // create buffer
*pData = new char [iFileSize]; *pData = new char [iFileSize];
// read it // read it
if (!MotherGroup.Read(*pData, iFileSize)) { delete [] *pData; *pData = NULL; return false; } if (!MotherGroup.Read(*pData, iFileSize)) { delete [] *pData; *pData = nullptr; return false; }
// ok // ok
MotherGroup.Close(); MotherGroup.Close();
if (iSize) *iSize = iFileSize; if (iSize) *iSize = iFileSize;
@ -435,7 +435,7 @@ C4Group::C4Group()
{ {
Init(); Init();
StdOutput=false; StdOutput=false;
fnProcessCallback=NULL; fnProcessCallback=nullptr;
NoSort=false; NoSort=false;
} }
@ -445,16 +445,16 @@ void C4Group::Init()
Status=GRPF_Inactive; Status=GRPF_Inactive;
FileName[0]=0; FileName[0]=0;
// Child status // Child status
Mother=NULL; Mother=nullptr;
ExclusiveChild=false; ExclusiveChild=false;
// File only // File only
FilePtr=0; FilePtr=0;
EntryOffset=0; EntryOffset=0;
Modified=false; Modified=false;
InplaceReconstruct(&Head); InplaceReconstruct(&Head);
FirstEntry=NULL; FirstEntry=nullptr;
SearchPtr=NULL; SearchPtr=nullptr;
pInMemEntry=NULL; iInMemEntrySize=0u; pInMemEntry=nullptr; iInMemEntrySize=0u;
// Folder only // Folder only
FolderSearch.Clear(); FolderSearch.Clear();
// Error status // Error status
@ -603,7 +603,7 @@ bool C4Group::OpenRealGrpFile()
if (!AddEntry(C4GroupEntry::C4GRES_InGroup,!!corebuf.ChildGroup, if (!AddEntry(C4GroupEntry::C4GRES_InGroup,!!corebuf.ChildGroup,
corebuf.FileName,corebuf.Size, corebuf.FileName,corebuf.Size,
entryname.getData(), entryname.getData(),
NULL, false, false, nullptr, false, false,
!!corebuf.Executable)) !!corebuf.Executable))
return Error("OpenRealGrpFile: Cannot add entry"); return Error("OpenRealGrpFile: Cannot add entry");
} }
@ -699,7 +699,7 @@ bool C4Group::AddEntry(C4GroupEntry::EntryStatus status,
SCopy(fname,nentry->DiskPath,_MAX_FNAME); SCopy(fname,nentry->DiskPath,_MAX_FNAME);
nentry->Status=status; nentry->Status=status;
nentry->bpMemBuf=membuf; nentry->bpMemBuf=membuf;
nentry->Next=NULL; nentry->Next=nullptr;
nentry->NoSort = NoSort; nentry->NoSort = NoSort;
// Append entry to list // Append entry to list
@ -714,13 +714,13 @@ bool C4Group::AddEntry(C4GroupEntry::EntryStatus status,
C4GroupEntry* C4Group::GetEntry(const char *szName) C4GroupEntry* C4Group::GetEntry(const char *szName)
{ {
if (Status==GRPF_Folder) return NULL; if (Status==GRPF_Folder) return nullptr;
C4GroupEntry *centry; C4GroupEntry *centry;
for (centry=FirstEntry; centry; centry=centry->Next) for (centry=FirstEntry; centry; centry=centry->Next)
if (centry->Status != C4GroupEntry::C4GRES_Deleted) if (centry->Status != C4GroupEntry::C4GRES_Deleted)
if (WildcardMatch(szName,centry->FileName)) if (WildcardMatch(szName,centry->FileName))
return centry; return centry;
return NULL; return nullptr;
} }
bool C4Group::Close() bool C4Group::Close()
@ -830,7 +830,7 @@ bool C4Group::Save(bool fReOpen)
// Write // Write
StdBuf *pBuf; StdBuf *pBuf;
tfile.Close(fToMemory ? &pBuf : NULL); tfile.Close(fToMemory ? &pBuf : nullptr);
// Child: move temp file to mother // Child: move temp file to mother
if (Mother) if (Mother)
@ -868,9 +868,9 @@ bool C4Group::Save(bool fReOpen)
void C4Group::Default() void C4Group::Default()
{ {
FirstEntry = NULL; FirstEntry = nullptr;
StdFile.Default(); StdFile.Default();
Mother = NULL; Mother = nullptr;
ExclusiveChild = 0; ExclusiveChild = 0;
Init(); Init();
} }
@ -891,7 +891,7 @@ void C4Group::Clear()
if (Mother && ExclusiveChild) if (Mother && ExclusiveChild)
{ {
delete Mother; delete Mother;
Mother=NULL; Mother=nullptr;
} }
// Reset // Reset
Init(); Init();
@ -992,7 +992,7 @@ void C4Group::ResetSearch(bool reload_contents)
switch (Status) switch (Status)
{ {
case GRPF_Folder: case GRPF_Folder:
SearchPtr=NULL; SearchPtr=nullptr;
FolderSearch.Reset(FileName, reload_contents); FolderSearch.Reset(FileName, reload_contents);
if (*FolderSearch) if (*FolderSearch)
{ {
@ -1016,7 +1016,7 @@ C4GroupEntry* C4Group::GetNextFolderEntry()
} }
else else
{ {
return NULL; return nullptr;
} }
} }
@ -1055,8 +1055,8 @@ C4GroupEntry* C4Group::SearchNextEntry(const char *szName)
default: break; // InGrp & Deleted ignored default: break; // InGrp & Deleted ignored
} }
// No entry found: reset search pointer // No entry found: reset search pointer
SearchPtr=NULL; SearchPtr=nullptr;
return NULL; return nullptr;
} }
bool C4Group::SetFilePtr(int iOffset) bool C4Group::SetFilePtr(int iOffset)
@ -1177,7 +1177,7 @@ bool C4Group::RewindFilePtr()
if (szCurrAccessedEntry && !iC4GroupRewindFilePtrNoWarn) if (szCurrAccessedEntry && !iC4GroupRewindFilePtrNoWarn)
{ {
LogF("C4Group::RewindFilePtr() for %s (%s) after %s", szCurrAccessedEntry ? szCurrAccessedEntry : "???", FileName, sPrevAccessedEntry.getLength() ? sPrevAccessedEntry.getData() : "???"); LogF("C4Group::RewindFilePtr() for %s (%s) after %s", szCurrAccessedEntry ? szCurrAccessedEntry : "???", FileName, sPrevAccessedEntry.getLength() ? sPrevAccessedEntry.getData() : "???");
szCurrAccessedEntry=NULL; szCurrAccessedEntry=nullptr;
} }
#endif #endif
@ -1228,7 +1228,7 @@ bool C4Group::Merge(const char *szFolders)
if (fnProcessCallback) if (fnProcessCallback)
fnProcessCallback(GetFilename(*i),0); // cbytes/tbytes fnProcessCallback(GetFilename(*i),0); // cbytes/tbytes
// AddEntryOnDisk // AddEntryOnDisk
AddEntryOnDisk(*i, NULL, fMove); AddEntryOnDisk(*i, nullptr, fMove);
++i; ++i;
} }
} }
@ -1283,7 +1283,7 @@ bool C4Group::AddEntryOnDisk(const char *szFilename,
szFilename, szFilename,
iSize, iSize,
szAddAs, szAddAs,
NULL, nullptr,
fMove, fMove,
false, false,
fExecutable); fExecutable);
@ -1611,7 +1611,7 @@ bool C4Group::OpenAsChild(C4Group *pMother,
// Access entry in mother group // Access entry in mother group
size_t iSize; size_t iSize;
if ((!Mother->AccessEntry(FileName, &iSize, NULL, true))) if ((!Mother->AccessEntry(FileName, &iSize, nullptr, true)))
{ {
if (!fCreate) if (!fCreate)
{ CloseExclusiveMother(); Clear(); return Error("OpenAsChild: Entry not in mother group"); } { CloseExclusiveMother(); Clear(); return Error("OpenAsChild: Entry not in mother group"); }
@ -1653,7 +1653,7 @@ bool C4Group::OpenAsChild(C4Group *pMother,
EntryOffset+=sizeof(C4GroupEntryCore); EntryOffset+=sizeof(C4GroupEntryCore);
if (!AddEntry(C4GroupEntry::C4GRES_InGroup, !!corebuf.ChildGroup, if (!AddEntry(C4GroupEntry::C4GRES_InGroup, !!corebuf.ChildGroup,
corebuf.FileName,corebuf.Size, corebuf.FileName,corebuf.Size,
NULL, NULL, false, false, nullptr, nullptr, false, false,
!!corebuf.Executable)) !!corebuf.Executable))
{ CloseExclusiveMother(); Clear(); return Error("OpenAsChild: Insufficient memory"); } { CloseExclusiveMother(); Clear(); return Error("OpenAsChild: Insufficient memory"); }
} }
@ -1685,7 +1685,7 @@ bool C4Group::AccessEntry(const char *szWildCard,
bool fResult = SetFilePtr2Entry(fname.getData(), NeedsToBeAGroup); bool fResult = SetFilePtr2Entry(fname.getData(), NeedsToBeAGroup);
#ifdef _DEBUG #ifdef _DEBUG
sPrevAccessedEntry.Copy(szCurrAccessedEntry); sPrevAccessedEntry.Copy(szCurrAccessedEntry);
szCurrAccessedEntry = NULL; szCurrAccessedEntry = nullptr;
#endif #endif
if (!fResult) return false; if (!fResult) return false;
if (sFileName) SCopy(fname.getData(),sFileName); if (sFileName) SCopy(fname.getData(),sFileName);
@ -1704,7 +1704,7 @@ bool C4Group::AccessNextEntry(const char *szWildCard,
#endif #endif
bool fResult = SetFilePtr2Entry(fname); bool fResult = SetFilePtr2Entry(fname);
#ifdef _DEBUG #ifdef _DEBUG
szCurrAccessedEntry = NULL; szCurrAccessedEntry = nullptr;
#endif #endif
if (!fResult) return false; if (!fResult) return false;
if (sFileName) SCopy(fname,sFileName); if (sFileName) SCopy(fname,sFileName);
@ -1724,7 +1724,7 @@ bool C4Group::SetFilePtr2Entry(const char *szName, bool NeedsToBeAGroup)
} }
else else
{ {
pInMemEntry = NULL; pInMemEntry = nullptr;
} }
// Not cached. Access from disk. // Not cached. Access from disk.
@ -1868,12 +1868,12 @@ bool C4Group::LoadEntry(const char *szEntryName, char **lpbpBuf, size_t *ipSize,
size_t size; size_t size;
// Access entry, allocate buffer, read data // Access entry, allocate buffer, read data
(*lpbpBuf)=NULL; if (ipSize) *ipSize=0; (*lpbpBuf)=nullptr; if (ipSize) *ipSize=0;
if (!AccessEntry(szEntryName,&size)) return Error("LoadEntry: Not found"); if (!AccessEntry(szEntryName,&size)) return Error("LoadEntry: Not found");
*lpbpBuf = new char[size+iAppendZeros]; *lpbpBuf = new char[size+iAppendZeros];
if (!Read(*lpbpBuf,size)) if (!Read(*lpbpBuf,size))
{ {
delete [] (*lpbpBuf); *lpbpBuf = NULL; delete [] (*lpbpBuf); *lpbpBuf = nullptr;
return Error("LoadEntry: Reading error"); return Error("LoadEntry: Reading error");
} }
@ -1946,7 +1946,7 @@ bool C4Group::Sort(const char *szSortList)
{ {
fBubble=false; fBubble=false;
for (prev=NULL,centry=FirstEntry; centry; prev=centry,centry=next) for (prev=nullptr,centry=FirstEntry; centry; prev=centry,centry=next)
if ((next=centry->Next)) if ((next=centry->Next))
{ {
// primary sort by file list // primary sort by file list
@ -1985,7 +1985,7 @@ bool C4Group::CloseExclusiveMother()
{ {
Mother->Close(); Mother->Close();
delete Mother; delete Mother;
Mother=NULL; Mother=nullptr;
return true; return true;
} }
return false; return false;
@ -2092,7 +2092,7 @@ uint32_t C4Group::CalcCRC32(C4GroupEntry *pEntry)
CRC = 0; CRC = 0;
else else
{ {
BYTE *pData = NULL; bool fOwnData; CStdFile f; BYTE *pData = nullptr; bool fOwnData; CStdFile f;
// get data // get data
switch (pEntry->Status) switch (pEntry->Status)
{ {

View File

@ -187,28 +187,28 @@ public:
bool Add(const char *szName, StdStrBuf &pBuffer, bool fChild = false, bool fHoldBuffer = false, bool fExecutable = false); bool Add(const char *szName, StdStrBuf &pBuffer, bool fChild = false, bool fHoldBuffer = false, bool fExecutable = false);
bool Merge(const char *szFolders); bool Merge(const char *szFolders);
bool Move(const char *szFile, const char *szAddAs); bool Move(const char *szFile, const char *szAddAs);
bool Extract(const char *szFiles, const char *szExtractTo=NULL, const char *szExclude=NULL); bool Extract(const char *szFiles, const char *szExtractTo=nullptr, const char *szExclude=nullptr);
bool ExtractEntry(const char *szFilename, const char *szExtractTo=NULL); bool ExtractEntry(const char *szFilename, const char *szExtractTo=nullptr);
bool Delete(const char *szFiles, bool fRecursive = false); bool Delete(const char *szFiles, bool fRecursive = false);
bool DeleteEntry(const char *szFilename, bool fRecycle=false); bool DeleteEntry(const char *szFilename, bool fRecycle=false);
bool Rename(const char *szFile, const char *szNewName); bool Rename(const char *szFile, const char *szNewName);
bool Sort(const char *szSortList); bool Sort(const char *szSortList);
bool SortByList(const char **ppSortList, const char *szFilename=NULL); bool SortByList(const char **ppSortList, const char *szFilename=nullptr);
bool AccessEntry(const char *szWildCard, bool AccessEntry(const char *szWildCard,
size_t *iSize=NULL, char *sFileName=NULL, size_t *iSize=nullptr, char *sFileName=nullptr,
bool NeedsToBeAGroup = false); bool NeedsToBeAGroup = false);
bool AccessNextEntry(const char *szWildCard, bool AccessNextEntry(const char *szWildCard,
size_t *iSize=NULL, char *sFileName=NULL, size_t *iSize=nullptr, char *sFileName=nullptr,
bool fStartAtFilename=false); bool fStartAtFilename=false);
bool LoadEntry(const char *szEntryName, char **lpbpBuf, bool LoadEntry(const char *szEntryName, char **lpbpBuf,
size_t *ipSize=NULL, int iAppendZeros=0); size_t *ipSize=nullptr, int iAppendZeros=0);
bool LoadEntry(const char *szEntryName, StdBuf * Buf); bool LoadEntry(const char *szEntryName, StdBuf * Buf);
bool LoadEntry(const StdStrBuf & name, StdBuf * Buf) { return LoadEntry(name.getData(), Buf); } bool LoadEntry(const StdStrBuf & name, StdBuf * Buf) { return LoadEntry(name.getData(), Buf); }
bool LoadEntryString(const char *szEntryName, StdStrBuf * Buf); bool LoadEntryString(const char *szEntryName, StdStrBuf * Buf);
bool LoadEntryString(const StdStrBuf & name, StdStrBuf * Buf) { return LoadEntryString(name.getData(), Buf); } bool LoadEntryString(const StdStrBuf & name, StdStrBuf * Buf) { return LoadEntryString(name.getData(), Buf); }
bool FindEntry(const char *szWildCard, bool FindEntry(const char *szWildCard,
StdStrBuf *sFileName=NULL, StdStrBuf *sFileName=nullptr,
size_t *iSize=NULL); size_t *iSize=nullptr);
bool FindEntry(const char *szWildCard, bool FindEntry(const char *szWildCard,
char *sFileName) char *sFileName)
{ {
@ -218,12 +218,12 @@ public:
return r; return r;
} }
bool FindNextEntry(const char *szWildCard, bool FindNextEntry(const char *szWildCard,
StdStrBuf *sFileName=NULL, StdStrBuf *sFileName=nullptr,
size_t *iSize=NULL, size_t *iSize=nullptr,
bool fStartAtFilename=false); bool fStartAtFilename=false);
bool FindNextEntry(const char *szWildCard, bool FindNextEntry(const char *szWildCard,
char *sFileName, char *sFileName,
size_t *iSize=NULL, size_t *iSize=nullptr,
bool fStartAtFilename=false) bool fStartAtFilename=false)
{ {
StdStrBuf name(fStartAtFilename ? sFileName : ""); StdStrBuf name(fStartAtFilename ? sFileName : "");
@ -238,10 +238,10 @@ public:
const char *GetError(); const char *GetError();
const char *GetName(); const char *GetName();
StdStrBuf GetFullName() const; StdStrBuf GetFullName() const;
int EntryCount(const char *szWildCard=NULL); int EntryCount(const char *szWildCard=nullptr);
size_t EntrySize(const char *szWildCard=NULL); size_t EntrySize(const char *szWildCard=nullptr);
size_t AccessedEntrySize() { return iCurrFileSize; } // retrieve size of last accessed entry size_t AccessedEntrySize() { return iCurrFileSize; } // retrieve size of last accessed entry
unsigned int EntryCRC32(const char *szWildCard=NULL); unsigned int EntryCRC32(const char *szWildCard=nullptr);
inline bool IsOpen() { return Status != GRPF_Inactive; } inline bool IsOpen() { return Status != GRPF_Inactive; }
C4Group *GetMother(); C4Group *GetMother();
inline bool IsPacked() { return Status == GRPF_File; } inline bool IsPacked() { return Status == GRPF_File; }
@ -264,18 +264,18 @@ protected:
bool OpenRealGrpFile(); bool OpenRealGrpFile();
bool SetFilePtr(int iOffset); bool SetFilePtr(int iOffset);
bool RewindFilePtr(); bool RewindFilePtr();
bool AdvanceFilePtr(int iOffset, C4Group *pByChild=NULL); bool AdvanceFilePtr(int iOffset, C4Group *pByChild=nullptr);
bool AddEntry(C4GroupEntry::EntryStatus status, bool AddEntry(C4GroupEntry::EntryStatus status,
bool childgroup, bool childgroup,
const char *fname, const char *fname,
long size, long size,
const char *entryname = NULL, const char *entryname = nullptr,
BYTE *membuf = NULL, BYTE *membuf = nullptr,
bool fDeleteOnDisk = false, bool fDeleteOnDisk = false,
bool fHoldBuffer = false, bool fHoldBuffer = false,
bool fExecutable = false, bool fExecutable = false,
bool fBufferIsStdbuf = false); bool fBufferIsStdbuf = false);
bool AddEntryOnDisk(const char *szFilename, const char *szAddAs=NULL, bool fMove=false); bool AddEntryOnDisk(const char *szFilename, const char *szAddAs=nullptr, bool fMove=false);
bool SetFilePtr2Entry(const char *szName, bool NeedsToBeAGroup = false); bool SetFilePtr2Entry(const char *szName, bool NeedsToBeAGroup = false);
bool AppendEntry2StdFile(C4GroupEntry *centry, CStdFile &stdfile); bool AppendEntry2StdFile(C4GroupEntry *centry, CStdFile &stdfile);
C4GroupEntry *GetEntry(const char *szName); C4GroupEntry *GetEntry(const char *szName);

View File

@ -43,7 +43,7 @@ bool EraseItemSafe(const char *szFilename)
return false; return false;
} }
void DisplayGroup(const C4Group &grp, const char *filter = NULL) void DisplayGroup(const C4Group &grp, const char *filter = nullptr)
{ {
const C4GroupHeader &head = grp.GetHeader(); const C4GroupHeader &head = grp.GetHeader();
@ -58,18 +58,18 @@ void DisplayGroup(const C4Group &grp, const char *filter = NULL)
// Find maximum file name length (matching filter) // Find maximum file name length (matching filter)
size_t max_fn_len = 0; size_t max_fn_len = 0;
for (const C4GroupEntry *entry = grp.GetFirstEntry(); entry != NULL; entry = entry->Next) for (const C4GroupEntry *entry = grp.GetFirstEntry(); entry != nullptr; entry = entry->Next)
{ {
if (filter == NULL || WildcardMatch(filter, entry->FileName)) if (filter == nullptr || WildcardMatch(filter, entry->FileName))
max_fn_len = std::max(max_fn_len, strlen(entry->FileName)); max_fn_len = std::max(max_fn_len, strlen(entry->FileName));
} }
// List files // List files
size_t file_count = 0; size_t file_count = 0;
size_t byte_count = 0; size_t byte_count = 0;
for (const C4GroupEntry *entry = grp.GetFirstEntry(); entry != NULL; entry = entry->Next) for (const C4GroupEntry *entry = grp.GetFirstEntry(); entry != nullptr; entry = entry->Next)
{ {
if (filter != NULL && !WildcardMatch(filter, entry->FileName)) if (filter != nullptr && !WildcardMatch(filter, entry->FileName))
continue; continue;
printf("%*s %8u Bytes", printf("%*s %8u Bytes",
@ -153,7 +153,7 @@ bool ProcessGroup(const char *FilenamePar)
// Sort // Sort
case 's': case 's':
// First sort parameter overrides default Clonk sort list // First sort parameter overrides default Clonk sort list
C4Group_SetSortList(NULL); C4Group_SetSortList(nullptr);
// Missing argument // Missing argument
if ((iArg + 1 >= argc) || (argv[iArg + 1][0] == '-')) if ((iArg + 1 >= argc) || (argv[iArg + 1][0] == '-'))
{ {
@ -308,7 +308,7 @@ bool ProcessGroup(const char *FilenamePar)
if(iArg + 1 < argc) if(iArg + 1 < argc)
{ {
errno = 0; errno = 0;
pid = strtoul(argv[iArg+1], NULL, 10); pid = strtoul(argv[iArg+1], nullptr, 10);
if(errno == 0) if(errno == 0)
have_pid = true; have_pid = true;
else else
@ -373,7 +373,7 @@ int RegisterShellExtensions()
wchar_t strCommand[2048+1]; wchar_t strCommand[2048+1];
char strClass[128]; char strClass[128];
int i; int i;
GetModuleFileNameW(NULL, strModule, 2048); GetModuleFileNameW(nullptr, strModule, 2048);
// Groups // Groups
const char *strClasses = const char *strClasses =
"Clonk4.Definition;Clonk4.Folder;Clonk4.Group;Clonk4.Player;Clonk4.Scenario;Clonk4.Update;Clonk4.Weblink"; "Clonk4.Definition;Clonk4.Folder;Clonk4.Group;Clonk4.Player;Clonk4.Scenario;Clonk4.Update;Clonk4.Weblink";
@ -436,7 +436,7 @@ int main(int argc, char *argv[])
{ {
#ifndef WIN32 #ifndef WIN32
// Always line buffer mode, even if the output is not sent to a terminal // Always line buffer mode, even if the output is not sent to a terminal
setvbuf(stdout, NULL, _IOLBF, 0); setvbuf(stdout, nullptr, _IOLBF, 0);
#endif #endif
// Scan options // Scan options
fQuiet = true; fQuiet = true;
@ -559,7 +559,7 @@ int main(int argc, char *argv[])
PROCESS_INFORMATION procInfo; PROCESS_INFORMATION procInfo;
CreateProcessW(GetWideChar(strExecuteAtEnd), NULL, NULL, NULL, false, 0, NULL, NULL, &startInfo, &procInfo); CreateProcessW(GetWideChar(strExecuteAtEnd), nullptr, nullptr, nullptr, false, 0, nullptr, nullptr, &startInfo, &procInfo);
#else #else
switch (fork()) switch (fork())
{ {

View File

@ -53,13 +53,13 @@ void C4GroupSet::Clear()
{ {
// clear nodes // clear nodes
while (pFirst) delete pFirst; while (pFirst) delete pFirst;
pFirst = NULL; pFirst = nullptr;
} }
void C4GroupSet::Default() void C4GroupSet::Default()
{ {
// zero fields // zero fields
pFirst=pLast=NULL; pFirst=pLast=nullptr;
// do not reset index here, because group set IDs are meant to be unique // do not reset index here, because group set IDs are meant to be unique
// for each instance of the engine // for each instance of the engine
// see also C4GraphicsResource::RegisterGlobalGraphics // see also C4GraphicsResource::RegisterGlobalGraphics
@ -168,10 +168,10 @@ C4Group *C4GroupSet::FindGroup(int32_t Contents, C4Group *pAfter, bool fSamePrio
// success, found an entry // success, found an entry
return pNode->pGroup; return pNode->pGroup;
// find next clear flag // find next clear flag
if (pNode->pGroup == pAfter) { pAfter=NULL; if (fSamePrio) iPriority=pNode->Priority; } if (pNode->pGroup == pAfter) { pAfter=nullptr; if (fSamePrio) iPriority=pNode->Priority; }
} }
// nothing found // nothing found
return NULL; return nullptr;
} }
C4Group *C4GroupSet::FindEntry(const char *szWildcard, int32_t *pPriority, int32_t *pID) C4Group *C4GroupSet::FindEntry(const char *szWildcard, int32_t *pPriority, int32_t *pID)
@ -187,7 +187,7 @@ C4Group *C4GroupSet::FindEntry(const char *szWildcard, int32_t *pPriority, int32
return pNode->pGroup; return pNode->pGroup;
} }
// nothing found // nothing found
return NULL; return nullptr;
} }
C4Group *C4GroupSet::FindSuitableFile(const char *szName, const char * const extensions[], char *szFileName, int32_t *pID) C4Group *C4GroupSet::FindSuitableFile(const char *szName, const char * const extensions[], char *szFileName, int32_t *pID)
@ -262,7 +262,7 @@ C4Group* C4GroupSet::GetGroup(int32_t iIndex)
{ {
// Invalid index // Invalid index
if (iIndex < 0) if (iIndex < 0)
return NULL; return nullptr;
// Find indicated group // Find indicated group
for (C4GroupSetNode *pNode = pFirst; pNode; pNode = pNode->pNext) for (C4GroupSetNode *pNode = pFirst; pNode; pNode = pNode->pNext)
if (iIndex == 0) if (iIndex == 0)
@ -270,7 +270,7 @@ C4Group* C4GroupSet::GetGroup(int32_t iIndex)
else else
iIndex--; iIndex--;
// Indicated group not found // Indicated group not found
return NULL; return nullptr;
} }
bool C4GroupSet::UnregisterGroup(int32_t iIndex) bool C4GroupSet::UnregisterGroup(int32_t iIndex)
@ -296,7 +296,7 @@ bool C4GroupSet::UnregisterGroup(int32_t iIndex)
C4Group *C4GroupSet::RegisterParentFolders(const char *szScenFilename) C4Group *C4GroupSet::RegisterParentFolders(const char *szScenFilename)
{ {
// the scenario filename may be a scenario or directly a group folder // the scenario filename may be a scenario or directly a group folder
C4Group *pParentGroup=NULL; bool fParentC4F; C4Group *pParentGroup=nullptr; bool fParentC4F;
char szParentfolder[_MAX_PATH+1]; char szParentfolder[_MAX_PATH+1];
if (SEqualNoCase(GetExtension(szScenFilename), "ocf")) if (SEqualNoCase(GetExtension(szScenFilename), "ocf"))
{ {
@ -349,13 +349,13 @@ C4Group *C4GroupSet::RegisterParentFolders(const char *szScenFilename)
if (!pGroup->OpenAsChild(pParentGroup, szParentfolder+iPos)) if (!pGroup->OpenAsChild(pParentGroup, szParentfolder+iPos))
{ {
LogFatal(FormatString("%s: %s", LoadResStr("IDS_PRC_FILENOTFOUND"), szParentfolder+iPos).getData()); LogFatal(FormatString("%s: %s", LoadResStr("IDS_PRC_FILENOTFOUND"), szParentfolder+iPos).getData());
delete pGroup; return NULL; delete pGroup; return nullptr;
} }
} }
else if (!Reloc.Open(*pGroup, szParentfolder+iPos)) else if (!Reloc.Open(*pGroup, szParentfolder+iPos))
{ {
LogFatal(FormatString("%s: %s", LoadResStr("IDS_PRC_FILENOTFOUND"), szParentfolder+iPos).getData()); LogFatal(FormatString("%s: %s", LoadResStr("IDS_PRC_FILENOTFOUND"), szParentfolder+iPos).getData());
delete pGroup; return NULL; delete pGroup; return nullptr;
} }
// set this group as new parent // set this group as new parent
pParentGroup=pGroup; pParentGroup=pGroup;
@ -366,7 +366,7 @@ C4Group *C4GroupSet::RegisterParentFolders(const char *szScenFilename)
else else
iContentsMask = C4GSCnt_Directory; iContentsMask = C4GSCnt_Directory;
if (!RegisterGroup(*pParentGroup, true, C4GSPrio_Folder+iGroupIndex++, iContentsMask)) if (!RegisterGroup(*pParentGroup, true, C4GSPrio_Folder+iGroupIndex++, iContentsMask))
{ delete pParentGroup; LogFatal ("RegGrp: internal error"); return NULL; } { delete pParentGroup; LogFatal ("RegGrp: internal error"); return nullptr; }
// advance by file name length // advance by file name length
iPos+=SLen(szParentfolder+iPos); iPos+=SLen(szParentfolder+iPos);
} }

View File

@ -89,13 +89,13 @@ public:
~C4GroupSet(); // dtor ~C4GroupSet(); // dtor
bool RegisterGroup(C4Group &rGroup, bool fOwnGrp, int32_t Priority, int32_t Contents, bool fCheckContent=true); // add group to list bool RegisterGroup(C4Group &rGroup, bool fOwnGrp, int32_t Priority, int32_t Contents, bool fCheckContent=true); // add group to list
bool RegisterGroups(const C4GroupSet &rCopy, int32_t Contents, const char *szFilename=NULL, int32_t iMaxSkipID=0); // add all matching (child-)groups of the set bool RegisterGroups(const C4GroupSet &rCopy, int32_t Contents, const char *szFilename=nullptr, int32_t iMaxSkipID=0); // add all matching (child-)groups of the set
C4Group *FindGroup(int32_t Contents, C4Group *pAfter=NULL, bool fSamePrio=false); // search for suitable group in list C4Group *FindGroup(int32_t Contents, C4Group *pAfter=nullptr, bool fSamePrio=false); // search for suitable group in list
C4Group *FindEntry(const char *szWildcard, int32_t *pPriority=NULL, int32_t *pID=NULL); // find entry in groups; store priority of group if ptr is given C4Group *FindEntry(const char *szWildcard, int32_t *pPriority=nullptr, int32_t *pID=nullptr); // find entry in groups; store priority of group if ptr is given
C4Group *FindSuitableFile(const char *szName, const char * const extensions[], char *szFileName, int32_t *pID=NULL); C4Group *FindSuitableFile(const char *szName, const char * const extensions[], char *szFileName, int32_t *pID=nullptr);
int32_t GetGroupCount(); int32_t GetGroupCount();
C4Group *GetGroup(int32_t iIndex); C4Group *GetGroup(int32_t iIndex);
bool LoadEntry(const char *szEntryName, char **lpbpBuf, size_t *ipSize=NULL, int32_t iAppendZeros=0); bool LoadEntry(const char *szEntryName, char **lpbpBuf, size_t *ipSize=nullptr, int32_t iAppendZeros=0);
bool LoadEntryString(const char *szEntryName, StdStrBuf * rBuf); bool LoadEntryString(const char *szEntryName, StdStrBuf * rBuf);
bool LoadEntryString(const StdStrBuf & name, StdStrBuf * Buf) { return LoadEntryString(name.getData(), Buf); } bool LoadEntryString(const StdStrBuf & name, StdStrBuf * Buf) { return LoadEntryString(name.getData(), Buf); }
C4Group *RegisterParentFolders(const char *szScenFilename); // register all parent .ocf groups to the given scenario filename and return an open group file of the innermost parent ocf C4Group *RegisterParentFolders(const char *szScenFilename); // register all parent .ocf groups to the given scenario filename and return an open group file of the innermost parent ocf

View File

@ -104,7 +104,7 @@ void C4LangStringTable::ReplaceStrings(const StdStrBuf &rBuf, StdStrBuf &rTarget
// Find Replace Positions // Find Replace Positions
int iScriptLen = SLen(Data); int iScriptLen = SLen(Data);
struct RP { const char *Pos; std::string String; unsigned int Len; RP *Next; } *pRPList = NULL, *pRPListEnd = NULL; struct RP { const char *Pos; std::string String; unsigned int Len; RP *Next; } *pRPList = nullptr, *pRPListEnd = nullptr;
for (const char *pPos = SSearch(Data, "$"); pPos; pPos = SSearch(pPos, "$")) for (const char *pPos = SSearch(Data, "$"); pPos; pPos = SSearch(pPos, "$"))
{ {
// Get name // Get name
@ -127,7 +127,7 @@ void C4LangStringTable::ReplaceStrings(const StdStrBuf &rBuf, StdStrBuf &rTarget
pnRP->Pos = pPos - SLen(szStringName) - 2; pnRP->Pos = pPos - SLen(szStringName) - 2;
pnRP->String = pStrTblEntry; pnRP->String = pStrTblEntry;
pnRP->Len = SLen(szStringName) + 2; pnRP->Len = SLen(szStringName) + 2;
pnRP->Next = NULL; pnRP->Next = nullptr;
pRPListEnd = (pRPListEnd ? pRPListEnd->Next : pRPList) = pnRP; pRPListEnd = (pRPListEnd ? pRPListEnd->Next : pRPList) = pnRP;
// calculate new script length // calculate new script length
iScriptLen += pStrTblEntry.size() - pnRP->Len; iScriptLen += pStrTblEntry.size() - pnRP->Len;

View File

@ -35,7 +35,7 @@ C4Language Languages;
C4Language::C4Language() C4Language::C4Language()
{ {
Infos = NULL; Infos = nullptr;
PackGroupLocation[0] = 0; PackGroupLocation[0] = 0;
} }
@ -119,7 +119,7 @@ void C4Language::Clear()
delete Infos; delete Infos;
Infos = pNext; Infos = pNext;
} }
Infos = NULL; Infos = nullptr;
} }
int C4Language::GetPackCount() int C4Language::GetPackCount()
@ -339,7 +339,7 @@ C4LanguageInfo* C4Language::GetInfo(int iIndex)
return pInfo; return pInfo;
else else
iIndex--; iIndex--;
return NULL; return nullptr;
} }
C4LanguageInfo* C4Language::FindInfo(const char *strCode) C4LanguageInfo* C4Language::FindInfo(const char *strCode)
@ -347,7 +347,7 @@ C4LanguageInfo* C4Language::FindInfo(const char *strCode)
for (C4LanguageInfo *pInfo = Infos; pInfo; pInfo = pInfo->Next) for (C4LanguageInfo *pInfo = Infos; pInfo; pInfo = pInfo->Next)
if (SEqualNoCase(pInfo->Code, strCode, 2)) if (SEqualNoCase(pInfo->Code, strCode, 2))
return pInfo; return pInfo;
return NULL; return nullptr;
} }
bool C4Language::LoadLanguage(const char *strLanguages) bool C4Language::LoadLanguage(const char *strLanguages)

View File

@ -528,7 +528,7 @@ bool C4UpdatePackage::DoGrpUpdate(C4Group *pUpdateData, C4GroupEx *pGrpTo)
{ {
char *pData; char *pData;
// sort entries // sort entries
if (pUpdateData->LoadEntry(C4CFN_UpdateEntries, &pData, NULL, 1)) if (pUpdateData->LoadEntry(C4CFN_UpdateEntries, &pData, nullptr, 1))
{ {
// delete all entries that do not appear in the entries list // delete all entries that do not appear in the entries list
char strItemName[_MAX_FNAME+1], strItemName2[_MAX_FNAME+1]; char strItemName[_MAX_FNAME+1], strItemName2[_MAX_FNAME+1];
@ -693,7 +693,7 @@ extern char C4Group_TempPath[_MAX_PATH+1];
bool C4UpdatePackage::MkUp(C4Group *pGrp1, C4Group *pGrp2, C4GroupEx *pUpGrp, bool *fModified) bool C4UpdatePackage::MkUp(C4Group *pGrp1, C4Group *pGrp2, C4GroupEx *pUpGrp, bool *fModified)
{ {
// (CAUTION: pGrp1 may be NULL - that means that there is no counterpart for Grp2 // (CAUTION: pGrp1 may be nullptr - that means that there is no counterpart for Grp2
// in the base group) // in the base group)
// compare headers // compare headers
@ -706,7 +706,7 @@ bool C4UpdatePackage::MkUp(C4Group *pGrp1, C4Group *pGrp2, C4GroupEx *pUpGrp, bo
strItemName[0] = strItemName2[0] = 0; strItemName[0] = strItemName2[0] = 0;
pGrp2->ResetSearch(); if (!*fModified) pGrp1->ResetSearch(); pGrp2->ResetSearch(); if (!*fModified) pGrp1->ResetSearch();
int iChangedEntries = 0; int iChangedEntries = 0;
while (pGrp2->FindNextEntry("*", strItemName, NULL, !! strItemName[0])) while (pGrp2->FindNextEntry("*", strItemName, nullptr, !! strItemName[0]))
{ {
// add to entry list // add to entry list
if (!!EntryList) EntryList.AppendChar('|'); if (!!EntryList) EntryList.AppendChar('|');
@ -714,7 +714,7 @@ bool C4UpdatePackage::MkUp(C4Group *pGrp1, C4Group *pGrp2, C4GroupEx *pUpGrp, bo
// no modification detected yet? then check order // no modification detected yet? then check order
if (!*fModified) if (!*fModified)
{ {
if (!pGrp1->FindNextEntry("*", strItemName2, NULL, !! strItemName2[0])) if (!pGrp1->FindNextEntry("*", strItemName2, nullptr, !! strItemName2[0]))
*fModified = true; *fModified = true;
else if (!SEqual(strItemName, strItemName2)) else if (!SEqual(strItemName, strItemName2))
*fModified = true; *fModified = true;
@ -729,7 +729,7 @@ bool C4UpdatePackage::MkUp(C4Group *pGrp1, C4Group *pGrp2, C4GroupEx *pUpGrp, bo
// open in Grp1 // open in Grp1
C4Group *pChildGrp1 = new C4GroupEx(); C4Group *pChildGrp1 = new C4GroupEx();
if (!pGrp1 || !pChildGrp1->OpenAsChild(pGrp1, strItemName)) if (!pGrp1 || !pChildGrp1->OpenAsChild(pGrp1, strItemName))
{ delete pChildGrp1; pChildGrp1 = NULL; } { delete pChildGrp1; pChildGrp1 = nullptr; }
// open group for update data // open group for update data
C4GroupEx UpdGroup; char strTempGroupName[_MAX_FNAME + 1]; C4GroupEx UpdGroup; char strTempGroupName[_MAX_FNAME + 1];
strTempGroupName[0] = 0; strTempGroupName[0] = 0;

View File

@ -52,7 +52,7 @@ public:
bool Execute(C4Group *pGroup); bool Execute(C4Group *pGroup);
static bool Optimize(C4Group *pGrpFrom, const char *strTarget); static bool Optimize(C4Group *pGrpFrom, const char *strTarget);
int Check(C4Group *pGroup); int Check(C4Group *pGroup);
bool MakeUpdate(const char *strFile1, const char *strFile2, const char *strUpdateFile, const char *strName = NULL); bool MakeUpdate(const char *strFile1, const char *strFile2, const char *strUpdateFile, const char *strName = nullptr);
protected: protected:
bool DoUpdate(C4Group *pGrpFrom, class C4GroupEx *pGrpTo, const char *strFileName); bool DoUpdate(C4Group *pGrpFrom, class C4GroupEx *pGrpTo, const char *strFileName);

View File

@ -37,9 +37,9 @@ CStdFile::CStdFile()
{ {
thread_check.Set(); thread_check.Set();
Status=false; Status=false;
hFile=NULL; hFile=nullptr;
hgzFile=NULL; hgzFile=nullptr;
pMemory=NULL; pMemory=nullptr;
ClearBuffer(); ClearBuffer();
ModeWrite=false; ModeWrite=false;
Name[0]=0; Name[0]=0;
@ -118,7 +118,7 @@ bool CStdFile::Open(const char *szFilename, bool fCompressed)
if(c4_gzdirect(hgzFile)) if(c4_gzdirect(hgzFile))
{ {
c4_gzclose(hgzFile); c4_gzclose(hgzFile);
hgzFile = NULL; hgzFile = nullptr;
return false; return false;
} }
} }
@ -166,12 +166,12 @@ bool CStdFile::Close(StdBuf **ppMemory)
if (pMemory) if (pMemory)
{ {
if (ppMemory) if (ppMemory)
{ *ppMemory = pMemory; pMemory = NULL; } { *ppMemory = pMemory; pMemory = nullptr; }
else else
delete pMemory; delete pMemory;
} }
MemoryPtr=0; MemoryPtr=0;
hgzFile=NULL; hFile=NULL; hgzFile=nullptr; hFile=nullptr;
return !!rval; return !!rval;
} }
@ -179,9 +179,9 @@ bool CStdFile::Default()
{ {
Status=false; Status=false;
Name[0]=0; Name[0]=0;
hgzFile=NULL; hgzFile=nullptr;
hFile=NULL; hFile=nullptr;
pMemory=NULL; pMemory=nullptr;
MemoryPtr=0; MemoryPtr=0;
BufferLoad=BufferPtr=0; BufferLoad=BufferPtr=0;
thread_check.Set(); thread_check.Set();

View File

@ -56,7 +56,7 @@ public:
bool Create(const char *szFileName, bool fCompressed=false, bool fExecutable=false, bool fMemory=false); bool Create(const char *szFileName, bool fCompressed=false, bool fExecutable=false, bool fMemory=false);
bool Open(const char *szFileName, bool fCompressed=false); bool Open(const char *szFileName, bool fCompressed=false);
bool Append(const char *szFilename, bool text=false); // append (uncompressed only) bool Append(const char *szFilename, bool text=false); // append (uncompressed only)
bool Close(StdBuf **ppMemory = NULL); bool Close(StdBuf **ppMemory = nullptr);
bool Default(); bool Default();
bool Read(void *pBuffer, size_t iSize) { return Read(pBuffer, iSize, 0); } bool Read(void *pBuffer, size_t iSize) { return Read(pBuffer, iSize, 0); }
bool Read(void *pBuffer, size_t iSize, size_t *ipFSize); bool Read(void *pBuffer, size_t iSize, size_t *ipFSize);

View File

@ -411,7 +411,7 @@ bool C4Config::Save()
#endif #endif
{ {
StdStrBuf filename; StdStrBuf filename;
GetConfigFileName(filename, ConfigFilename.getLength() ? ConfigFilename.getData() : NULL); GetConfigFileName(filename, ConfigFilename.getLength() ? ConfigFilename.getData() : nullptr);
StdCompilerINIWrite IniWrite; StdCompilerINIWrite IniWrite;
IniWrite.Decompile(*this); IniWrite.Decompile(*this);
IniWrite.getOutput().SaveToFile(filename.getData()); IniWrite.getOutput().SaveToFile(filename.getData());
@ -431,7 +431,7 @@ void C4ConfigGeneral::DeterminePaths()
#ifdef _WIN32 #ifdef _WIN32
// Exe path // Exe path
wchar_t apath[CFG_MaxString]; wchar_t apath[CFG_MaxString];
if (GetModuleFileNameW(NULL,apath,CFG_MaxString)) if (GetModuleFileNameW(nullptr,apath,CFG_MaxString))
{ {
ExePath = StdStrBuf(apath); ExePath = StdStrBuf(apath);
TruncatePath(ExePath.getMData()); TruncatePath(ExePath.getMData());

View File

@ -267,7 +267,7 @@ public:
const char* GetSubkeyPath(const char *strSubkey); const char* GetSubkeyPath(const char *strSubkey);
void Default(); void Default();
bool Save(); bool Save();
bool Load(const char *szConfigFile = NULL); bool Load(const char *szConfigFile = nullptr);
bool Init(); bool Init();
bool Registered(); bool Registered();
const char *AtExePath(const char *szFilename); const char *AtExePath(const char *szFilename);

View File

@ -236,7 +236,7 @@ void C4ControlScript::Execute() const
if (!Game.Parameters.AllowDebug) return; if (!Game.Parameters.AllowDebug) return;
// execute // execute
C4PropList *pPropList = NULL; C4PropList *pPropList = nullptr;
if (iTargetObj == SCOPE_Console) if (iTargetObj == SCOPE_Console)
pPropList = ::GameScript.ScenPropList.getPropList(); pPropList = ::GameScript.ScenPropList.getPropList();
else if (iTargetObj == SCOPE_Global) else if (iTargetObj == SCOPE_Global)
@ -244,7 +244,7 @@ void C4ControlScript::Execute() const
else if (!(pPropList = ::Objects.SafeObjectPointer(iTargetObj))) else if (!(pPropList = ::Objects.SafeObjectPointer(iTargetObj)))
// default: Fallback to global context // default: Fallback to global context
pPropList = ::ScriptEngine.GetPropList(); pPropList = ::ScriptEngine.GetPropList();
C4Value rVal(AulExec.DirectExec(pPropList, szScript, "console script", false, fUseVarsFromCallerContext ? AulExec.GetContext(AulExec.GetContextDepth()-1) : NULL)); C4Value rVal(AulExec.DirectExec(pPropList, szScript, "console script", false, fUseVarsFromCallerContext ? AulExec.GetContext(AulExec.GetContextDepth()-1) : nullptr));
#ifndef NOAULDEBUG #ifndef NOAULDEBUG
C4AulDebug* pDebug; C4AulDebug* pDebug;
if ( (pDebug = C4AulDebug::GetDebugger()) ) if ( (pDebug = C4AulDebug::GetDebugger()) )
@ -259,7 +259,7 @@ void C4ControlScript::Execute() const
bool is_local_script = true; bool is_local_script = true;
if (!LocalControl()) if (!LocalControl())
{ {
C4Network2Client *pClient = NULL; C4Network2Client *pClient = nullptr;
if (::Network.isEnabled()) if (::Network.isEnabled())
{ {
pClient = ::Network.Clients.GetClientByID(iByClient); pClient = ::Network.Clients.GetClientByID(iByClient);
@ -419,7 +419,7 @@ void C4ControlPlayerSelect::CompileFunc(StdCompiler *pComp)
void C4ControlPlayerControl::Execute() const void C4ControlPlayerControl::Execute() const
{ {
C4PlayerControl *pTargetCtrl = NULL; C4PlayerControl *pTargetCtrl = nullptr;
if (iPlr == -1) if (iPlr == -1)
{ {
// neutral control packet: Execute in global control // neutral control packet: Execute in global control
@ -740,7 +740,7 @@ void C4ControlPlayerAction::CompileFunc(StdCompiler *pComp)
{ "SetTeam", CPA_SetTeam }, { "SetTeam", CPA_SetTeam },
{ "InitScenarioPlayer", CPA_InitScenarioPlayer }, { "InitScenarioPlayer", CPA_InitScenarioPlayer },
{ "InitPlayerControl", CPA_InitPlayerControl }, { "InitPlayerControl", CPA_InitPlayerControl },
{ NULL, CPA_NoAction } { nullptr, CPA_NoAction }
}; };
pComp->Value(mkNamingAdapt(mkEnumAdapt<Action, int32_t>(action, ActionNames), "Action", CPA_NoAction)); pComp->Value(mkNamingAdapt(mkEnumAdapt<Action, int32_t>(action, ActionNames), "Action", CPA_NoAction));
pComp->Value(mkNamingAdapt(target, "Target", NO_OWNER)); pComp->Value(mkNamingAdapt(target, "Target", NO_OWNER));
@ -1097,7 +1097,7 @@ void C4ControlJoinPlayer::Execute() const
else if (pInfo->GetType() == C4PT_Script) else if (pInfo->GetType() == C4PT_Script)
{ {
// script players may join without data // script players may join without data
Game.JoinPlayer(NULL, iAtClient, pClient->getName(), pInfo); Game.JoinPlayer(nullptr, iAtClient, pClient->getName(), pInfo);
} }
else else
{ {
@ -1149,7 +1149,7 @@ void C4ControlJoinPlayer::Strip()
{ EraseFile(PlayerFilename.getData()); return; } { EraseFile(PlayerFilename.getData()); return; }
// remove bigicon, if the file size is too large // remove bigicon, if the file size is too large
size_t iBigIconSize=0; size_t iBigIconSize=0;
if (Grp.FindEntry(C4CFN_BigIcon, NULL, &iBigIconSize)) if (Grp.FindEntry(C4CFN_BigIcon, nullptr, &iBigIconSize))
if (iBigIconSize > C4NetResMaxBigicon*1024) if (iBigIconSize > C4NetResMaxBigicon*1024)
Grp.Delete(C4CFN_BigIcon); Grp.Delete(C4CFN_BigIcon);
Grp.Close(); Grp.Close();
@ -1239,7 +1239,7 @@ C4ControlEMMoveObject *C4ControlEMMoveObject::CreateObject(const C4ID &id, C4Rea
C4ControlEMMoveObject::~C4ControlEMMoveObject() C4ControlEMMoveObject::~C4ControlEMMoveObject()
{ {
delete [] pObjects; pObjects = NULL; delete [] pObjects; pObjects = nullptr;
} }
void C4ControlEMMoveObject::MoveObject(C4Object *moved_object, bool move_forced) const void C4ControlEMMoveObject::MoveObject(C4Object *moved_object, bool move_forced) const
@ -1277,7 +1277,7 @@ void C4ControlEMMoveObject::Execute() const
{ {
pObj = pObj->Action.Target; pObj = pObj->Action.Target;
if (!pObj) break; // leftover action cancelled next frame if (!pObj) break; // leftover action cancelled next frame
for (int j = 0; j < iObjectNum; ++j) if (pObjects[j] == pObj->Number) { pObj = NULL; break; } // ensure we aren't moving twice for (int j = 0; j < iObjectNum; ++j) if (pObjects[j] == pObj->Number) { pObj = nullptr; break; } // ensure we aren't moving twice
if (!pObj) break; if (!pObj) break;
MoveObject(pObj, eAction==EMMO_MoveForced); MoveObject(pObj, eAction==EMMO_MoveForced);
} }
@ -1354,7 +1354,7 @@ void C4ControlEMMoveObject::Execute() const
} }
// Create object outside or contained // Create object outside or contained
// If container is desired but not valid, do nothing (don't create object outside instead) // If container is desired but not valid, do nothing (don't create object outside instead)
C4Object *container = NULL; C4Object *container = nullptr;
if (iTargetObj) if (iTargetObj)
{ {
container = ::Objects.SafeObjectPointer(iTargetObj); container = ::Objects.SafeObjectPointer(iTargetObj);
@ -1487,7 +1487,7 @@ void C4ControlMessage::Execute() const
{ {
const char *szMessage = Message.getData(); const char *szMessage = Message.getData();
// get player // get player
C4Player *pPlr = (iPlayer < 0 ? NULL : ::Players.Get(iPlayer)); C4Player *pPlr = (iPlayer < 0 ? nullptr : ::Players.Get(iPlayer));
// security // security
if (pPlr && pPlr->AtClient != iByClient) return; if (pPlr && pPlr->AtClient != iByClient) return;
// do not record message as control, because it is not synced! // do not record message as control, because it is not synced!
@ -1578,7 +1578,7 @@ void C4ControlMessage::Execute() const
// tehehe, sound! // tehehe, sound!
C4Client *singer = Game.Clients.getClientByID(iByClient); C4Client *singer = Game.Clients.getClientByID(iByClient);
if (!singer || !singer->IsIgnored()) if (!singer || !singer->IsIgnored())
if (!StartSoundEffect(szMessage, false, 100, NULL)) if (!StartSoundEffect(szMessage, false, 100, nullptr))
// probably wrong sound file name // probably wrong sound file name
break; break;
// Sound icon even if someone you ignored just tried. So you know you still need to ignore. // Sound icon even if someone you ignored just tried. So you know you still need to ignore.

View File

@ -189,7 +189,7 @@ class C4ControlPlayerSelect : public C4ControlPacket // sync
{ {
public: public:
C4ControlPlayerSelect() C4ControlPlayerSelect()
: iPlr(-1), fIsAlt(false), iObjCnt(0), pObjNrs(NULL) { } : iPlr(-1), fIsAlt(false), iObjCnt(0), pObjNrs(nullptr) { }
C4ControlPlayerSelect(int32_t iPlr, const C4ObjectList &Objs, bool fIsAlt); C4ControlPlayerSelect(int32_t iPlr, const C4ObjectList &Objs, bool fIsAlt);
~C4ControlPlayerSelect() { delete[] pObjNrs; } ~C4ControlPlayerSelect() { delete[] pObjNrs; }
protected: protected:
@ -460,9 +460,9 @@ enum C4ControlEMObjectAction
class C4ControlEMMoveObject : public C4ControlPacket // sync class C4ControlEMMoveObject : public C4ControlPacket // sync
{ {
public: public:
C4ControlEMMoveObject() : eAction(EMMO_Move), tx(Fix0), ty(Fix0), iTargetObj(0), iObjectNum(0), pObjects(NULL) { } C4ControlEMMoveObject() : eAction(EMMO_Move), tx(Fix0), ty(Fix0), iTargetObj(0), iObjectNum(0), pObjects(nullptr) { }
C4ControlEMMoveObject(C4ControlEMObjectAction eAction, C4Real tx, C4Real ty, C4Object *pTargetObj, C4ControlEMMoveObject(C4ControlEMObjectAction eAction, C4Real tx, C4Real ty, C4Object *pTargetObj,
int32_t iObjectNum = 0, int32_t *pObjects = NULL, const char *szScript = NULL); int32_t iObjectNum = 0, int32_t *pObjects = nullptr, const char *szScript = nullptr);
static C4ControlEMMoveObject *CreateObject(const C4ID &id, C4Real x, C4Real y, C4Object *container); static C4ControlEMMoveObject *CreateObject(const C4ID &id, C4Real x, C4Real y, C4Object *container);
~C4ControlEMMoveObject(); ~C4ControlEMMoveObject();
protected: protected:
@ -494,8 +494,8 @@ public:
C4ControlEMDrawTool() : eAction(EMDT_SetMode), iX(0), iY(0), iX2(0), iY2(0), iGrade(0) { } C4ControlEMDrawTool() : eAction(EMDT_SetMode), iX(0), iY(0), iX2(0), iY2(0), iGrade(0) { }
C4ControlEMDrawTool(C4ControlEMDrawAction eAction, LandscapeMode iMode, C4ControlEMDrawTool(C4ControlEMDrawAction eAction, LandscapeMode iMode,
int32_t iX=-1, int32_t iY=-1, int32_t iX2=-1, int32_t iY2=-1, int32_t iGrade=-1, int32_t iX=-1, int32_t iY=-1, int32_t iX2=-1, int32_t iY2=-1, int32_t iGrade=-1,
const char *szMaterial=NULL, const char *szTexture=NULL, const char *szMaterial=nullptr, const char *szTexture=nullptr,
const char *szBackMaterial=NULL, const char *szBackTexture=NULL); const char *szBackMaterial=nullptr, const char *szBackTexture=nullptr);
protected: protected:
C4ControlEMDrawAction eAction; // action to be performed C4ControlEMDrawAction eAction; // action to be performed
LandscapeMode iMode; // new mode, or mode action was performed in (action will fail if changed) LandscapeMode iMode; // new mode, or mode action was performed in (action will fail if changed)

View File

@ -76,7 +76,7 @@ bool C4GameControl::InitReplay(C4Group &rGroup)
if (!pPlayback->Open(rGroup)) if (!pPlayback->Open(rGroup))
{ {
LogFatal(LoadResStr("IDS_ERR_REPLAYREAD")); LogFatal(LoadResStr("IDS_ERR_REPLAYREAD"));
delete pPlayback; pPlayback = NULL; delete pPlayback; pPlayback = nullptr;
return false; return false;
} }
// set mode // set mode
@ -110,7 +110,7 @@ void C4GameControl::ChangeToLocal()
} }
// replay: close playback // replay: close playback
else if (eMode == CM_Replay) else if (eMode == CM_Replay)
{ delete pPlayback; pPlayback = NULL; } { delete pPlayback; pPlayback = nullptr; }
// we're now managing our own player info list; make sure counter works // we're now managing our own player info list; make sure counter works
Game.PlayerInfos.FixIDCounter(); Game.PlayerInfos.FixIDCounter();
@ -143,7 +143,7 @@ bool C4GameControl::StartRecord(bool fInitial, bool fStreaming)
pRecord = new C4Record(); pRecord = new C4Record();
if (!pRecord->Start(fInitial)) if (!pRecord->Start(fInitial))
{ {
delete pRecord; pRecord = NULL; delete pRecord; pRecord = nullptr;
return false; return false;
} }
// streaming // streaming
@ -152,7 +152,7 @@ bool C4GameControl::StartRecord(bool fInitial, bool fStreaming)
if (!pRecord->StartStreaming(fInitial) || if (!pRecord->StartStreaming(fInitial) ||
!::Network.StartStreaming(pRecord)) !::Network.StartStreaming(pRecord))
{ {
delete pRecord; pRecord = NULL; delete pRecord; pRecord = nullptr;
return false; return false;
} }
} }
@ -170,7 +170,7 @@ void C4GameControl::StopRecord(StdStrBuf *pRecordName, BYTE *pRecordSHA1)
::Network.FinishStreaming(); ::Network.FinishStreaming();
pRecord->Stop(pRecordName, pRecordSHA1); pRecord->Stop(pRecordName, pRecordSHA1);
// just delete // just delete
delete pRecord; pRecord = NULL; delete pRecord; pRecord = nullptr;
} }
} }
@ -216,15 +216,15 @@ void C4GameControl::Default()
eMode = CM_None; eMode = CM_None;
fHost = fInitComplete = false; fHost = fInitComplete = false;
iClientID = C4ClientIDUnknown; iClientID = C4ClientIDUnknown;
pRecord = NULL; pRecord = nullptr;
pPlayback = NULL; pPlayback = nullptr;
SyncChecks.Clear(); SyncChecks.Clear();
ControlRate = Clamp<int>(Config.Network.ControlRate, 1, C4MaxControlRate); ControlRate = Clamp<int>(Config.Network.ControlRate, 1, C4MaxControlRate);
ControlTick = 0; ControlTick = 0;
SyncRate = C4SyncCheckRate; SyncRate = C4SyncCheckRate;
DoSync = false; DoSync = false;
fRecordNeeded = false; fRecordNeeded = false;
pExecutingControl = NULL; pExecutingControl = nullptr;
} }
bool C4GameControl::Prepare() bool C4GameControl::Prepare()
@ -317,7 +317,7 @@ void C4GameControl::Execute()
pExecutingControl = &Control; pExecutingControl = &Control;
Control.Execute(); Control.Execute();
Control.Clear(); Control.Clear();
pExecutingControl = NULL; pExecutingControl = nullptr;
// statistics record // statistics record
if (Game.pNetworkStatistics) Game.pNetworkStatistics->ExecuteControlFrame(); if (Game.pNetworkStatistics) Game.pNetworkStatistics->ExecuteControlFrame();
@ -505,7 +505,7 @@ C4ControlSyncCheck *C4GameControl::GetSyncCheck(int32_t iTick)
if (pCheck->getFrame() == iTick) if (pCheck->getFrame() == iTick)
return pCheck; return pCheck;
} }
return NULL; return nullptr;
} }
void C4GameControl::RemoveOldSyncChecks() void C4GameControl::RemoveOldSyncChecks()

View File

@ -120,7 +120,7 @@ public:
// records // records
bool StartRecord(bool fInitial, bool fStreaming); bool StartRecord(bool fInitial, bool fStreaming);
void StopRecord(StdStrBuf *pRecordName = NULL, BYTE *pRecordSHA1 = NULL); void StopRecord(StdStrBuf *pRecordName = nullptr, BYTE *pRecordSHA1 = nullptr);
void RequestRuntimeRecord(); void RequestRuntimeRecord();
bool IsRuntimeRecordPossible() const; bool IsRuntimeRecordPossible() const;
bool RecAddFile(const char *szLocalFilename, const char *szAddAs); bool RecAddFile(const char *szLocalFilename, const char *szAddAs);
@ -145,7 +145,7 @@ public:
// input // input
void DoInput(C4PacketType eCtrlType, C4ControlPacket *pPkt, C4ControlDeliveryType eDelivery); void DoInput(C4PacketType eCtrlType, C4ControlPacket *pPkt, C4ControlDeliveryType eDelivery);
void DbgRec(C4RecordChunkType eType, const uint8_t *pData=NULL, size_t iSize=0); // record debug stuff void DbgRec(C4RecordChunkType eType, const uint8_t *pData=nullptr, size_t iSize=0); // record debug stuff
C4ControlDeliveryType DecideControlDelivery(); C4ControlDeliveryType DecideControlDelivery();
// sync check // sync check

View File

@ -28,7 +28,7 @@
C4GameRes::C4GameRes() C4GameRes::C4GameRes()
: eType(NRT_Null), pResCore(NULL), pNetRes(NULL) : eType(NRT_Null), pResCore(nullptr), pNetRes(nullptr)
{ {
} }
@ -64,8 +64,8 @@ void C4GameRes::Clear()
File.Clear(); File.Clear();
if (pResCore && !pNetRes) if (pResCore && !pNetRes)
delete pResCore; delete pResCore;
pResCore = NULL; pResCore = nullptr;
pNetRes = NULL; pNetRes = nullptr;
} }
void C4GameRes::SetFile(C4Network2ResType enType, const char *sznFile) void C4GameRes::SetFile(C4Network2ResType enType, const char *sznFile)
@ -114,7 +114,7 @@ bool C4GameRes::Publish(C4Network2ResList *pNetResList)
bool fAllowUnloadable = false; bool fAllowUnloadable = false;
if (eType == NRT_Definitions) fAllowUnloadable = true; if (eType == NRT_Definitions) fAllowUnloadable = true;
// Add to network resource list // Add to network resource list
C4Network2Res::Ref pNetRes = pNetResList->AddByFile(File.getData(), false, eType, -1, NULL, fAllowUnloadable); C4Network2Res::Ref pNetRes = pNetResList->AddByFile(File.getData(), false, eType, -1, nullptr, fAllowUnloadable);
if (!pNetRes) return false; if (!pNetRes) return false;
// Set resource // Set resource
SetNetRes(pNetRes); SetNetRes(pNetRes);
@ -200,8 +200,8 @@ C4GameRes *C4GameResList::iterRes(C4GameRes *pLast, C4Network2ResType eType)
return pResList[i]; return pResList[i];
} }
else if (pLast == pResList[i]) else if (pLast == pResList[i])
pLast = NULL; pLast = nullptr;
return NULL; return nullptr;
} }
void C4GameResList::Clear() void C4GameResList::Clear()
@ -210,7 +210,7 @@ void C4GameResList::Clear()
for (int32_t i = 0; i < iResCount; i++) for (int32_t i = 0; i < iResCount; i++)
delete pResList[i]; delete pResList[i];
delete [] pResList; delete [] pResList;
pResList = NULL; pResList = nullptr;
iResCount = iResCapacity = 0; iResCount = iResCapacity = 0;
} }
@ -272,7 +272,7 @@ bool C4GameResList::Load(C4Group &hGroup, C4Scenario *pScenario, const char * sz
// add System.ocg // add System.ocg
CreateByFile(NRT_System, C4CFN_System); CreateByFile(NRT_System, C4CFN_System);
// add all instances of Material.ocg, except those inside the scenario file // add all instances of Material.ocg, except those inside the scenario file
C4Group *pMatParentGrp = NULL; C4Group *pMatParentGrp = nullptr;
while ((pMatParentGrp = Game.GroupSet.FindGroup(C4GSCnt_Material, pMatParentGrp))) while ((pMatParentGrp = Game.GroupSet.FindGroup(C4GSCnt_Material, pMatParentGrp)))
if (pMatParentGrp != &Game.ScenarioFile) if (pMatParentGrp != &Game.ScenarioFile)
{ {

View File

@ -68,7 +68,7 @@ private:
int32_t iResCount, iResCapacity; int32_t iResCount, iResCapacity;
public: public:
C4GameResList() : pResList(NULL), iResCount(0), iResCapacity(0) {} C4GameResList() : pResList(nullptr), iResCount(0), iResCapacity(0) {}
~C4GameResList() { Clear(); } ~C4GameResList() { Clear(); }
C4GameResList &operator = (const C4GameResList &List); C4GameResList &operator = (const C4GameResList &List);
@ -154,7 +154,7 @@ public:
bool InitNetwork(C4Network2ResList *pResList); bool InitNetwork(C4Network2ResList *pResList);
bool Save(C4Group &hGroup, C4Scenario *pDefault); bool Save(C4Group &hGroup, C4Scenario *pDefault);
void CompileFunc(StdCompiler *pComp, C4Scenario *pScenario = NULL); void CompileFunc(StdCompiler *pComp, C4Scenario *pScenario = nullptr);
}; };
#endif // C4GAMEPARAMETERS_H #endif // C4GAMEPARAMETERS_H

View File

@ -329,7 +329,7 @@ void C4GameSave::WriteDescNetworkClients(StdStrBuf &sBuf)
// Desc // Desc
sBuf.Append(LoadResStr("IDS_DESC_CLIENTS")); sBuf.Append(LoadResStr("IDS_DESC_CLIENTS"));
// Client names // Client names
for (C4Network2Client *pClient=::Network.Clients.GetNextClient(NULL); pClient; pClient=::Network.Clients.GetNextClient(pClient)) for (C4Network2Client *pClient=::Network.Clients.GetNextClient(nullptr); pClient; pClient=::Network.Clients.GetNextClient(pClient))
{ sBuf.Append(", "); sBuf.Append(pClient->getName()); } { sBuf.Append(", "); sBuf.Append(pClient->getName()); }
// End of line // End of line
WriteDescLineFeed(sBuf); WriteDescLineFeed(sBuf);
@ -402,7 +402,7 @@ bool C4GameSave::Save(const char *szFilename)
C4Group *pLSaveGroup = new C4Group(); C4Group *pLSaveGroup = new C4Group();
if (!SaveCreateGroup(szFilename, *pLSaveGroup)) if (!SaveCreateGroup(szFilename, *pLSaveGroup))
{ {
LogF(LoadResStr("IDS_ERR_SAVE_TARGETGRP"), szFilename ? szFilename : "NULL!"); LogF(LoadResStr("IDS_ERR_SAVE_TARGETGRP"), szFilename ? szFilename : "nullptr!");
delete pLSaveGroup; delete pLSaveGroup;
return false; return false;
} }
@ -459,7 +459,7 @@ bool C4GameSave::Close()
delete pSaveGroup; delete pSaveGroup;
fOwnGroup = false; fOwnGroup = false;
} }
pSaveGroup = NULL; pSaveGroup = nullptr;
} }
return fSuccess; return fSuccess;
} }

View File

@ -58,7 +58,7 @@ protected:
virtual bool GetKeepTitle() { return !IsExact(); } // whether original, localized title with image and icon shall be deleted virtual bool GetKeepTitle() { return !IsExact(); } // whether original, localized title with image and icon shall be deleted
virtual bool GetSaveDesc() { return true; } // should WriteDescData be executed in Save()-call? virtual bool GetSaveDesc() { return true; } // should WriteDescData be executed in Save()-call?
virtual bool GetCopyScenario() { return true; } // return whether the savegame depends on the game scenario file virtual bool GetCopyScenario() { return true; } // return whether the savegame depends on the game scenario file
virtual const char *GetSortOrder() { return C4FLS_Scenario; } // return NULL to prevent sorting virtual const char *GetSortOrder() { return C4FLS_Scenario; } // return nullptr to prevent sorting
virtual bool GetCreateSmallFile() { return false; } // return whether file size should be minimized virtual bool GetCreateSmallFile() { return false; } // return whether file size should be minimized
virtual bool GetForceExactLandscape() { return GetSaveRuntimeData() && IsExact(); } // whether exact landscape shall be saved virtual bool GetForceExactLandscape() { return GetSaveRuntimeData() && IsExact(); } // whether exact landscape shall be saved
virtual bool GetSaveOrigin() { return false; } // return whether C4S.Head.Origin shall be set virtual bool GetSaveOrigin() { return false; } // return whether C4S.Head.Origin shall be set
@ -79,7 +79,7 @@ protected:
bool IsSynced() { return Sync>=SyncSynchronized; } // synchronized bool IsSynced() { return Sync>=SyncSynchronized; } // synchronized
// protected constructor // protected constructor
C4GameSave(bool fAInitial, SyncState ASync) : pSaveGroup(NULL), fOwnGroup(false), fInitial(fAInitial), Sync(ASync) { } C4GameSave(bool fAInitial, SyncState ASync) : pSaveGroup(nullptr), fOwnGroup(false), fInitial(fAInitial), Sync(ASync) { }
protected: protected:
// some desc writing helpers // some desc writing helpers
void WriteDescLineFeed(StdStrBuf &sBuf); // append a line break to desc void WriteDescLineFeed(StdStrBuf &sBuf); // append a line break to desc

View File

@ -57,7 +57,7 @@ void C4PlayerControlDef::CompileFunc(StdCompiler *pComp)
{ {
{ "Game", COS_Game }, { "Game", COS_Game },
{ "Viewport", COS_Viewport }, { "Viewport", COS_Viewport },
{ NULL, COS_Game } { nullptr, COS_Game }
}; };
pComp->Value(mkNamingAdapt(mkEnumAdapt<CoordinateSpace, int32_t>(eCoordSpace, CoordSpaceNames), "CoordinateSpace", COS_Game)); pComp->Value(mkNamingAdapt(mkEnumAdapt<CoordinateSpace, int32_t>(eCoordSpace, CoordSpaceNames), "CoordinateSpace", COS_Game));
pComp->Value(mkNamingAdapt(fSendCursorPos, "SendCursorPos", false)); pComp->Value(mkNamingAdapt(fSendCursorPos, "SendCursorPos", false));
@ -83,7 +83,7 @@ void C4PlayerControlDef::CompileFunc(StdCompiler *pComp)
{ "ObjectMenuDown", CDA_ObjectMenuDown }, { "ObjectMenuDown", CDA_ObjectMenuDown },
{ "ZoomIn", CDA_ZoomIn }, { "ZoomIn", CDA_ZoomIn },
{ "ZoomOut", CDA_ZoomOut }, { "ZoomOut", CDA_ZoomOut },
{ NULL, CDA_None } { nullptr, CDA_None }
}; };
pComp->Value(mkNamingAdapt(mkEnumAdapt<Actions, int32_t>(eAction, ActionNames), "Action", CDA_Script)); pComp->Value(mkNamingAdapt(mkEnumAdapt<Actions, int32_t>(eAction, ActionNames), "Action", CDA_Script));
pComp->NameEnd(); pComp->NameEnd();
@ -156,7 +156,7 @@ void C4PlayerControlDefs::MergeFrom(const C4PlayerControlDefs &Src)
const C4PlayerControlDef *C4PlayerControlDefs::GetControlByIndex(int32_t idx) const const C4PlayerControlDef *C4PlayerControlDefs::GetControlByIndex(int32_t idx) const
{ {
// safe index // safe index
if (idx<0 || idx>=int32_t(Defs.size())) return NULL; if (idx<0 || idx>=int32_t(Defs.size())) return nullptr;
return &(Defs[idx]); return &(Defs[idx]);
} }
@ -229,7 +229,7 @@ void C4PlayerControlAssignment::CompileFunc(StdCompiler *pComp)
{ "Release", CTM_Release }, { "Release", CTM_Release },
{ "AlwaysUnhandled", CTM_AlwaysUnhandled }, { "AlwaysUnhandled", CTM_AlwaysUnhandled },
{ "ClearRecentKeys", CTM_ClearRecentKeys }, { "ClearRecentKeys", CTM_ClearRecentKeys },
{ NULL, 0 } { nullptr, 0 }
}; };
pComp->Value(mkNamingAdapt(mkBitfieldAdapt< int32_t>(iTriggerMode, TriggerModeNames), "TriggerMode", CTM_Default)); pComp->Value(mkNamingAdapt(mkBitfieldAdapt< int32_t>(iTriggerMode, TriggerModeNames), "TriggerMode", CTM_Default));
pComp->Value(mkNamingAdapt(fOverrideAssignments, "OverrideAssignments", false)); pComp->Value(mkNamingAdapt(fOverrideAssignments, "OverrideAssignments", false));
@ -462,7 +462,7 @@ const char *C4PlayerControlAssignment::GetGUIName(const C4PlayerControlDefs &def
const C4PlayerControlDef *def = defs.GetControlByIndex(GetControl()); const C4PlayerControlDef *def = defs.GetControlByIndex(GetControl());
if (def) return def->GetGUIName(); if (def) return def->GetGUIName();
// no def and no name... // no def and no name...
return NULL; return nullptr;
} }
const char *C4PlayerControlAssignment::GetGUIDesc(const C4PlayerControlDefs &defs) const const char *C4PlayerControlAssignment::GetGUIDesc(const C4PlayerControlDefs &defs) const
@ -473,7 +473,7 @@ const char *C4PlayerControlAssignment::GetGUIDesc(const C4PlayerControlDefs &def
const C4PlayerControlDef *def = defs.GetControlByIndex(GetControl()); const C4PlayerControlDef *def = defs.GetControlByIndex(GetControl());
if (def) return def->GetGUIDesc(); if (def) return def->GetGUIDesc();
// no def and no desc... // no def and no desc...
return NULL; return nullptr;
} }
bool C4PlayerControlAssignment::IsGUIDisabled() const bool C4PlayerControlAssignment::IsGUIDisabled() const
@ -614,7 +614,7 @@ void C4PlayerControlAssignmentSet::SortAssignments()
C4PlayerControlAssignment *C4PlayerControlAssignmentSet::GetAssignmentByIndex(int32_t index) C4PlayerControlAssignment *C4PlayerControlAssignmentSet::GetAssignmentByIndex(int32_t index)
{ {
if (index<0 || index>=int32_t(Assignments.size())) return NULL; if (index<0 || index>=int32_t(Assignments.size())) return nullptr;
return &Assignments[index]; return &Assignments[index];
} }
@ -625,7 +625,7 @@ C4PlayerControlAssignment *C4PlayerControlAssignmentSet::GetAssignmentByControlN
// We don't like release keys... (2do) // We don't like release keys... (2do)
if (!((*i).GetTriggerMode() & C4PlayerControlAssignment::CTM_Release)) if (!((*i).GetTriggerMode() & C4PlayerControlAssignment::CTM_Release))
return &*i; return &*i;
return NULL; return nullptr;
} }
C4PlayerControlAssignment *C4PlayerControlAssignmentSet::GetAssignmentByControl(int32_t control) C4PlayerControlAssignment *C4PlayerControlAssignmentSet::GetAssignmentByControl(int32_t control)
@ -636,7 +636,7 @@ C4PlayerControlAssignment *C4PlayerControlAssignmentSet::GetAssignmentByControl(
// We don't like release keys... (2do) // We don't like release keys... (2do)
if (!((*i).GetTriggerMode() & C4PlayerControlAssignment::CTM_Release)) if (!((*i).GetTriggerMode() & C4PlayerControlAssignment::CTM_Release))
return &*i; return &*i;
return NULL; return nullptr;
} }
bool C4PlayerControlAssignmentSet::operator ==(const C4PlayerControlAssignmentSet &cmp) const bool C4PlayerControlAssignmentSet::operator ==(const C4PlayerControlAssignmentSet &cmp) const
@ -805,13 +805,13 @@ C4PlayerControlAssignmentSet *C4PlayerControlAssignmentSets::GetSetByName(const
for (AssignmentSetList::iterator i = Sets.begin(); i != Sets.end(); ++i) for (AssignmentSetList::iterator i = Sets.begin(); i != Sets.end(); ++i)
if (WildcardMatch(szName, (*i).GetName())) if (WildcardMatch(szName, (*i).GetName()))
return &*i; return &*i;
return NULL; return nullptr;
} }
C4PlayerControlAssignmentSet *C4PlayerControlAssignmentSets::GetDefaultSet() C4PlayerControlAssignmentSet *C4PlayerControlAssignmentSets::GetDefaultSet()
{ {
// default set is first defined control set // default set is first defined control set
if (Sets.empty()) return NULL; // nothing defined :( if (Sets.empty()) return nullptr; // nothing defined :(
return &Sets.front(); return &Sets.front();
} }
@ -828,7 +828,7 @@ int32_t C4PlayerControlAssignmentSets::GetSetIndex(const C4PlayerControlAssignme
C4PlayerControlAssignmentSet *C4PlayerControlAssignmentSets::GetSetByIndex(int32_t index) C4PlayerControlAssignmentSet *C4PlayerControlAssignmentSets::GetSetByIndex(int32_t index)
{ {
// bounds check // bounds check
if (index < 0 || index >= (int32_t)Sets.size()) return NULL; if (index < 0 || index >= (int32_t)Sets.size()) return nullptr;
// return indexed set // return indexed set
AssignmentSetList::iterator i = Sets.begin(); AssignmentSetList::iterator i = Sets.begin();
while (index--) ++i; while (index--) ++i;
@ -913,7 +913,7 @@ bool C4PlayerControl::CSync::ControlDownState::operator ==(const ControlDownStat
const C4PlayerControl::CSync::ControlDownState *C4PlayerControl::CSync::GetControlDownState(int32_t iControl) const const C4PlayerControl::CSync::ControlDownState *C4PlayerControl::CSync::GetControlDownState(int32_t iControl) const
{ {
// safe access // safe access
if (iControl < 0 || iControl >= int32_t(ControlDownStates.size())) return NULL; if (iControl < 0 || iControl >= int32_t(ControlDownStates.size())) return nullptr;
return &ControlDownStates[iControl]; return &ControlDownStates[iControl];
} }
@ -1027,7 +1027,7 @@ bool C4PlayerControl::ProcessKeyEvent(const C4KeyCodeEx &pressed_key, const C4Ke
pControlSet->GetAssignmentsByKey(ControlDefs, matched_key, state != CONS_Down, &Matches, DownKeys, RecentKeys); pControlSet->GetAssignmentsByKey(ControlDefs, matched_key, state != CONS_Down, &Matches, DownKeys, RecentKeys);
// process async controls // process async controls
bool cursor_pos_added = false; bool cursor_pos_added = false;
C4ControlPlayerControl *pControlPacket = NULL; C4ControlPlayerControl *pControlPacket = nullptr;
for (C4PlayerControlAssignmentPVec::const_iterator i = Matches.begin(); i != Matches.end(); ++i) for (C4PlayerControlAssignmentPVec::const_iterator i = Matches.begin(); i != Matches.end(); ++i)
{ {
const C4PlayerControlAssignment *pAssignment = *i; const C4PlayerControlAssignment *pAssignment = *i;
@ -1253,10 +1253,10 @@ bool C4PlayerControl::ExecuteControlAction(int32_t iControl, C4PlayerControlDef:
// moved events don't make sense for menus and are only handled by script // moved events don't make sense for menus and are only handled by script
if (state == CONS_Moved && eAction != C4PlayerControlDef::CDA_Script) return false; if (state == CONS_Moved && eAction != C4PlayerControlDef::CDA_Script) return false;
// get affected player // get affected player
C4Player *pPlr = NULL; C4Player *pPlr = nullptr;
C4Viewport *pVP; C4Viewport *pVP;
C4Object *pCursor = NULL; C4Object *pCursor = nullptr;
C4Menu *pCursorMenu = NULL; C4Menu *pCursorMenu = nullptr;
if (iPlr > -1) if (iPlr > -1)
{ {
pPlr = ::Players.Get(iPlr); pPlr = ::Players.Get(iPlr);
@ -1370,14 +1370,14 @@ void C4PlayerControl::Execute()
if (irk != RecentKeys.begin()) RecentKeys.erase(RecentKeys.begin(), irk); if (irk != RecentKeys.begin()) RecentKeys.erase(RecentKeys.begin(), irk);
} }
C4PlayerControl::C4PlayerControl() : ControlDefs(Game.PlayerControlDefs), iPlr(-1), pControlSet(NULL), IsCursorPosRequested(false) C4PlayerControl::C4PlayerControl() : ControlDefs(Game.PlayerControlDefs), iPlr(-1), pControlSet(nullptr), IsCursorPosRequested(false)
{ {
} }
void C4PlayerControl::Clear() void C4PlayerControl::Clear()
{ {
iPlr = NO_OWNER; iPlr = NO_OWNER;
pControlSet = NULL; pControlSet = nullptr;
for (KeyBindingList::iterator i = KeyBindings.begin(); i != KeyBindings.end(); ++i) delete *i; for (KeyBindingList::iterator i = KeyBindings.begin(); i != KeyBindings.end(); ++i) delete *i;
KeyBindings.clear(); KeyBindings.clear();
RecentKeys.clear(); RecentKeys.clear();
@ -1406,7 +1406,7 @@ void C4PlayerControl::AddKeyBinding(const C4KeyCodeEx &key, bool fHoldKey, int32
{ {
KeyBindings.push_back(new C4KeyBinding( KeyBindings.push_back(new C4KeyBinding(
key, FormatString("PlrKey%02d", idx).getData(), KEYSCOPE_Control, key, FormatString("PlrKey%02d", idx).getData(), KEYSCOPE_Control,
new C4KeyCBExPassKey<C4PlayerControl, C4KeyCodeEx>(*this, key, &C4PlayerControl::ProcessKeyDown, fHoldKey ? &C4PlayerControl::ProcessKeyUp : NULL, NULL, fHoldKey ? &C4PlayerControl::ProcessKeyMoved : NULL), new C4KeyCBExPassKey<C4PlayerControl, C4KeyCodeEx>(*this, key, &C4PlayerControl::ProcessKeyDown, fHoldKey ? &C4PlayerControl::ProcessKeyUp : nullptr, nullptr, fHoldKey ? &C4PlayerControl::ProcessKeyMoved : nullptr),
C4CustomKey::PRIO_PlrControl)); C4CustomKey::PRIO_PlrControl));
} }

View File

@ -193,7 +193,7 @@ public:
C4PlayerControlAssignment() : C4PlayerControlAssignment() :
TriggerKey(), fOverrideAssignments(false), is_inherited(false), fRefsResolved(false), TriggerKey(), fOverrideAssignments(false), is_inherited(false), fRefsResolved(false),
iGUIGroup(0), iControl(CON_None), iPriority(0), iTriggerMode(CTM_Default), iGUIGroup(0), iControl(CON_None), iPriority(0), iTriggerMode(CTM_Default),
inherited_assignment(NULL) inherited_assignment(nullptr)
{} {}
~C4PlayerControlAssignment() {} ~C4PlayerControlAssignment() {}
@ -245,7 +245,7 @@ private:
bool has_gamepad; bool has_gamepad;
public: public:
C4PlayerControlAssignmentSet() : parent_set(NULL), has_keyboard(true), has_mouse(true), has_gamepad(false) {} C4PlayerControlAssignmentSet() : parent_set(nullptr), has_keyboard(true), has_mouse(true), has_gamepad(false) {}
~C4PlayerControlAssignmentSet() {} ~C4PlayerControlAssignmentSet() {}
void InitEmptyFromTemplate(const C4PlayerControlAssignmentSet &template_set); // copy all fields except assignments void InitEmptyFromTemplate(const C4PlayerControlAssignmentSet &template_set); // copy all fields except assignments
@ -345,7 +345,7 @@ private:
int32_t iPlr; int32_t iPlr;
// async values // async values
C4PlayerControlAssignmentSet *pControlSet; // the control set used by this player - may be NULL if the player cannot be controlled! C4PlayerControlAssignmentSet *pControlSet; // the control set used by this player - may be nullptr if the player cannot be controlled!
typedef std::list<C4KeyBinding *> KeyBindingList; typedef std::list<C4KeyBinding *> KeyBindingList;
KeyBindingList KeyBindings; // keys registered into Game.KeyboardInput KeyBindingList KeyBindings; // keys registered into Game.KeyboardInput
C4PlayerControlRecentKeyList RecentKeys; // keys pressed recently; for combinations C4PlayerControlRecentKeyList RecentKeys; // keys pressed recently; for combinations
@ -392,7 +392,7 @@ private:
CSync Sync; CSync Sync;
// callbacks from Game.KeyboardInput // callbacks from Game.KeyboardInput
bool ProcessKeyEvent(const C4KeyCodeEx &pressed_key, const C4KeyCodeEx &matched_key, ControlState state, const C4KeyEventData &rKeyExtraData, bool reset_down_states_only=false, bool *clear_recent_keys=NULL); bool ProcessKeyEvent(const C4KeyCodeEx &pressed_key, const C4KeyCodeEx &matched_key, ControlState state, const C4KeyEventData &rKeyExtraData, bool reset_down_states_only=false, bool *clear_recent_keys=nullptr);
bool ProcessKeyDown(const C4KeyCodeEx &pressed_key, const C4KeyCodeEx &matched_key); bool ProcessKeyDown(const C4KeyCodeEx &pressed_key, const C4KeyCodeEx &matched_key);
bool ProcessKeyUp(const C4KeyCodeEx &pressed_key, const C4KeyCodeEx &matched_key); bool ProcessKeyUp(const C4KeyCodeEx &pressed_key, const C4KeyCodeEx &matched_key);
bool ProcessKeyMoved(const C4KeyCodeEx &pressed_key, const C4KeyCodeEx &matched_key); bool ProcessKeyMoved(const C4KeyCodeEx &pressed_key, const C4KeyCodeEx &matched_key);

View File

@ -37,7 +37,7 @@ void C4PlayerInfo::Clear()
DeleteTempFile(); DeleteTempFile();
// clear fields // clear fields
sName.Clear(); szFilename.Clear(); sName.Clear(); szFilename.Clear();
pRes = NULL; pRes = nullptr;
ResCore.Clear(); ResCore.Clear();
// default fields // default fields
dwColor = dwOriginalColor = 0xffffffff; dwColor = dwOriginalColor = 0xffffffff;
@ -194,7 +194,7 @@ void C4PlayerInfo::CompileFunc(StdCompiler *pComp)
{ "NoScenarioInit", PIF_NoScenarioInit }, { "NoScenarioInit", PIF_NoScenarioInit },
{ "NoEliminationCheck", PIF_NoEliminationCheck }, { "NoEliminationCheck", PIF_NoEliminationCheck },
{ "Invisible", PIF_Invisible}, { "Invisible", PIF_Invisible},
{ NULL, 0 }, { nullptr, 0 },
}; };
uint16_t dwSyncFlags = dwFlags & PIF_SyncFlags; // do not store local flags! uint16_t dwSyncFlags = dwFlags & PIF_SyncFlags; // do not store local flags!
pComp->Value(mkNamingAdapt(mkBitfieldAdapt(dwSyncFlags, Entries), "Flags", 0u)); pComp->Value(mkNamingAdapt(mkBitfieldAdapt(dwSyncFlags, Entries), "Flags", 0u));
@ -207,7 +207,7 @@ void C4PlayerInfo::CompileFunc(StdCompiler *pComp)
{ "User", C4PT_User }, { "User", C4PT_User },
{ "Script", C4PT_Script }, { "Script", C4PT_Script },
{ NULL, C4PT_User }, { nullptr, C4PT_User },
}; };
pComp->Value(mkNamingAdapt(mkEnumAdaptT<uint8_t>(eType, PlayerTypes), "Type", C4PT_User)); pComp->Value(mkNamingAdapt(mkEnumAdaptT<uint8_t>(eType, PlayerTypes), "Type", C4PT_User));
@ -314,7 +314,7 @@ void C4PlayerInfo::DiscardResource()
if (pRes) if (pRes)
{ {
assert(dwFlags & PIF_HasRes); assert(dwFlags & PIF_HasRes);
pRes = NULL; pRes = nullptr;
dwFlags &= ~PIF_HasRes; dwFlags &= ~PIF_HasRes;
} }
else assert(~dwFlags & PIF_HasRes); else assert(~dwFlags & PIF_HasRes);
@ -353,7 +353,7 @@ bool C4PlayerInfo::LoadBigIcon(C4FacetSurface &fctTarget)
bool fSuccess = false; bool fSuccess = false;
// load BigIcon.png of player into target facet; return false if no bigicon present or player file not yet loaded // load BigIcon.png of player into target facet; return false if no bigicon present or player file not yet loaded
C4Group Plr; C4Group Plr;
C4Network2Res *pRes = NULL; C4Network2Res *pRes = nullptr;
bool fIncompleteRes = false; bool fIncompleteRes = false;
if ((pRes = GetRes())) if ((pRes = GetRes()))
if (!pRes->isComplete()) if (!pRes->isComplete())
@ -372,7 +372,7 @@ bool C4PlayerInfo::LoadBigIcon(C4FacetSurface &fctTarget)
// *** C4ClientPlayerInfos // *** C4ClientPlayerInfos
C4ClientPlayerInfos::C4ClientPlayerInfos(const char *szJoinFilenames, bool fAdd, C4PlayerInfo *pAddInfo) C4ClientPlayerInfos::C4ClientPlayerInfos(const char *szJoinFilenames, bool fAdd, C4PlayerInfo *pAddInfo)
: iPlayerCount(0), iPlayerCapacity(0), ppPlayers(NULL), iClientID(-1), dwFlags(0) : iPlayerCount(0), iPlayerCapacity(0), ppPlayers(nullptr), iClientID(-1), dwFlags(0)
{ {
// init for local client? // init for local client?
if (szJoinFilenames || pAddInfo) if (szJoinFilenames || pAddInfo)
@ -437,7 +437,7 @@ C4ClientPlayerInfos::C4ClientPlayerInfos(const C4ClientPlayerInfos &rCopy)
// no players // no players
else else
{ {
ppPlayers = NULL; ppPlayers = nullptr;
iPlayerCapacity = 0; iPlayerCapacity = 0;
} }
// misc fields // misc fields
@ -460,7 +460,7 @@ C4ClientPlayerInfos &C4ClientPlayerInfos::operator = (const C4ClientPlayerInfos
// no players // no players
else else
{ {
ppPlayers = NULL; ppPlayers = nullptr;
iPlayerCapacity = 0; iPlayerCapacity = 0;
} }
// misc fields // misc fields
@ -475,7 +475,7 @@ void C4ClientPlayerInfos::Clear()
int32_t i = iPlayerCount; C4PlayerInfo **ppCurrPlrInfo = ppPlayers; int32_t i = iPlayerCount; C4PlayerInfo **ppCurrPlrInfo = ppPlayers;
while (i--) delete *ppCurrPlrInfo++; while (i--) delete *ppCurrPlrInfo++;
// del player info vector // del player info vector
delete [] ppPlayers; ppPlayers = NULL; delete [] ppPlayers; ppPlayers = nullptr;
// reset other fields // reset other fields
iPlayerCount = iPlayerCapacity = 0; iPlayerCount = iPlayerCapacity = 0;
iClientID=-1; iClientID=-1;
@ -496,13 +496,13 @@ void C4ClientPlayerInfos::GrabMergeFrom(C4ClientPlayerInfos &rFrom)
memcpy(ppPlayers + iPlayerCount, rFrom.ppPlayers, rFrom.iPlayerCount * sizeof(C4PlayerInfo *)); memcpy(ppPlayers + iPlayerCount, rFrom.ppPlayers, rFrom.iPlayerCount * sizeof(C4PlayerInfo *));
iPlayerCount += rFrom.iPlayerCount; iPlayerCount += rFrom.iPlayerCount;
rFrom.iPlayerCount = rFrom.iPlayerCapacity = 0; rFrom.iPlayerCount = rFrom.iPlayerCapacity = 0;
delete [] rFrom.ppPlayers; rFrom.ppPlayers = NULL; delete [] rFrom.ppPlayers; rFrom.ppPlayers = nullptr;
} }
else else
{ {
// no own players: take over buffer of pFrom // no own players: take over buffer of pFrom
if (ppPlayers) delete [] ppPlayers; if (ppPlayers) delete [] ppPlayers;
ppPlayers = rFrom.ppPlayers; rFrom.ppPlayers = NULL; ppPlayers = rFrom.ppPlayers; rFrom.ppPlayers = nullptr;
iPlayerCount = rFrom.iPlayerCount; rFrom.iPlayerCount = 0; iPlayerCount = rFrom.iPlayerCount; rFrom.iPlayerCount = 0;
iPlayerCapacity = rFrom.iPlayerCapacity; rFrom.iPlayerCapacity = 0; iPlayerCapacity = rFrom.iPlayerCapacity; rFrom.iPlayerCapacity = 0;
} }
@ -571,7 +571,7 @@ int32_t C4ClientPlayerInfos::GetFlaggedPlayerCount(DWORD dwFlag) const
C4PlayerInfo *C4ClientPlayerInfos::GetPlayerInfo(int32_t iIndex) const C4PlayerInfo *C4ClientPlayerInfos::GetPlayerInfo(int32_t iIndex) const
{ {
// check range // check range
if (iIndex<0 || iIndex>=iPlayerCount) return NULL; if (iIndex<0 || iIndex>=iPlayerCount) return nullptr;
// return indexed info // return indexed info
return ppPlayers[iIndex]; return ppPlayers[iIndex];
} }
@ -587,7 +587,7 @@ C4PlayerInfo *C4ClientPlayerInfos::GetPlayerInfo(int32_t iIndex, C4PlayerType eT
return pNfo; return pNfo;
} }
// nothing found // nothing found
return NULL; return nullptr;
} }
C4PlayerInfo *C4ClientPlayerInfos::GetPlayerInfoByID(int32_t id) const C4PlayerInfo *C4ClientPlayerInfos::GetPlayerInfoByID(int32_t id) const
@ -600,7 +600,7 @@ C4PlayerInfo *C4ClientPlayerInfos::GetPlayerInfoByID(int32_t id) const
++ppCurrPlrInfo; ++ppCurrPlrInfo;
} }
// none matched // none matched
return NULL; return nullptr;
} }
C4PlayerInfo *C4ClientPlayerInfos::GetPlayerInfoByRes(int32_t idResID) const C4PlayerInfo *C4ClientPlayerInfos::GetPlayerInfoByRes(int32_t idResID) const
@ -616,7 +616,7 @@ C4PlayerInfo *C4ClientPlayerInfos::GetPlayerInfoByRes(int32_t idResID) const
return *ppCurrPlrInfo; return *ppCurrPlrInfo;
++ppCurrPlrInfo; ++ppCurrPlrInfo;
} }
return NULL; return nullptr;
} }
bool C4ClientPlayerInfos::HasUnjoinedPlayers() const bool C4ClientPlayerInfos::HasUnjoinedPlayers() const
@ -650,7 +650,7 @@ void C4ClientPlayerInfos::CompileFunc(StdCompiler *pComp)
{ "Initial", CIF_Initial }, { "Initial", CIF_Initial },
{ "Developer", CIF_Developer }, { "Developer", CIF_Developer },
{ NULL, 0 } { nullptr, 0 }
}; };
pComp->Value(mkNamingAdapt(mkBitfieldAdapt(dwFlags, Entries), "Flags", 0u)); pComp->Value(mkNamingAdapt(mkBitfieldAdapt(dwFlags, Entries), "Flags", 0u));
@ -678,13 +678,13 @@ void C4ClientPlayerInfos::LoadResources()
// *** C4PlayerInfoList // *** C4PlayerInfoList
C4PlayerInfoList::C4PlayerInfoList() : iClientCount(0), iClientCapacity(0), ppClients(NULL), iLastPlayerID(0) C4PlayerInfoList::C4PlayerInfoList() : iClientCount(0), iClientCapacity(0), ppClients(nullptr), iLastPlayerID(0)
{ {
// ctor: no need to alloc mem yet // ctor: no need to alloc mem yet
} }
C4PlayerInfoList::C4PlayerInfoList(const C4PlayerInfoList &rCpy) : iClientCount(rCpy.iClientCount), iClientCapacity(rCpy.iClientCapacity), C4PlayerInfoList::C4PlayerInfoList(const C4PlayerInfoList &rCpy) : iClientCount(rCpy.iClientCount), iClientCapacity(rCpy.iClientCapacity),
ppClients(NULL), iLastPlayerID(rCpy.iLastPlayerID) ppClients(nullptr), iLastPlayerID(rCpy.iLastPlayerID)
{ {
// copy client info vector // copy client info vector
if (rCpy.ppClients) if (rCpy.ppClients)
@ -710,7 +710,7 @@ C4PlayerInfoList &C4PlayerInfoList::operator = (const C4PlayerInfoList &rCpy)
while (i--) *ppInfo++ = new C4ClientPlayerInfos(**ppCpy++); while (i--) *ppInfo++ = new C4ClientPlayerInfos(**ppCpy++);
} }
else else
ppClients = NULL; ppClients = nullptr;
return *this; return *this;
} }
@ -720,7 +720,7 @@ void C4PlayerInfoList::Clear()
C4ClientPlayerInfos **ppInfo = ppClients; int32_t i=iClientCount; C4ClientPlayerInfos **ppInfo = ppClients; int32_t i=iClientCount;
while (i--) delete *ppInfo++; while (i--) delete *ppInfo++;
// clear client infos // clear client infos
delete [] ppClients; ppClients = NULL; delete [] ppClients; ppClients = nullptr;
iClientCount = iClientCapacity = 0; iClientCount = iClientCapacity = 0;
// reset player ID counter // reset player ID counter
iLastPlayerID = 0; iLastPlayerID = 0;
@ -831,7 +831,7 @@ void C4PlayerInfoList::UpdatePlayerAttributes()
C4ClientPlayerInfos *pForInfo; C4ClientPlayerInfos *pForInfo;
while ((pForInfo = GetIndexedInfo(iIdx++))) UpdatePlayerAttributes(pForInfo, false); while ((pForInfo = GetIndexedInfo(iIdx++))) UpdatePlayerAttributes(pForInfo, false);
// now resole all conflicts // now resole all conflicts
ResolvePlayerAttributeConflicts(NULL); ResolvePlayerAttributeConflicts(nullptr);
} }
bool C4PlayerInfoList::AssignPlayerIDs(C4ClientPlayerInfos *pNewClientInfo) bool C4PlayerInfoList::AssignPlayerIDs(C4ClientPlayerInfos *pNewClientInfo)
@ -898,7 +898,7 @@ C4ClientPlayerInfos *C4PlayerInfoList::AddInfo(C4ClientPlayerInfos *pNewClientIn
{ {
// no players could be added (probably MaxPlayer) // no players could be added (probably MaxPlayer)
delete pNewClientInfo; delete pNewClientInfo;
return NULL; return nullptr;
} }
} }
// ensure all teams specified in the list exist (this should be done for savegame teams as well) // ensure all teams specified in the list exist (this should be done for savegame teams as well)
@ -940,7 +940,7 @@ C4ClientPlayerInfos **C4PlayerInfoList::GetInfoPtrByClientID(int32_t iClientID)
// search list // search list
for (int32_t i=0; i<iClientCount; ++i) if (ppClients[i]->GetClientID() == iClientID) return ppClients+i; for (int32_t i=0; i<iClientCount; ++i) if (ppClients[i]->GetClientID() == iClientID) return ppClients+i;
// nothing found // nothing found
return NULL; return nullptr;
} }
int32_t C4PlayerInfoList::GetPlayerCount() const int32_t C4PlayerInfoList::GetPlayerCount() const
@ -1061,7 +1061,7 @@ C4PlayerInfo *C4PlayerInfoList::GetPlayerInfoByIndex(int32_t index) const
return pInfo; return pInfo;
} }
// nothing found // nothing found
return NULL; return nullptr;
} }
C4PlayerInfo *C4PlayerInfoList::GetPlayerInfoByID(int32_t id) const C4PlayerInfo *C4PlayerInfoList::GetPlayerInfoByID(int32_t id) const
@ -1076,7 +1076,7 @@ C4PlayerInfo *C4PlayerInfoList::GetPlayerInfoByID(int32_t id) const
if (pInfo->GetID() == id) return pInfo; if (pInfo->GetID() == id) return pInfo;
} }
// nothing found // nothing found
return NULL; return nullptr;
} }
C4ClientPlayerInfos *C4PlayerInfoList::GetClientInfoByPlayerID(int32_t id) const C4ClientPlayerInfos *C4PlayerInfoList::GetClientInfoByPlayerID(int32_t id) const
@ -1090,7 +1090,7 @@ C4ClientPlayerInfos *C4PlayerInfoList::GetClientInfoByPlayerID(int32_t id) const
if (pInfo->GetID() == id) return ppClients[i]; if (pInfo->GetID() == id) return ppClients[i];
} }
// nothing found // nothing found
return NULL; return nullptr;
} }
C4PlayerInfo *C4PlayerInfoList::GetPlayerInfoByID(int32_t id, int32_t *pidClient) const C4PlayerInfo *C4PlayerInfoList::GetPlayerInfoByID(int32_t id, int32_t *pidClient) const
@ -1109,7 +1109,7 @@ C4PlayerInfo *C4PlayerInfoList::GetPlayerInfoByID(int32_t id, int32_t *pidClient
} }
} }
// nothing found // nothing found
return NULL; return nullptr;
} }
C4PlayerInfo *C4PlayerInfoList::GetPlayerInfoBySavegameID(int32_t id) const C4PlayerInfo *C4PlayerInfoList::GetPlayerInfoBySavegameID(int32_t id) const
@ -1124,13 +1124,13 @@ C4PlayerInfo *C4PlayerInfoList::GetPlayerInfoBySavegameID(int32_t id) const
if (pInfo->GetAssociatedSavegamePlayerID() == id) return pInfo; if (pInfo->GetAssociatedSavegamePlayerID() == id) return pInfo;
} }
// nothing found // nothing found
return NULL; return nullptr;
} }
C4PlayerInfo *C4PlayerInfoList::GetNextPlayerInfoByID(int32_t id) const C4PlayerInfo *C4PlayerInfoList::GetNextPlayerInfoByID(int32_t id) const
{ {
// check all packets for players // check all packets for players
C4PlayerInfo *pSmallest=NULL; C4PlayerInfo *pSmallest=nullptr;
for (int32_t i=0; i<iClientCount; ++i) for (int32_t i=0; i<iClientCount; ++i)
{ {
int32_t j=0; C4PlayerInfo *pInfo; int32_t j=0; C4PlayerInfo *pInfo;
@ -1155,7 +1155,7 @@ C4PlayerInfo *C4PlayerInfoList::GetActivePlayerInfoByName(const char *szName)
return pInfo; return pInfo;
} }
// nothing found // nothing found
return NULL; return nullptr;
} }
C4PlayerInfo *C4PlayerInfoList::FindSavegameResumePlayerInfo(const C4PlayerInfo *pMatchInfo, MatchingLevel mlMatchStart, MatchingLevel mlMatchEnd) const C4PlayerInfo *C4PlayerInfoList::FindSavegameResumePlayerInfo(const C4PlayerInfo *pMatchInfo, MatchingLevel mlMatchStart, MatchingLevel mlMatchEnd) const
@ -1189,7 +1189,7 @@ C4PlayerInfo *C4PlayerInfoList::FindSavegameResumePlayerInfo(const C4PlayerInfo
} }
} }
// no match // no match
return NULL; return nullptr;
} }
C4PlayerInfo *C4PlayerInfoList::FindUnassociatedRestoreInfo(const C4PlayerInfoList &rRestoreInfoList) C4PlayerInfo *C4PlayerInfoList::FindUnassociatedRestoreInfo(const C4PlayerInfoList &rRestoreInfoList)
@ -1206,7 +1206,7 @@ C4PlayerInfo *C4PlayerInfoList::FindUnassociatedRestoreInfo(const C4PlayerInfoLi
return pRestoreInfo; return pRestoreInfo;
} }
// no unassociated info found // no unassociated info found
return NULL; return nullptr;
} }
bool C4PlayerInfoList::HasSameTeamPlayers(int32_t iClient1, int32_t iClient2) const bool C4PlayerInfoList::HasSameTeamPlayers(int32_t iClient1, int32_t iClient2) const
@ -1578,7 +1578,7 @@ bool C4PlayerInfoList::RecreatePlayers(C4ValueNumbers * numbers)
const char *szName = pInfo->GetName(); const char *szName = pInfo->GetName();
if (!::Network.RetrieveRes(pJoinRes->getCore(), C4NetResRetrieveTimeout, if (!::Network.RetrieveRes(pJoinRes->getCore(), C4NetResRetrieveTimeout,
FormatString(LoadResStr("IDS_NET_RES_PLRFILE"), szName).getData())) FormatString(LoadResStr("IDS_NET_RES_PLRFILE"), szName).getData()))
szFilename=NULL; szFilename=nullptr;
} }
// file present? // file present?
if (!szFilename || !*szFilename) if (!szFilename || !*szFilename)
@ -1593,7 +1593,7 @@ bool C4PlayerInfoList::RecreatePlayers(C4ValueNumbers * numbers)
else else
{ {
// for script players: Recreation without filename OK // for script players: Recreation without filename OK
szFilename = NULL; szFilename = nullptr;
} }
} }
// record file handling: Save to the record file in the manner it's expected by C4PlayerInfoList::RecreatePlayers // record file handling: Save to the record file in the manner it's expected by C4PlayerInfoList::RecreatePlayers
@ -1652,7 +1652,7 @@ bool C4PlayerInfoList::SetAsRestoreInfos(C4PlayerInfoList &rFromPlayers, bool fS
if (pInfo->IsJoined()) if (pInfo->IsJoined())
{ {
// pre-reset filename // pre-reset filename
pInfo->SetFilename(NULL); pInfo->SetFilename(nullptr);
if (pInfo->GetType() == C4PT_User) if (pInfo->GetType() == C4PT_User)
{ {
fKeepInfo = fSaveUserPlrs; fKeepInfo = fSaveUserPlrs;

View File

@ -229,7 +229,7 @@ private:
uint32_t dwFlags; // bit mask of the above flags uint32_t dwFlags; // bit mask of the above flags
public: public:
C4ClientPlayerInfos(const char *szJoinFilenames=NULL, bool fAdd=false, C4PlayerInfo *pAddInfo=NULL); // ctor; sets local data (or makes an add-player-packet if filename is given) if par is true C4ClientPlayerInfos(const char *szJoinFilenames=nullptr, bool fAdd=false, C4PlayerInfo *pAddInfo=nullptr); // ctor; sets local data (or makes an add-player-packet if filename is given) if par is true
C4ClientPlayerInfos(const C4ClientPlayerInfos &rCopy); // copy ctor C4ClientPlayerInfos(const C4ClientPlayerInfos &rCopy); // copy ctor
~C4ClientPlayerInfos() { Clear(); } // dtor ~C4ClientPlayerInfos() { Clear(); } // dtor
@ -357,10 +357,10 @@ public:
// query functions // query functions
int32_t GetInfoCount() const { return iClientCount; } // get number of registered client infos int32_t GetInfoCount() const { return iClientCount; } // get number of registered client infos
C4ClientPlayerInfos *GetIndexedInfo(int32_t iIndex) const // get client player infos by indexed C4ClientPlayerInfos *GetIndexedInfo(int32_t iIndex) const // get client player infos by indexed
{ return (ppClients && Inside<int32_t>(iIndex, 0, iClientCount-1)) ? ppClients[iIndex] : NULL; } { return (ppClients && Inside<int32_t>(iIndex, 0, iClientCount-1)) ? ppClients[iIndex] : nullptr; }
C4ClientPlayerInfos **GetInfoPtrByClientID(int32_t iClientID) const; // get info for a specific client ID C4ClientPlayerInfos **GetInfoPtrByClientID(int32_t iClientID) const; // get info for a specific client ID
C4ClientPlayerInfos *GetInfoByClientID(int32_t iClientID) const C4ClientPlayerInfos *GetInfoByClientID(int32_t iClientID) const
{ C4ClientPlayerInfos **ppNfo = GetInfoPtrByClientID(iClientID); return ppNfo ? *ppNfo : NULL; } { C4ClientPlayerInfos **ppNfo = GetInfoPtrByClientID(iClientID); return ppNfo ? *ppNfo : nullptr; }
C4PlayerInfo *GetPlayerInfoByIndex(int32_t index) const; // get player info by index (for running through all players regardless of clients or ids) C4PlayerInfo *GetPlayerInfoByIndex(int32_t index) const; // get player info by index (for running through all players regardless of clients or ids)
C4PlayerInfo *GetPlayerInfoByID(int32_t id) const; // get player info by unique player ID C4PlayerInfo *GetPlayerInfoByID(int32_t id) const; // get player info by unique player ID
C4PlayerInfo *GetPlayerInfoByID(int32_t id, int32_t *pidClient) const; // get player info by unique player ID, and assign associated client C4PlayerInfo *GetPlayerInfoByID(int32_t id, int32_t *pidClient) const; // get player info by unique player ID, and assign associated client
@ -377,7 +377,7 @@ public:
C4PlayerInfo *GetPrimaryInfoByClientID(int32_t iClientID) const C4PlayerInfo *GetPrimaryInfoByClientID(int32_t iClientID) const
{ {
C4ClientPlayerInfos *pInfoPkt = GetInfoByClientID(iClientID); C4ClientPlayerInfos *pInfoPkt = GetInfoByClientID(iClientID);
if (!pInfoPkt) return NULL; if (!pInfoPkt) return nullptr;
return pInfoPkt->GetPlayerInfo(0); return pInfoPkt->GetPlayerInfo(0);
} }
C4PlayerInfo *FindSavegameResumePlayerInfo(const C4PlayerInfo *pMatchInfo, MatchingLevel mlMatchStart, MatchingLevel mlMatchEnd) const; // automatic savegame player association: Associate by name (or prefcolor, if none matches) C4PlayerInfo *FindSavegameResumePlayerInfo(const C4PlayerInfo *pMatchInfo, MatchingLevel mlMatchStart, MatchingLevel mlMatchEnd) const; // automatic savegame player association: Associate by name (or prefcolor, if none matches)
@ -388,7 +388,7 @@ public:
{ *ppRemoveInfo = ppClients[--iClientCount]; /* maybe redundant self-assignment; no vector shrink */ } { *ppRemoveInfo = ppClients[--iClientCount]; /* maybe redundant self-assignment; no vector shrink */ }
public: public:
bool Load(C4Group &hGroup, const char *szFromFile, class C4LangStringTable *pLang=NULL); // clear self and load from group file bool Load(C4Group &hGroup, const char *szFromFile, class C4LangStringTable *pLang=nullptr); // clear self and load from group file
bool Save(C4Group &hGroup, const char *szToFile); // save to group file bool Save(C4Group &hGroup, const char *szToFile); // save to group file
// external ID counter manipulation used by C4Game // external ID counter manipulation used by C4Game

View File

@ -112,7 +112,7 @@ void C4PlayerInfoList::ResolvePlayerAttributeConflicts(C4ClientPlayerInfos *pSec
// implementation of conflict resolver // implementation of conflict resolver
C4PlayerInfoListAttributeConflictResolver::C4PlayerInfoListAttributeConflictResolver(C4PlayerInfoList &rPriCheckList, const C4PlayerInfoList &rSecCheckList, C4ClientPlayerInfos *pSecPacket) C4PlayerInfoListAttributeConflictResolver::C4PlayerInfoListAttributeConflictResolver(C4PlayerInfoList &rPriCheckList, const C4PlayerInfoList &rSecCheckList, C4ClientPlayerInfos *pSecPacket)
: ppCheckInfos(NULL), iCheckInfoCount(0), rPriCheckList(rPriCheckList), rSecCheckList(rSecCheckList), pSecPacket(pSecPacket) : ppCheckInfos(nullptr), iCheckInfoCount(0), rPriCheckList(rPriCheckList), rSecCheckList(rSecCheckList), pSecPacket(pSecPacket)
{ {
// prepare check array // prepare check array
int32_t iMaxCheckCount = rPriCheckList.GetInfoCount() + !!pSecPacket; int32_t iMaxCheckCount = rPriCheckList.GetInfoCount() + !!pSecPacket;
@ -127,7 +127,7 @@ C4PlayerInfoListAttributeConflictResolver::C4PlayerInfoListAttributeConflictReso
else else
{ {
// if the additional packet is in the list already, it needn't be a check packed (only resolve packet) // if the additional packet is in the list already, it needn't be a check packed (only resolve packet)
this->pSecPacket = NULL; this->pSecPacket = nullptr;
} }
} }
// must check sec packet first // must check sec packet first
@ -226,7 +226,7 @@ void C4PlayerInfoListAttributeConflictResolver::MarkConflicts(C4ClientPlayerInfo
{ {
// original attribute is taken by either one higher/equal priority by packet, or by two low prio packets // original attribute is taken by either one higher/equal priority by packet, or by two low prio packets
// in this case, don't revert to original // in this case, don't revert to original
pLowPrioOriginalConflictPacket = NULL; pLowPrioOriginalConflictPacket = nullptr;
fOriginalConflict = true; fOriginalConflict = true;
} }
} }
@ -260,7 +260,7 @@ void C4PlayerInfoListAttributeConflictResolver::ResolveInInfo()
{ {
// check against all other player infos, and given info, too (may be redundant) // check against all other player infos, and given info, too (may be redundant)
fCurrentConflict = false; fCurrentConflict = false;
pLowPrioOriginalConflictPacket = pLowPrioAlternateConflictPacket = NULL; pLowPrioOriginalConflictPacket = pLowPrioAlternateConflictPacket = nullptr;
MarkConflicts(rPriCheckList, !iTries); MarkConflicts(rPriCheckList, !iTries);
// check secondary list, too. But only for colors, not for names, because secondary list is Restore list // check secondary list, too. But only for colors, not for names, because secondary list is Restore list
// and colors are retained in restore while names are always taken from new joins // and colors are retained in restore while names are always taken from new joins
@ -322,7 +322,7 @@ void C4PlayerInfoListAttributeConflictResolver::ResolveInInfo()
if (!fOriginalConflict) if (!fOriginalConflict)
{ {
// revert to original name! // revert to original name!
pResolveInfo->SetForcedName(NULL); pResolveInfo->SetForcedName(nullptr);
if (pLowPrioOriginalConflictPacket) ReaddInfoForCheck(pLowPrioOriginalConflictPacket); if (pLowPrioOriginalConflictPacket) ReaddInfoForCheck(pLowPrioOriginalConflictPacket);
// done with this player (breaking the trial-loop) // done with this player (breaking the trial-loop)
break; break;

View File

@ -68,7 +68,7 @@ void C4PktDebugRec::CompileFunc(StdCompiler *pComp)
} }
C4RecordChunk::C4RecordChunk() C4RecordChunk::C4RecordChunk()
: pCtrl(NULL) : pCtrl(nullptr)
{ {
} }
@ -77,12 +77,12 @@ void C4RecordChunk::Delete()
{ {
switch (Type) switch (Type)
{ {
case RCT_Ctrl: delete pCtrl; pCtrl = NULL; break; case RCT_Ctrl: delete pCtrl; pCtrl = nullptr; break;
case RCT_CtrlPkt: delete pPkt; pPkt = NULL; break; case RCT_CtrlPkt: delete pPkt; pPkt = nullptr; break;
case RCT_End: break; case RCT_End: break;
case RCT_Frame: break; case RCT_Frame: break;
case RCT_File: delete pFileData; break; case RCT_File: delete pFileData; break;
default: delete pDbg; pDbg = NULL; break; default: delete pDbg; pDbg = nullptr; break;
} }
} }
@ -592,7 +592,7 @@ bool C4Playback::ReadBinary(const StdBuf &Buf)
return false; return false;
} }
// Add to list // Add to list
chunks.push_back(c); c.pPkt = NULL; chunks.push_back(c); c.pPkt = nullptr;
iFrame = c.Frame; iFrame = c.Frame;
} }
while (!fFinished); while (!fFinished);
@ -887,7 +887,7 @@ bool C4Playback::ExecuteControl(C4Control *pCtrl, int iFrame)
{ {
DebugRec.Add(CID_DebugRec, currChunk->pDbg); DebugRec.Add(CID_DebugRec, currChunk->pDbg);
// the debugrec buffer is now responsible for deleting the packet // the debugrec buffer is now responsible for deleting the packet
currChunk->pDbg = NULL; currChunk->pDbg = nullptr;
} }
break; break;
} }

View File

@ -90,7 +90,7 @@ enum C4RecordChunkType // record file chunk type
RCT_Undefined = 0xff RCT_Undefined = 0xff
}; };
void AddDbgRec(C4RecordChunkType eType, const void *pData=NULL, int iSize=0); // record debug stuff void AddDbgRec(C4RecordChunkType eType, const void *pData=nullptr, int iSize=0); // record debug stuff
#pragma pack(1) #pragma pack(1)
@ -263,7 +263,7 @@ public:
const StdBuf &GetStreamingBuf() const { return StreamingData; } const StdBuf &GetStreamingBuf() const { return StreamingData; }
bool Start(bool fInitial); bool Start(bool fInitial);
bool Stop(StdStrBuf *pRecordName = NULL, BYTE *pRecordSHA1 = NULL); bool Stop(StdStrBuf *pRecordName = nullptr, BYTE *pRecordSHA1 = nullptr);
bool Rec(const C4Control &Ctrl, int iFrame); // record control bool Rec(const C4Control &Ctrl, int iFrame); // record control
bool Rec(C4PacketType eCtrlType, C4ControlPacket *pCtrl, int iFrame); // record control packet bool Rec(C4PacketType eCtrlType, C4ControlPacket *pCtrl, int iFrame); // record control packet

View File

@ -140,7 +140,7 @@ void C4RoundResultsPlayers::Clear()
{ {
while (iPlayerCount) delete ppPlayers[--iPlayerCount]; while (iPlayerCount) delete ppPlayers[--iPlayerCount];
delete [] ppPlayers; delete [] ppPlayers;
ppPlayers = NULL; ppPlayers = nullptr;
iPlayerCapacity = 0; iPlayerCapacity = 0;
} }
@ -170,7 +170,7 @@ C4RoundResultsPlayer *C4RoundResultsPlayers::GetByIndex(int32_t idx) const
if (idx>=0 && idx<iPlayerCount) if (idx>=0 && idx<iPlayerCount)
return ppPlayers[idx]; return ppPlayers[idx];
else else
return NULL; return nullptr;
} }
C4RoundResultsPlayer *C4RoundResultsPlayers::GetByID(int32_t id) const C4RoundResultsPlayer *C4RoundResultsPlayers::GetByID(int32_t id) const
@ -178,7 +178,7 @@ C4RoundResultsPlayer *C4RoundResultsPlayers::GetByID(int32_t id) const
for (int32_t idx=0; idx<iPlayerCount; ++idx) for (int32_t idx=0; idx<iPlayerCount; ++idx)
if (ppPlayers[idx]->GetID() == id) if (ppPlayers[idx]->GetID() == id)
return ppPlayers[idx]; return ppPlayers[idx];
return NULL; return nullptr;
} }
void C4RoundResultsPlayers::GrowList(size_t iByVal) void C4RoundResultsPlayers::GrowList(size_t iByVal)
@ -289,7 +289,7 @@ void C4RoundResults::EvaluateGoals(C4IDList &GoalList, C4IDList &FulfilledGoalLi
{ {
// determine if the goal is fulfilled - do the calls even if the menu is not to be opened to ensure synchronization // determine if the goal is fulfilled - do the calls even if the menu is not to be opened to ensure synchronization
bool fFulfilled = false;; bool fFulfilled = false;;
C4Object *pObj = C4Id2Def(idGoal) ? ::Objects.Find(::Definitions.ID2Def(idGoal)) : NULL; C4Object *pObj = C4Id2Def(idGoal) ? ::Objects.Find(::Definitions.ID2Def(idGoal)) : nullptr;
if (pObj) if (pObj)
{ {
// Check fulfilled per player, this enables the possibility of rivalry. // Check fulfilled per player, this enables the possibility of rivalry.

View File

@ -98,8 +98,8 @@ private:
int32_t iPlayerCount, iPlayerCapacity; int32_t iPlayerCount, iPlayerCapacity;
public: public:
C4RoundResultsPlayers() : ppPlayers(NULL), iPlayerCount(0), iPlayerCapacity(0) {} C4RoundResultsPlayers() : ppPlayers(nullptr), iPlayerCount(0), iPlayerCapacity(0) {}
C4RoundResultsPlayers(const C4RoundResultsPlayers &cpy) : ppPlayers(NULL), iPlayerCount(0), iPlayerCapacity(0) { *this=cpy; } C4RoundResultsPlayers(const C4RoundResultsPlayers &cpy) : ppPlayers(nullptr), iPlayerCount(0), iPlayerCapacity(0) { *this=cpy; }
~C4RoundResultsPlayers() { Clear(); } ~C4RoundResultsPlayers() { Clear(); }
void Clear(); void Clear();

View File

@ -44,7 +44,7 @@ C4Team::C4Team(const C4Team &rCopy)
void C4Team::Clear() void C4Team::Clear()
{ {
delete [] piPlayers; piPlayers = NULL; delete [] piPlayers; piPlayers = nullptr;
iPlayerCount = iPlayerCapacity = iMaxPlayer = 0; iPlayerCount = iPlayerCapacity = iMaxPlayer = 0;
iID = 0; *Name=0; iID = 0; *Name=0;
sIconSpec.Clear(); sIconSpec.Clear();
@ -258,7 +258,7 @@ void C4TeamList::Clear()
// del all teams // del all teams
ClearTeams(); ClearTeams();
// del player team vector // del player team vector
delete [] ppList; ppList = NULL; delete [] ppList; ppList = nullptr;
iTeamCapacity = 0; iTeamCapacity = 0;
fAllowHostilityChange = true; fAllowHostilityChange = true;
fAllowTeamSwitch = false; fAllowTeamSwitch = false;
@ -315,7 +315,7 @@ bool C4TeamList::CanLocalChooseTeam(int32_t idPlayer) const
// always possible if teams are generated on the fly // always possible if teams are generated on the fly
if (IsAutoGenerateTeams()) return true; if (IsAutoGenerateTeams()) return true;
// also possible if one of the teams that's not the player's is not full // also possible if one of the teams that's not the player's is not full
C4Team *pCurrentTeam = NULL, *pCheck; C4Team *pCurrentTeam = nullptr, *pCheck;
if (idPlayer) pCurrentTeam = GetTeamByPlayerID(idPlayer); if (idPlayer) pCurrentTeam = GetTeamByPlayerID(idPlayer);
int32_t iCheckTeam=0; int32_t iCheckTeam=0;
while ((pCheck = GetTeamByIndex(iCheckTeam++))) while ((pCheck = GetTeamByIndex(iCheckTeam++)))
@ -385,13 +385,13 @@ C4Team *C4TeamList::GetTeamByID(int32_t iID) const
{ {
C4Team **ppCheck=ppList; int32_t iCnt=iTeamCount; C4Team **ppCheck=ppList; int32_t iCnt=iTeamCount;
for (; iCnt--; ++ppCheck) if ((*ppCheck)->GetID() == iID) return *ppCheck; for (; iCnt--; ++ppCheck) if ((*ppCheck)->GetID() == iID) return *ppCheck;
return NULL; return nullptr;
} }
C4Team *C4TeamList::GetGenerateTeamByID(int32_t iID) C4Team *C4TeamList::GetGenerateTeamByID(int32_t iID)
{ {
// only if enabled // only if enabled
if (!IsMultiTeams()) return NULL; if (!IsMultiTeams()) return nullptr;
// new team? // new team?
if (iID == TEAMID_New) iID = GetLargestTeamID()+1; if (iID == TEAMID_New) iID = GetLargestTeamID()+1;
// find in list // find in list
@ -405,7 +405,7 @@ C4Team *C4TeamList::GetGenerateTeamByID(int32_t iID)
C4Team *C4TeamList::GetTeamByIndex(int32_t iIndex) const C4Team *C4TeamList::GetTeamByIndex(int32_t iIndex) const
{ {
// safety // safety
if (!Inside<int32_t>(iIndex, 0, iTeamCount-1)) return NULL; if (!Inside<int32_t>(iIndex, 0, iTeamCount-1)) return nullptr;
// direct list access // direct list access
return ppList[iIndex]; return ppList[iIndex];
} }
@ -415,14 +415,14 @@ C4Team *C4TeamList::GetTeamByName(const char *szName) const
assert(szName); assert(szName);
C4Team **ppCheck=ppList; int32_t iCnt=iTeamCount; C4Team **ppCheck=ppList; int32_t iCnt=iTeamCount;
for (; iCnt--; ++ppCheck) if (SEqual((*ppCheck)->GetName(), szName)) return *ppCheck; for (; iCnt--; ++ppCheck) if (SEqual((*ppCheck)->GetName(), szName)) return *ppCheck;
return NULL; return nullptr;
} }
C4Team *C4TeamList::GetTeamByPlayerID(int32_t iID) const C4Team *C4TeamList::GetTeamByPlayerID(int32_t iID) const
{ {
C4Team **ppCheck=ppList; int32_t iCnt=iTeamCount; C4Team **ppCheck=ppList; int32_t iCnt=iTeamCount;
for (; iCnt--; ++ppCheck) if ((*ppCheck)->IsPlayerIDInTeam(iID)) return *ppCheck; for (; iCnt--; ++ppCheck) if ((*ppCheck)->IsPlayerIDInTeam(iID)) return *ppCheck;
return NULL; return nullptr;
} }
int32_t C4TeamList::GetLargestTeamID() const int32_t C4TeamList::GetLargestTeamID() const
@ -435,7 +435,7 @@ int32_t C4TeamList::GetLargestTeamID() const
C4Team *C4TeamList::GetRandomSmallestTeam() const C4Team *C4TeamList::GetRandomSmallestTeam() const
{ {
C4Team *pLowestTeam = NULL; int iLowestTeamCount = 0; C4Team *pLowestTeam = nullptr; int iLowestTeamCount = 0;
C4Team **ppCheck=ppList; int32_t iCnt=iTeamCount; C4Team **ppCheck=ppList; int32_t iCnt=iTeamCount;
for (; iCnt--; ++ppCheck) for (; iCnt--; ++ppCheck)
{ {
@ -496,7 +496,7 @@ bool C4TeamList::RecheckPlayerInfoTeams(C4PlayerInfo &rNewJoin, bool fByHost)
bool fIsTeamNeeded = IsRuntimeJoinTeamChoice() || GetTeamCount(); bool fIsTeamNeeded = IsRuntimeJoinTeamChoice() || GetTeamCount();
if (!fHasOrWillHaveLobby && (!fIsTeamNeeded || fCanPickTeamAtRuntime)) return false; if (!fHasOrWillHaveLobby && (!fIsTeamNeeded || fCanPickTeamAtRuntime)) return false;
// get least-used team // get least-used team
C4Team *pAssignTeam=NULL; C4Team *pAssignTeam=nullptr;
C4Team *pLowestTeam = GetRandomSmallestTeam(); C4Team *pLowestTeam = GetRandomSmallestTeam();
// melee mode // melee mode
if (IsAutoGenerateTeams() && !IsRandomTeam()) if (IsAutoGenerateTeams() && !IsRandomTeam())
@ -580,7 +580,7 @@ void C4TeamList::CompileFunc(StdCompiler *pComp)
memset(ppList, 0, sizeof(C4Team *)*iTeamCapacity); memset(ppList, 0, sizeof(C4Team *)*iTeamCapacity);
} }
else else
ppList = NULL; ppList = nullptr;
} }
if (iTeamCount) if (iTeamCount)
@ -685,7 +685,7 @@ void C4TeamList::RecheckTeams()
C4Team *pLowestTeam = GetRandomSmallestTeam(); C4Team *pLowestTeam = GetRandomSmallestTeam();
if (!pLowestTeam) break; // no teams: Nothing to re-distribute. if (!pLowestTeam) break; // no teams: Nothing to re-distribute.
// get largest team that has relocateable players // get largest team that has relocateable players
C4Team *pLargestTeam = NULL; C4Team *pLargestTeam = nullptr;
C4Team **ppCheck=ppList; int32_t iCnt=iTeamCount; C4Team **ppCheck=ppList; int32_t iCnt=iTeamCount;
for (; iCnt--; ++ppCheck) if (!pLargestTeam || pLargestTeam->GetPlayerCount() > (*ppCheck)->GetPlayerCount()) for (; iCnt--; ++ppCheck) if (!pLargestTeam || pLargestTeam->GetPlayerCount() > (*ppCheck)->GetPlayerCount())
if ((*ppCheck)->GetFirstUnjoinedPlayerID()) if ((*ppCheck)->GetFirstUnjoinedPlayerID())
@ -851,7 +851,7 @@ void C4TeamList::EnforceLeagueRules()
int32_t C4TeamList::GetForcedTeamSelection(int32_t idForPlayer) const int32_t C4TeamList::GetForcedTeamSelection(int32_t idForPlayer) const
{ {
// if there's only one team for the player to join, return that team ID // if there's only one team for the player to join, return that team ID
C4Team *pOKTeam = NULL, *pCheck; C4Team *pOKTeam = nullptr, *pCheck;
if (idForPlayer) pOKTeam = GetTeamByPlayerID(idForPlayer); // curent team is always possible, even if full if (idForPlayer) pOKTeam = GetTeamByPlayerID(idForPlayer); // curent team is always possible, even if full
int32_t iCheckTeam=0; int32_t iCheckTeam=0;
while ((pCheck = GetTeamByIndex(iCheckTeam++))) while ((pCheck = GetTeamByIndex(iCheckTeam++)))

View File

@ -53,7 +53,7 @@ protected:
friend class C4TeamList; friend class C4TeamList;
public: public:
C4Team() : piPlayers(NULL), iPlayerCount(0), iPlayerCapacity(0), iID(0), iPlrStartIndex(0), dwClr(0), iMaxPlayer(0) { *Name=0; } C4Team() : piPlayers(nullptr), iPlayerCount(0), iPlayerCapacity(0), iID(0), iPlrStartIndex(0), dwClr(0), iMaxPlayer(0) { *Name=0; }
~C4Team() { Clear(); } ~C4Team() { Clear(); }
void Clear(); void Clear();
@ -131,7 +131,7 @@ private:
StdStrBuf sScriptPlayerNames; // default script player names StdStrBuf sScriptPlayerNames; // default script player names
public: public:
C4TeamList() : ppList(NULL), iTeamCount(0), iTeamCapacity(0), iLastTeamID(0), fAllowHostilityChange(true), fAllowTeamSwitch(false), C4TeamList() : ppList(nullptr), iTeamCount(0), iTeamCapacity(0), iLastTeamID(0), fAllowHostilityChange(true), fAllowTeamSwitch(false),
fActive(true), fCustom(false), fTeamColors(false), fAutoGenerateTeams(false), eTeamDist(TEAMDIST_Free), iMaxScriptPlayers(0) {} fActive(true), fCustom(false), fTeamColors(false), fAutoGenerateTeams(false), eTeamDist(TEAMDIST_Free), iMaxScriptPlayers(0) {}
~C4TeamList() { Clear(); } ~C4TeamList() { Clear(); }
void Clear(); void Clear();

View File

@ -52,7 +52,7 @@ C4Console::C4Console(): C4ConsoleGUI()
fGameOpen=false; fGameOpen=false;
#ifdef USE_WIN32_WINDOWS #ifdef USE_WIN32_WINDOWS
hWindow=NULL; hWindow=nullptr;
#endif #endif
} }
@ -229,7 +229,7 @@ bool C4Console::FileSave()
{ {
// Save game // Save game
// FIXME: What about editing a savegame inplace? (Game.C4S.Head.SaveGame) // FIXME: What about editing a savegame inplace? (Game.C4S.Head.SaveGame)
return SaveScenario(NULL); return SaveScenario(nullptr);
} }
bool C4Console::FileSaveAs(bool fSaveGame) bool C4Console::FileSaveAs(bool fSaveGame)
@ -501,7 +501,7 @@ void C4Console::UpdateNetMenu()
str.Format(LoadResStr("IDS_MNU_NETHOST"),Game.Clients.getLocalName(),Game.Clients.getLocalID()); str.Format(LoadResStr("IDS_MNU_NETHOST"),Game.Clients.getLocalName(),Game.Clients.getLocalID());
AddNetMenuItemForPlayer(Game.Clients.getLocalID(), str.getData(), C4ConsoleGUI::CO_None); AddNetMenuItemForPlayer(Game.Clients.getLocalID(), str.getData(), C4ConsoleGUI::CO_None);
// Clients // Clients
for (C4Network2Client *pClient=::Network.Clients.GetNextClient(NULL); pClient; pClient=::Network.Clients.GetNextClient(pClient)) for (C4Network2Client *pClient=::Network.Clients.GetNextClient(nullptr); pClient; pClient=::Network.Clients.GetNextClient(pClient))
{ {
if (pClient->isHost()) continue; if (pClient->isHost()) continue;
str.Format(LoadResStr(pClient->isActivated() ? "IDS_MNU_NETCLIENT_DEACTIVATE" : "IDS_MNU_NETCLIENT_ACTIVATE"), str.Format(LoadResStr(pClient->isActivated() ? "IDS_MNU_NETCLIENT_DEACTIVATE" : "IDS_MNU_NETCLIENT_ACTIVATE"),
@ -574,7 +574,7 @@ std::list<const char *> C4Console::GetScriptSuggestions(C4PropList *target, Rece
const std::list<StdCopyStrBuf> &mru = recent_script_input[section]; const std::list<StdCopyStrBuf> &mru = recent_script_input[section];
if (!mru.empty()) if (!mru.empty())
{ {
functions.insert(functions.begin(), NULL); functions.insert(functions.begin(), nullptr);
// add pointers into string buffer list // add pointers into string buffer list
// do not iterate with for (auto i : mru) because this would copy the buffer and add stack pointers // do not iterate with for (auto i : mru) because this would copy the buffer and add stack pointers
for (auto i = mru.begin(); i != mru.end(); ++i) for (auto i = mru.begin(); i != mru.end(); ++i)

View File

@ -77,7 +77,7 @@ public:
bool FileSaveAs(bool fSaveGame); bool FileSaveAs(bool fSaveGame);
bool FileSave(); bool FileSave();
bool FileNew(); bool FileNew();
bool FileOpen(const char *filename=NULL); bool FileOpen(const char *filename=nullptr);
bool FileOpenWPlrs(); bool FileOpenWPlrs();
bool FileCommand(); bool FileCommand();
bool FileClose(); bool FileClose();

View File

@ -86,7 +86,7 @@ void C4ConsoleGUI::SetInputFunctions(std::list<const char*> &functions)
C4Window* C4ConsoleGUI::CreateConsoleWindow(C4AbstractApp *application) C4Window* C4ConsoleGUI::CreateConsoleWindow(C4AbstractApp *application)
{ {
if (!state->CreateConsoleWindow(application)) return NULL; if (!state->CreateConsoleWindow(application)) return nullptr;
Active = true; Active = true;
EnableControls(fGameOpen); EnableControls(fGameOpen);
return this; return this;
@ -116,7 +116,7 @@ bool C4ConsoleGUI::ClearLog()
void C4ConsoleGUI::DisplayInfoText(InfoTextType type, StdStrBuf& text) void C4ConsoleGUI::DisplayInfoText(InfoTextType type, StdStrBuf& text)
{ {
QLabel *target = NULL; QLabel *target = nullptr;
switch (type) switch (type)
{ {
case CONSOLE_Cursor: target = state->status_cursor; break; case CONSOLE_Cursor: target = state->status_cursor; break;

View File

@ -84,7 +84,7 @@ void C4ConsoleQtDefinitionListModel::ReInit()
{ {
// Find if path is already there // Find if path is already there
RemoveExtension(&fn); RemoveExtension(&fn);
DefListNode *node_child = NULL; DefListNode *node_child = nullptr;
for (auto &test_node_child : node_parent->items) for (auto &test_node_child : node_parent->items)
if (test_node_child->filename == fn) if (test_node_child->filename == fn)
{ {
@ -174,7 +174,7 @@ void C4ConsoleQtDefinitionListModel::OnItemRemoved(C4Def *p)
class C4Def *C4ConsoleQtDefinitionListModel::GetDefByModelIndex(const QModelIndex &idx) class C4Def *C4ConsoleQtDefinitionListModel::GetDefByModelIndex(const QModelIndex &idx)
{ {
DefListNode *node = static_cast<DefListNode *>(idx.internalPointer()); DefListNode *node = static_cast<DefListNode *>(idx.internalPointer());
if (node) return node->def; else return NULL; if (node) return node->def; else return nullptr;
} }
const char *C4ConsoleQtDefinitionListModel::GetNameByModelIndex(const QModelIndex &idx) const char *C4ConsoleQtDefinitionListModel::GetNameByModelIndex(const QModelIndex &idx)
@ -186,7 +186,7 @@ const char *C4ConsoleQtDefinitionListModel::GetNameByModelIndex(const QModelInde
int C4ConsoleQtDefinitionListModel::rowCount(const QModelIndex & parent) const int C4ConsoleQtDefinitionListModel::rowCount(const QModelIndex & parent) const
{ {
int result = 0; int result = 0;
DefListNode *parent_node = parent.isValid() ? static_cast<DefListNode *>(parent.internalPointer()) : NULL; DefListNode *parent_node = parent.isValid() ? static_cast<DefListNode *>(parent.internalPointer()) : nullptr;
if (!parent_node) parent_node = root.get(); if (!parent_node) parent_node = root.get();
if (parent_node) result = parent_node->items.size(); if (parent_node) result = parent_node->items.size();
return result; return result;
@ -214,7 +214,7 @@ QModelIndex C4ConsoleQtDefinitionListModel::index(int row, int column, const QMo
{ {
// Current index out of range? // Current index out of range?
if (row < 0 || column != 0) return QModelIndex(); if (row < 0 || column != 0) return QModelIndex();
DefListNode *parent_node = parent.isValid() ? static_cast<DefListNode *>(parent.internalPointer()) : NULL; DefListNode *parent_node = parent.isValid() ? static_cast<DefListNode *>(parent.internalPointer()) : nullptr;
if (!parent_node) parent_node = root.get(); if (!parent_node) parent_node = root.get();
if (parent_node->items.size() <= row) return QModelIndex(); if (parent_node->items.size() <= row) return QModelIndex();
// Index into tree // Index into tree

View File

@ -41,7 +41,7 @@ class C4ConsoleQtDefinitionListModel : public QAbstractItemModel
int32_t idx; int32_t idx;
DefListNode *parent; DefListNode *parent;
DefListNode() : def(NULL), idx(0), parent(NULL) {} DefListNode() : def(nullptr), idx(0), parent(nullptr) {}
void SortByName(); // sort self and children void SortByName(); // sort self and children
}; };
std::unique_ptr<DefListNode> root; std::unique_ptr<DefListNode> root;

View File

@ -36,7 +36,7 @@ C4ConsoleQtDefinitionFileListModel::DefFileInfo::DefFileInfo(C4ConsoleQtDefiniti
} }
C4ConsoleQtDefinitionFileListModel::DefFileInfo::DefFileInfo() C4ConsoleQtDefinitionFileListModel::DefFileInfo::DefFileInfo()
: parent(NULL), was_opened(true), is_root(true), selected(false), disabled(false) : parent(nullptr), was_opened(true), is_root(true), selected(false), disabled(false)
{ {
// Init as root: List definitions in root paths // Init as root: List definitions in root paths
// Objects.ocd is always there (even if not actually found) and always first // Objects.ocd is always there (even if not actually found) and always first
@ -101,7 +101,7 @@ bool C4ConsoleQtDefinitionFileListModel::DefFileInfo::OpenGroup()
children.reserve(grp.EntryCount(C4CFN_DefFiles)); children.reserve(grp.EntryCount(C4CFN_DefFiles));
grp.ResetSearch(); grp.ResetSearch();
while (grp.FindNextEntry(C4CFN_DefFiles, &child_filename)) while (grp.FindNextEntry(C4CFN_DefFiles, &child_filename))
children.emplace_back(new DefFileInfo(this, child_filename.getData(), NULL)); children.emplace_back(new DefFileInfo(this, child_filename.getData(), nullptr));
return true; return true;
} }
@ -114,7 +114,7 @@ int32_t C4ConsoleQtDefinitionFileListModel::DefFileInfo::GetChildCount()
C4ConsoleQtDefinitionFileListModel::DefFileInfo *C4ConsoleQtDefinitionFileListModel::DefFileInfo::GetChild(int32_t index) C4ConsoleQtDefinitionFileListModel::DefFileInfo *C4ConsoleQtDefinitionFileListModel::DefFileInfo::GetChild(int32_t index)
{ {
if (!was_opened) OpenGroup(); if (!was_opened) OpenGroup();
if (index >= children.size()) return NULL; if (index >= children.size()) return nullptr;
return children[index].get(); return children[index].get();
} }
@ -351,7 +351,7 @@ void C4ConsoleQtNewScenarioDlg::BrowsePressed()
QString new_file; QString new_file;
for (;;) for (;;)
{ {
new_file = QFileDialog::getSaveFileName(this, LoadResStr("IDS_CNS_NEWSCENARIO"), Config.General.UserDataPath, QString("%1 (%2)").arg(LoadResStr("IDS_CNS_SCENARIOFILE")).arg(C4CFN_ScenarioFiles), NULL, QFileDialog::DontConfirmOverwrite); new_file = QFileDialog::getSaveFileName(this, LoadResStr("IDS_CNS_NEWSCENARIO"), Config.General.UserDataPath, QString("%1 (%2)").arg(LoadResStr("IDS_CNS_SCENARIOFILE")).arg(C4CFN_ScenarioFiles), nullptr, QFileDialog::DontConfirmOverwrite);
if (!new_file.size()) return; if (!new_file.size()) return;
// Extension must be .ocs // Extension must be .ocs
if (!new_file.endsWith(C4CFN_ScenarioFiles + 1)) new_file += (C4CFN_ScenarioFiles + 1); if (!new_file.endsWith(C4CFN_ScenarioFiles + 1)) new_file += (C4CFN_ScenarioFiles + 1);

View File

@ -39,7 +39,7 @@ C4ConsoleQtObjectListModel::C4ConsoleQtObjectListModel() : last_row_count(0)
C4ConsoleQtObjectListModel::~C4ConsoleQtObjectListModel() C4ConsoleQtObjectListModel::~C4ConsoleQtObjectListModel()
{ {
::Console.ObjectListDlg.SetModel(NULL); ::Console.ObjectListDlg.SetModel(nullptr);
} }
void C4ConsoleQtObjectListModel::Invalidate() void C4ConsoleQtObjectListModel::Invalidate()

View File

@ -1252,7 +1252,7 @@ void C4PropertyDelegateEnum::UpdateEditorParameter(C4PropertyDelegateEnum::Edito
if (editor->parameter_widget) if (editor->parameter_widget)
{ {
editor->parameter_widget->deleteLater(); editor->parameter_widget->deleteLater();
editor->parameter_widget = NULL; editor->parameter_widget = nullptr;
} }
editor->paint_parameter_delegate = nullptr; editor->paint_parameter_delegate = nullptr;
int32_t idx = editor->last_selection_index; int32_t idx = editor->last_selection_index;
@ -1926,7 +1926,7 @@ C4PropertyDelegateC4ValueEnum::C4PropertyDelegateC4ValueEnum(const C4PropertyDel
/* C4Value via an edit field delegate */ /* C4Value via an edit field delegate */
C4PropertyDelegateC4ValueInputEditor::C4PropertyDelegateC4ValueInputEditor(QWidget *parent) C4PropertyDelegateC4ValueInputEditor::C4PropertyDelegateC4ValueInputEditor(QWidget *parent)
: QWidget(parent), layout(NULL), edit(NULL), extended_button(NULL), commit_pending(false) : QWidget(parent), layout(nullptr), edit(nullptr), extended_button(nullptr), commit_pending(false)
{ {
layout = new QHBoxLayout(this); layout = new QHBoxLayout(this);
layout->setContentsMargins(0, 0, 0, 0); layout->setContentsMargins(0, 0, 0, 0);
@ -2363,7 +2363,7 @@ C4PropertyDelegate *C4PropertyDelegateFactory::GetDelegateByValue(const C4Value
C4PropertyDelegate *C4PropertyDelegateFactory::GetDelegateByIndex(const QModelIndex &index) const C4PropertyDelegate *C4PropertyDelegateFactory::GetDelegateByIndex(const QModelIndex &index) const
{ {
C4ConsoleQtPropListModel::Property *prop = property_model->GetPropByIndex(index); C4ConsoleQtPropListModel::Property *prop = property_model->GetPropByIndex(index);
if (!prop) return NULL; if (!prop) return nullptr;
if (!prop->delegate) prop->delegate = GetDelegateByValue(prop->delegate_info); if (!prop->delegate) prop->delegate = GetDelegateByValue(prop->delegate_info);
return prop->delegate; return prop->delegate;
} }
@ -2418,7 +2418,7 @@ void C4PropertyDelegateFactory::SetPropertyData(const C4PropertyDelegate *d, QOb
QWidget *C4PropertyDelegateFactory::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const QWidget *C4PropertyDelegateFactory::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{ {
C4PropertyDelegate *d = GetDelegateByIndex(index); C4PropertyDelegate *d = GetDelegateByIndex(index);
if (!d) return NULL; if (!d) return nullptr;
C4ConsoleQtPropListModel::Property *prop = property_model->GetPropByIndex(index); C4ConsoleQtPropListModel::Property *prop = property_model->GetPropByIndex(index);
prop->about_to_edit = true; prop->about_to_edit = true;
QWidget *editor = d->CreateEditor(this, parent, option, true, false); QWidget *editor = d->CreateEditor(this, parent, option, true, false);
@ -2950,7 +2950,7 @@ int32_t C4ConsoleQtPropListModel::UpdateValuePropList(C4PropList *target_proplis
internal_properties.props[i].help_text = nullptr; internal_properties.props[i].help_text = nullptr;
internal_properties.props[i].priority = 0; internal_properties.props[i].priority = 0;
internal_properties.props[i].delegate_info.Set0(); // default C4Value delegate internal_properties.props[i].delegate_info.Set0(); // default C4Value delegate
internal_properties.props[i].delegate = NULL; // init when needed internal_properties.props[i].delegate = nullptr; // init when needed
internal_properties.props[i].group_idx = num_groups; internal_properties.props[i].group_idx = num_groups;
internal_properties.props[i].shape.Clear(); internal_properties.props[i].shape.Clear();
internal_properties.props[i].shape_delegate = nullptr; internal_properties.props[i].shape_delegate = nullptr;
@ -3151,7 +3151,7 @@ QModelIndex C4ConsoleQtPropListModel::index(int row, int column, const QModelInd
} }
if (parent.internalId()) return QModelIndex(); // No 3rd level depth if (parent.internalId()) return QModelIndex(); // No 3rd level depth
// Validate range of property // Validate range of property
const PropertyGroup *property_group = NULL; const PropertyGroup *property_group = nullptr;
if (parent.row() >= 0 && parent.row() < property_groups.size()) if (parent.row() >= 0 && parent.row() < property_groups.size())
{ {
property_group = &property_groups[parent.row()]; property_group = &property_groups[parent.row()];

View File

@ -368,7 +368,7 @@ public:
} storage_type; } storage_type;
int32_t priority; // Custom sort order int32_t priority; // Custom sort order
Option() : type(C4V_Any), adelegate(NULL), storage_type(StorageNone), priority(0) {} Option() : type(C4V_Any), adelegate(nullptr), storage_type(StorageNone), priority(0) {}
}; };
protected: protected:
@ -388,9 +388,9 @@ protected:
void ReserveOptions(int32_t num); void ReserveOptions(int32_t num);
QStandardItemModel *CreateOptionModel() const; QStandardItemModel *CreateOptionModel() const;
public: public:
C4PropertyDelegateEnum(const class C4PropertyDelegateFactory *factory, C4PropList *props, const C4ValueArray *poptions=NULL); C4PropertyDelegateEnum(const class C4PropertyDelegateFactory *factory, C4PropList *props, const C4ValueArray *poptions=nullptr);
void AddTypeOption(C4String *name, C4V_Type type, const C4Value &val, C4PropertyDelegate *adelegate=NULL); void AddTypeOption(C4String *name, C4V_Type type, const C4Value &val, C4PropertyDelegate *adelegate=nullptr);
void AddConstOption(C4String *name, const C4Value &val, C4String *group=nullptr, C4String *sound_name=nullptr); void AddConstOption(C4String *name, const C4Value &val, C4String *group=nullptr, C4String *sound_name=nullptr);
void SetEditorData(QWidget *editor, const C4Value &val, const C4PropertyPath &property_path) const override; void SetEditorData(QWidget *editor, const C4Value &val, const C4PropertyPath &property_path) const override;

View File

@ -1210,13 +1210,13 @@ void C4ConsoleQtShapes::RemoveShape(C4ConsoleQtShape *shape)
{ {
// Remove from list and currently moving shape // Remove from list and currently moving shape
shapes.remove_if([shape](auto &it) { return it.get() == shape; }); shapes.remove_if([shape](auto &it) { return it.get() == shape; });
if (dragging_shape == shape) dragging_shape = NULL; if (dragging_shape == shape) dragging_shape = nullptr;
} }
void C4ConsoleQtShapes::ClearShapes() void C4ConsoleQtShapes::ClearShapes()
{ {
shapes.clear(); shapes.clear();
dragging_shape = NULL; dragging_shape = nullptr;
drag_cursor = Qt::CursorShape::ArrowCursor; drag_cursor = Qt::CursorShape::ArrowCursor;
} }

View File

@ -124,7 +124,7 @@ int ExecRecursionCheck::counter = 0;
/* Console main window */ /* Console main window */
C4ConsoleQtMainWindow::C4ConsoleQtMainWindow(C4AbstractApp *app, C4ConsoleGUIState *state) C4ConsoleQtMainWindow::C4ConsoleQtMainWindow(C4AbstractApp *app, C4ConsoleGUIState *state)
: QMainWindow(NULL), state(state) : QMainWindow(nullptr), state(state)
{ {
} }
@ -482,7 +482,7 @@ void C4ConsoleQtMainWindow::WelcomeLinkActivated(const QString &link)
bool success = false; bool success = false;
#ifdef USE_WIN32_WINDOWS #ifdef USE_WIN32_WINDOWS
StdStrBuf path(::Config.General.UserDataPath); StdStrBuf path(::Config.General.UserDataPath);
intptr_t iError = (intptr_t) ::ShellExecute(NULL, L"open", path.GetWideChar(), NULL, path.GetWideChar(), SW_SHOW); intptr_t iError = (intptr_t) ::ShellExecute(nullptr, L"open", path.GetWideChar(), nullptr, path.GetWideChar(), SW_SHOW);
if (iError > 32) success = true; if (iError > 32) success = true;
#else #else
success = QDesktopServices::openUrl(QUrl::fromLocalFile(::Config.General.UserDataPath)); success = QDesktopServices::openUrl(QUrl::fromLocalFile(::Config.General.UserDataPath));
@ -578,7 +578,7 @@ void C4ConsoleQtMainWindow::GradeDown()
/* Common C4ConsoleGUI interface */ /* Common C4ConsoleGUI interface */
C4ConsoleGUIState::C4ConsoleGUIState(C4ConsoleGUI *console) : viewport_area(NULL), C4ConsoleGUIState::C4ConsoleGUIState(C4ConsoleGUI *console) : viewport_area(nullptr),
enabled(false), recording(false), net_enabled(false), landscape_mode(LandscapeMode::Dynamic), flat_chunk_shapes(false), enabled(false), recording(false), net_enabled(false), landscape_mode(LandscapeMode::Dynamic), flat_chunk_shapes(false),
editcursor_mode(C4CNS_ModePlay), drawing_tool(C4TLS_Brush), is_object_selection_updating(0), disable_shortcut_filter(new C4DisableShortcutFilter(nullptr)) editcursor_mode(C4CNS_ModePlay), drawing_tool(C4TLS_Brush), is_object_selection_updating(0), disable_shortcut_filter(new C4DisableShortcutFilter(nullptr))
{ {

View File

@ -378,7 +378,7 @@ void C4ConsoleQtViewportView::keyPressEvent(QKeyEvent * event)
handled = true; handled = true;
} }
// Handled if handled as player control or main editor // Handled if handled as player control or main editor
if (!handled) handled = Game.DoKeyboardInput(code, KEYEV_Down, !!(event->modifiers() & Qt::AltModifier), !!(event->modifiers() & Qt::ControlModifier), !!(event->modifiers() & Qt::ShiftModifier), event->isAutoRepeat(), NULL); if (!handled) handled = Game.DoKeyboardInput(code, KEYEV_Down, !!(event->modifiers() & Qt::AltModifier), !!(event->modifiers() & Qt::ControlModifier), !!(event->modifiers() & Qt::ShiftModifier), event->isAutoRepeat(), nullptr);
if (!handled) handled = dock->main_window->HandleEditorKeyDown(event); if (!handled) handled = dock->main_window->HandleEditorKeyDown(event);
// Modifiers may update the cursor state; refresh // Modifiers may update the cursor state; refresh
if (event->key() == Qt::Key_Shift || event->key() == Qt::Key_Control || event->key() == Qt::Key_Alt || event->key() == Qt::Key_AltGr) if (event->key() == Qt::Key_Shift || event->key() == Qt::Key_Control || event->key() == Qt::Key_Alt || event->key() == Qt::Key_AltGr)
@ -394,7 +394,7 @@ void C4ConsoleQtViewportView::keyReleaseEvent(QKeyEvent * event)
// Convert key to our internal mapping // Convert key to our internal mapping
C4KeyCode code = QtKeyToUnixScancode(*event); C4KeyCode code = QtKeyToUnixScancode(*event);
// Handled if handled as player control // Handled if handled as player control
bool handled = Game.DoKeyboardInput(code, KEYEV_Up, !!(event->modifiers() & Qt::AltModifier), !!(event->modifiers() & Qt::ControlModifier), !!(event->modifiers() & Qt::ShiftModifier), event->isAutoRepeat(), NULL); bool handled = Game.DoKeyboardInput(code, KEYEV_Up, !!(event->modifiers() & Qt::AltModifier), !!(event->modifiers() & Qt::ControlModifier), !!(event->modifiers() & Qt::ShiftModifier), event->isAutoRepeat(), nullptr);
if (!handled) handled = dock->main_window->HandleEditorKeyUp(event); if (!handled) handled = dock->main_window->HandleEditorKeyUp(event);
// Modifiers may update the cursor state; refresh // Modifiers may update the cursor state; refresh
if (event->key() == Qt::Key_Shift || event->key() == Qt::Key_Control || event->key() == Qt::Key_Alt || event->key() == Qt::Key_AltGr) if (event->key() == Qt::Key_Shift || event->key() == Qt::Key_Control || event->key() == Qt::Key_Alt || event->key() == Qt::Key_AltGr)
@ -471,7 +471,7 @@ bool C4ConsoleQtViewportScrollArea::viewportEvent(QEvent *e)
void C4ConsoleQtViewportScrollArea::setupViewport(QWidget *viewport) void C4ConsoleQtViewportScrollArea::setupViewport(QWidget *viewport)
{ {
// Don't steal focus from the viewport. This is necessary to make keyboard input work. // Don't steal focus from the viewport. This is necessary to make keyboard input work.
viewport->setFocusProxy(NULL); viewport->setFocusProxy(nullptr);
ScrollBarsByViewPosition(); ScrollBarsByViewPosition();
} }
@ -553,7 +553,7 @@ void C4ConsoleQtViewportDockWidget::closeEvent(QCloseEvent * event)
if (event->isAccepted()) if (event->isAccepted())
{ {
if (cvp) cvp->Close(); if (cvp) cvp->Close();
cvp = NULL; cvp = nullptr;
deleteLater(); deleteLater();
} }
} }

View File

@ -93,17 +93,17 @@ public:
State(C4ConsoleGUI *console) State(C4ConsoleGUI *console)
{ {
hbmMouse=NULL; hbmMouse=nullptr;
hbmMouse2=NULL; hbmMouse2=nullptr;
hbmCursor=NULL; hbmCursor=nullptr;
hbmCursor2=NULL; hbmCursor2=nullptr;
hbmBrush=NULL; hbmBrush=nullptr;
hbmBrush2=NULL; hbmBrush2=nullptr;
hbmPlay=NULL; hbmPlay=nullptr;
hbmPlay2=NULL; hbmPlay2=nullptr;
hbmHalt=NULL; hbmHalt=nullptr;
hbmHalt2=NULL; hbmHalt2=nullptr;
hPropertyDlg=NULL; hPropertyDlg=nullptr;
MenuIndexFile = 0; MenuIndexFile = 0;
MenuIndexPlayer = 1; MenuIndexPlayer = 1;
MenuIndexViewport = 2; MenuIndexViewport = 2;
@ -112,7 +112,7 @@ public:
property_dlg_inputarea_height = 0; property_dlg_inputarea_height = 0;
property_dlg_margin = 0; property_dlg_margin = 0;
property_dlg_okbutton_width = 0; property_dlg_okbutton_width = 0;
console_handle = NULL; console_handle = nullptr;
console_default_width = 0; console_default_width = 0;
console_default_height = 0; console_default_height = 0;
console_margin = 0; console_margin = 0;
@ -202,21 +202,21 @@ public:
if (!::GetClientRect(hPropertyDlg, &rc)) return; if (!::GetClientRect(hPropertyDlg, &rc)) return;
int y0 = rc.bottom - property_dlg_margin - property_dlg_inputarea_height; int y0 = rc.bottom - property_dlg_margin - property_dlg_inputarea_height;
// Output text box // Output text box
::SetWindowPos(::GetDlgItem(hPropertyDlg, IDC_EDITOUTPUT), NULL, ::SetWindowPos(::GetDlgItem(hPropertyDlg, IDC_EDITOUTPUT), nullptr,
property_dlg_margin, property_dlg_margin,
property_dlg_margin, property_dlg_margin,
rc.right - 2* property_dlg_margin, rc.right - 2* property_dlg_margin,
y0 - 2* property_dlg_margin, y0 - 2* property_dlg_margin,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
// Input ComboBox // Input ComboBox
::SetWindowPos(::GetDlgItem(hPropertyDlg, IDC_COMBOINPUT), NULL, ::SetWindowPos(::GetDlgItem(hPropertyDlg, IDC_COMBOINPUT), nullptr,
property_dlg_margin, property_dlg_margin,
y0, y0,
rc.right - property_dlg_okbutton_width - 3*property_dlg_margin, rc.right - property_dlg_okbutton_width - 3*property_dlg_margin,
property_dlg_inputarea_height, property_dlg_inputarea_height,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
// OK button // OK button
::SetWindowPos(::GetDlgItem(hPropertyDlg, IDOK), NULL, ::SetWindowPos(::GetDlgItem(hPropertyDlg, IDOK), nullptr,
rc.right - property_dlg_margin - property_dlg_okbutton_width, rc.right - property_dlg_margin - property_dlg_okbutton_width,
y0, y0,
property_dlg_okbutton_width, property_dlg_okbutton_width,
@ -256,75 +256,75 @@ public:
int y2 = rc.bottom - console_margin * 1 - console_button_height * 1; int y2 = rc.bottom - console_margin * 1 - console_button_height * 1;
int x0 = rc.right - console_margin - console_button_height; int x0 = rc.right - console_margin - console_button_height;
// Output text box // Output text box
::SetWindowPos(::GetDlgItem(console_handle, IDC_EDITOUTPUT), NULL, ::SetWindowPos(::GetDlgItem(console_handle, IDC_EDITOUTPUT), nullptr,
console_margin, console_margin,
0, 0,
x0 - console_margin - console_wide_margin, x0 - console_margin - console_wide_margin,
y0 - console_margin, y0 - console_margin,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
// Input ComboBox // Input ComboBox
::SetWindowPos(::GetDlgItem(console_handle, IDC_COMBOINPUT), NULL, ::SetWindowPos(::GetDlgItem(console_handle, IDC_COMBOINPUT), nullptr,
console_margin, console_margin,
y0, y0,
rc.right - console_ok_button_width - console_margin * 3, rc.right - console_ok_button_width - console_margin * 3,
console_button_height, console_button_height,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
// Input OK button // Input OK button
::SetWindowPos(::GetDlgItem(console_handle, IDOK), NULL, ::SetWindowPos(::GetDlgItem(console_handle, IDOK), nullptr,
rc.right - console_margin - console_ok_button_width, rc.right - console_margin - console_ok_button_width,
y0, y0,
console_ok_button_width, console_ok_button_width,
console_button_height, console_button_height,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
// Frame status bar // Frame status bar
::SetWindowPos(::GetDlgItem(console_handle, IDC_STATICFRAME), NULL, ::SetWindowPos(::GetDlgItem(console_handle, IDC_STATICFRAME), nullptr,
console_margin, console_margin,
y1, y1,
console_status_width, console_status_width,
console_button_height, console_button_height,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
// Play button // Play button
::SetWindowPos(::GetDlgItem(console_handle, IDC_BUTTONPLAY), NULL, ::SetWindowPos(::GetDlgItem(console_handle, IDC_BUTTONPLAY), nullptr,
console_margin + console_status_width + console_wide_margin, console_margin + console_status_width + console_wide_margin,
y1, y1,
console_button_height, console_button_height,
console_button_height, console_button_height,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
// Halt button // Halt button
::SetWindowPos(::GetDlgItem(console_handle, IDC_BUTTONHALT), NULL, ::SetWindowPos(::GetDlgItem(console_handle, IDC_BUTTONHALT), nullptr,
console_margin + console_status_width + console_wide_margin * 2 + console_button_height, console_margin + console_status_width + console_wide_margin * 2 + console_button_height,
y1, y1,
console_button_height, console_button_height,
console_button_height, console_button_height,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
// Time/FPS status bar // Time/FPS status bar
::SetWindowPos(::GetDlgItem(console_handle, IDC_STATICTIME), NULL, ::SetWindowPos(::GetDlgItem(console_handle, IDC_STATICTIME), nullptr,
rc.right - console_margin - console_status_width, rc.right - console_margin - console_status_width,
y1, y1,
console_status_width, console_status_width,
console_button_height, console_button_height,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
// Main status bar // Main status bar
::SetWindowPos(::GetDlgItem(console_handle, IDC_STATICCURSOR), NULL, ::SetWindowPos(::GetDlgItem(console_handle, IDC_STATICCURSOR), nullptr,
console_margin, console_margin,
y2, y2,
rc.right - 2* console_margin, rc.right - 2* console_margin,
console_button_height, console_button_height,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
// Tool buttons // Tool buttons
::SetWindowPos(::GetDlgItem(console_handle, IDC_BUTTONMODEPLAY), NULL, ::SetWindowPos(::GetDlgItem(console_handle, IDC_BUTTONMODEPLAY), nullptr,
x0, x0,
console_margin, console_margin,
console_button_height, console_button_height,
console_button_height, console_button_height,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
::SetWindowPos(::GetDlgItem(console_handle, IDC_BUTTONMODEEDIT), NULL, ::SetWindowPos(::GetDlgItem(console_handle, IDC_BUTTONMODEEDIT), nullptr,
x0, x0,
console_margin * 2 + console_button_height, console_margin * 2 + console_button_height,
console_button_height, console_button_height,
console_button_height, console_button_height,
SWP_NOOWNERZORDER | SWP_NOZORDER); SWP_NOOWNERZORDER | SWP_NOZORDER);
::SetWindowPos(::GetDlgItem(console_handle, IDC_BUTTONMODEDRAW), NULL, ::SetWindowPos(::GetDlgItem(console_handle, IDC_BUTTONMODEDRAW), nullptr,
x0, x0,
console_margin * 3 + console_button_height * 2, console_margin * 3 + console_button_height * 2,
console_button_height, console_button_height,
@ -339,7 +339,7 @@ static void ClearDlg(HWND &handle)
{ {
if (handle) if (handle)
DestroyWindow(handle); DestroyWindow(handle);
handle = NULL; handle = nullptr;
} }
INT_PTR CALLBACK ConsoleDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) INT_PTR CALLBACK ConsoleDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
@ -525,7 +525,7 @@ public:
hbmStatic(0), hbmStatic(0),
hbmExact(0) hbmExact(0)
{ {
pPreviewWindow = NULL; pPreviewWindow = nullptr;
} }
void LoadBitmaps(HINSTANCE instance) void LoadBitmaps(HINSTANCE instance)
@ -569,9 +569,9 @@ public:
if (pPreviewWindow) if (pPreviewWindow)
{ {
delete pPreviewWindow; delete pPreviewWindow;
pPreviewWindow = NULL; pPreviewWindow = nullptr;
} }
if (hDialog) DestroyWindow(hDialog); hDialog=NULL; if (hDialog) DestroyWindow(hDialog); hDialog=nullptr;
} }
void Default() void Default()
@ -785,7 +785,7 @@ bool C4ConsoleGUI::UpdateModeCtrls(int iMode)
C4Window* C4ConsoleGUI::CreateConsoleWindow(C4AbstractApp *application) C4Window* C4ConsoleGUI::CreateConsoleWindow(C4AbstractApp *application)
{ {
hWindow = CreateDialog(application->GetInstance(), MAKEINTRESOURCE(IDD_CONSOLE), NULL, ConsoleDlgProc); hWindow = CreateDialog(application->GetInstance(), MAKEINTRESOURCE(IDD_CONSOLE), nullptr, ConsoleDlgProc);
if (!hWindow) if (!hWindow)
{ {
wchar_t * lpMsgBuf; wchar_t * lpMsgBuf;
@ -793,16 +793,16 @@ C4Window* C4ConsoleGUI::CreateConsoleWindow(C4AbstractApp *application)
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, nullptr,
GetLastError(), GetLastError(),
0, 0,
(wchar_t *)&lpMsgBuf, // really. (wchar_t *)&lpMsgBuf, // really.
0, 0,
NULL); nullptr);
Log(FormatString("Error creating dialog window: %s", StdStrBuf(lpMsgBuf).getData()).getData()); Log(FormatString("Error creating dialog window: %s", StdStrBuf(lpMsgBuf).getData()).getData());
// Free the buffer. // Free the buffer.
LocalFree(lpMsgBuf); LocalFree(lpMsgBuf);
return NULL; return nullptr;
} }
// Remember metrics // Remember metrics
state->console_handle = hWindow; state->console_handle = hWindow;
@ -948,7 +948,7 @@ void C4ConsoleGUI::RecordingEnabled()
void C4ConsoleGUI::ShowAboutWithCopyright(StdStrBuf &copyright) void C4ConsoleGUI::ShowAboutWithCopyright(StdStrBuf &copyright)
{ {
StdStrBuf strMessage; strMessage.Format("%s %s\n\n%s", C4ENGINECAPTION, C4VERSION, copyright.getData()); StdStrBuf strMessage; strMessage.Format("%s %s\n\n%s", C4ENGINECAPTION, C4VERSION, copyright.getData());
MessageBoxW(NULL, strMessage.GetWideChar(), ADDL(C4ENGINECAPTION), MB_ICONINFORMATION | MB_TASKMODAL); MessageBoxW(nullptr, strMessage.GetWideChar(), ADDL(C4ENGINECAPTION), MB_ICONINFORMATION | MB_TASKMODAL);
} }
bool C4ConsoleGUI::FileSelect(StdStrBuf *sFilename, const char * szFilter, DWORD dwFlags, bool fSave) bool C4ConsoleGUI::FileSelect(StdStrBuf *sFilename, const char * szFilter, DWORD dwFlags, bool fSave)
@ -966,7 +966,7 @@ bool C4ConsoleGUI::FileSelect(StdStrBuf *sFilename, const char * szFilter, DWORD
while (*s) s = s + strlen(s) + 1; while (*s) s = s + strlen(s) + 1;
s++; s++;
int n = s - szFilter; int n = s - szFilter;
int len = MultiByteToWideChar(CP_UTF8, 0, szFilter, n, NULL, 0); int len = MultiByteToWideChar(CP_UTF8, 0, szFilter, n, nullptr, 0);
StdBuf filt; StdBuf filt;
filt.SetSize(len * sizeof(wchar_t)); filt.SetSize(len * sizeof(wchar_t));
MultiByteToWideChar(CP_UTF8, 0, szFilter, n, getMBufPtr<wchar_t>(filt), len ); MultiByteToWideChar(CP_UTF8, 0, szFilter, n, getMBufPtr<wchar_t>(filt), len );
@ -986,7 +986,7 @@ bool C4ConsoleGUI::FileSelect(StdStrBuf *sFilename, const char * szFilter, DWORD
// Reset working directory to exe path as Windows file dialog might have changed it // Reset working directory to exe path as Windows file dialog might have changed it
SetCurrentDirectoryW(wd); SetCurrentDirectoryW(wd);
delete[] wd; delete[] wd;
len = WideCharToMultiByte(CP_UTF8, 0, buffer, ArbitraryMaximumLength, NULL, 0, 0, 0); len = WideCharToMultiByte(CP_UTF8, 0, buffer, ArbitraryMaximumLength, nullptr, 0, 0, 0);
sFilename->SetLength(len - 1); sFilename->SetLength(len - 1);
WideCharToMultiByte(CP_UTF8, 0, buffer, ArbitraryMaximumLength, sFilename->getMData(), sFilename->getSize(), 0, 0); WideCharToMultiByte(CP_UTF8, 0, buffer, ArbitraryMaximumLength, sFilename->getMData(), sFilename->getSize(), 0, 0);
return fResult; return fResult;
@ -1120,7 +1120,7 @@ void C4ConsoleGUI::ClearPlayerMenu()
/* /*
void C4ConsoleGUI::ClearPropertyDlg(C4PropertyDlg *dlg) void C4ConsoleGUI::ClearPropertyDlg(C4PropertyDlg *dlg)
{ {
if (dlg->state->hDialog) DestroyWindow(PropertyDlg.hDialog); PropertyDlg.hDialog=NULL; if (dlg->state->hDialog) DestroyWindow(PropertyDlg.hDialog); PropertyDlg.hDialog=nullptr;
} }
*/ */
@ -1130,7 +1130,7 @@ class C4ConsoleGUIPreviewWindow : public C4Window
public: public:
C4ConsoleGUIPreviewWindow(HWND hwndControl) C4ConsoleGUIPreviewWindow(HWND hwndControl)
{ {
Init(C4Window::WindowKind::W_Control, &Application, NULL, NULL); Init(C4Window::WindowKind::W_Control, &Application, nullptr, nullptr);
this->hWindow = this->renderwnd = hwndControl; this->hWindow = this->renderwnd = hwndControl;
pSurface = new C4Surface(&Application, this); pSurface = new C4Surface(&Application, this);
} }

View File

@ -80,12 +80,12 @@ C4Object *C4EditCursorSelection::GetObject(int32_t index) const
if ((obj = v.getObj())) if ((obj = v.getObj()))
if (!index--) if (!index--)
return obj; return obj;
return NULL; return nullptr;
} }
C4Object *C4EditCursorSelection::GetLastObject() const C4Object *C4EditCursorSelection::GetLastObject() const
{ {
C4Object *obj, *last = NULL; C4Object *obj, *last = nullptr;
for (const C4Value &v : (*this)) for (const C4Value &v : (*this))
if ((obj = v.getObj())) if ((obj = v.getObj()))
last = obj; last = obj;
@ -94,7 +94,7 @@ C4Object *C4EditCursorSelection::GetLastObject() const
void C4EditCursorSelection::ConsolidateEmpty() void C4EditCursorSelection::ConsolidateEmpty()
{ {
// remove NULLed entries that may happen because objects got deleted // remove nullptred entries that may happen because objects got deleted
this->remove(C4VNull); this->remove(C4VNull);
} }
@ -148,7 +148,7 @@ void C4EditCursor::Execute()
case C4CNS_ModeEdit: case C4CNS_ModeEdit:
// Hold selection // Hold selection
if (Hold) if (Hold)
EMMoveObject(fShiftWasDown ? EMMO_MoveForced : EMMO_Move, Fix0, Fix0, NULL, &selection); EMMoveObject(fShiftWasDown ? EMMO_MoveForced : EMMO_Move, Fix0, Fix0, nullptr, &selection);
break; break;
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
case C4CNS_ModeDraw: case C4CNS_ModeDraw:
@ -182,7 +182,7 @@ bool C4EditCursor::Init()
void C4EditCursor::ClearPointers(C4Object *pObj) void C4EditCursor::ClearPointers(C4Object *pObj)
{ {
if (Target==pObj) Target=NULL; if (Target==pObj) Target=nullptr;
if (selection.ClearPointers(pObj)) if (selection.ClearPointers(pObj))
OnSelectionChanged(); OnSelectionChanged();
} }
@ -256,10 +256,10 @@ bool C4EditCursor::Move(float iX, float iY, float iZoom, DWORD dwKeyState)
// Shift always indicates a target outside the current selection // Shift always indicates a target outside the current selection
else else
{ {
Target = (dwKeyState & MK_SHIFT) ? selection.GetLastObject() : NULL; Target = (dwKeyState & MK_SHIFT) ? selection.GetLastObject() : nullptr;
do do
{ {
Target = Game.FindObject(NULL,X,Y,0,0,OCF_NotContained, Target); Target = Game.FindObject(nullptr,X,Y,0,0,OCF_NotContained, Target);
} }
while ((dwKeyState & MK_SHIFT) && Target && selection.IsContained(Target)); while ((dwKeyState & MK_SHIFT) && Target && selection.IsContained(Target));
} }
@ -438,7 +438,7 @@ bool C4EditCursor::LeftButtonDown(DWORD dwKeyState)
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
} }
DropTarget=NULL; DropTarget=nullptr;
return true; return true;
} }
@ -515,7 +515,7 @@ bool C4EditCursor::LeftButtonUp(DWORD dwKeyState)
DragLine=false; DragLine=false;
DragShape = false; DragShape = false;
DragTransform = false; DragTransform = false;
DropTarget=NULL; DropTarget=nullptr;
// Update // Update
UpdateStatusBar(); UpdateStatusBar();
return true; return true;
@ -588,7 +588,7 @@ bool SetMenuItemText(HMENU hMenu, WORD id, const char *szText)
bool C4EditCursor::RightButtonUp(DWORD dwKeyState) bool C4EditCursor::RightButtonUp(DWORD dwKeyState)
{ {
Target=NULL; Target=nullptr;
#ifndef WITH_QT_EDITOR #ifndef WITH_QT_EDITOR
DoContextMenu(dwKeyState); DoContextMenu(dwKeyState);
#endif #endif
@ -601,7 +601,7 @@ bool C4EditCursor::RightButtonUp(DWORD dwKeyState)
bool C4EditCursor::Delete() bool C4EditCursor::Delete()
{ {
if (!EditingOK()) return false; if (!EditingOK()) return false;
EMMoveObject(EMMO_Remove, Fix0, Fix0, NULL, &selection); EMMoveObject(EMMO_Remove, Fix0, Fix0, nullptr, &selection);
if (::Control.isCtrlHost()) if (::Control.isCtrlHost())
{ {
OnSelectionChanged(); OnSelectionChanged();
@ -626,7 +626,7 @@ bool C4EditCursor::OpenPropTools()
bool C4EditCursor::Duplicate() bool C4EditCursor::Duplicate()
{ {
EMMoveObject(EMMO_Duplicate, Fix0, Fix0, NULL, &selection); EMMoveObject(EMMO_Duplicate, Fix0, Fix0, nullptr, &selection);
return true; return true;
} }
@ -883,7 +883,7 @@ void C4EditCursor::Draw(C4TargetFacet &cgo)
creator_overlay.reset(new C4GraphicsOverlay()); creator_overlay.reset(new C4GraphicsOverlay());
creator_overlay->SetAsBase(&creator_def->Graphics, C4GFXBLIT_ADDITIVE); creator_overlay->SetAsBase(&creator_def->Graphics, C4GFXBLIT_ADDITIVE);
} }
creator_overlay->Draw(cgo_creator, NULL, NO_OWNER); creator_overlay->Draw(cgo_creator, nullptr, NO_OWNER);
} }
// Draw object highlight // Draw object highlight
C4Object *highlight = highlighted_object.getObj(); C4Object *highlight = highlighted_object.getObj();
@ -930,13 +930,13 @@ void C4EditCursor::DrawSelectMark(C4Facet &cgo, FLOAT_RECT frame, float width, u
const unsigned int n_vertices = sizeof(vertices) / sizeof(vertices[0]); const unsigned int n_vertices = sizeof(vertices) / sizeof(vertices[0]);
pDraw->PerformMultiLines(cgo.Surface, vertices, n_vertices, width, NULL); pDraw->PerformMultiLines(cgo.Surface, vertices, n_vertices, width, nullptr);
} }
void C4EditCursor::MoveSelection(C4Real XOff, C4Real YOff) void C4EditCursor::MoveSelection(C4Real XOff, C4Real YOff)
{ {
EMMoveObject(fShiftWasDown ? EMMO_MoveForced : EMMO_Move, XOff, YOff, NULL, &selection); EMMoveObject(fShiftWasDown ? EMMO_MoveForced : EMMO_Move, XOff, YOff, nullptr, &selection);
} }
void C4EditCursor::FrameSelection() void C4EditCursor::FrameSelection()
@ -956,7 +956,7 @@ void C4EditCursor::FrameSelection()
bool C4EditCursor::In(const char *szText) bool C4EditCursor::In(const char *szText)
{ {
::Console.RegisterRecentInput(szText, C4Console::MRU_Object); ::Console.RegisterRecentInput(szText, C4Console::MRU_Object);
EMMoveObject(EMMO_Script, Fix0, Fix0, NULL, &selection, szText); EMMoveObject(EMMO_Script, Fix0, Fix0, nullptr, &selection, szText);
selection.ConsolidateEmpty(); selection.ConsolidateEmpty();
::Console.PropertyDlgUpdate(selection, true); ::Console.PropertyDlgUpdate(selection, true);
return true; return true;
@ -968,14 +968,14 @@ void C4EditCursor::Default()
fShiftWasDown=false; fShiftWasDown=false;
Mode = C4CNS_ModeEdit; Mode = C4CNS_ModeEdit;
X=Y=X2=Y2=0; X=Y=X2=Y2=0;
Target=DropTarget=NULL; Target=DropTarget=nullptr;
#ifdef USE_WIN32_WINDOWS #ifdef USE_WIN32_WINDOWS
hMenu=NULL; hMenu=nullptr;
#endif #endif
Hold=DragFrame=DragLine=DragShape=DragTransform=false; Hold=DragFrame=DragLine=DragShape=DragTransform=false;
selection.clear(); selection.clear();
creator_def = NULL; creator_def = nullptr;
creator_overlay = NULL; creator_overlay = nullptr;
has_mouse_hover = false; has_mouse_hover = false;
selection_invalid = false; selection_invalid = false;
DragRot0 = DragRotLast = 0; DragCon0 = DragConLast = FullCon; DragRot0 = DragRotLast = 0; DragCon0 = DragConLast = FullCon;
@ -984,14 +984,14 @@ void C4EditCursor::Default()
void C4EditCursor::Clear() void C4EditCursor::Clear()
{ {
#ifdef USE_WIN32_WINDOWS #ifdef USE_WIN32_WINDOWS
if (hMenu) DestroyMenu(hMenu); hMenu=NULL; if (hMenu) DestroyMenu(hMenu); hMenu=nullptr;
#endif #endif
#ifdef WITH_DEBUG_MODE #ifdef WITH_DEBUG_MODE
ObjselectDelItems(); ObjselectDelItems();
#endif #endif
selection.clear(); selection.clear();
Console.PropertyDlgUpdate(selection, false); Console.PropertyDlgUpdate(selection, false);
creator_overlay.reset(NULL); creator_overlay.reset(nullptr);
#ifdef WITH_QT_EDITOR #ifdef WITH_QT_EDITOR
shapes->ClearShapes(); // Should really be empty already shapes->ClearShapes(); // Should really be empty already
#endif #endif
@ -1100,7 +1100,7 @@ void C4EditCursor::ApplyToolFill()
if (!EditingOK(true)) return; if (!EditingOK(true)) return;
C4ToolsDlg *pTools=&Console.ToolsDlg; C4ToolsDlg *pTools=&Console.ToolsDlg;
// execute/send control // execute/send control
EMControl(CID_EMDrawTool, new C4ControlEMDrawTool(EMDT_Fill, ::Landscape.GetMode(), X,Y,0,Y2, pTools->Grade, pTools->Material, NULL, NULL, NULL)); EMControl(CID_EMDrawTool, new C4ControlEMDrawTool(EMDT_Fill, ::Landscape.GetMode(), X,Y,0,Y2, pTools->Grade, pTools->Material, nullptr, nullptr, nullptr));
} }
void C4EditCursor::AppendMenuItem(int num, const StdStrBuf & label) void C4EditCursor::AppendMenuItem(int num, const StdStrBuf & label)
@ -1110,7 +1110,7 @@ void C4EditCursor::AppendMenuItem(int num, const StdStrBuf & label)
if (num) if (num)
AppendMenu(GetSubMenu(hMenu,0), MF_STRING, IDM_VPORTDYN_FIRST + num, label.GetWideChar()); AppendMenu(GetSubMenu(hMenu,0), MF_STRING, IDM_VPORTDYN_FIRST + num, label.GetWideChar());
else else
AppendMenu(GetSubMenu(hMenu,0), MF_SEPARATOR, IDM_VPORTDYN_FIRST, NULL); AppendMenu(GetSubMenu(hMenu,0), MF_SEPARATOR, IDM_VPORTDYN_FIRST, nullptr);
#endif #endif
} }
@ -1153,7 +1153,7 @@ bool C4EditCursor::DoContextMenu(DWORD dwKeyState)
#endif #endif
itemsObjselect.resize(entrycount + 1); // +1 for a separator itemsObjselect.resize(entrycount + 1); // +1 for a separator
// Add a separator bar // Add a separator bar
itemsObjselect[0].Object = NULL; itemsObjselect[0].Object = nullptr;
itemsObjselect[0].Command.Clear(); itemsObjselect[0].Command.Clear();
itemsObjselect[0].EditCursor = this; itemsObjselect[0].EditCursor = this;
AppendMenuItem(0, StdStrBuf()); AppendMenuItem(0, StdStrBuf());
@ -1196,7 +1196,7 @@ bool C4EditCursor::DoContextMenu(DWORD dwKeyState)
{ {
AppendMenu(hContext, MF_GRAYED, IDM_VPORTDYN_FIRST + maxentries + 1, L"..."); AppendMenu(hContext, MF_GRAYED, IDM_VPORTDYN_FIRST + maxentries + 1, L"...");
itemsObjselect[maxentries + 1].ItemId = IDM_VPORTDYN_FIRST + maxentries + 1; itemsObjselect[maxentries + 1].ItemId = IDM_VPORTDYN_FIRST + maxentries + 1;
itemsObjselect[maxentries + 1].Object = NULL; itemsObjselect[maxentries + 1].Object = nullptr;
itemsObjselect[maxentries + 1].Command.Clear(); itemsObjselect[maxentries + 1].Command.Clear();
} }
#endif #endif
@ -1209,7 +1209,7 @@ bool C4EditCursor::DoContextMenu(DWORD dwKeyState)
TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RETURNCMD | TPM_LEFTBUTTON | TPM_NONOTIFY, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RETURNCMD | TPM_LEFTBUTTON | TPM_NONOTIFY,
point.x,point.y, 0, point.x,point.y, 0,
Console.hWindow, Console.hWindow,
NULL); nullptr);
switch (iItem) switch (iItem)
{ {
case IDM_VIEWPORT_DELETE: Delete(); break; case IDM_VIEWPORT_DELETE: Delete(); break;
@ -1244,13 +1244,13 @@ void C4EditCursor::GrabContents()
Hold=true; Hold=true;
// Exit all objects // Exit all objects
EMMoveObject(EMMO_Exit, Fix0, Fix0, NULL, &selection); EMMoveObject(EMMO_Exit, Fix0, Fix0, nullptr, &selection);
} }
void C4EditCursor::UpdateDropTarget(DWORD dwKeyState) void C4EditCursor::UpdateDropTarget(DWORD dwKeyState)
{ {
// A drop target is set if holding down control either while moving an object or in object creation mode // A drop target is set if holding down control either while moving an object or in object creation mode
DropTarget=NULL; DropTarget=nullptr;
if (dwKeyState & MK_CONTROL) if (dwKeyState & MK_CONTROL)
if (selection.GetObject() || (Mode == C4CNS_ModeCreateObject && creator_def)) if (selection.GetObject() || (Mode == C4CNS_ModeCreateObject && creator_def))
@ -1364,7 +1364,7 @@ void C4EditCursor::ApplyToolPicker()
void C4EditCursor::EMMoveObject(C4ControlEMObjectAction eAction, C4Real tx, C4Real ty, C4Object *pTargetObj, const C4EditCursorSelection *pObjs, const char *szScript) void C4EditCursor::EMMoveObject(C4ControlEMObjectAction eAction, C4Real tx, C4Real ty, C4Object *pTargetObj, const C4EditCursorSelection *pObjs, const char *szScript)
{ {
// construct object list // construct object list
int32_t iObjCnt = 0; int32_t *pObjIDs = NULL; int32_t iObjCnt = 0; int32_t *pObjIDs = nullptr;
if (pObjs && (iObjCnt = pObjs->ObjectCount())) if (pObjs && (iObjCnt = pObjs->ObjectCount()))
{ {
pObjIDs = new int32_t [iObjCnt]; pObjIDs = new int32_t [iObjCnt];

View File

@ -35,7 +35,7 @@ public:
StdStrBuf GetDataString() const; // Return a string like "n objects". StdStrBuf GetDataString() const; // Return a string like "n objects".
C4Object *GetObject(int32_t index=0) const; // Get indexed C4Object * in list C4Object *GetObject(int32_t index=0) const; // Get indexed C4Object * in list
C4Object *GetLastObject() const; C4Object *GetLastObject() const;
void ConsolidateEmpty(); // remove NULLed entries that may happen because objects got deleted void ConsolidateEmpty(); // remove nullptred entries that may happen because objects got deleted
bool ClearPointers(C4Object *obj); bool ClearPointers(C4Object *obj);
bool IsContained(C4PropList *obj) const; bool IsContained(C4PropList *obj) const;
int32_t ObjectCount() const; // count only C4Object * int32_t ObjectCount() const; // count only C4Object *
@ -131,7 +131,7 @@ protected:
bool HasTransformMarker(float *x, float *y, float zoom) const; bool HasTransformMarker(float *x, float *y, float zoom) const;
void FrameSelection(); void FrameSelection();
void MoveSelection(C4Real iXOff, C4Real iYOff); void MoveSelection(C4Real iXOff, C4Real iYOff);
void EMMoveObject(enum C4ControlEMObjectAction eAction, C4Real tx, C4Real ty, C4Object *pTargetObj, const C4EditCursorSelection *pObjs = NULL, const char *szScript = NULL); void EMMoveObject(enum C4ControlEMObjectAction eAction, C4Real tx, C4Real ty, C4Object *pTargetObj, const C4EditCursorSelection *pObjs = nullptr, const char *szScript = nullptr);
void DoContextObjCommand(C4Object *, const char *cmd); void DoContextObjCommand(C4Object *, const char *cmd);
void ObjselectDelItems(); void ObjselectDelItems();
@ -144,9 +144,9 @@ protected:
public: public:
void AddToSelection(C4PropList *add_obj); // add object to selection and do script callback. Doesn't do OnSelectionChanged(). void AddToSelection(C4PropList *add_obj); // add object to selection and do script callback. Doesn't do OnSelectionChanged().
bool RemoveFromSelection(C4PropList *remove_obj); // remove object from selection and do script callback. return true if object was in selection before. Doesn't do OnSelectionChanged(). bool RemoveFromSelection(C4PropList *remove_obj); // remove object from selection and do script callback. return true if object was in selection before. Doesn't do OnSelectionChanged().
void ClearSelection(C4PropList *next_selection=NULL); // remove all objects from selection and do script callback. if next_selection is non-null, passes that to the deselection callbacks. Doesn't do OnSelectionChanged(). void ClearSelection(C4PropList *next_selection=nullptr); // remove all objects from selection and do script callback. if next_selection is non-null, passes that to the deselection callbacks. Doesn't do OnSelectionChanged().
// Type of object to create in object creation mode // Type of object to create in object creation mode
void SetCreatorDef(C4Def *new_def) { creator_def = new_def; creator_overlay.reset(NULL); } void SetCreatorDef(C4Def *new_def) { creator_def = new_def; creator_overlay.reset(nullptr); }
C4Def *GetCreatorDef() { return creator_def; } C4Def *GetCreatorDef() { return creator_def; }
void EMControl(enum C4PacketType eCtrlType, class C4ControlPacket *pCtrl); void EMControl(enum C4PacketType eCtrlType, class C4ControlPacket *pCtrl);

View File

@ -145,7 +145,7 @@ bool C4ToolsDlg::SetIFT(bool fIFT)
{ {
BYTE bg_index = ::TextureMap.DefaultBkgMatTex(index); BYTE bg_index = ::TextureMap.DefaultBkgMatTex(index);
const C4TexMapEntry* entry = ::TextureMap.GetEntry(bg_index); const C4TexMapEntry* entry = ::TextureMap.GetEntry(bg_index);
if (entry != NULL) if (entry != nullptr)
{ {
SCopy(entry->GetMaterialName(), BackMaterial, C4M_MaxName); SCopy(entry->GetMaterialName(), BackMaterial, C4M_MaxName);
SCopy(entry->GetTextureName(), BackTexture, C4M_MaxName); SCopy(entry->GetTextureName(), BackTexture, C4M_MaxName);

View File

@ -54,9 +54,9 @@ C4Application::C4Application():
CheckForUpdates(false), CheckForUpdates(false),
restartAtEnd(false), restartAtEnd(false),
is_in_game_tick(false), is_in_game_tick(false),
pGamePadControl(NULL), pGamePadControl(nullptr),
AppState(C4AS_None), AppState(C4AS_None),
pGameTimer(NULL) pGameTimer(nullptr)
{ {
} }
@ -152,7 +152,7 @@ bool C4Application::DoInit(int argc, char * argv[])
// Windows: handle incoming updates directly, even before starting up the gui // Windows: handle incoming updates directly, even before starting up the gui
// because updates will be applied in the console anyway. // because updates will be applied in the console anyway.
if (Application.IncomingUpdate) if (Application.IncomingUpdate)
if (C4UpdateDlg::ApplyUpdate(Application.IncomingUpdate.getData(), false, NULL)) if (C4UpdateDlg::ApplyUpdate(Application.IncomingUpdate.getData(), false, nullptr))
return true; return true;
#endif #endif
@ -592,7 +592,7 @@ void C4Application::Clear()
if (pGameTimer) if (pGameTimer)
{ {
Remove(pGameTimer); Remove(pGameTimer);
delete pGameTimer; pGameTimer = NULL; delete pGameTimer; pGameTimer = nullptr;
} }
// quit irc // quit irc
IRCClient.Close(); IRCClient.Close();
@ -605,7 +605,7 @@ void C4Application::Clear()
Languages.Clear(); Languages.Clear();
Languages.ClearLanguage(); Languages.ClearLanguage();
// gamepad clear // gamepad clear
if (pGamePadControl) { delete pGamePadControl; pGamePadControl=NULL; } if (pGamePadControl) { delete pGamePadControl; pGamePadControl=nullptr; }
// music system clear // music system clear
MusicSystem.Clear(); MusicSystem.Clear();
SoundSystem.Clear(); SoundSystem.Clear();
@ -613,7 +613,7 @@ void C4Application::Clear()
// clear editcursor holding graphics before clearing draw // clear editcursor holding graphics before clearing draw
::Console.EditCursor.Clear(); ::Console.EditCursor.Clear();
// Clear direct draw (late, because it's needed for e.g. Log) // Clear direct draw (late, because it's needed for e.g. Log)
if (pDraw) { delete pDraw; pDraw=NULL; } if (pDraw) { delete pDraw; pDraw=nullptr; }
// Close window // Close window
FullScreen.Clear(); FullScreen.Clear();
Console.Clear(); Console.Clear();

View File

@ -37,7 +37,7 @@ void C4FullScreen::CharIn(const char * c) { ::pGUI->CharIn(c); }
C4FullScreen::C4FullScreen() C4FullScreen::C4FullScreen()
{ {
pMenu = NULL; pMenu = nullptr;
} }
C4FullScreen::~C4FullScreen() C4FullScreen::~C4FullScreen()
@ -161,7 +161,7 @@ void C4FullScreen::CloseMenu()
{ {
if (pMenu->IsActive()) pMenu->Close(false); if (pMenu->IsActive()) pMenu->Close(false);
delete pMenu; delete pMenu;
pMenu = NULL; pMenu = nullptr;
} }
} }

View File

@ -127,11 +127,11 @@ bool C4Game::InitDefs()
Log(LoadResStr("IDS_PRC_INITDEFS")); Log(LoadResStr("IDS_PRC_INITDEFS"));
int iDefResCount = 0; int iDefResCount = 0;
C4GameRes *pDef; C4GameRes *pDef;
for (pDef = Parameters.GameRes.iterRes(NULL, NRT_Definitions); pDef; pDef = Parameters.GameRes.iterRes(pDef, NRT_Definitions)) for (pDef = Parameters.GameRes.iterRes(nullptr, NRT_Definitions); pDef; pDef = Parameters.GameRes.iterRes(pDef, NRT_Definitions))
++iDefResCount; ++iDefResCount;
int i = 0; int i = 0;
// Load specified defs // Load specified defs
for (pDef = Parameters.GameRes.iterRes(NULL, NRT_Definitions); pDef; pDef = Parameters.GameRes.iterRes(pDef, NRT_Definitions)) for (pDef = Parameters.GameRes.iterRes(nullptr, NRT_Definitions); pDef; pDef = Parameters.GameRes.iterRes(pDef, NRT_Definitions))
{ {
int iMinProgress = 25 + (25 * i) / iDefResCount; int iMinProgress = 25 + (25 * i) / iDefResCount;
int iMaxProgress = 25 + (25 * (i + 1)) / iDefResCount; int iMaxProgress = 25 + (25 * (i + 1)) / iDefResCount;
@ -269,7 +269,7 @@ void C4Game::CloseScenario()
// close scenario // close scenario
ScenarioFile.Close(); ScenarioFile.Close();
GroupSet.CloseFolders(); GroupSet.CloseFolders();
pParentGroup = NULL; pParentGroup = nullptr;
// remove if temporary // remove if temporary
if (TempScenarioFile) if (TempScenarioFile)
{ {
@ -279,7 +279,7 @@ void C4Game::CloseScenario()
// clear scenario section // clear scenario section
// this removes any temp files, which may yet need to be used by any future features // this removes any temp files, which may yet need to be used by any future features
// so better don't do this too early (like, in C4Game::Clear) // so better don't do this too early (like, in C4Game::Clear)
if (pScenarioSections) { delete pScenarioSections; pScenarioSections=pCurrentScenarioSection=NULL;} if (pScenarioSections) { delete pScenarioSections; pScenarioSections=pCurrentScenarioSection=nullptr;}
} }
@ -290,7 +290,7 @@ bool C4Game::PreInit()
// the function may return false, if no extra group is present - that is OK // the function may return false, if no extra group is present - that is OK
Extra.InitGroup(); Extra.InitGroup();
RandomSeed = time(NULL); RandomSeed = time(nullptr);
// Randomize // Randomize
FixRandom(RandomSeed); FixRandom(RandomSeed);
// Timer flags // Timer flags
@ -347,7 +347,7 @@ bool C4Game::Init()
C4GameLobby::UserAbort = false; C4GameLobby::UserAbort = false;
// Store a start time that identifies this game on this host // Store a start time that identifies this game on this host
StartTime = time(NULL); StartTime = time(nullptr);
// Get PlayerFilenames from Config, if ParseCommandLine did not fill some in // Get PlayerFilenames from Config, if ParseCommandLine did not fill some in
// Must be done here, because InitGame calls PlayerInfos.InitLocal // Must be done here, because InitGame calls PlayerInfos.InitLocal
@ -504,7 +504,7 @@ bool C4Game::Init()
if (GraphicsSystem.pLoaderScreen) if (GraphicsSystem.pLoaderScreen)
{ {
delete GraphicsSystem.pLoaderScreen; delete GraphicsSystem.pLoaderScreen;
GraphicsSystem.pLoaderScreen=NULL; GraphicsSystem.pLoaderScreen=nullptr;
} }
// game running now! // game running now!
@ -614,7 +614,7 @@ void C4Game::Clear()
::Messages.Clear(); ::Messages.Clear();
MessageInput.Clear(); MessageInput.Clear();
SetGlobalSoundModifier(NULL); // must be called before script engine clear SetGlobalSoundModifier(nullptr); // must be called before script engine clear
Application.SoundSystem.Modifiers.Clear(); // free some prop list pointers Application.SoundSystem.Modifiers.Clear(); // free some prop list pointers
// Clear script engine // Clear script engine
@ -623,7 +623,7 @@ void C4Game::Clear()
::GameScript.Clear(); ::GameScript.Clear();
C4PropListNumbered::ClearShelve(); // may be nonempty if there was a fatal error during section load C4PropListNumbered::ClearShelve(); // may be nonempty if there was a fatal error during section load
ScriptEngine.Clear(); ScriptEngine.Clear();
pScenarioObjectsScript = NULL; pScenarioObjectsScript = nullptr;
// delete any remaining prop lists from circular chains // delete any remaining prop lists from circular chains
C4PropListNumbered::ClearNumberedPropLists(); C4PropListNumbered::ClearNumberedPropLists();
C4PropListScript::ClearScriptPropLists(); C4PropListScript::ClearScriptPropLists();
@ -819,7 +819,7 @@ bool C4Game::InitMaterialTexture()
bool fHaveScenMaterials = Game.ScenarioFile.FindEntry(C4CFN_Material); bool fHaveScenMaterials = Game.ScenarioFile.FindEntry(C4CFN_Material);
// Load all materials // Load all materials
C4GameRes *pMatRes = NULL; C4GameRes *pMatRes = nullptr;
bool fFirst = true, fOverloadMaterials = true, fOverloadTextures = true; bool fFirst = true, fOverloadMaterials = true, fOverloadTextures = true;
long tex_count = 0, mat_count = 0; long tex_count = 0, mat_count = 0;
while (fOverloadMaterials || fOverloadTextures) while (fOverloadMaterials || fOverloadTextures)
@ -1019,7 +1019,7 @@ C4Object* C4Game::NewObject( C4PropList *pDef, C4Object *pCreator,
int32_t iCon, int32_t iController, bool grow_from_center) int32_t iCon, int32_t iController, bool grow_from_center)
{ {
// Safety // Safety
if (!pDef) return NULL; if (!pDef) return nullptr;
if (Config.General.DebugRec) if (Config.General.DebugRec)
{ {
C4RCCreateObj rc; C4RCCreateObj rc;
@ -1031,21 +1031,21 @@ C4Object* C4Game::NewObject( C4PropList *pDef, C4Object *pCreator,
} }
// Create object // Create object
C4Object *pObj; C4Object *pObj;
if (!(pObj=new C4Object)) return NULL; if (!(pObj=new C4Object)) return nullptr;
// Initialize object // Initialize object
pObj->Init( pDef,pCreator,iOwner,pInfo,iX,iY,iR,xdir,ydir,rdir, iController ); pObj->Init( pDef,pCreator,iOwner,pInfo,iX,iY,iR,xdir,ydir,rdir, iController );
// Add to object list // Add to object list
if (!Objects.Add(pObj)) { delete pObj; return NULL; } if (!Objects.Add(pObj)) { delete pObj; return nullptr; }
// ---- From now on, object is ready to be used in scripts! // ---- From now on, object is ready to be used in scripts!
// Construction callback // Construction callback
C4AulParSet pars(pCreator); C4AulParSet pars(pCreator);
pObj->Call(PSF_Construction, &pars); pObj->Call(PSF_Construction, &pars);
// AssignRemoval called? (Con 0) // AssignRemoval called? (Con 0)
if (!pObj->Status) { return NULL; } if (!pObj->Status) { return nullptr; }
// Do initial con (grow) // Do initial con (grow)
pObj->DoCon(iCon, grow_from_center); pObj->DoCon(iCon, grow_from_center);
// AssignRemoval called? (Con 0) // AssignRemoval called? (Con 0)
if (!pObj->Status) { return NULL; } if (!pObj->Status) { return nullptr; }
// Success // Success
return pObj; return pObj;
} }
@ -1064,10 +1064,10 @@ C4Object* C4Game::CreateObject(C4ID id, C4Object *pCreator, int32_t iOwner,
{ {
C4Def *pDef; C4Def *pDef;
// Get pDef // Get pDef
if (!(pDef=C4Id2Def(id))) return NULL; if (!(pDef=C4Id2Def(id))) return nullptr;
// Create object // Create object
return NewObject(pDef,pCreator, return NewObject(pDef,pCreator,
iOwner,NULL, iOwner,nullptr,
x,y,r, x,y,r,
xdir,ydir,rdir, xdir,ydir,rdir,
FullCon, iController, grow_from_center); FullCon, iController, grow_from_center);
@ -1078,10 +1078,10 @@ C4Object* C4Game::CreateObject(C4PropList * PropList, C4Object *pCreator, int32_
C4Real xdir, C4Real ydir, C4Real rdir, int32_t iController) C4Real xdir, C4Real ydir, C4Real rdir, int32_t iController)
{ {
// check Definition // check Definition
if (!PropList || !PropList->GetDef()) return NULL; if (!PropList || !PropList->GetDef()) return nullptr;
// Create object // Create object
return NewObject(PropList,pCreator, return NewObject(PropList,pCreator,
iOwner,NULL, iOwner,nullptr,
x,y,r, x,y,r,
xdir,ydir,rdir, xdir,ydir,rdir,
FullCon, iController, grow_from_center); FullCon, iController, grow_from_center);
@ -1092,11 +1092,11 @@ C4Object* C4Game::CreateInfoObject(C4ObjectInfo *cinf, int32_t iOwner,
{ {
C4Def *def; C4Def *def;
// Valid check // Valid check
if (!cinf) return NULL; if (!cinf) return nullptr;
// Get def // Get def
if (!(def=C4Id2Def(cinf->id))) return NULL; if (!(def=C4Id2Def(cinf->id))) return nullptr;
// Create object // Create object
return NewObject( def,NULL, return NewObject( def,nullptr,
iOwner,cinf, iOwner,cinf,
tx,ty,0, tx,ty,0,
Fix0,Fix0,Fix0, Fix0,Fix0,Fix0,
@ -1114,8 +1114,8 @@ C4Object* C4Game::CreateObjectConstruction(C4PropList * PropList,
C4Object *pObj; C4Object *pObj;
// Get def // Get def
if (!PropList) return NULL; if (!PropList) return nullptr;
if (!(pDef=PropList->GetDef())) return NULL; if (!(pDef=PropList->GetDef())) return nullptr;
int32_t dx,dy,dwdt,dhgt; int32_t dx,dy,dwdt,dhgt;
dwdt=pDef->Shape.Wdt; dhgt=pDef->Shape.Hgt; dwdt=pDef->Shape.Wdt; dhgt=pDef->Shape.Hgt;
@ -1134,10 +1134,10 @@ C4Object* C4Game::CreateObjectConstruction(C4PropList * PropList,
// Create object // Create object
if (!(pObj=NewObject(PropList, if (!(pObj=NewObject(PropList,
pCreator, pCreator,
iOwner,NULL, iOwner,nullptr,
iX,iBY,0, iX,iBY,0,
Fix0,Fix0,Fix0, Fix0,Fix0,Fix0,
iCon, pCreator ? pCreator->Controller : NO_OWNER, false))) return NULL; iCon, pCreator ? pCreator->Controller : NO_OWNER, false))) return nullptr;
return pObj; return pObj;
} }
@ -1156,7 +1156,7 @@ C4Object* C4Game::FindConstuctionSiteBlock(int32_t tx, int32_t ty, int32_t wdt,
rect2=cObj->Shape; rect2.x+=cObj->GetX(); rect2.y+=cObj->GetY(); rect2=cObj->Shape; rect2.x+=cObj->GetX(); rect2.y+=cObj->GetY();
if (rect1.Overlap(rect2)) return cObj; if (rect1.Overlap(rect2)) return cObj;
} }
return NULL; return nullptr;
} }
C4Object* C4Game::FindObject(C4Def * pDef, C4Object* C4Game::FindObject(C4Def * pDef,
@ -1165,18 +1165,18 @@ C4Object* C4Game::FindObject(C4Def * pDef,
C4Object *pFindNext) C4Object *pFindNext)
{ {
C4Object *pClosest=NULL; C4Object *pClosest=nullptr;
int32_t iClosest = 0,iDistance,iFartherThan=-1; int32_t iClosest = 0,iDistance,iFartherThan=-1;
C4Object *pFindNextCpy=pFindNext; C4Object *pFindNextCpy=pFindNext;
// check the easy case first: no instances at all? // check the easy case first: no instances at all?
if (pDef && !pDef->Count) return NULL; if (pDef && !pDef->Count) return nullptr;
// Finding next closest: find closest but further away than last closest // Finding next closest: find closest but further away than last closest
if (pFindNext && (iWdt==-1) && (iHgt==-1)) if (pFindNext && (iWdt==-1) && (iHgt==-1))
{ {
iFartherThan = (pFindNext->GetX()-iX)*(pFindNext->GetX()-iX)+(pFindNext->GetY()-iY)*(pFindNext->GetY()-iY); iFartherThan = (pFindNext->GetX()-iX)*(pFindNext->GetX()-iX)+(pFindNext->GetY()-iY)*(pFindNext->GetY()-iY);
pFindNext = NULL; pFindNext = nullptr;
} }
// Scan all objects // Scan all objects
@ -1218,7 +1218,7 @@ C4Object* C4Game::FindObject(C4Def * pDef,
} }
// Find next mark reached // Find next mark reached
if (cObj == pFindNextCpy) pFindNext = pFindNextCpy = NULL; if (cObj == pFindNextCpy) pFindNext = pFindNextCpy = nullptr;
} }
@ -1232,7 +1232,7 @@ C4Object *C4Game::FindVisObject(float tx, float ty, int32_t iPlr, const C4Facet
// FIXME: Use C4FindObject here for optimization // FIXME: Use C4FindObject here for optimization
// -- can't really do that, since sectors ignore parallaxity, etc. // -- can't really do that, since sectors ignore parallaxity, etc.
// determine layer to search in // determine layer to search in
C4Object *layer_object = NULL; C4Object *layer_object = nullptr;
C4Player *plr = ::Players.Get(iPlr); C4Player *plr = ::Players.Get(iPlr);
if (plr && plr->Cursor) layer_object = plr->Cursor->Layer; if (plr && plr->Cursor) layer_object = plr->Cursor->Layer;
// scan all object lists separately // scan all object lists separately
@ -1283,11 +1283,11 @@ C4Object *C4Game::FindVisObject(float tx, float ty, int32_t iPlr, const C4Facet
} }
// next list // next list
if (pLst == &::Objects.ForeObjects) pLst = &Objects; if (pLst == &::Objects.ForeObjects) pLst = &Objects;
else pLst = NULL; else pLst = nullptr;
} }
// none found // none found
return NULL; return nullptr;
} }
int32_t C4Game::ObjectCount(C4ID id) int32_t C4Game::ObjectCount(C4ID id)
@ -1401,7 +1401,7 @@ bool C4Game::DropDef(C4ID id, float X, float Y)
C4Def *pDef; C4Def *pDef;
if ((pDef=C4Id2Def(id))) if ((pDef=C4Id2Def(id)))
{ {
::Control.DoInput(CID_EMMoveObj, C4ControlEMMoveObject::CreateObject(id, ftofix(X), ftofix(Y), NULL), CDT_Decide); ::Control.DoInput(CID_EMMoveObj, C4ControlEMMoveObject::CreateObject(id, ftofix(X), ftofix(Y), nullptr), CDT_Decide);
return true; return true;
} }
else else
@ -1455,7 +1455,7 @@ void C4Game::Default()
PlayerFilenames[0]=0; PlayerFilenames[0]=0;
DefinitionFilenames[0]=0; DefinitionFilenames[0]=0;
DirectJoinAddress[0]=0; DirectJoinAddress[0]=0;
pJoinReference=NULL; pJoinReference=nullptr;
StartupPlayerCount=0; StartupPlayerCount=0;
StartupTeamCount = 0; StartupTeamCount = 0;
ScenarioTitle.Ref(""); ScenarioTitle.Ref("");
@ -1490,8 +1490,8 @@ void C4Game::Default()
PathFinder.Default(); PathFinder.Default();
TransferZones.Default(); TransferZones.Default();
GroupSet.Default(); GroupSet.Default();
pParentGroup=NULL; pParentGroup=nullptr;
pScenarioSections=pCurrentScenarioSection=NULL; pScenarioSections=pCurrentScenarioSection=nullptr;
*CurrentScenarioSection=0; *CurrentScenarioSection=0;
fResortAnyObject=false; fResortAnyObject=false;
pNetworkStatistics.reset(); pNetworkStatistics.reset();
@ -1513,7 +1513,7 @@ void C4Game::Evaluate()
// Stop record // Stop record
StdStrBuf RecordName; BYTE RecordSHA[SHA_DIGEST_LENGTH]; StdStrBuf RecordName; BYTE RecordSHA[SHA_DIGEST_LENGTH];
if (Control.isRecord()) if (Control.isRecord())
Control.StopRecord(&RecordName, fLeague ? RecordSHA : NULL); Control.StopRecord(&RecordName, fLeague ? RecordSHA : nullptr);
// Send league result // Send league result
if (fLeague) if (fLeague)
@ -2203,7 +2203,7 @@ bool C4Game::InitGame(C4Group &hGroup, InitMode init_mode, bool fLoadSky, C4Valu
} }
// Load section sounds // Load section sounds
Application.SoundSystem.LoadEffects(hGroup, NULL, true); Application.SoundSystem.LoadEffects(hGroup, nullptr, true);
// determine startup player and team count, which may be used for initial map generation // determine startup player and team count, which may be used for initial map generation
if (!FrameCounter) if (!FrameCounter)
@ -2390,7 +2390,7 @@ bool C4Game::InitScriptEngine()
// get scripts // get scripts
char fn[_MAX_FNAME+1] = { 0 }; char fn[_MAX_FNAME+1] = { 0 };
File.ResetSearch(); File.ResetSearch();
while (File.FindNextEntry(C4CFN_ScriptFiles, fn, NULL, !!fn[0])) while (File.FindNextEntry(C4CFN_ScriptFiles, fn, nullptr, !!fn[0]))
{ {
// host will be destroyed by script engine, so drop the references // host will be destroyed by script engine, so drop the references
C4ScriptHost *scr = new C4ExtraScriptHost(); C4ScriptHost *scr = new C4ExtraScriptHost();
@ -2610,7 +2610,7 @@ bool C4Game::PlaceInEarth(C4ID id)
{ {
tx=Random(::Landscape.GetWidth()); ty=Random(::Landscape.GetHeight()); tx=Random(::Landscape.GetWidth()); ty=Random(::Landscape.GetHeight());
if (GBackMat(tx,ty)==MEarth) if (GBackMat(tx,ty)==MEarth)
if (CreateObject(id,NULL,NO_OWNER,tx,ty,Random(360))) if (CreateObject(id,nullptr,NO_OWNER,tx,ty,Random(360)))
return true; return true;
} }
return false; return false;
@ -2656,7 +2656,7 @@ C4Object* C4Game::PlaceVegetation(C4PropList * PropList, int32_t iX, int32_t iY,
// Get definition // Get definition
C4Def* pDef; C4Def* pDef;
if (!PropList || !(pDef = PropList->GetDef())) return NULL; if (!PropList || !(pDef = PropList->GetDef())) return nullptr;
// No growth specified: full growth // No growth specified: full growth
if (iGrowth<=0) if (iGrowth<=0)
@ -2693,7 +2693,7 @@ C4Object* C4Game::PlaceVegetation(C4PropList * PropList, int32_t iX, int32_t iY,
if (iMaterial!=MNone) if (::MaterialMap.Map[iMaterial].Soil) if (iMaterial!=MNone) if (::MaterialMap.Map[iMaterial].Soil)
{ {
iTy+=5; iTy+=5;
return CreateObjectConstruction(PropList,NULL,NO_OWNER,iTx,iTy,iGrowth); return CreateObjectConstruction(PropList,nullptr,NO_OWNER,iTx,iTy,iGrowth);
} }
} }
break; break;
@ -2701,18 +2701,18 @@ C4Object* C4Game::PlaceVegetation(C4PropList * PropList, int32_t iX, int32_t iY,
// Underwater // Underwater
case C4D_Place_Liquid: case C4D_Place_Liquid:
// Random range // Random range
if (!PlaceVegetation_GetRandomPoint(iX, iY, iWdt, iHgt, shape_proplist, out_pos_proplist, &iTx, &iTy)) return NULL; if (!PlaceVegetation_GetRandomPoint(iX, iY, iWdt, iHgt, shape_proplist, out_pos_proplist, &iTx, &iTy)) return nullptr;
// Find liquid // Find liquid
if (!FindSurfaceLiquid(iTx,iTy,pDef->Shape.Wdt,pDef->Shape.Hgt)) if (!FindSurfaceLiquid(iTx,iTy,pDef->Shape.Wdt,pDef->Shape.Hgt))
if (!FindLiquid(iTx,iTy,pDef->Shape.Wdt,pDef->Shape.Hgt)) if (!FindLiquid(iTx,iTy,pDef->Shape.Wdt,pDef->Shape.Hgt))
return NULL; return nullptr;
// Liquid bottom // Liquid bottom
if (!SemiAboveSolid(iTx,iTy)) return NULL; if (!SemiAboveSolid(iTx,iTy)) return nullptr;
iTy+=3; iTy+=3;
// Still inside bounds? // Still inside bounds?
if (!PlaceVegetation_IsPosInBounds(iTx, iTy, iX, iY, iWdt, iHgt, shape_proplist)) return NULL; if (!PlaceVegetation_IsPosInBounds(iTx, iTy, iX, iY, iWdt, iHgt, shape_proplist)) return nullptr;
// Create object // Create object
return CreateObjectConstruction(PropList,NULL,NO_OWNER,iTx,iTy,iGrowth); return CreateObjectConstruction(PropList,nullptr,NO_OWNER,iTx,iTy,iGrowth);
break; break;
// Underground/Tunnel // Underground/Tunnel
@ -2735,7 +2735,7 @@ C4Object* C4Game::PlaceVegetation(C4PropList * PropList, int32_t iX, int32_t iY,
{ {
// Create object // Create object
iTy+=5; iTy+=5;
return CreateObjectConstruction(PropList,NULL,NO_OWNER,iTx,iTy,iGrowth); return CreateObjectConstruction(PropList,nullptr,NO_OWNER,iTx,iTy,iGrowth);
} }
} }
@ -2763,20 +2763,20 @@ C4Object* C4Game::PlaceVegetation(C4PropList * PropList, int32_t iX, int32_t iY,
if (iMaterial!=MNone) if (::MaterialMap.Map[iMaterial].Soil) if (iMaterial!=MNone) if (::MaterialMap.Map[iMaterial].Soil)
{ {
iTy+=5; iTy+=5;
return CreateObjectConstruction(PropList,NULL,NO_OWNER,iTx,iTy,iGrowth); return CreateObjectConstruction(PropList,nullptr,NO_OWNER,iTx,iTy,iGrowth);
} }
} }
} }
// Undefined placement type // Undefined placement type
return NULL; return nullptr;
} }
C4Object* C4Game::PlaceAnimal(C4PropList* PropList) C4Object* C4Game::PlaceAnimal(C4PropList* PropList)
{ {
C4Def * pDef; C4Def * pDef;
if (!PropList || !(pDef = PropList->GetDef())) return NULL; if (!PropList || !(pDef = PropList->GetDef())) return nullptr;
int32_t iX,iY; int32_t iX,iY;
// Placement // Placement
switch (PropList->GetPropertyInt(P_Placement)) switch (PropList->GetPropertyInt(P_Placement))
@ -2784,28 +2784,28 @@ C4Object* C4Game::PlaceAnimal(C4PropList* PropList)
// Running free // Running free
case C4D_Place_Surface: case C4D_Place_Surface:
iX=Random(::Landscape.GetWidth()); iY=Random(::Landscape.GetHeight()); iX=Random(::Landscape.GetWidth()); iY=Random(::Landscape.GetHeight());
if (!FindSolidGround(iX,iY,pDef->Shape.Wdt)) return NULL; if (!FindSolidGround(iX,iY,pDef->Shape.Wdt)) return nullptr;
break; break;
// In liquid // In liquid
case C4D_Place_Liquid: case C4D_Place_Liquid:
iX=Random(::Landscape.GetWidth()); iY=Random(::Landscape.GetHeight()); iX=Random(::Landscape.GetWidth()); iY=Random(::Landscape.GetHeight());
if (!FindSurfaceLiquid(iX,iY,pDef->Shape.Wdt,pDef->Shape.Hgt)) if (!FindSurfaceLiquid(iX,iY,pDef->Shape.Wdt,pDef->Shape.Hgt))
if (!FindLiquid(iX,iY,pDef->Shape.Wdt,pDef->Shape.Hgt)) if (!FindLiquid(iX,iY,pDef->Shape.Wdt,pDef->Shape.Hgt))
return NULL; return nullptr;
iY+=pDef->Shape.Hgt/2; iY+=pDef->Shape.Hgt/2;
break; break;
// Floating in air // Floating in air
case C4D_Place_Air: case C4D_Place_Air:
iX=Random(::Landscape.GetWidth()); iX=Random(::Landscape.GetWidth());
for (iY=0; (iY<::Landscape.GetHeight()) && !GBackSemiSolid(iX,iY); iY++) {} for (iY=0; (iY<::Landscape.GetHeight()) && !GBackSemiSolid(iX,iY); iY++) {}
if (iY<=0) return NULL; if (iY<=0) return nullptr;
iY=Random(iY); iY=Random(iY);
break; break;
default: default:
return NULL; return nullptr;
} }
// Create object // Create object
return CreateObject(PropList,NULL,NO_OWNER,iX,iY); return CreateObject(PropList,nullptr,NO_OWNER,iX,iY);
} }
void C4Game::InitInEarth() void C4Game::InitInEarth()
@ -2836,7 +2836,7 @@ void C4Game::InitVegetation()
// Place vegetation // Place vegetation
if (vidnum>0) if (vidnum>0)
for (cnt=0; cnt<amt; cnt++) for (cnt=0; cnt<amt; cnt++)
PlaceVegetation(C4Id2Def(vidlist[Random(vidnum)]),0,0,::Landscape.GetWidth(),::Landscape.GetHeight(),-1,NULL,NULL); PlaceVegetation(C4Id2Def(vidlist[Random(vidnum)]),0,0,::Landscape.GetWidth(),::Landscape.GetHeight(),-1,nullptr,nullptr);
} }
void C4Game::InitAnimals() void C4Game::InitAnimals()
@ -2864,7 +2864,7 @@ bool C4Game::LoadScenarioComponents()
// scenario sections // scenario sections
char fn[_MAX_FNAME+1] = { 0 }; char fn[_MAX_FNAME+1] = { 0 };
ScenarioFile.ResetSearch(); *fn=0; ScenarioFile.ResetSearch(); *fn=0;
while (ScenarioFile.FindNextEntry(C4CFN_ScenarioSections, fn, NULL, !!*fn)) while (ScenarioFile.FindNextEntry(C4CFN_ScenarioSections, fn, nullptr, !!*fn))
{ {
// get section name // get section name
char SctName[_MAX_FNAME+1]; char SctName[_MAX_FNAME+1];
@ -2914,7 +2914,7 @@ bool C4Game::LoadAdditionalSystemGroup(C4Group &parent_group)
} }
// load all scripts in there // load all scripts in there
SysGroup.ResetSearch(); SysGroup.ResetSearch();
while (SysGroup.FindNextEntry(C4CFN_ScriptFiles, fn, NULL, !!fn[0])) while (SysGroup.FindNextEntry(C4CFN_ScriptFiles, fn, nullptr, !!fn[0]))
{ {
// host will be destroyed by script engine, so drop the references // host will be destroyed by script engine, so drop the references
C4ScriptHost *scr = new C4ExtraScriptHost(); C4ScriptHost *scr = new C4ExtraScriptHost();
@ -3062,7 +3062,7 @@ C4Player *C4Game::JoinPlayer(const char *szFilename, int32_t iAtClient, const ch
assert(pInfo); assert(pInfo);
C4Player *pPlr; C4Player *pPlr;
// Join // Join
if (!( pPlr = Players.Join(szFilename,true,iAtClient,szAtClientName, pInfo, NULL) )) return NULL; if (!( pPlr = Players.Join(szFilename,true,iAtClient,szAtClientName, pInfo, nullptr) )) return nullptr;
// Player final init // Player final init
pPlr->FinalInit(true); pPlr->FinalInit(true);
// Create player viewport // Create player viewport
@ -3164,7 +3164,7 @@ bool C4Game::InitNetworkFromAddress(const char *szAddress)
StdStrBuf Message = FormatString(LoadResStr("IDS_NET_REFQUERY_QUERYMSG"), szAddress); StdStrBuf Message = FormatString(LoadResStr("IDS_NET_REFQUERY_QUERYMSG"), szAddress);
Log(Message.getData()); Log(Message.getData());
// Set up wait dialog // Set up wait dialog
C4GUI::MessageDialog *pDlg = NULL; C4GUI::MessageDialog *pDlg = nullptr;
if (!Application.isEditor) if (!Application.isEditor)
{ {
// create & show // create & show
@ -3192,7 +3192,7 @@ bool C4Game::InitNetworkFromAddress(const char *szAddress)
if (!RefClient.isSuccess()) if (!RefClient.isSuccess())
{ LogFatal(FormatString(strRefQueryFailed.getData(), RefClient.GetError()).getData()); return false; } { LogFatal(FormatString(strRefQueryFailed.getData(), RefClient.GetError()).getData()); return false; }
// Get references // Get references
C4Network2Reference **ppRefs = NULL; int32_t iRefCount; C4Network2Reference **ppRefs = nullptr; int32_t iRefCount;
if (!RefClient.GetReferences(ppRefs, iRefCount) || iRefCount <= 0) if (!RefClient.GetReferences(ppRefs, iRefCount) || iRefCount <= 0)
{ LogFatal(FormatString(strRefQueryFailed.getData(), LoadResStr("IDS_NET_REFQUERY_NOREF")).getData()); return false; } { LogFatal(FormatString(strRefQueryFailed.getData(), LoadResStr("IDS_NET_REFQUERY_NOREF")).getData()); return false; }
// Connect to first reference // Connect to first reference
@ -3351,7 +3351,7 @@ void C4Game::InitEnvironment()
C4ID idType; int32_t iCount; C4ID idType; int32_t iCount;
for (cnt=0; (idType=C4S.Environment.Objects.GetID(cnt,&iCount)); cnt++) for (cnt=0; (idType=C4S.Environment.Objects.GetID(cnt,&iCount)); cnt++)
for (cnt2=0; cnt2<iCount; cnt2++) for (cnt2=0; cnt2<iCount; cnt2++)
CreateObject(idType,NULL); CreateObject(idType,nullptr);
} }
void C4Game::InitRules() void C4Game::InitRules()
@ -3361,7 +3361,7 @@ void C4Game::InitRules()
C4ID idType; int32_t iCount; C4ID idType; int32_t iCount;
for (cnt=0; (idType=Parameters.Rules.GetID(cnt,&iCount)); cnt++) for (cnt=0; (idType=Parameters.Rules.GetID(cnt,&iCount)); cnt++)
for (cnt2=0; cnt2<std::max<int32_t>(iCount,1); cnt2++) for (cnt2=0; cnt2<std::max<int32_t>(iCount,1); cnt2++)
CreateObject(idType,NULL); CreateObject(idType,nullptr);
} }
void C4Game::InitGoals() void C4Game::InitGoals()
@ -3371,7 +3371,7 @@ void C4Game::InitGoals()
C4ID idType; int32_t iCount; C4ID idType; int32_t iCount;
for (cnt=0; (idType=Parameters.Goals.GetID(cnt,&iCount)); cnt++) for (cnt=0; (idType=Parameters.Goals.GetID(cnt,&iCount)); cnt++)
for (cnt2=0; cnt2<iCount; cnt2++) for (cnt2=0; cnt2<iCount; cnt2++)
CreateObject(idType,NULL); CreateObject(idType,nullptr);
} }
void C4Game::SetInitProgress(float fToProgress) void C4Game::SetInitProgress(float fToProgress)
@ -3743,7 +3743,7 @@ bool C4Game::DrawTextSpecImage(C4Facet &fctTarget, const char *szSpec, C4DrawTra
C4Def *pDef = C4Id2Def(C4ID(szSpec)); C4Def *pDef = C4Id2Def(C4ID(szSpec));
if (!pDef) return false; if (!pDef) return false;
pDef->Draw(fctTarget, false, dwClr, NULL, 0, 0, pTransform); pDef->Draw(fctTarget, false, dwClr, nullptr, 0, 0, pTransform);
return true; return true;
} }
} }
@ -3806,7 +3806,7 @@ bool C4Game::DrawPropListSpecImage(C4Facet &fctTarget, C4PropList *pSpec)
// Alternative named graphics // Alternative named graphics
C4DefGraphics *source_graphics = source_def->Graphics.Get(source_name->GetCStr()); C4DefGraphics *source_graphics = source_def->Graphics.Get(source_name->GetCStr());
if (!source_graphics) return false; if (!source_graphics) return false;
source_graphics->Draw(fctTarget, color, NULL, 0,0, NULL); source_graphics->Draw(fctTarget, color, nullptr, 0,0, nullptr);
} }
return true; return true;
} }
@ -3874,7 +3874,7 @@ void C4Game::SetGlobalSoundModifier(C4PropList *new_modifier)
else else
{ {
GlobalSoundModifier.Set0(); GlobalSoundModifier.Set0();
mod = NULL; mod = nullptr;
} }
::Application.SoundSystem.Modifiers.SetGlobalModifier(mod, NO_OWNER); ::Application.SoundSystem.Modifiers.SetGlobalModifier(mod, NO_OWNER);
} }

View File

@ -94,7 +94,7 @@ public:
C4PlayerControlDefs PlayerControlDefs; C4PlayerControlDefs PlayerControlDefs;
C4PlayerControlAssignmentSets PlayerControlUserAssignmentSets, PlayerControlDefaultAssignmentSets; C4PlayerControlAssignmentSets PlayerControlUserAssignmentSets, PlayerControlDefaultAssignmentSets;
C4Scoreboard Scoreboard; C4Scoreboard Scoreboard;
std::unique_ptr<C4Network2Stats> pNetworkStatistics; // may be NULL if no statistics are recorded std::unique_ptr<C4Network2Stats> pNetworkStatistics; // may be nullptr if no statistics are recorded
C4KeyboardInput &KeyboardInput; C4KeyboardInput &KeyboardInput;
std::unique_ptr<C4FileMonitor> pFileMonitor; std::unique_ptr<C4FileMonitor> pFileMonitor;
std::unique_ptr<C4GameSec1Timer> pSec1Timer; std::unique_ptr<C4GameSec1Timer> pSec1Timer;
@ -154,8 +154,8 @@ public:
void Abort(bool fApproved = false); // hard-quit on Esc+Y (/J/O) void Abort(bool fApproved = false); // hard-quit on Esc+Y (/J/O)
void Evaluate(); void Evaluate();
void ShowGameOverDlg(); void ShowGameOverDlg();
bool DoKeyboardInput(C4KeyCode vk_code, C4KeyEventType eEventType, bool fAlt, bool fCtrl, bool fShift, bool fRepeated, class C4GUI::Dialog *pForDialog=NULL, bool fPlrCtrlOnly=false, int32_t iStrength=-1); bool DoKeyboardInput(C4KeyCode vk_code, C4KeyEventType eEventType, bool fAlt, bool fCtrl, bool fShift, bool fRepeated, class C4GUI::Dialog *pForDialog=nullptr, bool fPlrCtrlOnly=false, int32_t iStrength=-1);
bool DoKeyboardInput(C4KeyCodeEx Key, C4KeyEventType eEventType, class C4GUI::Dialog *pForDialog=NULL, bool fPlrCtrlOnly=false, int32_t iStrength=-1); bool DoKeyboardInput(C4KeyCodeEx Key, C4KeyEventType eEventType, class C4GUI::Dialog *pForDialog=nullptr, bool fPlrCtrlOnly=false, int32_t iStrength=-1);
void DrawCrewOverheadText(C4TargetFacet &cgo, int32_t iPlayer); void DrawCrewOverheadText(C4TargetFacet &cgo, int32_t iPlayer);
void FixRandom(uint64_t iSeed); void FixRandom(uint64_t iSeed);
bool Init(); bool Init();
@ -205,14 +205,14 @@ public:
C4Object *FindObject(C4Def * pDef, C4Object *FindObject(C4Def * pDef,
int32_t iX=0, int32_t iY=0, int32_t iWdt=0, int32_t iHgt=0, int32_t iX=0, int32_t iY=0, int32_t iWdt=0, int32_t iHgt=0,
DWORD ocf=OCF_All, DWORD ocf=OCF_All,
C4Object *pFindNext=NULL); C4Object *pFindNext=nullptr);
C4Object *FindVisObject( // find object in view at pos, regarding parallaxity and visibility (but not distance) C4Object *FindVisObject( // find object in view at pos, regarding parallaxity and visibility (but not distance)
float tx, float ty, int32_t iPlr, const C4Facet &fctViewportGame, const C4Facet &fctViewportGUI, float tx, float ty, int32_t iPlr, const C4Facet &fctViewportGame, const C4Facet &fctViewportGUI,
float iX, float iY, float iX, float iY,
DWORD category, DWORD category,
float gui_x, float gui_y); float gui_x, float gui_y);
int32_t ObjectCount(C4ID id); int32_t ObjectCount(C4ID id);
void CastObjects(C4ID id, C4Object *pCreator, int32_t num, int32_t level, int32_t tx, int32_t ty, int32_t iOwner=NO_OWNER, int32_t iController=NO_OWNER, C4ValueArray *out_objects=NULL); void CastObjects(C4ID id, C4Object *pCreator, int32_t num, int32_t level, int32_t tx, int32_t ty, int32_t iOwner=NO_OWNER, int32_t iController=NO_OWNER, C4ValueArray *out_objects=nullptr);
C4Object *PlaceVegetation(C4PropList *def, int32_t iX, int32_t iY, int32_t iWdt, int32_t iHgt, int32_t iGrowth, C4PropList *shape_proplist, C4PropList * out_pos_proplist); C4Object *PlaceVegetation(C4PropList *def, int32_t iX, int32_t iY, int32_t iWdt, int32_t iHgt, int32_t iGrowth, C4PropList *shape_proplist, C4PropList * out_pos_proplist);
C4Object *PlaceAnimal(C4PropList *def); C4Object *PlaceAnimal(C4PropList *def);
C4Value GRBroadcast(const char *szFunction, C4AulParSet *pPars = 0, bool fPassError=false, bool fRejectTest=false); // call function in scenario script and all goals/rules/environment objects C4Value GRBroadcast(const char *szFunction, C4AulParSet *pPars = 0, bool fPassError=false, bool fRejectTest=false); // call function in scenario script and all goals/rules/environment objects

View File

@ -85,7 +85,7 @@ static long FnGetGravity(C4PropList * _this)
static C4String *FnGetPlayerName(C4PropList * _this, long iPlayer) static C4String *FnGetPlayerName(C4PropList * _this, long iPlayer)
{ {
if (!ValidPlr(iPlayer)) return NULL; if (!ValidPlr(iPlayer)) return nullptr;
return String(::Players.Get(iPlayer)->GetName()); return String(::Players.Get(iPlayer)->GetName());
} }
@ -184,7 +184,7 @@ static C4Object *FnCreateConstruction(C4PropList * _this,
{ {
// Make sure parameters are valid // Make sure parameters are valid
if (!PropList || !PropList->GetDef()) if (!PropList || !PropList->GetDef())
return NULL; return nullptr;
// Local object calls override position offset, owner // Local object calls override position offset, owner
if (Object(_this)) if (Object(_this))
@ -196,7 +196,7 @@ static C4Object *FnCreateConstruction(C4PropList * _this,
// Check site // Check site
if (fCheckSite) if (fCheckSite)
if (!ConstructionCheck(PropList,iXOffset,iYOffset,Object(_this))) if (!ConstructionCheck(PropList,iXOffset,iYOffset,Object(_this)))
return NULL; return nullptr;
long iOwner = owner; long iOwner = owner;
if (owner.IsNil()) if (owner.IsNil())
@ -220,10 +220,10 @@ static C4ValueArray *FnFindConstructionSite(C4PropList * _this, C4PropList * Pro
{ {
// Get def // Get def
C4Def *pDef; C4Def *pDef;
if (!(pDef=PropList->GetDef())) return NULL; if (!(pDef=PropList->GetDef())) return nullptr;
// Construction check at starting position // Construction check at starting position
if (ConstructionCheck(PropList,v1,v2)) if (ConstructionCheck(PropList,v1,v2))
return NULL; return nullptr;
// Search for real // Search for real
bool result = !!FindConSiteSpot(v1, v2, pDef->Shape.Wdt,pDef->Shape.Hgt, 20); bool result = !!FindConSiteSpot(v1, v2, pDef->Shape.Wdt,pDef->Shape.Hgt, 20);
if(!result) return 0; if(!result) return 0;
@ -261,8 +261,8 @@ C4FindObject *CreateCriterionsFromPars(C4Value *pPars, C4FindObject **pFOs, C4So
// No data given? // No data given?
if (!Data) break; if (!Data) break;
// Construct // Construct
C4SortObject *pSO = NULL; C4SortObject *pSO = nullptr;
C4FindObject *pFO = C4FindObject::CreateByValue(Data, pSOs ? &pSO : NULL, context, &has_layer_check); C4FindObject *pFO = C4FindObject::CreateByValue(Data, pSOs ? &pSO : nullptr, context, &has_layer_check);
// Add FindObject // Add FindObject
if (pFO) if (pFO)
{ {
@ -278,7 +278,7 @@ C4FindObject *CreateCriterionsFromPars(C4Value *pPars, C4FindObject **pFOs, C4So
if (!iCnt) if (!iCnt)
{ {
for (i = 0; i < iSortCnt; ++i) delete pSOs[i]; for (i = 0; i < iSortCnt; ++i) delete pSOs[i];
return NULL; return nullptr;
} }
// Implicit layer check // Implicit layer check
if (context && !has_layer_check) if (context && !has_layer_check)
@ -286,7 +286,7 @@ C4FindObject *CreateCriterionsFromPars(C4Value *pPars, C4FindObject **pFOs, C4So
pFOs[iCnt++] = new C4FindObjectLayer(context->Layer); pFOs[iCnt++] = new C4FindObjectLayer(context->Layer);
} }
// create sort criterion // create sort criterion
C4SortObject *pSO = NULL; C4SortObject *pSO = nullptr;
if (iSortCnt) if (iSortCnt)
{ {
if (iSortCnt == 1) if (iSortCnt == 1)
@ -308,7 +308,7 @@ static C4Value FnObjectCount(C4PropList * _this, C4Value *pPars)
{ {
// Create FindObject-structure // Create FindObject-structure
C4FindObject *pFOs[C4AUL_MAX_Par+1]; // +1 array element to include space for implicit layer check C4FindObject *pFOs[C4AUL_MAX_Par+1]; // +1 array element to include space for implicit layer check
C4FindObject *pFO = CreateCriterionsFromPars(pPars, pFOs, NULL, Object(_this)); C4FindObject *pFO = CreateCriterionsFromPars(pPars, pFOs, nullptr, Object(_this));
// Error? // Error?
if (!pFO) if (!pFO)
throw C4AulExecError("ObjectCount: No valid search criterions supplied"); throw C4AulExecError("ObjectCount: No valid search criterions supplied");
@ -409,10 +409,10 @@ static C4String *FnGetTexture(C4PropList * _this, long x, long y)
// Get texture // Get texture
int32_t iTex = PixCol2Tex(::Landscape.GetPix(x, y)); int32_t iTex = PixCol2Tex(::Landscape.GetPix(x, y));
if (!iTex) return NULL; if (!iTex) return nullptr;
// Get material-texture mapping // Get material-texture mapping
const C4TexMapEntry *pTex = ::TextureMap.GetEntry(iTex); const C4TexMapEntry *pTex = ::TextureMap.GetEntry(iTex);
if (!pTex) return NULL; if (!pTex) return nullptr;
// Return tex name // Return tex name
return String(pTex->GetTextureName()); return String(pTex->GetTextureName());
} }
@ -423,10 +423,10 @@ static C4String *FnGetBackTexture(C4PropList * _this, long x, long y)
// Get texture // Get texture
int32_t iTex = PixCol2Tex(::Landscape.GetBackPix(x, y)); int32_t iTex = PixCol2Tex(::Landscape.GetBackPix(x, y));
if (!iTex) return NULL; if (!iTex) return nullptr;
// Get material-texture mapping // Get material-texture mapping
const C4TexMapEntry *pTex = ::TextureMap.GetEntry(iTex); const C4TexMapEntry *pTex = ::TextureMap.GetEntry(iTex);
if (!pTex) return NULL; if (!pTex) return nullptr;
// Return tex name // Return tex name
return String(pTex->GetTextureName()); return String(pTex->GetTextureName());
} }
@ -440,7 +440,7 @@ static Nillable<long> FnGetAverageTextureColor(C4PropList * _this, C4String* Tex
StdStrBuf texture_name; StdStrBuf texture_name;
texture_name.Ref(Texture->GetCStr()); texture_name.Ref(Texture->GetCStr());
const char* pch = strchr(texture_name.getData(), '-'); const char* pch = strchr(texture_name.getData(), '-');
if (pch != NULL) if (pch != nullptr)
{ {
size_t len = pch - texture_name.getData(); size_t len = pch - texture_name.getData();
texture_name.Copy(); texture_name.Copy();
@ -517,7 +517,7 @@ static bool FnSoundAt(C4PropList * _this, C4String *szSound, long iX, long iY, N
if (modifier_props) if (modifier_props)
modifier = Application.SoundSystem.Modifiers.Get(modifier_props, true); modifier = Application.SoundSystem.Modifiers.Get(modifier_props, true);
else else
modifier = NULL; modifier = nullptr;
// target object // target object
C4Object *pObj = Object(_this); C4Object *pObj = Object(_this);
if (pObj) if (pObj)
@ -553,9 +553,9 @@ static bool FnSound(C4PropList * _this, C4String *szSound, bool fGlobal, Nillabl
if (modifier_props) if (modifier_props)
modifier = Application.SoundSystem.Modifiers.Get(modifier_props, true); modifier = Application.SoundSystem.Modifiers.Get(modifier_props, true);
else else
modifier = NULL; modifier = nullptr;
// target object // target object
C4Object *pObj = NULL; C4Object *pObj = nullptr;
if (!fGlobal) pObj = Object(_this); if (!fGlobal) pObj = Object(_this);
// play/stop? // play/stop?
if (iLoop >= 0) if (iLoop >= 0)
@ -649,7 +649,7 @@ static long FnSetPlayList(C4PropList * _this, const C4Value & playlist_data, Nil
} }
// Playlist might be a string for the new playlist, a proplist with more info, or nil to reset the playlist // Playlist might be a string for the new playlist, a proplist with more info, or nil to reset the playlist
C4String * szPlayList = playlist_data.getStr(); C4String * szPlayList = playlist_data.getStr();
C4PropList *playlist_props = NULL; C4PropList *playlist_props = nullptr;
if (!szPlayList) if (!szPlayList)
{ {
playlist_props = playlist_data.getPropList(); playlist_props = playlist_data.getPropList();
@ -756,7 +756,7 @@ C4Object* FnPlaceVegetation(C4PropList * _this, C4PropList * Def, long iX, long
if (shape) if (shape)
{ {
// New-style call with scripted shape // New-style call with scripted shape
C4PropList *out_pos = C4PropList::New(NULL); C4PropList *out_pos = C4PropList::New(nullptr);
C4Value vout_pos = C4VPropList(out_pos); C4Value vout_pos = C4VPropList(out_pos);
return Game.PlaceVegetation(Def, iX, iY, iWdt, iHgt, iGrowth, shape, out_pos); return Game.PlaceVegetation(Def, iX, iY, iWdt, iHgt, iGrowth, shape, out_pos);
} }
@ -766,7 +766,7 @@ C4Object* FnPlaceVegetation(C4PropList * _this, C4PropList * Def, long iX, long
// Local call: relative coordinates // Local call: relative coordinates
if (Object(_this)) { iX += Object(_this)->GetX(); iY += Object(_this)->GetY(); } if (Object(_this)) { iX += Object(_this)->GetX(); iY += Object(_this)->GetY(); }
// Place vegetation // Place vegetation
return Game.PlaceVegetation(Def, iX, iY, iWdt, iHgt, iGrowth, NULL, NULL); return Game.PlaceVegetation(Def, iX, iY, iWdt, iHgt, iGrowth, nullptr, nullptr);
} }
} }
@ -826,7 +826,7 @@ static void FnResetCursorView(C4PropList * _this, long plr, bool immediate_posit
static C4Object *FnGetPlrView(C4PropList * _this, long iPlr) static C4Object *FnGetPlrView(C4PropList * _this, long iPlr)
{ {
C4Player *pPlr = ::Players.Get(iPlr); C4Player *pPlr = ::Players.Get(iPlr);
if (!pPlr || pPlr->ViewMode != C4PVM_Target) return NULL; if (!pPlr || pPlr->ViewMode != C4PVM_Target) return nullptr;
return pPlr->ViewTarget; return pPlr->ViewTarget;
} }
@ -872,11 +872,11 @@ static C4PropList *FnGetPlayerZoomLimits(C4PropList * _this, long plr_idx)
{ {
// get player // get player
C4Player *plr = ::Players.Get(plr_idx); C4Player *plr = ::Players.Get(plr_idx);
if (!plr) return NULL; if (!plr) return nullptr;
// collect limits in a prop list // collect limits in a prop list
// if neither width not height is set for zoom limits, return engine defaults. // if neither width not height is set for zoom limits, return engine defaults.
C4PropList *result = C4PropList::New(); C4PropList *result = C4PropList::New();
if (!result) return NULL; if (!result) return nullptr;
result->SetPropertyByS(::Strings.RegString("MaxWidth"), C4VInt((plr->ZoomLimitMaxWdt || plr->ZoomLimitMaxHgt) ? plr->ZoomLimitMaxWdt : C4VP_DefMaxViewRangeX)); result->SetPropertyByS(::Strings.RegString("MaxWidth"), C4VInt((plr->ZoomLimitMaxWdt || plr->ZoomLimitMaxHgt) ? plr->ZoomLimitMaxWdt : C4VP_DefMaxViewRangeX));
result->SetPropertyByS(::Strings.RegString("MaxHeight"), C4VInt(plr->ZoomLimitMaxHgt)); result->SetPropertyByS(::Strings.RegString("MaxHeight"), C4VInt(plr->ZoomLimitMaxHgt));
result->SetPropertyByS(::Strings.RegString("MaxValue"), C4VInt(fixtoi(plr->ZoomLimitMaxVal, 100))); result->SetPropertyByS(::Strings.RegString("MaxValue"), C4VInt(fixtoi(plr->ZoomLimitMaxVal, 100)));
@ -1052,13 +1052,13 @@ static long FnGetPlayerScoreGain(C4PropList * _this, long iPlr)
static C4Object *FnGetHiRank(C4PropList * _this, long iPlr) static C4Object *FnGetHiRank(C4PropList * _this, long iPlr)
{ {
if (!ValidPlr(iPlr)) return NULL; if (!ValidPlr(iPlr)) return nullptr;
return ::Players.Get(iPlr)->GetHiRankActiveCrew(); return ::Players.Get(iPlr)->GetHiRankActiveCrew();
} }
static C4Object *FnGetCrew(C4PropList * _this, long iPlr, long index) static C4Object *FnGetCrew(C4PropList * _this, long iPlr, long index)
{ {
if (!ValidPlr(iPlr)) return NULL; if (!ValidPlr(iPlr)) return nullptr;
return ::Players.Get(iPlr)->Crew.GetObject(index); return ::Players.Get(iPlr)->Crew.GetObject(index);
} }
@ -1148,7 +1148,7 @@ static bool FnCreateScriptPlayer(C4PropList * _this, C4String *szName, long dwCo
if (dwFlags & CSPF_Invisible ) dwInfoFlags |= C4PlayerInfo::PIF_Invisible; if (dwFlags & CSPF_Invisible ) dwInfoFlags |= C4PlayerInfo::PIF_Invisible;
pScriptPlrInfo->SetAsScriptPlayer(szName->GetCStr(), dwColor, dwInfoFlags, idExtra); pScriptPlrInfo->SetAsScriptPlayer(szName->GetCStr(), dwColor, dwInfoFlags, idExtra);
pScriptPlrInfo->SetTeam(idTeam); pScriptPlrInfo->SetTeam(idTeam);
C4ClientPlayerInfos JoinPkt(NULL, true, pScriptPlrInfo); C4ClientPlayerInfos JoinPkt(nullptr, true, pScriptPlrInfo);
// add to queue! // add to queue!
Game.PlayerInfos.DoPlayerInfoUpdate(&JoinPkt); Game.PlayerInfos.DoPlayerInfoUpdate(&JoinPkt);
// always successful for sync reasons // always successful for sync reasons
@ -1160,7 +1160,7 @@ static C4Object *FnGetCursor(C4PropList * _this, long iPlr)
// get player // get player
C4Player *pPlr = ::Players.Get(iPlr); C4Player *pPlr = ::Players.Get(iPlr);
// invalid player? // invalid player?
if (!pPlr) return NULL; if (!pPlr) return nullptr;
return pPlr->Cursor; return pPlr->Cursor;
} }
@ -1170,7 +1170,7 @@ static C4Object *FnGetViewCursor(C4PropList * _this, long iPlr)
// get player // get player
C4Player *pPlr = ::Players.Get(iPlr); C4Player *pPlr = ::Players.Get(iPlr);
// get viewcursor // get viewcursor
return pPlr ? pPlr->ViewCursor : NULL; return pPlr ? pPlr->ViewCursor : nullptr;
} }
static bool FnSetCursor(C4PropList * _this, long iPlr, C4Object *pObj, bool fNoSelectArrow) static bool FnSetCursor(C4PropList * _this, long iPlr, C4Object *pObj, bool fNoSelectArrow)
@ -1319,7 +1319,7 @@ static C4Value FnGameCallEx(C4PropList * _this, C4Value * Pars)
static C4Object * FnEditCursor(C4PropList * _this) static C4Object * FnEditCursor(C4PropList * _this)
{ {
if (::Control.SyncMode()) return NULL; if (::Control.SyncMode()) return nullptr;
return Console.EditCursor.GetTarget(); return Console.EditCursor.GetTarget();
} }
@ -1332,7 +1332,7 @@ static C4String *FnGetLeague(C4PropList * _this, long idx)
{ {
// get indexed league // get indexed league
StdStrBuf sIdxLeague; StdStrBuf sIdxLeague;
if (!Game.Parameters.League.GetSection(idx, &sIdxLeague)) return NULL; if (!Game.Parameters.League.GetSection(idx, &sIdxLeague)) return nullptr;
return String(sIdxLeague.getData()); return String(sIdxLeague.getData());
} }
@ -1352,15 +1352,15 @@ static bool FnSetLeagueProgressData(C4PropList * _this, C4String *pNewData, long
if(!Game.Parameters.League.getLength() || !idPlayer) return false; if(!Game.Parameters.League.getLength() || !idPlayer) return false;
C4PlayerInfo *info = Game.PlayerInfos.GetPlayerInfoByID(idPlayer); C4PlayerInfo *info = Game.PlayerInfos.GetPlayerInfoByID(idPlayer);
if (!info) return false; if (!info) return false;
info->SetLeagueProgressData(pNewData ? pNewData->GetCStr() : NULL); info->SetLeagueProgressData(pNewData ? pNewData->GetCStr() : nullptr);
return true; return true;
} }
static C4String *FnGetLeagueProgressData(C4PropList * _this, long idPlayer) static C4String *FnGetLeagueProgressData(C4PropList * _this, long idPlayer)
{ {
if(!Game.Parameters.League.getLength()) return NULL; if(!Game.Parameters.League.getLength()) return nullptr;
C4PlayerInfo *info = Game.PlayerInfos.GetPlayerInfoByID(idPlayer); C4PlayerInfo *info = Game.PlayerInfos.GetPlayerInfoByID(idPlayer);
if (!info) return NULL; if (!info) return nullptr;
return String(info->GetLeagueProgressData()); return String(info->GetLeagueProgressData());
} }
@ -1562,7 +1562,7 @@ template <class T>
C4Value GetValByStdCompiler(const char *strEntry, const char *strSection, int iEntryNr, const T &rFrom) C4Value GetValByStdCompiler(const char *strEntry, const char *strSection, int iEntryNr, const T &rFrom)
{ {
// Set up name array, create compiler // Set up name array, create compiler
const char *szNames[2] = { strSection ? strSection : strEntry, strSection ? strEntry : NULL }; const char *szNames[2] = { strSection ? strSection : strEntry, strSection ? strEntry : nullptr };
C4ValueGetCompiler Comp(szNames, strSection ? 2 : 1, iEntryNr); C4ValueGetCompiler Comp(szNames, strSection ? 2 : 1, iEntryNr);
// Compile // Compile
@ -1583,7 +1583,7 @@ static C4Value FnGetDefCoreVal(C4PropList * _this, C4String * strEntry, C4String
if (!_this || !_this->GetDef()) if (!_this || !_this->GetDef())
throw NeedNonGlobalContext("GetDefCoreVal"); throw NeedNonGlobalContext("GetDefCoreVal");
return GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : NULL, return GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : nullptr,
iEntryNr, mkNamingAdapt(*_this->GetDef(), "DefCore")); iEntryNr, mkNamingAdapt(*_this->GetDef(), "DefCore"));
} }
@ -1591,7 +1591,7 @@ static C4Value FnGetObjectVal(C4Object * _this, C4String * strEntry, C4String *
{ {
// get value // get value
C4ValueNumbers numbers; C4ValueNumbers numbers;
C4Value retval = GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : NULL, C4Value retval = GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : nullptr,
iEntryNr, mkNamingAdapt(mkParAdapt(*Object(_this), &numbers), "Object")); iEntryNr, mkNamingAdapt(mkParAdapt(*Object(_this), &numbers), "Object"));
numbers.Denumerate(); numbers.Denumerate();
retval.Denumerate(&numbers); retval.Denumerate(&numbers);
@ -1609,13 +1609,13 @@ static C4Value FnGetObjectInfoCoreVal(C4Object * _this, C4String * strEntry, C4S
C4ObjectInfoCore* pObjInfoCore = (C4ObjectInfoCore*) pObjInfo; C4ObjectInfoCore* pObjInfoCore = (C4ObjectInfoCore*) pObjInfo;
// get value // get value
return GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : NULL, return GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : nullptr,
iEntryNr, mkNamingAdapt(*pObjInfoCore, "ObjectInfo")); iEntryNr, mkNamingAdapt(*pObjInfoCore, "ObjectInfo"));
} }
static C4Value FnGetScenarioVal(C4PropList * _this, C4String * strEntry, C4String * strSection, int iEntryNr) static C4Value FnGetScenarioVal(C4PropList * _this, C4String * strEntry, C4String * strSection, int iEntryNr)
{ {
return GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : NULL, return GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : nullptr,
iEntryNr, mkParAdapt(Game.C4S, false)); iEntryNr, mkParAdapt(Game.C4S, false));
} }
@ -1627,7 +1627,7 @@ static C4Value FnGetPlayerVal(C4PropList * _this, C4String * strEntry, C4String
// get value // get value
C4ValueNumbers numbers; C4ValueNumbers numbers;
C4Value retval = GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : NULL, C4Value retval = GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : nullptr,
iEntryNr, mkNamingAdapt(mkParAdapt(*pPlayer, &numbers), "Player")); iEntryNr, mkNamingAdapt(mkParAdapt(*pPlayer, &numbers), "Player"));
numbers.Denumerate(); numbers.Denumerate();
retval.Denumerate(&numbers); retval.Denumerate(&numbers);
@ -1644,7 +1644,7 @@ static C4Value FnGetPlayerInfoCoreVal(C4PropList * _this, C4String * strEntry, C
C4PlayerInfoCore* pPlayerInfoCore = (C4PlayerInfoCore*) pPlayer; C4PlayerInfoCore* pPlayerInfoCore = (C4PlayerInfoCore*) pPlayer;
// get value // get value
return GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : NULL, return GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : nullptr,
iEntryNr, *pPlayerInfoCore); iEntryNr, *pPlayerInfoCore);
} }
@ -1659,13 +1659,13 @@ static C4Value FnGetMaterialVal(C4PropList * _this, C4String * strEntry, C4Stri
C4MaterialCore* pMaterialCore = static_cast<C4MaterialCore*>(pMaterial); C4MaterialCore* pMaterialCore = static_cast<C4MaterialCore*>(pMaterial);
// get value // get value
return GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : NULL, iEntryNr, *pMaterialCore); return GetValByStdCompiler(FnStringPar(strEntry), strSection ? strSection->GetCStr() : nullptr, iEntryNr, *pMaterialCore);
} }
static C4String *FnMaterialName(C4PropList * _this, long iMat) static C4String *FnMaterialName(C4PropList * _this, long iMat)
{ {
// mat valid? // mat valid?
if (!MatValid(iMat)) return NULL; if (!MatValid(iMat)) return nullptr;
// return mat name // return mat name
return String(::MaterialMap.Map[iMat].Name); return String(::MaterialMap.Map[iMat].Name);
} }
@ -1979,7 +1979,7 @@ static bool FnSetSkyParallax(C4PropList * _this, Nillable<long> iMode, Nillable<
static long FnReloadDef(C4PropList * _this, C4ID idDef, long iReloadWhat) static long FnReloadDef(C4PropList * _this, C4ID idDef, long iReloadWhat)
{ {
// get def // get def
C4Def *pDef=NULL; C4Def *pDef=nullptr;
if (!idDef) if (!idDef)
{ {
// no def given: local def // no def given: local def
@ -2088,7 +2088,7 @@ static bool FnDrawMaterialQuad(C4PropList * _this, C4String *szMaterial, long iX
{ {
const char *szMat = FnStringPar(szMaterial); const char *szMat = FnStringPar(szMaterial);
const char *szBackMat = NULL; const char *szBackMat = nullptr;
bool fBridge = false; bool fBridge = false;
if (draw_mode.GetType() == C4V_Int) if (draw_mode.GetType() == C4V_Int)
{ {
@ -2309,7 +2309,7 @@ static long FnGetTeamConfig(C4PropList * _this, long iConfigValue)
static C4String *FnGetTeamName(C4PropList * _this, long iTeam) static C4String *FnGetTeamName(C4PropList * _this, long iTeam)
{ {
C4Team *pTeam = Game.Teams.GetTeamByID(iTeam); C4Team *pTeam = Game.Teams.GetTeamByID(iTeam);
if (!pTeam) return NULL; if (!pTeam) return nullptr;
return String(pTeam->GetName()); return String(pTeam->GetName());
} }
@ -2340,7 +2340,7 @@ static bool FnInitScenarioPlayer(C4PropList * _this, long iPlayer, long idTeam)
static bool FnSetScoreboardData(C4PropList * _this, long iRowID, long iColID, C4String *pText, long iData) static bool FnSetScoreboardData(C4PropList * _this, long iRowID, long iColID, C4String *pText, long iData)
{ {
Game.Scoreboard.SetCell(iColID, iRowID, pText ? pText->GetCStr() : NULL, iData); Game.Scoreboard.SetCell(iColID, iRowID, pText ? pText->GetCStr() : nullptr, iData);
return true; return true;
} }
@ -2432,7 +2432,7 @@ static bool FnCustomMessage(C4PropList * _this, C4String *pMsg, C4Object *pObj,
// remove speech? // remove speech?
StdStrBuf sMsg; StdStrBuf sMsg;
sMsg.Ref(szMsg); sMsg.Ref(szMsg);
if (dwFlags & C4GM_DropSpeech) sMsg.SplitAtChar('$', NULL); if (dwFlags & C4GM_DropSpeech) sMsg.SplitAtChar('$', nullptr);
// create it! // create it!
return ::Messages.New(iType,sMsg,pObj,iOwner,iOffX,iOffY,(uint32_t)dwClr, idDeco, pSrc, dwFlags, iHSize); return ::Messages.New(iType,sMsg,pObj,iOwner,iOffX,iOffY,(uint32_t)dwClr, idDeco, pSrc, dwFlags, iHSize);
} }
@ -2546,7 +2546,7 @@ static bool FnSetNextMission(C4PropList * _this, C4String *szNextMission, C4Stri
static long FnGetPlayerControlState(C4PropList * _this, long iPlr, long iControl, bool fMovedState) static long FnGetPlayerControlState(C4PropList * _this, long iPlr, long iControl, bool fMovedState)
{ {
// get control set to check // get control set to check
C4PlayerControl *pCheckCtrl = NULL; C4PlayerControl *pCheckCtrl = nullptr;
if (iPlr != NO_OWNER) if (iPlr != NO_OWNER)
{ {
C4Player *pPlr = ::Players.Get(iPlr); C4Player *pPlr = ::Players.Get(iPlr);
@ -2569,7 +2569,7 @@ static long FnGetPlayerControlState(C4PropList * _this, long iPlr, long iControl
static bool FnSetPlayerControlEnabled(C4PropList * _this, long iplr, long ctrl, bool is_enabled) static bool FnSetPlayerControlEnabled(C4PropList * _this, long iplr, long ctrl, bool is_enabled)
{ {
// get control set to check // get control set to check
C4PlayerControl *plrctrl = NULL; C4PlayerControl *plrctrl = nullptr;
if (iplr != NO_OWNER) if (iplr != NO_OWNER)
{ {
C4Player *plr = ::Players.Get(iplr); C4Player *plr = ::Players.Get(iplr);
@ -2590,7 +2590,7 @@ static bool FnSetPlayerControlEnabled(C4PropList * _this, long iplr, long ctrl,
static bool FnGetPlayerControlEnabled(C4PropList * _this, long iplr, long ctrl) static bool FnGetPlayerControlEnabled(C4PropList * _this, long iplr, long ctrl)
{ {
// get control set to check // get control set to check
C4PlayerControl *plrctrl = NULL; C4PlayerControl *plrctrl = nullptr;
if (iplr != NO_OWNER) if (iplr != NO_OWNER)
{ {
C4Player *plr = ::Players.Get(iplr); C4Player *plr = ::Players.Get(iplr);
@ -2611,7 +2611,7 @@ static C4String *FnGetPlayerControlAssignment(C4PropList * _this, long player, l
// "" is returned for invalid controls to make the obvious if(GetPlayerControlAssignmentName(...)) not cause a sync loss // "" is returned for invalid controls to make the obvious if(GetPlayerControlAssignmentName(...)) not cause a sync loss
// get desired assignment from parameters // get desired assignment from parameters
C4Player *plr = ::Players.Get(player); C4Player *plr = ::Players.Get(player);
if (!plr) return NULL; // invalid player if (!plr) return nullptr; // invalid player
if (!plr->ControlSet) return String(""); // player has no control (remote player) if (!plr->ControlSet) return String(""); // player has no control (remote player)
C4PlayerControlAssignment *assignment = plr->ControlSet->GetAssignmentByControl(control); C4PlayerControlAssignment *assignment = plr->ControlSet->GetAssignmentByControl(control);
if (!assignment) return String(""); if (!assignment) return String("");
@ -2683,12 +2683,12 @@ static bool FnGainScenarioAchievement(C4PropList * _this, C4String *achievement_
{ {
C4Player *plr = ::Players.Get(player); C4Player *plr = ::Players.Get(player);
if (!plr) return false; if (!plr) return false;
result = plr->GainScenarioAchievement(achievement_name->GetCStr(), value, for_scenario ? for_scenario->GetCStr() : NULL); result = plr->GainScenarioAchievement(achievement_name->GetCStr(), value, for_scenario ? for_scenario->GetCStr() : nullptr);
} }
else else
{ {
for (C4Player *plr = ::Players.First; plr; plr = plr->Next) for (C4Player *plr = ::Players.First; plr; plr = plr->Next)
if (!plr->GainScenarioAchievement(achievement_name->GetCStr(), value, for_scenario ? for_scenario->GetCStr() : NULL)) if (!plr->GainScenarioAchievement(achievement_name->GetCStr(), value, for_scenario ? for_scenario->GetCStr() : nullptr))
result = false; result = false;
} }
return result; return result;
@ -3058,7 +3058,7 @@ C4ScriptConstDef C4ScriptGameConstMap[]=
{ "PLRCON_MaxStrength" ,C4V_Int, C4GamePadControl::MaxStrength }, { "PLRCON_MaxStrength" ,C4V_Int, C4GamePadControl::MaxStrength },
{ NULL, C4V_Nil, 0} { nullptr, C4V_Nil, 0}
}; };
C4ScriptFnDef C4ScriptGameFnMap[]= C4ScriptFnDef C4ScriptGameFnMap[]=
@ -3072,5 +3072,5 @@ C4ScriptFnDef C4ScriptGameFnMap[]=
{ "AddMessage", 1, C4V_Bool, { C4V_String ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any}, FnAddMessage }, { "AddMessage", 1, C4V_Bool, { C4V_String ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any}, FnAddMessage },
{ "PV_KeyFrames", 1, C4V_Array, { C4V_Int ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any}, FnPV_KeyFrames }, { "PV_KeyFrames", 1, C4V_Array, { C4V_Int ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any}, FnPV_KeyFrames },
{ NULL, 0, C4V_Nil, { C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil}, 0 } { nullptr, 0, C4V_Nil, { C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil ,C4V_Nil}, 0 }
}; };

View File

@ -59,7 +59,7 @@ void C4GraphicsSystem::Clear()
// Clear message board // Clear message board
MessageBoard.reset(); MessageBoard.reset();
// clear loader // clear loader
if (pLoaderScreen) { delete pLoaderScreen; pLoaderScreen=NULL; } if (pLoaderScreen) { delete pLoaderScreen; pLoaderScreen=nullptr; }
// Close viewports // Close viewports
::Viewports.Clear(); ::Viewports.Clear();
// No debug stuff // No debug stuff
@ -168,7 +168,7 @@ void C4GraphicsSystem::Default()
ShowHelp=false; ShowHelp=false;
FlashMessageText[0]=0; FlashMessageText[0]=0;
FlashMessageTime=0; FlashMessageX=FlashMessageY=0; FlashMessageTime=0; FlashMessageX=FlashMessageY=0;
pLoaderScreen=NULL; pLoaderScreen=nullptr;
} }
void C4GraphicsSystem::ClearFullscreenBackground() void C4GraphicsSystem::ClearFullscreenBackground()
@ -201,7 +201,7 @@ bool C4GraphicsSystem::SaveScreenshot(bool fSaveAll, float fSaveAllZoom)
// Keep static counter so multiple screenshots in succession do not use same filename even if the background thread hasn't started writing the file yet // Keep static counter so multiple screenshots in succession do not use same filename even if the background thread hasn't started writing the file yet
char szFilename[_MAX_PATH+1]; char szFilename[_MAX_PATH+1];
static int32_t iScreenshotIndex=1; static int32_t iScreenshotIndex=1;
const char *strFilePath = NULL; const char *strFilePath = nullptr;
do do
sprintf(szFilename,"Screenshot%03i.png",iScreenshotIndex++); sprintf(szFilename,"Screenshot%03i.png",iScreenshotIndex++);
while (FileExists(strFilePath = Config.AtScreenshotPath(szFilename))); while (FileExists(strFilePath = Config.AtScreenshotPath(szFilename)));

View File

@ -99,7 +99,7 @@ C4Viewport::C4Viewport()
ZoomTarget = 0.0; ZoomTarget = 0.0;
ViewportOpenFrame = 0; ViewportOpenFrame = 0;
ZoomLimitMin = ZoomLimitMax = 0; // no limit ZoomLimitMin = ZoomLimitMax = 0; // no limit
Next = NULL; Next = nullptr;
PlayerLock = true; PlayerLock = true;
ResetMenuPositions = false; ResetMenuPositions = false;
viewOffsX = viewOffsY = 0; viewOffsX = viewOffsY = 0;
@ -209,10 +209,10 @@ void C4Viewport::Draw(C4TargetFacet &cgo0, bool fDrawGame, bool fDrawOverlay)
GameZoom.Zoom = cgo.Zoom; GameZoom.Zoom = cgo.Zoom;
// Draw landscape borders // Draw landscape borders
if (BorderLeft > 0.0f) pDraw->BlitSurfaceTile(::GraphicsResource.fctBackground.Surface, cgo.Surface, DrawX, DrawY, BorderLeft, ViewHgt, -DrawX, -DrawY, NULL); if (BorderLeft > 0.0f) pDraw->BlitSurfaceTile(::GraphicsResource.fctBackground.Surface, cgo.Surface, DrawX, DrawY, BorderLeft, ViewHgt, -DrawX, -DrawY, nullptr);
if (BorderTop > 0.0f) pDraw->BlitSurfaceTile(::GraphicsResource.fctBackground.Surface, cgo.Surface, DrawX + BorderLeft, DrawY, ViewWdt - BorderLeft - BorderRight, BorderTop, -DrawX - BorderLeft, -DrawY, NULL); if (BorderTop > 0.0f) pDraw->BlitSurfaceTile(::GraphicsResource.fctBackground.Surface, cgo.Surface, DrawX + BorderLeft, DrawY, ViewWdt - BorderLeft - BorderRight, BorderTop, -DrawX - BorderLeft, -DrawY, nullptr);
if (BorderRight > 0.0f) pDraw->BlitSurfaceTile(::GraphicsResource.fctBackground.Surface, cgo.Surface, DrawX + ViewWdt - BorderRight, DrawY, BorderRight, ViewHgt, -DrawX - ViewWdt + BorderRight, -DrawY, NULL); if (BorderRight > 0.0f) pDraw->BlitSurfaceTile(::GraphicsResource.fctBackground.Surface, cgo.Surface, DrawX + ViewWdt - BorderRight, DrawY, BorderRight, ViewHgt, -DrawX - ViewWdt + BorderRight, -DrawY, nullptr);
if (BorderBottom > 0.0f) pDraw->BlitSurfaceTile(::GraphicsResource.fctBackground.Surface, cgo.Surface, DrawX + BorderLeft, DrawY + ViewHgt - BorderBottom, ViewWdt - BorderLeft - BorderRight, BorderBottom, -DrawX - BorderLeft, -DrawY - ViewHgt + BorderBottom, NULL); if (BorderBottom > 0.0f) pDraw->BlitSurfaceTile(::GraphicsResource.fctBackground.Surface, cgo.Surface, DrawX + BorderLeft, DrawY + ViewHgt - BorderBottom, ViewWdt - BorderLeft - BorderRight, BorderBottom, -DrawX - BorderLeft, -DrawY - ViewHgt + BorderBottom, nullptr);
// Compute non-bordered viewport area // Compute non-bordered viewport area
cgo.X += BorderLeft; cgo.Y += BorderTop; cgo.Wdt -= (BorderLeft + BorderRight) / cgo.Zoom; cgo.Hgt -= (BorderTop + BorderBottom) / cgo.Zoom; cgo.X += BorderLeft; cgo.Y += BorderTop; cgo.Wdt -= (BorderLeft + BorderRight) / cgo.Zoom; cgo.Hgt -= (BorderTop + BorderBottom) / cgo.Zoom;
@ -234,7 +234,7 @@ void C4Viewport::Draw(C4TargetFacet &cgo0, bool fDrawGame, bool fDrawOverlay)
// Render FoW only if active for player // Render FoW only if active for player
C4Player *pPlr = ::Players.Get(Player); C4Player *pPlr = ::Players.Get(Player);
C4FoWRegion* pFoW = NULL; C4FoWRegion* pFoW = nullptr;
if (pPlr && pPlr->fFogOfWar) pFoW = this->pFoW.get(); if (pPlr && pPlr->fFogOfWar) pFoW = this->pFoW.get();
// Update FoW // Update FoW
@ -248,7 +248,7 @@ void C4Viewport::Draw(C4TargetFacet &cgo0, bool fDrawGame, bool fDrawOverlay)
if (!lightRect.Wdt || !lightRect.Hgt) if (!lightRect.Wdt || !lightRect.Hgt)
{ {
// Do not bother initializing FoW on empty region; would cause errors in drawing proc // Do not bother initializing FoW on empty region; would cause errors in drawing proc
pFoW = NULL; pFoW = nullptr;
} }
else else
{ {
@ -257,7 +257,7 @@ void C4Viewport::Draw(C4TargetFacet &cgo0, bool fDrawGame, bool fDrawOverlay)
if (!pFoW->Render()) if (!pFoW->Render())
{ {
// If FoW init fails, do not set it for further drawing // If FoW init fails, do not set it for further drawing
pFoW = NULL; pFoW = nullptr;
} }
} }
} }
@ -298,7 +298,7 @@ void C4Viewport::Draw(C4TargetFacet &cgo0, bool fDrawGame, bool fDrawOverlay)
C4ST_STOP(Obj2Stat) C4ST_STOP(Obj2Stat)
// Draw everything else without FoW // Draw everything else without FoW
pDraw->SetFoW(NULL); pDraw->SetFoW(nullptr);
} }
else else
{ {
@ -838,7 +838,7 @@ bool C4Viewport::IsViewportMenu(class C4Menu *pMenu)
C4ViewportList Viewports; C4ViewportList Viewports;
C4ViewportList::C4ViewportList(): C4ViewportList::C4ViewportList():
FirstViewport(NULL) FirstViewport(nullptr)
{ {
ViewportArea.Default(); ViewportArea.Default();
} }
@ -854,7 +854,7 @@ void C4ViewportList::Clear()
delete FirstViewport; delete FirstViewport;
FirstViewport=next; FirstViewport=next;
} }
FirstViewport=NULL; FirstViewport=nullptr;
} }
void C4ViewportList::Execute(bool DrawBackground) void C4ViewportList::Execute(bool DrawBackground)
@ -876,7 +876,7 @@ void C4ViewportList::DrawFullscreenBackground()
for (int i=0, iNum=BackgroundAreas.GetCount(); i<iNum; ++i) for (int i=0, iNum=BackgroundAreas.GetCount(); i<iNum; ++i)
{ {
const C4Rect &rc = BackgroundAreas.Get(i); const C4Rect &rc = BackgroundAreas.Get(i);
pDraw->BlitSurfaceTile(::GraphicsResource.fctBackground.Surface,FullScreen.pSurface,rc.x,rc.y,rc.Wdt,rc.Hgt,-rc.x,-rc.y, NULL); pDraw->BlitSurfaceTile(::GraphicsResource.fctBackground.Surface,FullScreen.pSurface,rc.x,rc.y,rc.Wdt,rc.Hgt,-rc.x,-rc.y, nullptr);
} }
} }
@ -911,7 +911,7 @@ C4Viewport* C4ViewportList::GetViewport(HWND hwnd)
for (C4Viewport *cvp=FirstViewport; cvp; cvp=cvp->Next) for (C4Viewport *cvp=FirstViewport; cvp; cvp=cvp->Next)
if (cvp->pWindow->hWindow==hwnd) if (cvp->pWindow->hWindow==hwnd)
return cvp; return cvp;
return NULL; return nullptr;
} }
#endif #endif
bool C4ViewportList::CreateViewport(int32_t iPlayer, bool fSilent) bool C4ViewportList::CreateViewport(int32_t iPlayer, bool fSilent)
@ -962,7 +962,7 @@ bool C4ViewportList::CloseViewport(int32_t iPlayer, bool fSilent)
{ {
// Close all matching viewports // Close all matching viewports
int32_t iLastCount = GetViewportCount(); int32_t iLastCount = GetViewportCount();
C4Viewport *next,*prev=NULL; C4Viewport *next,*prev=nullptr;
for (C4Viewport *cvp=FirstViewport; cvp; cvp=next) for (C4Viewport *cvp=FirstViewport; cvp; cvp=next)
{ {
next=cvp->Next; next=cvp->Next;
@ -1005,7 +1005,7 @@ void C4ViewportList::RecalculateViewports()
::GraphicsSystem.InvalidateBg(); ::GraphicsSystem.InvalidateBg();
#ifdef _WIN32 #ifdef _WIN32
// reset mouse clipping // reset mouse clipping
ClipCursor(NULL); ClipCursor(nullptr);
#else #else
// StdWindow handles this. // StdWindow handles this.
#endif #endif
@ -1072,7 +1072,7 @@ C4Viewport* C4ViewportList::GetViewport(int32_t iPlayer, C4Viewport* pPrev)
for (C4Viewport *cvp=pPrev ? pPrev->Next : FirstViewport; cvp; cvp=cvp->Next) for (C4Viewport *cvp=pPrev ? pPrev->Next : FirstViewport; cvp; cvp=cvp->Next)
if (cvp->Player==iPlayer || (iPlayer==NO_OWNER && cvp->fIsNoOwnerViewport)) if (cvp->Player==iPlayer || (iPlayer==NO_OWNER && cvp->fIsNoOwnerViewport))
return cvp; return cvp;
return NULL; return nullptr;
} }
int32_t C4ViewportList::GetAudibility(int32_t iX, int32_t iY, int32_t *iPan, int32_t iAudibilityRadius, int32_t *outPlayer) int32_t C4ViewportList::GetAudibility(int32_t iX, int32_t iY, int32_t *iPan, int32_t iAudibilityRadius, int32_t *outPlayer)
@ -1106,7 +1106,7 @@ void C4ViewportList::SortViewportsByPlayerControl()
do do
{ {
fSorted = true; fSorted = true;
for (pPrev=NULL,pView=FirstViewport; pView && (pNext = pView->Next); pView=pNext) for (pPrev=nullptr,pView=FirstViewport; pView && (pNext = pView->Next); pView=pNext)
{ {
// Get players // Get players
pPlr1 = ::Players.Get(pView->Player); pPlr1 = ::Players.Get(pView->Player);

View File

@ -152,13 +152,13 @@ public:
bool CreateViewport(int32_t iPlayer, bool fSilent=false); bool CreateViewport(int32_t iPlayer, bool fSilent=false);
bool CloseViewport(int32_t iPlayer, bool fSilent); bool CloseViewport(int32_t iPlayer, bool fSilent);
int32_t GetViewportCount(); int32_t GetViewportCount();
C4Viewport* GetViewport(int32_t iPlayer, C4Viewport* pPrev = NULL); C4Viewport* GetViewport(int32_t iPlayer, C4Viewport* pPrev = nullptr);
C4Viewport* GetFirstViewport() { return FirstViewport; } C4Viewport* GetFirstViewport() { return FirstViewport; }
bool CloseViewport(C4Viewport * cvp); bool CloseViewport(C4Viewport * cvp);
#ifdef USE_WIN32_WINDOWS #ifdef USE_WIN32_WINDOWS
C4Viewport* GetViewport(HWND hwnd); C4Viewport* GetViewport(HWND hwnd);
#endif #endif
int32_t GetAudibility(int32_t iX, int32_t iY, int32_t *iPan, int32_t iAudibilityRadius = 0, int32_t *outPlayer = NULL); int32_t GetAudibility(int32_t iX, int32_t iY, int32_t *iPan, int32_t iAudibilityRadius = 0, int32_t *outPlayer = nullptr);
bool ViewportNextPlayer(); bool ViewportNextPlayer();
bool FreeScroll(C4Vec2D vScrollBy); // key callback: Scroll ownerless viewport by some offset bool FreeScroll(C4Vec2D vScrollBy); // key callback: Scroll ownerless viewport by some offset

View File

@ -76,7 +76,7 @@ int WINAPI WinMain (HINSTANCE hInst,
LPWSTR *curwarg = wargv; LPWSTR *curwarg = wargv;
while(argc--) while(argc--)
{ {
int arglen = WideCharToMultiByte(CP_UTF8, 0, *curwarg, -1, NULL, 0, 0, 0); int arglen = WideCharToMultiByte(CP_UTF8, 0, *curwarg, -1, nullptr, 0, 0, 0);
char *utf8arg = new char[arglen ? arglen : 1]; char *utf8arg = new char[arglen ? arglen : 1];
WideCharToMultiByte(CP_UTF8, 0, *curwarg, -1, utf8arg, arglen, 0, 0); WideCharToMultiByte(CP_UTF8, 0, *curwarg, -1, utf8arg, arglen, 0, 0);
argv.push_back(utf8arg); argv.push_back(utf8arg);
@ -107,7 +107,7 @@ int WINAPI WinMain (HINSTANCE hInst,
int main() int main()
{ {
return WinMain(GetModuleHandle(NULL), 0, 0, 0); return WinMain(GetModuleHandle(nullptr), 0, 0, 0);
} }
#else // _WIN32 #else // _WIN32
@ -215,16 +215,16 @@ int main (int argc, char * argv[])
sigemptyset(&sa.sa_mask); sigemptyset(&sa.sa_mask);
sa.sa_flags = SA_SIGINFO; sa.sa_flags = SA_SIGINFO;
// Quit the program when asked // Quit the program when asked
sigaction(SIGINT, &sa, NULL); sigaction(SIGINT, &sa, nullptr);
sigaction(SIGTERM, &sa, NULL); sigaction(SIGTERM, &sa, nullptr);
sigaction(SIGHUP, &sa, NULL); sigaction(SIGHUP, &sa, nullptr);
// Set up debugging facilities // Set up debugging facilities
sa.sa_flags |= SA_RESETHAND; sa.sa_flags |= SA_RESETHAND;
sigaction(SIGBUS, &sa, NULL); sigaction(SIGBUS, &sa, nullptr);
sigaction(SIGILL, &sa, NULL); sigaction(SIGILL, &sa, nullptr);
sigaction(SIGSEGV, &sa, NULL); sigaction(SIGSEGV, &sa, nullptr);
sigaction(SIGABRT, &sa, NULL); sigaction(SIGABRT, &sa, nullptr);
sigaction(SIGFPE, &sa, NULL); sigaction(SIGFPE, &sa, nullptr);
#endif #endif
// Init application // Init application

View File

@ -42,7 +42,7 @@ extern "C" {
#endif #endif
// Global access pointer // Global access pointer
C4Draw *pDraw=NULL; C4Draw *pDraw=nullptr;
void C4BltTransform::SetRotate(float iAngle, float fOffX, float fOffY) // set by angle and rotation offset void C4BltTransform::SetRotate(float iAngle, float fOffX, float fOffY) // set by angle and rotation offset
{ {
@ -141,7 +141,7 @@ bool C4Pattern::Set(C4Surface * sfcSource, int iZoom)
C4Pattern::C4Pattern() C4Pattern::C4Pattern()
{ {
// disable // disable
sfcPattern32=NULL; sfcPattern32=nullptr;
CachedPattern = 0; CachedPattern = 0;
Zoom=0; Zoom=0;
} }
@ -154,7 +154,7 @@ void C4Pattern::Clear()
// unlock it // unlock it
sfcPattern32->Unlock(); sfcPattern32->Unlock();
// clear field // clear field
sfcPattern32=NULL; sfcPattern32=nullptr;
} }
delete[] CachedPattern; CachedPattern = 0; delete[] CachedPattern; CachedPattern = 0;
} }
@ -171,15 +171,15 @@ DWORD C4Pattern::PatternClr(unsigned int iX, unsigned int iY) const
void C4Draw::Default() void C4Draw::Default()
{ {
RenderTarget=NULL; RenderTarget=nullptr;
ClipAll=false; ClipAll=false;
Active=false; Active=false;
BlitModulated=false; BlitModulated=false;
dwBlitMode = 0; dwBlitMode = 0;
ResetGamma(); ResetGamma();
pFoW = NULL; pFoW = nullptr;
ZoomX = 0; ZoomY = 0; Zoom = 1; ZoomX = 0; ZoomY = 0; Zoom = 1;
MeshTransform = NULL; MeshTransform = nullptr;
fUsePerspective = false; fUsePerspective = false;
} }
@ -287,14 +287,14 @@ void C4Draw::Blit8Fast(CSurface8 * sfcSource, int fx, int fy,
if(bufcnt == BUF_SIZE) if(bufcnt == BUF_SIZE)
{ {
PerformMultiPix(sfcTarget, vertices, BUF_SIZE, NULL); PerformMultiPix(sfcTarget, vertices, BUF_SIZE, nullptr);
bufcnt = 0; bufcnt = 0;
} }
} }
} }
if(bufcnt > 0) if(bufcnt > 0)
PerformMultiPix(sfcTarget, vertices, bufcnt, NULL); PerformMultiPix(sfcTarget, vertices, bufcnt, nullptr);
delete[] vertices; delete[] vertices;
// unlock // unlock
if (!fRender) sfcTarget->Unlock(); if (!fRender) sfcTarget->Unlock();
@ -391,13 +391,13 @@ bool C4Draw::BlitUnscaled(C4Surface * sfcSource, float fx, float fy, float fwdt,
pBaseTex = sfcSource->pMainSfc->texture.get(); pBaseTex = sfcSource->pMainSfc->texture.get();
} }
C4TexRef* pNormalTex = NULL; C4TexRef* pNormalTex = nullptr;
if (sfcSource->pNormalSfc) if (sfcSource->pNormalSfc)
pNormalTex = sfcSource->pNormalSfc->texture.get(); pNormalTex = sfcSource->pNormalSfc->texture.get();
// ClrByOwner is always fully opaque // ClrByOwner is always fully opaque
const DWORD dwOverlayClrMod = 0xff000000 | sfcSource->ClrByOwnerClr; const DWORD dwOverlayClrMod = 0xff000000 | sfcSource->ClrByOwnerClr;
PerformMultiTris(sfcTarget, vertices, 6, pTransform, pBaseTex, fBaseSfc ? pTex : NULL, pNormalTex, dwOverlayClrMod, NULL); PerformMultiTris(sfcTarget, vertices, 6, pTransform, pBaseTex, fBaseSfc ? pTex : nullptr, pNormalTex, dwOverlayClrMod, nullptr);
// success // success
return true; return true;
} }
@ -527,7 +527,7 @@ bool C4Draw::BlitSurface(C4Surface * sfcSurface, C4Surface * sfcTarget, int tx,
{ {
if (!sfcSurface) return false; if (!sfcSurface) return false;
C4Surface *pSfcBase = sfcSurface->pMainSfc; C4Surface *pSfcBase = sfcSurface->pMainSfc;
sfcSurface->pMainSfc = NULL; sfcSurface->pMainSfc = nullptr;
Blit(sfcSurface, 0.0f, 0.0f, (float)sfcSurface->Wdt, (float)sfcSurface->Hgt, sfcTarget, float(tx), float(ty), float(sfcSurface->Wdt), float(sfcSurface->Hgt), false); Blit(sfcSurface, 0.0f, 0.0f, (float)sfcSurface->Wdt, (float)sfcSurface->Hgt, sfcTarget, float(tx), float(ty), float(sfcSurface->Wdt), float(sfcSurface->Hgt), false);
sfcSurface->pMainSfc = pSfcBase; sfcSurface->pMainSfc = pSfcBase;
return true; return true;
@ -562,7 +562,7 @@ bool C4Draw::BlitSurfaceTile(C4Surface * sfcSurface, C4Surface * sfcTarget, floa
vertices[4] = vertices[0]; vertices[5] = vertices[2]; vertices[4] = vertices[0]; vertices[5] = vertices[2];
// Draw // Draw
PerformMultiTris(sfcTarget, vertices, 6, NULL, sfcSurface->texture.get(), NULL, NULL, 0, shader_call); PerformMultiTris(sfcTarget, vertices, 6, nullptr, sfcSurface->texture.get(), nullptr, nullptr, 0, shader_call);
return true; return true;
} }
@ -610,7 +610,7 @@ void C4Draw::DrawPix(C4Surface * sfcDest, float tx, float ty, DWORD dwClr)
vtx.ftx = tx; vtx.ftx = tx;
vtx.fty = ty; vtx.fty = ty;
DwTo4UB(dwClr, vtx.color); DwTo4UB(dwClr, vtx.color);
PerformMultiPix(sfcDest, &vtx, 1, NULL); PerformMultiPix(sfcDest, &vtx, 1, nullptr);
} }
void C4Draw::DrawLineDw(C4Surface * sfcTarget, float x1, float y1, float x2, float y2, DWORD dwClr, float width) void C4Draw::DrawLineDw(C4Surface * sfcTarget, float x1, float y1, float x2, float y2, DWORD dwClr, float width)
@ -620,7 +620,7 @@ void C4Draw::DrawLineDw(C4Surface * sfcTarget, float x1, float y1, float x2, flo
vertices[1].ftx = x2; vertices[1].fty = y2; vertices[1].ftx = x2; vertices[1].fty = y2;
DwTo4UB(dwClr, vertices[0].color); DwTo4UB(dwClr, vertices[0].color);
DwTo4UB(dwClr, vertices[1].color); DwTo4UB(dwClr, vertices[1].color);
PerformMultiLines(sfcTarget, vertices, 2, width, NULL); PerformMultiLines(sfcTarget, vertices, 2, width, nullptr);
} }
void C4Draw::DrawCircleDw(C4Surface * sfcTarget, float cx, float cy, float r, DWORD dwClr, float width) void C4Draw::DrawCircleDw(C4Surface * sfcTarget, float cx, float cy, float r, DWORD dwClr, float width)
@ -637,7 +637,7 @@ void C4Draw::DrawCircleDw(C4Surface * sfcTarget, float cx, float cy, float r, DW
DwTo4UB(dwClr, vertices[iv].color); DwTo4UB(dwClr, vertices[iv].color);
vertices[(iv + 1) % (num_lines * 2)] = vertices[iv]; vertices[(iv + 1) % (num_lines * 2)] = vertices[iv];
} }
PerformMultiLines(sfcTarget, vertices.get(), num_lines * 2, width, NULL); PerformMultiLines(sfcTarget, vertices.get(), num_lines * 2, width, nullptr);
} }
void C4Draw::DrawFrameDw(C4Surface * sfcDest, int x1, int y1, int x2, int y2, DWORD dwClr, float width) // make these parameters float...? void C4Draw::DrawFrameDw(C4Surface * sfcDest, int x1, int y1, int x2, int y2, DWORD dwClr, float width) // make these parameters float...?
@ -655,7 +655,7 @@ void C4Draw::DrawFrameDw(C4Surface * sfcDest, int x1, int y1, int x2, int y2, DW
for(int i = 0; i < 8; ++i) for(int i = 0; i < 8; ++i)
DwTo4UB(dwClr, vertices[i].color); DwTo4UB(dwClr, vertices[i].color);
PerformMultiLines(sfcDest, vertices, 8, width, NULL); PerformMultiLines(sfcDest, vertices, 8, width, nullptr);
} }
void C4Draw::DrawQuadDw(C4Surface * sfcTarget, float *ipVtx, DWORD dwClr1, DWORD dwClr2, DWORD dwClr3, DWORD dwClr4, C4ShaderCall* shader_call) void C4Draw::DrawQuadDw(C4Surface * sfcTarget, float *ipVtx, DWORD dwClr1, DWORD dwClr2, DWORD dwClr3, DWORD dwClr4, C4ShaderCall* shader_call)
@ -671,7 +671,7 @@ void C4Draw::DrawQuadDw(C4Surface * sfcTarget, float *ipVtx, DWORD dwClr1, DWORD
DwTo4UB(dwClr4, vertices[3].color); DwTo4UB(dwClr4, vertices[3].color);
vertices[4] = vertices[0]; vertices[4] = vertices[0];
vertices[5] = vertices[2]; vertices[5] = vertices[2];
PerformMultiTris(sfcTarget, vertices, 6, NULL, NULL, NULL, NULL, 0, shader_call); PerformMultiTris(sfcTarget, vertices, 6, nullptr, nullptr, nullptr, nullptr, 0, shader_call);
} }
void C4Draw::DrawPatternedCircle(C4Surface * sfcDest, int x, int y, int r, BYTE col, C4Pattern & Pattern, CStdPalette &rPal) void C4Draw::DrawPatternedCircle(C4Surface * sfcDest, int x, int y, int r, BYTE col, C4Pattern & Pattern, CStdPalette &rPal)
@ -858,6 +858,6 @@ void C4Draw::DrawBoxDw(C4Surface * sfcDest, int iX1, int iY1, int iX2, int iY2,
} }
else else
{ {
DrawBoxFade(sfcDest, float(iX1), float(iY1), float(iX2 - iX1 + 1), float(iY2 - iY1 + 1), dwClr, dwClr, dwClr, dwClr, NULL); DrawBoxFade(sfcDest, float(iX1), float(iY1), float(iX2 - iX1 + 1), float(iY2 - iY1 + 1), dwClr, dwClr, dwClr, dwClr, nullptr);
} }
} }

View File

@ -90,7 +90,7 @@ public:
static constexpr int COLOR_DEPTH_BYTES = COLOR_DEPTH / 8; static constexpr int COLOR_DEPTH_BYTES = COLOR_DEPTH / 8;
C4Draw(): MaxTexSize(0) { } C4Draw(): MaxTexSize(0) { }
virtual ~C4Draw() { pDraw=NULL; } virtual ~C4Draw() { pDraw=nullptr; }
public: public:
C4AbstractApp * pApp; // the application C4AbstractApp * pApp; // the application
bool Active; // set if device is ready to render, etc. bool Active; // set if device is ready to render, etc.
@ -117,7 +117,7 @@ public:
bool Init(C4AbstractApp * pApp, unsigned int iXRes, unsigned int iYRes, unsigned int iMonitor); bool Init(C4AbstractApp * pApp, unsigned int iXRes, unsigned int iYRes, unsigned int iMonitor);
virtual void Clear(); virtual void Clear();
virtual void Default(); virtual void Default();
virtual CStdGLCtx *CreateContext(C4Window *, C4AbstractApp *) { return NULL; } virtual CStdGLCtx *CreateContext(C4Window *, C4AbstractApp *) { return nullptr; }
virtual bool OnResolutionChanged(unsigned int iXRes, unsigned int iYRes) = 0; // reinit clipper for new resolution virtual bool OnResolutionChanged(unsigned int iXRes, unsigned int iYRes) = 0; // reinit clipper for new resolution
// Clipper // Clipper
bool GetPrimaryClipper(int &rX1, int &rY1, int &rX2, int &rY2); bool GetPrimaryClipper(int &rX1, int &rY1, int &rX2, int &rY2);
@ -147,15 +147,15 @@ public:
C4Surface * sfcTarget, int tx, int ty, int wdt, int hgt); C4Surface * sfcTarget, int tx, int ty, int wdt, int hgt);
bool Blit(C4Surface * sfcSource, float fx, float fy, float fwdt, float fhgt, bool Blit(C4Surface * sfcSource, float fx, float fy, float fwdt, float fhgt,
C4Surface * sfcTarget, float tx, float ty, float twdt, float thgt, C4Surface * sfcTarget, float tx, float ty, float twdt, float thgt,
bool fSrcColKey=false, const C4BltTransform *pTransform=NULL); bool fSrcColKey=false, const C4BltTransform *pTransform=nullptr);
bool BlitUnscaled(C4Surface * sfcSource, float fx, float fy, float fwdt, float fhgt, bool BlitUnscaled(C4Surface * sfcSource, float fx, float fy, float fwdt, float fhgt,
C4Surface * sfcTarget, float tx, float ty, float twdt, float thgt, C4Surface * sfcTarget, float tx, float ty, float twdt, float thgt,
bool fSrcColKey=false, const C4BltTransform *pTransform=NULL); bool fSrcColKey=false, const C4BltTransform *pTransform=nullptr);
bool RenderMesh(StdMeshInstance &instance, C4Surface * sfcTarget, float tx, float ty, float twdt, float thgt, DWORD dwPlayerColor, C4BltTransform* pTransform); // Call PrepareMaterial with Mesh's material before bool RenderMesh(StdMeshInstance &instance, C4Surface * sfcTarget, float tx, float ty, float twdt, float thgt, DWORD dwPlayerColor, C4BltTransform* pTransform); // Call PrepareMaterial with Mesh's material before
virtual void PerformMesh(StdMeshInstance &instance, float tx, float ty, float twdt, float thgt, DWORD dwPlayerColor, C4BltTransform* pTransform) = 0; virtual void PerformMesh(StdMeshInstance &instance, float tx, float ty, float twdt, float thgt, DWORD dwPlayerColor, C4BltTransform* pTransform) = 0;
bool Blit8(C4Surface * sfcSource, int fx, int fy, int fwdt, int fhgt, // force 8bit-blit (inline) bool Blit8(C4Surface * sfcSource, int fx, int fy, int fwdt, int fhgt, // force 8bit-blit (inline)
C4Surface * sfcTarget, int tx, int ty, int twdt, int thgt, C4Surface * sfcTarget, int tx, int ty, int twdt, int thgt,
bool fSrcColKey=false, const C4BltTransform *pTransform=NULL); bool fSrcColKey=false, const C4BltTransform *pTransform=nullptr);
bool BlitSimple(C4Surface * sfcSource, int fx, int fy, int fwdt, int fhgt, bool BlitSimple(C4Surface * sfcSource, int fx, int fy, int fwdt, int fhgt,
C4Surface * sfcTarget, int tx, int ty, int twdt, int thgt, C4Surface * sfcTarget, int tx, int ty, int twdt, int thgt,
bool fTransparency=true); bool fTransparency=true);
@ -196,7 +196,7 @@ public:
void GetZoom(ZoomData *r) { r->Zoom=Zoom; r->X=ZoomX; r->Y=ZoomY; } void GetZoom(ZoomData *r) { r->Zoom=Zoom; r->X=ZoomX; r->Y=ZoomY; }
void ApplyZoom(float & X, float & Y); void ApplyZoom(float & X, float & Y);
void RemoveZoom(float & X, float & Y); void RemoveZoom(float & X, float & Y);
void SetMeshTransform(const StdMeshMatrix* Transform) { MeshTransform = Transform; } // if non-NULL make sure to keep matrix valid void SetMeshTransform(const StdMeshMatrix* Transform) { MeshTransform = Transform; } // if non-nullptr make sure to keep matrix valid
void SetPerspective(bool fSet) { fUsePerspective = fSet; } void SetPerspective(bool fSet) { fUsePerspective = fSet; }
// device objects // device objects

View File

@ -117,7 +117,7 @@ CStdGL::CStdGL():
CStdGL::~CStdGL() CStdGL::~CStdGL()
{ {
Clear(); Clear();
pGL=NULL; pGL=nullptr;
} }
void CStdGL::Clear() void CStdGL::Clear()
@ -126,7 +126,7 @@ void CStdGL::Clear()
// cannot unlock TexMgr here or we can't preserve textures across GL reinitialization as required when changing multisampling // cannot unlock TexMgr here or we can't preserve textures across GL reinitialization as required when changing multisampling
InvalidateDeviceObjects(); InvalidateDeviceObjects();
NoPrimaryClipper(); NoPrimaryClipper();
RenderTarget = NULL; RenderTarget = nullptr;
// Clear all shaders // Clear all shaders
SpriteShader.Clear(); SpriteShader.Clear();
SpriteShaderMod2.Clear(); SpriteShaderMod2.Clear();
@ -229,7 +229,7 @@ bool CStdGL::PrepareSpriteShader(C4Shader& shader, const char* name, int ssc, C4
uniformNames[C4SSU_Bones] = "bones"; // unused uniformNames[C4SSU_Bones] = "bones"; // unused
uniformNames[C4SSU_CullMode] = "cullMode"; // unused uniformNames[C4SSU_CullMode] = "cullMode"; // unused
uniformNames[C4SSU_FrameCounter] = "frameCounter"; uniformNames[C4SSU_FrameCounter] = "frameCounter";
uniformNames[C4SSU_Count] = NULL; uniformNames[C4SSU_Count] = nullptr;
const char* attributeNames[C4SSA_Count + 1]; const char* attributeNames[C4SSA_Count + 1];
attributeNames[C4SSA_Position] = "oc_Position"; attributeNames[C4SSA_Position] = "oc_Position";
@ -240,7 +240,7 @@ bool CStdGL::PrepareSpriteShader(C4Shader& shader, const char* name, int ssc, C4
attributeNames[C4SSA_BoneIndices1] = "oc_BoneIndices1"; // unused attributeNames[C4SSA_BoneIndices1] = "oc_BoneIndices1"; // unused
attributeNames[C4SSA_BoneWeights0] = "oc_BoneWeights0"; // unused attributeNames[C4SSA_BoneWeights0] = "oc_BoneWeights0"; // unused
attributeNames[C4SSA_BoneWeights1] = "oc_BoneWeights1"; // unused attributeNames[C4SSA_BoneWeights1] = "oc_BoneWeights1"; // unused
attributeNames[C4SSA_Count] = NULL; attributeNames[C4SSA_Count] = nullptr;
// Clear previous content // Clear previous content
shader.Clear(); shader.Clear();
@ -256,7 +256,7 @@ bool CStdGL::PrepareSpriteShader(C4Shader& shader, const char* name, int ssc, C4
if (ssc & C4SSC_OVERLAY) shader.AddDefine("OC_HAVE_OVERLAY"); if (ssc & C4SSC_OVERLAY) shader.AddDefine("OC_HAVE_OVERLAY");
if (additionalDefines) if (additionalDefines)
for (const char* const* define = additionalDefines; *define != NULL; ++define) for (const char* const* define = additionalDefines; *define != nullptr; ++define)
shader.AddDefine(*define); shader.AddDefine(*define);
// Then load slices for fragment and vertex shader // Then load slices for fragment and vertex shader
@ -268,7 +268,7 @@ bool CStdGL::PrepareSpriteShader(C4Shader& shader, const char* name, int ssc, C4
shader.SetScriptCategories({"Common", "Object"}); shader.SetScriptCategories({"Common", "Object"});
if (additionalSlices) if (additionalSlices)
for (const char* const* slice = additionalSlices; *slice != NULL; ++slice) for (const char* const* slice = additionalSlices; *slice != nullptr; ++slice)
shader.LoadFragmentSlices(pGroups, *slice); shader.LoadFragmentSlices(pGroups, *slice);
if (!shader.Init(name, uniformNames, attributeNames)) if (!shader.Init(name, uniformNames, attributeNames))
@ -291,7 +291,7 @@ void CStdGL::ObjectLabel(uint32_t identifier, uint32_t name, int32_t length, con
CStdGLCtx *CStdGL::CreateContext(C4Window * pWindow, C4AbstractApp *pApp) CStdGLCtx *CStdGL::CreateContext(C4Window * pWindow, C4AbstractApp *pApp)
{ {
// safety // safety
if (!pWindow) return NULL; if (!pWindow) return nullptr;
// create it // create it
CStdGLCtx *pCtx; CStdGLCtx *pCtx;
@ -358,11 +358,11 @@ CStdGLCtx *CStdGL::CreateContext(C4Window * pWindow, C4AbstractApp *pApp)
} }
if (!success) if (!success)
{ {
delete pCtx; Error(" gl: Error creating secondary context!"); return NULL; delete pCtx; Error(" gl: Error creating secondary context!"); return nullptr;
} }
// creation selected the new context - switch back to previous context // creation selected the new context - switch back to previous context
RenderTarget = NULL; RenderTarget = nullptr;
pCurrCtx = NULL; pCurrCtx = nullptr;
// done // done
return pCtx; return pCtx;
} }
@ -408,13 +408,13 @@ void CStdGL::SetupMultiBlt(C4ShaderCall& call, const C4BltTransform* pTransform,
call.SetUniform4fv(C4SSU_OverlayClr, 1, fOverlayModClr); call.SetUniform4fv(C4SSU_OverlayClr, 1, fOverlayModClr);
} }
if(pFoW != NULL && normalTex != 0) if(pFoW != nullptr && normalTex != 0)
{ {
call.AllocTexUnit(C4SSU_NormalTex); call.AllocTexUnit(C4SSU_NormalTex);
glBindTexture(GL_TEXTURE_2D, normalTex); glBindTexture(GL_TEXTURE_2D, normalTex);
} }
if(pFoW != NULL) if(pFoW != nullptr)
{ {
const C4Rect OutRect = GetOutRect(); const C4Rect OutRect = GetOutRect();
const C4Rect ClipRect = GetClipRect(); const C4Rect ClipRect = GetClipRect();
@ -461,7 +461,7 @@ void CStdGL::SetupMultiBlt(C4ShaderCall& call, const C4BltTransform* pTransform,
if(pTransform) if(pTransform)
{ {
float sz = 1.0f; float sz = 1.0f;
if (pFoW != NULL && normalTex != 0) if (pFoW != nullptr && normalTex != 0)
{ {
// Decompose scale factors and scale Z accordingly to X and Y, again to avoid distorting normals // Decompose scale factors and scale Z accordingly to X and Y, again to avoid distorting normals
// We could instead work around this by using the projection matrix, but then for object rotations (SetR) // We could instead work around this by using the projection matrix, but then for object rotations (SetR)
@ -495,7 +495,7 @@ void CStdGL::SetupMultiBlt(C4ShaderCall& call, const C4BltTransform* pTransform,
call.SetUniformMatrix4x4(C4SSU_ProjectionMatrix, ProjectionMatrix); call.SetUniformMatrix4x4(C4SSU_ProjectionMatrix, ProjectionMatrix);
call.SetUniformMatrix4x4(C4SSU_ModelViewMatrix, modelview); call.SetUniformMatrix4x4(C4SSU_ModelViewMatrix, modelview);
if (pFoW != NULL && normalTex != 0) if (pFoW != nullptr && normalTex != 0)
call.SetUniformMatrix3x3Transpose(C4SSU_NormalMatrix, StdMeshMatrix::Inverse(StdProjectionMatrix::Upper3x4(modelview))); call.SetUniformMatrix3x3Transpose(C4SSU_NormalMatrix, StdMeshMatrix::Inverse(StdProjectionMatrix::Upper3x4(modelview)));
} }
@ -514,13 +514,13 @@ void CStdGL::PerformMultiPix(C4Surface* sfcTarget, const C4BltVertex* vertices,
if (!shader_call) if (!shader_call)
{ {
C4ShaderCall call(GetSpriteShader(false, false, false)); C4ShaderCall call(GetSpriteShader(false, false, false));
SetupMultiBlt(call, NULL, 0, 0, 0, 0, &transform); SetupMultiBlt(call, nullptr, 0, 0, 0, 0, &transform);
for(unsigned int i = 0; i < n_vertices; i += BATCH_SIZE) for(unsigned int i = 0; i < n_vertices; i += BATCH_SIZE)
PerformMultiBlt(sfcTarget, OP_POINTS, &vertices[i], std::min(n_vertices - i, BATCH_SIZE), false, &call); PerformMultiBlt(sfcTarget, OP_POINTS, &vertices[i], std::min(n_vertices - i, BATCH_SIZE), false, &call);
} }
else else
{ {
SetupMultiBlt(*shader_call, NULL, 0, 0, 0, 0, &transform); SetupMultiBlt(*shader_call, nullptr, 0, 0, 0, 0, &transform);
for(unsigned int i = 0; i < n_vertices; i += BATCH_SIZE) for(unsigned int i = 0; i < n_vertices; i += BATCH_SIZE)
PerformMultiBlt(sfcTarget, OP_POINTS, &vertices[i], std::min(n_vertices - i, BATCH_SIZE), false, shader_call); PerformMultiBlt(sfcTarget, OP_POINTS, &vertices[i], std::min(n_vertices - i, BATCH_SIZE), false, shader_call);
} }
@ -574,12 +574,12 @@ void CStdGL::PerformMultiLines(C4Surface* sfcTarget, const C4BltVertex* vertices
if (!shader_call) if (!shader_call)
{ {
C4ShaderCall call(GetSpriteShader(true, false, false)); C4ShaderCall call(GetSpriteShader(true, false, false));
SetupMultiBlt(call, NULL, lines_tex, 0, 0, 0, NULL); SetupMultiBlt(call, nullptr, lines_tex, 0, 0, 0, nullptr);
PerformMultiBlt(sfcTarget, OP_TRIANGLES, tri_vertices, n_vertices * 3, true, &call); PerformMultiBlt(sfcTarget, OP_TRIANGLES, tri_vertices, n_vertices * 3, true, &call);
} }
else else
{ {
SetupMultiBlt(*shader_call, NULL, lines_tex, 0, 0, 0, NULL); SetupMultiBlt(*shader_call, nullptr, lines_tex, 0, 0, 0, nullptr);
PerformMultiBlt(sfcTarget, OP_TRIANGLES, tri_vertices, n_vertices * 3, true, shader_call); PerformMultiBlt(sfcTarget, OP_TRIANGLES, tri_vertices, n_vertices * 3, true, shader_call);
} }
@ -591,14 +591,14 @@ void CStdGL::PerformMultiTris(C4Surface* sfcTarget, const C4BltVertex* vertices,
// Feed the vertices to the GL // Feed the vertices to the GL
if (!shader_call) if (!shader_call)
{ {
C4ShaderCall call(GetSpriteShader(pTex != NULL, pOverlay != NULL, pNormal != NULL)); C4ShaderCall call(GetSpriteShader(pTex != nullptr, pOverlay != nullptr, pNormal != nullptr));
SetupMultiBlt(call, pTransform, pTex ? pTex->texName : 0, pOverlay ? pOverlay->texName : 0, pNormal ? pNormal->texName : 0, dwOverlayModClr, NULL); SetupMultiBlt(call, pTransform, pTex ? pTex->texName : 0, pOverlay ? pOverlay->texName : 0, pNormal ? pNormal->texName : 0, dwOverlayModClr, nullptr);
PerformMultiBlt(sfcTarget, OP_TRIANGLES, vertices, n_vertices, pTex != NULL, &call); PerformMultiBlt(sfcTarget, OP_TRIANGLES, vertices, n_vertices, pTex != nullptr, &call);
} }
else else
{ {
SetupMultiBlt(*shader_call, pTransform, pTex ? pTex->texName : 0, pOverlay ? pOverlay->texName : 0, pNormal ? pNormal->texName : 0, dwOverlayModClr, NULL); SetupMultiBlt(*shader_call, pTransform, pTex ? pTex->texName : 0, pOverlay ? pOverlay->texName : 0, pNormal ? pNormal->texName : 0, dwOverlayModClr, nullptr);
PerformMultiBlt(sfcTarget, OP_TRIANGLES, vertices, n_vertices, pTex != NULL, shader_call); PerformMultiBlt(sfcTarget, OP_TRIANGLES, vertices, n_vertices, pTex != nullptr, shader_call);
} }
} }
@ -673,8 +673,8 @@ C4Shader* CStdGL::GetSpriteShader(bool haveBase, bool haveOverlay, bool haveNorm
if(dwBlitMode & C4GFXBLIT_MOD2) ssc |= C4SSC_MOD2; if(dwBlitMode & C4GFXBLIT_MOD2) ssc |= C4SSC_MOD2;
if(haveBase) ssc |= C4SSC_BASE; if(haveBase) ssc |= C4SSC_BASE;
if(haveBase && haveOverlay) ssc |= C4SSC_OVERLAY; if(haveBase && haveOverlay) ssc |= C4SSC_OVERLAY;
if(pFoW != NULL) ssc |= C4SSC_LIGHT; if(pFoW != nullptr) ssc |= C4SSC_LIGHT;
if(pFoW != NULL && haveBase && haveNormal) ssc |= C4SSC_NORMAL; if(pFoW != nullptr && haveBase && haveNormal) ssc |= C4SSC_NORMAL;
return GetSpriteShader(ssc); return GetSpriteShader(ssc);
} }
@ -722,38 +722,38 @@ C4Shader* CStdGL::GetSpriteShader(int ssc)
bool CStdGL::InitShaders(C4GroupSet* pGroups) bool CStdGL::InitShaders(C4GroupSet* pGroups)
{ {
// Create sprite blitting shaders // Create sprite blitting shaders
if(!PrepareSpriteShader(SpriteShader, "sprite", 0, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShader, "sprite", 0, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderMod2, "spriteMod2", C4SSC_MOD2, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderMod2, "spriteMod2", C4SSC_MOD2, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderBase, "spriteBase", C4SSC_BASE, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderBase, "spriteBase", C4SSC_BASE, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderBaseMod2, "spriteBaseMod2", C4SSC_MOD2 | C4SSC_BASE, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderBaseMod2, "spriteBaseMod2", C4SSC_MOD2 | C4SSC_BASE, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderBaseOverlay, "spriteBaseOverlay", C4SSC_BASE | C4SSC_OVERLAY, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderBaseOverlay, "spriteBaseOverlay", C4SSC_BASE | C4SSC_OVERLAY, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderBaseOverlayMod2, "spriteBaseOverlayMod2", C4SSC_MOD2 | C4SSC_BASE | C4SSC_OVERLAY, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderBaseOverlayMod2, "spriteBaseOverlayMod2", C4SSC_MOD2 | C4SSC_BASE | C4SSC_OVERLAY, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderLight, "spriteLight", C4SSC_LIGHT, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderLight, "spriteLight", C4SSC_LIGHT, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderLightMod2, "spriteLightMod2", C4SSC_LIGHT | C4SSC_MOD2, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderLightMod2, "spriteLightMod2", C4SSC_LIGHT | C4SSC_MOD2, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderLightBase, "spriteLightBase", C4SSC_LIGHT | C4SSC_BASE, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderLightBase, "spriteLightBase", C4SSC_LIGHT | C4SSC_BASE, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderLightBaseMod2, "spriteLightBaseMod2", C4SSC_LIGHT | C4SSC_BASE | C4SSC_MOD2, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderLightBaseMod2, "spriteLightBaseMod2", C4SSC_LIGHT | C4SSC_BASE | C4SSC_MOD2, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderLightBaseOverlay, "spriteLightBaseOverlay", C4SSC_LIGHT | C4SSC_BASE | C4SSC_OVERLAY, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderLightBaseOverlay, "spriteLightBaseOverlay", C4SSC_LIGHT | C4SSC_BASE | C4SSC_OVERLAY, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderLightBaseOverlayMod2, "spriteLightBaseOverlayMod2", C4SSC_LIGHT | C4SSC_BASE | C4SSC_OVERLAY | C4SSC_MOD2, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderLightBaseOverlayMod2, "spriteLightBaseOverlayMod2", C4SSC_LIGHT | C4SSC_BASE | C4SSC_OVERLAY | C4SSC_MOD2, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderLightBaseNormal, "spriteLightBaseNormal", C4SSC_LIGHT | C4SSC_BASE | C4SSC_NORMAL, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderLightBaseNormal, "spriteLightBaseNormal", C4SSC_LIGHT | C4SSC_BASE | C4SSC_NORMAL, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderLightBaseNormalMod2, "spriteLightBaseNormalMod2", C4SSC_LIGHT | C4SSC_BASE | C4SSC_NORMAL | C4SSC_MOD2, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderLightBaseNormalMod2, "spriteLightBaseNormalMod2", C4SSC_LIGHT | C4SSC_BASE | C4SSC_NORMAL | C4SSC_MOD2, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderLightBaseNormalOverlay, "spriteLightBaseNormalOverlay", C4SSC_LIGHT | C4SSC_BASE | C4SSC_OVERLAY | C4SSC_NORMAL, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderLightBaseNormalOverlay, "spriteLightBaseNormalOverlay", C4SSC_LIGHT | C4SSC_BASE | C4SSC_OVERLAY | C4SSC_NORMAL, pGroups, nullptr, nullptr))
return false; return false;
if(!PrepareSpriteShader(SpriteShaderLightBaseNormalOverlayMod2, "spriteLightBaseNormalOverlayMod2", C4SSC_LIGHT | C4SSC_BASE | C4SSC_OVERLAY | C4SSC_NORMAL | C4SSC_MOD2, pGroups, NULL, NULL)) if(!PrepareSpriteShader(SpriteShaderLightBaseNormalOverlayMod2, "spriteLightBaseNormalOverlayMod2", C4SSC_LIGHT | C4SSC_BASE | C4SSC_OVERLAY | C4SSC_NORMAL | C4SSC_MOD2, pGroups, nullptr, nullptr))
return false; return false;
return true; return true;
@ -796,7 +796,7 @@ bool CStdGL::RestoreDeviceObjects()
{ {
GenericVBOSizes[i] = GENERIC_VBO_SIZE; GenericVBOSizes[i] = GENERIC_VBO_SIZE;
glBindBuffer(GL_ARRAY_BUFFER, GenericVBOs[i]); glBindBuffer(GL_ARRAY_BUFFER, GenericVBOs[i]);
glBufferData(GL_ARRAY_BUFFER, GenericVBOSizes[i] * sizeof(C4BltVertex), NULL, GL_STREAM_DRAW); glBufferData(GL_ARRAY_BUFFER, GenericVBOSizes[i] * sizeof(C4BltVertex), nullptr, GL_STREAM_DRAW);
GenericVAOs[i] = GenVAOID(); GenericVAOs[i] = GenVAOID();
GenericVAOs[i + N_GENERIC_VBOS] = GenVAOID(); GenericVAOs[i + N_GENERIC_VBOS] = GenVAOID();
} }
@ -869,11 +869,11 @@ bool CStdGL::Error(const char *szMsg)
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, nullptr,
err, err,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf, (LPTSTR) &lpMsgBuf,
0, NULL ); 0, nullptr );
LogF(" gl: GetLastError() = %d - %s", err, StdStrBuf(lpMsgBuf).getData()); LogF(" gl: GetLastError() = %d - %s", err, StdStrBuf(lpMsgBuf).getData());
LocalFree(lpMsgBuf); LocalFree(lpMsgBuf);
#endif #endif
@ -909,7 +909,7 @@ bool CStdGL::CheckGLError(const char *szAtOp)
return false; return false;
} }
CStdGL *pGL=NULL; CStdGL *pGL=nullptr;
bool CStdGL::OnResolutionChanged(unsigned int iXRes, unsigned int iYRes) bool CStdGL::OnResolutionChanged(unsigned int iXRes, unsigned int iYRes)
{ {
@ -922,7 +922,7 @@ bool CStdGL::OnResolutionChanged(unsigned int iXRes, unsigned int iYRes)
void CStdGL::Default() void CStdGL::Default()
{ {
C4Draw::Default(); C4Draw::Default();
pCurrCtx = NULL; pCurrCtx = nullptr;
iPixelFormat=0; iPixelFormat=0;
sfcFmt=0; sfcFmt=0;
Workarounds.LowMaxVertexUniformCount = false; Workarounds.LowMaxVertexUniformCount = false;
@ -1020,7 +1020,7 @@ void CStdGL::FreeVAOID(unsigned int vaoid)
bool CStdGL::GetVAO(unsigned int vaoid, GLuint& vao) bool CStdGL::GetVAO(unsigned int vaoid, GLuint& vao)
{ {
assert(pCurrCtx != NULL); assert(pCurrCtx != nullptr);
if (vaoid >= pCurrCtx->hVAOs.size()) if (vaoid >= pCurrCtx->hVAOs.size())
{ {

View File

@ -382,7 +382,7 @@ bool CStdGLCtx::Init(C4Window * pWindow, C4AbstractApp *pApp)
return true; return true;
} }
ReleaseDC(pWindow->renderwnd, hDC); hDC = NULL; ReleaseDC(pWindow->renderwnd, hDC); hDC = nullptr;
return false; return false;
} }
@ -425,9 +425,9 @@ void CStdGLCtx::Deselect()
{ {
if (pGL && pGL->pCurrCtx == this) if (pGL && pGL->pCurrCtx == this)
{ {
wglMakeCurrent(NULL, NULL); wglMakeCurrent(nullptr, nullptr);
pGL->pCurrCtx=NULL; pGL->pCurrCtx=nullptr;
pGL->RenderTarget=NULL; pGL->RenderTarget=nullptr;
} }
} }
@ -441,7 +441,7 @@ bool CStdGLCtx::PageFlip()
#elif defined(USE_SDL_MAINLOOP) #elif defined(USE_SDL_MAINLOOP)
CStdGLCtx::CStdGLCtx(): pWindow(0), this_context(contexts.end()) { ctx = NULL; } CStdGLCtx::CStdGLCtx(): pWindow(0), this_context(contexts.end()) { ctx = nullptr; }
void CStdGLCtx::Clear(bool multisample_change) void CStdGLCtx::Clear(bool multisample_change)
{ {
@ -535,7 +535,7 @@ bool CStdGLCtx::PageFlip()
#include <QOpenGLContext> #include <QOpenGLContext>
#include <QOffscreenSurface> #include <QOffscreenSurface>
CStdGLCtxQt::CStdGLCtxQt() { context = NULL; surface = NULL; } CStdGLCtxQt::CStdGLCtxQt() { context = nullptr; surface = nullptr; }
void CStdGLCtxQt::Clear(bool multisample_change) void CStdGLCtxQt::Clear(bool multisample_change)
{ {

View File

@ -528,7 +528,7 @@ namespace
call.SetUniform1f(C4SSU_CullMode, cullFace ? 0.0f : 1.0f); call.SetUniform1f(C4SSU_CullMode, cullFace ? 0.0f : 1.0f);
// Dynamic light // Dynamic light
if(pFoW != NULL) if(pFoW != nullptr)
{ {
call.AllocTexUnit(C4SSU_LightTex); call.AllocTexUnit(C4SSU_LightTex);
glBindTexture(GL_TEXTURE_2D, pFoW->getSurfaceName()); glBindTexture(GL_TEXTURE_2D, pFoW->getSurfaceName());
@ -705,7 +705,7 @@ namespace
// Unmapping the buffer may fail for certain reasons, in which case we need to try again. // Unmapping the buffer may fail for certain reasons, in which case we need to try again.
do do
{ {
glBufferData(GL_ARRAY_BUFFER, vertex_count * sizeof(PretransformedMeshVertex), NULL, GL_STREAM_DRAW); glBufferData(GL_ARRAY_BUFFER, vertex_count * sizeof(PretransformedMeshVertex), nullptr, GL_STREAM_DRAW);
void *map = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY); void *map = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY);
PretransformedMeshVertex *buffer = new (map) PretransformedMeshVertex[vertex_count]; PretransformedMeshVertex *buffer = new (map) PretransformedMeshVertex[vertex_count];
@ -811,12 +811,12 @@ namespace
glBlendFunc(OgreBlendTypeToGL(pass.SceneBlendFactors[0]), GL_ONE); glBlendFunc(OgreBlendTypeToGL(pass.SceneBlendFactors[0]), GL_ONE);
} }
assert(pass.Program.get() != NULL); assert(pass.Program.get() != nullptr);
// Upload all parameters to the shader // Upload all parameters to the shader
int ssc = 0; int ssc = 0;
if (dwBlitMode & C4GFXBLIT_MOD2) ssc |= C4SSC_MOD2; if (dwBlitMode & C4GFXBLIT_MOD2) ssc |= C4SSC_MOD2;
if (pFoW != NULL) ssc |= C4SSC_LIGHT; if (pFoW != nullptr) ssc |= C4SSC_LIGHT;
const C4Shader* shader = pass.Program->Program->GetShader(ssc); const C4Shader* shader = pass.Program->Program->GetShader(ssc);
if (!shader) return; if (!shader) return;
C4ShaderCall call(shader); C4ShaderCall call(shader);

View File

@ -30,7 +30,7 @@
void C4Facet::Default() void C4Facet::Default()
{ {
Set(NULL,0,0,0,0); Set(nullptr,0,0,0,0);
} }
void C4Facet::Set(C4Surface * nsfc, float nx, float ny, float nwdt, float nhgt) void C4Facet::Set(C4Surface * nsfc, float nx, float ny, float nwdt, float nhgt)
@ -507,7 +507,7 @@ void C4DrawTransform::CompileFunc(StdCompiler *pComp)
val.AppendChar('.'); val.Append(val2); val.AppendChar('.'); val.Append(val2);
} }
#ifdef WITH_GLIB #ifdef WITH_GLIB
mat[i] = g_ascii_strtod (val.getData(), NULL); mat[i] = g_ascii_strtod (val.getData(), nullptr);
#else #else
if (fCompiler) sscanf(val.getData(), "%g", &mat[i]); if (fCompiler) sscanf(val.getData(), "%g", &mat[i]);
#endif #endif

View File

@ -132,7 +132,7 @@ public:
void DrawX(C4Surface * sfcTarget, float iX, float iY, float iWdt, float iHgt, int32_t iPhaseX=0, int32_t iPhaseY=0) const; void DrawX(C4Surface * sfcTarget, float iX, float iY, float iWdt, float iHgt, int32_t iPhaseX=0, int32_t iPhaseY=0) const;
void DrawXFloat(C4Surface * sfcTarget, float fX, float fY, float fWdt, float fHgt) const; void DrawXFloat(C4Surface * sfcTarget, float fX, float fY, float fWdt, float fHgt) const;
void DrawValue(C4Facet &cgo, int32_t iValue, int32_t iPhaseX=0, int32_t iPhaseY=0, int32_t iAlign=C4FCT_Center); void DrawValue(C4Facet &cgo, int32_t iValue, int32_t iPhaseX=0, int32_t iPhaseY=0, int32_t iAlign=C4FCT_Center);
void DrawValue2(C4Facet &cgo, int32_t iValue1, int32_t iValue2, int32_t iPhaseX=0, int32_t iPhaseY=0, int32_t iAlign=C4FCT_Center, int32_t *piUsedWidth=NULL); void DrawValue2(C4Facet &cgo, int32_t iValue1, int32_t iValue2, int32_t iPhaseX=0, int32_t iPhaseY=0, int32_t iAlign=C4FCT_Center, int32_t *piUsedWidth=nullptr);
void Draw(C4Facet &cgo, bool fAspect=true, int32_t iPhaseX=0, int32_t iPhaseY=0, bool fTransparent=true); void Draw(C4Facet &cgo, bool fAspect=true, int32_t iPhaseX=0, int32_t iPhaseY=0, bool fTransparent=true);
void DrawFullScreen(C4Facet &cgo); void DrawFullScreen(C4Facet &cgo);
void DrawT(C4Surface * sfcTarget, float iX, float iY, int32_t iPhaseX, int32_t iPhaseY, C4DrawTransform *pTransform); // draw with transformation (if pTransform is assigned) void DrawT(C4Surface * sfcTarget, float iX, float iY, int32_t iPhaseX, int32_t iPhaseY, C4DrawTransform *pTransform); // draw with transformation (if pTransform is assigned)
@ -179,7 +179,7 @@ public:
float ParRefX, ParRefY; float ParRefX, ParRefY;
public: public:
void Default() { TargetX=TargetY=0; Zoom=1; ParRefX=ParRefY=0; C4Facet::Default(); } void Default() { TargetX=TargetY=0; Zoom=1; ParRefX=ParRefY=0; C4Facet::Default(); }
void Clear() { Surface=NULL; } void Clear() { Surface=nullptr; }
void Set(const C4Facet &cpy) { TargetX=TargetY=0; Zoom=1; ParRefX=ParRefY=0; C4Facet::Set(cpy); } void Set(const C4Facet &cpy) { TargetX=TargetY=0; Zoom=1; ParRefX=ParRefY=0; C4Facet::Set(cpy); }
void Set(const C4TargetFacet &cpy) { *this = cpy; } void Set(const C4TargetFacet &cpy) { *this = cpy; }

View File

@ -85,7 +85,7 @@ bool C4FacetSurface::Load(C4Group &hGroup, const char *szName, int iWdt, int iHg
if (!*szExt) if (!*szExt)
{ {
// no extension: Default to extension that is found as file in group // no extension: Default to extension that is found as file in group
const char * const extensions[] = { "png", "bmp", "jpeg", "jpg", NULL }; const char * const extensions[] = { "png", "bmp", "jpeg", "jpg", nullptr };
int i = 0; const char *szExt; int i = 0; const char *szExt;
while ((szExt = extensions[i++])) while ((szExt = extensions[i++]))
{ {

View File

@ -101,7 +101,7 @@ bool C4FontLoader::InitFont(CStdFont * rFont, const char *szFontName, FontType e
LogF(LoadResStr("IDS_PRC_UPDATEFONT"), FontFaceName, iDefFontSize, dwDefWeight); LogF(LoadResStr("IDS_PRC_UPDATEFONT"), FontFaceName, iDefFontSize, dwDefWeight);
} }
// check if one of the internally listed fonts should be used // check if one of the internally listed fonts should be used
const char * const extensions[] = { "ttf", "otf", "ttc", "fon", "fnt", "fot", NULL }; const char * const extensions[] = { "ttf", "otf", "ttc", "fon", "fnt", "fot", nullptr };
char FileName[_MAX_PATH+1]; char FileName[_MAX_PATH+1];
int32_t ID; int32_t ID;
C4Group * pGrp = pGfxGroups->FindSuitableFile(FontFaceName, extensions, FileName, &ID); C4Group * pGrp = pGfxGroups->FindSuitableFile(FontFaceName, extensions, FileName, &ID);
@ -110,7 +110,7 @@ bool C4FontLoader::InitFont(CStdFont * rFont, const char *szFontName, FontType e
if (LastUsedGrpID != ID || LastUsedName != FontFaceName) if (LastUsedGrpID != ID || LastUsedName != FontFaceName)
{ {
DestroyFont(pLastUsedFont); DestroyFont(pLastUsedFont);
pLastUsedFont = NULL; pLastUsedFont = nullptr;
} }
if (!pLastUsedFont) if (!pLastUsedFont)
{ {
@ -126,7 +126,7 @@ bool C4FontLoader::InitFont(CStdFont * rFont, const char *szFontName, FontType e
catch (std::runtime_error & e) catch (std::runtime_error & e)
{ {
LogFatal(e.what()); LogFatal(e.what());
pGrp = NULL; pGrp = nullptr;
} }
} }
} }
@ -137,7 +137,7 @@ bool C4FontLoader::InitFont(CStdFont * rFont, const char *szFontName, FontType e
if (LastUsedGrpID != -1 || LastUsedName != FontFaceName) if (LastUsedGrpID != -1 || LastUsedName != FontFaceName)
{ {
DestroyFont(pLastUsedFont); DestroyFont(pLastUsedFont);
pLastUsedFont = NULL; pLastUsedFont = nullptr;
} }
if (!pLastUsedFont) if (!pLastUsedFont)
{ {
@ -180,7 +180,7 @@ void C4FontLoader::Clear()
#ifndef USE_CONSOLE #ifndef USE_CONSOLE
// delete vector font cache // delete vector font cache
DestroyFont(pLastUsedFont); DestroyFont(pLastUsedFont);
pLastUsedFont = NULL; pLastUsedFont = nullptr;
#endif #endif
} }
@ -196,7 +196,7 @@ public:
#if defined(_WIN32) #if defined(_WIN32)
// Win32 using freetype: Load TrueType-data from WinGDI into Data-buffer to be used by FreeType // Win32 using freetype: Load TrueType-data from WinGDI into Data-buffer to be used by FreeType
bool fSuccess = false; bool fSuccess = false;
HDC hDC = ::CreateCompatibleDC(NULL); HDC hDC = ::CreateCompatibleDC(nullptr);
if (hDC) if (hDC)
{ {
HFONT hFont = ::CreateFontA(0, 0, 0, 0, FW_DONTCARE, false, HFONT hFont = ::CreateFontA(0, 0, 0, 0, FW_DONTCARE, false,
@ -206,7 +206,7 @@ public:
if (hFont) if (hFont)
{ {
SelectObject( hDC, hFont ); SelectObject( hDC, hFont );
uint32_t dwTTFSize = ::GetFontData(hDC, 0, 0, NULL, 0); uint32_t dwTTFSize = ::GetFontData(hDC, 0, 0, nullptr, 0);
if (dwTTFSize && dwTTFSize != GDI_ERROR) if (dwTTFSize && dwTTFSize != GDI_ERROR)
{ {
Data.SetSize(dwTTFSize); Data.SetSize(dwTTFSize);
@ -285,7 +285,7 @@ CStdFont::CStdFont()
{ {
#ifndef USE_CONSOLE #ifndef USE_CONSOLE
// set default values // set default values
sfcCurrent = NULL; sfcCurrent = nullptr;
iSfcSizes = 64; iSfcSizes = 64;
dwDefFontHeight=iLineHgt=10; dwDefFontHeight=iLineHgt=10;
iFontZoom=1; // default: no internal font zooming - likely no antialiasing either... iFontZoom=1; // default: no internal font zooming - likely no antialiasing either...
@ -296,8 +296,8 @@ CStdFont::CStdFont()
// font not yet initialized // font not yet initialized
*szFontName=0; *szFontName=0;
id=0; id=0;
pCustomImages=NULL; pCustomImages=nullptr;
pVectorFont = NULL; pVectorFont = nullptr;
#endif #endif
} }
@ -346,11 +346,11 @@ bool CStdFont::AddRenderedChar(uint32_t dwChar, C4Facet *pfctTarget)
iBoldness = (1<<16) + (iBoldness<<16)/400; iBoldness = (1<<16) + (iBoldness<<16)/400;
FT_Matrix mat; FT_Matrix mat;
mat.xx = iBoldness; mat.xy = mat.yx = 0; mat.yy = 1<<16; mat.xx = iBoldness; mat.xy = mat.yx = 0; mat.yy = 1<<16;
FT_Set_Transform(*pVectorFont, &mat, NULL); FT_Set_Transform(*pVectorFont, &mat, nullptr);
} }
else else
{ {
FT_Set_Transform(*pVectorFont, NULL, NULL); FT_Set_Transform(*pVectorFont, nullptr, nullptr);
} }
// Render // Render
if (FT_Load_Char(*pVectorFont, dwChar, FT_LOAD_RENDER | FT_LOAD_NO_HINTING)) if (FT_Load_Char(*pVectorFont, dwChar, FT_LOAD_RENDER | FT_LOAD_NO_HINTING))
@ -487,10 +487,10 @@ void CStdFont::Clear()
{ {
#ifndef USE_CONSOLE #ifndef USE_CONSOLE
FontLoader.DestroyFont(pVectorFont); FontLoader.DestroyFont(pVectorFont);
pVectorFont = NULL; pVectorFont = nullptr;
// clear font sfcs // clear font sfcs
sfcCurrent = NULL; sfcCurrent = nullptr;
psfcFontData.clear(); psfcFontData.clear();
for (int c=' '; c<256; ++c) fctAsciiTexCoords[c-' '].Default(); for (int c=' '; c<256; ++c) fctAsciiTexCoords[c-' '].Default();
fctUnicodeMap.clear(); fctUnicodeMap.clear();
@ -613,7 +613,7 @@ std::tuple<std::string, int> CStdFont::BreakMessage(const char *szMsg, int iWdt,
uint32_t c; uint32_t c;
const char *szPos=szMsg, // current parse position in the text const char *szPos=szMsg, // current parse position in the text
*szLastBreakPos = szMsg, // points to the char after at (whitespace) or after ('-') which text can be broken *szLastBreakPos = szMsg, // points to the char after at (whitespace) or after ('-') which text can be broken
*szLastEmergenyBreakPos = NULL, // same, but at last char in case no suitable linebreak could be found *szLastEmergenyBreakPos = nullptr, // same, but at last char in case no suitable linebreak could be found
*szLastPos; // last position until which buffer has been transferred to output *szLastPos; // last position until which buffer has been transferred to output
int iLastBreakOutLen = 0, iLastEmergencyBreakOutLen = 0; // size of output string at break positions int iLastBreakOutLen = 0, iLastEmergencyBreakOutLen = 0; // size of output string at break positions
int iX=0, // current text width at parse pos int iX=0, // current text width at parse pos
@ -796,7 +796,7 @@ void CStdFont::DrawText(C4Surface * sfcDest, float iX, float iY, DWORD dwColor,
{ {
#ifndef USE_CONSOLE #ifndef USE_CONSOLE
assert(IsValidUtf8(szText)); assert(IsValidUtf8(szText));
C4DrawTransform bt, *pbt=NULL; C4DrawTransform bt, *pbt=nullptr;
// set blit color // set blit color
DWORD dwOldModClr; DWORD dwOldModClr;
bool fWasModulated = pDraw->GetBlitModulation(dwOldModClr); bool fWasModulated = pDraw->GetBlitModulation(dwOldModClr);

View File

@ -54,7 +54,7 @@ public:
C4FontLoader() C4FontLoader()
#ifndef USE_CONSOLE #ifndef USE_CONSOLE
: pLastUsedFont(NULL), LastUsedGrpID(0) : pLastUsedFont(nullptr), LastUsedGrpID(0)
#endif #endif
{ } // ctor { } // ctor
~C4FontLoader() { Clear(); } // dtor ~C4FontLoader() { Clear(); } // dtor

View File

@ -140,7 +140,7 @@ void C4GraphicsResource::Clear()
// unhook deflist from font // unhook deflist from font
FontRegular.SetCustomImages(NULL); FontRegular.SetCustomImages(nullptr);
Achievements.Clear(); Achievements.Clear();
@ -365,7 +365,7 @@ void C4GraphicsResource::CloseFiles()
static C4Group *FindSuitableFile(const char *szName, C4GroupSet &rGfxSet, char *szFileName, int32_t * pID) static C4Group *FindSuitableFile(const char *szName, C4GroupSet &rGfxSet, char *szFileName, int32_t * pID)
{ {
const char * const extensions[] = { "bmp", "jpeg", "jpg", "png", NULL }; const char * const extensions[] = { "bmp", "jpeg", "jpg", "png", nullptr };
return rGfxSet.FindSuitableFile(szName, extensions, szFileName, pID); return rGfxSet.FindSuitableFile(szName, extensions, szFileName, pID);
} }

View File

@ -105,7 +105,7 @@ public:
// achievement graphics // achievement graphics
C4AchievementGraphics Achievements; C4AchievementGraphics Achievements;
public: public:
CStdFont &GetFontByHeight(int32_t iHgt, float *pfZoom=NULL); // get optimal font for given control size CStdFont &GetFontByHeight(int32_t iHgt, float *pfZoom=nullptr); // get optimal font for given control size
void Default(); void Default();
void Clear(); void Clear();
bool InitFonts(); bool InitFonts();

View File

@ -73,12 +73,12 @@ void C4Shader::AddDefine(const char* name)
void C4Shader::AddVertexSlice(int iPos, const char *szText) void C4Shader::AddVertexSlice(int iPos, const char *szText)
{ {
AddSlice(VertexSlices, iPos, szText, NULL, 0, 0); AddSlice(VertexSlices, iPos, szText, nullptr, 0, 0);
} }
void C4Shader::AddFragmentSlice(int iPos, const char *szText) void C4Shader::AddFragmentSlice(int iPos, const char *szText)
{ {
AddSlice(FragmentSlices, iPos, szText, NULL, 0, 0); AddSlice(FragmentSlices, iPos, szText, nullptr, 0, 0);
} }
void C4Shader::AddVertexSlices(const char *szWhat, const char *szText, const char *szSource, int iSourceTime) void C4Shader::AddVertexSlices(const char *szWhat, const char *szText, const char *szSource, int iSourceTime)
@ -413,13 +413,13 @@ bool C4Shader::Init(const char *szWhat, const char **szUniforms, const char **sz
// Allocate uniform and attribute arrays // Allocate uniform and attribute arrays
int iUniformCount = 0; int iUniformCount = 0;
if (szUniforms != NULL) if (szUniforms != nullptr)
while (szUniforms[iUniformCount]) while (szUniforms[iUniformCount])
iUniformCount++; iUniformCount++;
Uniforms.resize(iUniformCount); Uniforms.resize(iUniformCount);
int iAttributeCount = 0; int iAttributeCount = 0;
if (szAttributes != NULL) if (szAttributes != nullptr)
while (szAttributes[iAttributeCount]) while (szAttributes[iAttributeCount])
iAttributeCount++; iAttributeCount++;
Attributes.resize(iAttributeCount); Attributes.resize(iAttributeCount);
@ -525,12 +525,12 @@ bool C4Shader::Refresh()
std::vector<const char*> UniformNames(Uniforms.size() + 1); std::vector<const char*> UniformNames(Uniforms.size() + 1);
for (std::size_t i = 0; i < Uniforms.size(); ++i) for (std::size_t i = 0; i < Uniforms.size(); ++i)
UniformNames[i] = Uniforms[i].name; UniformNames[i] = Uniforms[i].name;
UniformNames[Uniforms.size()] = NULL; UniformNames[Uniforms.size()] = nullptr;
std::vector<const char*> AttributeNames(Attributes.size() + 1); std::vector<const char*> AttributeNames(Attributes.size() + 1);
for (std::size_t i = 0; i < Attributes.size(); ++i) for (std::size_t i = 0; i < Attributes.size(); ++i)
AttributeNames[i] = Attributes[i].name; AttributeNames[i] = Attributes[i].name;
AttributeNames[Attributes.size()] = NULL; AttributeNames[Attributes.size()] = nullptr;
#endif #endif
// Reinitialise // Reinitialise

View File

@ -82,17 +82,17 @@ void C4Surface::Default()
{ {
Wdt=Hgt=0; Wdt=Hgt=0;
Scale=1; Scale=1;
PrimarySurfaceLockPitch=0; PrimarySurfaceLockBits=NULL; PrimarySurfaceLockPitch=0; PrimarySurfaceLockBits=nullptr;
ClipX=ClipY=ClipX2=ClipY2=0; ClipX=ClipY=ClipX2=ClipY2=0;
Locked=0; Locked=0;
Attached=false; Attached=false;
fPrimary=false; fPrimary=false;
pMainSfc=NULL; pMainSfc=nullptr;
pNormalSfc=NULL; pNormalSfc=nullptr;
#ifndef USE_CONSOLE #ifndef USE_CONSOLE
pCtx=NULL; pCtx=nullptr;
#endif #endif
pWindow=NULL; pWindow=nullptr;
ClrByOwnerClr=0; ClrByOwnerClr=0;
iTexSize=0; iTexSize=0;
fIsBackground=false; fIsBackground=false;
@ -114,7 +114,7 @@ void C4Surface::MoveFrom(C4Surface *psfcFrom)
Wdt=psfcFrom->Wdt; Hgt=psfcFrom->Hgt; Wdt=psfcFrom->Wdt; Hgt=psfcFrom->Hgt;
PrimarySurfaceLockPitch=psfcFrom->PrimarySurfaceLockPitch; PrimarySurfaceLockPitch=psfcFrom->PrimarySurfaceLockPitch;
PrimarySurfaceLockBits=psfcFrom->PrimarySurfaceLockBits; PrimarySurfaceLockBits=psfcFrom->PrimarySurfaceLockBits;
psfcFrom->PrimarySurfaceLockBits=NULL; psfcFrom->PrimarySurfaceLockBits=nullptr;
ClipX=psfcFrom->ClipX; ClipY=psfcFrom->ClipY; ClipX=psfcFrom->ClipX; ClipY=psfcFrom->ClipY;
ClipX2=psfcFrom->ClipX2; ClipY2=psfcFrom->ClipY2; ClipX2=psfcFrom->ClipX2; ClipY2=psfcFrom->ClipY2;
Locked=psfcFrom->Locked; Locked=psfcFrom->Locked;
@ -398,8 +398,8 @@ bool C4Surface::SavePNG(const char *szFilename, bool fSaveAlpha, bool fSaveOverl
if (!png->Create(Wdt, Hgt, fSaveAlpha)) { Unlock(); return false; } if (!png->Create(Wdt, Hgt, fSaveAlpha)) { Unlock(); return false; }
// reset overlay if desired // reset overlay if desired
C4Surface *pMainSfcBackup = NULL; C4Surface *pMainSfcBackup = nullptr;
if (fSaveOverlayOnly) { pMainSfcBackup=pMainSfc; pMainSfc=NULL; } if (fSaveOverlayOnly) { pMainSfcBackup=pMainSfc; pMainSfc=nullptr; }
#ifndef USE_CONSOLE #ifndef USE_CONSOLE
if (fPrimary) if (fPrimary)
@ -500,7 +500,7 @@ bool C4Surface::Unlock()
DWORD C4Surface::GetPixDw(int iX, int iY, bool fApplyModulation) DWORD C4Surface::GetPixDw(int iX, int iY, bool fApplyModulation)
{ {
BYTE *pBuf = NULL; int iPitch = 0; // TODO: are those initialised to something sensible? BYTE *pBuf = nullptr; int iPitch = 0; // TODO: are those initialised to something sensible?
// backup pos // backup pos
int iX2=iX; int iY2=iY; int iX2=iX; int iY2=iY;
// primary? // primary?
@ -650,7 +650,7 @@ C4TexRef::C4TexRef(int iSizeX, int iSizeY, int iFlags)
#ifndef USE_CONSOLE #ifndef USE_CONSOLE
texName = 0; texName = 0;
#endif #endif
texLock.pBits=NULL; fIntLock=false; texLock.pBits=nullptr; fIntLock=false;
// store size // store size
this->iSizeX=iSizeX; this->iSizeX=iSizeX;
this->iSizeY=iSizeY; this->iSizeY=iSizeY;
@ -702,7 +702,7 @@ void C4TexRef::CreateTexture()
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, fTileable ? GL_REPEAT : GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, fTileable ? GL_REPEAT : GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, fMipMap ? GL_LINEAR_MIPMAP_NEAREST : GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, fMipMap ? GL_LINEAR_MIPMAP_NEAREST : GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, iSizeX, iSizeY, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, NULL); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, iSizeX, iSizeY, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, nullptr);
if (fMipMap) glGenerateMipmap(GL_TEXTURE_2D); if (fMipMap) glGenerateMipmap(GL_TEXTURE_2D);
#endif #endif
} }
@ -784,7 +784,7 @@ void C4TexRef::Unlock()
LockSize.x, LockSize.y, LockSize.Wdt, LockSize.Hgt, LockSize.x, LockSize.y, LockSize.Wdt, LockSize.Hgt,
GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, texLock.pBits); GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, texLock.pBits);
delete[] static_cast<unsigned char*>(texLock.pBits); texLock.pBits=NULL; delete[] static_cast<unsigned char*>(texLock.pBits); texLock.pBits=nullptr;
if (fMipMap) glGenerateMipmap(GL_TEXTURE_2D); if (fMipMap) glGenerateMipmap(GL_TEXTURE_2D);
#endif #endif
} }
@ -844,7 +844,7 @@ void C4TexMgr::UnregTex(C4TexRef *pTex)
// remove texture from list // remove texture from list
Textures.remove(pTex); Textures.remove(pTex);
// if list is empty, remove self // if list is empty, remove self
if (Textures.empty()) { delete this; pTexMgr=NULL; } if (Textures.empty()) { delete this; pTexMgr=nullptr; }
} }
void C4TexMgr::IntLock() void C4TexMgr::IntLock()

View File

@ -79,7 +79,7 @@ public:
#endif #endif
std::unique_ptr<C4TexRef> texture; std::unique_ptr<C4TexRef> texture;
C4Surface *pMainSfc; // main surface for simple ColorByOwner-surfaces C4Surface *pMainSfc; // main surface for simple ColorByOwner-surfaces
C4Surface *pNormalSfc; // normal map; can be NULL C4Surface *pNormalSfc; // normal map; can be nullptr
DWORD ClrByOwnerClr; // current color to be used for ColorByOwner-blits DWORD ClrByOwnerClr; // current color to be used for ColorByOwner-blits
void MoveFrom(C4Surface *psfcFrom); // grab data from other surface - invalidates other surface void MoveFrom(C4Surface *psfcFrom); // grab data from other surface - invalidates other surface
@ -110,7 +110,7 @@ public:
#endif #endif
// Only for surfaces which map to a window // Only for surfaces which map to a window
bool UpdateSize(int wdt, int hgt); bool UpdateSize(int wdt, int hgt);
bool PageFlip(C4Rect *pSrcRt=NULL, C4Rect *pDstRt=NULL); bool PageFlip(C4Rect *pSrcRt=nullptr, C4Rect *pDstRt=nullptr);
void Clear(); void Clear();
void Default(); void Default();

View File

@ -35,7 +35,7 @@ bool C4Surface::LoadAny(C4Group &hGroup, const char *szName, bool fOwnPal, bool
if (!*szExt) if (!*szExt)
{ {
// no extension: Default to extension that is found as file in group // no extension: Default to extension that is found as file in group
const char * const extensions[] = { "png", "bmp", "jpeg", "jpg", NULL }; const char * const extensions[] = { "png", "bmp", "jpeg", "jpg", nullptr };
int i = 0; const char *szExt; int i = 0; const char *szExt;
while ((szExt = extensions[i++])) while ((szExt = extensions[i++]))
{ {
@ -58,7 +58,7 @@ bool C4Surface::LoadAny(C4GroupSet &hGroupset, const char *szName, bool fOwnPal,
if (!*szExt) if (!*szExt)
{ {
// no extension: Default to extension that is found as file in group // no extension: Default to extension that is found as file in group
const char * const extensions[] = { "png", "bmp", "jpeg", "jpg", NULL }; const char * const extensions[] = { "png", "bmp", "jpeg", "jpg", nullptr };
int i = 0; const char *szExt; int i = 0; const char *szExt;
while ((szExt = extensions[i++])) while ((szExt = extensions[i++]))
{ {

View File

@ -27,16 +27,16 @@ CSurface8::CSurface8()
{ {
Wdt=Hgt=Pitch=0; Wdt=Hgt=Pitch=0;
ClipX=ClipY=ClipX2=ClipY2=0; ClipX=ClipY=ClipX2=ClipY2=0;
Bits=NULL; Bits=nullptr;
pPal=NULL; pPal=nullptr;
} }
CSurface8::CSurface8(int iWdt, int iHgt) CSurface8::CSurface8(int iWdt, int iHgt)
{ {
Wdt=Hgt=Pitch=0; Wdt=Hgt=Pitch=0;
ClipX=ClipY=ClipX2=ClipY2=0; ClipX=ClipY=ClipX2=ClipY2=0;
Bits=NULL; Bits=nullptr;
pPal=NULL; pPal=nullptr;
Create(iWdt, iHgt); Create(iWdt, iHgt);
} }
@ -48,10 +48,10 @@ CSurface8::~CSurface8()
void CSurface8::Clear() void CSurface8::Clear()
{ {
// clear bitmap-copy // clear bitmap-copy
delete [] Bits; Bits=NULL; delete [] Bits; Bits=nullptr;
// clear pal // clear pal
delete pPal; delete pPal;
pPal=NULL; pPal=nullptr;
} }
void CSurface8::Box(int iX, int iY, int iX2, int iY2, int iCol) void CSurface8::Box(int iX, int iY, int iX2, int iY2, int iCol)
@ -250,6 +250,6 @@ void CSurface8::SetBuffer(BYTE *pbyToBuf, int Wdt, int Hgt, int Pitch)
void CSurface8::ReleaseBuffer() void CSurface8::ReleaseBuffer()
{ {
this->Bits = NULL; this->Bits = nullptr;
Clear(); Clear();
} }

View File

@ -61,7 +61,7 @@ public:
void Clip(int iX, int iY, int iX2, int iY2); void Clip(int iX, int iY, int iX2, int iY2);
void NoClip(); void NoClip();
bool Read(class CStdStream &hGroup); bool Read(class CStdStream &hGroup);
bool Save(const char *szFilename, CStdPalette * = NULL); bool Save(const char *szFilename, CStdPalette * = nullptr);
void GetSurfaceSize(int &irX, int &irY) const; // get surface size void GetSurfaceSize(int &irX, int &irY) const; // get surface size
void AllowColor(BYTE iRngLo, BYTE iRngHi, bool fAllowZero=false); void AllowColor(BYTE iRngLo, BYTE iRngHi, bool fAllowZero=false);
void SetBuffer(BYTE *pbyToBuf, int Wdt, int Hgt, int Pitch); void SetBuffer(BYTE *pbyToBuf, int Wdt, int Hgt, int Pitch);

View File

@ -44,7 +44,7 @@ bool CPNGFile::DoLoad()
if (png_sig_cmp((unsigned char *) pFilePtr, 0, 8)) return false; if (png_sig_cmp((unsigned char *) pFilePtr, 0, 8)) return false;
// setup png for reading // setup png for reading
fWriteMode=false; fWriteMode=false;
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr);
if (!png_ptr) return false; if (!png_ptr) return false;
info_ptr = png_create_info_struct(png_ptr); info_ptr = png_create_info_struct(png_ptr);
if (!info_ptr) return false; if (!info_ptr) return false;
@ -101,15 +101,15 @@ CPNGFile::CPNGFile()
void CPNGFile::Default() void CPNGFile::Default()
{ {
// zero fields // zero fields
pFile=NULL; pFile=nullptr;
fpFileOwned=false; fpFileOwned=false;
pFilePtr=NULL; pFilePtr=nullptr;
png_ptr=NULL; png_ptr=nullptr;
info_ptr=end_info=NULL; info_ptr=end_info=nullptr;
pImageData=NULL; pImageData=nullptr;
iRowSize=0; iRowSize=0;
iPixSize=0; iPixSize=0;
fp=NULL; fp=nullptr;
} }
CPNGFile::~CPNGFile() CPNGFile::~CPNGFile()
@ -128,26 +128,26 @@ void CPNGFile::ClearPngStructs()
else else
png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
} }
png_ptr=NULL; png_ptr=nullptr;
info_ptr=end_info=NULL; info_ptr=end_info=nullptr;
fWriteMode=false; fWriteMode=false;
} }
void CPNGFile::Clear() void CPNGFile::Clear()
{ {
// free image data // free image data
if (pImageData) { delete [] pImageData; pImageData=NULL; } if (pImageData) { delete [] pImageData; pImageData=nullptr; }
// clear internal png ptrs // clear internal png ptrs
ClearPngStructs(); ClearPngStructs();
// free file ptr if owned // free file ptr if owned
if (pFile && fpFileOwned) delete [] pFile; pFile=NULL; if (pFile && fpFileOwned) delete [] pFile; pFile=nullptr;
// reset fields // reset fields
fpFileOwned=false; fpFileOwned=false;
pFilePtr=NULL; pFilePtr=nullptr;
iRowSize=0; iRowSize=0;
iPixSize=0; iPixSize=0;
// close file if open // close file if open
if (fp) { fclose(fp); fp=NULL; } if (fp) { fclose(fp); fp=nullptr; }
} }
bool CPNGFile::Load(unsigned char *pFile, int iSize) bool CPNGFile::Load(unsigned char *pFile, int iSize)
@ -165,7 +165,7 @@ bool CPNGFile::Load(unsigned char *pFile, int iSize)
return false; return false;
} }
// reset file-field // reset file-field
this->pFile = NULL; iFileSize=0; this->pFile = nullptr; iFileSize=0;
// success // success
return true; return true;
} }
@ -241,7 +241,7 @@ bool CPNGFile::Save(const char *szFilename)
ClearPngStructs(); ClearPngStructs();
// reinit them for writing // reinit them for writing
fWriteMode=true; fWriteMode=true;
png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr);
if (!png_ptr) { Clear(); return false; } if (!png_ptr) { Clear(); return false; }
info_ptr = png_create_info_struct(png_ptr); info_ptr = png_create_info_struct(png_ptr);
if (!info_ptr) { Clear(); return false; } if (!info_ptr) { Clear(); return false; }
@ -280,7 +280,7 @@ bool CPNGFile::Save(const char *szFilename)
// write end struct // write end struct
png_write_end(png_ptr, info_ptr); png_write_end(png_ptr, info_ptr);
// finally, close the file // finally, close the file
fclose(fp); fp = NULL; fclose(fp); fp = nullptr;
// clear png structs // clear png structs
ClearPngStructs(); ClearPngStructs();
// success! // success!

View File

@ -26,12 +26,12 @@
/* C4ChatControl::ChatSheet::NickItem */ /* C4ChatControl::ChatSheet::NickItem */
C4ChatControl::ChatSheet::NickItem::NickItem(class C4Network2IRCUser *pByUser) : pStatusIcon(NULL), pNameLabel(NULL), fFlaggedExisting(false), iStatus(0) C4ChatControl::ChatSheet::NickItem::NickItem(class C4Network2IRCUser *pByUser) : pStatusIcon(nullptr), pNameLabel(nullptr), fFlaggedExisting(false), iStatus(0)
{ {
// create elements - will be positioned when resized // create elements - will be positioned when resized
C4Rect rcDefault(0,0,10,10); C4Rect rcDefault(0,0,10,10);
AddElement(pStatusIcon = new C4GUI::Icon(rcDefault, C4GUI::Ico_None)); AddElement(pStatusIcon = new C4GUI::Icon(rcDefault, C4GUI::Ico_None));
AddElement(pNameLabel = new C4GUI::Label("", rcDefault, ALeft, C4GUI_CaptionFontClr, NULL, false, false, false)); AddElement(pNameLabel = new C4GUI::Label("", rcDefault, ALeft, C4GUI_CaptionFontClr, nullptr, false, false, false));
// set height (pos and width set when added to the list) // set height (pos and width set when added to the list)
CStdFont *pUseFont = &::GraphicsResource.TextFont; CStdFont *pUseFont = &::GraphicsResource.TextFont;
rcBounds.Set(0,0, 100,pUseFont->GetLineHeight()); rcBounds.Set(0,0, 100,pUseFont->GetLineHeight());
@ -87,18 +87,18 @@ int32_t C4ChatControl::ChatSheet::NickItem::SortFunc(const C4GUI::Element *pEl1,
/* C4ChatControl::ChatSheet */ /* C4ChatControl::ChatSheet */
C4ChatControl::ChatSheet::ChatSheet(C4ChatControl *pChatControl, const char *szTitle, const char *szIdent, SheetType eType) C4ChatControl::ChatSheet::ChatSheet(C4ChatControl *pChatControl, const char *szTitle, const char *szIdent, SheetType eType)
: C4GUI::Tabular::Sheet(szTitle, C4Rect(0,0,10,10), C4GUI::Ico_None, true, false), pChatControl(pChatControl), pNickList(NULL), pInputLbl(NULL), iBackBufferIndex(-1), eType(eType), fHasUnread(false) : C4GUI::Tabular::Sheet(szTitle, C4Rect(0,0,10,10), C4GUI::Ico_None, true, false), pChatControl(pChatControl), pNickList(nullptr), pInputLbl(nullptr), iBackBufferIndex(-1), eType(eType), fHasUnread(false)
{ {
if (szIdent) sIdent.Copy(szIdent); if (szIdent) sIdent.Copy(szIdent);
// create elements - positioned later // create elements - positioned later
C4Rect rcDefault(0,0,10,10); C4Rect rcDefault(0,0,10,10);
pChatBox = new C4GUI::TextWindow(rcDefault,0,0,0,100,4096," ",false,0,0,true); pChatBox = new C4GUI::TextWindow(rcDefault,0,0,0,100,4096," ",false,0,0,true);
pChatBox->SetDecoration(false, false, NULL, false); pChatBox->SetDecoration(false, false, nullptr, false);
AddElement(pChatBox); AddElement(pChatBox);
if (eType == CS_Channel) if (eType == CS_Channel)
{ {
pNickList = new C4GUI::ListBox(rcDefault); pNickList = new C4GUI::ListBox(rcDefault);
pNickList->SetDecoration(false, NULL, true, false); pNickList->SetDecoration(false, nullptr, true, false);
pNickList->SetSelectionDblClickFn(new C4GUI::CallbackHandler<C4ChatControl::ChatSheet>(this, &C4ChatControl::ChatSheet::OnNickDblClick)); pNickList->SetSelectionDblClickFn(new C4GUI::CallbackHandler<C4ChatControl::ChatSheet>(this, &C4ChatControl::ChatSheet::OnNickDblClick));
AddElement(pNickList); AddElement(pNickList);
} }
@ -157,7 +157,7 @@ C4GUI::Edit::InputResult C4ChatControl::ChatSheet::OnChatInput(C4GUI::Edit *edt,
if (!szInputText || !*szInputText) if (!szInputText || !*szInputText)
{ {
// do some error sound then // do some error sound then
DoError(NULL); DoError(nullptr);
} }
else else
{ {
@ -194,7 +194,7 @@ void C4ChatControl::ChatSheet::OnNickDblClick(class C4GUI::Element *pEl)
{ {
if (!pEl) return; if (!pEl) return;
NickItem *pNickItem = static_cast<NickItem *>(pEl); NickItem *pNickItem = static_cast<NickItem *>(pEl);
pChatControl->OpenQuery(pNickItem->GetNick(), true, NULL); pChatControl->OpenQuery(pNickItem->GetNick(), true, nullptr);
} }
void C4ChatControl::ChatSheet::AddTextLine(const char *szText, uint32_t dwClr) void C4ChatControl::ChatSheet::AddTextLine(const char *szText, uint32_t dwClr)
@ -296,7 +296,7 @@ void C4ChatControl::ChatSheet::UpdateUsers(C4Network2IRCUser *pUsers)
} }
} }
// sort the rest // sort the rest
pNickList->SortElements(&NickItem::SortFunc, NULL); pNickList->SortElements(&NickItem::SortFunc, nullptr);
} }
void C4ChatControl::ChatSheet::UserClose() void C4ChatControl::ChatSheet::UserClose()
@ -328,13 +328,13 @@ C4ChatControl::ChatSheet::NickItem *C4ChatControl::ChatSheet::GetNickItem(const
if (SEqualNoCase(pNickItem->GetNick(), szByNick)) if (SEqualNoCase(pNickItem->GetNick(), szByNick))
return pNickItem; return pNickItem;
// not found // not found
return NULL; return nullptr;
} }
/* C4ChatControl */ /* C4ChatControl */
C4ChatControl::C4ChatControl(C4Network2IRCClient *pnIRCClient) : C4GUI::Window(), pTitleChangeBC(NULL), pIRCClient(pnIRCClient), fInitialMessagesReceived(false) C4ChatControl::C4ChatControl(C4Network2IRCClient *pnIRCClient) : C4GUI::Window(), pTitleChangeBC(nullptr), pIRCClient(pnIRCClient), fInitialMessagesReceived(false)
{ {
// create elements - positioned later // create elements - positioned later
C4Rect rcDefault(0,0,10,10); C4Rect rcDefault(0,0,10,10);
@ -343,8 +343,8 @@ C4ChatControl::C4ChatControl(C4Network2IRCClient *pnIRCClient) : C4GUI::Window()
pTabMain->SetDrawDecoration(false); pTabMain->SetDrawDecoration(false);
pTabMain->SetSheetMargin(0); pTabMain->SetSheetMargin(0);
AddElement(pTabMain); AddElement(pTabMain);
C4GUI::Tabular::Sheet *pSheetLogin = pTabMain->AddSheet(NULL); C4GUI::Tabular::Sheet *pSheetLogin = pTabMain->AddSheet(nullptr);
C4GUI::Tabular::Sheet *pSheetChats = pTabMain->AddSheet(NULL); C4GUI::Tabular::Sheet *pSheetChats = pTabMain->AddSheet(nullptr);
// login sheet // login sheet
CStdFont *pUseFont = &::GraphicsResource.TextFont; CStdFont *pUseFont = &::GraphicsResource.TextFont;
pSheetLogin->AddElement(pLblLoginNick = new C4GUI::Label(LoadResStr("IDS_CTL_NICK"), rcDefault, ALeft, C4GUI_CaptionFontClr, pUseFont, false, true)); pSheetLogin->AddElement(pLblLoginNick = new C4GUI::Label(LoadResStr("IDS_CTL_NICK"), rcDefault, ALeft, C4GUI_CaptionFontClr, pUseFont, false, true));
@ -426,11 +426,11 @@ void C4ChatControl::OnShown()
C4GUI::Control *C4ChatControl::GetDefaultControl() C4GUI::Control *C4ChatControl::GetDefaultControl()
{ {
// only return a default control if no control is selected to prevent deselection of other controls // only return a default control if no control is selected to prevent deselection of other controls
if (GetDlg()->GetFocus()) return NULL; if (GetDlg()->GetFocus()) return nullptr;
ChatSheet *pActiveSheet = GetActiveChatSheet(); ChatSheet *pActiveSheet = GetActiveChatSheet();
if (pActiveSheet) return pActiveSheet->GetInputEdit(); if (pActiveSheet) return pActiveSheet->GetInputEdit();
if (pBtnLogin->IsVisible()) return pBtnLogin; if (pBtnLogin->IsVisible()) return pBtnLogin;
return NULL; return nullptr;
} }
C4ChatControl::ChatSheet *C4ChatControl::GetActiveChatSheet() C4ChatControl::ChatSheet *C4ChatControl::GetActiveChatSheet()
@ -440,7 +440,7 @@ C4ChatControl::ChatSheet *C4ChatControl::GetActiveChatSheet()
C4GUI::Tabular::Sheet *pSheet = pTabChats->GetActiveSheet(); C4GUI::Tabular::Sheet *pSheet = pTabChats->GetActiveSheet();
if (pSheet) return static_cast<ChatSheet *>(pSheet); if (pSheet) return static_cast<ChatSheet *>(pSheet);
} }
return NULL; return nullptr;
} }
C4ChatControl::ChatSheet *C4ChatControl::GetSheetByIdent(const char *szIdent, C4ChatControl::ChatSheet::SheetType eType) C4ChatControl::ChatSheet *C4ChatControl::GetSheetByIdent(const char *szIdent, C4ChatControl::ChatSheet::SheetType eType)
@ -454,7 +454,7 @@ C4ChatControl::ChatSheet *C4ChatControl::GetSheetByIdent(const char *szIdent, C4
if (eType == pChatSheet->GetSheetType()) if (eType == pChatSheet->GetSheetType())
return pChatSheet; return pChatSheet;
} }
return NULL; return nullptr;
} }
C4ChatControl::ChatSheet *C4ChatControl::GetSheetByTitle(const char *szTitle, C4ChatControl::ChatSheet::SheetType eType) C4ChatControl::ChatSheet *C4ChatControl::GetSheetByTitle(const char *szTitle, C4ChatControl::ChatSheet::SheetType eType)
@ -468,7 +468,7 @@ C4ChatControl::ChatSheet *C4ChatControl::GetSheetByTitle(const char *szTitle, C4
if (eType == pChatSheet->GetSheetType()) if (eType == pChatSheet->GetSheetType())
return pChatSheet; return pChatSheet;
} }
return NULL; return nullptr;
} }
C4ChatControl::ChatSheet *C4ChatControl::GetServerSheet() C4ChatControl::ChatSheet *C4ChatControl::GetServerSheet()
@ -566,7 +566,7 @@ bool C4ChatControl::IsServiceName(const char *szName)
{ {
// return true for some hardcoded list of service names // return true for some hardcoded list of service names
if (!szName) return false; if (!szName) return false;
const char *szServiceNames [] = { "NickServ", "ChanServ", "MemoServ", "HelpServ", "Global", NULL }, *szServiceName; const char *szServiceNames [] = { "NickServ", "ChanServ", "MemoServ", "HelpServ", "Global", nullptr }, *szServiceName;
int32_t i = 0; int32_t i = 0;
while ((szServiceName = szServiceNames[i++])) while ((szServiceName = szServiceNames[i++]))
if (SEqualNoCase(szName, szServiceName)) if (SEqualNoCase(szName, szServiceName))
@ -661,7 +661,7 @@ void C4ChatControl::Update()
} }
else else
{ {
pChatSheet = OpenQuery(pMsg->getTarget(), true, NULL); pChatSheet = OpenQuery(pMsg->getTarget(), true, nullptr);
if (pChatSheet) pChatSheet->SetChatTitle(pMsg->getTarget()); if (pChatSheet) pChatSheet->SetChatTitle(pMsg->getTarget());
} }
} }
@ -794,7 +794,7 @@ void C4ChatControl::ClearChatSheets()
{ {
pTabChats->ClearSheets(); pTabChats->ClearSheets();
// add server sheet // add server sheet
pTabChats->AddCustomSheet(new ChatSheet(this, LoadResStr("IDS_CHAT_SERVER"), NULL, ChatSheet::CS_Server)); pTabChats->AddCustomSheet(new ChatSheet(this, LoadResStr("IDS_CHAT_SERVER"), nullptr, ChatSheet::CS_Server));
} }
bool C4ChatControl::ProcessInput(const char *szInput, ChatSheet *pChatSheet) bool C4ChatControl::ProcessInput(const char *szInput, ChatSheet *pChatSheet)
@ -886,7 +886,7 @@ bool C4ChatControl::ProcessInput(const char *szInput, ChatSheet *pChatSheet)
{ {
StdStrBuf sMsg; StdStrBuf sMsg;
sParam.SplitAtChar(' ', &sMsg); sParam.SplitAtChar(' ', &sMsg);
OpenQuery(sParam.getData(), true, NULL); OpenQuery(sParam.getData(), true, nullptr);
} }
} }
else if (SEqualNoCase(sCommand.getData(), "nick")) else if (SEqualNoCase(sCommand.getData(), "nick"))
@ -933,7 +933,7 @@ void C4ChatControl::UserQueryQuit()
// still connected? Then confirm first // still connected? Then confirm first
if (pIRCClient->IsActive()) if (pIRCClient->IsActive())
{ {
if (!GetScreen()->ShowMessageModal(LoadResStr("IDS_MSG_DISCONNECTFROMSERVER"), LoadResStr("IDS_DLG_CHAT"), C4GUI::MessageDialog::btnOKAbort, C4GUI::Ico_Confirm, NULL)) if (!GetScreen()->ShowMessageModal(LoadResStr("IDS_MSG_DISCONNECTFROMSERVER"), LoadResStr("IDS_DLG_CHAT"), C4GUI::MessageDialog::btnOKAbort, C4GUI::Ico_Confirm, nullptr))
return; return;
} }
// disconnect from server // disconnect from server
@ -945,7 +945,7 @@ void C4ChatControl::UserQueryQuit()
/* C4ChatDlg */ /* C4ChatDlg */
C4ChatDlg *C4ChatDlg::pInstance = NULL; C4ChatDlg *C4ChatDlg::pInstance = nullptr;
C4ChatDlg::C4ChatDlg() : C4GUI::Dialog(100, 100, "IRC", false) C4ChatDlg::C4ChatDlg() : C4GUI::Dialog(100, 100, "IRC", false)
{ {
@ -1026,7 +1026,7 @@ bool C4ChatDlg::DoPlacement(C4GUI::Screen *pOnScreen, const C4Rect &rPreferredDl
void C4ChatDlg::OnClosed(bool fOK) void C4ChatDlg::OnClosed(bool fOK)
{ {
// callback when dlg got closed // callback when dlg got closed
pInstance = NULL; pInstance = nullptr;
typedef C4GUI::Dialog ParentClass; typedef C4GUI::Dialog ParentClass;
ParentClass::OnClosed(fOK); ParentClass::OnClosed(fOK);
} }

View File

@ -99,7 +99,7 @@ private:
private: private:
NickItem *GetNickItem(const char *szByNick); NickItem *GetNickItem(const char *szByNick);
NickItem *GetFirstNickItem() { return pNickList ? static_cast<NickItem *>(pNickList->GetFirst()) : NULL; } NickItem *GetFirstNickItem() { return pNickList ? static_cast<NickItem *>(pNickList->GetFirst()) : nullptr; }
NickItem *GetNextNickItem(NickItem *pPrev) { return static_cast<NickItem *>(pPrev->GetNext()); } NickItem *GetNextNickItem(NickItem *pPrev) { return static_cast<NickItem *>(pPrev->GetNext()); }
}; };

View File

@ -23,7 +23,7 @@
C4Network2HTTPClient HTTPClient; C4Network2HTTPClient HTTPClient;
C4DownloadDlg::C4DownloadDlg(const char *szDLType) : C4GUI::Dialog(C4GUI_ProgressDlgWdt, 100, FormatString(LoadResStr("IDS_CTL_DL_TITLE"), szDLType).getData(), false), szError(NULL) C4DownloadDlg::C4DownloadDlg(const char *szDLType) : C4GUI::Dialog(C4GUI_ProgressDlgWdt, 100, FormatString(LoadResStr("IDS_CTL_DL_TITLE"), szDLType).getData(), false), szError(nullptr)
{ {
#ifdef HAVE_WINSOCK #ifdef HAVE_WINSOCK
fWinSock = AcquireWinSock(); fWinSock = AcquireWinSock();
@ -31,7 +31,7 @@ C4DownloadDlg::C4DownloadDlg(const char *szDLType) : C4GUI::Dialog(C4GUI_Progres
// add all elements - will be reposisioned when text is displayed // add all elements - will be reposisioned when text is displayed
AddElement(pIcon = new C4GUI::Icon(C4Rect(), C4GUI::Ico_NetWait)); AddElement(pIcon = new C4GUI::Icon(C4Rect(), C4GUI::Ico_NetWait));
AddElement(pStatusLabel = new C4GUI::Label("", C4Rect(), ACenter, C4GUI_MessageFontClr, &::GraphicsResource.TextFont, false)); AddElement(pStatusLabel = new C4GUI::Label("", C4Rect(), ACenter, C4GUI_MessageFontClr, &::GraphicsResource.TextFont, false));
pProgressBar = NULL; // created when necessary pProgressBar = nullptr; // created when necessary
AddElement(pCancelBtn = new C4GUI::CancelButton(C4Rect())); AddElement(pCancelBtn = new C4GUI::CancelButton(C4Rect()));
} }
@ -70,7 +70,7 @@ void C4DownloadDlg::SetStatus(const char *szNewText, int32_t iProgressPercent)
else else
{ {
// no progress desired // no progress desired
if (pProgressBar) { delete pProgressBar; pProgressBar = NULL; } if (pProgressBar) { delete pProgressBar; pProgressBar = nullptr; }
} }
// place button // place button
caMain.ExpandLeft(C4GUI_DefDlgIndent*2 + C4GUI_IconWdt); caMain.ExpandLeft(C4GUI_DefDlgIndent*2 + C4GUI_IconWdt);
@ -147,14 +147,14 @@ const char *C4DownloadDlg::GetError()
bool C4DownloadDlg::ShowModal(C4GUI::Screen *pScreen, const char *szURL, const char *szSaveAsFilename) bool C4DownloadDlg::ShowModal(C4GUI::Screen *pScreen, const char *szURL, const char *szSaveAsFilename)
{ {
// reset error // reset error
szError = NULL; szError = nullptr;
// initial text // initial text
if (!HTTPClient.Init()) return false; if (!HTTPClient.Init()) return false;
HTTPClient.SetServer(szURL); HTTPClient.SetServer(szURL);
// show dlg // show dlg
if (!Show(pScreen, true)) return false; if (!Show(pScreen, true)) return false;
// start query // start query
if (!HTTPClient.Query(NULL, true)) return false; if (!HTTPClient.Query(nullptr, true)) return false;
// first time status update // first time status update
OnIdle(); OnIdle();
// cycle until query is finished or aborted // cycle until query is finished or aborted
@ -186,7 +186,7 @@ bool C4DownloadDlg::DownloadFile(const char *szDLType, C4GUI::Screen *pScreen, c
if (SSearch(szError, "404") && szNotFoundMessage) if (SSearch(szError, "404") && szNotFoundMessage)
{ sError.Append("|"); sError.Append(szNotFoundMessage); } { sError.Append("|"); sError.Append(szNotFoundMessage); }
// display message // display message
pScreen->ShowMessageModal(sError.getData(), FormatString(LoadResStr("IDS_CTL_DL_TITLE"), szDLType).getData(), C4GUI::MessageDialog::btnOK, C4GUI::Ico_Error, NULL); pScreen->ShowMessageModal(sError.getData(), FormatString(LoadResStr("IDS_CTL_DL_TITLE"), szDLType).getData(), C4GUI::MessageDialog::btnOK, C4GUI::Ico_Error, nullptr);
delete pDlg; delete pDlg;
return false; return false;
} }

View File

@ -59,7 +59,7 @@ protected:
public: public:
// download file showing download dialog; display error if download failed // download file showing download dialog; display error if download failed
static bool DownloadFile(const char *szDLType, C4GUI::Screen *pScreen, const char *szURL, const char *szSaveAsFilename, const char *szNotFoundMessage = NULL); static bool DownloadFile(const char *szDLType, C4GUI::Screen *pScreen, const char *szURL, const char *szSaveAsFilename, const char *szNotFoundMessage = nullptr);
}; };

View File

@ -55,7 +55,7 @@ C4FileSelDlg::ListItem::~ListItem()
// C4FileSelDlg::DefaultListItem // C4FileSelDlg::DefaultListItem
C4FileSelDlg::DefaultListItem::DefaultListItem(const char *szFilename, bool fTruncateExtension, bool fCheckbox, bool fGrayed, C4GUI::Icons eIcon) C4FileSelDlg::DefaultListItem::DefaultListItem(const char *szFilename, bool fTruncateExtension, bool fCheckbox, bool fGrayed, C4GUI::Icons eIcon)
: C4FileSelDlg::ListItem(szFilename), pLbl(NULL), pCheck(NULL), pKeyCheck(NULL), fGrayed(fGrayed) : C4FileSelDlg::ListItem(szFilename), pLbl(nullptr), pCheck(nullptr), pKeyCheck(nullptr), fGrayed(fGrayed)
{ {
StdStrBuf sLabel; if (szFilename) sLabel.Ref(::GetFilename(szFilename)); else sLabel.Ref(LoadResStr("IDS_CTL_NONE")); StdStrBuf sLabel; if (szFilename) sLabel.Ref(::GetFilename(szFilename)); else sLabel.Ref(LoadResStr("IDS_CTL_NONE"));
if (szFilename && fTruncateExtension) if (szFilename && fTruncateExtension)
@ -71,7 +71,7 @@ C4FileSelDlg::DefaultListItem::DefaultListItem(const char *szFilename, bool fTru
int32_t iHeight = caMain.GetInnerHeight(); int32_t iHeight = caMain.GetInnerHeight();
if (fCheckbox) if (fCheckbox)
{ {
pCheck = new C4GUI::CheckBox(caMain.GetFromLeft(iHeight), NULL, false); pCheck = new C4GUI::CheckBox(caMain.GetFromLeft(iHeight), nullptr, false);
if (fGrayed) pCheck->SetEnabled(false); if (fGrayed) pCheck->SetEnabled(false);
AddElement(pCheck); AddElement(pCheck);
pKeyCheck = new C4KeyBinding(C4KeyCodeEx(K_SPACE), "FileSelToggleFileActive", KEYSCOPE_Gui, pKeyCheck = new C4KeyBinding(C4KeyCodeEx(K_SPACE), "FileSelToggleFileActive", KEYSCOPE_Gui,
@ -127,7 +127,7 @@ bool C4FileSelDlg::DefaultListItem::UserToggleCheck()
C4FileSelDlg::C4FileSelDlg(const char *szRootPath, const char *szTitle, C4FileSel_BaseCB *pSelCallback, bool fInitElements) C4FileSelDlg::C4FileSelDlg(const char *szRootPath, const char *szTitle, C4FileSel_BaseCB *pSelCallback, bool fInitElements)
: C4GUI::Dialog(Clamp(C4GUI::GetScreenWdt()*2/3+10, 300,600), Clamp(C4GUI::GetScreenHgt()*2/3+10, 220,500), szTitle, false), : C4GUI::Dialog(Clamp(C4GUI::GetScreenWdt()*2/3+10, 300,600), Clamp(C4GUI::GetScreenHgt()*2/3+10, 220,500), szTitle, false),
pLocationComboBox(NULL), pFileListBox(NULL), pSelectionInfoBox(NULL), btnOK(NULL), pLocations(NULL), iLocationCount(0), pSelection(NULL), pSelCallback(pSelCallback) pLocationComboBox(nullptr), pFileListBox(nullptr), pSelectionInfoBox(nullptr), btnOK(nullptr), pLocations(nullptr), iLocationCount(0), pSelection(nullptr), pSelCallback(pSelCallback)
{ {
sTitle.Copy(szTitle); sTitle.Copy(szTitle);
// key bindings // key bindings
@ -169,7 +169,7 @@ void C4FileSelDlg::InitElements()
{ {
caUpperArea.ExpandLeft(C4GUI_DefDlgIndent); caUpperArea.ExpandLeft(C4GUI_DefDlgIndent);
pSelectionInfoBox = new C4GUI::TextWindow(caUpperArea.GetAll()); pSelectionInfoBox = new C4GUI::TextWindow(caUpperArea.GetAll());
pSelectionInfoBox->SetDecoration(true, true, NULL, true); pSelectionInfoBox->SetDecoration(true, true, nullptr, true);
} }
// create button area // create button area
C4GUI::Button *btnAbort = new C4GUI::CancelButton(caButtonArea.GetFromRight(C4GUI_DefButton2Wdt)); C4GUI::Button *btnAbort = new C4GUI::CancelButton(caButtonArea.GetFromRight(C4GUI_DefButton2Wdt));
@ -260,7 +260,7 @@ C4FileSelDlg::ListItem *C4FileSelDlg::CreateListItem(const char *szFilename)
if (szFilename) if (szFilename)
return new DefaultListItem(szFilename, !!GetFileMask(), IsMultiSelection(), IsItemGrayed(szFilename), GetFileItemIcon()); return new DefaultListItem(szFilename, !!GetFileMask(), IsMultiSelection(), IsItemGrayed(szFilename), GetFileItemIcon());
else else
return new DefaultListItem(NULL, false, IsMultiSelection(), false, GetFileItemIcon()); return new DefaultListItem(nullptr, false, IsMultiSelection(), false, GetFileItemIcon());
} }
void C4FileSelDlg::UpdateFileList() void C4FileSelDlg::UpdateFileList()
@ -278,7 +278,7 @@ void C4FileSelDlg::UpdateFileList()
// none-item? // none-item?
if (HasNoneItem()) if (HasNoneItem())
{ {
pFileListBox->AddElement(CreateListItem(NULL)); pFileListBox->AddElement(CreateListItem(nullptr));
} }
// list now done // list now done
EndFileListUpdate(); EndFileListUpdate();
@ -427,7 +427,7 @@ bool C4DefinitionSelDlg::IsItemGrayed(const char *szFilename) const
bool C4DefinitionSelDlg::SelectDefinitions(C4GUI::Screen *pOnScreen, StdStrBuf *pSelection) bool C4DefinitionSelDlg::SelectDefinitions(C4GUI::Screen *pOnScreen, StdStrBuf *pSelection)
{ {
// let the user select definitions by showing a modal selection dialog // let the user select definitions by showing a modal selection dialog
C4DefinitionSelDlg *pDlg = new C4DefinitionSelDlg(NULL, pSelection->getData()); C4DefinitionSelDlg *pDlg = new C4DefinitionSelDlg(nullptr, pSelection->getData());
bool fResult; bool fResult;
if ((fResult = pOnScreen->ShowModalDlg(pDlg, false))) if ((fResult = pOnScreen->ShowModalDlg(pDlg, false)))
{ {
@ -572,9 +572,9 @@ C4PortraitSelDlg::C4PortraitSelDlg(C4FileSel_BaseCB *pSelCallback)
AddCheckedLocation(strLocation.getData(), path); AddCheckedLocation(strLocation.getData(), path);
#ifdef _WIN32 #ifdef _WIN32
wchar_t wpath[MAX_PATH+1]; wchar_t wpath[MAX_PATH+1];
if (SHGetSpecialFolderPathW(NULL, wpath, CSIDL_PERSONAL, false)) AddCheckedLocation(LoadResStr("IDS_TEXT_MYDOCUMENTS"), StdStrBuf(wpath).getData()); if (SHGetSpecialFolderPathW(nullptr, wpath, CSIDL_PERSONAL, false)) AddCheckedLocation(LoadResStr("IDS_TEXT_MYDOCUMENTS"), StdStrBuf(wpath).getData());
if (SHGetSpecialFolderPathW(NULL, wpath, CSIDL_MYPICTURES, false)) AddCheckedLocation(LoadResStr("IDS_TEXT_MYPICTURES"), StdStrBuf(wpath).getData()); if (SHGetSpecialFolderPathW(nullptr, wpath, CSIDL_MYPICTURES, false)) AddCheckedLocation(LoadResStr("IDS_TEXT_MYPICTURES"), StdStrBuf(wpath).getData());
if (SHGetSpecialFolderPathW(NULL, wpath, CSIDL_DESKTOPDIRECTORY, false)) AddCheckedLocation(LoadResStr("IDS_TEXT_DESKTOP"), StdStrBuf(wpath).getData()); if (SHGetSpecialFolderPathW(nullptr, wpath, CSIDL_DESKTOPDIRECTORY, false)) AddCheckedLocation(LoadResStr("IDS_TEXT_DESKTOP"), StdStrBuf(wpath).getData());
#endif #endif
#ifdef __APPLE__ #ifdef __APPLE__
AddCheckedLocation(LoadResStr("IDS_TEXT_HOME"), getenv("HOME")); AddCheckedLocation(LoadResStr("IDS_TEXT_HOME"), getenv("HOME"));
@ -634,11 +634,11 @@ void C4PortraitSelDlg::OnIdle()
bool C4PortraitSelDlg::SelectPortrait(C4GUI::Screen *pOnScreen, StdStrBuf *pSelection) bool C4PortraitSelDlg::SelectPortrait(C4GUI::Screen *pOnScreen, StdStrBuf *pSelection)
{ {
// let the user select a portrait by showing a modal selection dialog // let the user select a portrait by showing a modal selection dialog
C4PortraitSelDlg *pDlg = new C4PortraitSelDlg(NULL); C4PortraitSelDlg *pDlg = new C4PortraitSelDlg(nullptr);
bool fResult; bool fResult;
if ((fResult = pOnScreen->ShowModalDlg(pDlg, false))) if ((fResult = pOnScreen->ShowModalDlg(pDlg, false)))
{ {
pSelection->Take(pDlg->GetSelection(NULL, false)); pSelection->Take(pDlg->GetSelection(nullptr, false));
} }
delete pDlg; delete pDlg;
return fResult; return fResult;

View File

@ -128,7 +128,7 @@ protected:
virtual void UserClose(bool fOK); // allow OK only if something is sth is selected virtual void UserClose(bool fOK); // allow OK only if something is sth is selected
virtual void OnClosed(bool fOK); // callback when dlg got closed virtual void OnClosed(bool fOK); // callback when dlg got closed
virtual const char *GetFileMask() const { return NULL; } virtual const char *GetFileMask() const { return nullptr; }
virtual bool IsMultiSelection() const { return false; } // if true, files are checked/unchecked using checkboxes virtual bool IsMultiSelection() const { return false; } // if true, files are checked/unchecked using checkboxes
virtual bool IsItemGrayed(const char *szFilename) const { return false; } virtual bool IsItemGrayed(const char *szFilename) const { return false; }
virtual void UpdateSelection(); virtual void UpdateSelection();

View File

@ -51,7 +51,7 @@ bool C4Folder::Load(C4Group &hGroup)
{ {
char *pSource; char *pSource;
// Load // Load
if (!hGroup.LoadEntry(C4CFN_FolderCore, &pSource, NULL, 1)) return false; if (!hGroup.LoadEntry(C4CFN_FolderCore, &pSource, nullptr, 1)) return false;
// Compile // Compile
if (!Compile(pSource)) { delete [] pSource; return false; } if (!Compile(pSource)) { delete [] pSource; return false; }
delete [] pSource; delete [] pSource;

View File

@ -29,7 +29,7 @@ bool C4AbortGameDialog::is_shown = false;
C4AbortGameDialog::C4AbortGameDialog() C4AbortGameDialog::C4AbortGameDialog()
: C4GUI::ConfirmationDialog(LoadResStr("IDS_HOLD_ABORT"), : C4GUI::ConfirmationDialog(LoadResStr("IDS_HOLD_ABORT"),
LoadResStr("IDS_DLG_ABORT"), LoadResStr("IDS_DLG_ABORT"),
NULL, nullptr,
MessageDialog::btnYesNo, MessageDialog::btnYesNo,
true, true,
C4GUI::Ico_Exit), C4GUI::Ico_Exit),

View File

@ -68,7 +68,7 @@ namespace C4GameLobby
SetBounds(rcBounds); SetBounds(rcBounds);
C4GUI::ComponentAligner caMain(GetClientRect(), 0,0, true); C4GUI::ComponentAligner caMain(GetClientRect(), 0,0, true);
AddElement(pDescBox = new C4GUI::TextWindow(caMain.GetAll(), 0, 0, 0, 100, 4096, "", true)); AddElement(pDescBox = new C4GUI::TextWindow(caMain.GetAll(), 0, 0, 0, 100, 4096, "", true));
pDescBox->SetDecoration(false, false, NULL, true); pDescBox->SetDecoration(false, false, nullptr, true);
// initial update to set current data // initial update to set current data
if (fActive) Activate(); if (fActive) Activate();
} }
@ -132,8 +132,8 @@ namespace C4GameLobby
(const char *) LoadResStr("IDS_DLG_LOBBY"): (const char *) LoadResStr("IDS_DLG_LOBBY"):
FormatString("%s - %s", Game.ScenarioTitle.getData(), LoadResStr("IDS_DLG_LOBBY")).getData(), FormatString("%s - %s", Game.ScenarioTitle.getData(), LoadResStr("IDS_DLG_LOBBY")).getData(),
Game.ScenarioTitle.getData()), Game.ScenarioTitle.getData()),
pPlayerList(NULL), pResList(NULL), pChatBox(NULL), pRightTabLbl(NULL), pRightTab(NULL), pPlayerList(nullptr), pResList(nullptr), pChatBox(nullptr), pRightTabLbl(nullptr), pRightTab(nullptr),
pEdt(NULL), btnRun(NULL), btnPlayers(NULL), btnResources(NULL), btnTeams(NULL), btnChat(NULL) pEdt(nullptr), btnRun(nullptr), btnPlayers(nullptr), btnResources(nullptr), btnTeams(nullptr), btnChat(nullptr)
{ {
// key bindings // key bindings
pKeyHistoryUp = new C4KeyBinding(C4KeyCodeEx(K_UP ), "LobbyChatHistoryUp" , KEYSCOPE_Gui, new C4GUI::DlgKeyCBEx<MainDlg, bool>(*this, true , &MainDlg::KeyHistoryUpDown), C4CustomKey::PRIO_CtrlOverride); pKeyHistoryUp = new C4KeyBinding(C4KeyCodeEx(K_UP ), "LobbyChatHistoryUp" , KEYSCOPE_Gui, new C4GUI::DlgKeyCBEx<MainDlg, bool>(*this, true , &MainDlg::KeyHistoryUpDown), C4CustomKey::PRIO_CtrlOverride);
@ -192,7 +192,7 @@ namespace C4GameLobby
if (fHost) if (fHost)
{ {
btnRun = new C4GUI::CallbackButton<MainDlg>(LoadResStr("IDS_DLG_GAMEGO"), caBottom.GetFromRight(100), &MainDlg::OnRunBtn); btnRun = new C4GUI::CallbackButton<MainDlg>(LoadResStr("IDS_DLG_GAMEGO"), caBottom.GetFromRight(100), &MainDlg::OnRunBtn);
checkReady = NULL; checkReady = nullptr;
} }
else else
{ {
@ -311,7 +311,7 @@ namespace C4GameLobby
// changing away from countdown? // changing away from countdown?
if (eCountdownState == CDS_Countdown) if (eCountdownState == CDS_Countdown)
{ {
StopSoundEffect("Structures::Elevator::Moving", NULL); StopSoundEffect("Structures::Elevator::Moving", nullptr);
if (eToState != CDS_Start) StartSoundEffect("Liquids::Pshshsh"); if (eToState != CDS_Start) StartSoundEffect("Liquids::Pshshsh");
} }
// change to game start? // change to game start?

View File

@ -115,15 +115,15 @@ namespace C4GameLobby
void OnSec1Timer(); // timer proc; update pings void OnSec1Timer(); // timer proc; update pings
C4GUI::ContextMenu *OnRightTabContext(C4GUI::Element *pLabel, int32_t iX, int32_t iY); // open context menu C4GUI::ContextMenu *OnRightTabContext(C4GUI::Element *pLabel, int32_t iX, int32_t iY); // open context menu
void OnCtxTabPlayers(C4GUI::Element *pListItem) { OnTabPlayers(NULL); } void OnCtxTabPlayers(C4GUI::Element *pListItem) { OnTabPlayers(nullptr); }
void OnTabPlayers(C4GUI::Control *btn); void OnTabPlayers(C4GUI::Control *btn);
void OnCtxTabTeams(C4GUI::Element *pListItem) { OnTabTeams(NULL); } void OnCtxTabTeams(C4GUI::Element *pListItem) { OnTabTeams(nullptr); }
void OnTabTeams(C4GUI::Control *btn); void OnTabTeams(C4GUI::Control *btn);
void OnCtxTabRes(C4GUI::Element *pListItem) { OnTabRes(NULL); } void OnCtxTabRes(C4GUI::Element *pListItem) { OnTabRes(nullptr); }
void OnTabRes(C4GUI::Control *btn); void OnTabRes(C4GUI::Control *btn);
void OnCtxTabOptions(C4GUI::Element *pListItem) { OnTabOptions(NULL); } void OnCtxTabOptions(C4GUI::Element *pListItem) { OnTabOptions(nullptr); }
void OnTabOptions(C4GUI::Control *btn); void OnTabOptions(C4GUI::Control *btn);
void OnCtxTabScenario(C4GUI::Element *pListItem) { OnTabScenario(NULL); } void OnCtxTabScenario(C4GUI::Element *pListItem) { OnTabScenario(nullptr); }
void OnTabScenario(C4GUI::Control *btn); void OnTabScenario(C4GUI::Control *btn);
void UpdateRightTab(); // update label and tooltips for sheet change void UpdateRightTab(); // update label and tooltips for sheet change
void OnBtnChat(C4GUI::Control *btn); void OnBtnChat(C4GUI::Control *btn);

View File

@ -29,7 +29,7 @@
const int32_t ObjectMsgDelayFactor = 2, GlobalMsgDelayFactor = 3; // frames per char message display time const int32_t ObjectMsgDelayFactor = 2, GlobalMsgDelayFactor = 3; // frames per char message display time
C4GameMessage::C4GameMessage() : pFrameDeco(NULL) C4GameMessage::C4GameMessage() : pFrameDeco(nullptr)
{ {
} }
@ -42,7 +42,7 @@ C4GameMessage::~C4GameMessage()
void C4GameMessage::Init(int32_t iType, const StdStrBuf & sText, C4Object *pTarget, int32_t iPlayer, int32_t iX, int32_t iY, uint32_t dwClr, C4ID idDecoID, C4PropList *pSrc, uint32_t dwFlags, int width) void C4GameMessage::Init(int32_t iType, const StdStrBuf & sText, C4Object *pTarget, int32_t iPlayer, int32_t iX, int32_t iY, uint32_t dwClr, C4ID idDecoID, C4PropList *pSrc, uint32_t dwFlags, int width)
{ {
// safety! // safety!
if (pTarget && !pTarget->Status) pTarget = NULL; if (pTarget && !pTarget->Status) pTarget = nullptr;
// Set data // Set data
Text.Copy(sText); Text.Copy(sText);
Target=pTarget; Target=pTarget;
@ -53,7 +53,7 @@ void C4GameMessage::Init(int32_t iType, const StdStrBuf & sText, C4Object *pTarg
Delay=std::max<int32_t>(C4GM_MinDelay, Text.getLength() * (Target ? ObjectMsgDelayFactor : GlobalMsgDelayFactor)); Delay=std::max<int32_t>(C4GM_MinDelay, Text.getLength() * (Target ? ObjectMsgDelayFactor : GlobalMsgDelayFactor));
DecoID=idDecoID; DecoID=idDecoID;
this->dwFlags=dwFlags; this->dwFlags=dwFlags;
PictureDef=NULL; PictureDef=nullptr;
PictureDefVal.Set0(); PictureDefVal.Set0();
if (pSrc) if (pSrc)
{ {
@ -84,14 +84,14 @@ void C4GameMessage::Init(int32_t iType, const StdStrBuf & sText, C4Object *pTarg
Text.Shrink(1); Text.Shrink(1);
} }
// frame decoration // frame decoration
delete pFrameDeco; pFrameDeco = NULL; delete pFrameDeco; pFrameDeco = nullptr;
if (DecoID) if (DecoID)
{ {
pFrameDeco = new C4GUI::FrameDecoration(); pFrameDeco = new C4GUI::FrameDecoration();
if (!pFrameDeco->SetByDef(DecoID)) if (!pFrameDeco->SetByDef(DecoID))
{ {
delete pFrameDeco; delete pFrameDeco;
pFrameDeco = NULL; pFrameDeco = nullptr;
} }
} }
} }
@ -306,7 +306,7 @@ void C4GameMessage::UpdateDef(C4ID idUpdDef)
if (!pFrameDeco->UpdateGfx()) if (!pFrameDeco->UpdateGfx())
{ {
delete pFrameDeco; delete pFrameDeco;
pFrameDeco = NULL; pFrameDeco = nullptr;
} }
} }
} }
@ -323,12 +323,12 @@ C4GameMessageList::~C4GameMessageList()
void C4GameMessageList::Default() void C4GameMessageList::Default()
{ {
First=NULL; First=nullptr;
} }
void C4GameMessageList::ClearPointers(C4Object *pObj) void C4GameMessageList::ClearPointers(C4Object *pObj)
{ {
C4GameMessage *cmsg,*next,*prev=NULL; C4GameMessage *cmsg,*next,*prev=nullptr;
for (cmsg=First; cmsg; cmsg=next) for (cmsg=First; cmsg; cmsg=next)
{ {
next=cmsg->Next; next=cmsg->Next;
@ -347,12 +347,12 @@ void C4GameMessageList::Clear()
next=cmsg->Next; next=cmsg->Next;
delete cmsg; delete cmsg;
} }
First=NULL; First=nullptr;
} }
void C4GameMessageList::Execute() void C4GameMessageList::Execute()
{ {
C4GameMessage *cmsg,*next,*prev=NULL; C4GameMessage *cmsg,*next,*prev=nullptr;
for (cmsg=First; cmsg; cmsg=next) for (cmsg=First; cmsg; cmsg=next)
{ {
next=cmsg->Next; next=cmsg->Next;
@ -396,7 +396,7 @@ bool C4GameMessageList::New(int32_t iType, const StdStrBuf & sText, C4Object *pT
bool C4GameMessageList::Append(int32_t iType, const char *szText, C4Object *pTarget, int32_t iPlayer, int32_t iX, int32_t iY, uint32_t bCol, bool fNoDuplicates) bool C4GameMessageList::Append(int32_t iType, const char *szText, C4Object *pTarget, int32_t iPlayer, int32_t iX, int32_t iY, uint32_t bCol, bool fNoDuplicates)
{ {
C4GameMessage *cmsg = NULL; C4GameMessage *cmsg = nullptr;
if (iType == C4GM_Target) if (iType == C4GM_Target)
{ {
for (cmsg=::Messages.First; cmsg; cmsg=cmsg->Next) for (cmsg=::Messages.First; cmsg; cmsg=cmsg->Next)
@ -422,7 +422,7 @@ bool C4GameMessageList::Append(int32_t iType, const char *szText, C4Object *pTar
void C4GameMessageList::ClearPlayers(int32_t iPlayer, int32_t dwPositioningFlags) void C4GameMessageList::ClearPlayers(int32_t iPlayer, int32_t dwPositioningFlags)
{ {
C4GameMessage *cmsg,*next,*prev=NULL; C4GameMessage *cmsg,*next,*prev=nullptr;
for (cmsg=First; cmsg; cmsg=next) for (cmsg=First; cmsg; cmsg=next)
{ {
next=cmsg->Next; next=cmsg->Next;

View File

@ -94,8 +94,8 @@ public:
void ClearPlayers(int32_t iPlayer, int32_t dwPositioningFlags); void ClearPlayers(int32_t iPlayer, int32_t dwPositioningFlags);
void ClearPointers(C4Object *pObj); void ClearPointers(C4Object *pObj);
void UpdateDef(C4ID idUpdDef); // called after reloaddef void UpdateDef(C4ID idUpdDef); // called after reloaddef
bool New(int32_t iType, const StdStrBuf & Text, C4Object *pTarget, int32_t iPlayer, int32_t iX = -1, int32_t iY = -1, uint32_t dwClr = 0xffFFFFFF, C4ID idDecoID=C4ID::None, C4PropList *pSrc=NULL, uint32_t dwFlags=0u, int32_t width=0); bool New(int32_t iType, const StdStrBuf & Text, C4Object *pTarget, int32_t iPlayer, int32_t iX = -1, int32_t iY = -1, uint32_t dwClr = 0xffFFFFFF, C4ID idDecoID=C4ID::None, C4PropList *pSrc=nullptr, uint32_t dwFlags=0u, int32_t width=0);
bool New(int32_t iType, const char *szText, C4Object *pTarget, int32_t iPlayer, int32_t iX, int32_t iY, uint32_t dwClr, C4ID idDecoID=C4ID::None, C4PropList *pSrc=NULL, uint32_t dwFlags=0u, int32_t width=0); bool New(int32_t iType, const char *szText, C4Object *pTarget, int32_t iPlayer, int32_t iX, int32_t iY, uint32_t dwClr, C4ID idDecoID=C4ID::None, C4PropList *pSrc=nullptr, uint32_t dwFlags=0u, int32_t width=0);
bool Append(int32_t iType, const char *szText, C4Object *pTarget, int32_t iPlayer, int32_t iX, int32_t iY, uint32_t bCol, bool fNoDuplicates = false); bool Append(int32_t iType, const char *szText, C4Object *pTarget, int32_t iPlayer, int32_t iX, int32_t iY, uint32_t bCol, bool fNoDuplicates = false);
}; };

View File

@ -28,7 +28,7 @@
// ----------- C4GameOptionsList::Option ---------------------------------------------------------------- // ----------- C4GameOptionsList::Option ----------------------------------------------------------------
C4GameOptionsList::Option::Option(C4GameOptionsList *pForDlg) : C4GameOptionsList::Option::Option(C4GameOptionsList *pForDlg) :
BaseClass(C4Rect(0, 0, 0, 0)), pForDlg(pForDlg), pPrimarySubcomponent(NULL) BaseClass(C4Rect(0, 0, 0, 0)), pForDlg(pForDlg), pPrimarySubcomponent(nullptr)
{} {}
void C4GameOptionsList::Option::InitOption(C4GameOptionsList *pForDlg) void C4GameOptionsList::Option::InitOption(C4GameOptionsList *pForDlg)

View File

@ -162,7 +162,7 @@ public:
GOLS_Runtime GOLS_Runtime
}; };
C4GameOptionsList(const C4Rect &rcBounds, bool fActive, C4GameOptionsListSource source, class C4ScenarioParameterDefs *param_defs=NULL, class C4ScenarioParameters *params=NULL); C4GameOptionsList(const C4Rect &rcBounds, bool fActive, C4GameOptionsListSource source, class C4ScenarioParameterDefs *param_defs=nullptr, class C4ScenarioParameters *params=nullptr);
~C4GameOptionsList() { Deactivate(); } ~C4GameOptionsList() { Deactivate(); }
private: private:
@ -178,7 +178,7 @@ public:
void Update(); void Update();
void OnSec1Timer() { Update(); } void OnSec1Timer() { Update(); }
// update to new parameter set. recreates option fields. set parameters to NULL for no options // update to new parameter set. recreates option fields. set parameters to nullptr for no options
void SetParameters(C4ScenarioParameterDefs *param_defs, C4ScenarioParameters *params); void SetParameters(C4ScenarioParameterDefs *param_defs, C4ScenarioParameters *params);
// activate/deactivate periodic updates // activate/deactivate periodic updates

View File

@ -123,7 +123,7 @@ bool C4GameOverDlg::is_shown = false;
C4GameOverDlg::C4GameOverDlg() : C4GUI::Dialog( (C4GUI::GetScreenWdt() < 800) ? (C4GUI::GetScreenWdt()-10) : std::min<int32_t>(C4GUI::GetScreenWdt()-150, 800), C4GameOverDlg::C4GameOverDlg() : C4GUI::Dialog( (C4GUI::GetScreenWdt() < 800) ? (C4GUI::GetScreenWdt()-10) : std::min<int32_t>(C4GUI::GetScreenWdt()-150, 800),
(C4GUI::GetScreenHgt() < 600) ? (C4GUI::GetScreenHgt()-10) : std::min<int32_t>(C4GUI::GetScreenHgt()-150, 600), (C4GUI::GetScreenHgt() < 600) ? (C4GUI::GetScreenHgt()-10) : std::min<int32_t>(C4GUI::GetScreenHgt()-150, 600),
LoadResStr("IDS_TEXT_EVALUATION"), LoadResStr("IDS_TEXT_EVALUATION"),
false), pNetResultLabel(NULL), fIsNetDone(false), fHasNextMissionButton(false) false), pNetResultLabel(nullptr), fIsNetDone(false), fHasNextMissionButton(false)
{ {
is_shown = true; // assume dlg will be shown, soon is_shown = true; // assume dlg will be shown, soon
UpdateOwnPos(); UpdateOwnPos();
@ -153,14 +153,14 @@ C4GameOverDlg::C4GameOverDlg() : C4GUI::Dialog( (C4GUI::GetScreenWdt() < 800) ?
// league/network result, present or pending // league/network result, present or pending
fIsNetDone = false; fIsNetDone = false;
bool fHasNetResult = Game.RoundResults.HasNetResult(); bool fHasNetResult = Game.RoundResults.HasNetResult();
const char *szNetResult = NULL; const char *szNetResult = nullptr;
if (Game.Parameters.isLeague() || fHasNetResult) if (Game.Parameters.isLeague() || fHasNetResult)
{ {
if (fHasNetResult) if (fHasNetResult)
szNetResult = Game.RoundResults.GetNetResultString(); szNetResult = Game.RoundResults.GetNetResultString();
else else
szNetResult = LoadResStr("IDS_TEXT_LEAGUEWAITINGFOREVALUATIO"); szNetResult = LoadResStr("IDS_TEXT_LEAGUEWAITINGFOREVALUATIO");
pNetResultLabel = new C4GUI::Label(szNetResult, caMain.GetFromTop(::GraphicsResource.TextFont.GetLineHeight()*2, iMainTextWidth), ACenter, C4GUI_Caption2FontClr, NULL, false, false, true); pNetResultLabel = new C4GUI::Label(szNetResult, caMain.GetFromTop(::GraphicsResource.TextFont.GetLineHeight()*2, iMainTextWidth), ACenter, C4GUI_Caption2FontClr, nullptr, false, false, true);
AddElement(pNetResultLabel); AddElement(pNetResultLabel);
// only add label - contents and fIsNetDone will be set in next update // only add label - contents and fIsNetDone will be set in next update
} }
@ -175,16 +175,16 @@ C4GameOverDlg::C4GameOverDlg() : C4GUI::Dialog( (C4GUI::GetScreenWdt() < 800) ?
{ {
int32_t iMaxHgt = caMain.GetInnerHeight() / 3; // max 1/3rd of height for extra data int32_t iMaxHgt = caMain.GetInnerHeight() / 3; // max 1/3rd of height for extra data
C4GUI::MultilineLabel *pCustomStrings = new C4GUI::MultilineLabel(caMain.GetFromTop(0 /* resized later*/, iMainTextWidth), 0,0, " ", true, true); C4GUI::MultilineLabel *pCustomStrings = new C4GUI::MultilineLabel(caMain.GetFromTop(0 /* resized later*/, iMainTextWidth), 0,0, " ", true, true);
pCustomStrings->AddLine(szCustomEvaluationStrings, &::GraphicsResource.TextFont, C4GUI_MessageFontClr, true, false, NULL); pCustomStrings->AddLine(szCustomEvaluationStrings, &::GraphicsResource.TextFont, C4GUI_MessageFontClr, true, false, nullptr);
C4Rect rcCustomStringBounds = pCustomStrings->GetBounds(); C4Rect rcCustomStringBounds = pCustomStrings->GetBounds();
if (rcCustomStringBounds.Hgt > iMaxHgt) if (rcCustomStringBounds.Hgt > iMaxHgt)
{ {
// Buffer too large: Use a scrollbox instead // Buffer too large: Use a scrollbox instead
delete pCustomStrings; delete pCustomStrings;
rcCustomStringBounds.Hgt = iMaxHgt; rcCustomStringBounds.Hgt = iMaxHgt;
C4GUI::TextWindow *pCustomStringsWin = new C4GUI::TextWindow(rcCustomStringBounds, 0,0,0, 0,0," ",true, NULL,0, true); C4GUI::TextWindow *pCustomStringsWin = new C4GUI::TextWindow(rcCustomStringBounds, 0,0,0, 0,0," ",true, nullptr,0, true);
pCustomStringsWin->SetDecoration(false, false, NULL, false); pCustomStringsWin->SetDecoration(false, false, nullptr, false);
pCustomStringsWin->AddTextLine(szCustomEvaluationStrings, &::GraphicsResource.TextFont, C4GUI_MessageFontClr, true, false, NULL); pCustomStringsWin->AddTextLine(szCustomEvaluationStrings, &::GraphicsResource.TextFont, C4GUI_MessageFontClr, true, false, nullptr);
caMain.ExpandTop(-iMaxHgt); caMain.ExpandTop(-iMaxHgt);
AddElement(pCustomStringsWin); AddElement(pCustomStringsWin);
} }
@ -209,7 +209,7 @@ C4GameOverDlg::C4GameOverDlg() : C4GUI::Dialog( (C4GUI::GetScreenWdt() < 800) ?
{ {
ppPlayerLists[i] = new C4PlayerInfoListBox(caPlayerArea.GetGridCell(i,iPlrListCount,0,1), C4PlayerInfoListBox::PILBM_Evaluation, fSepTeamLists ? Game.Teams.GetTeamByIndex(i)->GetID() : 0); ppPlayerLists[i] = new C4PlayerInfoListBox(caPlayerArea.GetGridCell(i,iPlrListCount,0,1), C4PlayerInfoListBox::PILBM_Evaluation, fSepTeamLists ? Game.Teams.GetTeamByIndex(i)->GetID() : 0);
ppPlayerLists[i]->SetSelectionDiabled(true); ppPlayerLists[i]->SetSelectionDiabled(true);
ppPlayerLists[i]->SetDecoration(false, NULL, true, false); ppPlayerLists[i]->SetDecoration(false, nullptr, true, false);
AddElement(ppPlayerLists[i]); AddElement(ppPlayerLists[i]);
} }
// add buttons // add buttons

View File

@ -72,7 +72,7 @@ protected:
virtual void OnShown(); virtual void OnShown();
virtual void OnClosed(bool fOK); virtual void OnClosed(bool fOK);
virtual bool OnEnter() { if (fIsQuitBtnVisible) OnExitBtn(NULL); return true; } // enter on non-button: Always quit virtual bool OnEnter() { if (fIsQuitBtnVisible) OnExitBtn(nullptr); return true; } // enter on non-button: Always quit
virtual bool OnEscape() { if (fIsQuitBtnVisible) UserClose(false); return true; } // escape ignored if still streaming virtual bool OnEscape() { if (fIsQuitBtnVisible) UserClose(false); return true; } // escape ignored if still streaming
// true for dialogs that should span the whole screen // true for dialogs that should span the whole screen

View File

@ -34,7 +34,7 @@ static int edittext_toi(HWND hWnd, int field)
StdStrBuf data(buf); StdStrBuf data(buf);
const char* bufp = data.getData(); const char* bufp = data.getData();
while(*bufp == ' ') ++bufp; while(*bufp == ' ') ++bufp;
int res = strtol(bufp, NULL, 0); int res = strtol(bufp, nullptr, 0);
if(errno != ERANGE) if(errno != ERANGE)
return res; return res;
return -1; return -1;
@ -86,7 +86,7 @@ static INT_PTR CALLBACK GfxErrProcedure(HWND hWnd, UINT Msg, WPARAM wParam, LPAR
// Check if res is in list of supportet // Check if res is in list of supportet
bool found = false; bool found = false;
int32_t idx = 0, iXRes, iYRes, iBitDepth; int32_t idx = 0, iXRes, iYRes, iBitDepth;
while (Application.GetIndexedDisplayMode(idx++, &iXRes, &iYRes, &iBitDepth, NULL, Config.Graphics.Monitor)) while (Application.GetIndexedDisplayMode(idx++, &iXRes, &iYRes, &iBitDepth, nullptr, Config.Graphics.Monitor))
if (iBitDepth == C4Draw::COLOR_DEPTH) if (iBitDepth == C4Draw::COLOR_DEPTH)
if(iXRes == resx && iYRes == resy) if(iXRes == resx && iYRes == resy)
{ {
@ -110,14 +110,14 @@ static INT_PTR CALLBACK GfxErrProcedure(HWND hWnd, UINT Msg, WPARAM wParam, LPAR
Config.Graphics.ResY = resy; Config.Graphics.ResY = resy;
Config.Save(); Config.Save();
TCHAR selfpath[4096]; TCHAR selfpath[4096];
GetModuleFileName(NULL, selfpath, 4096); GetModuleFileName(nullptr, selfpath, 4096);
STARTUPINFOW siStartupInfo; STARTUPINFOW siStartupInfo;
PROCESS_INFORMATION piProcessInfo; PROCESS_INFORMATION piProcessInfo;
memset(&siStartupInfo, 0, sizeof(siStartupInfo)); memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo)); memset(&piProcessInfo, 0, sizeof(piProcessInfo));
siStartupInfo.cb = sizeof(siStartupInfo); siStartupInfo.cb = sizeof(siStartupInfo);
if (CreateProcessW(selfpath, NULL, if (CreateProcessW(selfpath, nullptr,
NULL, NULL, FALSE, 0, NULL, Config.General.ExePath.GetWideChar(), &siStartupInfo, &piProcessInfo)) nullptr, nullptr, FALSE, 0, nullptr, Config.General.ExePath.GetWideChar(), &siStartupInfo, &piProcessInfo))
{ {
CloseHandle(piProcessInfo.hProcess); CloseHandle(piProcessInfo.hProcess);
CloseHandle(piProcessInfo.hThread); CloseHandle(piProcessInfo.hThread);
@ -136,14 +136,14 @@ void ShowGfxErrorDialog()
// Application.Close will eventually post a quit message. We need to discard // Application.Close will eventually post a quit message. We need to discard
// that, so DialogBox() doesn't immediately exit. // that, so DialogBox() doesn't immediately exit.
auto msg = MSG(); auto msg = MSG();
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) != 0) while (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE) != 0)
{ {
if (msg.message == WM_QUIT) break; if (msg.message == WM_QUIT) break;
TranslateMessage(&msg); TranslateMessage(&msg);
DispatchMessage(&msg); DispatchMessage(&msg);
} }
int ret = DialogBox(Application.GetInstance(), MAKEINTRESOURCE(IDD_GFXERROR), NULL, GfxErrProcedure); int ret = DialogBox(Application.GetInstance(), MAKEINTRESOURCE(IDD_GFXERROR), nullptr, GfxErrProcedure);
if (ret == 0 || ret == -1) if (ret == 0 || ret == -1)
{ {
LPVOID lpMsgBuf; LPVOID lpMsgBuf;
@ -152,11 +152,11 @@ void ShowGfxErrorDialog()
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, nullptr,
err, err,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf, (LPTSTR) &lpMsgBuf,
0, NULL ); 0, nullptr );
LogF("Error in GfxErrorDlg: %d - %s", err, StdStrBuf((wchar_t*)lpMsgBuf).getData()); LogF("Error in GfxErrorDlg: %d - %s", err, StdStrBuf((wchar_t*)lpMsgBuf).getData());
LocalFree(lpMsgBuf); LocalFree(lpMsgBuf);
} }

View File

@ -151,9 +151,9 @@ namespace C4GUI
// -------------------------------------------------- // --------------------------------------------------
// Element // Element
Element::Element() : pParent(NULL), pDragTarget(NULL), fDragging(false), pContextHandler(NULL), fVisible(true), is_immediate_tooltip(false) Element::Element() : pParent(nullptr), pDragTarget(nullptr), fDragging(false), pContextHandler(nullptr), fVisible(true), is_immediate_tooltip(false)
{ {
// pParent=NULL invalidates pPrev/pNext // pParent=nullptr invalidates pPrev/pNext
// fDragging=false invalidates iDragX/Y // fDragging=false invalidates iDragX/Y
// zero fields // zero fields
rcBounds.Set(0,0,0,0); rcBounds.Set(0,0,0,0);
@ -162,7 +162,7 @@ namespace C4GUI
Element::~Element() Element::~Element()
{ {
// delete context handler // delete context handler
if (pContextHandler) { pContextHandler->DeRef(); pContextHandler=NULL; } if (pContextHandler) { pContextHandler->DeRef(); pContextHandler=nullptr; }
// remove from any container // remove from any container
if (pParent) if (pParent)
pParent->RemoveElement(this); pParent->RemoveElement(this);
@ -286,8 +286,8 @@ namespace C4GUI
DoDragging(rMouse, iX, iY, dwKeyParam); DoDragging(rMouse, iX, iY, dwKeyParam);
} }
Dialog *Element::GetDlg () { if (pParent) return pParent->GetDlg (); return NULL; } Dialog *Element::GetDlg () { if (pParent) return pParent->GetDlg (); return nullptr; }
Screen *Element::GetScreen() { if (pParent) return pParent->GetScreen(); return NULL; } Screen *Element::GetScreen() { if (pParent) return pParent->GetScreen(); return nullptr; }
void Element::Draw3DFrame(C4TargetFacet &cgo, bool fUp, int32_t iIndent, BYTE byAlpha, bool fDrawTop, int32_t iTopOff, bool fDrawLeft, int32_t iLeftOff) void Element::Draw3DFrame(C4TargetFacet &cgo, bool fUp, int32_t iIndent, BYTE byAlpha, bool fDrawTop, int32_t iTopOff, bool fDrawLeft, int32_t iLeftOff)
{ {
@ -453,8 +453,8 @@ namespace C4GUI
// reset fields // reset fields
LDown=MDown=RDown=false; LDown=MDown=RDown=false;
dwKeys=0; dwKeys=0;
pMouseOverElement = pPrevMouseOverElement = NULL; pMouseOverElement = pPrevMouseOverElement = nullptr;
pDragElement = NULL; pDragElement = nullptr;
ResetToolTipTime(); ResetToolTipTime();
// LDownX/Y initialized upon need // LDownX/Y initialized upon need
} }
@ -531,7 +531,7 @@ namespace C4GUI
pDragElement->ScreenPos2ClientPos(iX, iY); pDragElement->ScreenPos2ClientPos(iX, iY);
pDragElement->StopDragging(*this, iX, iY, dwKeys); pDragElement->StopDragging(*this, iX, iY, dwKeys);
} }
pPrevMouseOverElement = pMouseOverElement = pDragElement = NULL; pPrevMouseOverElement = pMouseOverElement = pDragElement = nullptr;
} }
void CMouse::RemoveElement(Element *pChild) void CMouse::RemoveElement(Element *pChild)
@ -540,10 +540,10 @@ namespace C4GUI
if (pMouseOverElement == pChild) if (pMouseOverElement == pChild)
{ {
pMouseOverElement->MouseLeave(*this); // do leave callback so any tooltip is cleared! pMouseOverElement->MouseLeave(*this); // do leave callback so any tooltip is cleared!
pMouseOverElement = NULL; pMouseOverElement = nullptr;
} }
if (pPrevMouseOverElement == pChild) pPrevMouseOverElement = NULL; if (pPrevMouseOverElement == pChild) pPrevMouseOverElement = nullptr;
if (pDragElement == pChild) pDragElement = NULL; if (pDragElement == pChild) pDragElement = nullptr;
} }
void CMouse::OnElementGetsInvisible(Element *pChild) void CMouse::OnElementGetsInvisible(Element *pChild)
@ -561,19 +561,19 @@ namespace C4GUI
// inherited // inherited
Window::RemoveElement(pChild); Window::RemoveElement(pChild);
// clear ptrs // clear ptrs
if (pActiveDlg == pChild) { pActiveDlg = NULL; Mouse.ResetElements(); } if (pActiveDlg == pChild) { pActiveDlg = nullptr; Mouse.ResetElements(); }
Mouse.RemoveElement(pChild); Mouse.RemoveElement(pChild);
if (pContext) if (pContext)
{ {
if (pContext == pChild) pContext=NULL; if (pContext == pChild) pContext=nullptr;
else pContext->RemoveElement(pChild); else pContext->RemoveElement(pChild);
} }
} }
Screen::Screen() : Window(), Mouse(0, 0), pContext(NULL), fExclusive(true), fZoom(1.0f) Screen::Screen() : Window(), Mouse(0, 0), pContext(nullptr), fExclusive(true), fZoom(1.0f)
{ {
// no dialog active // no dialog active
pActiveDlg = NULL; pActiveDlg = nullptr;
// set static var // set static var
pScreen = this; pScreen = this;
} }
@ -601,7 +601,7 @@ namespace C4GUI
Screen::~Screen() Screen::~Screen()
{ {
// clear singleton // clear singleton
if (this == pScreen) pScreen = NULL; if (this == pScreen) pScreen = nullptr;
} }
void Screen::ElementPosChanged(Element *pOfElement) void Screen::ElementPosChanged(Element *pOfElement)
@ -677,7 +677,7 @@ namespace C4GUI
// set new active dlg // set new active dlg
pActiveDlg = GetTopDialog(); pActiveDlg = GetTopDialog();
// do not set yet if it's fading // do not set yet if it's fading
if (pActiveDlg && pActiveDlg->IsFading()) pActiveDlg = NULL; if (pActiveDlg && pActiveDlg->IsFading()) pActiveDlg = nullptr;
} }
// redraw background; clip update // redraw background; clip update
::GraphicsSystem.InvalidateBg(); UpdateMouseFocus(); ::GraphicsSystem.InvalidateBg(); UpdateMouseFocus();
@ -689,7 +689,7 @@ namespace C4GUI
if (pActiveDlg == pNewTop) return; if (pActiveDlg == pNewTop) return;
Mouse.ReleaseElements(); Mouse.ReleaseElements();
// do not set yet if it's fading // do not set yet if it's fading
if (pActiveDlg && pActiveDlg->IsFading()) pActiveDlg = NULL; if (pActiveDlg && pActiveDlg->IsFading()) pActiveDlg = nullptr;
} }
Dialog *Screen::GetTopDialog() Dialog *Screen::GetTopDialog()
@ -701,7 +701,7 @@ namespace C4GUI
if (pDlg->IsShown()) if (pDlg->IsShown())
return pDlg; return pDlg;
// no dlg found // no dlg found
return NULL; return nullptr;
} }
void Screen::CloseAllDialogs(bool fWithOK) void Screen::CloseAllDialogs(bool fWithOK)
@ -717,7 +717,7 @@ namespace C4GUI
if ((pDlg = pEl->GetDlg())) if ((pDlg = pEl->GetDlg()))
if (pDlg->pWindow && pDlg->pWindow->hWindow == hWindow) if (pDlg->pWindow && pDlg->pWindow->hWindow == hWindow)
return pDlg; return pDlg;
return NULL; return nullptr;
} }
#endif #endif
Dialog *Screen::GetDialog(C4Window * pWindow) Dialog *Screen::GetDialog(C4Window * pWindow)
@ -725,10 +725,10 @@ namespace C4GUI
// get dialog with matching window // get dialog with matching window
Dialog *pDlg; Dialog *pDlg;
for (Element *pEl = pLast; pEl; pEl = pEl->GetPrev()) for (Element *pEl = pLast; pEl; pEl = pEl->GetPrev())
if ( (pDlg = pEl->GetDlg()) != NULL) if ( (pDlg = pEl->GetDlg()) != nullptr)
if (pDlg->pWindow == pWindow) if (pDlg->pWindow == pWindow)
return pDlg; return pDlg;
return NULL; return nullptr;
} }
void Screen::Render(bool fDoBG) void Screen::Render(bool fDoBG)
{ {
@ -802,7 +802,7 @@ namespace C4GUI
// Special: Pass to MouseControl if dragging and button is not upped // Special: Pass to MouseControl if dragging and button is not upped
if (IsActive() && !::MouseControl.IsDragging()) if (IsActive() && !::MouseControl.IsDragging())
{ {
bool fResult = MouseInput(iButton, iX, iY, dwKeyParam, NULL, pVP); bool fResult = MouseInput(iButton, iX, iY, dwKeyParam, nullptr, pVP);
if (HasMouseFocus()) { SetMouseInGUI(true, true); return; } if (HasMouseFocus()) { SetMouseInGUI(true, true); return; }
// non-exclusive GUI: inform mouse-control about GUI-result // non-exclusive GUI: inform mouse-control about GUI-result
SetMouseInGUI(fResult, true); SetMouseInGUI(fResult, true);
@ -855,7 +855,7 @@ namespace C4GUI
{ {
// stop dragging // stop dragging
Mouse.pDragElement->StopDragging(Mouse, iX2, iY2, dwKeyParam); Mouse.pDragElement->StopDragging(Mouse, iX2, iY2, dwKeyParam);
Mouse.pDragElement = NULL; Mouse.pDragElement = nullptr;
} }
else else
{ {
@ -865,7 +865,7 @@ namespace C4GUI
} }
// backup previous MouseOver-element // backup previous MouseOver-element
Mouse.pPrevMouseOverElement = Mouse.pMouseOverElement; Mouse.pPrevMouseOverElement = Mouse.pMouseOverElement;
Mouse.pMouseOverElement = NULL; Mouse.pMouseOverElement = nullptr;
bool fProcessed = false; bool fProcessed = false;
// active context menu? // active context menu?
if (!pForVP && pContext && pContext->CtxMouseInput(Mouse, iButton, fX, fY, dwKeyParam)) if (!pForVP && pContext && pContext->CtxMouseInput(Mouse, iButton, fX, fY, dwKeyParam))
@ -895,7 +895,7 @@ namespace C4GUI
// forward to active dialog // forward to active dialog
pActiveDlg->MouseInput(Mouse, iButton, fX - rcDlgBounds.x, fY - rcDlgBounds.y, dwKeyParam); pActiveDlg->MouseInput(Mouse, iButton, fX - rcDlgBounds.x, fY - rcDlgBounds.y, dwKeyParam);
else else
Mouse.pMouseOverElement = NULL; Mouse.pMouseOverElement = nullptr;
} }
else else
// outside dialog: own handling (for screen context menu) // outside dialog: own handling (for screen context menu)
@ -913,7 +913,7 @@ namespace C4GUI
if (pForDlg && pDlg != pForDlg) continue; if (pForDlg && pDlg != pForDlg) continue;
// if specified: process specified viewport only // if specified: process specified viewport only
bool fIsExternalDrawDialog = pDlg->IsExternalDrawDialog(); bool fIsExternalDrawDialog = pDlg->IsExternalDrawDialog();
C4Viewport *pVP = fIsExternalDrawDialog ? pDlg->GetViewport() : NULL; C4Viewport *pVP = fIsExternalDrawDialog ? pDlg->GetViewport() : nullptr;
if (pForVP && pForVP != pVP) continue; if (pForVP && pForVP != pVP) continue;
// calc offset // calc offset
C4Rect &rcDlgBounds = pDlg->GetBounds(); C4Rect &rcDlgBounds = pDlg->GetBounds();
@ -962,7 +962,7 @@ namespace C4GUI
bool Screen::RecheckMouseInput() bool Screen::RecheckMouseInput()
{ {
return MouseInput(C4MC_Button_None, Mouse.x, Mouse.y, Mouse.dwKeys, NULL, NULL); return MouseInput(C4MC_Button_None, Mouse.x, Mouse.y, Mouse.dwKeys, nullptr, nullptr);
} }
void Screen::UpdateMouseFocus() void Screen::UpdateMouseFocus()
@ -1046,7 +1046,7 @@ namespace C4GUI
if (pDlg->IsFullscreenDialog()) if (pDlg->IsFullscreenDialog())
if (fIncludeFading || !pDlg->IsFading()) if (fIncludeFading || !pDlg->IsFading())
return pDlg; return pDlg;
return NULL; return nullptr;
} }
void Screen::UpdateGamepadGUIControlEnabled() void Screen::UpdateGamepadGUIControlEnabled()

View File

@ -401,7 +401,7 @@ namespace C4GUI
virtual bool IsOwnPtrElement() { return false; } // if true is returned, item will not be deleted when container is cleared virtual bool IsOwnPtrElement() { return false; } // if true is returned, item will not be deleted when container is cleared
virtual bool IsExternalDrawDialog() { return false; } virtual bool IsExternalDrawDialog() { return false; }
virtual bool IsMenu() { return false; } virtual bool IsMenu() { return false; }
virtual class DialogWindow* GetDialogWindow() { return NULL; } // return DialogWindow if this element is a dialog virtual class DialogWindow* GetDialogWindow() { return nullptr; } // return DialogWindow if this element is a dialog
// for listbox-selection by character input // for listbox-selection by character input
virtual bool CheckNameHotkey(const char *) { return false; } virtual bool CheckNameHotkey(const char *) { return false; }
@ -429,7 +429,7 @@ namespace C4GUI
Container *GetParent() { return pParent; } // get owning container Container *GetParent() { return pParent; } // get owning container
virtual class Dialog *GetDlg(); // return contained dialog virtual class Dialog *GetDlg(); // return contained dialog
virtual Screen *GetScreen(); // return contained screen virtual Screen *GetScreen(); // return contained screen
virtual Control *IsFocusElement() { return NULL; }; // return control to gain focus in search-cycle virtual Control *IsFocusElement() { return nullptr; }; // return control to gain focus in search-cycle
virtual void UpdateOwnPos() { }; // called when element bounds were changed externally virtual void UpdateOwnPos() { }; // called when element bounds were changed externally
void ScreenPos2ClientPos(int32_t &riX, int32_t &riY); // transform screen coordinates to element coordinates void ScreenPos2ClientPos(int32_t &riX, int32_t &riY); // transform screen coordinates to element coordinates
@ -449,7 +449,7 @@ namespace C4GUI
Element *GetNext() const { return pNext; } Element *GetNext() const { return pNext; }
Element *GetPrev() const { return pPrev; } Element *GetPrev() const { return pPrev; }
virtual Element *GetFirstNestedElement(bool fBackwards) { return this; } virtual Element *GetFirstNestedElement(bool fBackwards) { return this; }
virtual Element *GetFirstContained() { return NULL; } virtual Element *GetFirstContained() { return nullptr; }
bool IsInActiveDlg(bool fForKeyboard); bool IsInActiveDlg(bool fForKeyboard);
virtual bool IsParentOf(Element *pEl) { return false; } // whether this is the parent container (directly or recursively) of the passed element virtual bool IsParentOf(Element *pEl) { return false; } // whether this is the parent container (directly or recursively) of the passed element
@ -494,8 +494,8 @@ namespace C4GUI
virtual int32_t GetLeftIndent() { return 0; } virtual int32_t GetLeftIndent() { return 0; }
public: public:
Label(const char *szLblText, int32_t iX0, int32_t iTop, int32_t iAlign=ALeft, DWORD dwFClr=0xffffffff, CStdFont *pFont=NULL, bool fMakeReadableOnBlack = true, bool fMarkup=true); // ctor Label(const char *szLblText, int32_t iX0, int32_t iTop, int32_t iAlign=ALeft, DWORD dwFClr=0xffffffff, CStdFont *pFont=nullptr, bool fMakeReadableOnBlack = true, bool fMarkup=true); // ctor
Label(const char *szLblText, const C4Rect &rcBounds, int32_t iAlign=ALeft, DWORD dwFClr=0xffffffff, CStdFont *pFont=NULL, bool fMakeReadableOnBlack = true, bool fAutosize = true, bool fMarkup=true); // ctor Label(const char *szLblText, const C4Rect &rcBounds, int32_t iAlign=ALeft, DWORD dwFClr=0xffffffff, CStdFont *pFont=nullptr, bool fMakeReadableOnBlack = true, bool fAutosize = true, bool fMarkup=true); // ctor
virtual void MouseInput(CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyParam); // input: mouse virtual void MouseInput(CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyParam); // input: mouse
@ -514,7 +514,7 @@ namespace C4GUI
private: private:
uint32_t iAutoScrollDelay; // if set and text is longer than would fit, the label will automatically start moving if not changed and displayed for a while uint32_t iAutoScrollDelay; // if set and text is longer than would fit, the label will automatically start moving if not changed and displayed for a while
// Time when the label text was changed last. NULL if not initialized; set upon first drawing // Time when the label text was changed last. nullptr if not initialized; set upon first drawing
C4TimeMilliseconds tLastChangeTime; C4TimeMilliseconds tLastChangeTime;
int32_t iScrollPos, iScrollDir; int32_t iScrollPos, iScrollDir;
int32_t iRightIndent; int32_t iRightIndent;
@ -527,11 +527,11 @@ namespace C4GUI
int32_t GetRightIndent() const { return iRightIndent; } int32_t GetRightIndent() const { return iRightIndent; }
public: public:
WoodenLabel(const char *szLblText, const C4Rect &rcBounds, DWORD dwFClr=0xffffffff, CStdFont *pFont=NULL, int32_t iAlign=ACenter, bool fMarkup=true) // ctor WoodenLabel(const char *szLblText, const C4Rect &rcBounds, DWORD dwFClr=0xffffffff, CStdFont *pFont=nullptr, int32_t iAlign=ACenter, bool fMarkup=true) // ctor
: Label(szLblText, rcBounds, iAlign, dwFClr, pFont, true, true, fMarkup), iAutoScrollDelay(0), tLastChangeTime(C4TimeMilliseconds::Now()), iScrollPos(0), iScrollDir(0), iRightIndent(0) : Label(szLblText, rcBounds, iAlign, dwFClr, pFont, true, true, fMarkup), iAutoScrollDelay(0), tLastChangeTime(C4TimeMilliseconds::Now()), iScrollPos(0), iScrollDir(0), iRightIndent(0)
{ SetAutosize(false); this->rcBounds=rcBounds; }// ctor - re-sets bounds after SetText { SetAutosize(false); this->rcBounds=rcBounds; }// ctor - re-sets bounds after SetText
static int32_t GetDefaultHeight(CStdFont *pUseFont=NULL); static int32_t GetDefaultHeight(CStdFont *pUseFont=nullptr);
void SetIcon(const C4Facet &rfctIcon); void SetIcon(const C4Facet &rfctIcon);
void SetAutoScrollTime(uint32_t tDelay) { iAutoScrollDelay=tDelay; ResetAutoScroll(); } void SetAutoScrollTime(uint32_t tDelay) { iAutoScrollDelay=tDelay; ResetAutoScroll(); }
@ -959,7 +959,7 @@ namespace C4GUI
public: public:
ScrollWindow(Window *pParentWindow); // create scroll window in client area of window ScrollWindow(Window *pParentWindow); // create scroll window in client area of window
~ScrollWindow() { if (pScrollBar) pScrollBar->pScrollWindow = NULL; } ~ScrollWindow() { if (pScrollBar) pScrollBar->pScrollWindow = nullptr; }
virtual void MouseInput(CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyParam); virtual void MouseInput(CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyParam);
@ -1007,7 +1007,7 @@ namespace C4GUI
CStdFont *GetTitleFont() const; CStdFont *GetTitleFont() const;
public: public:
GroupBox(C4Rect &rtBounds) : Window(), pFont(NULL), dwFrameClr(0u), dwTitleClr(C4GUI_CaptionFontClr), dwBackClr(0xffffffff), iMargin(4) GroupBox(C4Rect &rtBounds) : Window(), pFont(nullptr), dwFrameClr(0u), dwTitleClr(C4GUI_CaptionFontClr), dwBackClr(0xffffffff), iMargin(4)
{ {
// init client rect // init client rect
SetBounds(rtBounds); SetBounds(rtBounds);
@ -1144,7 +1144,7 @@ namespace C4GUI
virtual void DrawElement(C4TargetFacet &cgo); // draw icon and highlight if necessary virtual void DrawElement(C4TargetFacet &cgo); // draw icon and highlight if necessary
public: public:
IconButton(Icons eUseIcon, const C4Rect &rtBounds, char cHotkey='\0', const char *tooltip_text=NULL); // ctor IconButton(Icons eUseIcon, const C4Rect &rtBounds, char cHotkey='\0', const char *tooltip_text=nullptr); // ctor
void SetIcon(Icons eUseIcon); void SetIcon(Icons eUseIcon);
void SetFacet(const C4Facet &rCpy, uint32_t dwClr=0u) { fctIcon = rCpy; } void SetFacet(const C4Facet &rCpy, uint32_t dwClr=0u) { fctIcon = rCpy; }
void SetColor(uint32_t dwClr) { fHasClr=true; this->dwClr=dwClr; } void SetColor(uint32_t dwClr) { fHasClr=true; this->dwClr=dwClr; }
@ -1211,15 +1211,15 @@ namespace C4GUI
} }
public: public:
CallbackButton(ArrowButton::ArrowFct eDir, const C4Rect &rtBounds, typename DlgCallback<CallbackDlg>::Func pFn, CallbackDlg *pCB=NULL) // ctor CallbackButton(ArrowButton::ArrowFct eDir, const C4Rect &rtBounds, typename DlgCallback<CallbackDlg>::Func pFn, CallbackDlg *pCB=nullptr) // ctor
: Base(eDir, rtBounds, 0), pCB(pCB), pCallbackFn(pFn) { } : Base(eDir, rtBounds, 0), pCB(pCB), pCallbackFn(pFn) { }
CallbackButton(const char *szBtnText, C4Rect &rtBounds, typename DlgCallback<CallbackDlg>::Func pFn, CallbackDlg *pCB=NULL) // ctor CallbackButton(const char *szBtnText, C4Rect &rtBounds, typename DlgCallback<CallbackDlg>::Func pFn, CallbackDlg *pCB=nullptr) // ctor
: Base(szBtnText, rtBounds), pCB(pCB), pCallbackFn(pFn) { } : Base(szBtnText, rtBounds), pCB(pCB), pCallbackFn(pFn) { }
CallbackButton(Icons eUseIcon, const C4Rect &rtBounds, char cHotkey, typename DlgCallback<CallbackDlg>::Func pFn, CallbackDlg *pCB=NULL) // ctor CallbackButton(Icons eUseIcon, const C4Rect &rtBounds, char cHotkey, typename DlgCallback<CallbackDlg>::Func pFn, CallbackDlg *pCB=nullptr) // ctor
: Base(eUseIcon, rtBounds, cHotkey), pCB(pCB), pCallbackFn(pFn) { } : Base(eUseIcon, rtBounds, cHotkey), pCB(pCB), pCallbackFn(pFn) { }
CallbackButton(Icons eUseIcon, const C4Rect &rtBounds, const char *tooltip_text, typename DlgCallback<CallbackDlg>::Func pFn, CallbackDlg *pCB = NULL) // ctor CallbackButton(Icons eUseIcon, const C4Rect &rtBounds, const char *tooltip_text, typename DlgCallback<CallbackDlg>::Func pFn, CallbackDlg *pCB = nullptr) // ctor
: Base(eUseIcon, rtBounds, '\0', tooltip_text), pCB(pCB), pCallbackFn(pFn) { } : Base(eUseIcon, rtBounds, '\0', tooltip_text), pCB(pCB), pCallbackFn(pFn) { }
CallbackButton(int32_t iID, const C4Rect &rtBounds, char cHotkey, typename DlgCallback<CallbackDlg>::Func pFn, CallbackDlg *pCB=NULL) // ctor CallbackButton(int32_t iID, const C4Rect &rtBounds, char cHotkey, typename DlgCallback<CallbackDlg>::Func pFn, CallbackDlg *pCB=nullptr) // ctor
: Base(iID, rtBounds, cHotkey), pCB(pCB), pCallbackFn(pFn) { } : Base(iID, rtBounds, cHotkey), pCB(pCB), pCallbackFn(pFn) { }
}; };
@ -1367,7 +1367,7 @@ namespace C4GUI
{ if (pCBAbortFunc && pCBCtrl) (pCBCtrl->*pCBAbortFunc)(); } { if (pCBAbortFunc && pCBCtrl) (pCBCtrl->*pCBAbortFunc)(); }
public: public:
CallbackEdit(const C4Rect &rtBounds, CallbackCtrl * pCBCtrl, CBFunc pCBFunc, CBAbortFunc pCBAbortFunc=NULL) // ctor CallbackEdit(const C4Rect &rtBounds, CallbackCtrl * pCBCtrl, CBFunc pCBFunc, CBAbortFunc pCBAbortFunc=nullptr) // ctor
: Edit(rtBounds), pCBCtrl(pCBCtrl), pCBFunc(pCBFunc), pCBAbortFunc(pCBAbortFunc) { } : Edit(rtBounds), pCBCtrl(pCBCtrl), pCBFunc(pCBFunc), pCBAbortFunc(pCBAbortFunc) { }
}; };
@ -1428,7 +1428,7 @@ namespace C4GUI
class LabeledEdit : public C4GUI::Window class LabeledEdit : public C4GUI::Window
{ {
public: public:
LabeledEdit(const C4Rect &rcBounds, const char *szName, bool fMultiline, const char *szPrefText=NULL, CStdFont *pUseFont=NULL, uint32_t dwTextClr = C4GUI_CaptionFontClr); LabeledEdit(const C4Rect &rcBounds, const char *szName, bool fMultiline, const char *szPrefText=nullptr, CStdFont *pUseFont=nullptr, uint32_t dwTextClr = C4GUI_CaptionFontClr);
private: private:
C4GUI::Edit *pEdit; C4GUI::Edit *pEdit;
public: public:
@ -1464,7 +1464,7 @@ namespace C4GUI
protected: protected:
virtual void UpdateOwnPos(); virtual void UpdateOwnPos();
virtual bool IsFocusOnClick() { return false; } // just check/uncheck on click; do not gain keyboard focus as well virtual bool IsFocusOnClick() { return false; } // just check/uncheck on click; do not gain keyboard focus as well
virtual Control *IsFocusElement() { return fEnabled ? Control::IsFocusElement() : NULL; }; // this control can gain focus if enabled virtual Control *IsFocusElement() { return fEnabled ? Control::IsFocusElement() : nullptr; }; // this control can gain focus if enabled
virtual void DrawElement(C4TargetFacet &cgo); // draw checkbox virtual void DrawElement(C4TargetFacet &cgo); // draw checkbox
virtual bool OnHotkey(uint32_t cHotkey); // return true when hotkey has been processed virtual bool OnHotkey(uint32_t cHotkey); // return true when hotkey has been processed
@ -1568,8 +1568,8 @@ namespace C4GUI
void SetSelectionDiabled(bool fToVal=true) { fSelectionDisabled = fToVal; } void SetSelectionDiabled(bool fToVal=true) { fSelectionDisabled = fToVal; }
// get head and tail list items // get head and tail list items
Element *GetFirst() { return pClientWindow ? pClientWindow->GetFirst() : NULL; } Element *GetFirst() { return pClientWindow ? pClientWindow->GetFirst() : nullptr; }
Element *GetLast() { return pClientWindow ? pClientWindow->GetLast() : NULL; } Element *GetLast() { return pClientWindow ? pClientWindow->GetLast() : nullptr; }
// get margins from bounds to client rect // get margins from bounds to client rect
virtual int32_t GetMarginTop() { return 3; } virtual int32_t GetMarginTop() { return 3; }
@ -1582,7 +1582,7 @@ namespace C4GUI
bool IsScrollingNecessary() { return pClientWindow && pClientWindow->IsScrollingNecessary(); } bool IsScrollingNecessary() { return pClientWindow && pClientWindow->IsScrollingNecessary(); }
void SelectEntry(Element *pNewSel, bool fByUser); void SelectEntry(Element *pNewSel, bool fByUser);
void SelectFirstEntry(bool fByUser) { SelectEntry(GetFirst(), fByUser); } void SelectFirstEntry(bool fByUser) { SelectEntry(GetFirst(), fByUser); }
void SelectNone(bool fByUser) { SelectEntry(NULL, fByUser); } void SelectNone(bool fByUser) { SelectEntry(nullptr, fByUser); }
bool IsMultiColumn() const { return iColCount > 1; } bool IsMultiColumn() const { return iColCount > 1; }
int32_t ContractToElementHeight(); // make smaller if elements don't use up all of the available height. Return amount by which list box got contracted int32_t ContractToElementHeight(); // make smaller if elements don't use up all of the available height. Return amount by which list box got contracted
@ -1650,7 +1650,7 @@ namespace C4GUI
bool fDrawSelf; // if border and bg shall be drawn bool fDrawSelf; // if border and bg shall be drawn
C4Facet *pfctBack, *pfctClip, *pfctIcons; // set for tabulars that have custom gfx C4Facet *pfctBack, *pfctClip, *pfctIcons; // set for tabulars that have custom gfx
CStdFont *pSheetCaptionFont; // font to be used for caption drawing; NULL if default GUI font is to be used CStdFont *pSheetCaptionFont; // font to be used for caption drawing; nullptr if default GUI font is to be used
C4KeyBinding *pKeySelUp, *pKeySelDown, *pKeySelUp2, *pKeySelDown2, *pKeyCloseTab; // key bindings C4KeyBinding *pKeySelUp, *pKeySelDown, *pKeySelUp2, *pKeySelDown2, *pKeyCloseTab; // key bindings
@ -1673,7 +1673,7 @@ namespace C4GUI
virtual void MouseLeave(CMouse &rMouse); virtual void MouseLeave(CMouse &rMouse);
virtual void OnGetFocus(bool fByMouse); virtual void OnGetFocus(bool fByMouse);
virtual Control *IsFocusElement() { return eTabPos ? this : NULL; }; // this control can gain focus only if tabs are enabled only virtual Control *IsFocusElement() { return eTabPos ? this : nullptr; }; // this control can gain focus only if tabs are enabled only
virtual bool IsFocusOnClick() { return false; } // but never get focus on single mouse click, because this would de-focus any contained controls! virtual bool IsFocusOnClick() { return false; } // but never get focus on single mouse click, because this would de-focus any contained controls!
int32_t GetTopSize() { return (eTabPos == tbTop) ? 20 : 0; } // vertical size of tab selection bar int32_t GetTopSize() { return (eTabPos == tbTop) ? 20 : 0; } // vertical size of tab selection bar
@ -1732,12 +1732,12 @@ namespace C4GUI
virtual void ElementPosChanged(Element *pOfElement); // called when an element position is changed virtual void ElementPosChanged(Element *pOfElement); // called when an element position is changed
virtual void UpdateSize(); virtual void UpdateSize();
virtual Control *IsFocusElement() { return NULL; }; // no focus element for now, because there's nothing to do (2do: scroll?) virtual Control *IsFocusElement() { return nullptr; }; // no focus element for now, because there's nothing to do (2do: scroll?)
public: public:
TextWindow(C4Rect &rtBounds, size_t iPicWdt=0, size_t iPicHgt=0, size_t iPicPadding=0, size_t iMaxLines=100, size_t iMaxTextLen=4096, const char *szIndentChars=" ", bool fAutoGrow=false, const C4Facet *pOverlayPic=NULL, int iOverlayBorder=0, bool fMarkup=false); // ctor TextWindow(C4Rect &rtBounds, size_t iPicWdt=0, size_t iPicHgt=0, size_t iPicPadding=0, size_t iMaxLines=100, size_t iMaxTextLen=4096, const char *szIndentChars=" ", bool fAutoGrow=false, const C4Facet *pOverlayPic=nullptr, int iOverlayBorder=0, bool fMarkup=false); // ctor
void AddTextLine(const char *szText, CStdFont *pFont, DWORD dwClr, bool fDoUpdate, bool fMakeReadableOnBlack, CStdFont *pCaptionFont=NULL) // add text in a new line void AddTextLine(const char *szText, CStdFont *pFont, DWORD dwClr, bool fDoUpdate, bool fMakeReadableOnBlack, CStdFont *pCaptionFont=nullptr) // add text in a new line
{ if (pLogBuffer) pLogBuffer->AddLine(szText, pFont, dwClr, fDoUpdate, fMakeReadableOnBlack, pCaptionFont); } { if (pLogBuffer) pLogBuffer->AddLine(szText, pFont, dwClr, fDoUpdate, fMakeReadableOnBlack, pCaptionFont); }
void ScrollToBottom() // set scrolling to bottom range void ScrollToBottom() // set scrolling to bottom range
{ if (pClientWindow) pClientWindow->ScrollToBottom(); } { if (pClientWindow) pClientWindow->ScrollToBottom(); }
@ -1803,7 +1803,7 @@ namespace C4GUI
virtual void DrawElement(C4TargetFacet &cgo); // draw element virtual void DrawElement(C4TargetFacet &cgo); // draw element
MenuHandler *GetAndZeroCallback() MenuHandler *GetAndZeroCallback()
{ MenuHandler *pMH = pMenuHandler; pMenuHandler=NULL; return pMH; } { MenuHandler *pMH = pMenuHandler; pMenuHandler=nullptr; return pMH; }
virtual void MouseLeave(CMouse &rMouse) virtual void MouseLeave(CMouse &rMouse)
{ if (GetParent()) ((ContextMenu *) GetParent())->MouseLeaveEntry(rMouse, this); } { if (GetParent()) ((ContextMenu *) GetParent())->MouseLeaveEntry(rMouse, this); }
@ -1813,7 +1813,7 @@ namespace C4GUI
virtual bool IsMenu() { return true; } virtual bool IsMenu() { return true; }
public: public:
Entry(const char *szText, Icons icoIcon=Ico_None, MenuHandler *pMenuHandler=NULL, ContextHandler *pSubmenuHandler=NULL); // ctor Entry(const char *szText, Icons icoIcon=Ico_None, MenuHandler *pMenuHandler=nullptr, ContextHandler *pSubmenuHandler=nullptr); // ctor
~Entry() ~Entry()
{ {
if (pMenuHandler) delete pMenuHandler; if (pMenuHandler) delete pMenuHandler;
@ -1870,7 +1870,7 @@ namespace C4GUI
void Open(Element *pTarget, int32_t iScreenX, int32_t iScreenY); void Open(Element *pTarget, int32_t iScreenX, int32_t iScreenY);
void Abort(bool fByUser); void Abort(bool fByUser);
void AddItem(const char *szText, const char *szToolTip=NULL, Icons icoIcon=Ico_None, MenuHandler *pMenuHandler=NULL, ContextHandler *pSubmenuHandler=NULL) void AddItem(const char *szText, const char *szToolTip=nullptr, Icons icoIcon=Ico_None, MenuHandler *pMenuHandler=nullptr, ContextHandler *pSubmenuHandler=nullptr)
{ {
Element *pNew = new ContextMenu::Entry(szText, icoIcon, pMenuHandler, pSubmenuHandler); Element *pNew = new ContextMenu::Entry(szText, icoIcon, pMenuHandler, pSubmenuHandler);
AddElement(pNew); pNew->SetToolTip(szToolTip); AddElement(pNew); pNew->SetToolTip(szToolTip);
@ -1883,7 +1883,7 @@ namespace C4GUI
int32_t GetMenuIndex() { return iMenuIndex; } int32_t GetMenuIndex() { return iMenuIndex; }
static int32_t GetLastMenuIndex() { return iGlobalMenuIndex; } static int32_t GetLastMenuIndex() { return iGlobalMenuIndex; }
Dialog *GetTargetDialog() const { return pTarget ? pTarget->GetDlg() : NULL; } Dialog *GetTargetDialog() const { return pTarget ? pTarget->GetDlg() : nullptr; }
friend class Screen; friend class Entry; friend class Dialog; friend class Screen; friend class Entry; friend class Dialog;
}; };
@ -1996,7 +1996,7 @@ namespace C4GUI
virtual void DrawElement(C4TargetFacet &cgo); // draw combo box virtual void DrawElement(C4TargetFacet &cgo); // draw combo box
virtual bool IsFocusOnClick() { return false; } // don't select control on click virtual bool IsFocusOnClick() { return false; } // don't select control on click
virtual Control *IsFocusElement() { return fReadOnly ? NULL : this; }; // this control can gain focus if not readonly virtual Control *IsFocusElement() { return fReadOnly ? nullptr : this; }; // this control can gain focus if not readonly
void OnCtxComboSelect(C4GUI::Element *pListItem, const ComboMenuCBStruct &rNewSel); void OnCtxComboSelect(C4GUI::Element *pListItem, const ComboMenuCBStruct &rNewSel);
@ -2030,7 +2030,7 @@ namespace C4GUI
{ {
public: public:
Dialog* pDialog; Dialog* pDialog;
DialogWindow(): C4Window(), pDialog(NULL) {} DialogWindow(): C4Window(), pDialog(nullptr) {}
using C4Window::Init; using C4Window::Init;
C4Window * Init(C4AbstractApp * pApp, const char * Title, const C4Rect &rcBounds, const char *szID); C4Window * Init(C4AbstractApp * pApp, const char * Title, const C4Rect &rcBounds, const char *szID);
virtual void Close(); virtual void Close();
@ -2104,7 +2104,7 @@ namespace C4GUI
virtual void DrawElement(C4TargetFacet &cgo); // draw dlg bg virtual void DrawElement(C4TargetFacet &cgo); // draw dlg bg
virtual bool IsComponentOutsideClientArea() { return !!pTitle; } // pTitle lies outside client area virtual bool IsComponentOutsideClientArea() { return !!pTitle; } // pTitle lies outside client area
virtual const char *GetID() { return NULL; } virtual const char *GetID() { return nullptr; }
// special handling for viewport dialogs // special handling for viewport dialogs
virtual void ApplyElementOffset(int32_t &riX, int32_t &riY); virtual void ApplyElementOffset(int32_t &riX, int32_t &riY);
@ -2126,7 +2126,7 @@ namespace C4GUI
virtual void MouseInput(CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyParam); // input: mouse. forwards to child controls virtual void MouseInput(CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyParam); // input: mouse. forwards to child controls
// default control to be set if unprocessed keyboard input has been detected // default control to be set if unprocessed keyboard input has been detected
virtual class Control *GetDefaultControl() { return NULL; } virtual class Control *GetDefaultControl() { return nullptr; }
// default dlg actions for enter/escape // default dlg actions for enter/escape
virtual bool OnEnter() { UserClose(true); return true; } virtual bool OnEnter() { UserClose(true); return true; }
@ -2168,7 +2168,7 @@ namespace C4GUI
virtual bool IsMouseControlled() { return true; } virtual bool IsMouseControlled() { return true; }
// For dialogs associated to a viewport: Return viewport (for placement) // For dialogs associated to a viewport: Return viewport (for placement)
virtual C4Viewport *GetViewport() { return NULL; } virtual C4Viewport *GetViewport() { return nullptr; }
bool IsViewportDialog() { return fViewportDlg; } bool IsViewportDialog() { return fViewportDlg; }
// for custom placement procedures; should call SetPos // for custom placement procedures; should call SetPos
@ -2197,7 +2197,7 @@ namespace C4GUI
UpdateOwnPos(); // margin may have changed; might need to reposition stuff UpdateOwnPos(); // margin may have changed; might need to reposition stuff
} }
void ClearFrameDeco() // clear border decoration; no own pos update! void ClearFrameDeco() // clear border decoration; no own pos update!
{if (pFrameDeco) pFrameDeco->Deref(); pFrameDeco = NULL; } {if (pFrameDeco) pFrameDeco->Deref(); pFrameDeco = nullptr; }
FrameDecoration *GetFrameDecoration() const { return pFrameDeco; } FrameDecoration *GetFrameDecoration() const { return pFrameDeco; }
void SetClientSize(int32_t iToWdt, int32_t iToHgt); // resize dialog so its client area has the specified size void SetClientSize(int32_t iToWdt, int32_t iToHgt); // resize dialog so its client area has the specified size
@ -2336,7 +2336,7 @@ namespace C4GUI
btnOKAbort=btnOK|btnAbort, btnYesNo=btnYes|btnNo, btnRetryAbort=btnRetry|btnAbort btnOKAbort=btnOK|btnAbort, btnYesNo=btnYes|btnNo, btnRetryAbort=btnRetry|btnAbort
}; };
enum DlgSize { dsRegular=C4GUI_MessageDlgWdt, dsMedium=C4GUI_MessageDlgWdtMedium, dsSmall=C4GUI_MessageDlgWdtSmall }; enum DlgSize { dsRegular=C4GUI_MessageDlgWdt, dsMedium=C4GUI_MessageDlgWdtMedium, dsSmall=C4GUI_MessageDlgWdtSmall };
MessageDialog(const char *szMessage, const char *szCaption, DWORD dwButtons, Icons icoIcon, DlgSize eSize=dsRegular, int32_t *piConfigDontShowAgainSetting=NULL, bool fDefaultNo=false); MessageDialog(const char *szMessage, const char *szCaption, DWORD dwButtons, Icons icoIcon, DlgSize eSize=dsRegular, int32_t *piConfigDontShowAgainSetting=nullptr, bool fDefaultNo=false);
~MessageDialog(); ~MessageDialog();
protected: protected:
@ -2456,7 +2456,7 @@ namespace C4GUI
typedef C4KeyCB<TargetClass> Base; typedef C4KeyCB<TargetClass> Base;
typedef bool(TargetClass::*CallbackFunc)(); typedef bool(TargetClass::*CallbackFunc)();
public: public:
DlgKeyCB(TargetClass &rTarget, CallbackFunc pFuncDown, CallbackFunc pFuncUp=NULL, CallbackFunc pFuncPressed=NULL) DlgKeyCB(TargetClass &rTarget, CallbackFunc pFuncDown, CallbackFunc pFuncUp=nullptr, CallbackFunc pFuncPressed=nullptr)
: Base(rTarget, pFuncDown, pFuncUp, pFuncPressed) {} : Base(rTarget, pFuncDown, pFuncUp, pFuncPressed) {}
virtual bool CheckCondition() { return Base::rTarget.IsInActiveDlg(true) && Base::rTarget.IsVisible(); } virtual bool CheckCondition() { return Base::rTarget.IsInActiveDlg(true) && Base::rTarget.IsVisible(); }
@ -2468,7 +2468,7 @@ namespace C4GUI
typedef C4KeyCBPassKey<TargetClass> Base; typedef C4KeyCBPassKey<TargetClass> Base;
typedef bool(TargetClass::*CallbackFunc)(const C4KeyCodeEx &key); typedef bool(TargetClass::*CallbackFunc)(const C4KeyCodeEx &key);
public: public:
DlgKeyCBPassKey(TargetClass &rTarget, CallbackFunc pFuncDown, CallbackFunc pFuncUp=NULL, CallbackFunc pFuncPressed=NULL) DlgKeyCBPassKey(TargetClass &rTarget, CallbackFunc pFuncDown, CallbackFunc pFuncUp=nullptr, CallbackFunc pFuncPressed=nullptr)
: Base(rTarget, pFuncDown, pFuncUp, pFuncPressed) {} : Base(rTarget, pFuncDown, pFuncUp, pFuncPressed) {}
virtual bool CheckCondition() { return Base::rTarget.IsInActiveDlg(true) && Base::rTarget.IsVisible(); } virtual bool CheckCondition() { return Base::rTarget.IsInActiveDlg(true) && Base::rTarget.IsVisible(); }
@ -2480,7 +2480,7 @@ namespace C4GUI
typedef C4KeyCBEx<TargetClass, ParameterType> Base; typedef C4KeyCBEx<TargetClass, ParameterType> Base;
typedef bool(TargetClass::*CallbackFunc)(ParameterType par); typedef bool(TargetClass::*CallbackFunc)(ParameterType par);
public: public:
DlgKeyCBEx(TargetClass &rTarget, const ParameterType &par, CallbackFunc pFuncDown, CallbackFunc pFuncUp=NULL, CallbackFunc pFuncPressed=NULL) DlgKeyCBEx(TargetClass &rTarget, const ParameterType &par, CallbackFunc pFuncDown, CallbackFunc pFuncUp=nullptr, CallbackFunc pFuncPressed=nullptr)
: Base(rTarget, par, pFuncDown, pFuncUp, pFuncPressed) {} : Base(rTarget, par, pFuncDown, pFuncUp, pFuncPressed) {}
virtual bool CheckCondition() { return Base::rTarget.IsInActiveDlg(true) && Base::rTarget.IsVisible(); } virtual bool CheckCondition() { return Base::rTarget.IsInActiveDlg(true) && Base::rTarget.IsVisible(); }
@ -2493,7 +2493,7 @@ namespace C4GUI
typedef C4KeyCB<TargetClass> Base; typedef C4KeyCB<TargetClass> Base;
typedef bool(TargetClass::*CallbackFunc)(); typedef bool(TargetClass::*CallbackFunc)();
public: public:
ControlKeyCB(TargetClass &rTarget, CallbackFunc pFuncDown, CallbackFunc pFuncUp=NULL, CallbackFunc pFuncPressed=NULL) ControlKeyCB(TargetClass &rTarget, CallbackFunc pFuncDown, CallbackFunc pFuncUp=nullptr, CallbackFunc pFuncPressed=nullptr)
: Base(rTarget, pFuncDown, pFuncUp, pFuncPressed) {} : Base(rTarget, pFuncDown, pFuncUp, pFuncPressed) {}
virtual bool CheckCondition() { return Base::rTarget.HasDrawFocus(); } virtual bool CheckCondition() { return Base::rTarget.HasDrawFocus(); }
@ -2505,7 +2505,7 @@ namespace C4GUI
typedef C4KeyCBExPassKey<TargetClass, ParameterType> Base; typedef C4KeyCBExPassKey<TargetClass, ParameterType> Base;
typedef bool(TargetClass::*CallbackFunc)(const C4KeyCodeEx &key, const ParameterType &par); typedef bool(TargetClass::*CallbackFunc)(const C4KeyCodeEx &key, const ParameterType &par);
public: public:
ControlKeyCBExPassKey(TargetClass &rTarget, const ParameterType &rPar, CallbackFunc pFuncDown, CallbackFunc pFuncUp=NULL, CallbackFunc pFuncPressed=NULL) ControlKeyCBExPassKey(TargetClass &rTarget, const ParameterType &rPar, CallbackFunc pFuncDown, CallbackFunc pFuncUp=nullptr, CallbackFunc pFuncPressed=nullptr)
: Base(rTarget, rPar, pFuncDown, pFuncUp, pFuncPressed) {} : Base(rTarget, rPar, pFuncDown, pFuncUp, pFuncPressed) {}
virtual bool CheckCondition() { return Base::rTarget.HasDrawFocus(); } virtual bool CheckCondition() { return Base::rTarget.HasDrawFocus(); }
@ -2519,7 +2519,7 @@ namespace C4GUI
typedef C4KeyCB<TargetClass> Base; typedef C4KeyCB<TargetClass> Base;
typedef bool(TargetClass::*CallbackFunc)(); typedef bool(TargetClass::*CallbackFunc)();
public: public:
ControlKeyDlgCB(Control *pCtrl, TargetClass &rTarget, CallbackFunc pFuncDown, CallbackFunc pFuncUp=NULL, CallbackFunc pFuncPressed=NULL) ControlKeyDlgCB(Control *pCtrl, TargetClass &rTarget, CallbackFunc pFuncDown, CallbackFunc pFuncUp=nullptr, CallbackFunc pFuncPressed=nullptr)
: Base(rTarget, pFuncDown, pFuncUp, pFuncPressed), pCtrl(pCtrl) {} : Base(rTarget, pFuncDown, pFuncUp, pFuncPressed), pCtrl(pCtrl) {}
virtual bool CheckCondition() { return pCtrl && pCtrl->IsInActiveDlg(true) && pCtrl->IsVisible(); } virtual bool CheckCondition() { return pCtrl && pCtrl->IsInActiveDlg(true) && pCtrl->IsVisible(); }
@ -2564,7 +2564,7 @@ namespace C4GUI
void GetLastXY(int32_t &rX, int32_t &rY, DWORD &rdwKeys) { rX=x; rY=y; rdwKeys=dwKeys; } void GetLastXY(int32_t &rX, int32_t &rY, DWORD &rdwKeys) { rX=x; rY=y; rdwKeys=dwKeys; }
void ResetElements() // reset MouseOver/etc.-controls void ResetElements() // reset MouseOver/etc.-controls
{ pMouseOverElement=pPrevMouseOverElement=pDragElement=NULL; } { pMouseOverElement=pPrevMouseOverElement=pDragElement=nullptr; }
void ReleaseElements(); // reset MouseOver/etc.-controls, doing the appropriate callbacks void ReleaseElements(); // reset MouseOver/etc.-controls, doing the appropriate callbacks
void OnElementGetsInvisible(Element *pChild); // clear ptr void OnElementGetsInvisible(Element *pChild); // clear ptr
@ -2637,9 +2637,9 @@ namespace C4GUI
void SetMouseInGUI(bool fInGUI, bool fByMouse); void SetMouseInGUI(bool fInGUI, bool fByMouse);
bool RecheckMouseInput(); // do mouse movement iusing last input flags bool RecheckMouseInput(); // do mouse movement iusing last input flags
bool ShowMessage(const char *szMessage, const char *szCaption, Icons icoIcon, int32_t *piConfigDontShowAgainSetting=NULL); // show message bool ShowMessage(const char *szMessage, const char *szCaption, Icons icoIcon, int32_t *piConfigDontShowAgainSetting=nullptr); // show message
bool ShowErrorMessage(const char *szMessage); // show message: Error caption and icon bool ShowErrorMessage(const char *szMessage); // show message: Error caption and icon
bool ShowMessageModal(const char *szMessage, const char *szCaption, DWORD dwButtons, Icons icoIcon, int32_t *piConfigDontShowAgainSetting=NULL); // show modal message dlg bool ShowMessageModal(const char *szMessage, const char *szCaption, DWORD dwButtons, Icons icoIcon, int32_t *piConfigDontShowAgainSetting=nullptr); // show modal message dlg
ProgressDialog *ShowProgressDlg(const char *szMessage, const char *szCaption, int32_t iMaxProgress=100, int32_t iInitialProgress=0, Icons icoIcon=Ico_Wait); // create and show a progress dialog ProgressDialog *ShowProgressDlg(const char *szMessage, const char *szCaption, int32_t iMaxProgress=100, int32_t iInitialProgress=0, Icons icoIcon=Ico_Wait); // create and show a progress dialog
bool ShowModalDlg(Dialog *pDlg, bool fDestruct=true); // show any dialog modal and destruct it afterwards bool ShowModalDlg(Dialog *pDlg, bool fDestruct=true); // show any dialog modal and destruct it afterwards
bool ShowRemoveDlg(Dialog *pDlg); // show dialog, and flag it to delete itself when closed; return immediately bool ShowRemoveDlg(Dialog *pDlg); // show dialog, and flag it to delete itself when closed; return immediately

View File

@ -31,8 +31,8 @@ namespace C4GUI
// Button // Button
Button::Button(const char *szBtnText, const C4Rect &rtBounds) Button::Button(const char *szBtnText, const C4Rect &rtBounds)
: Control(rtBounds), pCustomGfx(NULL), pCustomGfxDown(NULL), fDown(false), fMouseOver(false), fEnabled(true), : Control(rtBounds), pCustomGfx(nullptr), pCustomGfxDown(nullptr), fDown(false), fMouseOver(false), fEnabled(true),
dwCustomFontClr(0), pCustomFont(NULL) dwCustomFontClr(0), pCustomFont(nullptr)
{ {
// key callbacks // key callbacks
C4CustomKey::CodeList keys; C4CustomKey::CodeList keys;
@ -252,7 +252,7 @@ namespace C4GUI
void IconButton::SetIcon(Icons eUseIcon) void IconButton::SetIcon(Icons eUseIcon)
{ {
if (eUseIcon>=0) fctIcon = Icon::GetIconFacet(eUseIcon); else fctIcon.Surface=NULL; if (eUseIcon>=0) fctIcon = Icon::GetIconFacet(eUseIcon); else fctIcon.Surface=nullptr;
} }
@ -302,7 +302,7 @@ namespace C4GUI
// FacetButton // FacetButton
FacetButton::FacetButton(const C4Facet &rBaseFct, const C4Facet &rHighlightFct, const FLOAT_RECT &rtfBounds, char cHotkey) FacetButton::FacetButton(const C4Facet &rBaseFct, const C4Facet &rHighlightFct, const FLOAT_RECT &rtfBounds, char cHotkey)
: Button("", C4Rect(rtfBounds)), fctBase(rBaseFct), fctHighlight(rHighlightFct), dwTextClrInact(0x7f000000), dwTextClrAct(0xff000000), rcfDrawBounds(rtfBounds), pFont(NULL), fFontZoom(1.0f) : Button("", C4Rect(rtfBounds)), fctBase(rBaseFct), fctHighlight(rHighlightFct), dwTextClrInact(0x7f000000), dwTextClrAct(0xff000000), rcfDrawBounds(rtfBounds), pFont(nullptr), fFontZoom(1.0f)
{ {
// ctor // ctor
this->cHotkey = cHotkey; this->cHotkey = cHotkey;

View File

@ -33,7 +33,7 @@ namespace C4GUI
// CheckBox // CheckBox
CheckBox::CheckBox(const C4Rect &rtBounds, const char *szCaption, bool fChecked) CheckBox::CheckBox(const C4Rect &rtBounds, const char *szCaption, bool fChecked)
: Control(rtBounds), fChecked(fChecked), fMouseOn(false), fEnabled(true), pFont(NULL) : Control(rtBounds), fChecked(fChecked), fMouseOn(false), fEnabled(true), pFont(nullptr)
, dwEnabledClr(C4GUI_CheckboxFontClr), dwDisabledClr(C4GUI_CheckboxDisabledFontClr), cHotkey(0) , dwEnabledClr(C4GUI_CheckboxFontClr), dwDisabledClr(C4GUI_CheckboxDisabledFontClr), cHotkey(0)
{ {
if (szCaption) if (szCaption)
@ -50,7 +50,7 @@ namespace C4GUI
} }
pKeyCheck = new C4KeyBinding(Keys, "GUICheckboxToggle", KEYSCOPE_Gui, pKeyCheck = new C4KeyBinding(Keys, "GUICheckboxToggle", KEYSCOPE_Gui,
new ControlKeyCB<CheckBox>(*this, &CheckBox::KeyCheck), C4CustomKey::PRIO_Ctrl); new ControlKeyCB<CheckBox>(*this, &CheckBox::KeyCheck), C4CustomKey::PRIO_Ctrl);
pCBHandler = NULL; pCBHandler = nullptr;
} }
CheckBox::~CheckBox() CheckBox::~CheckBox()

View File

@ -65,8 +65,8 @@ namespace C4GUI
// ComboBox // ComboBox
ComboBox::ComboBox(const C4Rect &rtBounds) : ComboBox::ComboBox(const C4Rect &rtBounds) :
Control(rtBounds), iOpenMenu(0), pFillCallback(NULL), fReadOnly(false), fSimple(false), fMouseOver(false), Control(rtBounds), iOpenMenu(0), pFillCallback(nullptr), fReadOnly(false), fSimple(false), fMouseOver(false),
pUseFont(NULL), dwFontClr(C4GUI_ComboFontClr), dwBGClr(C4GUI_StandardBGColor), dwBorderClr(0), pFctSideArrow(NULL) pUseFont(nullptr), dwFontClr(C4GUI_ComboFontClr), dwBGClr(C4GUI_StandardBGColor), dwBorderClr(0), pFctSideArrow(nullptr)
{ {
*Text=0; *Text=0;
// key callbacks - lots of possibilities to get the dropdown // key callbacks - lots of possibilities to get the dropdown

View File

@ -51,7 +51,7 @@ namespace C4GUI
Container::Container() : Element() Container::Container() : Element()
{ {
// zero fields // zero fields
pFirst = pLast = NULL; pFirst = pLast = nullptr;
} }
Container::~Container() Container::~Container()
@ -74,12 +74,12 @@ namespace C4GUI
{ {
// unlink from list // unlink from list
Element *pANext = pFirst->pNext; Element *pANext = pFirst->pNext;
pFirst->pPrev = pFirst->pNext = NULL; pFirst->pPrev = pFirst->pNext = nullptr;
pFirst->pParent = NULL; pFirst->pParent = nullptr;
if ((pFirst = pANext)) if ((pFirst = pANext))
pFirst->pPrev = NULL; pFirst->pPrev = nullptr;
else else
pLast = NULL; pLast = nullptr;
} }
else else
delete pFirst; delete pFirst;
@ -98,7 +98,7 @@ namespace C4GUI
if (pChild->pPrev) pChild->pPrev->pNext = pChild->pNext; else pFirst = pChild->pNext; if (pChild->pPrev) pChild->pPrev->pNext = pChild->pNext; else pFirst = pChild->pNext;
if (pChild->pNext) pChild->pNext->pPrev = pChild->pPrev; else pLast = pChild->pPrev; if (pChild->pNext) pChild->pNext->pPrev = pChild->pPrev; else pLast = pChild->pPrev;
// unset parent; invalidates pPrev/pNext // unset parent; invalidates pPrev/pNext
pChild->pParent = NULL; pChild->pParent = nullptr;
// element has been removed // element has been removed
AfterElementRemoval(); AfterElementRemoval();
} }
@ -112,7 +112,7 @@ namespace C4GUI
if (pChild->pNext) pChild->pNext->pPrev = pChild->pPrev; else pLast = pChild->pPrev; if (pChild->pNext) pChild->pNext->pPrev = pChild->pPrev; else pLast = pChild->pPrev;
// readd to front of list // readd to front of list
if (pLast) pLast->pNext = pChild; else pFirst = pChild; if (pLast) pLast->pNext = pChild; else pFirst = pChild;
pChild->pPrev = pLast; pChild->pNext = NULL; pLast = pChild; pChild->pPrev = pLast; pChild->pNext = nullptr; pLast = pChild;
} }
void Container::AddElement(Element *pChild) void Container::AddElement(Element *pChild)
@ -123,7 +123,7 @@ namespace C4GUI
if (pChild->pParent) pChild->pParent->RemoveElement(pChild); if (pChild->pParent) pChild->pParent->RemoveElement(pChild);
// add to end of list // add to end of list
if (pLast) pLast->pNext = pChild; else pFirst = pChild; if (pLast) pLast->pNext = pChild; else pFirst = pChild;
pChild->pPrev = pLast; pChild->pNext = NULL; pLast = pChild; pChild->pPrev = pLast; pChild->pNext = nullptr; pLast = pChild;
pChild->pParent = this; pChild->pParent = this;
assert(pChild->pNext != pChild); assert(pChild->pNext != pChild);
@ -140,7 +140,7 @@ namespace C4GUI
if (pChild->pNext) pChild->pNext->pPrev = pChild->pPrev; else pLast = pChild->pPrev; if (pChild->pNext) pChild->pNext->pPrev = pChild->pPrev; else pLast = pChild->pPrev;
// add to end of list // add to end of list
if (pLast) pLast->pNext = pChild; else pFirst = pChild; if (pLast) pLast->pNext = pChild; else pFirst = pChild;
pChild->pPrev = pLast; pChild->pNext = NULL; pLast = pChild; pChild->pPrev = pLast; pChild->pNext = nullptr; pLast = pChild;
assert(pChild->pNext != pChild); assert(pChild->pNext != pChild);
assert(pChild->pPrev != pChild); assert(pChild->pPrev != pChild);
@ -173,7 +173,7 @@ namespace C4GUI
if (fBackwards) if (fBackwards)
{ {
// this is last // this is last
if (pPrevElement == this) return NULL; if (pPrevElement == this) return nullptr;
// no previous given? // no previous given?
if (!pPrevElement) if (!pPrevElement)
// then use last nested for backwards search // then use last nested for backwards search
@ -198,7 +198,7 @@ namespace C4GUI
} }
// nothing found // nothing found
} }
return NULL; return nullptr;
} }
Element *Container::GetFirstNestedElement(bool fBackwards) Element *Container::GetFirstNestedElement(bool fBackwards)
@ -223,7 +223,7 @@ namespace C4GUI
Element *Container::GetElementByIndex(int32_t i) Element *Container::GetElementByIndex(int32_t i)
{ {
// get next until end of list or queried index is reached // get next until end of list or queried index is reached
// if i is negative or equal or larger than childcount, the loop will never break and NULL returned // if i is negative or equal or larger than childcount, the loop will never break and nullptr returned
Element *pEl; Element *pEl;
for (pEl = pFirst; i-- && pEl; pEl=pEl->pNext) {} for (pEl = pFirst; i-- && pEl; pEl=pEl->pNext) {}
return pEl; return pEl;
@ -259,7 +259,7 @@ namespace C4GUI
{ {
if (IsParentOf(pFocus)) if (IsParentOf(pFocus))
{ {
pDlg->SetFocus(NULL, false); pDlg->SetFocus(nullptr, false);
} }
} }
} }
@ -333,7 +333,7 @@ namespace C4GUI
// -------------------------------------------------- // --------------------------------------------------
// ScrollBar // ScrollBar
ScrollBar::ScrollBar(C4Rect &rcBounds, ScrollWindow *pWin) : fAutoHide(false), fHorizontal(false), iCBMaxRange(100), pScrollCallback(NULL), pCustomGfx(NULL) ScrollBar::ScrollBar(C4Rect &rcBounds, ScrollWindow *pWin) : fAutoHide(false), fHorizontal(false), iCBMaxRange(100), pScrollCallback(nullptr), pCustomGfx(nullptr)
{ {
// set bounds // set bounds
this->rcBounds = rcBounds; this->rcBounds = rcBounds;
@ -347,7 +347,7 @@ namespace C4GUI
Update(); Update();
} }
ScrollBar::ScrollBar(C4Rect &rcBounds, bool fHorizontal, BaseParCallbackHandler<int32_t> *pCB, int32_t iCBMaxRange) : fAutoHide(false), fHorizontal(fHorizontal), iCBMaxRange(iCBMaxRange), pScrollWindow(NULL), pCustomGfx(NULL) ScrollBar::ScrollBar(C4Rect &rcBounds, bool fHorizontal, BaseParCallbackHandler<int32_t> *pCB, int32_t iCBMaxRange) : fAutoHide(false), fHorizontal(fHorizontal), iCBMaxRange(iCBMaxRange), pScrollWindow(nullptr), pCustomGfx(nullptr)
{ {
// set bounds // set bounds
this->rcBounds = rcBounds; this->rcBounds = rcBounds;
@ -361,7 +361,7 @@ namespace C4GUI
ScrollBar::~ScrollBar() ScrollBar::~ScrollBar()
{ {
if (pScrollWindow) { pScrollWindow->pScrollBar = NULL; } if (pScrollWindow) { pScrollWindow->pScrollBar = nullptr; }
if (pScrollCallback) pScrollCallback->DeRef(); if (pScrollCallback) pScrollCallback->DeRef();
} }
@ -502,7 +502,7 @@ namespace C4GUI
// ScrollWindow // ScrollWindow
ScrollWindow::ScrollWindow(Window *pParentWindow) ScrollWindow::ScrollWindow(Window *pParentWindow)
: Window(), pScrollBar(NULL), iScrollY(0), iClientHeight(0), fHasBar(true), iFrozen(0) : Window(), pScrollBar(nullptr), iScrollY(0), iClientHeight(0), fHasBar(true), iFrozen(0)
{ {
// place within client rect // place within client rect
C4Rect rtBounds = pParentWindow->GetClientRect(); C4Rect rtBounds = pParentWindow->GetClientRect();

Some files were not shown because too many files have changed in this diff Show More