#gemrb@irc.freenode.net logs for 24 Aug 2010 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:01:04] --> raevol has joined #GemRb
[01:11:52] <pupnik> "Anything worth doing is worth doing slowly" - Mae West
[01:43:53] <Lightkey> Go West!
[02:09:42] <pupnik> Lightkey: any thoughts on the areascripts problem i found today?
[02:10:26] <pupnik> 15:04 <@fuzzie> the area script is probably repeatedly interrupting the cutscene 15:04 <@fuzzie> bg1 area scripts run during cutscenes, but i guess probably not bg2 ones
[04:17:16] --> pupnik_ has joined #GemRb
[04:21:04] <-- pupnik has left IRC (Ping timeout: 272 seconds)
[06:40:22] <-- raevol has left IRC (Quit: Leaving.)
[06:42:51] <edheldil> Study in MSVC6's optimizing abilities: 0x81BA03 in my version of PS:T
[06:43:26] <edheldil> it's so bad it's funny :)
[06:55:24] --> lynxlynxlynx has joined #GemRb
[06:55:25] --- ChanServ gives channel operator status to lynxlynxlynx
[08:17:26] <fuzzie> it's amazing how bad modern gcc/msvc can be at optimising
[09:07:53] <fuzzie> pupnik_: you have a patch yet? :)
[10:33:01] --> SiENcE has joined #GemRb
[11:24:36] <pupnik_> fuzzie: as yoda says- "no don't try. there is no 'try'. just DO."
[11:38:38] <lynxlynxlynx> that's what Nike said!
[11:39:20] <lynxlynxlynx> that's what she said for some greek references
[12:13:14] <-- fuzzie has left IRC (Ping timeout: 276 seconds)
[12:31:10] --> fuzzie has joined #GemRb
[12:53:41] <-- pupnik_ has left IRC (Quit: leaving)
[15:13:10] --> Maighstir has joined #GemRb
[16:34:15] <-- SiENcE has left IRC (Quit: @all: cya)
[18:07:55] --> avenger has joined #GemRb
[18:07:55] --- ChanServ gives channel operator status to avenger
[18:11:20] <avenger> fuzzie: do we handle actsleep.ids ?
[18:11:38] <avenger> it looks like it is a list of actions that an actor can do while sleeping
[18:11:40] <fuzzie> nope
[18:11:46] <fuzzie> it is documented, though
[18:11:57] <avenger> ok, then consider it confirmed :)
[18:12:09] <fuzzie> it only seems to matter for sleep, too
[18:12:18] <avenger> yes
[18:12:22] <avenger> there is a statecheck
[18:12:25] <fuzzie> i thought it might work for hold/etc, but it doesn't
[18:12:27] <fuzzie> so hi!
[18:12:38] <fuzzie> is there an avatar removal modifier for iwd/iwd2/pst?
[18:13:25] <fuzzie> i know that is an odd question, but i had to add a check to fix a crash whenever you summoned anything, otherwise the new code would try setting duration on a non-existant effect :)
[18:13:27] <avenger> i don't know
[18:13:44] <avenger> that was good, i think we already have a similar code in place
[18:13:52] <avenger> for some other effect
[18:13:59] <fuzzie> but i just wonder why we don't have it in the effect lists for the other games
[18:14:30] <avenger> it is a tob effect?
[18:14:35] <fuzzie> it is a bg1 effect
[18:14:47] <avenger> oh, what is the opcode again?
[18:15:03] <fuzzie> 0x13b
[18:15:09] <avenger> naah, that is tob only
[18:15:10] <fuzzie> (315)
[18:15:22] <fuzzie> ok. well, not according to everyone else :P
[18:15:38] <avenger> bg1 has effects up to near 0xbb
[18:15:44] <fuzzie> but if so, then AvatarRemovalModifier is clearly not the right effect to use
[18:15:45] <avenger> or so
[18:16:02] <avenger> it is used for that in tob
[18:16:17] <avenger> i haven't seen other code
[18:16:27] <avenger> i could look at how summoning is done in other engines
[18:16:31] <avenger> but not with IDA
[18:16:33] <lynxlynxlynx> maybe the behaviour was different
[18:16:41] <fuzzie> well, i just have no idea how to look at it
[18:16:54] <avenger> well, first step would be to summon something in non bg2
[18:16:56] <lynxlynxlynx> but bg1 and 2 share the animations, so i don't think it is so likely
[18:16:58] <fuzzie> the sensible thing to do seems to just be to make it use AvatarRemoval instead
[18:17:25] <avenger> you can always define the effect if it is not clashing with something else
[18:17:34] <fuzzie> so if your RE work says it's different in ToB, this is annoying :)
[18:17:48] <avenger> if it is clashing (only iwd2 may) then you can define it as something else
[18:17:51] <fuzzie> although i think you shouldn't be able to save so close to a summon anyway..
[18:18:17] <avenger> oh, that would suck
[18:18:21] <avenger> right
[18:18:35] <avenger> you can set an effect to not save, i think
[18:20:32] <fuzzie> well, the original engine surely just uses AvatarRemoval
[18:20:39] <fuzzie> it is the one everyone says is marked SummonDisable
[18:20:42] <fuzzie> so we can just GF_ it
[18:21:39] <avenger> did you check if the other engines have summon disable at all?
[18:21:52] <avenger> or they just drop the summons immediately
[18:22:06] <fuzzie> well, iwd does
[18:25:11] <fuzzie> but now i am curious, has no-one worked out which effects are in which game?
[18:26:08] <fuzzie> our effects.ids file is just nonsense?
[18:26:48] <avenger> why?
[18:27:24] <fuzzie> well, if we want savegame compatibility, having an effects.ids file with random effects in it does not help
[18:27:30] <avenger> it is not nonsense, but somewhat more than each engine capable
[18:27:44] <avenger> for example, the bg2 list has all tob effects
[18:27:53] <avenger> probably even bg1 has them
[18:27:55] <fuzzie> because now i have no way to work out which effects are safe to save in bg1
[18:28:07] <fuzzie> yes, bg1/bg2 have identical effects.ids
[18:28:09] <avenger> yes, that's a problem
[18:29:42] <fuzzie> but for the summon stuff, i will go back and check the originals
[18:35:42] <fuzzie> ok, they are not cooperating for me right now, not even iwd
[18:35:47] <fuzzie> so i'll look later
[18:38:14] <lynxlynxlynx> avenger: another fx_cast_spell_on_condition thing
[18:38:40] <lynxlynxlynx> COND_NEAR and COND_HIT are maybe in reverse
[18:39:13] <lynxlynxlynx> circle of blades should hit you when you're near and it has the parameter of 8, which is our COND_HIT not COND_NEAR
[18:39:15] <avenger> but there are two cond near conditions
[18:39:45] <lynxlynxlynx> two?
[18:40:10] <lynxlynxlynx> we treat two hitting ones identically
[18:40:16] <avenger> 7 Each round attacked
[18:40:18] <avenger> 8 Target is at 4'
[18:40:20] <avenger> 9 Target is at 10'
[18:40:21] <avenger> 10 Every round
[18:40:26] <avenger> this is 99.9%
[18:40:50] <avenger> conditions should use triggers btw
[18:40:56] <lynxlynxlynx> we don't handle 10
[18:40:58] <avenger> this will get a pretty 2da eventually
[18:41:06] <avenger> 11 Took damage
[18:41:12] <avenger> then we don't handle 11 either
[18:41:14] <lynxlynxlynx> and 9 is always true
[18:41:25] <avenger> yes, then this is very outdated
[18:41:38] <avenger> i recently updated dltcep's effect description
[18:41:43] <lynxlynxlynx> we treat 0 like being hit
[18:41:58] <avenger> 0 On hit
[18:42:00] <avenger> 1 Enemy within sight
[18:42:00] <fuzzie> avenger: btw, the original has dialog/visual range in stats?
[18:42:02] <avenger> 2 HP < 50%
[18:42:03] <avenger> 3 HP < 25%
[18:42:05] <avenger> 4 HP < 10%
[18:42:06] <avenger> 5 Helpless
[18:42:08] <avenger> 6 Poisoned
[18:42:09] <avenger> no
[18:42:19] <fuzzie> so i can remove that from stats?
[18:42:24] <avenger> ah wait
[18:42:25] <avenger> no
[18:42:30] <avenger> there is visualrange in stat too
[18:42:40] <avenger> you can see original game stat.ids
[18:42:47] <lynxlynxlynx> 0-6 match
[18:42:50] <avenger> there are also obscure fields :)
[18:43:27] <avenger> did you read my note about non-actors have visual range too?
[18:43:31] <avenger> it is set to 14
[18:43:39] <avenger> just like for actors
[18:43:54] <fuzzie> avenger: well, i am told not to trust stats.ids
[18:44:02] <fuzzie> visual range is only in bg2's version
[18:44:07] <avenger> well, there is an effect that changes visual range
[18:44:23] <avenger> yes, the stat overrides/alters the obscure fields
[18:44:39] <fuzzie> ok
[18:44:53] <avenger> i think it is handled like: obscure field is the 'base stat', initially set to 14
[18:45:02] <avenger> on creation
[18:45:14] <avenger> then the visual range effect changes it, in bg2
[18:45:29] <avenger> and the stat is used in bg2, the base field is used elsewhere
[18:45:42] <fuzzie> ok
[18:45:50] <avenger> we can safely use the stat
[18:46:01] <fuzzie> well, that is nice, but scriptables have no stat :)
[18:46:16] <avenger> for those you can hardcode 14
[18:46:18] <fuzzie> and while bg2 is very boring here, not all the engines are
[18:46:35] <avenger> i found no code that alters it for non actors
[18:46:35] <fuzzie> i think from notes, both pst and iwd2 do odd things here
[18:46:51] <avenger> well, when I reach there :) i will tell you
[18:47:07] <fuzzie> but does the original engine really hardcode this?
[18:47:22] <avenger> which engine and what
[18:47:35] <fuzzie> i mean, does ToB really hardcode 14 whenever it wants to check visual range?
[18:47:40] <fuzzie> or you just want to hardcode it in gemrb?
[18:47:51] <avenger> i found no code that alters it for non actors
[18:48:05] <avenger> it is set to 14 on construction
[18:48:18] <fuzzie> sure, but the other engines do it
[18:48:27] <avenger> for non actors?
[18:48:29] <avenger> i doubt
[18:48:39] <avenger> for actors, they may have some stuff
[18:48:51] <avenger> but as i said, i cannot look at every engine
[18:49:03] <avenger> i would get to know bg2 first
[18:49:24] <fuzzie> i know, so everyone looks at bg2 and never at anything else :P
[18:49:37] <avenger> that's unfair
[18:50:27] <fuzzie> anyway
[18:50:31] <fuzzie> i don't know whether it is changed in other engines
[18:50:39] <avenger> at glancing level i looked at the others, but now i want to explore bg2 completely
[18:50:41] <fuzzie> SetVisualRange is definitely called on scriptables in iwd2
[18:51:11] <fuzzie> but that doesn't mean very much
[18:51:19] <avenger> do you know if it is saved too?
[18:51:39] <fuzzie> but the other engines do *loads* of weird things which ToB doesn't
[18:51:39] --> tomprince_loki has joined #GemRb
[18:52:19] <fuzzie> i mean, ToB scriptables can't even do dialog, right?
[18:52:48] <fuzzie> i don't see whether it's saved or not
[18:53:36] <fuzzie> (and i don't expect you to look at the other engines at all, it is way too much work for one person)
[18:55:57] <fuzzie> it looks like iwd2 scripts only call SetVisualRange on areas, actually, which make no sense at all
[18:56:50] <avenger> hmm, i think yes, only the bis side can do dialogs with scriptables
[18:56:51] <fuzzie> and i don't know how iwd2 instants work, so i can't tell if they're just blocking instants
[18:58:07] <fuzzie> ohh
[18:58:15] <fuzzie> ok
[18:58:22] <fuzzie> i bet SetVisualRange doesn't actually set the visual range
[18:59:26] <fuzzie> > SetVisualRange(0)
[18:59:32] <fuzzie> > OpenDoor(Myself)
[18:59:40] <fuzzie> ^- in a script which only checks globals .. how does that make any sense?
[19:01:59] --> SiENcE has joined #GemRb
[19:03:35] <fuzzie> a lot of these scripts don't make any sense..
[19:04:30] <avenger> that's a door?
[19:04:34] <fuzzie> yes
[19:04:50] <fuzzie> in HoW, which i'm pretty sure has nothing odd
[19:05:21] <avenger> i don't know why it would do that, myself always resolves to the current object
[19:05:48] <fuzzie> sure, so it opens itself, that makes sense
[19:05:59] <fuzzie> the triggers check a global
[19:08:26] <-- tomprince_loki has left IRC (Read error: No route to host)
[19:09:19] <avenger> hmm, it looks like i see more on how panic works
[19:09:40] <avenger> there is a global variable (an action structure)
[19:10:23] <avenger> it is initialized to one of: runawaynoint or berserk
[19:12:00] <avenger> for no better, i would name it 'default action'
[19:14:26] <fuzzie> that seems strange
[19:14:44] <fuzzie> it is newly initialized all the time?
[19:16:52] <avenger> it is initialized many times, yes
[19:17:12] <avenger> and there is some oddity: if the actor is feebleminded, he it is not initialized to no action :)
[19:17:24] <avenger> so, basically feebleminded guys cannot break out of panic
[19:17:39] <avenger> at least that's what i see here
[19:18:17] <avenger> the confused state causes the same effect
[19:18:28] <avenger> runaway/berserk/etc
[19:19:52] <avenger> hmm ok, i was wrong, it does: runaway/noaction/groupattack
[19:20:42] <lynxlynxlynx> yeah, confusion can leave you catatonic
[19:25:24] <avenger> sorry, i was wrong about feeblemind, when you are feebleminded, it sets the default action to noaction and executes it?
[19:26:00] <fuzzie> i'm not sure i understand what any of this means :)
[19:27:48] <avenger> well i think this means feebleminded actors cannot do much, i didn't know that.
[19:29:26] <avenger> huh, this doesn't make much sense: if they don't do anything, then they will be forced to do nothing :)
[19:30:05] <fuzzie> stops modal actions?
[19:30:12] <fuzzie> and i guess maybe makes sure instants aren't executed
[19:30:14] <fuzzie> but those are just guesses
[19:30:32] <avenger> there is a constant opcode, which is set to 0
[19:30:43] <avenger> probably they planned to make them do random walks
[19:30:45] <avenger> or such
[19:30:49] <avenger> the potential is here
[19:30:55] <avenger> by overwriting a simple byte
[19:31:37] <avenger> this is a routine which checks lots of states, and forces actions on the actor based on them
[19:32:48] <avenger> hmm jz jumps if the result of a compare was false, right?
[19:43:15] <lynxlynxlynx> feeblemind sets your int to 3 iirc, so the can't-do-anything part makes sense
[19:44:20] <lynxlynxlynx> in d&d you need 9 to be able to talk, so ...
[19:47:09] <fuzzie> huh. no portraitupdates in timestop?
[19:47:11] <fuzzie> interesting
[19:48:43] <lynxlynxlynx> i wonder if there's any video of that with hammers
[19:48:55] <lynxlynxlynx> stop! hammer time! :)
[19:55:41] <avenger> see you tomorrow
[19:55:43] <-- avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716])
[20:44:06] --> tomprince_loki has joined #GemRb
[21:24:25] --> SiENcE_ has joined #GemRb
[21:26:48] <-- SiENcE has left IRC (Ping timeout: 245 seconds)
[21:44:22] <-- tomprince_loki has left #GemRb
[22:00:51] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[22:22:21] --> f371x has joined #GemRb
[22:22:27] <-- f371x has left IRC (Client Quit)
[22:25:43] <-- Maighstir has left #GemRb
[22:52:52] <-- SiENcE_ has left IRC (Read error: Connection reset by peer)