Fixed webpage URL in credits

Fixed lighting of trees (thanks to Reinhard Niehoff)
Updated Visual Studio solution to VS 2019
Small optimizations:
- Try to make use of reserve() functions of STL containers
- Use MakePathStr to create paths

git-svn-id: https://svn.code.sf.net/p/extremetuxracer/code/trunk@714 0420edf4-82e4-42fc-9478-35b55e6d67a3
master
pkeus 2019-11-04 09:09:53 +00:00
parent 5aefa9fb74
commit e79a1f28b3
11 changed files with 39 additions and 39 deletions

View File

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.25914.0
# Visual Studio Version 16
VisualStudioVersion = 16.0.29424.173
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExtremeTuxRacer", "ExtremeTuxRacer.vcxproj", "{CA668921-360A-47CE-937D-4B5307FE9FEE}"
EndProject

View File

@ -21,26 +21,27 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{CA668921-360A-47CE-937D-4B5307FE9FEE}</ProjectGuid>
<RootNamespace>ExtremeTuxRacer</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141_xp</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseNativeEnvironment>true</UseNativeEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseNativeEnvironment>true</UseNativeEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141_xp</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<UseNativeEnvironment>true</UseNativeEnvironment>
@ -48,7 +49,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<UseNativeEnvironment>true</UseNativeEnvironment>
@ -94,7 +95,7 @@
<ForcedIncludeFiles>windows.h;bh.h</ForcedIncludeFiles>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>bh.h</PrecompiledHeaderFile>
<AdditionalOptions>/Zc:inline /Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4100;4512</DisableSpecificWarnings>
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
@ -117,7 +118,7 @@
<SDLCheck>true</SDLCheck>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>bh.h</PrecompiledHeaderFile>
<AdditionalOptions>/Zc:inline /Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4100;4512</DisableSpecificWarnings>
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
@ -145,7 +146,7 @@
<ForcedIncludeFiles>windows.h;bh.h</ForcedIncludeFiles>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>bh.h</PrecompiledHeaderFile>
<AdditionalOptions>/Zc:inline /Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4100;4512</DisableSpecificWarnings>
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
@ -177,7 +178,7 @@
<BufferSecurityCheck>false</BufferSecurityCheck>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>bh.h</PrecompiledHeaderFile>
<AdditionalOptions>/Zc:inline /Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4100;4512</DisableSpecificWarnings>
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
<RuntimeTypeInfo>false</RuntimeTypeInfo>

View File

@ -47,8 +47,8 @@
*[offs] 30 [text] Translators up to version 0.6.0 unknown [font] 0 [size] 3 [col] 0
*[offs] 50 [text] Copyright © 1999 - 2000 Jasmin F. Patry[font] 0 [size] 3 [col] 0
*[offs] 25 [text] Copyright © 2011-2018 The Extreme Tux Racer Team[font] 0 [size] 3 [col] 0
*[offs] 40 [text] on the web at: http://extremetuxracer.sourceforge.net [font] 0 [size] 3 [col] 0
*[offs] 25 [text] Copyright © 2011-2019 The Extreme Tux Racer Team[font] 0 [size] 3 [col] 0
*[offs] 40 [text] on the web at: https://sourceforge.net/projects/extremetuxracer/ [font] 0 [size] 3 [col] 0
*[offs] 30 [text] Use of the name "Extreme Tux Racer" is granted to any forks or continuations. [font] 0 [size] 2 [col] 0
*[offs] 50 [text] ----------------------- [font] 0 [size] 3 [col] 0
*[offs] 30 [text] This program is distributed in the hope that it will be useful, [font] 1 [size] 2 [col] 0

View File

@ -173,7 +173,7 @@ bool FileExists(const std::string& filename) {
}
bool FileExists(const std::string& dir, const std::string& filename) {
return FileExists(dir + SEP + filename);
return FileExists(MakePathStr(dir, filename));
}
#ifndef OS_WIN32_MSC

View File

