summaryrefslogtreecommitdiffstats
path: root/games/vegastrike/patch-0.5.1.r1
diff options
context:
space:
mode:
Diffstat (limited to 'games/vegastrike/patch-0.5.1.r1')
-rw-r--r--games/vegastrike/patch-0.5.1.r1326
1 files changed, 326 insertions, 0 deletions
diff --git a/games/vegastrike/patch-0.5.1.r1 b/games/vegastrike/patch-0.5.1.r1
new file mode 100644
index 0000000000..4077324d4c
--- /dev/null
+++ b/games/vegastrike/patch-0.5.1.r1
@@ -0,0 +1,326 @@
+diff -ruN ./CMakeLists.txt ../b/CMakeLists.txt
+--- ./CMakeLists.txt 2012-03-26 02:50:49.000000000 +0200
++++ ../b/CMakeLists.txt 2019-09-20 14:45:44.171890881 +0200
+@@ -10,7 +10,7 @@
+
+ project (vsUTCS)
+
+-
++include(GNUInstallDirs)
+
+ include_directories(${vsUTCS_SOURCE_DIR}/src
+ ${vsUTCS_SOURCE_DIR}/src/cmd
+@@ -828,33 +828,33 @@
+
+ #Find FFMpeg
+
+-find_package(FFMPEG)
+-IF(FFMPEG_FOUND)
+- SET(TST_INCLUDES ${TST_INCLUDES} ${FFMPEG_INCLUDE_DIRS})
+- SET(TST_LIBS ${TST_LIBS} ${FFMPEG_LIBRARIES})
+- add_definitions(${FFMPEG_DEFINITIONS})
+- SET(HAVE_FFMPEG 1 )
+- IF(swscale1_FOUND)
+- message("++ FFmpeg's libswscale found.")
+- ELSE(swscale1_FOUND)
+- message("-- FFMpeg's libswscale not found... depending on your ffmpeg version, VS might not build.")
+- ENDIF(swscale1_FOUND)
+-ELSE(FFMPEG_FOUND)
+- message("-- FFMPEG Not Found")
+-ENDIF(FFMPEG_FOUND)
++#find_package(FFMPEG)
++#IF(FFMPEG_FOUND)
++# SET(TST_INCLUDES ${TST_INCLUDES} ${FFMPEG_INCLUDE_DIRS})
++# SET(TST_LIBS ${TST_LIBS} ${FFMPEG_LIBRARIES})
++# add_definitions(${FFMPEG_DEFINITIONS})
++# SET(HAVE_FFMPEG 1 )
++# IF(swscale1_FOUND)
++# message("++ FFmpeg's libswscale found.")
++# ELSE(swscale1_FOUND)
++# message("-- FFMpeg's libswscale not found... depending on your ffmpeg version, VS might not build.")
++# ENDIF(swscale1_FOUND)
++#ELSE(FFMPEG_FOUND)
++# message("-- FFMPEG Not Found")
++#ENDIF(FFMPEG_FOUND)
+
+ #Find Ogre
+
+-find_package(OGRE)
+-IF(OGRE_FOUND)
+- SET(TST_INCLUDES ${TST_INCLUDES} ${OGRE_INCLUDE_DIR})
+- SET(TST_LIBS ${TST_LIBS} ${OGRE_LIBRARY})
+- add_definitions(${OGRE_DEFINITIONS})
+- SET(HAVE_OGRE 1)
+- message("++ Found Ogre: ${OGRE_VERSION}")
+-ELSE(OGRE_FOUND)
+- message("-- Ogre Not Found: compiling without")
+-ENDIF(OGRE_FOUND)
++#find_package(OGRE)
++#IF(OGRE_FOUND)
++# SET(TST_INCLUDES ${TST_INCLUDES} ${OGRE_INCLUDE_DIR})
++# SET(TST_LIBS ${TST_LIBS} ${OGRE_LIBRARY})
++# add_definitions(${OGRE_DEFINITIONS})
++# SET(HAVE_OGRE 1)
++# message("++ Found Ogre: ${OGRE_VERSION}")
++#ELSE(OGRE_FOUND)
++# message("-- Ogre Not Found: compiling without")
++#ENDIF(OGRE_FOUND)
+
+ IF(NOT BEOS)
+ FIND_LIBRARY(UTIL_LIB util)
+@@ -977,12 +977,12 @@
+ HAVE_AVFORMAT_H
+ HAVE_AVCODEC_H
+ HAVE_AVIO_H
+- HAVE_FFMPEG_SWSCALE_H
++# HAVE_FFMPEG_SWSCALE_H
+ CMAKE_BACKWARDS_COMPATIBILITY
+- FFMPEG_INCLUDE_DIR
+- FFMPEG_FOUND
+- FFMPEG_LIBRARIES
+- FFMPEG_DEFINITIONS
++# FFMPEG_INCLUDE_DIR
++# FFMPEG_FOUND
++# FFMPEG_LIBRARIES
++# FFMPEG_DEFINITIONS
+ GTK2_ATK_INCLUDE_DIR
+ GTK2_ATK_LIBRARY
+ GTK2_CAIRO_INCLUDE_DIR
+diff -ruN ./objconv/basemaker/base_maker_texture.cpp ../b/objconv/basemaker/base_maker_texture.cpp
+--- ./objconv/basemaker/base_maker_texture.cpp 2010-03-10 03:56:23.000000000 +0100
++++ ../b/objconv/basemaker/base_maker_texture.cpp 2019-09-20 14:45:44.174891262 +0200
+@@ -6,9 +6,12 @@
+ #define XMD_H
+ #define HAVE_BOOLEAN
+ #endif
++
+ extern "C" {
+ //YUCK it doesn't even have extern c in the headers!
+ #include <jpeglib.h>
++#include <string.h>
++
+ }
+
+ #define strip_16 true
+diff -ruN ./objconv/mesher/to_OgreMesh.cpp ../b/objconv/mesher/to_OgreMesh.cpp
+--- ./objconv/mesher/to_OgreMesh.cpp 2011-06-02 01:47:36.000000000 +0200
++++ ../b/objconv/mesher/to_OgreMesh.cpp 2019-09-20 14:45:44.176891516 +0200
+@@ -1078,10 +1078,15 @@
+ Ogre::VertexDeclaration *newDcl =
+ data->vertexDeclaration->getAutoOrganisedDeclaration(
+ mesh->hasSkeleton() );
+-#else
++#elif (OGRE_VERSION_MAJOR == 1) && (OGRE_VERSION_MINOR < 8)
+ Ogre::VertexDeclaration *newDcl =
+ data->vertexDeclaration->getAutoOrganisedDeclaration(
+ mesh->hasSkeleton(), mesh->hasVertexAnimation() || (mesh->getPoseCount() > 0) );
++#else
++ Ogre::VertexDeclaration *newDcl =
++ data->vertexDeclaration->getAutoOrganisedDeclaration(
++ mesh->hasSkeleton(), mesh->hasVertexAnimation() || (mesh->getPoseCount() > 0),
++ mesh->getSharedVertexDataAnimationIncludesNormals()); // what about Pose objects?
+ #endif
+ if ( *newDcl != *(data->vertexDeclaration) ) {
+ //Usages don't matter here since we're onlly exporting
+@@ -1109,35 +1114,35 @@
+ }
+ }
+
+-void AutoLOD( void *outputcontext, bool force, int numLod, float reductionFactor, float refDistance )
+-{
+- struct outputContext *ctxt = (struct outputContext*) outputcontext;
+- MeshPtr newMesh = ctxt->top;
+- if ( force || (newMesh->getNumLodLevels() <= 1) ) {
+- if (newMesh->getNumLodLevels() <= 1)
+- newMesh->removeLodLevels();
+- const Ogre::ProgressiveMesh::VertexReductionQuota quota = Ogre::ProgressiveMesh::VRQ_PROPORTIONAL;
+- const Real reduction = Real( 1-reductionFactor );
+-
+- Real currDist = refDistance;
+-
+- #if (OGRE_VERSION >= 0x010700)
+- Ogre::Mesh::LodValueList distanceList;
+-
+- // pixel area is squared length, and length is proportional to triangle count
+- const Real distFactor = reductionFactor * reductionFactor;
+- newMesh->setLodStrategy(Ogre::LodStrategyManager::getSingletonPtr()->
+- getStrategy( "PixelCount" ) );
+- #else
+- Ogre::Mesh::LodDistanceList distanceList;
+- const Real distFactor = ( (reduction > 0.00001) ? 1/reduction : 1 );
+- #endif
+-
+- for (int iLod = 0; iLod < numLod; ++iLod, currDist *= distFactor)
+- distanceList.push_back( currDist );
+- newMesh->generateLodLevels( distanceList, quota, reduction );
+- }
+-}
++//void AutoLOD( void *outputcontext, bool force, int numLod, float reductionFactor, float refDistance )
++//{
++// struct outputContext *ctxt = (struct outputContext*) outputcontext;
++// MeshPtr newMesh = ctxt->top;
++// if ( force || (newMesh->getNumLodLevels() <= 1) ) {
++// if (newMesh->getNumLodLevels() <= 1)
++// newMesh->removeLodLevels();
++// const Ogre::ProgressiveMesh::VertexReductionQuota quota = Ogre::ProgressiveMesh::VRQ_PROPORTIONAL;
++// const Real reduction = Real( 1-reductionFactor );
++//
++// Real currDist = refDistance;
++//
++// #if (OGRE_VERSION >= 0x010700)
++// Ogre::Mesh::LodValueList distanceList;
++//
++// // pixel area is squared length, and length is proportional to triangle count
++// const Real distFactor = reductionFactor * reductionFactor;
++// newMesh->setLodStrategy(Ogre::LodStrategyManager::getSingletonPtr()->
++// getStrategy( "PixelCount" ) );
++// #else
++// Ogre::Mesh::LodDistanceList distanceList;
++// const Real distFactor = ( (reduction > 0.00001) ? 1/reduction : 1 );
++// #endif
++//
++// for (int iLod = 0; iLod < numLod; ++iLod, currDist *= distFactor)
++// distanceList.push_back( currDist );
++// newMesh->generateLodLevels( distanceList, quota, reduction );
++// }
++//}
+
+ void DoneMeshes( void *outputcontext )
+ {
+diff -ruN ./objconv/mesher/to_OgreMesh.h ../b/objconv/mesher/to_OgreMesh.h
+--- ./objconv/mesher/to_OgreMesh.h 2010-02-25 16:22:25.000000000 +0100
++++ ../b/objconv/mesher/to_OgreMesh.h 2019-09-20 14:45:44.179891897 +0200
+@@ -20,7 +20,7 @@
+ float RadialSize( void *outputcontext ); //returns the size of the resulting mesh (it's maximum distance from 0,0,0). Useful for LODding.
+
+ void Optimize( void *outputcontext ); //a good idea - reorganizes internal buffers so that the output mesh is more efficient
+-void AutoLOD( void *outputcontext, bool force, int numLod, float reductionFactor, float refDistance ); //autogenerates LOD levels - if force==true, will discard current LOD data
++//void AutoLOD( void *outputcontext, bool force, int numLod, float reductionFactor, float refDistance ); //autogenerates LOD levels - if force==true, will discard current LOD data
+ void AutoEdgeList( void *outputcontext ); //a good idea - prepares the mesh for stencil shadows
+ void AutoTangents( void *outputcontext ); //prepares the mesh for normal mapping (only needed if the material uses normal mapping)
+ }
+diff -ruN ./setup/src/c/setup.cpp ../b/setup/src/c/setup.cpp
+--- ./setup/src/c/setup.cpp 2011-03-15 01:28:47.000000000 +0100
++++ ../b/setup/src/c/setup.cpp 2019-09-20 14:45:44.180892025 +0200
+@@ -110,10 +110,22 @@
+ return 1;
+ }
+ }
+-
++
+ #ifdef DATA_DIR
+ data_paths.push_back( DATA_DIR );
+ #endif
++ /* whatever the plan was, it does not work on Linux - at least
++ * not at this stage. Hence, use fixed absolute paths to
++ * find data directory
++ */
++ data_paths.push_back( "/usr/share/games/vegastrike/data");
++ data_paths.push_back( "/usr/share/vegastrike/data");
++ data_paths.push_back( "/usr/games/vegastrike/data");
++ data_paths.push_back( "/usr/local/share/games/vegastrike/data");
++ data_paths.push_back( "/usr/local/share/vegastrike/data");
++ data_paths.push_back( "/usr/local/games/vegastrike/data");
++ data_paths.push_back( "/opt/vegastrike/data");
++
+ data_paths.push_back( origpath );
+ data_paths.push_back( string( origpath )+"/.." );
+ data_paths.push_back( string( origpath )+"/../data4.x" );
+@@ -133,22 +145,7 @@
+ data_paths.push_back( "../Resources" );
+ data_paths.push_back( "../Resources/data" );
+ data_paths.push_back( "../Resources/data4.x" );
+-/*
+- * data_paths.push_back( "/usr/share/local/vegastrike/data");
+- * data_paths.push_back( "/usr/local/share/vegastrike/data");
+- * data_paths.push_back( "/usr/local/vegastrike/data");
+- * data_paths.push_back( "/usr/share/vegastrike/data");
+- * data_paths.push_back( "/usr/local/games/vegastrike/data");
+- * data_paths.push_back( "/usr/games/vegastrike/data");
+- * data_paths.push_back( "/opt/share/vegastrike/data");
+- * data_paths.push_back( "/usr/share/local/vegastrike/data4.x");
+- * data_paths.push_back( "/usr/local/share/vegastrike/data4.x");
+- * data_paths.push_back( "/usr/local/vegastrike/data4.x");
+- * data_paths.push_back( "/usr/share/vegastrike/data4.x");
+- * data_paths.push_back( "/usr/local/games/vegastrike/data4.x");
+- * data_paths.push_back( "/usr/games/vegastrike/data4.x");
+- * data_paths.push_back( "/opt/share/vegastrike/data4.x");
+- */
++
+ //Win32 data should be "."
+ char tmppath[16384];
+ for (vector< string >::iterator vsit = data_paths.begin(); vsit != data_paths.end(); vsit++) {
+diff -ruN ./src/cmd/music.cpp ../b/src/cmd/music.cpp
+--- ./src/cmd/music.cpp 2012-03-19 09:20:14.000000000 +0100
++++ ../b/src/cmd/music.cpp 2019-09-20 14:45:44.182892279 +0200
+@@ -448,7 +448,9 @@
+ if (foundcache) {
+ *me->music_load_info = wherecache->second;
+ me->freeWav = false;
+- }
++ } else if ( ! AUDLoadSoundFile(songname, me->music_load_info, true)) {
++ VSFileSystem::vs_dprintf(1, "Failed to load music file \"%s\"", songname);
++ }
+ }
+ if (me->freeWav && docacheme) {
+ me->freeWav = false;
+diff -ruN ./src/cmd/unit_jump.h ../b/src/cmd/unit_jump.h
+--- ./src/cmd/unit_jump.h 2012-03-19 09:20:14.000000000 +0100
++++ ../b/src/cmd/unit_jump.h 2019-09-20 14:45:44.184892533 +0200
+@@ -108,7 +108,7 @@
+ (tester = *i) != NULL; ++i)
+ if (tester->isUnit() == UNITPTR && tester != this)
+ if ( ( this->LocalPosition()-tester->LocalPosition() ).Magnitude() < this->rSize()+tester->rSize() )
+- SetCurPosition( this->LocalPosition()+this->cumulative_transformation_matrix.getR()
++ this->SetCurPosition( this->LocalPosition()+this->cumulative_transformation_matrix.getR()
+ *( 4*( this->rSize()+tester->rSize() ) ) );
+ DealPossibleJumpDamage( this );
+ static int jumparrive = AUDCreateSound( vs_config->getVariable( "unitaudio", "jumparrive", "sfx43.wav" ), false );
+diff -ruN ./src/gfx/quadsquare.cpp ../b/src/gfx/quadsquare.cpp
+--- ./src/gfx/quadsquare.cpp 2010-03-10 06:27:01.000000000 +0100
++++ ../b/src/gfx/quadsquare.cpp 2019-09-20 14:45:44.186892787 +0200
+@@ -13,9 +13,9 @@
+ #include <float.h>
+ #include <math.h>
+ #include <assert.h>
+-#include "quadsquare.h"
+ #include "gfxlib.h"
+ #include "aux_texture.h"
++#include "quadsquare.h"
+ using std::vector;
+
+ unsigned int*quadsquare::VertexAllocated;
+diff -ruN ./src/networking/lowlevel/packetmem.cpp ../b/src/networking/lowlevel/packetmem.cpp
+--- ./src/networking/lowlevel/packetmem.cpp 2008-03-31 10:20:19.000000000 +0200
++++ ../b/src/networking/lowlevel/packetmem.cpp 2019-09-20 14:45:44.187892914 +0200
+@@ -102,7 +102,7 @@
+ }
+ else
+ {
+- _buffer.reset( 0 );
++ _buffer.reset();
+ _len = 0;
+ }
+ }
+diff -ruN ./src/vsfilesystem.cpp ../b/src/vsfilesystem.cpp
+--- ./src/vsfilesystem.cpp 2012-03-19 09:20:14.000000000 +0100
++++ ../b/src/vsfilesystem.cpp 2019-09-20 14:45:44.190893296 +0200
+@@ -563,6 +563,18 @@
+ data_paths.push_back( DATA_DIR );
+ #endif
+ if ( !vegastrike_cwd.empty() ) {
++ /* whatever the plan was, it does not work on Linux - at least
++ * not at this stage. Hence, use fixed absolute paths to
++ * find data directory
++ */
++ data_paths.push_back( "/usr/share/games/vegastrike/data");
++ data_paths.push_back( "/usr/share/vegastrike/data");
++ data_paths.push_back( "/usr/games/vegastrike/data");
++ data_paths.push_back( "/usr/local/share/games/vegastrike/data");
++ data_paths.push_back( "/usr/local/share/vegastrike/data");
++ data_paths.push_back( "/usr/local/games/vegastrike/data");
++ data_paths.push_back( "/opt/vegastrike/data");
++
+ data_paths.push_back( vegastrike_cwd );
+ data_paths.push_back( vegastrike_cwd+"/.." );
+ data_paths.push_back( vegastrike_cwd+"/../data4.x" );