diff -ur C:/FGCVS/Atlas/src/FlightTracksOverlay.cxx Atlas-0.4.8/src/FlightTracksOverlay.cxx --- C:/FGCVS/Atlas/src/FlightTracksOverlay.cxx Mon Apr 26 23:15:29 2010 +++ Atlas-0.4.8/src/FlightTracksOverlay.cxx Wed May 19 15:56:26 2010 @@ -53,10 +53,27 @@ _haveImage = true; } } else { - fprintf(stderr, "Airplane image file %s was not found.\n" - "Falling back to line drawing\n", - prefs.airplaneImage.c_str()); - _haveImage = false; + _haveImage = false; + // ok, the current string is NOT empty, but it may be the /Atlas/... + // path - What about the path given in --atlas=? + // Just a little code to make the users life easier ;=)) + SGPath sgp(prefs.path.str()); + sgp.append("airplane_image.png"); + if (sgp.exists()) { + // found the file + _airplaneTexture.load(sgp); + if (_airplaneTexture.loaded()) { + _haveImage = true; + prefs.airplaneImage.set(sgp.str()); + } else { + fprintf(stderr, "Airplane image file %s was not found.\n", sgp.c_str()); + } + } + if (!_haveImage) + fprintf(stderr, "Airplane image file %s was not found.\n" + "Falling back to line drawing\n", + prefs.airplaneImage.c_str()); + } // Subscribe to the flight track change notifications. The first diff -ur C:/FGCVS/Atlas/src/misc.cxx Atlas-0.4.8/src/misc.cxx --- C:/FGCVS/Atlas/src/misc.cxx Thu May 13 22:37:02 2010 +++ Atlas-0.4.8/src/misc.cxx Wed May 19 14:03:11 2010 @@ -259,7 +259,12 @@ // First read as much of the line as we can. // EYE - check return code, use gzerror() to report error. - assert(gzgets(f, readPoint, toRead) != Z_NULL); + char * cp = gzgets(f, readPoint, toRead); + if (cp == Z_NULL) { + fprintf(stderr, + "ERROR: gzgets returned NULL! Aborting...\n" ); + exit(1); + } do { // Now see if we've hit the end of the line. unsigned int crlf = strcspn(readPoint, "\n\r"); @@ -267,7 +272,11 @@ // No CR/LF - increase the buffer size. length += chunkSize; buf = (char *)realloc(buf, length * sizeof(char)); - assert(buf != NULL); + if (!buf) { + fprintf(stderr, + "ERROR: realloc FAILED! Aborting...\n" ); + exit(1); + } // Read some more onto the end of our current string. // Note that we have to recalculate readPoint because @@ -275,7 +284,12 @@ // just add chunkSize to readPoint). readPoint = buf + length - chunkSize; toRead = chunkSize; - assert(gzgets(f, readPoint, toRead) != Z_NULL); + cp = gzgets(f, readPoint, toRead); + if (cp == Z_NULL) { + fprintf(stderr, + "ERROR: gzgets returned NULL! Aborting...\n" ); + exit(1); + } } else { readPoint[crlf] = '\0'; eoln = true; @@ -503,6 +517,25 @@ const char *AtlasString::_appendf(const char *fmt, va_list ap) { +#ifdef _MSC_VER + // windows vsnprintf() returns -1, if it can NOT fit the formatted + // string within the 'count', and most certainly _NOT_ the needed length! + // And no need to 'copy' the 'va_list ap' pointer, or 'dispose' of it. + // The ONLY failure here would be if 'realloc' FAILED, so 'exit(1)' + int newLen; + while ((newLen = vsnprintf(_buf + _strlen, _size - _strlen - 1, fmt, ap)) < 0) { + _size += _increment; + _buf = (char *)realloc(_buf, _size); + if ( !_buf ) { + fprintf(stderr, + "ERROR: MEMORY REALLOCATION FAILED ON %d BYTES! Aborting...\n", + _size); + exit(1); + } + } + _buf[_size - 1] = 0; // ENSURE null termination... + _strlen += newLen; // bump the length, by this 'format' length... +#else va_list ap_copy; va_copy(ap_copy, ap); @@ -522,6 +555,7 @@ } _strlen += newLen; va_end(ap_copy); +#endif return _buf; } diff -ur C:/FGCVS/Atlas/src/Notifications.cxx Atlas-0.4.8/src/Notifications.cxx --- C:/FGCVS/Atlas/src/Notifications.cxx Mon Jun 15 10:44:58 2009 +++ Atlas-0.4.8/src/Notifications.cxx Wed May 19 16:18:55 2010 @@ -52,7 +52,11 @@ void Notification::unsubscribe(Subscriber *s, type n) { if (n == All) { +#ifdef _MSC_VER + size_t sz = _notifications.size(); +#else assert(_notifications.size() == All); +#endif for (unsigned int i = 0; i < _notifications.size(); i++) { _notifications[i].erase(s); } diff -ur C:/FGCVS/Atlas/src/TileMapper.cxx Atlas-0.4.8/src/TileMapper.cxx --- C:/FGCVS/Atlas/src/TileMapper.cxx Sat Apr 10 07:25:50 2010 +++ Atlas-0.4.8/src/TileMapper.cxx Wed May 19 14:03:11 2010 @@ -88,7 +88,7 @@ // up the OpenGL view and drawing parameters. void TileMapper::draw(unsigned int size) { - assert(glGetError() == GL_NO_ERROR); + GLenum err = glGetError(); assert(err == GL_NO_ERROR); // Set up the view. First, calculate the desired map size in // pixels and set our viewport correspondingly. @@ -221,7 +221,7 @@ glFinish(); - assert(glGetError() == GL_NO_ERROR); + err = glGetError(); assert(err == GL_NO_ERROR); } // Saves the currently rendered map at the given size. Note that the diff -ruN C:/FGCVS/Atlas/projects/msvc/atsetup.bat Atlas-0.4.8/projects/msvc/atsetup.bat --- C:/FGCVS/Atlas/projects/msvc/atsetup.bat Tue May 11 19:05:06 2010 +++ Atlas-0.4.8/projects/msvc/atsetup.bat Wed May 19 15:52:08 2010 @@ -43,6 +43,9 @@ @set TEMPBG=%TEMPAT%\background.jpg @set TEMPSBG=%TEMPS%\background.jpg +@set TEMPSAIR=%TEMPS%\airplane_image.png +@set TEMPDAIR=%TEMPAT%\airplane_image.png + @REM set the command @REM set TEMPMCMD=--verbose --fg-root=%TEMPROOT% --fg-scenery=%TEMPROOT%\Scenery --atlas=%TEMPAT% --palette=%TEMPAPD% --render-to-window --png @REM set TEMPMCMD=--verbose --fg-root=%TEMPROOT% --fg-scenery=%TEMPROOT%\Scenery --atlas=%TEMPAT% --palette=%TEMPAPD% --render-to-window @@ -82,6 +85,7 @@ :DNLIT @set TEMPACMD=--fg-root=%TEMPROOT% --fg-scenery=%TEMPROOT%\Scenery --atlas=%TEMPAT% --palette=%TEMPAPD% +@set TEMPACMD=%TEMPACMD% --udp @goto END diff -ruN C:/FGCVS/Atlas/projects/msvc/config.h Atlas-0.4.8/projects/msvc/config.h --- C:/FGCVS/Atlas/projects/msvc/config.h Tue May 11 19:05:06 2010 +++ Atlas-0.4.8/projects/msvc/config.h Wed May 19 13:48:47 2010 @@ -83,7 +83,7 @@ #include #ifndef VERSION -#define VERSION "0.4.8-MSVC9-WIN32" +#define VERSION "0.4.9-MSVC9-WIN32" #endif #endif // #ifndef _win32_config_h_ diff -ruN C:/FGCVS/Atlas/projects/msvc/dosetup.bat Atlas-0.4.8/projects/msvc/dosetup.bat --- C:/FGCVS/Atlas/projects/msvc/dosetup.bat Tue May 11 19:05:06 2010 +++ Atlas-0.4.8/projects/msvc/dosetup.bat Wed May 19 15:16:45 2010 @@ -14,6 +14,7 @@ @if "%TEMPSF2%x" == "x" goto NOSU11 @if "%TEMPSAPD%x" == "x" goto NOSU12 @if "%TEMPAPD%x" == "x" goto NOSU13 +@if "%TEMPSAIR%x" == "x" goto NOSU14 @if NOT EXIST %TEMPROOT%\version goto ERR2 @@ -80,6 +81,15 @@ :DNAP @echo Got file %TEMPAPD%... +@if EXIST %TEMPDAIR% goto DNAIR +@if NOT EXIST %TEMPSAIR% goto ERR11 +@if NOT EXIST %TEMPAP%\. goto ERR10A +@echo Copy %TEMPSAIR% to %TEMPDAIR% +@Copy %TEMPSAIR% %TEMPDAIR% > nul +@if NOT EXIST %TEMPDAIR% goto ERR11B +:DNAIR +@echo Got file %TEMPDAIR%... + @REM END Local setup @goto END @@ -125,86 +135,103 @@ :NOSU13 @echo ERROR: TEMPAPD not set... @goto NOSETUP +:NOSU14 +@echo ERROR: TEMPSAIR not set... +@goto NOSETUP :NOSETUP @echo This is set in atsetup.bat, which MUST be run first... @echo This is called in runmap.bat and runatlas.bat... Use one of these... +@echo Suggest Ctrl+C to abort... @pause @goto END :ERR1 @echo. @echo ERROR: Can NOT locate the executable %TEMPX%! Check name, location, and adjust... -@goto END +@goto WAIT :ERR2 @echo. @echo ERROR: Can NOT locate the FG data version file %TEMPROOT%\version! Check name, location, and adjust... -@goto END +@goto WAIT :ERR3 @echo. @echo ERROR: Can NOT locate the palette file %TEMPP%! Check name, location, and adjust... -@goto END +@goto WAIT :ERR4 @echo. @echo ERROR: FAILED to create %TEMPAT% directory! Check why??? Perhaps another files called %TEMPAT%??? -@goto END +@goto WAIT :ERR5 @echo. @echo ERROR: FAILED to create %TEMPF% directory! Check why??? Perhaps another files called %TEMPF%??? -@goto END +@goto WAIT :ERR6 @echo. @echo ERROR: FAILED to locate %TEMPFS% directory! Can not copy FONTS??? Check name. location... -@goto END +@goto WAIT :ERR6B @echo. @echo ERROR: FAILED to copy %TEMPFS1% to %TEMPF1%! Can not copy FONTS??? Check name. location... -@goto END +@goto WAIT :ERR7 @echo. @echo ERROR: FAILED to locate %TEMPF1% file! Can not copy FONTS??? Check name. location... -@goto END +@goto WAIT :ERR8 @echo. @echo ERROR: FAILED to locate %TEMPF2% file! Can not copy FONTS??? Check name. location... -@goto END +@goto WAIT :ERR8B @echo. @echo ERROR: FAILED to copy %TEMPF2% file to %TEMPF2%! Can not copy FONTS??? Check name. location... -@goto END +@goto WAIT :ERR9 @echo. @echo ERROR: FAILED to locate %TEMPSBG% file! Can not copy BACKGROUND world??? Check name. location... -@goto END +@goto WAIT :ERR9B @echo. @echo ERROR: FAILED to copy %TEMPSBG% file! Can not copy BACKGROUND world??? Check name. location... -@goto END +@goto WAIT :ERR10 @echo. @echo ERROR: FAILED to copy %TEMPSAPD% file! Can not copy default PALETTE??? Check name. location... -@goto END +@goto WAIT :ERR10A @echo. @echo ERROR: FAILED to create %TEMPAP% directory! Can not copy default PALETTE??? Check name. location... -@goto END +@goto WAIT :ERR10B @echo. @echo ERROR: FAILED to copy %TEMPSAPD% to %TEMPAPD%! Can not copy default PALETTE??? Check name. location... -@goto END +@goto WAIT +:ERR11 +@echo. +@echo ERROR: Can NOT locate %TEMPSAIR% file! Check name. location... +@goto WAIT + +:ERR11B +@echo. +@echo ERROR: FAILED to copy %TEMPSAAIR to %TEMPDAIR%! Can not copy default AIRCRAFT??? Check name. location... +@goto WAIT + +:WAIT +@echo Any key to coninue anyway... Ctrl+C to abort... +@pause :END diff -ruN C:/FGCVS/Atlas/projects/msvc/README.msvc.txt Atlas-0.4.8/projects/msvc/README.msvc.txt --- C:/FGCVS/Atlas/projects/msvc/README.msvc.txt Tue May 11 19:05:06 2010 +++ Atlas-0.4.8/projects/msvc/README.msvc.txt Wed May 19 15:28:43 2010 @@ -206,6 +206,8 @@ Atlas.exe --fg-root=C:\FG\32\data --atlas=C:\FG\32\data\Atlas\temp2 --palette=C:\FG\32\data\Atlas\Palettes\default.ap --fg-scenery=C:\FG\32\data\Scenery Atlas.exe --fg-root=C:\FG\32\data --fg-scenery=C:\FG\32\data\Scenery --atlas=temp6 --palette=temp6\Palettes\default.ap +DEBUG: --fg-root=C:\FG\33\data --fg-scenery=C:\FG\33\data\Scenery --atlas=temp1 --palette=temp1\Palettes\default.ap --udp + This source includes a runatlas.bat batch file, as a work in progress, to give it a try after you have generated the maps. diff -ruN C:/FGCVS/Atlas/projects/msvc/runatlas.bat Atlas-0.4.8/projects/msvc/runatlas.bat --- C:/FGCVS/Atlas/projects/msvc/runatlas.bat Tue May 11 19:05:06 2010 +++ Atlas-0.4.8/projects/msvc/runatlas.bat Wed May 19 15:04:52 2010 @@ -16,6 +16,7 @@ @if "%TEMPSF2%x" == "x" goto MISSING @if "%TEMPSAPD%x" == "x" goto MISSING @if "%TEMPAPD%x" == "x" goto MISSING +@if "%TEMPSAIR%x" == "x" goto MISSING @call dosetup @if NOT EXIST %TEMPXA% goto ERR1 @if NOT EXIST %TEMPAT%\. goto ERR4 diff -ruN C:/FGCVS/Atlas/projects/msvc/win_ulib.dsp Atlas-0.4.8/projects/msvc/win_ulib.dsp --- C:/FGCVS/Atlas/projects/msvc/win_ulib.dsp Tue May 11 19:05:06 2010 +++ Atlas-0.4.8/projects/msvc/win_ulib.dsp Wed May 19 14:16:59 2010 @@ -133,6 +133,10 @@ SOURCE=.\winsrc\win_utils.h # End Source File +# Begin Source File + +SOURCE=.\winsrc\win_versions.h +# End Source File # End Group # Begin Source File diff -ruN C:/FGCVS/Atlas/projects/msvc/win_ulib.vcproj Atlas-0.4.8/projects/msvc/win_ulib.vcproj --- C:/FGCVS/Atlas/projects/msvc/win_ulib.vcproj Tue May 11 19:05:06 2010 +++ Atlas-0.4.8/projects/msvc/win_ulib.vcproj Wed May 19 14:19:09 2010 @@ -313,6 +313,10 @@ RelativePath="winsrc\win_utils.h" > + +