#gemrb@irc.freenode.net logs for 17 Jun 2009 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[00:19:29] <-- Edheldil has left IRC ("Really?")
[04:20:15] --- barra_library is now known as barraAway
[07:27:32] --> lynxlynxlynx has joined #gemrb
[07:27:33] --- ChanServ gives channel operator status to lynxlynxlynx
[07:29:57] <-- |Cable| has left IRC ("Leaving")
[07:50:12] <-- Lightkey has left IRC (Excess Flood)
[07:50:55] --> Lightkey has joined #GemRB
[07:55:32] <lynxlynxlynx> fuzzie: GUIScript: put GameType in the GemRB module <-- was this really needed? It was already only accessible as GemRB.GameType
[07:55:34] <fuzzie> lynxlynxlynx: don't know if you encountered the same problem, but i had to delete the *.pyc in my GUIScripts/bg2 to make the bg2 chargen actually use the shared LU* files
[07:55:51] <fuzzie> i assume you did, because the shared LU files didn't work
[07:55:55] <lynxlynxlynx> nasty
[07:56:25] <lynxlynxlynx> i didn't clear anything, so also the next commit with reversals looks bad to me
[07:56:30] <lynxlynxlynx> i'll got test it
[07:59:21] <lynxlynxlynx> i added those checks so the two scripts could be merged, but if it works now in bg1, it maybe doesn't in bg2, since it is now in reverse
[07:59:47] <fuzzie> i made sure to check both chargens for all changes
[08:00:03] <lynxlynxlynx> ideally one version would work for both and there would be no need for any check
[08:00:16] <fuzzie> but it was after midnight so maybe not too well :)
[08:01:23] <fuzzie> but the logic-inversion patch was really just that the unload/buttons stuff was what used to be in bg2/
[08:06:28] <fuzzie> and i have no idea what's going on with the GemRB. thing, but i had to force it to make it work consistently :/
[08:07:18] <lynxlynxlynx> i did have it like that for a while, but i never had problems due to cache before
[08:08:13] <fuzzie> I spent a while last night trying to work out why the bg1 chargen was broken and not the bg2 one. I ended up doing 'make clean' and *then* saw it deleting all the pyc files, and realised.
[08:10:46] <fuzzie> Whoops, new bg1 chargen has bad strrefs in the multiclass dialog.
[08:12:06] <fuzzie> Only for gnomes, though..
[08:12:11] <fuzzie> Strange.
[08:17:44] <lynxlynxlynx> mageschool
[08:18:40] <fuzzie> Most of these new bugs I found are probably not regressions.
[08:55:06] <lynxlynxlynx> boom, double free
[09:15:26] <fuzzie> Ok, I posted another comment to the chargen patch tracker entry, with details of what bugs are regressions and which aren't.
[09:48:22] <lynxlynxlynx> http://pastebin.ca/1463190 <-- does this work for bg1?
[09:48:30] <lynxlynxlynx> it should
[09:52:07] <fuzzie> i think bg2 never takes that path, since there's no level-up code
[09:52:19] <fuzzie> erm, bg1
[09:53:07] <fuzzie> if it works fine when levelling in bg2, i would just commit it
[09:53:37] <lynxlynxlynx> it has a bg1 check in it, so i'm pretty certain it works
[09:53:51] <lynxlynxlynx> bg1 also won't have levelup in that area, since it doesn't have sorcerers
[09:54:32] <fuzzie> well, yes, it'll work fine for bg1, but i put the 'not' there because it was in the old bg2 code.
[09:57:19] <CIA-18> gemrb: 03lynxlupodian * r6493 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: mirror image has precedence over stoneskin
[09:58:10] <CIA-18> gemrb: 03lynxlupodian * r6494 10/gemrb/trunk/gemrb/GUIScripts/LUSpellSelection.py: remove an unneeded code block in LUSpellSelection
[10:02:34] <fuzzie> it seems to work fine in everything I tried
[10:02:48] <fuzzie> so all good
[10:49:25] <fuzzie> Hm, I'm about to commit something which adds 1kB of RAM usage per Scriptable.
[10:50:19] <lynxlynxlynx> doesn't sound that bad
[10:50:23] <fuzzie> That's not so great. Is there anything stopping me from using std::map? We don't seem to be using it anywhere else.
[10:51:36] <lynxlynxlynx> i don't think anything is stopping you, maybe we don't use it elsewhere since avenger likes c better
[11:08:32] <CIA-18> gemrb: 03fuzzie * r6495 10/gemrb/trunk/gemrb/plugins/Core/ (6 files): move local script timers from Game into Scriptable
[11:09:05] <fuzzie> That is mostly of use for PS:T, but it fixes some assorted scripts in other games too.
[11:16:43] <-- barraAway has left IRC ("Verlassend")
[11:23:07] <lynxlynxlynx> anything in particular?
[11:25:04] <fuzzie> Maybe the Adventurer's Mart announcer.
[11:25:24] <lynxlynxlynx> oh, didn't get that far yet
[11:26:13] <fuzzie> There are a few bugs in the dungeon-leaving stuff; the trigger, the cutscenes, etc.
[11:26:54] <fuzzie> But I just know it fixes bg2 scripts because I checked them all in DLTCEP before changing how timers worked, I think most of them are special AI scripts for much later in the game.
[11:41:21] <CIA-18> gemrb: 03fuzzie * r6496 10/gemrb/trunk/gemrb/plugins/Core/Map.cpp: all scripted infopoints should always execute pending actions, whether active or not
[11:42:31] <fuzzie> That one fixes some bugs where you had to use infopoints (eg, travel triggers) more than once for them to actually work.
[11:46:02] <fuzzie> The *next* problem is that DayNight(DAWN_END) in this script actually takes us into the night, not dawn.
[11:46:27] <lynxlynxlynx> huh
[11:47:07] <fuzzie> DAWN_END is 7, DUSK_START is 21
[11:48:32] <fuzzie> That should be okay, I guess our DayNight is broken.
[11:49:12] <CIA-18> gemrb: 03lynxlupodian * r6497 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: on hit, only check stone skins if damage type is physical or magical
[11:56:19] <CIA-18> gemrb: 03fuzzie * r6498 10/gemrb/trunk/gemrb/plugins/Core/Actions.cpp: try to fix DayNight logic
[12:00:44] <fuzzie> lynxlynxlynx: r6497 broke the build
[12:01:02] <fuzzie> you didn't commit the header, I guess?
[12:01:15] <lynxlynxlynx> oops
[12:01:30] <lynxlynxlynx> i have other changes, so i didn't notice that in the diff
[12:02:36] <CIA-18> gemrb: 03lynxlupodian * r6499 10/gemrb/trunk/gemrb/plugins/Core/Actor.h: r6497 companion update (missing header)
[12:03:52] <fuzzie> thankyou
[12:05:06] <fuzzie> clicking 'done' on the chapter text should probably cut off the speech
[12:05:27] <lynxlynxlynx> probably heh
[12:05:33] <lynxlynxlynx> of course it should
[12:08:59] <CIA-18> gemrb: 03fuzzie * r6500 10/gemrb/trunk/gemrb/plugins/Core/Actions.cpp: fix target in DisplayStringWait
[12:09:08] <fuzzie> The dungeon-leaving cutscene is at least vaguely coherent now.
[12:18:03] <CIA-18> gemrb: 03lynxlupodian * r6501 10/gemrb/trunk/gemrb/plugins/ (3 files in 2 dirs): page up/down increases/decreases the message window size
[12:28:59] <CIA-18> gemrb: 03fuzzie * r6502 10/gemrb/trunk/gemrb/plugins/Core/GameControl.cpp: process user-initiated MoveToPoint actions immediately so we get recticles when paused
[12:29:57] <fuzzie> MoveToPoint is doing things it shouldn't be (eg, changing orientation), but that is a seperate bug.
[12:30:14] <lynxlynxlynx> is that just the movetopoint circles or all feet circles?
[12:30:47] <lynxlynxlynx> pausing doesn't show anyone's feet circle <-- from the todo
[12:31:05] <fuzzie> which circles?
[12:31:10] <lynxlynxlynx> in the original, pausing was a good way to count your enemies
[12:31:13] <fuzzie> this was just the destination indicators
[12:31:18] <lynxlynxlynx> ah
[12:31:25] <fuzzie> which have been bugging me for a while
[12:32:58] <fuzzie> Pausing is meant to force-show everyone's feet circles, not just on hover?
[12:34:22] <lynxlynxlynx> it did that in tob
[12:35:04] <lynxlynxlynx> iwd too
[12:36:39] <fuzzie> Well, the code is Selectable::DrawCircle in ActorBlock.cpp.
[12:36:53] --> barra_library has joined #gemrb
[12:37:22] <fuzzie> You probably want to do 'Over || ShowCircle' and then do 'ShowCircle = (core->GetGameControl()->GetDialogueFlags() & DF_FREEZE_SCRIPTS)'.
[12:38:23] <fuzzie> But if it only shows enemies then it should probably check that somehow..
[12:38:37] <lynxlynxlynx> not, it shows everyone
[12:38:48] <fuzzie> Even unselected party members?
[12:39:10] <lynxlynxlynx> let me recheck, i just died in iwd
[12:39:12] <fuzzie> Presumably there's got to be some way of telling whether a party member is selected or not, maybe a lighter colour or something.
[12:39:50] <lynxlynxlynx> yes, the selected ones are lighter green
[12:40:05] <lynxlynxlynx> just as in normal time
[12:40:17] <lynxlynxlynx> iwd always displays party feet circles
[12:40:32] <fuzzie> ToB does too, it seems.
[12:41:03] <fuzzie> The trouble here is PS:T, which has sprites, so you can't easily fiddle with the colours. Let me check that.
[12:42:12] <fuzzie> Mm, PS:T doesn't change anything on pause, and only selected party members have circles.
[12:43:28] <fuzzie> Oh damn, this is going to depend on options, I guess.
[12:43:50] <fuzzie> 'marker feedback' controls it, of course..
[12:44:50] <fuzzie> Okay, so 'marker feedback' doesn't influence pause; actors always have circles in pause.
[12:45:08] <lynxlynxlynx> yes, it's for normal time
[12:45:31] <fuzzie> Except in PS:T, which doesn't do any of this stuff.
[12:47:31] <fuzzie> I have no idea what 'marker feedback' controls in PS:T, other than that you get *no* circles at lowest setting, and only selected party members and enemies at highest setting.
[12:51:37] <fuzzie> I removed the Saradush guards thing from todo because I'm fairly sure it's fixed.
[12:53:25] <lynxlynxlynx> last time i tried it wasn't, but i'm not completely sure it was after the specifics fix
[12:55:46] <fuzzie> I tried it a few times from the PP, it seems good for me.
[12:56:46] <fuzzie> Although Melissan sometimes speaks to me before I killed everyone.
[12:58:34] <fuzzie> There's *still* some bugs with the search map not being updated or corrupted or something.
[13:00:03] <fuzzie> Maybe something is trying to take shortcuts when off-viewport; it never seems to happen while I'm watching.
[13:00:34] <lynxlynxlynx> the saradush stairs are a good testcase
[13:00:43] <fuzzie> Yes, that's exactly where I'm looking. :/
[13:00:45] <lynxlynxlynx> sometimes it also seems like the npcs block too much
[13:01:15] <fuzzie> Well, bear in mind that ctrl-8 shows occupied area, not blocking area.
[13:01:50] <fuzzie> Oh, it's the birds!
[13:02:01] <fuzzie> I had them in my todo to fix and never did it.
[13:04:29] <lynxlynxlynx> the other guards attack with a bit of delay
[13:09:07] <lynxlynxlynx> melissan's timing was good
[13:47:07] <-- barra_library has left IRC ("Verlassend")
[14:07:56] <CIA-18> gemrb: 03fuzzie * r6503 10/gemrb/trunk/gemrb/plugins/Core/ (Actor.cpp Actor.h ActorBlock.cpp ActorBlock.h Map.cpp): birds shouldn't block search map
[14:08:45] <fuzzie> Okay, *now* the search map seems to stay intact.
[14:13:00] <fuzzie> The pathfinder should perhaps ignore PC blocking when calculating a path.
[15:29:37] <fuzzie> lynxlynxlynx: which spellcasting is meant to pay attention to stoneskins?
[15:30:18] <lynxlynxlynx> anything that does direct damage (non-aoe)
[15:30:38] <lynxlynxlynx> a good example is the magic missile (magic damage type)
[15:31:05] <fuzzie> oh, right, magic missile is meant to deplete stoneskins
[15:31:09] <lynxlynxlynx> if something did physical damage, that should also have an effect
[15:32:08] <lynxlynxlynx> like the flame arrow
[15:32:22] <lynxlynxlynx> 1d6 piercing + 4d6 fire
[15:33:58] <lynxlynxlynx> that's per 5 levels, so at level 20, you'd remove 4 skins
[15:33:59] <fuzzie> right, i was just being confused about spells doing damage vs spells decreasing skins
[15:34:40] <lynxlynxlynx> ModifyDamage does exactly what we need afaik
[15:34:58] <fuzzie> well, it modifies damage to 0
[15:35:02] <lynxlynxlynx> mirror image, stoneskin/ironskin
[15:35:12] <fuzzie> so we can't just take the result directly
[15:35:43] <lynxlynxlynx> ideally we would catch it before
[15:36:26] <fuzzie> i'm just wondering if fx_damage should always just call ModifyDamage and apply the specified effect damage, or whether it's per-circumstance
[15:36:50] <lynxlynxlynx> per-circumstance?
[15:37:13] <fuzzie> well, differing based on something i'm not aware of.
[15:37:47] <lynxlynxlynx> i don't think so
[17:22:55] --> |Cable| has joined #gemrb
[17:44:31] <fuzzie> Um.
[17:44:44] <fuzzie> I entered the Gathering Dust Bar in gemrb and everyone is hostile. :/
[17:46:26] <fuzzie> Death animations non-functional, too.
[17:52:37] --> Avenger has joined #gemrb
[17:53:04] --- ChanServ gives channel operator status to Avenger
[17:53:07] <Avenger> hello
[17:53:09] <fuzzie> Help([0]) is returning true, I guess.
[17:53:21] <Avenger> hey fuzzie, what about your exam?
[17:53:32] <fuzzie> I think it went great!
[17:53:40] <fuzzie> I won't have the results for a few days.
[17:53:48] <Avenger> cool, so gemrb didn't have a bad impact
[17:54:18] <Avenger> i just ask because i saw you worked a lot today
[17:54:29] <fuzzie> the exam was yesterday, that's why :)
[17:54:48] <Avenger> oh, i thought it was wednesday
[17:55:02] <Avenger> ok
[17:55:26] <fuzzie> So now I have quite a bit of time, until everyone else here is finished with exams.
[17:57:51] <Avenger> great :)
[17:58:18] <fuzzie> Is there a way with the magic missile projectiles to work out which one they are?
[17:58:20] <Avenger> i still don't have enough time, i will have to work even in weekend
[17:58:51] <Avenger> Type
[17:59:03] <Avenger> you could use Type to generate a random number
[17:59:36] <Avenger> i mean, a seed for the curve
[18:00:45] <Avenger> the first projectile will have a straight path, i don't know if that's in the game or not
[18:00:55] <Avenger> in the original game, i mean
[18:01:35] <lynxlynxlynx> that makes sense
[18:01:38] <fuzzie> i don't think their curves are random at all
[18:01:49] <Avenger> no, meant, seed, not random
[18:01:59] <lynxlynxlynx> they just fan out, depending on the number
[18:02:18] <fuzzie> yes
[18:02:18] <Avenger> you just don't need to care about any hardcoded data, i think
[18:02:34] <Avenger> just use Type, and convert it into your preferred range
[18:02:34] <fuzzie> so i need to know how many projectiles and which one this one is :)
[18:02:48] <Avenger> do you really need that :(
[18:03:17] <fuzzie> well, maybe just the projectile# would be adequate
[18:03:28] <Avenger> you could use Type as the amplitude (paired, impaired for the sign)
[18:03:39] <Avenger> i mean, the odd/even
[18:03:47] <Avenger> it should work perfectly, imo
[18:03:57] <fuzzie> yes, i'm sure it can be stored in Type, as long as that is set when the projectiles are made
[18:04:07] <Avenger> sure it is
[18:04:19] <fuzzie> i didn't look at it yet.
[18:04:28] <fuzzie> I am trying to work out why Help([0]) would return true
[18:04:48] <Avenger> MatchActor (0) returns true
[18:04:58] <Avenger> it needed for Heard([ANYONE],xxx)
[18:05:08] <Avenger> [0] is [ANYONE]
[18:05:34] <fuzzie> Hm. :/
[18:05:46] <Avenger> why? Help doesn't work the same way???
[18:05:49] <fuzzie> no
[18:06:43] <fuzzie> If no-one shouted for help in the last round, Help([0]) is false.
[18:07:20] <Avenger> wait a bit
[18:07:25] <fuzzie> ok.
[18:08:04] <Avenger> ok, this is independent
[18:08:16] <Avenger> the LastHelp field should be cleared every round, it seems
[18:08:28] <Avenger> probably ALL triggers should be cleared every round
[18:08:47] <fuzzie> well, they seem to be zero in all actors present
[18:08:53] <fuzzie> no-one ever shouts for Help in these scripts
[18:09:28] <Avenger> yeah, matchactor is wrong
[18:11:45] <Avenger> MatchActor should still try to build the target list if oC is 0
[18:12:06] <Avenger> it should add everyone
[18:13:21] <fuzzie> the other problem with magic missiles is that it should create all iterations at once
[18:13:31] <Avenger> no
[18:13:40] <Avenger> hmm
[18:13:49] <Avenger> i added the delay intentionally
[18:14:00] <Avenger> are you sure they appear simultaneously?
[18:14:46] <Avenger> well, once they got the curved path, i will change them if needed
[18:15:00] <fuzzie> http://fuzzie.org/magicmissiles.jpg
[18:15:04] <Avenger> but if i did that now, you would see only one :)
[18:15:24] <fuzzie> (that is aimed at the chest)
[18:15:51] <Avenger> odd, i thought they have a much bigger difference, oh yes, i got used to nwn2 :)
[18:16:32] <Avenger> in the IE they are in one line?
[18:16:38] <Avenger> heh, how mediocre :)
[18:16:44] <fuzzie> yes, although it does not look as ridiciulous moving
[18:17:07] <Avenger> ok, i will make them that way, once they got a separate trajectory
[18:17:27] <fuzzie> ok, i agree it is not a good idea to change it yet. it might take me a few days. :)
[18:19:35] --> barra_library has joined #gemrb
[18:19:52] <Avenger> cool my color spray is getting coloured
[18:22:12] <fuzzie> neat :)
[18:22:19] <lynxlynxlynx> http://iesdp.gibberlings3.net/files/ids/bg2/missile.htm <-- this looks pretty similar to our table
[18:22:57] <fuzzie> yes, that is where DLTCEP gets the descriptions from
[18:23:12] <fuzzie> then it puts the projectile in brackets too, if it is in projectl.ids
[18:23:45] <fuzzie> so you can work out if you need a built-in projectile from those two files
[18:24:43] <Avenger> yes
[18:24:57] <lynxlynxlynx> ah
[18:25:11] <Avenger> that's exactly what i'm doing now :)
[18:25:18] <fuzzie> and then you can make it and add it to gemprjtl.ids :-)
[18:25:32] <lynxlynxlynx> looking at the damage.ids i see we have a bad define for DAMAGE_MISSILE - it is currently the same as DAMAGE_MAGIC
[18:26:07] <lynxlynxlynx> now there won't be a gap anymore :)
[18:26:28] <fuzzie> MISSILE is 0x8000?
[18:26:50] <lynxlynxlynx> 0x80
[18:26:55] <fuzzie> oh, 0x80, i mean, i keep forgetting the effect values are shifted
[18:27:25] <fuzzie> fix it, i guess :)
[18:27:32] <lynxlynxlynx> already rebasing
[18:28:07] <CIA-18> gemrb: 03lynxlupodian * r6504 10/gemrb/trunk/gemrb/plugins/Core/damages.h: DAMAGE_MISSILE is 0x80 and not 0x40
[18:28:26] <lynxlynxlynx> it's annoying how crushing has a value of 0
[18:28:36] <fuzzie> i would not trust anything in a table or in iesdp, though, by default
[18:29:29] <fuzzie> I mean, this is correct, but often enough they are wrong :)
[18:34:24] <lynxlynxlynx> mnja
[18:34:27] <Avenger> you could do that masking differently
[18:35:01] <Avenger> !(damagetype&~ignored_flags)
[18:35:28] <Avenger> that would solve the crushing problem
[18:37:00] <Avenger> hmm, i don't see where is that code anymore
[18:37:23] <lynxlynxlynx> it's probably safe to assume that most weapons have only one damage type per effect
[18:37:44] <fuzzie> Avenger: Actor::ModifyDamage
[18:38:03] <lynxlynxlynx> so anything under 0x800 would be a good estimate for /unique/ types
[18:38:07] <Avenger> ahh ok, i didn't download it yet :D
[18:38:19] <Avenger> i just saw it on cia
[18:39:07] <Avenger> if (!(damagetype & ~(DAMAGE_PIERCING|DAMAGE_SLASHING|DAMAGE_MISSILE|DAMAGE_MAGIC)) {
[18:39:56] <Avenger> would that work?
[18:40:11] <fuzzie> it looks like it would :)
[18:40:18] <lynxlynxlynx> for crushing yes, but i can't think so fast to check the others
[18:41:22] <Avenger> damagetype has only one bit set, usually (or none for crushing)
[18:41:41] <lynxlynxlynx> what if the damagetype was x|DAMAGE_CHUNKING?
[18:41:43] <Avenger> all others would crash the IE (with assertion)
[18:41:53] <lynxlynxlynx> oh
[18:41:57] <Avenger> there is only one bit set, always
[18:42:00] <lynxlynxlynx> why do we bother with them then?
[18:42:04] <fuzzie> we should maybe have a similar assertion :)
[18:42:13] <fuzzie> i think just == should work fine
[18:42:24] <fuzzie> this is left over from when the effect was giving us a value to mask, i think
[18:42:28] <Avenger> == would make a long code :)
[18:42:33] <fuzzie> but we split that out in the effect now
[18:42:53] <Avenger> fuzzie, look at the damage opcode :)
[18:43:06] <Avenger> in the reverse engineered files
[18:43:15] <Avenger> it is terrible
[18:44:30] <fuzzie> oh dear, so much code in their opcodes :(
[18:44:46] <fuzzie> but, ok, 'weird damage assertion' i see :)
[18:48:56] <lynxlynxlynx> so who will do the honors?
[18:49:16] <lynxlynxlynx> i have another thing to discuss
[18:49:37] <fuzzie> you won't do it?
[18:49:58] <lynxlynxlynx> i can, just wondering if anyone is already at it, since all became silent
[18:50:01] <fuzzie> Avenger: should I fix MatchActor?
[18:50:09] <Avenger> if you can
[18:50:14] <Avenger> but don't break Heard
[18:50:23] <Avenger> it fixes the saradush guards
[18:50:37] <fuzzie> yes, the saradush guards are a nice check
[18:50:54] <Avenger> so oC = 0, should pick up all actors, and the match them against the ID
[18:51:08] <fuzzie> yes, that is what I expected it to be doing already :)
[18:51:10] <Avenger> maybe it could be a separate branch of code
[18:51:29] <Avenger> well GetAllObjects is a very tricky code
[18:52:34] <fuzzie> yes, i can see that i don't want to be trying to check for oC==NULL in EvaluateObject
[18:54:00] <Avenger> yep
[18:54:13] <fuzzie> i just added the code directly to MatchActor
[18:54:50] <Avenger> can you show me what you did?
[18:55:19] <fuzzie> well, http://fuzzie.org/nfs/gemrb/actormatch.txt is the idea'
[18:55:32] <fuzzie> but i only just copied that in, i didn't check any of it yet :)
[18:55:51] <Avenger> yes, how did you find that out :D
[18:55:56] <Avenger> oh copied?
[18:55:58] <fuzzie> maybe you want to fix it instead?
[18:56:03] <Avenger> but not in a useful function?
[18:56:50] <Avenger> it could be something like GetAnyoneAsTarget() or GetEveryoneAsTarget() or similar
[18:57:11] <Avenger> i wonder why i don't have thjis
[18:57:11] <fuzzie> something like that :)
[18:57:20] <Avenger> there is a GetActorsInRadius in Map
[18:57:22] <fuzzie> but if you want to do it, go ahead, please, you understand it better
[18:57:40] <Avenger> GetAllActorsInRadius
[18:57:44] <Avenger> but that is not target
[18:57:50] <Avenger> no i don't :)
[18:58:14] <Avenger> maybe later we can refactor it
[18:58:19] <fuzzie> i thought i will just add it to GSUtils as a helper function, it is simple and someone can refactor it
[18:58:19] <Avenger> i'm fine with your code
[18:58:37] <Avenger> that's fine
[18:59:06] --> danamin has joined #GemRB
[19:00:14] <Avenger> maybe i have a misunderstanding with projectile speed
[19:00:24] <Avenger> i guess lower is slower?
[19:01:06] <Avenger> my color spray is almost good, but it is too fast
[19:01:21] <danamin> Hi
[19:01:28] <fuzzie> I didn't ever look at projectile speed.
[19:01:30] <fuzzie> danamin: hi
[19:02:20] <lynxlynxlynx> Avenger: would make sense, since that holds true for weapons
[19:02:35] <fuzzie> danamin: I applied your LUProfs change and fixed LUSpell to work for your chargen, but there are still some bugs in the main code, I put them in comments again.
[19:03:03] <danamin> fuzzie: the 'large sword missing problem' is due to LUProfsSelection line 242, its a difference between BG1 and BG2
[19:03:53] <danamin> comment out 242 and 243 and it should work
[19:04:00] <fuzzie> ok, i will tr
[19:04:00] <fuzzie> y
[19:04:51] --> barra_away has joined #gemrb
[19:04:58] <fuzzie> or rather I will fix it for both games :)
[19:05:26] <lynxlynxlynx> commenting out is not good
[19:05:40] <fuzzie> i just added a GameIsBG1 check for testing it
[19:05:43] <lynxlynxlynx> just ifdef it :)
[19:06:15] <lynxlynxlynx> there is another user of that list later on that will need maybe it aswell
[19:07:07] <fuzzie> well, SkipPrefs is empty if i disable line 242/243
[19:07:13] <fuzzie> so i think it is no problem
[19:08:44] <danamin> so fighter max skill should be 2 instead of 5? (in weapprof.2DA)?
[19:09:04] <lynxlynxlynx> wierd, my monk says his fists deal cold damage
[19:09:48] <Avenger> cool monk
[19:09:49] <fuzzie> danamin: well, if that is for chargen
[19:10:33] <Avenger> ok, projectile speed seems to be reversed
[19:10:47] <fuzzie> lynxlynxlynx: is weapprof.2da only for chargen?
[19:12:45] <danamin> it is also used in GUIREC
[19:12:47] <CIA-18> gemrb: 03fuzzie * r6505 10/gemrb/trunk/gemrb/GUIScripts/LUProfsSelection.py: LUProfsSelection: don't skip proficiencies in BG1
[19:13:04] <fuzzie> fighters can increase their proficiencies to 5 when levelling up
[19:13:05] <Avenger> speed = 1500/speed <--- this is what i missed in projectiles :D
[19:13:24] <fuzzie> so i think changing weapprof is wrong
[19:13:26] <lynxlynxlynx> fuzzie: no, we use it in guirec too
[19:13:39] <fuzzie> but i don't know what is right.
[19:13:45] <danamin> but GUIREC only uses col 0-1
[19:14:37] <lynxlynxlynx> does bg1 have this table at all?
[19:14:53] <fuzzie> it's in gemrb's override/
[19:15:09] <danamin> (the actual BG1 doesn't have it I think)
[19:15:32] <lynxlynxlynx> i think our version is at fault then
[19:15:50] <lynxlynxlynx> i don't remember bg1 or how many points you were allowed to distribute though
[19:16:14] <fuzzie> in chargen, you may use up to 2 points in a slot
[19:16:19] <lynxlynxlynx> BUT from the apr talks and "restoring grand mastery", it does seem like you could have 5 stars
[19:16:20] <fuzzie> in levelup, you can increase that up to 5 points
[19:16:26] <lynxlynxlynx> ah
[19:16:42] <fuzzie> also, we are missing the 'memorize mage spells' dialog entirely in our bg1 chargen, i notice :(
[19:16:44] <danamin> Profselection is also used for leveling up I presume? so in that case it should probably allow over 2, but then the table is wrong for figther dual classes?
[19:17:28] <danamin> memorize magespells, is that GUICG7
[19:17:35] <lynxlynxlynx> i'd make the function accept a chargen bool like some of the others do
[19:17:41] <lynxlynxlynx> yes
[19:18:03] <fuzzie> it was not in our old chargen, i am fairly sure
[19:18:16] <fuzzie> i think it is best to fix your patch regressions first, then we can apply the whole thing
[19:18:53] <fuzzie> fixing the Gender thing, the proficiency points, the missing thief number and the 'Accept' button is my list
[19:19:48] <fuzzie> oh, also i shouldnt' be able to hit enter in the Race dialog and get no race :)
[19:20:11] <fuzzie> same bug for some of the other dialogs
[19:20:41] <-- barra_library has left IRC (Success)
[19:20:52] <danamin> I have no clue about the enter thing
[19:21:55] <danamin> the disabled button is used?
[19:21:59] <fuzzie> yes
[19:22:01] <lynxlynxlynx> that's wierd
[19:22:12] <fuzzie> it works fine in the 'class' dialog..
[19:22:19] <fuzzie> but then enter doesn't work at all
[19:22:30] <fuzzie> anyway, it doesn't matter, we can fix it later
[19:24:17] <danamin> the accept button: replace line 360-361 in CharGenGUI by http://pastebin.com/dc4cbe4b
[19:26:10] <CIA-18> gemrb: 03lynxlupodian * r6506 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: improved the check for crushin in ModifyDamage and left a debugging printf
[19:27:30] <fuzzie> the Spellbook code is really odd
[19:27:41] <fuzzie> it segfaults because nothing constructed the CRESpellMemorization yet
[19:28:00] <lynxlynxlynx> was SetupSpellLevels called yet?
[19:28:10] <fuzzie> i expect not
[19:30:05] <danamin> ah, I et it
[19:30:08] <danamin> I get it
[19:31:16] <fuzzie> but i think we need some sanity checks in the code, make errors more obvious :)
[19:31:18] <danamin> I'm going to try changing the order of removing all spells and reset SetMemorizableSpellsCount
[19:33:06] <lynxlynxlynx> Avenger: i think DisplayStringCore should be used only to play the sounds and not to display any strings
[19:33:20] <fuzzie> what would display the strings?
[19:33:26] <Avenger> LOL
[19:33:30] <lynxlynxlynx> manual calls :)
[19:33:35] <Avenger> it is 'DISPLAY'stringcore
[19:33:47] <lynxlynxlynx> yep
[19:33:51] <fuzzie> well, i already have to fix that code for games without a message window
[19:33:59] <fuzzie> so it needs to have a central function of some kind
[19:34:05] <lynxlynxlynx> not sure why the CORE part, since none of the DISPLAY functions use it ;)
[19:34:34] <Avenger> it uses the display functions
[19:34:56] <Avenger> displaystringcore is called by actions
[19:34:56] <lynxlynxlynx> yes
[19:35:16] <Avenger> and opcodes
[19:35:23] <lynxlynxlynx> it is problematic sometimes
[19:35:49] <fuzzie> what are you looking at in particular?
[19:35:56] <lynxlynxlynx> one example is the VB_DAMAGE entry - it is the same old one in all games
[19:35:59] <danamin> fuzie: if I first remove spell and then SetMemorizableSpellsCount to 0 it works
[19:36:03] <fuzzie> we need to handle a lot of messages centrally because we must suppress them via effect
[19:36:23] <Avenger> fuzzie is right
[19:36:53] <lynxlynxlynx> many of the combat messages don't display, since the creatures don't have valid strrefs at the expected places (eg. VB_DEATH)
[19:36:54] <danamin> (fuzzie: have you made any fixes; if so how do we sync? Do I just make another pacth to SVN)
[19:37:04] <Avenger> though i don't see the suppressing code now
[19:37:15] <fuzzie> danamin: i have only fixed what you told me, so another patch against svn is fine
[19:37:24] <Avenger> lynx: that's not true, joinable npcs do have them
[19:37:33] <Avenger> there are just 3 different methods
[19:37:48] <Avenger> joinable npcs have the sounds in their VB_ slots
[19:37:57] <Avenger> pcs replace the string with the soundset
[19:38:07] <lynxlynxlynx> joinable npcs is a very small fragment of all the creatures
[19:38:10] <danamin> fuzzie: all I told you should fix the list?
[19:38:12] <Avenger> and monsters get it from their res*
[19:38:27] <lynxlynxlynx> you kill a goblin and don't get any feedback except for the xp gain (which we do manually)
[19:38:30] <Avenger> resdata.ini or <ani>.2da
[19:38:33] <fuzzie> danamin: not the max 2 proficiencies, i think
[19:38:34] <Avenger> or <ani>.ini
[19:38:43] <lynxlynxlynx> that's just the sound part Avenger
[19:39:05] <Avenger> joinable npcs got strings
[19:39:09] <danamin> ok, I'll do that one
[19:39:30] <fuzzie> lynxlynxlynx: any objections to applying the chargen patch?
[19:39:54] <fuzzie> it doesn't quite work with imported chars, i think the portrait fails
[19:40:01] <lynxlynxlynx> any patch in particular or the whole thing?
[19:40:03] <fuzzie> but the existing code uses vars so it doesn't work at all
[19:40:05] <fuzzie> the whole thing
[19:40:20] <lynxlynxlynx> Avenger: i even killed a party member now and didn't get any death notification
[19:41:11] <Avenger> it was working before
[19:41:36] <fuzzie> it only works for some, i think
[19:42:03] <lynxlynxlynx> the CRE must have the proper strrefs
[19:42:40] <lynxlynxlynx> from the 100, a goblin has maybe 10 set and the few i checked resolve to empty strings
[19:42:41] <Avenger> monsters have a different way
[19:43:00] <Avenger> <ani>.2da
[19:43:26] <Avenger> you can find the animation prefix in avatars.2da
[19:44:56] <lynxlynxlynx> ok, let's say monsters just need a fix
[19:46:59] <fuzzie> aw, gemrb manages to strip the teaching-battle items from me :)
[19:47:25] <lynxlynxlynx> bg2's efftext.2da has 12 DAMAGE 14027, which is "Damage Taken", while the real message displayed in the original is more verbose
[19:47:40] <danamin> (fuzzie: new LUProfsSelection: http://pastebin.com/d7506e8bc)
[19:48:12] <fuzzie> lynxlynxlynx: where's efftext used?
[19:48:22] <lynxlynxlynx> fuzzie: no objections unless something other than the prof change has happened that would affect bg2
[19:48:52] <lynxlynxlynx> efftext is the lookup table for the strings (VB_DAMAGE -> DAMAGE in efftext)
[19:50:33] <fuzzie> danamin: pastebin gives me a file with broken whitespace, maybe better to put a diff on sourceforge
[19:52:32] <danamin> OK
[19:55:32] <danamin> done
[19:57:20] <fuzzie> oh dear, eclipse patches :)
[19:57:35] <fuzzie> "if MaxProf>2 and ProfsType == ProfsType" doesn't seem the right check
[19:57:50] <danamin> LUPROFS_TYPE_CHARGEN
[20:02:20] <fuzzie> ok, now it segfaults when i click 'done' in the spell window
[20:03:24] <CIA-18> gemrb: 03fuzzie * r6507 10/gemrb/trunk/gemrb/GUIScripts/LUProfsSelection.py: LUProfsSelection: patch from danamin (bg1 fixes)
[20:04:54] <danamin> crap
[20:05:57] <danamin> weird, what class?
[20:06:01] <fuzzie> a mage
[20:06:12] <danamin> I don't have that problem?
[20:06:23] <danamin> the chargen spell window?
[20:06:30] <fuzzie> yes
[20:06:35] <fuzzie> you must do it after having gone backwards already
[20:06:45] <fuzzie> so it has already unset the spells
[20:06:48] <danamin> correct
[20:09:52] <Avenger> ahh, hehe, the cone width is 0-360, not 0-256, actually
[20:14:00] --- barra_away is now known as barra_library
[20:14:48] <CIA-18> gemrb: 03fuzzie * r6508 10/gemrb/trunk/gemrb/plugins/Core/ (GSUtils.cpp GSUtils.h): MatchActor must still check actorIDs for [ANYONE]
[20:15:21] <fuzzie> now i can enter the Gathering Dust Bar without everyone turning enemy again, and the Saradush guards still work :)
[20:18:25] <Avenger> fuzzie: i need some coordinate geometry help
[20:19:02] <fuzzie> i am really no good at it :) the current code should be simple to fix from 256 to 360, i thought
[20:19:06] <Avenger> i got P1 and P2, how can i calculate the degree of the line connecting them
[20:19:15] <Avenger> yes that's ok
[20:19:28] <Avenger> but ii have to refine the area of effect too
[20:19:45] <Avenger> the graphic covers the cone, but the effect goes all over a circle :D
[20:20:05] <Avenger> so, i got P1 (center) and P2 (actor.pos)
[20:20:15] <Avenger> distance is already tested
[20:20:25] <Avenger> i just need the degree of the line connecting p1 and p2
[20:20:26] <danamin> (fuzzie: I hardly dare to say, but I messed up again,in LUProfsSelection the ProfsNumButtons button is in the block for dual class instead of chargen)
[20:20:40] <Avenger> so i can test if it is between the min/max
[20:23:13] <fuzzie> Avenger: it's a bit difficult because it depends where the points are in relation to one another; you want 'arctan(x_diff/y_diff)', but maybe with different signs
[20:23:45] <Avenger> it is always p1-->p2
[20:23:48] <lynxlynxlynx> yes, depending on which quadrant you're in
[20:25:31] <fuzzie> i think you must change the angle depending on whether they are left/right of each other. this is easy to check in python; 'import arctan from math' and try some numbers
[20:26:08] <fuzzie> oh, atan, even
[20:27:15] <fuzzie> ok, no, i guess you must add pi if they're below each other. i'm tired and this is only easy to show on paper, i think
[20:28:24] <fuzzie> but four test cases in python (result %(pi*2)) will show the situation easily
[20:29:06] <fuzzie> danamin: what does the ProfsNumButtons change?
[20:29:26] <Avenger> ok, fuzzie, first step is:
[20:29:29] <Avenger> int xdiff = Pos.x-actor.Pos.x;
[20:29:31] <Avenger> int ydiff = Pos.y-Actor.Pos.y;
[20:29:40] <fuzzie> that is good
[20:29:42] <Avenger> then if ydiff = 0, i use what value
[20:30:14] <Avenger> it is either 0 or 180
[20:30:16] <Avenger> i guess
[20:30:22] <Avenger> depending on xdiff's sign?
[20:30:26] <fuzzie> yes, you have to test whether xdiff is neg/pos
[20:30:43] <fuzzie> danamin: if i change ProfsNumButtons to 7 there for bg1, then it just breaks the 8th proficiency
[20:30:48] <danamin> fuzzie: number of buttons, it sets the number of buttons to 7, so only 7 skills are draw, problem is that the window isn't 'clean' is not set
[20:31:32] <fuzzie> well, i can still click on the 8th buttons :/
[20:31:48] <Avenger> ok, and the rest is: atan(xdiff/ydiff)*360/M_PI ?
[20:31:50] <danamin> I'll try something else
[20:31:59] <danamin> report back later
[20:32:30] <fuzzie> Avenger: /M_PI2
[20:33:12] <Avenger> k *180/M_PI
[20:33:17] <fuzzie> yes :)
[20:33:19] <Avenger> i don't have m_pi2 here
[20:33:36] <Avenger> and then i should add 180 if xdiff<0 ?
[20:36:07] <fuzzie> if you're counting the angle from the right side and not from the top, i think you want to use ydiff/xdiff.
[20:36:39] <fuzzie> GameControl.cpp:198 shows how I did it from the top, though, that is maybe more useful than me trying to explain :)
[20:36:40] <Avenger> i'm pretty sure it is from the top, Orientation 0 = facing south
[20:37:43] <Avenger> ahh it is M_PI_2
[20:38:08] <Avenger> Maybe this Angle thing could be a function, like Distance
[20:38:11] <CIA-18> gemrb: 03fuzzie * r6509 10/gemrb/trunk/gemrb/GUIScripts/LUProfsSelection.py: move ProfsNumButtons check for bg1 to the right place (still broken)
[20:38:39] <Avenger> ok, i take what you got, i'm sure it is the same for me
[20:39:03] <fuzzie> you can simply change the final angle by adding/subtracting if you need :)
[21:12:25] <danamin> the broken LU prof check was just unnecessary, misunderstanding from my side
[21:13:19] <fuzzie> ok, so i remove it again?
[21:13:25] <danamin> yes
[21:13:58] <danamin> I assumed there was one slot too many, but there are 8 slots for 8 skills
[21:14:48] <CIA-18> gemrb: 03fuzzie * r6510 10/gemrb/trunk/gemrb/GUIScripts/LUProfsSelection.py: LUProfsSelection: revert back to how it was
[21:16:36] <fuzzie> round and round the patches we go :)
[21:20:17] <danamin> bye, I'm going to sleep
[21:20:19] <-- danamin has left IRC ()
[21:35:52] <fuzzie> Hm, I can put 5 points into proficiencies as a barbarian. Is that right?
[21:36:59] <lynxlynxlynx> nope
[21:36:59] <Avenger> its a fighter 'kit'
[21:37:11] <Avenger> is there a separate column for them?
[21:37:23] <fuzzie> The description says you can only put 2 points in.
[21:37:40] <lynxlynxlynx> and it works for me
[21:37:48] <Avenger> yes, weapprof has a barbarian column
[21:38:20] <fuzzie> This is a half-orc, I don't know if that makes a difference.
[21:38:26] <Avenger> no
[21:38:37] <fuzzie> But I make a half-orc barbarian and I can put 5 points into long sword, for example. :/
[21:38:38] <lynxlynxlynx> it does :(
[21:39:09] <lynxlynxlynx> human and elves are ok
[21:39:13] <lynxlynxlynx> halfelves not
[21:39:20] <Avenger> how could that be
[21:39:29] <lynxlynxlynx> gnomes not
[21:39:56] <Avenger> fuzzie i give up on this
[21:40:06] <Avenger> i could make the graphic correctly oriented
[21:40:07] <lynxlynxlynx> dwarves are ok
[21:40:13] <Avenger> but i couldn't calculate the angle :(
[21:40:14] <fuzzie> Avenger: put a patch somewhere?
[21:40:27] <Avenger> i'll upload what imade
[21:40:42] <fuzzie> ok, the kit didn't get applied to my half-orc, i am left with a normal fighter
[21:41:02] <lynxlynxlynx> we probably don't handle the race exclusion for them
[21:41:25] <fuzzie> well, the UI shows the corrected excluded classes
[21:41:36] <lynxlynxlynx> remind me tommorow if i forget and i'll fix it
[21:41:41] <fuzzie> ok
[21:43:24] <lynxlynxlynx> out of control, terminated
[21:43:42] <-- lynxlynxlynx has left IRC (Remote closed the connection)
[21:44:12] <-- Avenger has left IRC ("ChatZilla 0.9.84 [Firefox 3.0.11/2009060215]")
[21:48:56] <fuzzie> whoops, i killed something and the ui failed
[21:54:39] <CIA-18> gemrb: 03avenger_teambg * r6511 10/gemrb/trunk/gemrb/override/bg2/ (areapro.2da colrspry.pro gemprjtl.ids): color spray (bg1 and bg2 style)
[21:54:44] <fuzzie> also, using Jaheira to cast Cure Light Wounds on Imoen: "Jaheira did 2 damage to Imoen" first, I think Jahiera was still in battle mode
[21:55:17] <CIA-18> gemrb: 03avenger_teambg * r6512 10/gemrb/trunk/gemrb/plugins/Core/ (Projectile.cpp Projectile.h): improved cone style projectiles (area of effect still needs refinement)
[22:04:08] <fuzzie> and now I am stuck in an infinite pathfinder loop.
[22:04:34] <fuzzie> it should probably have a maximum cost.
[22:29:22] <fuzzie> "Mage - Mage was immune to my damage."
[22:40:55] <fuzzie> also, Imoen can shoot through walls, very impressed
[23:16:07] <fuzzie> the lesser clay golems never activate until they're within sight, i think?
[23:17:38] <fuzzie> and they lack the resistances i remember
[23:18:23] <fuzzie> and all these broken weapons are silly