rpms/scorched3d/devel scorched3d-opengl-without-context.patch, NONE, 1.1 scorched3d-64bit.patch, 1.4, 1.5 scorched3d.spec, 1.11, 1.12
Hans de Goede (jwrdegoede)
fedora-extras-commits at redhat.com
Sun Feb 12 11:16:24 UTC 2006
Author: jwrdegoede
Update of /cvs/extras/rpms/scorched3d/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv7016
Modified Files:
scorched3d-64bit.patch scorched3d.spec
Added Files:
scorched3d-opengl-without-context.patch
Log Message:
* Sun Feb 12 2006 <j.w.r.degoede at hhs.nl> - 39.1-3
- fix server crashing with certain landscape types (patch 13)
scorched3d-opengl-without-context.patch:
--- NEW FILE scorched3d-opengl-without-context.patch ---
diff -ur scorched.orig/src/landscape/LandscapeMaps.cpp scorched/src/landscape/LandscapeMaps.cpp
--- scorched.orig/src/landscape/LandscapeMaps.cpp 2006-02-12 11:09:19.000000000 +0100
+++ scorched/src/landscape/LandscapeMaps.cpp 2006-02-12 10:27:33.000000000 +0100
@@ -92,7 +92,8 @@
void LandscapeMaps::generateObjects(
ScorchedContext &context,
- ProgressCounter *counter)
+ ProgressCounter *counter,
+ bool server)
{
LandscapeTex *tex = &getTex(context);
@@ -115,7 +114,7 @@
}
RandomGenerator objectsGenerator;
objectsGenerator.seed(getSeed());
- objects_.generate(objectsGenerator, *place, context, counter);
+ objects_.generate(objectsGenerator, *place, context, counter, server);
}
}
}
diff -ur scorched.orig/src/landscape/LandscapeMaps.h scorched/src/landscape/LandscapeMaps.h
--- scorched.orig/src/landscape/LandscapeMaps.h 2005-06-13 10:24:37.000000000 +0200
+++ scorched/src/landscape/LandscapeMaps.h 2006-02-12 10:23:51.000000000 +0100
@@ -57,7 +57,8 @@
LandscapeDefinition *hdef,
ProgressCounter *counter = 0);
void generateObjects(ScorchedContext &context,
- ProgressCounter *counter = 0);
+ ProgressCounter *counter = 0,
+ bool server = false);
// Compresses the level into a form that can be
// sent to the clients
diff -ur scorched.orig/src/landscape/LandscapeObjects.cpp scorched/src/landscape/LandscapeObjects.cpp
--- scorched.orig/src/landscape/LandscapeObjects.cpp 2005-07-17 13:32:05.000000000 +0200
+++ scorched/src/landscape/LandscapeObjects.cpp 2006-02-12 10:36:17.000000000 +0100
@@ -111,7 +111,8 @@
void LandscapeObjects::generate(RandomGenerator &generator,
LandscapePlace &place,
ScorchedContext &context,
- ProgressCounter *counter)
+ ProgressCounter *counter,
+ bool server)
{
if (counter) counter->setNewOp("Populating Landscape");
@@ -130,7 +131,7 @@
LandscapePlaceObjectsPlacementTree *placement =
(LandscapePlaceObjectsPlacementTree *)
place.objects[i];
- gen.generateObjects(generator, *placement, context, counter);
+ gen.generateObjects(generator, *placement, context, counter, server);
}
else if (0 == strcmp(placementtype.c_str(), "mask"))
{
@@ -139,7 +140,7 @@
LandscapePlaceObjectsPlacementMask *placement =
(LandscapePlaceObjectsPlacementMask *)
place.objects[i];
- gen.generateObjects(generator, *placement, context, counter);
+ gen.generateObjects(generator, *placement, context, counter, server);
}
else if (0 == strcmp(placementtype.c_str(), "direct"))
{
@@ -148,7 +149,7 @@
LandscapePlaceObjectsPlacementDirect *placement =
(LandscapePlaceObjectsPlacementDirect *)
place.objects[i];
- gen.generateObjects(generator, *placement, context, counter);
+ gen.generateObjects(generator, *placement, context, counter, server);
}
else
{
diff -ur scorched.orig/src/landscape/LandscapeObjects.h scorched/src/landscape/LandscapeObjects.h
--- scorched.orig/src/landscape/LandscapeObjects.h 2005-07-17 13:32:05.000000000 +0200
+++ scorched/src/landscape/LandscapeObjects.h 2006-02-12 10:28:11.000000000 +0100
@@ -40,7 +40,8 @@
void generate(RandomGenerator &generator,
LandscapePlace &place,
ScorchedContext &context,
- ProgressCounter *counter = 0);
+ ProgressCounter *counter = 0,
+ bool server = false);
void removeAllObjects();
void removeObjects(ScorchedContext &context,
diff -ur scorched.orig/src/landscape/LandscapeObjectsPlacement.cpp scorched/src/landscape/LandscapeObjectsPlacement.cpp
--- scorched.orig/src/landscape/LandscapeObjectsPlacement.cpp 2006-02-12 11:09:19.000000000 +0100
+++ scorched/src/landscape/LandscapeObjectsPlacement.cpp 2006-02-12 10:45:42.000000000 +0100
@@ -34,7 +34,8 @@
RandomGenerator &generator,
LandscapePlaceObjectsPlacementTree &placement,
ScorchedContext &context,
- ProgressCounter *counter)
+ ProgressCounter *counter,
+ bool server)
{
// Generate a map of where the trees should go
unsigned char objectMap[64 * 64];
@@ -164,7 +165,12 @@
placement.objecttype.c_str());
}
- float mult = (float) Landscape::instance()->getMainMap().getWidth() / 256.0f;
+ float mult;
+ // Do not draw/use Landscape::instance()->getMainMap() when running
+ // as server, because LandScape uses openGL functions and the server
+ // does not have an openGL context set.
+ if (!server)
+ mult = (float) Landscape::instance()->getMainMap().getWidth() / 256.0f;
LandscapeObjectsGroupEntry *group = 0;
if (placement.groupname.c_str()[0])
@@ -219,8 +226,12 @@
//Vector position(entry->posX, entry->posY, entry->posZ);
//DeformLandscape::flattenArea(context, position, 0);
- GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
- lx * mult, ly * mult, modelSize * entry->size * mult, 1.0f);
+ // Do not draw/use Landscape::instance()->getMainMap() when running
+ // as server, because LandScape uses openGL functions and the server
+ // does not have an openGL context set.
+ if (!server)
+ GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
+ lx * mult, ly * mult, modelSize * entry->size * mult, 1.0f);
}
else
{
@@ -237,8 +248,12 @@
entry->removeaction = placement.removeaction;
entry->burnaction = placement.burnaction;
- GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
- lx * mult, ly * mult, entry->size * mult, 1.0f);
+ // Do not draw/use Landscape::instance()->getMainMap() when running
+ // as server, because LandScape uses openGL functions and the server
+ // does not have an openGL context set.
+ if (!server)
+ GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
+ lx * mult, ly * mult, entry->size * mult, 1.0f);
}
context.landscapeMaps->getObjects().addObject(
@@ -260,7 +275,8 @@
RandomGenerator &generator,
LandscapePlaceObjectsPlacementMask &placement,
ScorchedContext &context,
- ProgressCounter *counter)
+ ProgressCounter *counter,
+ bool server)
{
bool pine = true;
float snowHeight = 20.0f;
@@ -313,10 +329,14 @@
placement.groupname.c_str(), true);
}
- float mult = (float) Landscape::instance()->getMainMap().getWidth() / 256.0f;
-
+ float mult;
const int NoIterations = placement.numobjects;
int objectCount = 0;
+ // Do not draw/use Landscape::instance()->getMainMap() when running
+ // as server, because LandScape uses openGL functions and the server
+ // does not have an openGL context set.
+ if (!server)
+ mult = (float) Landscape::instance()->getMainMap().getWidth() / 256.0f;
for (int i=0; i<NoIterations; i++)
{
if (i % 1000 == 0) if (counter)
@@ -402,8 +422,12 @@
//Vector position(entry->posX, entry->posY, entry->posZ);
//DeformLandscape::flattenArea(context, position, 0);
- GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
- lx * mult, ly * mult, modelSize * entry->size * mult, 1.0f);
+ // Do not draw/use Landscape::instance()->getMainMap() when running
+ // as server, because LandScape uses openGL functions and the server
+ // does not have an openGL context set.
+ if (!server)
+ GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
+ lx * mult, ly * mult, modelSize * entry->size * mult, 1.0f);
}
else
{
@@ -420,8 +444,12 @@
entry->removeaction = placement.removeaction;
entry->burnaction = placement.burnaction;
- GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
- lx * mult, ly * mult, entry->size * mult, 1.0f);
+ // Do not draw/use Landscape::instance()->getMainMap() when running
+ // as server, because LandScape uses openGL functions and the server
+ // does not have an openGL context set.
+ if (!server)
+ GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
+ lx * mult, ly * mult, entry->size * mult, 1.0f);
}
context.landscapeMaps->getObjects().addObject(
@@ -444,7 +472,8 @@
RandomGenerator &generator,
LandscapePlaceObjectsPlacementDirect &placement,
ScorchedContext &context,
- ProgressCounter *counter)
+ ProgressCounter *counter,
+ bool server)
{
bool pine = true;
float snowHeight = 20.0f;
@@ -489,7 +518,12 @@
placement.groupname.c_str(), true);
}
- float mult = (float) Landscape::instance()->getMainMap().getWidth() / 256.0f;
+ float mult;
+ // Do not draw/use Landscape::instance()->getMainMap() when running
+ // as server, because LandScape uses openGL functions and the server
+ // does not have an openGL context set.
+ if (!server)
+ mult = (float) Landscape::instance()->getMainMap().getWidth() / 256.0f;
std::list<LandscapePlaceObjectsPlacementDirect::Position>::iterator itor;
int i = 0;
@@ -526,9 +560,13 @@
//Vector position(entry->posX, entry->posY, entry->posZ);
//DeformLandscape::flattenArea(context, position, 0);
- GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
- position.position[0] * mult, position.position[1] * mult,
- modelSize * entry->size * mult, 1.0f);
+ // Do not draw/use Landscape::instance()->getMainMap() when running
+ // as server, because LandScape uses openGL functions and the server
+ // does not have an openGL context set.
+ if (!server)
+ GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
+ position.position[0] * mult, position.position[1] * mult,
+ modelSize * entry->size * mult, 1.0f);
}
else
{
@@ -545,9 +583,13 @@
entry->removeaction = placement.removeaction;
entry->burnaction = placement.burnaction;
- GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
- position.position[0] * mult, position.position[1] * mult,
- entry->size * mult, 1.0f);
+ // Do not draw/use Landscape::instance()->getMainMap() when running
+ // as server, because LandScape uses openGL functions and the server
+ // does not have an openGL context set.
+ if (!server)
+ GLBitmapModifier::addCircle(Landscape::instance()->getMainMap(),
+ position.position[0] * mult, position.position[1] * mult,
+ entry->size * mult, 1.0f);
}
context.landscapeMaps->getObjects().addObject(
diff -ur scorched.orig/src/landscape/LandscapeObjectsPlacement.h scorched/src/landscape/LandscapeObjectsPlacement.h
--- scorched.orig/src/landscape/LandscapeObjectsPlacement.h 2005-06-15 16:21:59.000000000 +0200
+++ scorched/src/landscape/LandscapeObjectsPlacement.h 2006-02-12 10:35:17.000000000 +0100
@@ -33,7 +33,8 @@
RandomGenerator &generator,
LandscapePlaceObjectsPlacementTree &placement,
ScorchedContext &context,
- ProgressCounter *counter = 0);
+ ProgressCounter *counter = 0,
+ bool server = false);
};
class LandscapePlaceObjectsPlacementMask;
@@ -44,7 +45,8 @@
RandomGenerator &generator,
LandscapePlaceObjectsPlacementMask &placement,
ScorchedContext &context,
- ProgressCounter *counter = 0);
+ ProgressCounter *counter = 0,
+ bool server = false);
};
class LandscapePlaceObjectsPlacementDirect;
@@ -55,7 +57,8 @@
RandomGenerator &generator,
LandscapePlaceObjectsPlacementDirect &placement,
ScorchedContext &context,
- ProgressCounter *counter = 0);
+ ProgressCounter *counter = 0,
+ bool server = false);
};
#endif // __INCLUDE_LandscapeObjectsPlacementh_INCLUDE__
diff -ur scorched.orig/src/server/ServerNewGameState.cpp scorched/src/server/ServerNewGameState.cpp
--- scorched.orig/src/server/ServerNewGameState.cpp 2006-02-12 11:09:19.000000000 +0100
+++ scorched/src/server/ServerNewGameState.cpp 2006-02-12 10:24:15.000000000 +0100
@@ -133,7 +133,7 @@
ScorchedServer::instance()->getContext().landscapeMaps->generateHMap(
ScorchedServer::instance()->getContext(), defn);
ScorchedServer::instance()->getContext().landscapeMaps->generateObjects(
- ScorchedServer::instance()->getContext());
+ ScorchedServer::instance()->getContext(), 0, 1);
// Set the start positions for the tanks
// Must be generated after the level as it alters the
scorched3d-64bit.patch:
Index: scorched3d-64bit.patch
===================================================================
RCS file: /cvs/extras/rpms/scorched3d/devel/scorched3d-64bit.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- scorched3d-64bit.patch 9 Feb 2006 21:57:31 -0000 1.4
+++ scorched3d-64bit.patch 12 Feb 2006 11:16:24 -0000 1.5
@@ -1,16 +1,3 @@
-Only in scorched/data/globalmods/apoc/data/accessories/weapons: moab.txt.cvs
-diff -ur scorched.orig/src/GLEXT/GLTexture.cpp scorched/src/GLEXT/GLTexture.cpp
---- scorched.orig/src/GLEXT/GLTexture.cpp 2006-02-09 14:52:14.000000000 +0100
-+++ scorched/src/GLEXT/GLTexture.cpp 2006-02-09 14:47:28.000000000 +0100
-@@ -119,7 +119,7 @@
- if (height == 1 || width == 1) texType_ = GL_TEXTURE_1D;
- else texType_ = GL_TEXTURE_2D;
-
-- if (!textureValid())
-+ if (!texNum_ || !textureValid())
- {
- GLfloat priority = 1.0f;
- glGenTextures(1, &texNum_);
diff -ur scorched.orig/src/client/ClientConnectionAcceptHandler.cpp scorched/src/client/ClientConnectionAcceptHandler.cpp
--- scorched.orig/src/client/ClientConnectionAcceptHandler.cpp 2006-02-09 14:52:14.000000000 +0100
+++ scorched/src/client/ClientConnectionAcceptHandler.cpp 2006-02-09 14:47:28.000000000 +0100
Index: scorched3d.spec
===================================================================
RCS file: /cvs/extras/rpms/scorched3d/devel/scorched3d.spec,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- scorched3d.spec 11 Feb 2006 19:33:16 -0000 1.11
+++ scorched3d.spec 12 Feb 2006 11:16:24 -0000 1.12
@@ -1,6 +1,6 @@
Name: scorched3d
Version: 39.1
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Game based loosely on the classic DOS game Scorched Earth
Group: Amusements/Games
@@ -21,6 +21,7 @@
Patch10: %{name}-negint.patch
Patch11: %{name}-XML-injection.patch
Patch12: %{name}-HTML-injection.patch
+Patch13: %{name}-opengl-without-context.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: wxGTK-devel
@@ -69,6 +70,7 @@
%patch10 -p1
%patch11 -p1
%patch12 -p1
+%patch13 -p1
. autogen.sh
@@ -118,6 +120,9 @@
%changelog
+* Sun Feb 12 2006 <j.w.r.degoede at hhs.nl> - 39.1-3
+- fix server crashing with certain landscape types (patch 13)
+
* Sat Feb 11 2006 <j.w.r.degoede at hhs.nl> - 39.1-2
- upgrade to CVS snapshot of 20050929, as Debian does, but not to
the newer apoc version as this causes problems playing online (patch 0)
More information about the fedora-extras-commits
mailing list