From: Laszlo T. <ave...@us...> - 2010-09-26 11:36:17
|
gemrb: Infinity Engine emulator The branch master has been updated via c7a93c133f569d95bebf64d2637a5bfdf6924d30 (commit) via 44a255dc140175514669a0d8c05ef79e5c9851c6 (commit) Summary of changes: gemrb/GUIScripts/bg1/LoadScreen.py | 4 +++ gemrb/GUIScripts/bg2/LoadScreen.py | 13 ++++++++++ gemrb/GUIScripts/iwd/LoadScreen.py | 26 ++++++++++++++++++--- gemrb/GUIScripts/iwd/PartyFormation.py | 1 + gemrb/GUIScripts/iwd2/GUICommonWindows.py | 1 + gemrb/GUIScripts/iwd2/LoadScreen.py | 35 +++++++++++++++++++++------- gemrb/core/Game.cpp | 9 +++++- gemrb/core/Interface.cpp | 12 ++++++--- gemrb/plugins/AREImporter/AREImporter.cpp | 3 ++ gemrb/plugins/BIFImporter/BIFImporter.cpp | 4 +- gemrb/plugins/GUIScript/GUIScript.cpp | 3 +- 11 files changed, 89 insertions(+), 22 deletions(-) from 9aecd3294c80c3e0025c7eecd28c0bdf3bba31c7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=c7a93c133f569d95bebf64d2637a5bfdf6924d30 commit c7a93c133f569d95bebf64d2637a5bfdf6924d30 Merge: 44a255d 9aecd32 Author: Avenger <ave...@so...> Date: Sun Sep 26 13:35:49 2010 +0200 Merge branch 'master' of ssh://ave...@ge.../gitroot/gemrb/gemrb http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=44a255dc140175514669a0d8c05ef79e5c9851c6 commit 44a255dc140175514669a0d8c05ef79e5c9851c6 Author: Avenger <ave...@so...> Date: Sun Sep 26 13:34:21 2010 +0200 loadscreen during area load fixed previous commit and added HoW support of areaload.2da diff --git a/gemrb/GUIScripts/bg1/LoadScreen.py b/gemrb/GUIScripts/bg1/LoadScreen.py index 7fc3985..18e23b0 100644 --- a/gemrb/GUIScripts/bg1/LoadScreen.py +++ b/gemrb/GUIScripts/bg1/LoadScreen.py @@ -26,6 +26,9 @@ from GUIDefines import * LoadScreen = None +def SetLoadScreen (): + return + def StartLoadScreen (): global LoadScreen @@ -49,4 +52,5 @@ def EndLoadScreen (): Skull = LoadScreen.GetControl (3) Skull.SetMOS ("GTRBPSK2") LoadScreen.SetVisible (WINDOW_VISIBLE) + LoadScreen.Unload() return diff --git a/gemrb/GUIScripts/bg2/LoadScreen.py b/gemrb/GUIScripts/bg2/LoadScreen.py index b407d7e..c08cc34 100644 --- a/gemrb/GUIScripts/bg2/LoadScreen.py +++ b/gemrb/GUIScripts/bg2/LoadScreen.py @@ -26,10 +26,16 @@ import GUICommon from GUIDefines import * LoadScreen = None +hide = None + +def SetLoadScreen (): + hide = GemRB.HideGUI() + return def StartLoadScreen (): global LoadScreen + hide = GemRB.HideGUI() GemRB.LoadWindowPack ("guils", 640, 480) LoadScreen = GemRB.LoadWindow (0) LoadScreen.SetFrame () @@ -52,3 +58,10 @@ def StartLoadScreen (): Bar = LoadScreen.GetControl (0) Bar.SetVarAssoc ("Progress", Progress) LoadScreen.SetVisible (WINDOW_VISIBLE) + +def EndLoadScreen (): + if hide: + GemRB.UnhideGUI() + LoadScreen.Unload() + return + diff --git a/gemrb/GUIScripts/iwd/LoadScreen.py b/gemrb/GUIScripts/iwd/LoadScreen.py index c0a58c3..7bd496a 100644 --- a/gemrb/GUIScripts/iwd/LoadScreen.py +++ b/gemrb/GUIScripts/iwd/LoadScreen.py @@ -25,6 +25,23 @@ import GemRB from GUIDefines import * LoadScreen = None +hide = None + +def SetLoadScreen (): + hide = GemRB.HideGUI() + Table = GemRB.LoadTable ("areaload") + Area = GemRB.GetGameString (STR_AREANAME) + LoadPic = Table.GetValue (Area, Table.GetColumnName(0) ) + print Area + print Table.GetColumnName(0) + print LoadPic + if not LoadPic or LoadPic =="": + LoadPic = GemRB.GetGameString (STR_LOADMOS) + + if LoadPic=="": + LoadPic = "GUILS0"+str(GemRB.Roll(1,9,0)) + LoadScreen.SetPicture(LoadPic) + return def StartLoadScreen (): global LoadScreen @@ -32,10 +49,8 @@ def StartLoadScreen (): GemRB.LoadWindowPack ("guils", 640, 480) LoadScreen = GemRB.LoadWindow (0) LoadScreen.SetFrame () - LoadPic = GemRB.GetGameString (STR_LOADMOS) - if LoadPic=="": - LoadPic = "GUILS0"+str(GemRB.Roll(1,9,0)) - LoadScreen.SetPicture(LoadPic) + + SetLoadScreen() Bar = LoadScreen.GetControl (0) Progress = 0 GemRB.SetVar ("Progress", Progress) @@ -48,4 +63,7 @@ def EndLoadScreen (): Skull = LoadScreen.GetControl (3) Skull.SetMOS ("GTRBPSK2") LoadScreen.SetVisible (WINDOW_VISIBLE) + if hide: + GemRB.UnhideGUI() + LoadScreen.Unload() return diff --git a/gemrb/GUIScripts/iwd/PartyFormation.py b/gemrb/GUIScripts/iwd/PartyFormation.py index 38457c0..e1f8994 100644 --- a/gemrb/GUIScripts/iwd/PartyFormation.py +++ b/gemrb/GUIScripts/iwd/PartyFormation.py @@ -35,6 +35,7 @@ ExitWindow = 0 def OnLoad (): global PartyFormationWindow + GUICommonWindows.PortraitWindow = None GUICommonWindows.SelectionChangeHandler = None GemRB.LoadWindowPack ("GUISP", 640, 480) diff --git a/gemrb/GUIScripts/iwd2/GUICommonWindows.py b/gemrb/GUIScripts/iwd2/GUICommonWindows.py index 9752b47..4f4ce1d 100644 --- a/gemrb/GUIScripts/iwd2/GUICommonWindows.py +++ b/gemrb/GUIScripts/iwd2/GUICommonWindows.py @@ -35,6 +35,7 @@ import GUISPL import GUIREC import LUCommon import InventoryCommon +import LoadScreen FRAME_PC_SELECTED = 0 FRAME_PC_TARGET = 1 diff --git a/gemrb/GUIScripts/iwd2/LoadScreen.py b/gemrb/GUIScripts/iwd2/LoadScreen.py index a7ac153..ee64c49 100644 --- a/gemrb/GUIScripts/iwd2/LoadScreen.py +++ b/gemrb/GUIScripts/iwd2/LoadScreen.py @@ -25,28 +25,42 @@ import GemRB from GUIDefines import * LoadScreen = None +hide = None -def StartLoadScreen (): - global LoadScreen - - GemRB.LoadWindowPack ("guils", 800, 600) - LoadScreen = GemRB.LoadWindow (0) - LoadScreen.SetFrame( ) - +def SetLoadScreen (): + hide = GemRB.HideGUI() Table = GemRB.LoadTable ("areaload") - print (GemRB.GetGameString (STR_LOADMOS) ) - print (GemRB.GetGameString (STR_AREANAME) ) Area = GemRB.GetGameString (STR_AREANAME) LoadPic = Table.GetValue (Area, Table.GetColumnName(0) ) + print "**********\n\n\n\n\n*********\n\n\n\n\n" + print Area + print Table.GetColumnName(0) + print "**********\n\n\n\n\n*********\n\n\n\n\n" + if not LoadPic or LoadPic =="": LoadPic = GemRB.GetGameString (STR_LOADMOS) if LoadPic=="": LoadPic = "GUILS0"+str(GemRB.Roll(1,9,0)) LoadScreen.SetPicture(LoadPic) + return + +def StartLoadScreen (): + global LoadScreen + + GemRB.LoadWindowPack ("guils", 800, 600) + LoadScreen = GemRB.LoadWindow (0) + LoadScreen.SetFrame( ) + + SetLoadScreen() Progress = 0 GemRB.SetVar ("Progress", Progress) + LoadPic = GemRB.GetGameString (STR_LOADMOS) + if LoadPic=="": + LoadPic = "GUILS0"+str(GemRB.Roll(1,9,0)) + LoadScreen.SetPicture(LoadPic) + Table = GemRB.LoadTable ("loadhint") tmp = Table.GetRowCount () tmp = GemRB.Roll (1,tmp,0) @@ -64,4 +78,7 @@ def EndLoadScreen (): Skull = LoadScreen.GetControl (3) Skull.SetMOS ("GTRBPSK2") LoadScreen.SetVisible (WINDOW_VISIBLE) + if hide: + GemRB.UnhideGUI() + LoadScreen.Unload() return diff --git a/gemrb/core/Game.cpp b/gemrb/core/Game.cpp index 82a51bd..9541f0e 100644 --- a/gemrb/core/Game.cpp +++ b/gemrb/core/Game.cpp @@ -705,8 +705,7 @@ int Game::DelMap(unsigned int index, int forced) return 0; } -/* Loads an area, changepf == true if you want to setup the pathfinder too */ -//FIXME: changepf is removed now +/* Loads an area */ int Game::LoadMap(const char* ResRef) { unsigned int i; @@ -715,18 +714,24 @@ int Game::LoadMap(const char* ResRef) return index; } + core->GetGUIScriptEngine()->RunFunction("LoadScreen", "StartLoadScreen"); + core->GetGUIScriptEngine()->RunFunction("LoadScreen", "SetLoadScreen"); DataStream* ds = gamedata->GetResource( ResRef, IE_ARE_CLASS_ID ); if (!ds) { + core->LoadProgress(100); return -1; } PluginHolder<MapMgr> mM(IE_ARE_CLASS_ID); if(!mM->Open( ds, true )) { + core->LoadProgress(100); return -1; } Map* newMap = mM->GetMap(ResRef, IsDay()); if (!newMap) { + core->LoadProgress(100); return -1; } + core->LoadProgress(100); for (i = 0; i < PCs.size(); i++) { if (stricmp( PCs[i]->Area, ResRef ) == 0) { diff --git a/gemrb/core/Interface.cpp b/gemrb/core/Interface.cpp index 38d3dfd..065c684 100644 --- a/gemrb/core/Interface.cpp +++ b/gemrb/core/Interface.cpp @@ -3756,9 +3756,9 @@ void Interface::LoadGame(SaveGame *sg, int ver_override) Game* new_game = NULL; WorldMapArray* new_worldmap = NULL; - LoadProgress(15); + LoadProgress(10); if (!KeepCache) DelTree((const char *) CachePath, true); - LoadProgress(20); + LoadProgress(15); if (sg == NULL) { //Load the Default Game @@ -3813,7 +3813,7 @@ void Interface::LoadGame(SaveGame *sg, int ver_override) wmp_str1 = NULL; wmp_str2 = NULL; - LoadProgress(30); + LoadProgress(20); // Unpack SAV (archive) file to Cache dir if (sav_str) { PluginHolder<ArchiveImporter> ai(IE_BIF_CLASS_ID); @@ -3835,7 +3835,7 @@ void Interface::LoadGame(SaveGame *sg, int ver_override) worldmap = new_worldmap; strings->OpenAux(); - LoadProgress(100); + LoadProgress(70); return; cleanup: // Something went wrong, so try to clean after itself @@ -4279,6 +4279,10 @@ void Interface::DelTree(const char* Pt, bool onlysave) void Interface::LoadProgress(int percent) { + printf("LoadProgress: %d\n", percent); +FILE *fp = fopen("debug","a"); +fprintf(fp,"LoadProgress: %d\n", percent); +fclose(fp); vars->SetAt("Progress", percent); RedrawControls("Progress", percent); RedrawAll(); diff --git a/gemrb/plugins/AREImporter/AREImporter.cpp b/gemrb/plugins/AREImporter/AREImporter.cpp index d6ced14..ca5fd86 100644 --- a/gemrb/plugins/AREImporter/AREImporter.cpp +++ b/gemrb/plugins/AREImporter/AREImporter.cpp @@ -405,6 +405,7 @@ Map* AREImporter::GetMap(const char *ResRef, bool day_or_night) str->ReadWord( &map->RestHeader.NightChance ); printf( "Loading regions\n" ); + core->LoadProgress(70); //Loading InfoPoints for (i = 0; i < InfoPointsCount; i++) { str->Seek( InfoPointsOffset + ( i * 0xC4 ), GEM_STREAM_START ); @@ -870,6 +871,7 @@ Map* AREImporter::GetMap(const char *ResRef, bool day_or_night) //the rest is not read, we seek for every record } + core->LoadProgress(75); printf( "Loading actors\n" ); //Loading Actors str->Seek( ActorOffset, GEM_STREAM_START ); @@ -965,6 +967,7 @@ Map* AREImporter::GetMap(const char *ResRef, bool day_or_night) } } + core->LoadProgress(90); printf( "Loading animations\n" ); //Loading Animations str->Seek( AnimOffset, GEM_STREAM_START ); diff --git a/gemrb/plugins/BIFImporter/BIFImporter.cpp b/gemrb/plugins/BIFImporter/BIFImporter.cpp index 9dce400..ccee859 100644 --- a/gemrb/plugins/BIFImporter/BIFImporter.cpp +++ b/gemrb/plugins/BIFImporter/BIFImporter.cpp @@ -82,8 +82,8 @@ int BIFImporter::DecompressSaveGame(DataStream *compressed) } fclose( in_cache ); Current = compressed->Remains(); - //starting at 40% going up to 90% - core->LoadProgress( 40+(All-Current)*50/All ); + //starting at 20% going up to 70% + core->LoadProgress( 20+(All-Current)*50/All ); } while(Current); return GEM_OK; diff --git a/gemrb/plugins/GUIScript/GUIScript.cpp b/gemrb/plugins/GUIScript/GUIScript.cpp index 9d04098..3b6ce9a 100644 --- a/gemrb/plugins/GUIScript/GUIScript.cpp +++ b/gemrb/plugins/GUIScript/GUIScript.cpp @@ -348,7 +348,8 @@ static PyObject* GemRB_HideGUI(PyObject*, PyObject* /*args*/) { GameControl* gc = (GameControl *) GetControl( 0, 0, IE_GUI_GAMECONTROL); if (!gc) { - return RuntimeError("No gamecontrol!"); + return PyInt_FromLong( 0 ); + //return RuntimeError("No gamecontrol!"); } int ret = gc->HideGUI(); ----------------------------------------------------------------------- This is an automated email from the git hooks/post-receive script. -- gemrb: Infinity Engine emulator |