#gemrb@irc.freenode.net logs for 2 Oct 2010 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:53:16] --> pupnik_ has joined #GemRb
[00:56:43] <-- pupnik has left IRC (Ping timeout: 240 seconds)
[01:00:54] <-- Maighstir has left IRC (Quit: ~ Trillian Astra - www.trillian.im ~)
[02:01:48] --- pupnik_ is now known as pupnik
[06:44:42] <-- Lightkey has left IRC (Quit: I'm meltiiiiing~)
[06:57:43] --> edheldil_ has joined #GemRb
[07:35:42] --> lynxlynxlynx has joined #GemRb
[07:35:42] --- ChanServ gives channel operator status to lynxlynxlynx
[08:33:55] <-- edheldil_ has left IRC (Ping timeout: 240 seconds)
[08:40:30] --> Maighstir has joined #GemRb
[09:43:57] <-- pupnik has left IRC (Quit: leaving)
[11:04:53] <lynxlynxlynx> fuzzie: what's the best way to set the objects of a manually created action? GenerateActionDirect looks like it could do, but this is for bashing, so they're not actors and we don't have global ids for them
[11:09:11] <fuzzie> the existing actions use the scripting name, i think
[11:09:54] <fuzzie> the correct way is to give everything a global id, but that's not so helpful
[11:12:13] <lynxlynxlynx> scriptname it is then
[11:28:26] --> edheldil_ has joined #GemRb
[11:29:38] <lynxlynxlynx> no wonder bashdoor wasn't used anywhere, the ids entry is bad
[11:33:18] <-- edheldil_ has left IRC (Ping timeout: 240 seconds)
[11:35:51] <fuzzie> isn't it internal-only?
[11:36:44] <fuzzie> i guess maybe not, looking at how the ids entry is mangled
[11:46:01] --> edheldil_ has joined #GemRb
[11:51:18] <-- edheldil_ has left IRC (Ping timeout: 240 seconds)
[11:56:05] --> edheldil_ has joined #GemRb
[12:08:57] <-- edheldil_ has left IRC (Read error: Operation timed out)
[12:47:17] <lynxlynxlynx> meh, too annoying
[12:48:42] <fuzzie> we were planning to override the action ids file with our own
[12:48:51] <fuzzie> we need it for SoA anyway i think
[12:49:44] <lynxlynxlynx> we already do, but only partly
[12:50:10] <lynxlynxlynx> gemact.ids is read and we notice if it is an override, but we copy only some info
[12:50:17] <lynxlynxlynx> later the original table is used directly
[12:50:37] <fuzzie> ah
[13:09:10] <Gekz> fuck
[13:09:15] <Gekz> anyone here good at logic circuits?
[13:09:38] <Gekz> I'm trying to make a circuit where if I press a button, the function it runs is only true for _one_ clock cycle and then remains false until I unpress the button'
[13:09:46] <Gekz> then it can be made true again by another press
[14:47:33] <fuzzie> re forum post:
[14:47:34] <fuzzie> [Core]: Loading game type-specific GemRB setup...
[14:47:35] <fuzzie> /media/flash/wine/games/planescape/data/gemrb.ini[OK]
[14:47:52] <fuzzie> ^- that seems a bit crazy?
[14:50:40] <fuzzie> Gekz: i assume you are long-gone
[14:54:54] <lynxlynxlynx> yep, looks crazy
[15:28:19] <spike411> Please remind me… if Experience says Current: 8332 and Next Level: 1000 that means I should have been able to level up long ago when I had Current: 1000?
[15:29:37] <spike411> I guess so since all characters in my party have Next Level: 1000. Which means levelling up in IWD2 doesn't work. Which you already knew probably. :)
[15:35:45] <lynxlynxlynx> yes
[15:36:53] <spike411> Great :)
[15:38:55] <lynxlynxlynx> not really
[15:40:57] <spike411> I guess it's because of 3rd edition rules?
[15:42:24] <spike411> By the way – there was once a discussion that gemrb might get to standard Debian repositories if a ‘free’ content game existed, right? Well since you don't have a license to implement AD&D rules, I guess it's not gonna happen anyway, unless you implement your own rules too?
[15:44:06] <lynxlynxlynx> don't see why that would be a problem
[15:44:29] <lynxlynxlynx> even the games don't follow adnd so much
[15:46:46] <spike411> You mean – why implementing own rules would be a problem or why that would be a legal problem?
[15:47:22] <lynxlynxlynx> the first
[15:47:31] <lynxlynxlynx> the second only partly, since it is a gray area
[15:48:20] <spike411> OK, thanks. Just wanted to get the thought out of my head. :)
[15:49:28] <spike411> …aaaand it stopped to hurt. But I guess that's because I took painkillers and made myself a teapot of green tea. :)
[15:58:15] <spike411> What's Character Arbitration supposed to do?
[16:00:14] --> Avenger has joined #GemRb
[16:00:14] --- ChanServ gives channel operator status to Avenger
[16:00:20] --> edheldil_ has joined #GemRb
[16:01:41] <Avenger> hello
[16:01:49] <spike411> hi
[16:03:44] <Avenger> character arbitration is supposed to modify your team. you can remove partymembers or add new, or change their name, etc.
[16:04:02] <Avenger> most likely it is doable now just with guiscripts
[16:05:30] <lynxlynxlynx> yes, we already do much of it in iwd1
[16:05:35] <spike411> Ah I see. I've never used that when I played IWD2 years ago. :)
[16:05:45] <lynxlynxlynx> iwd2 was the same, the rest just used it in multiplayer
[16:11:53] <lynxlynxlynx> Avenger: re traps
[16:12:27] <lynxlynxlynx> do you have any reason to believe the CanDetectTrap check in Highlightable::TriggerTrap is valid?
[16:14:09] <lynxlynxlynx> it looks bogus
[16:17:12] <Avenger> let me look at it
[16:18:58] <Avenger> what is wrong with it?
[16:19:19] <lynxlynxlynx> why is it there?
[16:20:03] <lynxlynxlynx> from my point of view, it is a redundant second save chance
[16:20:15] <Avenger> hmm, where is the first?
[16:21:35] <Avenger> anyway, feel free to rewrite the trap stuff
[16:21:40] <fuzzie> it doesn't seem right
[16:21:48] <fuzzie> but it dates back to 2004, way before i touched it
[16:21:50] <Avenger> it is 'old' code
[16:21:58] <lynxlynxlynx> ok, so i'll remove it
[16:22:07] <Avenger> consult with fuzzie at least :)
[16:22:08] <lynxlynxlynx> actual saving is done when the effect fires
[16:22:26] <lynxlynxlynx> the check for the trap being activated is done elsewhere
[16:22:31] <Avenger> if you two can agree, then it is most likely fine
[16:23:06] <Avenger> there is a problem with the illusion detection i wrote
[16:23:14] <Avenger> ApplySpell doesn't care about projectiles
[16:23:28] <Avenger> the detect traps code actually checks the visibility etc
[16:23:41] <Avenger> so, i wonder if i further enhance that opcode
[16:24:46] <Avenger> bg2 doesn't have a 'create projectile and instantly fire it' like iwd2
[16:24:56] <lynxlynxlynx> there's only one user of the function that passes an actual skill. do you think i should leave it alone for possible future enhancements or clean everything up?
[16:25:15] <fuzzie> i would just remove the check for now
[16:25:39] <fuzzie> unless Avenger has some idea where the original engine's code for this is
[16:26:03] <lynxlynxlynx> Avenger: wouldn't it work with ApplySpellPoint?
[16:26:07] <Avenger> the tumble stuff was a guess, about iwd's evasion skill
[16:26:08] <lynxlynxlynx> i added a flag for that you could use
[16:26:12] <fuzzie> but it would be very easy to add the skill back, so do whatever you want
[16:26:32] <Avenger> no lynx, projectiles are not handled in applyspell
[16:26:43] <fuzzie> Avenger: i noticed the bash stuff you posted used a door flag which isn't in the gemrb headers, you know more of those?
[16:26:59] <lynxlynxlynx> this is not only called from UpdateActorState?
[16:27:13] <Avenger> hmm, applyspellpoint actually has something about projectiles..
[16:27:30] <Avenger> yeah, you are right, applyspellpoint has this
[16:28:24] <Avenger> the broken bit isn't defined?
[16:28:55] <Avenger> i think i decoded all door flag bits in ida
[16:28:59] <Avenger> all used bits
[16:29:11] <fuzzie> the broken bit and the one after it
[16:29:25] <fuzzie> don't know if we need it, just curious
[16:29:31] <lynxlynxlynx> Avenger: gemrb/override/shared/modal.2da last column
[16:30:01] <Avenger> omg, that was you?
[16:30:20] <Avenger> that's great ;) lynx
[16:30:28] <lynxlynxlynx> :)
[16:31:17] <fuzzie> lynx does all the cool things recently :P
[16:31:21] <Avenger> yeah
[16:31:28] <CIA-93> GemRB: 03avenger_teambg * r23059aff7f00 10gemrb/gemrb/override/bg2/modal.2da: this might just work...
[16:31:57] <Avenger> i already changed the trap finder part to affect only self, so this could really work as intended
[16:32:30] <Avenger> i'm not entirely sure, but it could work :)
[16:33:37] <CIA-93> GemRB: 03lynxlupodian * rfc4f4a2f0eba 10gemrb/gemrb/core/Scriptable/ActorBlock.cpp:
[16:33:37] <CIA-93> GemRB: removed a bogus check from Highlightable::TriggerTrap that could stop
[16:33:37] <CIA-93> GemRB: the triggering unfairly
[16:34:01] <Avenger> the area projectil is 'areanp' which means it wouldn't target self/party. But the find traps effect's targeting is 'self' so, it should do that. The difference between 1 and 9 (self/original caster) is that 'self' doesn't get through the projectile.
[16:35:14] <Avenger> hmm, well, i guess our implementation sucks
[16:35:37] <Avenger> in IE, the 'self' effects never get put into the projectile, but affect the caster immediately
[16:36:29] <fuzzie> fixing that would help other bugs
[16:36:58] <Avenger> oh wait, this may be already here...
[16:37:09] <Avenger> spell.cpp line 122
[16:37:29] <Avenger> cool, this is already here
[16:37:57] <fuzzie> huh
[16:39:07] <Avenger> ok, we lack one small bit i recently found. When the effects are copied from the spell/item block, the original spell/item flags are copied into each effect
[16:39:17] <Avenger> this is for the 'hostile' flag
[16:41:01] <Avenger> meh, SourceFlags is already defined in the effect struct
[16:41:03] <lynxlynxlynx> yes
[16:41:15] <lynxlynxlynx> we don't use it though
[16:41:31] <fuzzie> i am really confused now
[16:41:32] <Avenger> yeah, time to fix that
[16:41:35] <lynxlynxlynx> Source and SourceType either
[16:42:24] <lynxlynxlynx> i wanted to add it once for better magic resistance, but you didn't like my idea
[16:42:45] <lynxlynxlynx> since it required changing all the EffectQueue::CreateEffect calls to pass the extra data
[16:43:05] <fuzzie> oh, i guess i was thinking of Item
[16:43:19] <lynxlynxlynx> it can be spell or item
[16:43:44] <fuzzie> i mean, for the bugs i was thinking of, it is because Item effects are always put into he projectile
[16:44:03] <Avenger> yes fuzzie, you are absolutely right
[16:44:07] <Avenger> i just work on that stuff
[16:44:07] <fuzzie> but i don't really know anything about how that works
[16:44:24] <fuzzie> if you know better than that would be cool :)
[16:44:30] <lynxlynxlynx> http://pastebin.com/wXxtHMyw <-
[16:44:32] <Avenger> the spell / item code are different places, but they do about the same (they shuold)
[16:45:29] <Avenger> lynx, i do that elsewhere
[16:45:52] <lynxlynxlynx> that's fine
[16:46:15] <lynxlynxlynx> just add that hostile bit in the middle, so we can have bg2-style mr coolness
[16:47:35] <Avenger> fuzzie, you know a way to test this 'target self' thing with items?
[16:49:25] <fuzzie> no
[16:49:29] <fuzzie> this is why i didn't touch it
[16:49:44] <fuzzie> because i don't really understand it - because things like healing potions *shouldn't* be instant, right?
[16:50:30] <Avenger> hmm, i think they are instant
[16:50:55] <fuzzie> well, maybe they are instant but the UI waits until the next round start or something
[16:51:08] <fuzzie> it makes it confusing to test
[16:51:35] <fuzzie> since it seems that there is extra stuff on top of the 'use item' code..
[16:54:49] <lynxlynxlynx> it definitely waits for a round, you can't gulp and gulp
[16:55:10] <lynxlynxlynx> if you're paused in the inventory and drink potions, only one will be used when unpausing
[16:55:33] <fuzzie> i gave up on understanding the round stuff
[16:55:39] <lynxlynxlynx> i'm pretty sure that was the last one that was drank
[16:55:46] <fuzzie> after working out that it's different for combat and spells, and different for pst, and different for iwd2
[16:56:39] <fuzzie> i *guess* that the UI queues an action when you drink a potion, since when i tried it in bg2, using a potion from the UI would cancel all pending actions and wait for the round
[16:56:46] <Avenger> lynx: that is because when the 'useitem' action is executed it clears the action queue
[16:57:25] <Avenger> pst seems to be different, yeah, it executes that action immediately
[16:58:16] <fuzzie> so is the UseItem action doing some wait inside?
[16:59:14] <fuzzie> i gave up asking about the round stuff because it seems to be scattered everywhere with a bunch of different variables for different code..
[17:03:18] <Avenger> if the game is paused, the useitem action won't be executed
[17:03:42] <Avenger> if it isn't paused, then it will be executed in the next ai cycle
[17:03:48] <Avenger> so you can drink it :)
[17:03:50] <fuzzie> try drinking a potion, unpausing, and then drinking another one
[17:04:11] <Avenger> that waiting is a different code (the same as for aura cleansing)
[17:04:11] <fuzzie> it will wait until a round has gone by
[17:04:22] <Avenger> we didn't implement that yet
[17:04:28] <fuzzie> but is it in the action, do you think?
[17:04:29] <Avenger> but yeah, that wait is in useitem
[17:04:31] <Avenger> yes
[17:04:36] <fuzzie> ok, cool :)
[17:04:59] <Avenger> i think if you have the auracleansing stat set you can drink potions without wait :)
[17:05:20] <Avenger> at least, the code seems to be the same for useitem and spell
[17:05:32] <fuzzie> at the moment, i guess our guiscript calls UseItem which does it directly
[17:06:34] <fuzzie> oh i see
[17:06:39] <fuzzie> i guess the original code does it by slot isd
[17:06:41] <fuzzie> slot id
[17:06:59] <fuzzie> so it does UseItem(slot id), you put a gem in that slot, and then it runs the action after you unpause
[17:07:02] <fuzzie> cute
[17:07:41] <lynxlynxlynx> there was some exploit like that, yes
[17:08:48] <fuzzie> i am just amused to see how it works :)
[17:12:09] <Avenger> hmm boo has 1 as charge count
[17:12:21] <Avenger> i don't remember i saw this in the original ;)
[17:13:01] <-- edheldil_ has left IRC (Ping timeout: 240 seconds)
[17:15:22] <CIA-93> GemRB: 03avenger_teambg * rca18cbf6d879 10gemrb/gemrb/core/ (Inventory.cpp Item.cpp Item.h Scriptable/Actor.cpp Spell.cpp): self affecting effects don't go into the projectile, they are evaluated immediately
[17:15:26] <CIA-93> GemRB: 03avenger_teambg * r79c48a9a1ac0 10gemrb/gemrb/core/Scriptable/ActorBlock.cpp: Merge branch 'master' of ssh://avenger_teambg@gemrb.git.sourceforge.net/gitroot/gemrb/gemrb
[17:15:41] <Avenger> also setting the sourceflag field now
[17:19:19] <lynxlynxlynx> doesn't this only affect spells?
[17:19:40] <lynxlynxlynx> i'm thinking about fx_apply_effect that could be in a nonhostile spell, but apply a hostile one
[17:23:11] <Avenger> no, the sourceflag affects every spell/item
[17:24:10] <Avenger> i'm pretty sure it is copied even if the spell isn't cast, but simply applied
[17:24:23] <Avenger> it is exactly in the same place in our engine as it is in the IE
[17:24:32] <Avenger> but atm, we don't handle the flag
[17:24:54] <Avenger> the check should be after the resistance check
[17:28:19] <lynxlynxlynx> what check?
[17:35:05] <Avenger> i work on it, something like this: if (SourceFlags & SF_HOSTILE) target->AttackedBy(Owner);
[17:36:29] <lynxlynxlynx> oh
[17:36:49] <Avenger> it is easy to check, without this, wand09 won't make the target hostile
[17:37:25] <lynxlynxlynx> what do you think about the magic immunity thing i posted? Not sure why i chose only to check for hostile spells, so something like this:
[17:37:30] <lynxlynxlynx> - if( fx->random_value < val) {
[17:37:37] <lynxlynxlynx> + if( fx->random_value < val \
[17:37:55] <Avenger> i don't see the difference
[17:38:12] <lynxlynxlynx> + || (core->HasFeature(GF_SELECTIVE_MAGIC_RES) && !(fx->SourceFlags&SF_HOSTILE) ) {
[17:38:54] <Avenger> ah well, actually, there is a check for that bit in their version of check_resistance :)
[17:39:06] <Avenger> but... i didn't understand it completely
[17:39:13] <Avenger> i just see that bit used there
[17:39:47] <Avenger> this is another case where i couldn't see how conditional jumps are working :)
[17:41:04] <Avenger> btw, there is an internal bit set in the magic resistance field (value 4) when target == caster
[17:41:56] <lynxlynxlynx> fuzzie was wondering about that, but i didn't believe it
[17:42:24] <Avenger> i'm not entirely sure it is testable outside, but it might even has a visible effect if you set it in a spell/item
[17:50:25] <Avenger> meh, i hoped this will work on first try
[17:58:19] <Avenger> oh hehe, now i know made Ascension confused :)
[17:58:39] <Avenger> in spells, the hostile flag is in the spell's main header
[17:58:52] <Avenger> in items, it is in the extended header's recharge flags field
[17:59:01] <Avenger> damn ie hacking
[18:08:01] <CIA-93> GemRB: 03avenger_teambg * rfe7771e8eaa9 10gemrb/gemrb/core/ (4 files in 2 dirs): implemented hostile spell/item flag
[18:28:21] <Avenger> ok wand09 now creates the attacked trigger
[18:28:26] <-- Avenger has left IRC (Quit: bye!)
[18:43:46] <CIA-93> GemRB: 03lynxlupodian * r4742665b5f8b 10gemrb/gemrb/core/EffectQueue.cpp: don't resist non-hostile spells if the game supports selective magic resistance (bg2, iwd2)
[18:46:18] <-- Maighstir has left IRC (Read error: Connection reset by peer)
[18:46:21] --> Maighstir_ has joined #GemRb
[18:51:45] --> edheldil_ has joined #GemRb
[19:03:10] --> SiENcE has joined #GemRb
[19:42:10] <-- SiENcE has left IRC (Ping timeout: 252 seconds)
[19:59:38] <CIA-93> GemRB: 03lynxlupodian * rd66dff09f68d 10gemrb/gemrb/core/GameScript/GSUtils.cpp:
[19:59:38] <CIA-93> GemRB: MoveBetweenAreasCore: update the worldmap if needed
[19:59:38] <CIA-93> GemRB: fixes Brynlaw, Saradush and others missing from the worldmap
[20:06:22] --> Avenger has joined #GemRb
[20:06:22] --- ChanServ gives channel operator status to Avenger
[20:07:04] <Avenger> hey lynx, i saw the worldmap change, i just don't understand why it was needed. It would just make the current area visible on the worldmap, right?
[20:07:21] <lynxlynxlynx> visible and visited, yes
[20:07:37] <lynxlynxlynx> it's for all the script transitions
[20:09:01] <Avenger> but there is code for exactly this in : void WorldMap::UpdateAreaVisibility(const ieResRef AreaName, int direction)
[20:09:58] <Avenger> i just wonder why that part isn't reached
[20:10:58] <Avenger> whenever you look at the worldmap, regardless how you got to the worldmap window
[20:11:22] <Avenger> it should reach that code and it would set the current area visited
[20:11:34] <Avenger> so, why it doesn't work...
[20:12:21] <Avenger> oh
[20:12:52] <Avenger> UpdateAreaVisibility isn't called when direction==-1
[20:13:01] <Avenger> only UpdateReachableAreas
[20:14:23] <lynxlynxlynx> feel free to clean it up, i'm going to sleep early
[20:14:35] <Avenger> ok, how did you test your solution
[20:15:09] <lynxlynxlynx> i have a save before brynlaw
[20:15:15] <lynxlynxlynx> and i started a new tob game
[20:15:25] <lynxlynxlynx> if you have a save before underdark that should work too
[20:15:33] <Avenger> i don't have these
[20:15:57] <lynxlynxlynx> i can test your changes in the next days
[20:16:14] <Avenger> do you know either area code?
[20:16:46] <lynxlynxlynx> not by heart, but they're probably one of the thousands
[20:17:01] <lynxlynxlynx> easy to find
[20:17:03] <lynxlynxlynx> good night
[20:17:15] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[20:21:48] <CIA-93> GemRB: 03avenger_teambg * r89850143dabe 10gemrb/gemrb/core/ (GameScript/GSUtils.cpp WorldMap.cpp): reverted worldmap change, and applied another patch to achieve the same
[20:32:34] <-- Avenger has left IRC (Quit: bye!)
[21:07:05] <spike411> IWD2, when I move between areas my summon does not follow me (but when I jump Ctrl+J it appears). I guess summons should move between areas with me, right?
[21:07:18] <fuzzie> yes
[21:07:26] <fuzzie> oh, no, wait
[21:07:32] <fuzzie> you mean, summoned monsters?
[21:07:38] <spike411> Yes
[21:07:47] <fuzzie> they don't move between areas with you in any of the other games
[21:07:54] <fuzzie> not sure about iwd2 specifically
[21:08:44] <spike411> I guess it's the same. (Still it's a bit annoying isn't it? :))
[21:09:36] <fuzzie> i guess the intention is that it's annoying, to try and discourage you from just dragging summons everywhere with you :)
[21:09:43] <spike411> Hehe yeah :)
[21:12:44] <spike411> I'm trying to understand how these MoveBetweenAreas / MoveBetweenAreasCore work (although I know beforehand it's a futile attempt but why not occupy myself…) to find out why I cannot enter these two areas/houses (e.g. Ulbrec's house).
[21:13:16] <fuzzie> i think our current method for using travel trigger thingies is just completely crazy
[21:13:59] <fuzzie> actors have a 'waiting to use an exit' flag, and travel triggers check if that flag is set on actors near them, and move the actors if so
[21:16:54] <fuzzie> i could hunt down the details, but it needs a bit more work than just fiddling :(
[21:53:08] <spike411> Enough for today. :)
[21:53:16] * spike411 is off to bed
[21:53:37] <spike411> Good night