Opened 10 years ago

Closed 10 years ago

#2328 closed defect (fixed)

Can't Load Saved "Random" Games

Reported by: Hammerhead Owned by: sanderd17
Priority: Release Blocker Milestone: Alpha 16
Component: Core engine Keywords:
Cc: Patch:

Description

0ad 15 (Ubuntu 13) - I can save and load "Skirmish" and "Scenario" games, but after I save a "Random" game, it won't load.

I get a deserialization failed error. In the error window it states: "Failed to load saved game state. It might have been saved with an incompatible version of the game."

The error text on the left of the screen states either "Deserialize_OutOfBounds" or "Deserialize_ReadFailed"

I uninstalled 0ad 15 and reinstalled, but I get the same error.

Thanks for a great game!

Change History (7)

comment:1 by sachaz, 10 years ago

Same problem on Debian Wheezy

comment:2 by Josh, 10 years ago

I'm getting the same issue in SVN. Thanks for the report.

comment:3 by sachaz, 10 years ago

dawn, I was downloading to try the svn :)

comment:4 by Josh, 10 years ago

Milestone: BacklogAlpha 16
Priority: Must HaveRelease Blocker

comment:5 by endevido, 10 years ago

I have the same problem on debian wheezy.

comment:6 by sanderd17, 10 years ago

I'm investigating a bit, and it looks like random maps somehow invalidate the size of the m_EntityData used in the RangeManager. Strangely enough, the count stored in the EntityMap m_Count is lower than the actual number of entities.

This difference causes the serialisation and deserialisation loops to have a different number of iterations, thus crashing the deserialisation that happens after the m_EntityMap deserialisation.

It should be solvable by just counting the number of items, and not relying on m_Count. Though that would be an extra loop. I first want to find out where the invalidation happens.

Last edited 10 years ago by sanderd17 (previous) (diff)

comment:7 by sanderd17, 10 years ago

Owner: set to sanderd17
Resolution: fixed
Status: newclosed

In 14806:

Fix invalid count for entityMaps
Improve error reporting on failed deserializations
Fixes #2328

Note: See TracTickets for help on using tickets.