Last modified 4 years ago Last modified on 10/22/08 11:49:31

An attempt to fix #57 (Warzone 2100 doing an emergency shutdown due to music still playing when changing mounted mods)
Now moved to #70 (Implement safe mod switching)

Affects trunk/src/init.c#L161, trunk/src/main.c#L394 and surrounding areas.

Old behaviour

(rough lineout, just looks simpler than the proposed process)

  • Start Warzone 2100
    • Try to mount /base in all datadirs
  • Start a game
    • Figure out whether we want to start a mp or campaign game
    • Find out which mods are necessary for that
    • Clean the search path
    • Mount the appropriate new files
  • Close a game
    • Clean the search path
    • Mount /base again

Proposed new behaviour

  • Start Warzone 2100
    • Try to mount /base in all datadirs
    • Mount all mods requested (no more mp/cam only mods -- simplification, may be postponed)
  • Start a game
    • Shutdown Warzone 2100
    • Unmount everything
    • Mount /base
    • Mount /mp
    • Mount all mods requested (no more mp/cam only mods -- simplification, may be postponed)
    • Restart Warzone 2100 to catch up all changed files (music, etc)
  • Close a game
    • Shutdown Warzone 2100
    • Unmount everything
    • Mount /base
    • Mount all mods requested (no more mp/cam only mods -- simplification, may be postponed)
    • Restart Warzone 2100

The idea behind this is, that a shutdown and restart ensures that no files are still opened, and thus we can mount / unmount without any problems.