OpenMW 0.24.0

Anything related to PR, release planning and any other non-technical idea how to move the project forward should be discussed here.
Chris
Posts: 1625
Joined: 04 Sep 2011, 08:33

Re: OpenMW 0.24.0

Post by Chris »

scrawl wrote:
Currently, even when you start with --new-game, it loads you into Beshara first before actually moving you to the chargen boat. It also seems we get a couple frameRenderingQueued calls before the game is fully started up
This should be fixed by https://github.com/zinnschlag/openmw/pull/864
Fixed which, still initially loading Beshara, or frameRenderingQueued being called before everything's ready? I can't see how that patches fixes either, actually (I don't see how it prevents loading Beshara, and it looks like it makes a call to frameRenderingQueued even earlier during setup).

I also can't say I'm a fan of checking something like if(mFirstFrame) in the main update loop. If not everything's ready by the time update() is called, I don't think we should be calling update() yet.
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Post by scrawl »

The problem wasn't that frameRenderingQueued was called before stuff was ready, but rather that frameRenderingQueued was not called before the first frame is rendered, resulting in some "uninitialized" render output.

Beshara is still loaded yes, but it doesn't render a frame of beshara anymore before changing to the prison ship.
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: OpenMW 0.24.0

Post by scrawl »

How would I go about unloading references? I need to unload each CellStore, right?
Last edited by scrawl on 14 May 2013, 12:27, edited 1 time in total.
User avatar
psi29a
Posts: 5355
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: OpenMW 0.24.0

Post by psi29a »

Greendogo wrote:That's a very good idea Zini
...

:cry:
User avatar
sirherrbatka
Posts: 2159
Joined: 07 Aug 2011, 17:21

Re: OpenMW 0.24.0

Post by sirherrbatka »

when 0.23.0 was just released two weeks ago?
0.23.0 was animation layering and AI ago…
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: OpenMW 0.24.0

Post by Zini »

How would I go about unloading references? I need to unload each CellStore, right?
It's a bit more complex. You need to purge all game state. Most subsystems have some. From memory:

- Clear the content of MWWorld::Cells
- Delete all journal and topic content
- Clear all script data (global variables, running global scripts)
- Delete all dynamically created ESM records, but restore the dynamically created Player record.
- Recreate the player in MWWorld::Player.

Not 100% sure if this list is complete.
User avatar
Greendogo
Posts: 1467
Joined: 26 Aug 2011, 02:04

Re: OpenMW 0.24.0

Post by Greendogo »

BrotherBrick wrote:
Greendogo wrote:That's a very good idea Brother Brick and Zini
...

:cry:
Ooops sorry! Amended! :D
Last edited by Greendogo on 14 May 2013, 13:00, edited 2 times in total.
User avatar
psi29a
Posts: 5355
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: OpenMW 0.24.0

Post by psi29a »

Greendogo wrote:Ooops sorry! Amended! :D
^5 ;)
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: OpenMW 0.24.0

Post by scrawl »

There's a bit of a problem with unloading cells.

If I want to clear the content of MWWorld::Cells, I need to remove all active cells from MWWorld::Scene first. So there will be at least one partial frame update in which the player is not in any cell before the startup script teleports the player into the prison ship. This violates an assumption that a large amount of code seems to be based on (Assertion failed in Ptr::getCell).

Possible solutions I can think of:
- Import the [PreLoad] section of the INI which has the name of the prison ship cell in it. We could initially place the player in the cell specified by "Cell 0".

Code: Select all

[PreLoad]
Cell 0=Kaiserliches Gefangenenschiff
Cell 1=Seyda Neen
Cons: This would require people to run the INI importer again.

- Change the code so that it doesn't require the player-Ptr to be in a cell at all times OR add some kind of "void" cell (similiar to the dynamically created cells when leaving defined exterior areas)


I'd favor the second solution. As soon as we add a startup main menu, we'll need this anyway (except maybe if we did some major decoupling that would allow us to not have a World object constructed at that point. World also loads the ESMs/ESPs, which seems awkward)

Anything else I might have missed?
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: OpenMW 0.24.0

Post by Zini »

Using the preload stuff is out of question. I excluded it for a reason. Huge pain in the arse for TC-class projects.

Is the player not in a cell stuff really a problem? After starting a game the player needs to be placed in the exterior cell 0, 0 (assuming there is no --start that say otherwise; we can as well drop the default start cell now). That is how MW works.

The correct implementation IMHO would cut out everything that has to do with the game world during any phase where the player has not been placed into a cell yet (either 0, 0 for a new game or where ever he was left when loading a game). That would be basically from the moment on the player uses the New Game/Load Game button until loading/setting up has completed and also when starting up OpenMW.
Post Reply