#gemrb@irc.freenode.net logs for 15 Jul 2010 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:00:03] <-- Gekz has left IRC (Remote host closed the connection)
[00:03:46] --> Gekz has joined #GemRb
[01:44:39] --> raevol has joined #GemRb
[05:30:19] <-- raevol has left IRC (Quit: Leaving.)
[07:03:58] <-- |Cable| has left IRC (Remote host closed the connection)
[07:25:25] --> lynxlynxlynx has joined #GemRb
[07:25:25] --- ChanServ gives channel operator status to lynxlynxlynx
[07:31:46] <-- Gekz has left IRC (Quit: This computer has gone to sleep)
[07:56:15] <Edheldil> Hi
[07:59:12] <lynxlynxlynx> gmornin
[08:35:57] --> Gekz has joined #GemRb
[09:12:19] <-- Edheldil has left IRC (*.net *.split)
[09:12:19] <-- CIA-23 has left IRC (*.net *.split)
[09:18:39] --> Edheldil has joined #GemRb
[09:18:39] --> CIA-23 has joined #GemRb
[09:21:40] <-- Edheldil has left IRC (Ping timeout: 248 seconds)
[09:21:53] --> Edheldil has joined #GemRb
[09:21:53] --- ChanServ gives channel operator status to Edheldil
[09:58:37] <CIA-23> GemRB: 03edheldil * r22ad6709c45f 10ie_shell/TODO: Added some todos
[09:58:53] <CIA-23> GemRB: 03edheldil * r0d5dfc1ac10f 10ie_shell/infinity/ (core.py formats/ids.py): updated IDS format methods
[09:58:53] <CIA-23> GemRB: 03edheldil * rbfee9b1236e7 10ie_shell/infinity/formats/ (cre_v10.py cre_v12.py):
[09:58:53] <CIA-23> GemRB: Small fixes for CRE format
[09:58:53] <CIA-23> GemRB: * Added Selected Weapond and Selected Weapon Ability fields
[09:58:54] <CIA-23> GemRB: to item_slot_desc in CRE V1.0 - V1.2
[09:58:54] <CIA-23> GemRB: * Fixed number of item slots for CRE V1.0
[10:46:13] --> Gekz_ has joined #GemRb
[13:00:15] <-- Gekz_ has left IRC (Quit: Leaving)
[14:02:21] <-- budlust has left IRC (Quit: Lost terminal)
[14:03:53] <-- Gekz has left IRC (Ping timeout: 260 seconds)
[14:15:18] <CIA-23> GemRB: 03lynxlupodian * r74e045da6c0f 10gemrb/gemrb/GUIScripts/pst/MessageWindow.py:
[14:15:18] <CIA-23> GemRB: pst: updated MessageWindow to remove "More than one bottom window!" errors
[14:15:18] <CIA-23> GemRB: and to be more in sync with the rest
[14:15:19] <CIA-23> GemRB: 03lynxlupodian * r6038f466a4d0 10gemrb/gemrb/GUIScripts/pst/MessageWindow.py: pst: made the continue/close dialog button the default
[14:15:23] <CIA-23> GemRB: 03lynxlupodian * re5fb6d414ba1 10gemrb/gemrb/GUIScripts/pst/GUISTORE.py: pst: fixed the stores by using the bg2 store code
[14:16:14] --> edheldil_ has joined #GemRb
[14:26:01] <CIA-23> GemRB: 03lynxlupodian * rfe6c734833ba 10gemrb/NEWS: NEWS bump
[14:56:33] <-- edheldil_ has left IRC (Ping timeout: 240 seconds)
[15:13:22] <CIA-23> GemRB: 03lynxlupodian * rc0944b85f917 10gemrb/gemrb/GUIScripts/ (64 files in 6 dirs): moved the common tables from GUICommon to CommonTables
[15:30:58] <CIA-23> GemRB: 03lynxlupodian * r44a7911f25eb 10gemrb/gemrb/GUIScripts/ (64 files in 6 dirs): CommonTables: simplified the table names
[15:44:37] --> budlust has joined #GemRb
[16:04:51] <-- budlust has left IRC (Quit: Lost terminal)
[16:10:04] --> budlust has joined #GemRb
[16:48:26] <lynxlynxlynx> the different stores have the same logic, but for pst most of the control ids and strrefs are different
[16:49:46] <lynxlynxlynx> do you think it would be acceptable to have first a giant ifdef function to handle all the constant differences (for the merge)?
[17:09:14] --> edheldil_ has joined #GemRb
[17:27:03] --> SiENcE has joined #GemRb
[17:37:59] --> Avenger has joined #GemRb
[17:38:01] --- ChanServ gives channel operator status to Avenger
[17:40:41] <Avenger> lynx: did you change bg1 spellbooks recently?
[17:40:59] <Avenger> i get them all grayed even when i got spells in them
[17:41:47] <fuzzie> lynxlynxlynx: are you sure pst has the same logic?
[17:42:20] <fuzzie> you could do it with a dict, if you want to avoid the ifdefs
[17:42:34] <fuzzie> but i'm not sure all the stores are identical in behaviour
[17:49:03] <fuzzie> (and i have no idea if it would be clearer with a dict, maybe not)
[18:15:45] <Avenger> fuzzie got bg1?
[18:16:15] <fuzzie> nope
[18:16:29] <fuzzie> sorry, haven't organised this summer very well
[18:16:40] <fuzzie> i have only bg2 right here
[18:32:47] <Avenger> Traceback (most recent call last):
[18:32:49] <Avenger> File "./GUIScripts/bg1/GUISAVE.py", line 196, in SavePress
[18:32:50] <Avenger> Button.SetSprite2D(Games[ActPos].GetPortrait(j))
[18:32:52] <Avenger> NameError: global name 'ActPos' is not defined
[18:34:07] <fuzzie> should be 'Pos', not 'ActPos'
[18:34:51] <fuzzie> lynx fixed one of those in 8b048dfa..
[18:35:12] <fuzzie> huh
[18:35:16] <fuzzie> the diff is really confusing
[18:36:24] <fuzzie> yes, should be Pos.
[18:36:30] <fuzzie> hate this stuff.
[18:38:50] <Avenger> thanks
[18:39:16] <Avenger> i'm hunting the crasher reported by San, btw
[18:39:23] <CIA-23> GemRB: 03avenger_teambg * r0e684efdf53d 10gemrb/gemrb/GUIScripts/bg1/GUISAVE.py: ActPos->Pos
[18:39:35] <Avenger> you know, the impatient guy on g3
[18:40:31] <fuzzie> well, it has been a long time
[18:43:32] <Avenger> char filling[194]; memset(filling,0,sizeof(filling) ); will zero out filling, right?
[18:44:02] <Avenger> i wonder why valgrind complains of uninitialized bytes when doing stream->Write(filling, 96);
[18:47:26] <fuzzie> in GAMImporter?
[18:48:12] <Avenger> yes
[18:48:30] <Avenger> there is a huge crasher, but i want to clear up the small stuff too
[18:48:54] <Avenger> every fixed 'uninitialized memory' helps to clear the picture
[18:49:05] <Avenger> it is very blurry
[18:49:27] <fuzzie> what kind of stream is it, a FileStream?
[18:49:39] <Avenger> yes
[18:49:47] <Avenger> i also get this:
[18:49:51] <Avenger> ==8251== Invalid read of size 8
[18:49:52] <Avenger> ==8251== at 0x513416A: SaveGameIterator::RescanSaveGames() (Holder.h:31)
[18:49:54] <Avenger> ==8251== by 0x51346D8: SaveGameIterator::GetSaveGames() (SaveGameIterator.cpp:291)
[18:49:55] <Avenger> ==8251== by 0xC20174A: GemRB_GetSaveGames(_object*, _object*) (GUIScript.cpp:3784)
[18:50:20] <fuzzie> but that is called from python?
[18:52:14] <fuzzie> that is difficult to trace because the compiler has obviously mangled the trace there
[18:54:25] <fuzzie> yes, it could be a few things
[18:54:26] <Avenger> how does if (!dir) { dir.Rewind(); } work?
[18:54:37] <fuzzie> hmph
[18:54:40] <fuzzie> that is awful style!
[18:54:56] <fuzzie> i guess the !/bool operator is overriden for dir
[18:55:11] <fuzzie> would be good to replace that with something sensible
[18:55:14] <Avenger> i would never do that
[18:55:27] <Avenger> i would create somethng like dir.IsEmpty
[18:55:31] <Avenger> or such
[18:55:33] <fuzzie> sure, would be much better
[18:55:49] <fuzzie> the problem with your backtrace is probably that the savegame got deleted
[18:55:49] <Avenger> anyway, i'm not sure it is the crasher
[18:56:02] <fuzzie> but you really can't tell without a proper backtrace
[18:56:08] <Avenger> i get the crasher after loading ar4900
[18:56:29] <Avenger> so i think memory corruption occurs in the importer
[18:56:35] <Avenger> or when branwen dies
[18:56:44] <fuzzie> the filling thing is weird
[18:56:44] <Avenger> branwen is petrified in the area
[18:56:46] <fuzzie> wjp: help pls
[18:57:54] <fuzzie> well, actually, maybe i'd better reproduce
[18:59:27] <fuzzie> Avenger: you get nothing useful from valgrind other than these?
[18:59:43] <Avenger> i get too many things
[19:00:05] <Avenger> wanna me mail it to you?
[19:00:07] <fuzzie> yes
[19:00:12] <fuzzie> i was about to ask :)
[19:01:13] <Avenger> sent to gmail
[19:02:11] <fuzzie> how do i reproduce this crash?
[19:02:25] <Avenger> move to ar4900 and try to save there
[19:02:43] <Avenger> if that doesn't reproduce, then download San's savegame
[19:02:53] <fuzzie> that works fine
[19:03:22] <fuzzie> but this machine only has plain bg1 i think
[19:03:29] <Avenger> http://ftp.e-san.info/gemrb/save-40.tar.gz
[19:03:40] <Avenger> ar4900 is plain bg1
[19:03:43] <Avenger> the carnival area
[19:03:46] <fuzzie> oh right, this is the spellbook bug
[19:03:50] <Avenger> yeah
[19:04:05] <fuzzie> it is pretty broken code
[19:04:08] <Avenger> but i don't access the spellbook
[19:04:12] <Avenger> just load/save
[19:04:38] <Avenger> ok, that handles the spellbook, but i can load/save his game if i don't enter ar4900
[19:04:44] <Avenger> so i think it is just coincidence
[19:04:56] <Avenger> something corrupts the memory, and hits the spellbook
[19:05:22] <Avenger> it could be the dying branwen, though...
[19:05:23] <fuzzie> hmm
[19:05:46] <Avenger> she is offscreen, but i see branwen: death
[19:05:52] <fuzzie> the valgrind is not good
[19:05:54] <Avenger> it is because she is stoned
[19:06:03] <Avenger> not good?
[19:06:45] <fuzzie> are you trying to overwrite a savegame?
[19:07:25] <Avenger> no
[19:07:33] <Avenger> btw, this is very scary:
[19:07:37] <Avenger> ==18708== Invalid read of size 8
[19:07:39] <Avenger> ==18708== at 0xC218060: CObject<SaveGame>::PyRelease(void*, void*) (Holder.h:31)
[19:07:40] <Avenger> ==18708== by 0xC471BAB: (within /usr/lib/libpython2.5.so.1.0)
[19:07:43] <fuzzie> yes
[19:07:58] <fuzzie> it means, python is trying to use a savegame which already got deleted
[19:08:05] <fuzzie> which is why i am asking if you're trying to overwrite a savegame
[19:08:46] <Avenger> i still think it is branwen who messes up
[19:08:55] <Avenger> she is a joinable npc
[19:09:05] <Avenger> and this part is where things get thick:
[19:09:17] <Avenger> ==18708== Invalid read of size 4
[19:09:19] <Avenger> ==18708== at 0x7F227D4: CREImporter::GetStoredFileSize(Actor*) (CREImporter.cpp:2025)
[19:09:20] <Avenger> ==18708== by 0xBDE5397: GAMImporter::GetStoredFileSize(Game*) (GAMImporter.cpp:623)
[19:09:22] <Avenger> ==18708== by 0x51099FF: Interface::WriteGame(char const*) (Interface.cpp:4774)
[19:09:25] <Avenger> that 'actor' is not existent
[19:09:42] <fuzzie> well, last time i got a backtrace like this, the spellbook was corrupt
[19:09:43] <Avenger> looks like the object is deleted, even if it is coming from the .gam struct
[19:09:53] <Avenger> yes, because actor is deleted already
[19:09:57] <fuzzie> but yes, it does look like it's trying to write a bad object
[19:10:03] <fuzzie> i am more worried about the python stuff
[19:10:14] <Avenger> yeah, that is a separate thing
[19:10:33] <fuzzie> yes
[19:10:36] <Avenger> i said, it is very blurry
[19:10:37] <fuzzie> it is a bug which i will have to remember
[19:11:15] <Avenger> i bet someone 'fixed' Die recently :P
[19:11:30] <fuzzie> well
[19:12:00] <fuzzie> it should get fixed properly and stop deleting actors
[19:12:04] <Avenger> the problem is, joinables that 'come from game' shouldn't be destroyed
[19:12:17] <Avenger> even if they die
[19:12:23] <fuzzie> what is on your CREImporter.cpp:2025?
[19:12:43] <Avenger> CREVersion = actor->version;
[19:12:49] <Avenger> first line of the size code
[19:12:56] <fuzzie> oh
[19:12:56] <Avenger> obviously actor is an invalid pointer
[19:13:00] <fuzzie> well, ok, surely actor is invalid
[19:13:03] <fuzzie> i guess you changed your copy
[19:13:15] <Avenger> i fixed some of the death var loading
[19:13:26] <Avenger> death vars were not initialized in bg loader
[19:13:46] <fuzzie> i guess lynx put the ApplyEffect stuff to remove effects into Die()
[19:14:17] <fuzzie> i thought i said it should go into CheckOnDeath, but i think that is my fault because i said i'd deal with it
[19:14:30] <CIA-23> GemRB: 03avenger_teambg * r94320d20c4fb 10gemrb/gemrb/plugins/CREImporter/CREImporter.cpp: initialize unused death vars
[19:14:39] <Avenger> but that wouldn't cause this mess, that would break around the effectqueue
[19:14:45] <Avenger> not the complete actor pointer
[19:14:48] <fuzzie> yes, but it is the only recent change i think
[19:15:09] <Avenger> well, a joinable npc dying is quite rare
[19:15:12] <fuzzie> but CheckOnDeath will delete the actor if it's not InParty and &MC_REMOVE_CORPSE is set..
[19:15:27] <Avenger> that's wrong
[19:15:59] <fuzzie> i don't think we should ever delete actors
[19:16:22] <fuzzie> but at least for now, i guess you can add your joinable check there
[19:16:34] <Avenger> we can delete them, but they should be removed from party
[19:16:42] <Avenger> or the npc storage
[19:16:50] <Avenger> it happens on chunky death, i think
[19:17:02] <Avenger> anyway, there was originally a 'came from .game' flag
[19:17:09] <Avenger> that was to prevent saving actors in area
[19:17:15] <Avenger> if they are stored in .gam
[19:19:01] <Avenger> InternalFlags|=IF_FROMGAME
[19:19:58] <Avenger> i will try this
[19:21:27] <Avenger> actually, there is code to prevent the problem due to this
[19:21:33] <Avenger> void Map::DeleteActor(int i)
[19:21:41] <Avenger> tries to remove the npc from the storage
[19:24:00] <fuzzie> but the 'delete actor;' at the end is always going to happen
[19:24:39] <Avenger> but by that time, the actor is not referenced by anything
[19:24:55] <Avenger> it is removed from .game, and the area's actor list
[19:25:41] <Avenger> anyway, i added the guard to checkondeath to not mark the actor for removal
[19:26:08] <Avenger> pfft, it died
[19:26:26] <fuzzie> the line numbers in valgrind are for NPCs
[19:27:25] <Avenger> yes
[19:27:30] <Avenger> it dies on saving an npc
[19:27:36] <fuzzie> Game::LeaveParty doesn't reset InParty
[19:27:59] <fuzzie> oh, but SetPersistent does it
[19:28:16] <fuzzie> never mind
[19:28:22] <Avenger> adding a printf to the game writer
[19:28:35] <Avenger> so i will at least see which npc is the last successfully written
[19:28:41] <fuzzie> SetPersistent does CreateStats() which makes a new PCStats struct
[19:28:57] <fuzzie> that is ok?
[19:29:03] <Avenger> yes
[19:29:20] <Avenger> it will create it only if there wasn't one, i hope
[19:29:31] <fuzzie> i guess so
[19:29:49] <Avenger> setpersistent moves an actor to the .gam from the area, iirc
[19:30:16] <Avenger> it should remove the actor from the area list
[19:31:37] <Avenger> hmm
[19:31:40] <fuzzie> is UnMakeGlobal being called, maybe?
[19:31:48] <fuzzie> sorry, don't listen to me
[19:31:50] <fuzzie> i just wonder about things
[19:32:42] <Avenger> MakeGlobal is the one i mentioned, but it doesn't remove the actor (that will cause a bug)
[19:32:48] <Avenger> but bg1 doesn't use MakeGlobal
[19:33:00] <Avenger> and UnMakeGlobal is not used by anything
[19:33:17] <fuzzie> i'm just looking through the stuff which messes with the NPC list
[19:33:18] <Avenger> it is just something i thought would be useful
[19:34:20] <Avenger> ok this is odd
[19:34:25] <Avenger> even xzar is saved
[19:34:48] <fuzzie> it makes not much sense though
[19:34:57] <Avenger> 26 npcs are saved
[19:36:06] <Avenger> lol, dltcep cannot even read the game (the one san made available)
[19:36:15] <fuzzie> well, i assume the save is corrupt
[19:36:21] <Avenger> yes
[19:36:27] <Avenger> anyway, there are 26 npcs
[19:38:55] <-- Avenger has left IRC (Quit: bye!)
[19:43:54] <-- budlust has left IRC (Ping timeout: 265 seconds)
[19:45:52] --> budlust has joined #GemRb
[19:48:29] --> |Cable| has joined #GemRb
[19:48:46] <-- |Cable| has left IRC (Remote host closed the connection)
[19:48:51] --> |Cable| has joined #GemRb
[20:12:46] <-- budlust has left IRC (Ping timeout: 276 seconds)
[20:14:27] --> budlust has joined #GemRb
[20:53:04] <wjp> what's the exact error valgrind gives for that filling thing? (If you haven't already solved it)
[20:54:41] <wjp> --trace-origins=yes is a very useful option if you get unexplained uninitialized bytes
[20:55:04] <wjp> s/trace/track/
[20:58:17] <CIA-23> GemRB: 03edheldil * rf494f64ca0d5 10ie_shell/TODO: Expanded TODO
[20:58:20] <CIA-23> GemRB: 03edheldil * r3ebf71188aca 10ie_shell/iesh: Added support for running commands with pdb debugger
[20:58:22] <CIA-23> GemRB: 03edheldil * r405a7f485ec7 10ie_shell/infinity/core.py:
[20:58:22] <CIA-23> GemRB: More inteligence to find_file()
[20:58:22] <CIA-23> GemRB: * Case insensitive searching of files
[20:58:22] <CIA-23> GemRB: * core.game_data_path can contain multiple directories
[21:15:54] <CIA-23> GemRB: 03avenger_teambg * rf55fe89c020b 10gemrb/gemrb/plugins/GAMImporter/GAMImporter.cpp: fixed a compatibility problem with BG1
[21:19:17] <CIA-23> GemRB: 03avenger_teambg * raf2308c9e696 10gemrb/gemrb/override/bg1/effects.ids: fixed a warning about bg1 effect list
[21:19:21] <CIA-23> GemRB: 03avenger_teambg * rf18199c185e3 10gemrb/gemrb/plugins/TLKImporter/TlkOverride.cpp: fixed uninitialized memory (valgrind)
[21:20:52] <CIA-23> GemRB: 03avenger_teambg * r19394db74d43 10ielister/ielister.cpp: ielister update
[21:21:41] <-- budlust has left IRC (Ping timeout: 264 seconds)
[21:23:29] --> Avenger has joined #GemRb
[21:23:34] --- ChanServ gives channel operator status to Avenger
[21:23:39] --> budlust has joined #GemRb
[21:23:43] <edheldil_> hi, Avenger
[21:24:10] <Avenger> fuzzie: that savegame python problem is even more serious. If you delete a game, and quit --> glibc error
[21:24:13] <Avenger> hi Ed
[21:24:24] <fuzzie> i did say it was important
[21:24:44] <Avenger> do you think it could be the cause of the spellbook crash too?
[21:24:59] <Avenger> i just wish so :) i don't really believe
[21:25:00] <fuzzie> no
[21:25:08] <fuzzie> but you can always hope
[21:26:32] <Avenger> woo, now i see a crash before all npcs saved
[21:26:43] <Avenger> and it is not branwen :(
[21:31:19] <fuzzie> don't you think the save issimply corrupt?
[21:37:54] <Avenger> no
[21:38:12] <Avenger> it is quirky, but not totally corrupt
[21:38:29] <Avenger> the worst thing is some corrupt variables, but i removed those
[21:38:57] <Avenger> dltcep didn't load it because of the version signature
[21:39:15] <Avenger> and bg1 didn't list it because of the cre resref starting with *
[21:39:30] <Avenger> i fixed those, but i still get crashes
[21:39:42] <Avenger> but not only when going to the carnival
[21:43:43] <Avenger> DeleteActor seems to be not called
[21:43:54] <Avenger> now i added a printf in the destructor of Actor
[21:44:51] <Avenger> haha: Someone deleted: Xzar
[21:45:14] <Avenger> this is the first sign of something fishy :)
[21:47:22] <Avenger> xzar is in the npc list of .gam, but also on the current map. So, it is the map's destructor that should spare it
[21:47:49] <Avenger> looks like he is not set as persistent
[21:48:32] <-- SiENcE has left IRC (Quit: cya @all)
[21:50:57] <Avenger> i think you can reproduce the bug by: throwing someone out of the party (but keeping them in the same area), then save game
[21:51:17] <Avenger> that save game will bug when you leave it
[21:57:03] <fuzzie> hm
[21:59:01] <Avenger> did tom change the actor list maybe?
[22:02:08] <fuzzie> don't think so.
[22:10:15] <Avenger> i got it
[22:10:34] <Avenger> map::purgearea does it :)
[22:15:00] <CIA-23> GemRB: 03avenger_teambg * r90ae03dc1c53 10gemrb/gemrb/core/ (Map.cpp Scriptable/Actor.cpp): fixed a crasher when a dead joinable PC was dropped from party and the area left
[22:16:49] <CIA-23> GemRB: 03avenger_teambg * rb4897f5dcd74 10gemrb/gemrb/plugins/GAMImporter/GAMImporter.cpp: removed a printf
[22:16:56] <Avenger> bye
[22:16:59] <-- Avenger has left IRC (Quit: bye!)
[22:48:50] --> pupnik has joined #GemRb
[22:48:52] <pupnik> humanity is stumbling around in the darkness
[22:48:54] <pupnik> we are still so close to apes
[23:05:44] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[23:18:24] --> Gekz has joined #GemRb
[23:59:43] <edheldil_> good night
[23:59:49] <-- edheldil_ has left IRC (Quit: Really?)