1
0
forked from 0ad/0ad
Go to file
wraitii d740b4f335 Fix bug where 'archive' XMB files could end up being written to the user mod
Users sometimes ended up with bad (wrong version) XMB files in the user
mod. This resulted in A25 loading a black screen.
There is a combination of unfortunate code paths that lead to this. The
core issue is that:
- cdd75deafb changed the XMB loading code that if there is an error in
Init from a cached XMB, it reports an error. This error happens to be
silent, because the GUI expects CXeromyces to do its own error reporting
(a pretty poor decision, all in all, but whatever). This explained why
the black screen showed no errors.
- The code flow attemps to load an 'archive' XMB first, then only a
loose cache. _But_ if the XMB that fails to load is an archive (which
generally never happens except when using incompatible mods, which is
generally less easy in A25 since we added code to stop that), then the
game will try to recreate the XMB as an 'archived' path, not a 'loose
cache' path as it would usually do.
- Because the 'archived' path already exists in the VFS, the game will
attempt to overwrite that. It so happens that in non-dev copies, this
writes to the user mod.
- Because the user-mod is always loaded, this was unexpected for users.

Fixing this is rather simple: the game should never attempt to write
'archive' XMBs in that function. Added explicit barrier, which shouldn't
matter performance-wise but fixes the issue by writing in the proper
place, and also properly recovering in case of read failure.
I will note that the game will still try to load the archived file, and
recreate it every time, but I don't think that's a particularly big
deal, in general having engine-incompatible mods in the future should be
harder because of A25 changes there.
(NB: users that have used both A24 and A25 should perhaps still be
advised to check their user mod folder, otherwise they'll end up
recreating those files forever).

Reported by: dave_k
Fixes #6320

Differential Revision: https://code.wildfiregames.com/D4275
This was SVN commit r26272.
2022-01-30 12:50:43 +00:00
binaries Remove leftover terrain-based movement cost code. 2022-01-29 08:22:28 +00:00
build Fix a warning when building pyrogenesis in Debug on Windows. 2022-01-18 11:07:05 +00:00
docs Update the pathfinder docs. 2015-06-27 15:16:21 +00:00
libraries Fix compilation on Apple Silicon 2022-01-13 14:42:42 +00:00
source Fix bug where 'archive' XMB files could end up being written to the user mod 2022-01-30 12:50:43 +00:00
.arcconfig Lint update: use arclint, remove JSHint, remove coala on CI. 2021-03-15 15:14:28 +00:00
.arclint Suppress CppCheck "unknown macro" lint error. 2021-04-06 15:20:35 +00:00
.gitattributes Deletes internal mod (see SVN history if needed) 2013-02-14 22:32:17 +00:00
license_dbghelp.txt Initial attempt at describing licensing details 2009-06-20 17:45:51 +00:00
license_gpl-2.0.txt Initial attempt at describing licensing details 2009-06-20 17:45:51 +00:00
license_lgpl-2.1.txt Initial attempt at describing licensing details 2009-06-20 17:45:51 +00:00
license_mit.txt Adds globalscripts/BicubicInterpolation.js, the corresponding license_mit.txt and points to it for other files with the same license in LICENSE.txt - reviewed by Philip and Itms. Uses that to fix an interpolation issue in gaia.js and also fixes a "fail by one" there - reviewed by elexis. Fixes #4174 2016-09-06 21:49:57 +00:00
LICENSE.txt Lint update: use arclint, remove JSHint, remove coala on CI. 2021-03-15 15:14:28 +00:00
README.txt Add where and how to contribute to README.txt 2020-07-17 09:11:38 +00:00

 0 A.D. Introductory Information
=================================

0 A.D. (pronounced "zero ey-dee") is a free, open-source, cross-platform
real-time strategy game of ancient warfare.

This is currently an incomplete, under-development version of the game.
We're always interested in getting more people involved, to help bring the game
towards completion and to share the interesting experience of developing a
project of this scope.

There are several ways to contact us and find more information:

  Web site: http://play0ad.com/

  Forums: http://www.wildfiregames.com/forum/

  Trac (development info, bug tracker): http://trac.wildfiregames.com/

  IRC: #0ad on irc.quakenet.org


---------------------------------------
Running precompiled binaries on Windows
---------------------------------------

Open the "binaries\system" folder.

To launch the game: Run pyrogenesis.exe

To launch the map editor: Run Atlas.bat or "pyrogenesis.exe -editor"


-----------------------------------
Compiling the game from source code
-----------------------------------

The instructions for compiling the game on Windows, Linux and OS X are at
http://trac.wildfiregames.com/wiki/BuildInstructions


------------------
Reporting problems
------------------

Bugs should be reported on Trac. For information on reporting problems
and finding logs, see http://trac.wildfiregames.com/wiki/ReportingErrors


------------------
 Contributing Code
------------------

If you want to help out programming for the game, have a look at
https://trac.wildfiregames.com/wiki/GettingStartedProgrammers
or contact us on #0ad-dev on irc.quakenet.org


--------------------
Contributing Artwork
--------------------

If you want to make artwork for the game, have a look at
https://trac.wildfiregames.com/#Forartists:
or visit the forums http://www.wildfiregames.com/forum


-----------
Translating
-----------

You can help translating the game at https://www.transifex.com/projects/p/0ad
for more information, see https://trac.wildfiregames.com/wiki/Localization