#gemrb@irc.freenode.net logs for 1 Aug 2011 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[06:26:55] --> adominguez has joined #gemrb
[06:51:13] --> lynxlynxlynx has joined #gemrb
[06:51:14] <-- lynxlynxlynx has left IRC (Changing host)
[06:51:14] --> lynxlynxlynx has joined #gemrb
[06:51:14] --- ChanServ gives channel operator status to lynxlynxlynx
[07:32:41] --> test32894789234u has joined #gemrb
[07:35:35] --> lubos has joined #gemrb
[09:02:44] --> Avenger has joined #gemrb
[09:03:00] --- ChanServ gives channel operator status to Avenger
[09:03:08] <Avenger> hello
[09:04:32] <lynxlynxlynx> oj
[09:05:14] <Avenger> i just found the same flag in items
[09:06:37] <fuzzie> pst hostile flag?
[09:15:57] <Avenger> more like 'friendly' flag
[09:16:13] <Avenger> it marks spells/items that shouldn't send the hitby trigger
[09:16:24] <fuzzie> if you are looking at pst flags, then it would be nice to handle the actor ones
[09:16:37] <Avenger> which one specifically
[09:16:52] <Avenger> i'm hunting for flags in pst actors/scriptables right now
[09:16:56] <fuzzie> well, i am thinking of the one which makes everyone go hostile when one actor goes hostile
[09:17:10] <Avenger> ahh, the group thing
[09:17:31] <fuzzie> but iesdp says that is Help()
[09:17:32] <Avenger> i thought it is looking for the same special object id
[09:17:53] <fuzzie> i haven't kept up for a month or so again, so maybe it's already done
[09:18:20] <Avenger> well, Help() sounds like a good description, no?
[09:18:24] <fuzzie> i just know it was game-breaking in pst last time i tried :)
[09:20:46] <fuzzie> i don't understand any of the going-hostile code in bg2 i think
[09:20:53] <fuzzie> so ignore me if it's not something which needs RE work
[09:24:39] <fuzzie> how are the pst overlays now?
[09:26:55] <fuzzie> i see a comment about LastDamage, does original have that?
[09:27:14] <Avenger> i still have to find out how the original does this
[09:27:52] <Avenger> anyway, i wanted to do this by our trigger implementation (like fireshield works)
[09:28:06] <fuzzie> sure, it makes sense, although it's difficult to do right :)
[09:28:20] <fuzzie> i was just curious if you needed it
[09:28:27] <Avenger> i already fixed visual problems (several)
[09:28:34] <fuzzie> because i don't understand *anything* of this
[09:29:11] <Avenger> someone added 'overlay owned by effects', that they need a continuous refreshing by effects or they go away
[09:29:20] <Avenger> but, no one added the removal part :)
[09:29:24] <fuzzie> not for all overlays
[09:29:31] <fuzzie> only for non-hardcoded ones
[09:29:34] <Avenger> no, only for 'effect owned'
[09:29:51] <fuzzie> that was working when i added it :P
[09:29:59] <Avenger> hmm
[09:30:06] <Avenger> i had to add a line
[09:30:30] <Avenger> to call the graceful removal
[09:31:14] <fuzzie> i see you changed effect_owned=true to SetEffectOwned(true)
[09:31:28] <fuzzie> ah, for twin animations
[09:31:34] <Avenger> if (!vvc->active) {
[09:31:36] <Avenger> vvc->SetPhase(P_RELEASE);
[09:31:37] <Avenger> }
[09:31:42] <Avenger> no, that was my side of the problem ;)
[09:31:59] <Avenger> this --> void Actor::DrawVideocells(const Region &screen, vvcVector &vvcCells, const Color &tint)
[09:32:03] <fuzzie> hm
[09:32:07] <fuzzie> i hate putting code in draw :P
[09:32:25] <Avenger> well, its not much of a code
[09:32:35] <fuzzie> isn't it wrong?
[09:33:15] <fuzzie> if (effect_owned && (SequenceFlags&IE_VVC_LOOP) && Duration==0xffffffff && !active) {
[09:33:17] <Avenger> well, it removes effect owned vvcs
[09:33:18] <fuzzie> PlayOnce();
[09:33:19] <fuzzie> }
[09:33:30] <fuzzie> ^- this is the code I wrote, in ScriptedAnimation::HandlePhase
[09:34:07] <Avenger> that didn't work somehow :(
[09:34:36] <Avenger> i think my effect had a duration
[09:34:42] <Avenger> i mean my vvc
[09:34:54] <fuzzie> the owning effect is meant to set the duration :P
[09:34:58] <Avenger> it was effect owned, looping, !active
[09:35:15] <Avenger> the owning effect set its duration to the same as the effect duration
[09:35:25] <Avenger> it didn't set it to infinite , though
[09:36:12] <Avenger> i guess, yours would be better if you don't check so many conditions :)
[09:36:12] <fuzzie> that's odd
[09:36:34] <fuzzie> well, i added the conditions to make stuff work :P
[09:37:12] <Avenger> effects that start a vvc with preset time then go away shouldn't set the effect-owned flag :D
[09:37:43] <fuzzie> yeah, that is weird
[09:37:48] <Avenger> i agree that two mechanisms for the same stuff are excess, but some refactoring is needed
[09:37:52] <Avenger> too many conditions
[09:38:20] <Avenger> it would be good to note test cases
[09:38:31] <fuzzie> i think the reason is: because you can have the same vvc played by multiple effects
[09:39:16] <fuzzie> but fx_play_visual_effect clearly isn't right for that
[09:41:41] <fuzzie> i have no idea what i was thinking, we should have had test cases
[09:42:39] <fuzzie> i think the Duration check can be safely removed though
[09:42:46] <Avenger> hmm, pst anim ids can really contain the transparent bit :)
[09:43:51] <Avenger> add 0x800 to the anim ID to have it translucent, like deionarra is 0x80e
[09:44:01] <Avenger> this should work for all
[09:44:18] <Avenger> so, my one byte anim id idea is good :D
[09:44:35] <fuzzie> yes
[09:45:15] <Avenger> i just don't know how they enlarged the anim id space, isn't there some mod that makes more than 256 slots?
[09:45:39] <Avenger> did they move this bit, or they stopped before 0x800 :)
[09:45:50] <fuzzie> hm, the original data has 0x22e and 0x80e in the data file
[09:46:02] <Avenger> 0x22e...
[09:46:26] <Avenger> ok, so even 0x200 is used
[09:46:45] <fuzzie> that is very weird
[09:46:51] <fuzzie> why would they include the 0x80e?
[09:47:51] <fuzzie> now i wonder if that is a data bug or not
[09:49:06] <Avenger> no, they use the modified anim id in the list
[09:49:25] <fuzzie> the 558 is a larger version of 58
[09:49:40] <Avenger> 58?
[09:49:53] <fuzzie> i assume that is just coincidence
[09:50:23] <fuzzie> (58 is giant armored skeleton, 558 is large armored skeleton)
[09:51:25] <Avenger> afk a bit
[09:58:13] <-- lynxlynxlynx has left IRC (Read error: Operation timed out)
[10:07:52] <-- lubos has left IRC (Remote host closed the connection)
[10:11:01] --> lynxlynxlynx has joined #gemrb
[10:11:02] <-- lynxlynxlynx has left IRC (Changing host)
[10:11:02] --> lynxlynxlynx has joined #gemrb
[10:11:02] --- ChanServ gives channel operator status to lynxlynxlynx
[10:20:59] <Avenger> 500 is not a power of 2, so it is weird. i suspect manual error there too
[10:21:52] --> Sindikat has joined #gemrb
[10:22:15] <Avenger> there is no creature with 558 in the game
[10:22:56] <Sindikat> Hi all! I'm trying to install GemRB on Ubuntu 11.04, but after "cmake .." it says "CMake Error ... Looking for SDL: not found!", however i installed all sdl packages including -image and -mixer
[10:23:11] <fuzzie> did you install the sdl -dev package?
[10:23:31] <Avenger> yep, if you compile, you need sdl-dev too
[10:30:20] <Avenger> there is an easy to implement bit in pst appearance flags, 0x4000 - don't face target in dialogs
[11:55:14] <Avenger> hmm SetNamelessDeathParty is a simple variable setting (2 variables set to the x and y values of the point parameter)
[12:01:07] <-- Sindikat has left IRC (Ping timeout: 263 seconds)
[13:01:42] <Avenger> oh joy, PST containers are deactivated by 0x80 in the flags, not 0x20.
[13:01:58] <fuzzie> hehe
[13:02:08] <Avenger> SetCorpseEnable enables not only area animations, but containers
[13:02:18] <Avenger> and there is also a DeactivateEx action
[13:02:32] <Avenger> why they create multiple weird actions for a single function
[13:02:34] <fuzzie> on vacation? :)
[13:02:55] <Avenger> i am on 2 weeks holidays, yep :D
[13:08:26] <-- adominguez has left IRC (Quit: Saliendo)
[13:13:36] <lynxlynxlynx> hehe
[13:14:33] <lynxlynxlynx> fuzzie: will you have any time for gemrb? the action system regression is a major hold up
[13:15:13] <fuzzie> i have exams until 12th
[13:15:40] <lynxlynxlynx> when has that stopped you? ;)
[13:15:42] <fuzzie> but then a week when everyone else is away on holiday
[13:16:45] <lynxlynxlynx> i think after bg2 is completable again and tob is rechecked, 0.7.0 is in order
[13:17:44] <fuzzie> it would be nice to finish up various bg2 stuff
[13:20:22] <fuzzie> and i guess to actually implement combat properly
[13:24:03] <fuzzie> but it's a bit hopeless to do without enough time to test stuff
[13:25:56] <fuzzie> and ofc gemrb doesn't build for me right now..
[13:26:50] <fuzzie> cmake is really kinda silly
[13:28:45] <lynxlynxlynx> i don't know what you do to it
[13:31:31] <fuzzie> and pst seems broken
[13:31:55] <fuzzie> but it is not, it is just that gemrb seems to have started with .pyc again
[13:32:13] <fuzzie> that's odd
[13:32:50] <fuzzie> oh, it's broken if i delete the pyc.
[13:33:34] <fuzzie> our blame-o-meter says: Avenger
[13:33:44] <Avenger> hm?
[13:34:17] <Avenger> i don't even know how to enable the creation of .pyc ;D
[13:34:25] <fuzzie> you changed GetMemorizedSpellsCount to take an extra parameter and didn't change pst
[13:34:44] <Avenger> ah yes, THAT i noticed too ;D
[13:35:10] <Avenger> i was just too deep into implementing the overlays
[13:35:14] <fuzzie> well
[13:35:21] <fuzzie> how do i see the overlays? :P
[13:35:25] <Avenger> and i use an item for testing, not direct spellcasting
[13:35:42] <Avenger> i just use an item in which i set the spells to be cast
[13:35:47] <Avenger> i can tell you the overlay spells
[13:35:51] <fuzzie> hah
[13:36:01] <fuzzie> so no overlays actually work because none are castable? :P
[13:36:07] <Avenger> basically anything that uses opcode 201
[13:36:17] <Avenger> well, if you fix the script, you can cast any spells
[13:36:28] <fuzzie> i'm not sure what i'm meant to pass
[13:36:34] <Avenger> meh?
[13:36:39] <fuzzie> since i don't know if pst shows non-castable spells or not
[13:36:56] <Avenger> it doesn't show identify
[13:37:24] <Avenger> just modify the list the same way as in bg?
[13:37:33] <Avenger> i admit i didn't check pst :D
[13:38:01] <Avenger> this is not a recent change either :D
[13:38:11] <Avenger> i'm afraid 0.6.5 was broken
[13:39:22] <fuzzie> and now it segfaulted
[13:39:36] <fuzzie> because i tried casting Adder's Kiss and it looks for adder.spl and doesn't find it, apparently
[13:40:12] <Avenger> interesting
[13:40:18] <Avenger> because i have adder.spl
[13:40:41] <Avenger> hmm or no?
[13:41:00] <Avenger> no adder.spl here either
[13:41:08] <fuzzie> the actual spell is spwi201 but i have no idea whether i broke this by randomly messing with the python
[13:41:14] <Avenger> anyway, the adder has a very very odd projectile
[13:41:34] <fuzzie> well i was curious if it worked now :P so trying random spells
[13:41:46] <Avenger> it is a long snake which first spirals out from the caster, then moves towards the target in a sine wave
[13:41:59] <Avenger> it awaits your coordinate geometric magics
[13:42:06] <fuzzie> as lynx says fixing bg2 bugs is more important i guess right now
[13:42:12] <Avenger> yep
[13:42:16] <fuzzie> do you know where it is in original pst?
[13:42:25] <Avenger> the snake spell?
[13:42:36] <fuzzie> whatever code does the pathing
[13:42:41] <Avenger> aah
[13:42:56] <Avenger> well... i found the hardcoded trigonometric tables
[13:43:01] <fuzzie> heh
[13:43:09] <Avenger> i'm sure i saw the snake functions too
[13:43:17] <fuzzie> well, maybe when i have time i will ask you for idb, but really not now
[13:43:17] <Avenger> but this is not overlay
[13:43:28] <fuzzie> sure, i just trying random spells because i don't know what's overlay
[13:43:56] <lynxlynxlynx> hmm, i noticed pyc's again too, will investigate
[13:43:58] <fuzzie> i notice that gemrb resists a bunch of effects too :(
[13:44:12] <fuzzie> that code got changed again?
[13:44:58] <lynxlynxlynx> nope, can't reproduce
[13:45:04] <lynxlynxlynx> i guess i had them from the bisect runs
[13:45:15] <Avenger> hehe
[13:45:45] <Avenger> we changed something recently, but i'm pretty sure we need to think about this much more
[13:46:13] <fuzzie> it's resisting opcodes on self from an item, i guess
[13:46:28] <Avenger> it will always fail elsewhere if we just fix things :D
[13:47:43] <fuzzie> well, we do loads of this stuff in the wrong place i think?
[13:47:55] <Avenger> i think the games are different
[13:47:57] <fuzzie> oh and i see you added IdleActions to completely the wrong place :P
[13:48:03] <Avenger> so if you fix one, you break another
[13:48:15] <Avenger> i don't even know what is IdleActions
[13:48:27] <fuzzie> comments when bored, i think
[13:48:36] <fuzzie> same thing with an OverrideActions thing for panic
[13:48:39] <Avenger> ahh i know
[13:48:48] <Avenger> i indeed put it there, but it is empty
[13:48:55] <fuzzie> wrong place though :p
[13:49:05] <fuzzie> but i guess i should really go finish all of that code myself
[13:51:44] <Avenger> i cannot argue if it is wrong place, i don't see the scripting part completely clearly yet
[13:52:21] <fuzzie> well, all that stuff is dealt with from the main ai function
[13:52:45] <fuzzie> while ExecuteScript() is deep down inside a bunch of checks
[13:53:48] <fuzzie> i merged both living and non-living variants of the scripting update into Scriptable::TickScripting() which might help understand
[13:54:15] <fuzzie> bg2 is really inefficient and has several copies of that code in silly places, so it's tricky
[13:56:02] <fuzzie> i guess i will try to find time to implement the rest of those functions, and follow your example and just call empty functions for the unused bits
[13:57:28] <Avenger> yes, adding the empty functions helps
[13:57:31] <fuzzie> btw you said you didn't commit floating messages stuff - is there hope for that?
[13:57:43] <Avenger> not sure
[13:57:54] <Avenger> if you want to implement them, do so :D
[13:58:05] <Avenger> i could do them, but the overlays are easier
[13:58:23] <fuzzie> sure, finish overlays if you can :)
[14:03:42] <Avenger> i will just use this: #define CONT_DISABLED (32|128)
[14:03:53] <Avenger> it looks like the used bits are not overlapping
[14:17:29] <fuzzie> what does it change, just whether you can click on it?
[14:18:59] <Avenger> yes
[14:19:21] <fuzzie> ok.
[14:19:21] <Avenger> btw, do you remember the 3 schedule flag names?
[14:19:28] <Avenger> i forgot them :)
[14:19:33] <Avenger> we talked about them earlier
[14:19:35] <fuzzie> did you work out names?
[14:19:47] <Avenger> i have some names now, yes
[14:20:03] <Avenger> pst calls the 3rd as 'rendermode' and DeactivateEx changes it
[14:20:06] <fuzzie> oh, right, 2C08 etc
[14:20:19] <fuzzie> 2C08 is normal deactivate
[14:20:35] <Avenger> in pst it is 1ba4/1ba8/1bac
[14:20:50] <Avenger> i name them now: scheduled/activated/rendermode :)
[14:20:50] <fuzzie> scheduled, deactivated, rendermode?
[14:20:54] <fuzzie> ok, makes sense
[14:21:08] <fuzzie> i am still wondering about 35FC/35FE
[14:21:40] <Avenger> those are tob offsets in actor?
[14:21:59] <fuzzie> yes
[14:22:05] <Avenger> sorry, i'm a bit pst oriented now :P
[14:22:11] <fuzzie> hehe
[14:22:16] <fuzzie> well, please, continue with pst!
[14:23:14] <CIA-26> GemRB: 03lynxlupodian * r6c9f23b4056f 10gemrb/gemrb/GUIScripts/pst/ (FloatMenuWindow.py GUIPR.py): pst: added missing parameter to GetMemorizedSpellsCount calls
[14:23:35] <Avenger> at one point, it loads 4b into 35fc
[14:23:40] <Avenger> a constant 4b
[14:23:48] <fuzzie> do you know where?
[14:24:05] <fuzzie> both fields are countdowns which disable triggers/scripts for that many game ticks
[14:24:09] <Avenger> it is some delay timer
[14:24:29] <fuzzie> or, maybe they just disable triggers, actually. hm
[14:25:57] <fuzzie> yes i guess jsut triggers, maybe some kind of override?
[14:27:11] <CIA-26> GemRB: 03fuzzie * r5c4d3fc50c39 10gemrb/gemrb/core/Scriptable/ (Scriptable.cpp Scriptable.h): remove unused Scriptable::DelayedEvent
[14:27:28] <fuzzie> lynxlynxlynx: i hadn't noticed the guipr so just as well you beat me to that one
[14:28:24] <Avenger> cheer on lynx, he fixed the pst call :D
[14:28:33] <lynxlynxlynx> :)
[14:28:53] <lynxlynxlynx> grep saves the day
[14:29:12] <Avenger> guimg was fine?
[14:29:17] <lynxlynxlynx> yes
[14:29:45] <Avenger> i was sure sleepy :D
[14:29:45] <fuzzie> you'd updated that one, just not the rest
[14:30:39] <Avenger> back to this delay counter at 35fc, it is always set to 75. i see it in various places, even when an actor is selected
[14:31:08] <Avenger> that is here --> .text:0040DE2B 148 mov [edx+actor.field_35FC], ax
[14:31:33] <fuzzie> hm, that could be really annoying to make work properly
[14:32:12] <fuzzie> do any other fields get modified in the same places?
[14:32:25] <lynxlynxlynx> 75, half of what the combat counter uses
[14:32:51] <Avenger> yes 2c00, which is an enum (an object id)
[14:33:20] <fuzzie> do you know what field_2532 is?
[14:34:14] <Avenger> lol, the only empty in a while
[14:34:17] <Avenger> 00001C7A statsDiff derivedstats ?
[14:34:19] <Avenger> 00002532 field_2532 dd ?
[14:34:21] <Avenger> 00002536 weapon0 _icon ?
[14:34:22] <Avenger> 00002566 weapon1 _icon ?
[14:34:27] <fuzzie> alas
[14:35:06] <fuzzie> 35fc/35fe seem to be "clear triggers until a script has been run" fields, and when running the script, it also checks if 'field_2532 & 7' as well as those fields
[14:35:24] <Avenger> 2532 seems like an object
[14:35:42] <Avenger> .text:00528B92 1EC mov ecx, [ebp+pCopy]
[14:35:43] <Avenger> .text:00528B95 1EC add ecx, actor.field_2532
[14:35:45] <Avenger> .text:00528B9B 1EC call sub_567CD0
[14:35:57] <Avenger> that is where it creates an actor copy
[14:36:08] <fuzzie> huh
[14:36:32] <Avenger> it looks like an icon too
[14:36:49] <Avenger> a pointer to an icon
[14:38:07] <fuzzie> then i am clearly wrong
[14:39:15] <Avenger> ahh, no 2532 is more like the vtab of an object :) the vtab for those icon stuff that comes later, probably?
[14:39:54] <Avenger> that function i mentioned copies all those icons
[14:40:02] <Avenger> weapon0/1 etc
[14:40:45] <Avenger> it has 4+3+3 icons
[14:41:34] <Avenger> that's all th quick slots
[14:41:39] <fuzzie> i wonder if it's some UI stuff
[14:41:48] <Avenger> yep, most likely
[14:41:56] <Avenger> that's the quick slot icons
[14:53:29] --> Sindikat has joined #gemrb
[15:02:54] <Avenger> interesting, i don't see anything than 0 put into it
[15:03:21] <Avenger> but i found why you asked :)
[15:06:04] <fuzzie> well if you work out those fields, do tell
[15:06:17] <fuzzie> but i don't think it's at all important
[15:07:41] <Avenger> pst also has the same code
[15:11:39] <fuzzie> that is weird
[15:12:31] <Avenger> i will try to find out, looking in pst, to find some other usages
[15:13:05] <Avenger> it looks like it is unused, heh
[15:13:15] <Avenger> once filled with 0, and never used
[15:13:43] <Avenger> and why is it part of the quick icon array object, is also a mystery
[15:19:05] <-- Sindikat has left #gemrb
[15:25:38] <Avenger> the same icon array is 4+3+5 in pst, because there are 5 quick items, i guess
[15:43:17] --> brad_a has joined #gemrb
[17:45:18] <lynxlynxlynx> Avenger: any idea why fx_set_sanctuary_state doesn't set SS_SANCTUARY? it already checks for it
[17:45:49] <Avenger> not yet
[17:46:42] <lynxlynxlynx> nothing sets it, unlike the other states
[17:48:37] <Avenger> it is a bug, SetSpellState should be called there
[17:48:48] <Avenger> SetSpellState checks AND sets it
[17:49:02] <Avenger> it returns true if it was already set, and returns false if it wasn't set before
[17:49:13] <lynxlynxlynx> ok, i'll fix it
[17:49:19] <Avenger> add some comment too :)
[17:49:27] <Avenger> i have a feeling it was accidentally altered
[17:56:06] <CIA-26> GemRB: 03lynxlupodian * r5ef63a4014ee 10gemrb/gemrb/plugins/FXOpcodes/FXOpcodes.cpp: fx_set_sanctuary_state: also set SS_SANCTUARY
[17:56:06] <CIA-26> GemRB: 03lynxlupodian * r232209d34996 10gemrb/gemrb/ (8 files in 8 dirs): cannot target spells on invisible or sanctuaried creatures
[18:08:26] <-- Avenger has left IRC (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330])
[18:50:07] --> Maighstir has joined #gemrb
[18:58:47] <CIA-26> GemRB: 03avenger_teambg * ra6770b52e3cc 10gemrb/gemrb/core/Scriptable/Container.h: container disabled flag is different in PST
[18:58:49] <CIA-26> GemRB: 03avenger_teambg * r795e123c6583 10gemrb/gemrb/core/Scriptable/ (Actor.cpp Actor.h): implemented another kill variable related bit for PST
[18:58:50] <CIA-26> GemRB: 03avenger_teambg * rcfe6ebfe0c6a 10gemrb/gemrb/core/ (4 files in 2 dirs):
[18:58:50] <CIA-26> GemRB: implemented disabled containers (shouldn't highlight/produce action) debugging is still allowed.
[18:58:50] <CIA-26> GemRB: improved actions that could disable containers/doors/animations in PST
[19:14:34] <-- test32894789234u has left #gemrb
[19:33:58] <CIA-26> GemRB: 03lynxlupodian * rbda622847262 10gemrb/gemrb/includes/ie_stats.h: added the resolved value of STATE_STILL to its comment
[19:33:59] <CIA-26> GemRB: 03lynxlupodian * r84835a1f80ad 10gemrb/gemrb/core/Scriptable/Actor.cpp: autohit immobile enemies (true for atleast stun, sleep, timestop)
[22:00:31] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[23:02:35] <-- Maighstir has left IRC (Read error: Connection reset by peer)
[23:02:53] --> Maighstir has joined #gemrb
[23:06:13] <-- Maighstir has left IRC (Client Quit)
[23:11:47] <-- brad_a has left IRC (Quit: brad_a)
[23:26:41] <-- Cable_ has left IRC (Remote host closed the connection)
[23:38:54] --> |Cable| has joined #gemrb
[23:44:45] <-- |Cable| has left IRC (Remote host closed the connection)
[23:46:18] --> |Cable| has joined #gemrb
[23:47:59] --> Cable_ has joined #gemrb
[23:48:19] <-- Cable_ has left IRC (Client Quit)
[23:48:27] --> Cable_ has joined #gemrb
[23:48:37] <-- Cable_ has left IRC (Remote host closed the connection)
[23:50:39] --> Cable_ has joined #gemrb