@ -375,9 +375,8 @@ void CCourse::LoadItemList() {
std::string name = SPStrN(*line, "name");
std::size_t type = ObjectIndex[name];
if (ObjTypes[type].texture == nullptr && ObjTypes[type].drawable) {
std::string terrpath = param.obj_dir + SEP + ObjTypes[type].textureFile;
ObjTypes[type].texture = new TTexture();
ObjTypes[type].texture->Load(terrpath, false);
ObjTypes[type].texture->Load(MakePathStr(param.obj_dir, ObjTypes[type].textureFile), false);
}
if (ObjTypes[type].collidable)
@ -455,9 +454,8 @@ bool CCourse::LoadAndConvertObjectMap() {
double xx = (nx - x) / (double)((double)nx - 1.0) * curr_course->size.x;
double zz = -(int)(ny - y) / (double)((double)ny - 1.0) * curr_course->size.y;
if (ObjTypes[type].texture == nullptr && ObjTypes[type].drawable) {
std::string terrpath = param.obj_dir + SEP + ObjTypes[type].textureFile;
ObjTypes[type].texture = new TTexture();
ObjTypes[type].texture->Load(terrpath, false);
ObjTypes[type].texture->Load(MakePathStr(param.obj_dir, ObjTypes[type].textureFile), false);
}
// set random height and diam - see constants above
@ -649,7 +647,7 @@ bool CCourseList::Load(const std::string& dir) {
courses[i].name = SPStrN(*line1, "name");
courses[i].dir = SPStrN(*line1, "dir", "nodir");
std::string coursepath = dir + SEP + courses[i].dir;
std::string coursepath = MakePathStr(dir, courses[i].dir);
if (DirExists(coursepath.c_str())) {
// preview
std::string previewfile = coursepath + SEP "preview.png";

View File

@ -93,10 +93,10 @@ struct TItem : public TObject {
};
struct TCourse {
std::string name;
sf::String name;
std::string dir;
std::string author;
std::string desc[MAX_DESCRIPTION_LINES];
sf::String desc[MAX_DESCRIPTION_LINES];
std::size_t num_lines;
TTexture* preview;
TVector2d size;

View File

@ -120,10 +120,7 @@ int CFont::LoadFont(const std::string& name, const std::string& path) {
}
int CFont::LoadFont(const std::string& name, const std::string& dir, const std::string& filename) {
std::string path = dir;
path += SEP;
path += filename;
return LoadFont(name, path);
return LoadFont(name, MakePathStr(dir, filename));
}
bool CFont::LoadFontlist() {

View File

@ -305,7 +305,7 @@ bool CCharacter::LoadCharacterList() {
std::string typestr = SPStrN(*line, "type", "unknown");
CharList[i].type = SPIntN(char_type_index, typestr, -1);
std::string charpath = param.char_dir + SEP + CharList[i].dir;
std::string charpath = MakePathStr(param.char_dir, CharList[i].dir);
if (DirExists(charpath.c_str())) {
std::string previewfile = charpath + SEP "preview.png";

View File

@ -259,7 +259,7 @@ void set_gl_options(TRenderMode mode) {
glEnable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
glDisable(GL_NORMALIZE);
glEnable(GL_NORMALIZE);
glEnable(GL_ALPHA_TEST);
glEnable(GL_BLEND);
glDisable(GL_STENCIL_TEST);

View File

@ -33,7 +33,9 @@ const std::string errorString = "error";
// --------------------------------------------------------------------
std::string MakePathStr(const std::string& src, const std::string& add) {
std::string res = src;
std::string res;
res.reserve(src.size() + add.size() + 1);
res += src;
res += SEP;
res += add;
return res;
@ -195,12 +197,8 @@ static std::string SPItemN(const std::string &s, const std::string &tag) {
std::size_t i = SPosN(s, tg);
if (i == std::string::npos) return "";
std::size_t ii = i + tg.size();
std::string item;
while (ii < s.size() && s[ii] != '[' && s[ii] != '#') {
item += s[ii];
ii++;
}
return item;
std::size_t iii = s.find_first_of("[#", ii);
return s.substr(ii, iii - ii);
}
std::string SPStrN(const std::string &s, const std::string &tag, const std::string& def) {
@ -286,6 +284,9 @@ void SPAddFloatN(std::string &s, const std::string &tag, const float val, std::s
}
void SPAddStrN(std::string &s, const std::string &tag, const std::string &val) {
size_t addsize = tag.size() + 2 + val.size();
if (s.capacity() < s.size() + addsize)
s.reserve(s.size() + addsize);
s += '[';
s += tag;
s += ']';
@ -315,6 +316,9 @@ void SPAddVec3N(std::string &s, const std::string &tag, const TVector3d &val, st
}
void SPAddBoolN(std::string &s, const std::string &tag, const bool val) {
size_t addsize = 2 + tag.size() + (val ? 4 : 5);
if (s.capacity() < s.size() + addsize)
s.reserve(s.size() + addsize);
s += '[';
s += tag;
s += ']';
@ -368,7 +372,7 @@ void CSPList::Add(const std::string& line) {
}
void CSPList::Add(std::string&& line) {
push_back(line);
emplace_back(std::move(line));
}
void CSPList::Print() const {
@ -377,7 +381,7 @@ void CSPList::Print() const {
}
bool CSPList::Load(const std::string &filepath) {
std::ifstream tempfile(filepath.c_str());
std::ifstream tempfile(filepath);
if (!tempfile) {
Message("CSPList::Load - unable to open " + filepath);
@ -418,11 +422,11 @@ bool CSPList::Load(const std::string &filepath) {
}
bool CSPList::Load(const std::string& dir, const std::string& filename) {
return Load(dir + SEP + filename);
return Load(MakePathStr(dir, filename));
}
bool CSPList::Save(const std::string &filepath) const {
std::ofstream tempfile(filepath.c_str());
std::ofstream tempfile(filepath);
if (!tempfile) {
Message("CSPList::Save - unable to open " + filepath);
return false;
@ -435,7 +439,7 @@ bool CSPList::Save(const std::string &filepath) const {
}
bool CSPList::Save(const std::string& dir, const std::string& filename) const {
return Save(dir + SEP + filename);
return Save(MakePathStr(dir, filename));
}
void CSPList::MakeIndex(std::unordered_map<std::string, std::size_t>& index, const std::string &tag) {

View File

@ -46,7 +46,7 @@ bool TTexture::Load(const std::string& filename, bool repeatable) {
}
bool TTexture::Load(const std::string& dir, const std::string& filename, bool repeatable) {
return Load(dir + SEP + filename, repeatable);
return Load(MakePathStr(dir, filename), repeatable);
}
void TTexture::Bind() {