#gemrb@irc.freenode.net logs for 28 Jul 2010 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[04:09:58] <-- budlust has left IRC (Ping timeout: 276 seconds)
[04:11:18] --> budlust has joined #GemRb
[05:38:15] <-- budlust has left IRC (Quit: Lost terminal)
[06:01:36] --> budlust has joined #GemRb
[06:44:00] <-- |Cable| has left IRC (Remote host closed the connection)
[07:23:06] --> pupnik has joined #GemRb
[08:05:43] <-- pupnik has left IRC (Ping timeout: 276 seconds)
[08:15:46] --> SiENcE has joined #GemRb
[08:46:31] --> pupnik has joined #GemRb
[09:45:23] <-- pupnik has left IRC (Quit: Lost terminal)
[11:38:05] <fuzzie> wjp: any thoughts on how to do infravision tinting?
[12:23:33] <wjp> what should it look like?
[12:25:39] <wjp> wouldn't it just select a "less dark" variant of the night tints?
[12:27:37] <fuzzie> from memory, it actually brightens
[12:27:43] <wjp> brighter than day?
[12:32:02] <fuzzie> i thought it always brightened (with red tint), but i am without the games here
[12:34:31] <wjp> hm, I do vaguely recall actors getting reddened a bit
[12:34:52] <fuzzie> oh, infinitycracker saves the day
[12:35:33] <wjp> I need to get my IE VMs back up
[15:22:07] <fuzzie> well, i spent a while running bg2 under wine before being dragged off for other things, but i honestly couldn't work it out
[15:22:23] <fuzzie> so i guess i need to play with bg1, where i seem to remember it being far more obvious, and do it a bit more methodically
[15:22:32] <fuzzie> so consider the question postponed i guess :)
[15:35:54] <CIA-27> GemRB: 03avenger_teambg * r84deaf4e949d 10gemrb/gemrb/core/ (Calendar.cpp Interface.cpp): Calendar: fixed some uninitialized data
[16:20:59] <-- SiENcE has left IRC (Quit: @all: cya)
[17:34:29] --> SiENcE has joined #GemRb
[18:09:59] <CIA-27> GemRB: 03avenger_teambg * r298ae70f4d1f 10gemrb/gemrb/ (5 files in 2 dirs): pc portraits now display the action specific cursor
[18:10:02] --> Avenger has joined #GemRb
[18:10:09] --- ChanServ gives channel operator status to Avenger
[18:10:21] <Avenger> another graphical bug bit the dust :)
[18:11:26] --> |Cable| has joined #GemRb
[18:12:47] <fuzzie> cool :)
[18:13:06] <fuzzie> i was wondering about doing that, after you implemented the flashing on mouse-over
[18:18:29] <fuzzie> so another item off the todo list
[18:18:47] <fuzzie> where should i look for the shapeshifting animation?
[18:21:36] <fuzzie> was trying to show someone the slayer earlier, it failed to change animation and then it broke (i think dialog problem) when trying to change back :(
[18:23:13] <Avenger> well, shapechange is probably totally broken
[18:23:22] <fuzzie> it is
[18:23:29] <fuzzie> but i am wondering where to start looking
[18:23:40] <Avenger> original engine disassembly :P
[18:24:32] <Avenger> i guess, it somehow clones a creature object, and links it to the actual actor, copying most of the stats
[18:24:33] <fuzzie> well, there's some stuff in fx_polymorph, it can't be so bad :p
[18:25:35] <fuzzie> but the animation id stuff is commented out, and i don't know the effect code well enough to work out how to reset the animation id when the effect dies
[18:27:09] <Avenger> remove the comment first
[18:27:51] <Avenger> the code actually should work, pcf_animid does all the necessary things
[18:28:31] <Avenger> maybe it just needs an eventflag
[18:28:53] <Avenger> but even without that, it should update in the game area
[18:30:08] <Avenger> there is a fixme in line 3476
[18:30:21] <Avenger> i think the actor should have a pointer to the polymorph creature
[18:30:41] <fuzzie> sure, that is easy enough to do
[18:31:02] <fuzzie> or we can just make a struct with the necessary details in it?
[18:32:04] <Avenger> yes, a copy of stats is enough, probably
[18:33:20] <fuzzie> it really does need the caching though, heh
[18:33:41] <Avenger> i guess you can do that
[18:34:03] <Avenger> there is the fx->FirstApply flag that may be helpful
[18:34:03] <fuzzie> sure, i am happy trying to do these simple fixes
[18:34:31] <fuzzie> i wonder what happens if you try doing two polymorph effects at once
[18:34:49] <Avenger> i think it is going away
[18:35:47] <Avenger> but even if it isn't. You can disable any subsequent polymorph effects temporarily
[18:36:13] <Avenger> watch for STAT_SET( IE_POLYMORPHED, 1 );
[18:36:26] <Avenger> if it is set, then just return FX_APPLIED
[18:36:44] <fuzzie> i wonder why the revert back doesn't work
[18:36:45] <Avenger> it will automagically handle the the issue
[18:37:26] <Avenger> Modified[IE_ANIMATE_ID] is correct?
[18:37:35] <fuzzie> the effect isn't being removed
[18:37:41] <Avenger> ahh it sticks?
[18:37:45] <Avenger> then it is a permanent?
[18:38:44] <Avenger> hmm, let me see how the original engine works, our code explicitly removes any previous polymorph!
[18:39:09] <fuzzie> i mean, i don't understand why this breaks :)
[18:39:09] <Avenger> ahh only in case of null resource
[18:39:21] <fuzzie> the revert back spell has a null resource, yes
[18:39:41] <Avenger> you can see if the actor still has the effect or not
[18:39:50] <Avenger> ctrl-m
[18:39:50] <fuzzie> the apply spell has timing method 00, FX_DURATION_INSTANT_LIMITED
[18:40:21] <fuzzie> let me try it on someone without so many effects already
[18:41:02] <fuzzie> it is difficult to capture the output between all the silly re-loads of the cre file, which i thought meant that the effect is surely still there
[18:41:28] <Avenger> yes that means the effect is not removed
[18:42:16] <Avenger> so it is target->fxqueue.RemoveAllEffectsWithParam(fx_polymorph_ref, fx->Parameter2);
[18:42:46] <fuzzie> no, the effect is gone
[18:42:47] <Avenger> hmm, this means, you can remove a polymorph only if its parameter2 is the same in the removal and the setup
[18:43:04] <fuzzie> only an Item:Remove is left from that spellcast
[18:43:10] <fuzzie> and nothing else from spell casts
[18:43:20] <Avenger> ?
[18:43:34] <fuzzie> Modified[IE_ANIMATE_ID] is still the bear, though
[18:43:51] <Avenger> then the basestat is still bear too
[18:43:54] <fuzzie> it seems that the console is just out-of-sync for some reason
[18:44:04] <Avenger> oh
[18:44:08] <Avenger> maybe it is overwhelmed?
[18:44:12] <fuzzie> probably :)
[18:44:17] <Avenger> fix the cache then
[18:45:53] <Avenger> i think the setanimationid is not necessary
[18:46:03] <Avenger> copypolymorphstats will copy the anim id anyway
[18:46:08] <fuzzie> the Polymorph action calls SetBase, i wonder if that is correct (i know it is unrelated)
[18:46:30] <Avenger> yes it is correct
[18:46:38] <Avenger> it actually alters the cre
[18:46:57] <Avenger> it is not a temporary or opcode based effect
[18:47:24] <Avenger> it keeps the scripts, i think (but maybe not even the scripts)
[18:47:32] <Avenger> it is more like a replace creature
[18:49:28] <fuzzie> the anim id isn't in our polystat.2da
[18:49:32] <fuzzie> but i guess it is simple to put it there
[18:50:29] <fuzzie> the fx->Parameter2 check there is inverted?
[18:52:04] <fuzzie> and i guess that check means we have to manually check the animation
[18:52:05] <Avenger> inverted?
[18:52:19] <fuzzie> Parameter2 is 0 for standard polymorph
[18:52:37] <fuzzie> iesdp agrees, but i don't know whether that is good or bad :)
[18:52:59] <Avenger> but i don't see any inversion
[18:53:16] <fuzzie> it should be 'if(!fx->Parameter2) {', i think?
[18:53:24] <Avenger> where?
[18:53:35] <Avenger> ah
[18:53:45] <fuzzie> oh
[18:53:50] <fuzzie> ok, so yes, it is that stupid SetAnimationID call
[18:54:12] <Avenger> i don't think that check is needed at all
[18:54:16] <fuzzie> oops
[18:54:39] <fuzzie> Avenger: the animation-only polymorph doesn't work?
[18:54:44] <Avenger> which is your polymorph spell?
[18:54:47] <fuzzie> people claim it does
[18:55:07] <fuzzie> i am using spcl613 (a bear polymorph) to test
[18:55:10] <fuzzie> with spin123 to revert
[18:55:46] <fuzzie> but i think it's all fine now
[18:55:59] <Avenger> ahh
[18:56:10] <Avenger> so it would only copy the animation id?
[18:56:14] <fuzzie> yes
[18:56:25] <Avenger> make it an 'else' anyway
[18:56:37] <Avenger> and don't use setanimation id
[18:56:39] <Avenger> i think
[18:56:40] <fuzzie> and add anim id to polystat.2da?
[18:56:45] <Avenger> yes
[18:56:47] <fuzzie> well, if i change Modified, it doesn't work
[18:56:53] <fuzzie> which is strange
[18:56:54] <Avenger> pfft
[18:57:24] <fuzzie> but i guess pcf doesn't get called if we change Modified directly, like we do in SetPolymorphStats?
[18:57:31] <fuzzie> or CopyPolymorphStats or whatever it is
[18:57:57] <fuzzie> so i try it with SET_STAT
[18:58:27] <fuzzie> or, well, SetStat
[18:58:29] <Avenger> SetAnimationID should be called by the pcf
[18:58:55] <Avenger> OOH
[18:58:58] <fuzzie> yes, the pcf isn't called if you hack Modified[] directly
[18:59:03] <fuzzie> so that is dumb
[18:59:07] <Avenger> hmm, are you sure
[19:01:10] <Avenger> refresheffects checks if the previous set of effects differs from the current modified effects
[19:01:25] <Avenger> if there is a difference, it calls the pcf
[19:01:41] <Avenger> once after every update cycle, not always when you modify a stat
[19:01:50] <fuzzie> hmm
[19:01:57] <fuzzie> well, i mean, it doesn't get called right now, at all
[19:02:19] <fuzzie> but it doesn't work if i use SetStat, either.
[19:02:49] <Avenger> i think you gotta fix the cache first, so your terminal is not scrolling wildluy
[19:02:58] <fuzzie> i added a hack for that
[19:03:06] <Avenger> then you can see if the effect is in place?
[19:03:26] <fuzzie> yes, it's all fine
[19:03:31] <fuzzie> just the pcf isn't working
[19:03:36] <Avenger> but it should
[19:03:46] <fuzzie> yes, so i am confused
[19:03:57] <fuzzie> i mean, the code in git is broken, but i fixed that bit
[19:04:04] <Avenger> ctrl-m prints the modified animation id only
[19:04:07] <fuzzie> oh well, i will work it out
[19:04:21] <Avenger> i wonder what is the base stat
[19:04:24] <fuzzie> i don't mean to waste your time with my silly bugs
[19:05:47] <fuzzie> it is *fine* if i call SetStat with the pcf parameter set to call it immediately
[19:05:54] <fuzzie> and it reverts fine at the end, too
[19:07:07] <fuzzie> so meh
[19:13:31] <fuzzie> oh, hm
[19:13:47] <fuzzie> ok, that pcf stuff in RefreshEffects is not so useful
[19:13:52] <fuzzie> can't rely on it
[19:21:25] <CIA-27> GemRB: 03fuzzie * r3d6a6357685b 10gemrb/gemrb/ (override/shared/polystat.2da plugins/FXOpcodes/FXOpcodes.cpp): fix fx_polymorph to correctly change animations
[19:26:52] <fuzzie> my guess is that the effect code does something stupid when we add/remove the magic slot.
[19:27:59] <fuzzie> yes, fx_create_magic_item calls SetEquippedSlot calls AddSlotEffects calls RefreshEffects...
[19:31:42] <fuzzie> well, i won't worry about it, but i guess that needs fixing :P
[19:32:52] <fuzzie> and then someone can change that stuff to just mess with Modified again
[19:35:50] <fuzzie> slayer change works fine too
[19:36:35] <fuzzie> except it still kills you, helpful
[19:38:02] <fuzzie> the change back isn't removing any of the effects, including the 1500hp damage one
[19:43:36] <fuzzie> how is that meant to work? is it this 'magic damage resistance modifier'?
[19:44:15] <fuzzie> we don't seem to check that, but i assume it is meant to resist the damage
[19:44:36] <fuzzie> (IE_MAGICDAMAGERESISTANCE)
[19:46:47] <fuzzie> i guess we don't check any RESIST stats?
[19:47:07] <fuzzie> bit unhelpful when you die otherwise :)
[19:58:48] <Avenger> 1500 hp damage?
[20:00:48] <-- budlust has left IRC (Ping timeout: 252 seconds)
[20:02:52] --> budlust has joined #GemRb
[20:07:40] <fuzzie> Avenger: there are damage effects queued by the slayer change spell, delayed
[20:07:56] <Avenger> 1500 damage?
[20:07:58] <fuzzie> the end spell is meant to resist all of them, but we don't handle them, so you die anyway
[20:08:06] <fuzzie> yes, you are meant to die if you wait that long :)
[20:08:23] <Avenger> and who is supposed to remove them
[20:08:26] <fuzzie> it goes 2, 5, 10, 20, 1500 or something
[20:08:32] <fuzzie> and they don't get removed at all
[20:08:46] <fuzzie> but the end spell gives you 100% resistance to magical damage for a short period
[20:09:07] <fuzzie> 68: 0x0c: Damage (1500, 4194304) S:spin823
[20:09:13] <fuzzie> 106: 0x1f: MagicDamageResistanceModifier (100, 1) S:spin718
[20:09:19] <fuzzie> ^- maybe easier just to explain it like this :-
[20:09:42] <fuzzie> so that works fine, just the resistance isn't checked..
[20:09:50] <Avenger> but i don't see what would remove that damage effect
[20:09:57] <fuzzie> nothing does
[20:10:07] <fuzzie> it is meant to be 100% resisted
[20:10:12] <Avenger> by what?
[20:10:33] <fuzzie> by that MagicDamageResistanceModifier
[20:10:41] <Avenger> but its duration is only 44
[20:11:07] <Avenger> is that enough?
[20:11:07] <fuzzie> that is not long enough?
[20:11:19] <Avenger> i don't know
[20:11:22] <fuzzie> i didn't check, but i don't see any other way this would work
[20:12:12] <Avenger> yes, it should be enough
[20:12:17] <fuzzie> but it seems lynx wrote the code for this..
[20:12:22] <Avenger> what starts spin823?
[20:12:43] <Avenger> i didn't know you get 100% magic resistance, hah
[20:12:46] <fuzzie> spin823 is the 'become slayer' spell, from player1.dlg
[20:13:01] <fuzzie> spin718 is the 'become human again' spell, an innate
[20:13:27] <fuzzie> but i can't get you to look at the broken RefreshEffects stuff instead? :)
[20:13:36] <Avenger> ok, and the damage is not resisted
[20:14:12] <Avenger> well, this seems to be very simple, you can do this one for sure :)
[20:14:30] <Avenger> just check if magic damage resistance actually works
[20:14:55] <fuzzie> it is in dmgtypes.2da, with the correct stat
[20:15:31] <fuzzie> and 0x40 which is the damage type of that Damage effect
[20:16:17] <Avenger> hmm
[20:16:22] <Avenger> i see 0x400000
[20:17:09] <fuzzie> got to shift it
[20:17:14] <Avenger> ahh, it is the high word, yes
[20:19:41] <fuzzie> it is resisting 0hp :|
[20:23:00] <fuzzie> ok, printf time
[20:24:22] --> edheldil_ has joined #GemRb
[20:28:03] <fuzzie> ok, so the magic resist stat is 0% in Damage() and 100% elsewhere
[20:29:18] <fuzzie> Avenger: so, if RefreshEffects overwrites all Modified stats with BaseStats, this will never work
[20:29:32] <fuzzie> Avenger: should the damage be in a message, not done by the effect?
[20:29:57] <Avenger> hmm
[20:30:13] <fuzzie> the Damage code works fine, but RefreshEffects overwrite the resistance stat with 0.
[20:30:18] <Avenger> the damage effect executes faster than the resistance?
[20:30:29] <fuzzie> no, but both are in the queue
[20:30:40] <fuzzie> Damage is delayed, but it is first
[20:30:48] <Avenger> hmm
[20:31:25] <Avenger> probably this is why the original engine has 3 copies of the stats
[20:31:45] <Avenger> when checking the stats, they should use the 'previous modified'
[20:32:00] <Avenger> we also got the previous modified stats, so this can be done
[20:32:09] <fuzzie> ok, we should make 'previous' a member of the actor?
[20:32:15] <Avenger> just it should be made public somehow
[20:32:19] <Avenger> yes, somehow
[20:32:44] <Avenger> this will be a hell of a coding :)
[20:33:26] <Avenger> i have to go now
[20:33:31] <Avenger> see you
[20:33:43] <-- Avenger has left IRC (Quit: bye!)
[20:49:03] <-- budlust has left IRC (Ping timeout: 260 seconds)
[20:49:20] --> Maighstir_laptop has joined #GemRb
[20:50:31] --> budlust has joined #GemRb
[22:19:07] <-- SiENcE has left IRC (Quit: cya @all)
[22:48:05] <fuzzie> should remember to fix the textboxes for save
[22:49:20] <fuzzie> images in bg1 info screens are buggy too..
[22:50:28] <-- Maighstir_laptop has left #GemRb
[22:55:24] <fuzzie> and the speaking circle is annoying
[23:00:04] <fuzzie> and the flaky bounding box on the world map
[23:01:11] <fuzzie> and the mysterious disappearing gui is just due to our misuse of hidegui/showgui..
[23:06:44] <-- edheldil_ has left IRC (Ping timeout: 245 seconds)
[23:29:05] <-- budlust has left IRC (Quit: Lost terminal)
[23:30:41] --> budlust has joined #GemRb