[Bf-codereview] bgefix for [#28167] Restart game actuator don't get changed material mode (issue 4991047)

dfelinto at gmail.com dfelinto at gmail.com
Fri Sep 9 10:40:34 CEST 2011


Reviewers: bf-codereview_blender.org,

Description:
http://projects.blender.org/tracker/?func=detail&aid=28167&group_id=9&atid=306
Game Actuator (restart or load a new file) will not keep some settings
alive (as we had in 2.49).

In 2.49 the solution used was to use Blender globals (G.fileflags) to
get/set those settings. That was causing the blender file to change if
you change the material mode from the game.

In 2.5 this never worked, and the implementation was buggy (it's relying
in the scene settings, which get reset ever time we restart/load a new
file).

My idea for fixing this is to create a new struct (GlobalSettings) where
we store any setting to be preserver during the course of the game. This
is specially important for options that require the game to restart/load
new file (graphic ones). But it later can be expanded to support other
things such as audio settings (e.g. volume), ...
I'm also planning to expand it for stereo and dome settings, but I
prefer to first get this committed and then build a new patch on top of
that.


I had some problems in finding a correct way for build/link the
blenderplayer changes, so although it's working I'm not sure this is the
best code (e.g. I couldn't make forward declaration to work in
GPG_Application.h for the struct GlobalSettings so I ended up including
KX_KetsjiEngine.h)

Please review this at http://codereview.appspot.com/4991047/

Affected files:
   source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
   source/gameengine/GamePlayer/ghost/GPG_Application.cpp
   source/gameengine/GamePlayer/ghost/GPG_Application.h
   source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
   source/gameengine/Ketsji/KX_KetsjiEngine.cpp
   source/gameengine/Ketsji/KX_KetsjiEngine.h
   source/gameengine/Ketsji/KX_PythonInit.cpp




More information about the Bf-codereview mailing list