#gemrb@irc.freenode.net logs for 12 Oct 2009 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[01:29:36] <-- barra_away has left IRC ("Verlassend")
[02:00:05] <-- Maighstir has left IRC (Read error: 145 (Connection timed out))
[04:40:41] --> Forgetful_Lion has joined #GemRB
[08:17:44] --> barra_library has joined #gemrb
[09:16:22] --> lynxlynxlynx has joined #gemrb
[09:16:22] --- ChanServ gives channel operator status to lynxlynxlynx
[09:24:28] <fuzzie> morning, lynx
[09:24:59] <lynxlynxlynx> gmornin
[09:25:31] <fuzzie> is there anything on the 'must fix' list for a release?
[09:26:40] <lynxlynxlynx> not really
[09:27:07] <lynxlynxlynx> it would be great if the multiple pomab spawn worked perfectly, but if i understood you correctly, it is a deep problem
[09:29:38] <lynxlynxlynx> oh, you could check "portal key removing"
[09:29:59] <lynxlynxlynx> i didn't apply the fix when doing the other one
[09:30:20] <lynxlynxlynx> some inventory thing had a broken undroppable check
[09:30:29] <fuzzie> that is easy to check
[09:30:59] <fuzzie> i'm not really sure what the problem with pomab is - if it's just DestroySelf then i think you can get away with simply setting the flags there
[09:33:28] <lynxlynxlynx> yes, it has a DestroySelf as one of the effects
[09:34:23] <lynxlynxlynx> what flags did you mean?
[09:36:01] <fuzzie> InternalFlags|=IF_REALLYDIED|IF_JUSTDIED;
[09:36:23] <fuzzie> the problem is that DestroySelf doesn't do the death immediately and that 'summon pomabs' effect is permanent
[09:36:50] <fuzzie> i'm not sure if tweaking the flags fixes it, maybe you need to actually clear the effect list in there
[09:37:09] <fuzzie> and we don't even clear the effect list in Actor::CheckOnDeath right now, you can see the comment that we should
[09:37:58] <fuzzie> i wonder why we don't just call fxqueue->RemoveAllNonPermanentEffects() there?
[09:38:34] <fuzzie> maybe putting *that* in CheckOnDeath would be better. although we probably want the InternalFlags *and* the STATE_DEAD set from CheckOnDeath in there too.
[09:40:07] <lynxlynxlynx> doesn't sound like something that i should touch right before a release
[09:40:44] <lynxlynxlynx> i was planning the next release at the end of the month, so there's still time though
[09:40:47] <fuzzie> no :) but i would try the flags
[09:40:53] <fuzzie> if you find any time.
[09:41:17] <fuzzie> my dim recollection of the effect-removal thing, now i think about it, is that Avenger said effects should remove themselves, but that clearly isn't going to work here
[10:04:03] <fuzzie> ok, less stupid idea: just immediately exit from RefreshEffects if IF_CLEANUP is set?
[10:16:42] --> tasos86 has joined #gemrb
[10:24:49] <lynxlynxlynx> i'll try
[10:24:58] <lynxlynxlynx> the first flag thing didn't work anyway
[10:25:16] <fuzzie> yes, that was a stupid idea :(
[10:25:24] <fuzzie> i'd forgotten that effects were run on dead actors
[10:31:16] <lynxlynxlynx> second idea failed too
[10:36:11] <fuzzie> huh.
[10:36:40] <fuzzie> that is odder :)
[10:39:05] <fuzzie> you did 'if (InternalFlags&IF_CLEANUP) return;'?
[10:39:56] <fuzzie> hmmm
[10:40:32] <fuzzie> next thought: our fx_remove_creature is not actually removing the target
[10:41:50] <fuzzie> so it's going to run forever..
[10:44:58] <fuzzie> DLTCEP documents this one as "Destroy Self", so i missed the fact that IESDP and gemrb are calling it "Remove Creature" and expecting a resource
[10:45:11] <lynxlynxlynx> yes, i did exactly that if
[10:45:48] <fuzzie> but you said the pomab summons don't continue forever?
[10:46:14] <lynxlynxlynx> no, i get it five or seven times
[10:46:31] <lynxlynxlynx> pretty much a screenful that still allows for some movement
[10:47:37] <fuzzie> weird
[10:47:51] <fuzzie> i mean, SPIN980 runs that fx_remove_creature effect, which should kill the caster
[10:47:57] <fuzzie> but our fx_remove_creature doesn't look like it works
[10:48:16] <fuzzie> and since the 'summon pomabs' effect is permanent, you'd think it would carry on summoning forever
[10:49:25] <lynxlynxlynx> maybe one of the scripts does it
[10:51:03] <lynxlynxlynx> eepomabf is the only pomab one that calls DestroySelf
[10:51:39] <fuzzie> so that is weird :)
[10:51:45] <fuzzie> but the bug is surely in our fx_remove_creature
[10:53:34] <fuzzie> try changing that to only do the GetCurrentArea/GetActorByResource if (fx->Resource[0]), else use target?
[10:54:02] <fuzzie> that effect is only marked 'Destroy Self' for iwd in IESDP, but i really doubt it's different everywhere
[10:56:24] <lynxlynxlynx> nope
[10:56:27] <fuzzie> (you might still need that IF_CLEANUP check)
[10:56:55] <fuzzie> if that doesn't work then, do you have a savegame?
[10:57:40] <lynxlynxlynx> i'll readd that check and retry
[10:58:52] <lynxlynxlynx> nope
[10:58:57] <lynxlynxlynx> i'll send you the save
[11:00:12] --> Maighstir has joined #gemrb
[11:00:20] <lynxlynxlynx> sent
[11:01:33] --> [1]Forgetful_Lio has joined #GemRB
[11:02:20] --> [2]Forgetful_Lio has joined #GemRB
[11:06:35] <lynxlynxlynx> oh, in case it isn't clear, move out through the right
[11:06:44] <lynxlynxlynx> err, left
[11:16:26] <fuzzie> um, that is interesting
[11:17:16] <lynxlynxlynx> the bug isn't so obvious anymore due to the tooltip change
[11:17:32] <lynxlynxlynx> before you could single out the true pomab just by checking that
[11:18:31] <Maighstir> several pomabs? twice as annoying?
[11:18:41] <fuzzie> it's more like .. hundreds :)
[11:19:23] <fuzzie> so, hehe, this is silly bug
[11:19:37] <fuzzie> effect is only called once
[11:20:31] <Maighstir> gaah! hundreds of them insisting on being called the king of whatever-it-was!?
[11:20:40] <-- [1]Forgetful_Lio has left IRC (Read error: 110 (Connection timed out))
[11:21:00] <-- Forgetful_Lion has left IRC (Read error: 110 (Connection timed out))
[11:21:00] --- [2]Forgetful_Lio is now known as Forgetful_Lion
[11:22:12] <Maighstir> I'm not sure my sanity would hold up to that.
[11:23:36] <fuzzie> lynxlynxlynx: so, if you change the level param inside the pomab summon effect from '100' to '0', it works fine
[11:24:13] <fuzzie> and the level parameter isn't *used* at the moment for anything except the multiple-summons thing
[11:24:43] <fuzzie> but maybe this is a SummonCreature bug.
[11:24:52] <lynxlynxlynx> so you ended up with 6 of them?
[11:25:01] <fuzzie> yep
[11:25:15] <lynxlynxlynx> good
[11:25:27] <lynxlynxlynx> i wonder if that's the number in the original too though
[11:25:40] <fuzzie> well, disassembly says 6 too :p
[11:25:46] <lynxlynxlynx> great
[11:30:02] <fuzzie> i don't see how the actor destruction works though, weird
[11:31:48] <fuzzie> gemrb seems to implement effect 0x104 as fx_crash
[11:32:03] <fuzzie> and the correct fx_avatar_removal is commented out in IWDOpc
[11:32:16] <fuzzie> so that obviously can't be the culprit. weird.
[11:37:11] <fuzzie> yes, this scene is kind of wonky
[11:37:54] <-- Maighstir has left IRC (Read error: 131 (Connection reset by peer))
[11:38:19] --> Maighstir has joined #gemrb
[11:39:17] <fuzzie> yes, i end up with 7 pomabs
[11:39:25] <fuzzie> one of which is mysteriously invisible
[11:40:50] <fuzzie> the invisible one being the original one
[11:40:58] <fuzzie> lynxlynxlynx: how is this scene meant to end?
[11:41:05] <fuzzie> if i kill all the pomabs, nothing happens
[11:41:49] <lynxlynxlynx> i think you have to kill a specific one 5 times, not completely sure
[11:42:00] <lynxlynxlynx> pomab screams and then the illusions are dispelled
[11:42:30] <fuzzie> and that worked for you?
[11:43:05] <lynxlynxlynx> it worked when i was cheating, still slashing now
[11:45:16] <lynxlynxlynx> i guess it just chipped through his 3000 hp
[11:47:18] <lynxlynxlynx> FAKE_POMAB_DEAD doesn't increase
[12:03:59] <fuzzie> bbl
[12:08:44] --> barra_away has joined #gemrb
[12:14:53] <-- barra_library has left IRC (Read error: 60 (Operation timed out))
[12:15:46] --> D_T_G has joined #gemrb
[12:22:33] <D_T_G> hello
[12:22:46] <lynxlynxlynx> oj
[12:23:00] <-- tasos86 has left IRC ("Leaving")
[12:23:17] <D_T_G> i don't understand i run GameTypeWindow.Unload() but the window is still visible
[12:25:35] <D_T_G> http://wklej.org/id/172723/txt
[12:28:16] <lynxlynxlynx> btw, GameIsHOW only checks if how is installed (aka HasHow)
[12:29:11] <D_T_G> so if it is installed but in cfg mode will be set to iwd it will still fire, right?
[12:30:04] <lynxlynxlynx> yes
[12:30:59] <D_T_G> but i think if someone has installed HoW than he wants to have access to it content anyway
[12:33:13] <D_T_G> GemRB.SetVar ("PlayMode",3) and GemRB.GameSetExpansion (1) it still starts in Easthaven
[12:34:23] <D_T_G> the logic behind it is in c++ and written for ToB, right?
[12:35:19] <lynxlynxlynx> i don't know for what it was written originally, but it isn't complete
[12:35:21] <lynxlynxlynx> i don't see why the window wouldn't unload
[12:35:45] <lynxlynxlynx> maybe you just need to force a redraw of the starting one
[12:36:04] <D_T_G> i mean in gametypedonepress i unload previous window but it's still drawn after it :/
[12:36:50] <fuzzie> D_T_G: PlayMode should be 2, no?
[12:37:08] <lynxlynxlynx> try moving the setvisible line after the unload
[12:37:43] <D_T_G> i tried and it's not drawn but the main menu becomes clickable and i can e.g. load game :o
[12:39:44] <fuzzie> hm, wklej.org doesn't load
[12:40:08] <fuzzie> oh, it is just very slow
[12:40:48] <fuzzie> i think you probably want ShowModal rather than messing with SetVisible..
[12:40:58] <D_T_G> hm
[12:41:16] <D_T_G> no matter what i set it playmode 1,2,3 it always starts in Easthaven
[12:42:01] <D_T_G> and it surely is in if GemRB.GetVar("ExpansionGame") == 1: block
[12:42:02] <lynxlynxlynx> that's expected
[12:42:12] <fuzzie> is it?
[12:42:33] <D_T_G> i gave there a print and it's print, but still always load in Easthaven
[12:43:16] <fuzzie> hm
[12:43:23] <fuzzie> ok, the core code for that is broken
[12:43:34] <fuzzie> again the problem where we look up by row ids and not row names
[12:43:34] <lynxlynxlynx> PlayMode is for switching between sp/tutorial/mp
[12:43:54] <lynxlynxlynx> tob is handled with another variable
[12:44:01] <fuzzie> oh?
[12:44:08] <fuzzie> the core uses PlayMode
[12:44:25] <lynxlynxlynx> yes, we just use the mpsave dir currently
[12:44:29] <fuzzie> i mean
[12:44:36] <fuzzie> the core calculates the starting area/position using PlayMode.
[12:44:39] <lynxlynxlynx> that's why you have problems with using original saves
[12:44:47] <lynxlynxlynx> ah
[12:45:30] <fuzzie> but i guess someone (Avenger?) broke it
[12:45:39] <fuzzie> 'hack for iwd2' which breaks iwd
[12:45:56] <D_T_G> iwd2 had expansion?!
[12:46:08] <lynxlynxlynx> no
[12:46:08] <fuzzie> no, it didn't
[12:46:14] <fuzzie> so it disables expansion :p
[12:46:19] <fuzzie> which doesn't work so well for iwd
[12:47:09] <lynxlynxlynx> one var can't be used for all the info we need unless we make it a bitfield
[12:47:13] <fuzzie> odd though, it looks like PlayMode 1 should still work
[12:49:53] <-- Forgetful_Lion has left IRC (" HydraIRC -> http://www.hydrairc.com <- *I* use it, so it must be good!")
[12:50:02] <fuzzie> ok, none of the existing code should work
[12:50:24] <fuzzie> oh i see what lynx is saying now
[12:51:06] <D_T_G> ShowModal works nice, grays the background nice like in exe, but the window is stil drawn :/
[12:51:11] <D_T_G> in background
[12:51:22] <fuzzie> D_T_G: the first window you make?
[12:51:28] <D_T_G> yes
[12:51:43] <D_T_G> GameTypeWindow behind GameType2Window (the warning)
[12:52:19] <fuzzie> huh.
[12:52:30] <fuzzie> you did remove the StartWindow.SetVisible(0)?
[12:52:53] <D_T_G> i'm experimenting with it a lot now
[12:53:06] <D_T_G> moving, deleting
[12:53:53] <D_T_G> startwindow.setvisible(1) moves gametypewindow out, but then main menu is clickable, and if i setvisible it back to 0 gametypewindow returns
[12:54:12] <D_T_G> eventhouhg it was _unloaded_
[12:54:23] <fuzzie> you shouldn't need to mess with SetVisible on StartWindow at all
[12:55:45] --> kettuz has joined #gemrb
[12:57:06] <fuzzie> the theory is that you call ShowModal on GameTypeWindow, then later you Unload that and call ShowModal on GameType2Window, and everything should work
[12:57:08] <fuzzie> it doesn't?
[12:57:23] <D_T_G> let me be sure
[12:58:49] <D_T_G> does work :)
[12:58:53] <fuzzie> yay
[12:59:06] <D_T_G> i removed all setvisibles on startwindow
[13:02:14] <D_T_G> [Control]: Destroying control inside event handler, crash may occur!
[13:02:15] <D_T_G> [Control]: Owner window destructed!
[13:02:52] <fuzzie> yes, you're not meant to call Unload from the event handler :/
[13:02:58] <fuzzie> but we have that in a bunch of other places
[13:03:09] <D_T_G> what is that evenhandler?
[13:03:27] <fuzzie> the 'event handler' is your GameTypeDonePress
[13:03:54] <fuzzie> the problem is, when you call Unload, you delete the button that was pressed
[13:03:59] <D_T_G> so how to prevent the warning?
[13:04:01] <fuzzie> and the core doesn't like that very much :)
[13:04:10] <fuzzie> i think you have to just leave it for now
[13:04:18] <D_T_G> hm, ok :)
[13:04:24] <fuzzie> maybe lynxlynxlynx has better idea
[13:04:40] <fuzzie> i don't understand the PlayMode problem, both 1 and 3 should work fine
[13:05:10] <D_T_G> me neither
[13:05:54] <fuzzie> the code should end up reading the 3rd line from startare for the area, which is AR9100
[13:06:26] <fuzzie> but if you have a patch which works for everything else, i will find that bug
[13:06:55] <fuzzie> oh!
[13:07:04] <fuzzie> the actors are positioned when they are created
[13:07:17] <fuzzie> doing it before EnterGame is too late, they already got made
[13:07:47] <D_T_G> http://wklej.org/id/172759/txt
[13:08:27] <D_T_G> oh, quitgame should also be set modal
[13:08:45] <fuzzie> so, i suggest moving all of that PlayMode code out of EnterGamePress, and put it in OnLoad instead
[13:09:38] <D_T_G> in the same patch?
[13:10:15] <fuzzie> well, i mean, try it :)
[13:10:31] <D_T_G> ok
[13:11:56] <D_T_G> worked :D
[13:12:27] <D_T_G> we need to play the HOWSEER just before entergamepress i guess :)
[13:12:42] <D_T_G> i mean in the function
[13:12:50] <fuzzie> *nod*
[13:14:30] <D_T_G> the hjollder does not start any dialog :/
[13:16:01] <D_T_G> http://wklej.org/id/172765/txt
[13:18:20] <fuzzie> you think that's done?
[13:18:29] <D_T_G> he just stays like he was in his house in kuldahar, i can initiate the same dialog from kuldahar with him
[13:18:59] <D_T_G> in exe he initiates the different dialog like hrothgar in easthaven
[13:19:00] <lynxlynxlynx> some unset var
[13:19:28] <D_T_G> http://img110.imageshack.us/img110/8294/how.jpg
[13:19:53] <lynxlynxlynx> Join_Posse
[13:19:59] <lynxlynxlynx> which is hardcoded in the exe
[13:19:59] <fuzzie> yes, Join_Posse is in exe
[13:20:18] <D_T_G> hm, set it like expansion_door?
[13:20:19] <fuzzie> one moment, i make test save in real iwd
[13:20:55] <fuzzie> and wait for stupid video, heh
[13:21:26] <fuzzie> we should fix subtitles in gemrb, they are actually readable in original
[13:21:30] <D_T_G> i guess it is also checked in script at the end of HoW if tor return to kuldahar or sth
[13:21:45] <lynxlynxlynx> yes
[13:23:01] <lynxlynxlynx> hrothgar also sets this var
[13:23:32] <fuzzie> hm
[13:23:37] <D_T_G> GemRB.SetGlobal("Join_Posse", "GLOBAL", 1) didn't work :/
[13:23:39] <fuzzie> it's not set
[13:23:55] <D_T_G> still the same dialog, and Hjollder does not initiate it
[13:23:57] <fuzzie> i have EXPANSION_DOOR, HOW_SEER_MOV and 9101_SPAWN_HOBART set
[13:23:57] <fuzzie> that is it
[13:24:22] <D_T_G> not HOBART_INIT?
[13:24:30] <fuzzie> Hjollder immediately initiates dialog with "By Tempos! The vision speaks true. You *are* the heroes from my dreams."
[13:25:18] <D_T_G> the same from Kuldahar house?
[13:25:26] <D_T_G> oh, me stupid
[13:25:37] <lynxlynxlynx> heh
[13:25:39] <D_T_G> the dialog was different after transition from Kuldahar :)
[13:25:44] <lynxlynxlynx> I am Hjollder[Yole-dare]
[13:25:51] <lynxlynxlynx> voice actor aide
[13:26:41] <lynxlynxlynx> hi, i am lynxlynxlynx and i pronounce gemrb as [jammer bee]
[13:26:52] <D_T_G> there should be any check if to play GemRB.PlayMovie ('HOWSEER') ?
[13:27:02] <lynxlynxlynx> is it how specific?
[13:27:14] <D_T_G> it's the intro movie from HoW
[13:27:29] <fuzzie> well, you play it only in expansion mode, i guess
[13:27:42] <lynxlynxlynx> you should
[13:27:47] <fuzzie> i don't think it's played from guiscript though
[13:27:48] <lynxlynxlynx> now it is always
[13:28:04] <fuzzie> it is played from game scripting
[13:28:07] <D_T_G> so what for would be that variable HOW_SEER_MOV??
[13:28:30] <lynxlynxlynx> something to do with the village seer? :P
[13:28:59] <D_T_G> there's a seer in barbarian camp i think
[13:29:19] <D_T_G> but is it anywhere checked in the script or sth?
[13:29:36] <lynxlynxlynx> yep
[13:30:02] <lynxlynxlynx> infact this makes the movie get played
[13:30:02] <D_T_G> so we should set it like expansion_door i guess
[13:30:05] <fuzzie> no
[13:30:06] <lynxlynxlynx> ar9100.baf
[13:30:11] <fuzzie> ar9100 sets it itself
[13:30:19] <D_T_G> oh, so no need to run it from guiscript
[13:30:22] <fuzzie> it should work fine without the guiscript needing to touch anything :)
[13:31:39] <D_T_G> nope, not played
[13:32:05] <D_T_G> if i step up closer to hjollder he initiates the dialog
[13:32:12] <D_T_G> i didn't click on him
[13:32:15] <lynxlynxlynx> i don't see what could go wrong
[13:32:37] <lynxlynxlynx> it is the first block of the area script
[13:32:39] <D_T_G> else:
[13:32:40] <D_T_G> GemRB.SetGlobal ("EXPANSION_DOOR", "GLOBAL", 1) # entrance to the HOW start
[13:32:40] <D_T_G> GemRB.SetGlobal ("HOW_SEER_MOV", "GLOBAL", 1)
[13:32:46] <D_T_G> i added it here
[13:33:03] <lynxlynxlynx> that's bad
[13:33:22] <D_T_G> bad place?
[13:33:41] <lynxlynxlynx> zzie> it should work fine without the guiscript needing to touch anything :)
[13:35:01] <fuzzie> if you set it, you break it
[13:35:08] <D_T_G> ok, i removed setting the global and movie got played
[13:35:11] <fuzzie> :)
[13:35:29] <fuzzie> EXPANSION_DOOR is good though
[13:36:15] <D_T_G> hey, i can even move south from him than he follows me and starts the dialog
[13:36:24] <D_T_G> but if i don't move he does nothing
[13:38:33] <D_T_G> i guess it's not up to gui, so this: http://wklej.org/id/172781/txt is quite finished :)
[13:38:37] <D_T_G> what you think?
[13:38:40] <fuzzie> gemrb has some bugs with deactivating actors
[13:39:14] <fuzzie> well, it's more that gemrb has some very carefully-written code to deactivate actors to fix a bug which is caused by something else entirely
[13:40:09] <D_T_G> should i upload the patch to tracker?
[13:40:14] <fuzzie> nope
[13:43:45] <fuzzie> seems fine
[13:43:49] <fuzzie> what do you want for commit message?
[13:44:31] <D_T_G> "possibility to start HoW addon only game in IWD" maybe?
[13:46:31] <CIA-66> gemrb: 03fuzzie * r7410 10/gemrb/trunk/gemrb/GUIScripts/iwd/ (PartyFormation.py Start.py): possibility to start HoW addon only game in IWD (patch by Nugrud)
[13:51:22] <D_T_G> where are resource types listed?
[13:51:32] <lynxlynxlynx> ie_restypes
[13:52:44] <D_T_G> i don't find it in the docs
[13:54:12] <fuzzie> GUIScript/ie_restypes.py
[13:54:29] <D_T_G> thx
[13:54:31] <fuzzie> hm i guess i didn't put the RES_OGG in there :)
[13:57:17] <lynxlynxlynx> the wmap should also be updated for how-only mode
[13:58:08] <fuzzie> well
[13:58:18] <fuzzie> from what i can see of original engine, it doesn't mess with wmap at all
[13:58:40] <fuzzie> it just picks it based on the current area
[13:59:18] <fuzzie> so this ends up being the same bug as the normal ->how one
[14:00:24] <D_T_G> http://wklej.org/id/172802/txt - totl
[14:00:38] <D_T_G> spawns Hobart
[14:00:41] <D_T_G> :)
[14:03:33] <D_T_G> 9700 is the castle where Hobart transports us
[14:06:54] <D_T_G> pretty simple :)
[14:07:02] <D_T_G> going for now, bye
[14:07:06] <-- D_T_G has left IRC ()
[14:07:28] <fuzzie> lynxlynxlynx: you think that's fine?
[14:07:43] <lynxlynxlynx> the patch?
[14:07:52] <fuzzie> yes
[14:08:09] <lynxlynxlynx> sounds like a good start
[14:08:27] <lynxlynxlynx> i don't particularly like hardocing resource names
[14:08:38] <lynxlynxlynx> mods could add ar9700 to other games
[14:08:59] <lynxlynxlynx> but until they do it to iwd, we should be fine
[14:09:26] <fuzzie> ok.
[14:09:48] <CIA-66> gemrb: 03fuzzie * r7411 10/gemrb/trunk/gemrb/GUIScripts/ (GUICommon.py iwd/PartyFormation.py): set TOTL hobart spawn variable (patch by Nugrud)
[14:14:08] <fuzzie> so, that pomab thing is weird
[14:14:52] <fuzzie> you have to damage the real Pomab once, then all the fake Pomabs should kill themselves
[14:15:13] <fuzzie> and so ctrl-y is game-breaking, heh
[14:17:02] <lynxlynxlynx> the "real" one
[14:17:51] <lynxlynxlynx> i tried attacking all of them, but maybe i got unlucky with the crystal sentries taking attention
[14:20:34] <fuzzie> yes, it doesn't seem to work for me, that is just the theory
[14:21:42] <fuzzie> EEPOMABR on the real thing, sets KILL_FAKE_POMAB once HP is below 3000, EEPOMABF on the fakes, which then increases FAKE_POMAB_DEAD and destroys self
[14:23:19] <fuzzie> then EEPOMABK on the real thing which makes him panic
[14:23:22] <fuzzie> i wonder where it goes wrong
[14:57:18] --> D_T_G has joined #gemrb
[14:57:56] <D_T_G> first gui error in how-only game :)
[14:58:11] <D_T_G> File "./GUIScripts/iwd/GUIJRNL.py", line 111, in UpdateJournalWindow
[14:58:12] <D_T_G> for i in range (GemRB.GetJournalSize (Chapter)):
[14:58:12] <D_T_G> AttributeError: GetJournalSize(chapter[, section]) => int
[14:59:46] <lynxlynxlynx> probably Chapter is undefined
[15:00:32] <D_T_G> Chapter is a global 0
[15:01:02] <D_T_G> but then it tries to Chapter = GemRB.GetGameVar("chapter")
[15:01:51] <D_T_G> which returns 4294967295 :o
[15:03:30] <D_T_G> and it blows "for i in range (GemRB.GetJournalSize (Chapter)):"
[15:04:22] <lynxlynxlynx> ok, -1 not unset
[15:06:35] <lynxlynxlynx> maybe it was hardcoded in tob it is nicely done by scripts
[15:06:46] <lynxlynxlynx> try just setting it to 8
[15:07:03] <D_T_G> globally?
[15:07:22] <lynxlynxlynx> sure
[15:07:36] <lynxlynxlynx> try 7 first
[15:07:52] <D_T_G> 8 didn't work
[15:08:25] <D_T_G> 7 neither
[15:08:39] <lynxlynxlynx> in what sense?
[15:08:56] <D_T_G> still the same gui error
[15:09:10] <lynxlynxlynx> then you're doing it wrong
[15:09:49] <lynxlynxlynx> try with 1 for kick
[15:10:21] <D_T_G> Chapter = GemRB.GetGameVar("chapter") - this always reset it to 4294967295
[15:10:27] <Maighstir> Is there any way of using custom UI with any other name than GUIW[08|10|12]... I was thinking it would be as simple as defining my own GetWindowPack()
[15:10:40] <lynxlynxlynx> D_T_G: of course it will
[15:10:51] <lynxlynxlynx> i was talking about changing chapter
[15:11:27] <lynxlynxlynx> Maighstir: CGUIxxyy
[15:11:36] <lynxlynxlynx> no need for a custom GetWindowPack()
[15:12:02] <D_T_G> hm, i should look at what chapter is showed in journal in exe, but i already got wine zombie process :/
[15:13:40] <Maighstir> so, say I have a CHU for 1920*1080, it would work if I named it CGUI1910? same for 800*480 as CGUI0804 ?
[15:15:01] <Maighstir> ah well, I'll try, thanks
[15:15:03] <lynxlynxlynx> cgui8040
[15:15:14] <lynxlynxlynx> err, cgui8048
[15:15:36] <Maighstir> okay
[15:17:01] <-- D_T_G has left IRC ()
[15:26:39] <Maighstir> thus a 640x480 UI has to be named GUIW, a 800x480 one need to be called CGUI8048, and the 800x600 one is GUIW08... I was hoping I could be more consistent with the naming, but that'll have to do for now
[15:35:05] <fuzzie> CHAPTER is 1 at the start of HoW
[15:35:24] <fuzzie> but i don't know what 'GetGameVar' is
[15:36:08] <fuzzie> oh, it just looks up globals. SetGlobal with CHAPTER should be fine, then?
[15:48:26] <fuzzie> oh, i suppose you have to damage the real Pomab 5 times
[15:48:27] <fuzzie> meh
[15:58:05] <lynxlynxlynx> Maighstir: the guiw ones are bundled with the originals, the cg ones can be *generated* with the widescreen mod and are thus inferior in some areas
[16:08:21] <Maighstir> yeah, but I'm creating everything anew, and thus need (or want) none of the original data
[16:09:37] <Maighstir> just using it as a template for how stuff its together
[16:12:55] <fuzzie> you probably want to override all the guiscripts for a custom game
[16:13:26] <fuzzie> in which case a GetWindowPack is a sensible idea, although it's only used from other guiscripts so you can do what you want, i think?
[16:24:01] <Maighstir> Yeah, I'm learning through modifying bg2 bit by bit (eventually replacing it completely), and thought I could just override that function by adding one with the same name in GUICommonWindows.py - also I'm using a custom game identifyer to keep compatibility with the defaults
[16:32:09] <Maighstir> I have much to learn (I already knew that, though the more I know, the more I know that I don't know)
[17:07:38] <-- |Cable| has left IRC (Remote closed the connection)
[17:09:03] --> |Cable| has joined #gemrb
[17:14:04] --> D_T_G has joined #gemrb
[17:15:26] <D_T_G> re:journal - in exe how-only game chapter is set to 1
[17:15:43] <fuzzie> i did say :)
[17:15:55] <fuzzie> oh, i see, you'd already left!
[17:16:02] <D_T_G> oh
[17:16:12] <fuzzie> so i shall repeat what i said: why not SetGlobal with CHAPTER? does it not help?
[17:16:17] <D_T_G> i should check the archive first :)
[17:17:11] <D_T_G> the code is good for main part of the game - you open the journal on the chapter you are in i think
[17:17:31] <fuzzie> i mean, why not SetGlobal when setting the other HoW expansion globals
[17:17:44] <D_T_G> oh, right :)
[17:17:57] <fuzzie> for a normal iwd game chapter starts at 0, so i guess don't do it everywhere
[17:21:29] <D_T_G> http://wklej.org/id/173033/txt
[17:21:29] <fuzzie> lynxlynxlynx: asking for logo is good idea :)
[17:21:47] <lynxlynxlynx> fuzzie: you've got an account on shs, maybe mirror it there ;)
[17:22:04] <lynxlynxlynx> D_T_G: looks good
[17:22:19] <lynxlynxlynx> exactly what i wanted from the start
[17:22:23] <fuzzie> if it works, poke lynx to apply it
[17:22:37] * D_T_G pokes lynx
[17:22:41] <D_T_G> :)
[17:25:13] <lynxlynxlynx> too bad i lost my bash history
[17:26:51] <lynxlynxlynx> yeah works for me too
[17:27:08] <D_T_G> in eastheaven it starts with 0 chapter
[17:27:28] <D_T_G> but in gui you can't scrool further to empty chapter pages
[17:27:51] <lynxlynxlynx> how is that bad?
[17:28:36] <D_T_G> i think it's different in exe
[17:28:52] <CIA-66> gemrb: 03lynxlupodian * r7412 10/gemrb/trunk/gemrb/GUIScripts/iwd/PartyFormation.py: set the chapter to 1 for how, patch by nugrud
[17:29:01] <lynxlynxlynx> D_T_G: if it is different, then the exe sucks
[17:29:27] <lynxlynxlynx> we don't need to copy all their silliness
[17:29:35] <fuzzie> i think the idea is, you're not meant to know how many chapters there are
[17:30:16] <lynxlynxlynx> oh, so the exe doesn't scroll? i read the opposite
[17:30:18] <D_T_G> i'm doing quick playthrough how it works
[17:30:29] <lynxlynxlynx> don't we do getjournalsize(chapter) checks?
[17:31:01] <lynxlynxlynx> we do
[17:31:36] <lynxlynxlynx> but that's for entries, not chapters
[17:31:38] <fuzzie> #if GemRB.GetJournalSize (Chapter + 1) > 0:
[17:31:39] <fuzzie> if Chapter < GemRB.GetGameVar("chapter"):
[17:31:44] <fuzzie> ^- seems like either of those should be good?
[17:32:16] <lynxlynxlynx> that's already in there
[17:32:23] <fuzzie> yes, i just copy-and-paste it
[17:32:34] <lynxlynxlynx> and it is not hard bound, so i don't see how it could give away the chapter count
[17:32:46] <fuzzie> so i'm confused :)
[17:32:55] <lynxlynxlynx> trying a save
[17:33:43] <fuzzie> maybe GetGameVar("chapter") returns unsigned -1?
[17:34:01] <fuzzie> if so, then that is a bug in GetGameVar..
[17:34:23] <lynxlynxlynx> i tried some 5 saves and all but one were fine
[17:34:37] <fuzzie> ugh
[17:34:39] <lynxlynxlynx> in one i could go to an empty chapter three page, but that's it
[17:34:50] <fuzzie> ok, why does GetGameVar deliberately break signed values?
[17:35:40] <fuzzie> D_T_G: are you on 64-bit?
[17:35:42] <lynxlynxlynx> but chapter won't be -1 anymore with that patch :)
[17:35:46] <D_T_G> yes i'm
[17:35:49] <fuzzie> lynxlynxlynx: only for HoW
[17:36:05] <lynxlynxlynx> for iwd it starts with 0, the prologue, no?
[17:36:16] <fuzzie> do we set that anywhere?
[17:36:18] <D_T_G> in iwd easthaven it starts with 0 so ok
[17:36:31] <lynxlynxlynx> i doubt we set it
[17:36:39] <fuzzie> D_T_G: you get journal bug with chapter at 0?
[17:36:52] <D_T_G> bug?
[17:36:59] <D_T_G> it's not intended?
[17:37:18] <fuzzie> no
[17:37:18] <lynxlynxlynx> what's it?
[17:38:07] <D_T_G> sh* starting new game in iwd1 crashes wine flooding stdout with dplay fixmes :|
[17:38:25] <D_T_G> no matter what char i import, do you have it too?
[17:38:32] <fuzzie> i have iwd open
[17:38:38] <fuzzie> but on XP, no wine
[17:38:54] <fuzzie> hm
[17:38:59] <fuzzie> ok, i guess lynx is interpreting right here
[17:39:17] <fuzzie> the original exe allows me to scroll to not-yet-reached chapters
[17:39:45] <lynxlynxlynx> :)
[17:39:48] <D_T_G> yep, for me too, up to 6th chapter
[17:39:54] <fuzzie> and that is silly
[17:40:46] <D_T_G> in gemrb in HoW-only game i can scroll there too
[17:40:58] <fuzzie> all the way to 6?
[17:41:18] <fuzzie> and this in a game made with your chapter patch, so chapter is 1?
[17:41:27] <D_T_G> hm, it broke now
[17:41:29] <fuzzie> if chapter is -1 then i think you hit a bug in gemrb's GetGameVar
[17:41:32] <D_T_G> but i could :)
[17:41:43] <fuzzie> it does (unsigned long) cast where it should do (signed int)
[17:43:32] <D_T_G> i really could scrool it there in gemrb, i don't know when it broke
[17:43:51] <fuzzie> isn't it just that you set CHAPTER to 1 now?
[17:43:56] <lynxlynxlynx> the past tense there is important ;)
[17:44:27] <fuzzie> it is deliberate that gemrb doesn't let you scroll forever, anyway
[17:44:33] --> tombhadAC has joined #gemrb
[17:50:36] <D_T_G> oh, better such bugs than gui crashing ones i guess
[17:51:11] <fuzzie> so, i guess how is unplayable due to world map issues?
[17:51:14] * fuzzie sighs
[17:51:30] <lynxlynxlynx> totl is playable :)
[17:51:45] <D_T_G> lynx you playing now?
[17:51:51] <lynxlynxlynx> no, i just checked
[17:52:31] <D_T_G> shouldn't party formation window be opened before every load game in iwd1?
[17:52:52] <fuzzie> yes, but it gets annoying :P
[17:53:12] <lynxlynxlynx> :)
[17:53:16] <D_T_G> than after loading old save game after installing how or totl would be updated with new variables
[17:53:19] <fuzzie> ok, if you start a new HoW game and move to iwd, you get .. the iwd world map!
[17:53:40] <D_T_G> in exe?
[17:53:42] <fuzzie> yes
[17:53:47] <fuzzie> so it is surely based on areas
[17:53:48] <D_T_G> hm
[17:53:49] <lynxlynxlynx> because you had the iwd one from the start
[17:53:54] <lynxlynxlynx> oh
[17:54:48] <D_T_G> so gemrb core should have funcionality: display this wmap now
[17:54:57] <fuzzie> D_T_G: but what would call that?
[17:55:13] <D_T_G> name of the wmap? expmap?
[17:55:22] <fuzzie> how do you work out which one?
[17:55:54] <D_T_G> you mentioned a 2da for that, didn't you?
[17:55:56] <lynxlynxlynx> it can't even be hardcoded area name matching
[17:56:12] <lynxlynxlynx> watcher's keep is in both wmaps, which to use?
[17:56:22] <fuzzie> this is iwd-specific
[17:57:00] <fuzzie> ToB definitely just stomps over the map with a new one, as we have it coded
[18:01:14] <fuzzie> i find myself wondering if they just check for AR9xxx
[18:01:38] <D_T_G> could it be anything up to gui scripts?
[18:02:18] <D_T_G> or rathere nasty hacks to core?
[18:02:49] <fuzzie> the gui script could do the work, i'm sure
[18:02:58] <fuzzie> but you've got to work out what the work is..
[18:04:44] <D_T_G> i noticed in gemrb: sometimes you can travel from lonelywood to kuldahar but sometimes not
[18:05:07] <fuzzie> in gemrb, you have to actually touch an edge, i think
[18:05:13] <fuzzie> you can't just look at world map
[18:05:16] <D_T_G> i wonder what are the circumstances that one it says it's wrong map, but sometimes let's you travel
[18:05:26] <D_T_G> yes, after touching edge
[18:05:35] <D_T_G> the kuldahar icon is clickable
[18:05:49] <fuzzie> weird, it should always let you travel if you can click :/
[18:05:51] <D_T_G> and sometime after click it really really travels you there
[18:06:12] <D_T_G> but sometimes it say sth like "calculation for wrong map"
[18:08:19] <D_T_G> [WorldMap]: CalculateDistances for invalid Area: ar9100
[18:08:19] <D_T_G> CloseWorldMapWindow found Mapwindow = None
[18:08:19] <D_T_G> Traceback (most recent call last):
[18:08:19] <D_T_G> File "./GUIScripts/iwd/GUIMA.py", line 211, in MoveToNewArea
[18:08:19] <D_T_G> GemRB.CreateMovement (tmp["Destination"], tmp["Entrance"], tmp["Direction"])
[18:08:19] <D_T_G> KeyError: 'Destination'
[18:08:23] <D_T_G> this time i couldn't
[18:09:34] <fuzzie> hm
[18:09:47] <fuzzie> right, there's no link to be found..
[18:09:58] <fuzzie> the guiscript should check for tmp["Distance"] being -1, which means failure
[18:10:31] <fuzzie> but it really shouldn't get clicks if that happens, i thought
[18:10:31] <D_T_G> but in other circumstances i could travel there
[18:11:31] <fuzzie> i don't know what happens when you can't reach an area in original engines
[18:12:33] <fuzzie> ok
[18:12:35] <D_T_G> i think the circumstance was sth like: i started in easthave, moved to kuldahar, talk to the druid, reached the edge, revealed the shadows dale icon but didn't travel there, than i transitioned to lonelywood
[18:12:40] <fuzzie> teambg forum post says: all 9xxx areas use expmap
[18:12:49] <D_T_G> and from the edge in lonelywood i could travel back to kuldahar
[18:15:29] <fuzzie> maybe we corrupted the map?
[18:15:44] <fuzzie> it should just error out with no 'Destination' every time
[18:16:07] <fuzzie> ok, new ar9xxx areas do seem to get on expmap
[18:16:13] <fuzzie> i guess it is stupid numbers hack :(
[18:20:39] <D_T_G> yeah, me going
[18:20:43] <-- D_T_G has left IRC ()
[18:43:37] <fuzzie> oh
[20:00:36] --- barra_away is now known as barra_home
[20:29:43] --> Avenger has joined #gemrb
[20:29:48] --- ChanServ gives channel operator status to Avenger
[20:29:52] <Avenger> hi
[20:30:00] <fuzzie> hi, i have a few questions again :)
[20:30:06] <Avenger> fuzzie: i looked at the pomab case, but i don't see how it gets repeated
[20:30:08] <fuzzie> maybe you saw some coming from irc logs
[20:30:19] <fuzzie> Avenger: this '100' in the Summon call is the problem
[20:30:22] <Avenger> the spell is applied in a cutscene (that means it is executed once)
[20:30:29] <Avenger> 100?
[20:30:32] <fuzzie> yes
[20:30:47] <Avenger> you mean, it summons more with a single call?
[20:30:51] <fuzzie> yes
[20:31:02] <Avenger> ok, what is in the familiar call
[20:31:03] <fuzzie> the parameter is labelled 'level'
[20:31:07] <Avenger> we should use the same call
[20:31:15] <fuzzie> but SummonCreature does something stupid with this and XP?
[20:31:25] <fuzzie> so i don't understand, but the 100 has been there for a long time, so i assume it means something
[20:31:27] <Avenger> well look at the familiar summoning
[20:31:43] <fuzzie> the familiar call just uses 0
[20:31:48] <fuzzie> if i change it to use 0, everything is fine
[20:32:05] <fuzzie> but i want to know what the 'level' parameter means
[20:32:13] <Avenger> well, then just use 0
[20:32:14] <Avenger> :)
[20:32:25] <fuzzie> because there are all kinds of problems with summoning calls
[20:32:36] <fuzzie> and you seem the one who wrote it all
[20:33:00] <fuzzie> my second question is about effect 104, which is fx_crash in FXOpc?!
[20:33:05] <Avenger> well, lets focus on pomab for now, that 100 is surely not good
[20:33:29] <Avenger> anything uses it?
[20:33:34] <fuzzie> i don't see why that exists, and i don't see why fx_avatar_removal is commented out in IWDOpc
[20:33:54] <Avenger> because fx_avatar_removal is implemented in fxopc
[20:34:05] <fuzzie> aha
[20:34:38] <Avenger> back to 104, it is there so all numbers are assigned, but i guess it is crashing in the original
[20:34:52] <fuzzie> well, in iwd it is fx_avatar_removal
[20:34:57] <fuzzie> i just become confused as to where it's implemented
[20:35:08] <fuzzie> since i think it's some different effect in bg2, but we'll see
[20:35:17] <Avenger> it is 104 in bg2
[20:35:26] <fuzzie> effect 0xa8 is 'fx_remove_creature' in gemrb
[20:35:26] <Avenger> 104 in bg2 is crash
[20:35:32] <Avenger> 0x104
[20:35:42] <fuzzie> IESDP documents it as 'Destroy Self' for iwd
[20:35:51] <fuzzie> and where i see it in iwd, it is used like that, with no resource
[20:35:59] <Avenger> 0xa8 is destroyself
[20:36:12] <fuzzie> ok, but it is also removecreature?
[20:36:15] <Avenger> that is, it destroys the target
[20:36:31] <Avenger> it flips its 'remove from area' bit
[20:36:31] <fuzzie> gemrb doesn't do that bit, it removes fx->Resource
[20:36:44] <Avenger> hmm
[20:36:55] <fuzzie> i want it to destroy target please :)
[20:37:05] <fuzzie> but maybe you understand what is going on, perhaps it is game-specific
[20:37:26] <fuzzie> i just did 'if (!fx->Resource[0]) actor = target;' and it seems fixed for me
[20:37:29] <Avenger> it should destroy target, i think
[20:37:40] <Avenger> let me see what is in the opcode code
[20:37:45] <fuzzie> thankyou :)
[20:39:00] <Avenger> hmm
[20:39:13] <Avenger> iesdp says: removes creature in resource key
[20:39:23] <fuzzie> but for iwd, it calls the effect 'destroy self'
[20:39:32] <fuzzie> and it has different description for pst again
[20:39:37] <fuzzie> so i think no-one really looked into it?
[20:39:44] <fuzzie> or else it is game-specific.
[20:39:54] <fuzzie> this is why i ask, rather than just committing :)
[20:40:07] <Avenger> it seems it sets the self destruct flag in bg2 too
[20:40:26] <Avenger> but i don't see what is the target
[20:40:46] <Avenger> it seems like it doesn't use resource key
[20:40:55] <Avenger> i don't know why is it in iesdp
[20:41:04] <fuzzie> well, i only find it used with no resource and with target==self
[20:41:48] <Avenger> SPIN846
[20:41:49] <fuzzie> but the disassembled opcodes seem very clear
[20:41:51] <Avenger> doesn't have resource
[20:42:14] <Avenger> spwi830 no resource
[20:42:21] <Avenger> err spwi980
[20:42:31] <Avenger> you can search all spells using 0xa8 by dltcep
[20:42:36] <Avenger> i see none using resource
[20:42:37] <fuzzie> oh, bg2's 0a8_destroyself is a lot more complicated
[20:42:47] <Avenger> it is, yeah
[20:42:52] <Avenger> it checks for party membership
[20:43:05] <Avenger> probably calls a leaveparty before destroyself
[20:43:39] <Avenger> 4B67B0
[20:43:43] <Avenger> is leaveparty
[20:43:50] <Avenger> my IE instincts are working :)
[20:43:55] <fuzzie> :)
[20:44:38] <Avenger> ok, lets say it never uses resource
[20:44:45] <Avenger> but lets just /**/ it out
[20:45:02] <Avenger> our version of destroyself will call leaveparty, i'm pretty sure
[20:45:10] <Avenger> so no need to add it in the effect code
[20:46:44] <Avenger> yes we do
[20:47:16] <Avenger> it sets IF_CLEANUP, which in turnresults in map->DeleteActor
[20:47:28] <Avenger> DeleteActor will call LeaveParty
[20:47:41] <Avenger> oh
[20:47:57] <Avenger> and i see why it causes familiars to get lost?
[20:48:04] <Avenger> game->DelNPC( game->InStore(actor) );
[20:48:12] <Avenger> probably that is NOT needed
[20:48:53] <Avenger> i would comment that out
[20:49:04] <fuzzie> anyway, i can just change the pomab thing and it works, but i'm not happy not understanding the summon :/
[20:49:20] <Avenger> we cannot understand everything at once :P
[20:49:23] <fuzzie> also, for how: EXPMAP is used in areas AR9xxx
[20:49:46] <Avenger> i don't understand it completely myself, if that makes you feel better
[20:50:06] <fuzzie> i would appreciate someone else checking that, maybe you if you have time
[20:50:10] <fuzzie> because it is a horrible hack
[20:50:11] <Avenger> the pomab thing will work, because familiar summoning works too
[20:50:24] <Avenger> hmm, expmap
[20:50:46] <fuzzie> but try making two new areas, one AR9xxx and one which isn't, and then teleport to them and check world map
[20:50:59] <fuzzie> i get expmap for the AR9xxx one, and worldmap for the other
[20:51:11] <Avenger> even if it isn't on the map?
[20:51:14] <fuzzie> yes
[20:51:20] <Avenger> so it is hardcoded
[20:51:28] <Avenger> but we don't have to
[20:51:30] <fuzzie> there is some post in teambg forums, asking if anyone knows how to make it not do that
[20:51:54] <Avenger> we simply have to look for the area in both files
[20:52:01] <fuzzie> that doesn't work
[20:52:05] <fuzzie> because most areas are not in the files
[20:52:12] <Avenger> if the area isn't on the map, then we use the last one
[20:52:14] <fuzzie> internal areas, etc
[20:52:34] <Avenger> but you switch worldmaps by using areas on the worldmap
[20:52:46] <fuzzie> yes, but if you load a savegame, how do you work it out?
[20:53:04] <Avenger> it is a good question, isn't there some variable?
[20:53:11] <fuzzie> no, it just checks area
[20:53:12] <Avenger> return from lonelywood?
[20:53:23] <Avenger> or something like that
[20:53:25] <fuzzie> AR9xxx is expmap, always
[20:53:31] <fuzzie> otherwise is worldmap, always
[20:53:42] <fuzzie> you can teleport between random maps of the two, to see
[20:54:04] <Avenger> but normally you don't do that :)
[20:54:23] <fuzzie> sure, but anyway, no, there is no variable
[20:54:44] <Avenger> yes, i know they hacked it based on ar9...
[20:54:51] <Avenger> and the first release was buggy
[20:54:56] <fuzzie> well, you could probably do some hack with checking whether the iwd areas were ever visited
[20:54:58] <Avenger> it is a quick hack
[20:55:09] <Avenger> how that helps?
[20:55:25] <Avenger> you could have visited both maps, and could be on any map, no?
[20:55:31] <fuzzie> hm, yes, that doesn't help
[20:55:47] <fuzzie> anyway, i thought: we simply check for AR9xxx too, in guiscript, and then call a core function to set used map?
[20:55:55] <fuzzie> i think nugrud had same thought
[20:55:57] <Avenger> my only idea is to use the last map which was on either worldmap
[20:56:26] <Avenger> well, you can do that in loadgame
[20:56:49] <fuzzie> but then if you do it in loadgame, you also have to do it every time you change maps
[20:57:03] <fuzzie> because you have to detect when you move to/from how
[20:57:43] <Avenger> i have one idea, SetMasterScript needs a way to leave a variable untouched
[20:57:52] <fuzzie> SetMasterScript is never called
[20:58:12] <fuzzie> maybe you are misled by lynx's changes: iwd does not use expansion actions
[20:58:25] <fuzzie> it just moves actors between areas
[20:58:44] <Avenger> ?
[20:58:51] <Avenger> SetMasterScript is a guiscript function
[20:58:58] <fuzzie> yes, but we don't need it?
[20:59:03] <fuzzie> maybe i don't understand
[20:59:08] <Avenger> to switch maps?
[20:59:15] <Avenger> i thought it is the only way
[20:59:22] <fuzzie> i don't think we can use it
[20:59:28] <fuzzie> i mean, doesn't it destroy the old map?
[20:59:49] <Avenger> i don't know
[21:00:20] <Avenger> i hoped it will remain in the cache folder
[21:00:59] <Avenger> so the old map is stored even if it isn't used at the time
[21:01:12] <fuzzie> hmm
[21:01:20] <Avenger> setmasterscript just sets the currently used worldmap
[21:01:38] <fuzzie> well, at the moment it doesn't save the old worldmap
[21:01:40] <fuzzie> it just deletes it
[21:01:56] <Avenger> hmm, well, it could be changed to save it
[21:02:08] <Avenger> like we do with stores
[21:02:17] <Avenger> when the active store is closed, it is saved
[21:02:17] <fuzzie> ok, so maybe using UpdateMasterScript would work
[21:02:35] <Avenger> no need of a new function, imo
[21:02:48] <Avenger> maybe it could be a bit improved, though
[21:03:11] <fuzzie> well, it should not bother changing the script, i guess
[21:03:34] <fuzzie> but otherwise it looks okay as it is
[21:04:04] <Avenger> yep, that's what i said first:i have one idea, SetMasterScript needs a way to leave a variable untouched
[21:04:35] <Avenger> i just don't know if an "" is good for that purpose
[21:04:45] <fuzzie> well, i don't think it harms to just pass "baldur" to it every time..
[21:04:46] <Avenger> what if you want to remove the master script
[21:04:55] <Avenger> it is a bit ugly
[21:05:09] <fuzzie> but we could simply swap the parameter order and make the script one optional?
[21:05:22] <Avenger> well, that would also suck
[21:05:36] <Avenger> if you want to set the master script, you should know which map to set
[21:05:41] <Avenger> or, hmm
[21:05:43] <Avenger> you are right
[21:05:48] <Avenger> if the map is "", then don't change it
[21:05:56] <Avenger> since there should always be a map
[21:06:04] <Avenger> maybe that
[21:06:10] <Avenger> or just have SetWorldMap?
[21:06:24] <Avenger> maybe it is bad design to have them in a single function
[21:06:30] <Avenger> i wanted to spare with the function number
[21:06:36] <Avenger> but it is ugly
[21:06:39] <fuzzie> i guess it is less silly to just have another function
[21:06:49] <fuzzie> i didn't think about that option
[21:07:11] <Avenger> so, SetWorldMap/SetMasterScript is ok to you?
[21:07:33] <fuzzie> sure
[21:07:37] <Avenger> ok
[21:07:43] <fuzzie> and i think i am out of questions for today :)
[21:08:01] <Avenger> i didn't know first, how many functions i may have without python slowing down
[21:08:12] <Avenger> so first i was reluctant to add new guiscript functions
[21:09:00] <fuzzie> i hope that it would only slow down startup, anyway, but i have no idea
[21:09:04] <Avenger> and of course i didn't know i will need this one to call more than once, with static parameters
[21:09:20] <Avenger> i mean, i thought i will always have static parameters
[21:09:24] <fuzzie> *nod*
[21:10:13] <Avenger> it is nice nugrud worked on totlm
[21:10:29] <Avenger> almost no need to touch the core for that ;)
[21:10:32] <fuzzie> i am more impressed by the HoW GUI :)
[21:10:57] <Avenger> what gui?
[21:11:06] <fuzzie> open iwd and click 'create game'
[21:11:20] <Avenger> didn't download the code yet
[21:11:23] <fuzzie> nugrud added the HoW dialogs :)
[21:11:31] <fuzzie> so you can select expansion-only game
[21:11:55] <Avenger> yes, i know about that. i meant that actually ;) HoW expansion ;)
[21:12:01] <fuzzie> ah :) ok
[21:12:10] <fuzzie> maybe you saw irc logs, there are some actor activation problems
[21:12:13] <Avenger> i will need to boot up linux and update
[21:12:26] <Avenger> i thought it is fixed with that variable set
[21:13:20] <Avenger> ah, back to pomab, did you check it with 0?
[21:13:37] <fuzzie> sure, it works fine
[21:13:45] <Avenger> k, i reboot to linux
[21:13:48] <-- Avenger has left IRC ("ChatZilla 0.9.85 [Firefox 3.5.3/20090824101458]")
[21:15:21] <-- kettuz has left IRC ("Leaving")
[21:16:15] --> Avenger has joined #gemrb
[21:16:54] --- ChanServ gives channel operator status to Avenger
[21:17:32] <Avenger> btw, did you see the armor clanking code for pst?
[21:17:47] <Avenger> if you go back to pst sometime, please check the levelup code
[21:17:58] <Avenger> it is still not nice
[21:18:07] <Avenger> (guiscript crash)
[21:18:53] <fuzzie> meh, that was working
[21:19:47] <fuzzie> NumOfSecoLevUp not defined?
[21:21:25] <fuzzie> huh, IE_SPECIFIC mis-set?
[21:23:04] <Avenger> ?
[21:23:19] <fuzzie> oh, right, the levelup code doesn't work with non-fighter TNOs
[21:23:21] <Avenger> ah i don't know what's up with it
[21:23:25] <fuzzie> that was existing bug
[21:23:45] <Avenger> i think i had a ... dunno, bare TNO?
[21:23:53] <Avenger> either unclassed, or fighter
[21:23:57] <Avenger> pure fighter
[21:24:13] <Avenger> what is the class of the unclassed TNO?
[21:24:20] <fuzzie> fighter
[21:24:27] <Avenger> then i had pure fighter for sure
[21:24:41] <Avenger> i was still in lower wards
[21:24:52] <Avenger> barely escaped the mortuary
[21:25:47] <fuzzie> hmm, weird
[21:26:00] <fuzzie> it assumes that TNO's IE_SPECIFIC stat is always 1
[21:26:05] <fuzzie> but it's always 2 according to DLTCEP and gemrb
[21:26:14] <Avenger> meh
[21:26:38] <Avenger> bios.2da has 2 filler lines
[21:26:55] <Avenger> it says tno's specific is 2
[21:27:17] <fuzzie> so i wonder why the guiscript thinks 1
[21:27:25] <fuzzie> maybe we didn't load it correctly back then
[21:27:47] <fuzzie> but CHARBASE surely has specific 2, so that is maybe the bug..
[21:28:20] <Avenger> it is definitely 2
[21:28:37] <Avenger> see specific.ids
[21:28:51] <Avenger> i checked an original savegame too
[21:28:54] <Avenger> that was 2 too
[21:28:56] <Avenger> so it is 2
[21:29:15] <Avenger> maybe our chargen is bad?
[21:29:20] <Avenger> or was bad
[21:29:23] <fuzzie> our chargen just uses charbase
[21:29:29] <lynxlynxlynx> btw, i had no actor activation problems entering how with a party (guess the position is already within his range)
[21:29:34] <fuzzie> maybe our CRE was at the time
[21:30:17] <fuzzie> anyway, that is a simple fix, i hope, but there is a lot more to fix in pst levelup
[21:31:40] <fuzzie> so i am kind of leaving it alone
[21:36:50] <Avenger> fuzzie don't bother with the pomab effect, i will unhardcode the coordinates/resource names
[21:37:02] <fuzzie> ok
[21:37:05] <Avenger> i wanted to do that for a long time :)
[21:37:15] <fuzzie> can i also leave you to fix Destroy Self effect?
[21:40:03] <Avenger> sure
[21:40:19] <CIA-66> gemrb: 03avenger_teambg * r7413 10/gemrb/trunk/gemrb/override/ (how/pomab.2da iwd/pomab.2da): unhardcoded coordinates/resources for the pomab mirror image effect
[21:41:21] <Avenger> i think it is a good 'extension' to have an optional resource there, to remove creatures
[21:42:16] <Avenger> but that is only after it fulfilled the original goal
[21:42:53] <Avenger> this is what i get when i implement iesdp faithfully instead of research :)
[21:43:54] <lynxlynxlynx> yucky indentation
[21:44:21] <lynxlynxlynx> no row names
[21:44:24] <fuzzie> i stopped trusting iesdp for anything, months ago :/
[21:44:43] <CIA-66> gemrb: 03avenger_teambg * r7414 10/gemrb/trunk/gemrb/plugins/FXOpcodes/FXOpc.cpp: fixed opcode 0xa8 (DestroySelf)
[21:45:02] <fuzzie> Avenger: you didn't commit IWDOpc.cpp?
[21:45:22] <Avenger> not yet
[21:46:07] <Avenger> i wanted to take another look at the code
[21:46:13] <Avenger> but it is fine...
[21:46:15] <CIA-66> gemrb: 03avenger_teambg * r7415 10/gemrb/trunk/gemrb/plugins/IWDOpcodes/IWDOpc.cpp: unhardcoded the pomab mirror image effect
[21:46:16] <Avenger> i didn't test it ;)
[21:46:57] <fuzzie> i still didn't successfully complete the scene
[21:47:03] <lynxlynxlynx> i'll try it
[21:47:06] <fuzzie> ctrl-y breaks it
[21:47:16] <Avenger> meh
[21:47:19] <fuzzie> and we run the scripts too fast, i guess
[21:49:31] <lynxlynxlynx> huh
[21:49:40] <lynxlynxlynx> the pomab spell failed
[21:49:46] <lynxlynxlynx> no pomabs at all
[21:49:57] <fuzzie> well, that is what Avenger just broke, so no surprise :)
[21:50:11] <Avenger> :(
[21:50:22] <lynxlynxlynx> he was supposed to fix it :P
[21:50:38] <fuzzie> Point p(atoi(tab->QueryField(i+1,1)), atoi(tab->QueryField(i+1,1)));
[21:50:49] <fuzzie> ^- that first one should be ',0'?
[21:51:24] <Avenger> const char *resrefs[2]={tab->QueryField(0,0), tab->QueryField(0,1) };
[21:51:26] <Avenger> this too :)
[21:51:33] <Avenger> or
[21:51:38] <Avenger> 0,0, / 1,0 ?
[21:51:45] <fuzzie> the first is what i just wrote
[21:51:53] <fuzzie> row first, then column, yes?
[21:52:07] <lynxlynxlynx> row, col :)
[21:52:07] <Avenger> yes
[21:52:15] <fuzzie> lynxlynxlynx: so, try those two :)
[21:52:51] <lynxlynxlynx> Avenger: just commit it says Knuth
[21:53:31] <Avenger> ok, just committed it
[21:53:41] <CIA-66> gemrb: 03avenger_teambg * r7416 10/gemrb/trunk/gemrb/plugins/IWDOpcodes/IWDOpc.cpp: meeh
[21:54:10] <Avenger> if it is still buggy, feel free to correct it
[21:54:39] <fuzzie> it looks fine at a glance, now
[21:54:40] <lynxlynxlynx> what's with the casts?
[21:54:57] <fuzzie> they make no sense but they shouldn't harm?
[21:56:07] <fuzzie> hm, svn still fails for me
[21:56:14] <Avenger> 0,0 is ambiguous
[21:56:22] <fuzzie> [KEYImporter]: Searching for pomab.2da...[Found in GemRB Override]
[21:56:22] <Avenger> const char * matches it too
[21:56:22] <fuzzie> [KEYImporter]: Searching for *.cre...[ERROR]
[21:56:22] <fuzzie> [KEYImporter]: Searching for *.cre...[ERROR]
[21:56:22] <fuzzie> [KEYImporter]: Searching for *.cre...[ERROR]
[21:56:22] <fuzzie> [KEYImporter]: Searching for pomimg.cre...[FOUND]
[21:56:25] <Avenger> so, it is needed
[21:56:56] <Avenger> eepomab is not there?
[21:57:07] <Avenger> oh damn
[21:57:39] <fuzzie> got to have row names?
[21:57:53] <lynxlynxlynx> with that kind of lookup, yes
[21:57:54] <Avenger> yes
[21:58:05] <fuzzie> i hate that bit
[21:58:08] <CIA-66> gemrb: 03avenger_teambg * r7417 10/gemrb/trunk/gemrb/override/ (how/pomab.2da iwd/pomab.2da): more doh
[21:58:25] <Avenger> i had this in mind, but i forgot before commit
[21:59:11] <fuzzie> ok, that works but coordinates are bad?
[21:59:24] <fuzzie> can you have hex values in 2da? i forget
[22:00:32] <fuzzie> oh, i guess you pass it to atoi() anyway, so that surely doesn't work
[22:01:19] <fuzzie> oh, or does it? confusing, why does my test case fail
[22:01:44] <fuzzie> no, atoi doesn't
[22:01:57] <fuzzie> i try with strtol
[22:02:38] <Avenger> lol
[22:02:43] <Avenger> i cannot believe that :)
[22:03:05] <fuzzie> atoi requires base 10
[22:03:51] <fuzzie> works for me, now
[22:04:17] <CIA-66> gemrb: 03fuzzie * r7418 10/gemrb/trunk/gemrb/plugins/IWDOpcodes/IWDOpc.cpp: pomab table entries are hex, must use strtol
[22:04:38] <Avenger> hehe
[22:05:30] <fuzzie> 5 images, one real pomab :)
[22:05:42] <Avenger> if there are no more bugs in this then it is because there are no more lines in the code :)
[22:06:16] <Avenger> well, at least the bug is fixed and the code is not so ugly hardcoded
[22:06:29] <fuzzie> yes, it's much nicer having that in a 2da
[22:06:41] <lynxlynxlynx> but the game situation is worse
[22:06:52] <fuzzie> lynxlynxlynx: it breaks more?
[22:06:54] <lynxlynxlynx> before you could get through atleast with cheating
[22:06:55] <Avenger> worse?
[22:07:01] <fuzzie> oh, yes :(
[22:07:09] <Avenger> why? what's wrong now
[22:07:16] <lynxlynxlynx> now you'd have to run away from the battle
[22:07:28] <fuzzie> Avenger: we don't cope very well with the weird scripting
[22:07:40] <fuzzie> if you manage to kill a fake pomab, it breaks
[22:07:51] <Avenger> how
[22:07:59] <fuzzie> normally this is no problem because it runs SetHP(3000) on every script run
[22:08:06] <fuzzie> but if you hit ctrl-y quick enough then, oh dear :)
[22:08:36] <Avenger> oh dear what?
[22:08:41] <Avenger> don't they have minhp?
[22:08:43] <fuzzie> nope
[22:08:50] <lynxlynxlynx> they are invicible, they just respawn
[22:08:57] <Avenger> so?
[22:09:02] <Avenger> you have to kill the real pomab
[22:09:12] <fuzzie> if you kill the real pomab, he doesn't respawn
[22:09:27] <Avenger> and the others vanish, no?
[22:09:33] <fuzzie> no
[22:09:42] <fuzzie> he's got to be alive for script to run
[22:10:08] <Avenger> well, i don't know what's the winning condition there, and you didn't tell me how we are different
[22:10:19] <fuzzie> the winning condition is that you damage him 5 times, i think
[22:11:09] <fuzzie> it would help if our ctrl-y was a little less damaging
[22:11:17] <fuzzie> the original one only does 1000 damage max, i thought?
[22:11:27] <fuzzie> with less if it resists one of the types
[22:11:28] <Avenger> GlobalLT("FAKE_POMAB_DEAD","GLOBAL",5)
[22:11:36] <Avenger> it counts dead fakes
[22:11:39] <fuzzie> no
[22:11:43] <lynxlynxlynx> fuzzie: we do more only if the first 1000 isn't fatal
[22:11:48] <fuzzie> that is not a death var
[22:12:03] <fuzzie> lynxlynxlynx: makes it impossible to debug this script :p
[22:12:41] <fuzzie> if you damage real pomab, it sets a var, one of the pomabs increases FAKE_POMAB_DEAD and destroys self
[22:13:25] <fuzzie> so after 5 damages, fakes are all dead --> scream, pomab HP set to 25
[22:13:54] <Avenger> and how are we different
[22:14:04] <Avenger> ctrl-y does not work in original?
[22:14:10] <Avenger> or it breaks the scene too
[22:14:15] <fuzzie> ctrl-y is "do 1000 damage" in original, not "kill target"
[22:14:40] <lynxlynxlynx> we do just damage too
[22:14:48] <fuzzie> but too much to debug this?
[22:14:48] <lynxlynxlynx> and the original uses a wierd number, no 1000
[22:14:50] <Avenger> well, that is not a terrible difference
[22:14:56] <fuzzie> well, it is some number <2000
[22:15:05] <lynxlynxlynx> just decrease it for this
[22:15:07] <Avenger> just change it to that number :)
[22:15:09] <fuzzie> it is not a terrible difference, but other bugs make it very difficult to battle properly in this scene
[22:15:19] <Avenger> i gotta sleep now
[22:15:22] <Avenger> see you later!
[22:15:26] <-- Avenger has left IRC ("bye!")
[22:15:26] <fuzzie> bye!
[22:16:17] <fuzzie> lynxlynxlynx: well, if it makes runthrough difficult, i'm not sure what to do
[22:16:51] <fuzzie> i guess it is to look at in morning
[22:19:28] <lynxlynxlynx> i meant just for this, not forever
[22:20:27] <lynxlynxlynx> while we have pure damage types, this is the only simple way to kill everything from ordinaries to trolls and magic golems
[22:21:23] <lynxlynxlynx> i don't cheat when playing the originals, so i don't know if their ctrl-y worked on everything
[22:21:48] <fuzzie> they did ~200 damage of various types, adding up to 1600 or so?
[22:22:00] <lynxlynxlynx> judging from the hit animation it does a variety of damage types, but there is only one message, so it is confusing
[22:22:28] <fuzzie> the messages in the original engines are not to trust..
[22:22:40] <fuzzie> they will appear out-of-order and combined
[22:23:00] <fuzzie> it is confusing when trying to debug scripts
[22:23:19] <lynxlynxlynx> even in how and iwd2? needs some checking, these two have different messages for different damage types
[22:25:45] <-- lynxlynxlynx has left IRC (Remote closed the connection)