#gemrb@irc.freenode.net logs for 15 Jul 2011 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:37:52] <-- duckpunch has left IRC (Read error: Connection reset by peer)
[00:38:51] --> duckpunch has joined #gemrb
[03:17:14] <-- Gekz has left IRC (Quit: No Ping reply in 180 seconds.)
[03:17:44] --> Gekz has joined #gemrb
[03:17:45] <-- Gekz has left IRC (Changing host)
[03:17:45] --> Gekz has joined #gemrb
[03:37:28] <-- duckpunch has left IRC (Read error: Connection reset by peer)
[03:38:14] --> duckpunch has joined #gemrb
[04:26:57] <-- cryptopsy has left IRC (Ping timeout: 264 seconds)
[06:30:28] --> adominguez has joined #gemrb
[06:36:58] <-- duckpunch has left IRC (Read error: Connection reset by peer)
[06:37:22] --> duckpunch has joined #gemrb
[06:58:58] --> lynxlynxlynx has joined #gemrb
[06:58:59] <-- lynxlynxlynx has left IRC (Changing host)
[06:58:59] --> lynxlynxlynx has joined #gemrb
[06:58:59] --- ChanServ gives channel operator status to lynxlynxlynx
[07:17:52] <-- |Cable| has left IRC (Remote host closed the connection)
[08:22:07] <-- duckpunch has left IRC (Ping timeout: 246 seconds)
[08:30:33] --> duckpunch has joined #gemrb
[09:36:30] <-- duckpunch has left IRC (Read error: Connection reset by peer)
[09:36:46] --> duckpunch has joined #gemrb
[10:59:58] --> duckpunc1 has joined #gemrb
[11:00:13] <-- duckpunc1 has left IRC (Client Quit)
[13:05:00] <-- adominguez has left IRC (Quit: Saliendo)
[13:13:39] --> SiENcE has joined #gemrb
[14:07:31] <CIA-40> GemRB: 03lynxlupodian * r439d7888bb35 10gemrb/gemrb/plugins/FXOpcodes/FXOpcodes.cpp:
[14:07:31] <CIA-40> GemRB: fx_cast_spell_on_condition: added a range check to the on-hit case
[14:07:31] <CIA-40> GemRB: fixes fireshield dealing damage out of its 5' range
[14:09:34] <fuzzie> i'm pretty sure that's not correct
[14:13:05] <fuzzie> but i'm not quite sure what's going on there
[14:13:32] <fuzzie> missile weapons?
[14:15:28] <lynxlynxlynx> for example
[14:15:44] <lynxlynxlynx> hitby should also trigger on spellcasting, but i think we don't do that yet
[14:15:59] <lynxlynxlynx> or maybe it was meant just for damage, which is handled
[14:16:29] <fuzzie> hitby is only triggered by actual combat hits, or the going hostile action
[14:17:10] <lynxlynxlynx> maybe the description is misleading
[14:17:22] <lynxlynxlynx> anyway, the uglier part follows
[14:17:46] <fuzzie> the AttackedBy one matches a lot of stuff though
[14:18:10] <lynxlynxlynx> i tried hacking around the ping-pong issue, but the error messages are not so helpful
[14:18:16] <lynxlynxlynx> let me upload it
[14:19:13] <fuzzie> the ping-pong thing is best dealt with by only allowing one effect run per gametime, i guess?
[14:19:34] <lynxlynxlynx> http://pastebin.com/WNv7YUg1 <-- this is what i tried, but i couldn't make it compile with any combination
[14:19:42] <fuzzie> i do note in the comment that "only allowed to run once per frame"
[14:20:53] <lynxlynxlynx> i'm not sure where the chain would break
[14:20:55] <fuzzie> (and you'd want to remove it from target, not actor, right?)
[14:20:58] <lynxlynxlynx> need to test it ingame
[14:21:18] <lynxlynxlynx> the vars are named a bit confusingly there
[14:21:36] <fuzzie> the original doesn't actually do the contingencies in the effect, as i noted
[14:22:53] <fuzzie> in any case: if you want to do a patch like that, you should mark HitBy with TEF_PROCESSED_EFFECTS instead
[14:23:10] <fuzzie> since removing the trigger will break scripting
[14:24:33] <fuzzie> not sure why your code wouldn't work though. maybe it would need TriggerEntry to have a comparison operator?
[14:25:25] <lynxlynxlynx> yes, i think it complained about == last night
[14:26:27] <lynxlynxlynx> so, you think the optimal solution here would be to set that flag bit after the spells get applied?
[14:26:43] <fuzzie> no, i think you should just force contingency effects to only run once per gametime
[14:27:44] <lynxlynxlynx> this is not a true contingency
[14:28:02] <fuzzie> sorry, i mean, they're all handled the same in the original
[14:28:35] <lynxlynxlynx> and i need to check whether the second fireshield should fire
[14:28:54] <fuzzie> at a *guess*, and this is a guess, i don't think your solution will work anyway
[14:28:58] <lynxlynxlynx> if not, adding the per frame check would not be enough
[14:29:08] <fuzzie> because the loop happens inside ApplySpell
[15:00:51] --> brad_a has joined #gemrb
[15:09:56] <-- brad_a has left IRC (Quit: brad_a)
[15:18:06] --> |Cable| has joined #gemrb
[15:27:47] --> brad_a has joined #gemrb
[15:35:35] <-- duckpunch has left IRC (Read error: Connection reset by peer)
[15:35:59] --> duckpunch has joined #gemrb
[16:07:35] <-- SiENcE has left IRC (Quit: @all: cya)
[17:14:34] --> Avenger has joined #gemrb
[17:14:40] <Avenger> lynx, the fireshield check is not needed. The trigger should check it itself
[17:14:53] --- ChanServ gives channel operator status to Avenger
[17:17:20] <lynxlynxlynx> where we set it now, it can't know
[17:18:27] <lynxlynxlynx> brad_a: looks fine now, only the doubled typos are left
[17:21:11] <Avenger> what do you mean by it can't know?
[17:25:00] <Avenger> i guess i know how this works
[17:25:18] <Avenger> sppr951d has a range (6)
[17:25:45] <Avenger> cast spell on condition should check the range of the spell
[17:26:20] <Avenger> yeah, spwi403d also has the range
[17:26:51] <Avenger> i think, if you raise this range to 30, or change the spell to 'no los needed' then the spell would work from afar :)
[17:27:13] <fuzzie> i don't think it's needed because the HitBy trigger should only be set on *hits*
[17:27:31] <Avenger> yes fuzzie, and you can get hit by an arrow
[17:28:02] <fuzzie> there is no code in the original which checks for range here, right?
[17:28:17] <lynxlynxlynx> Avenger: what you describe is what was implemented (sans the no-los exception)
[17:28:19] <Avenger> you will see 'one of your spells failed' if you are hit by an arrow i think
[17:29:18] <Avenger> yes... it seems you are correct, i'm not sure if it is only on cond_gethit, though
[17:29:30] <Avenger> i will check this
[17:29:57] <Avenger> but you are right, you check the spell range, which should be ok
[17:30:15] <Avenger> rebooting..
[17:30:17] <-- Avenger has left IRC (Quit: bye!)
[17:32:19] <fuzzie> can't work out where i put my notes on this. but i'm sure Avenger will find.
[17:34:45] <lynxlynxlynx> i added the gethit check just to limit any possible problems
[17:35:11] --> Avenger has joined #gemrb
[17:35:18] <lynxlynxlynx> that was fast
[17:41:47] <Avenger> ok, it evaluates the condition, then checks if the target is the same as the trigger object
[17:42:24] <Avenger> i guess, this is for self started: A contingency spell has been triggered
[17:43:38] <Avenger> it also calls applySpell, which checks the distance, if that fails, it says: One of the spells has failed.
[17:43:52] <Avenger> 36937
[17:44:10] <Avenger> the other strref is 36936
[17:46:16] <Avenger> it checks the distance for all 3 spells, btw
[17:46:26] <Avenger> you can have 3 spells triggered, not only 1
[17:50:39] <Avenger> btw, they not simply evaluate the condition in the opcode. First they construct a normal trigger object based on the opcode values, then add it to a list, similar to the trigger list
[17:50:51] <Avenger> when they evaluate the trigger list, they also evaluate this contingency list
[17:51:03] <Avenger> it is probably unnecessarily complex
[17:52:30] <Avenger> it doesn't execute the spells if the target is the same as the trigger object
[17:52:52] <Avenger> odd...
[17:53:29] <Avenger> it removes the trigger (or contingency), but won't cast the spell on self
[17:53:57] <Avenger> so if you hit yourself or poison yourself, i don't know how the self healing works.
[17:58:26] <fuzzie> isn't the self-target check only checked the first time?
[18:07:53] <Avenger> no
[18:08:44] <Avenger> the function i talk about is at 0046BE04
[18:09:29] <fuzzie> the ContingencyList::ProcessTrigger, called from SetTrigger?
[18:10:18] <Avenger> i call it evaluateContingency :)
[18:10:40] <Avenger> but... the function that i thought checks for self isn't that simple
[18:10:51] <fuzzie> well, the original engine has one of those
[18:10:57] <Avenger> what do you call this: sub_48D519
[18:10:58] <fuzzie> but it does the every-100-ticks contingency checks
[18:11:07] <fuzzie> i don't have my IDB here, so i can't look :P
[18:11:13] <Avenger> O_o
[18:11:14] <fuzzie> and i can't find my notes on the actual function!
[18:11:18] <fuzzie> it is really annoying
[18:11:23] <Avenger> then how did you know the other one
[18:11:38] <fuzzie> well there's only two contingency functions :)
[18:13:03] * fuzzie peers
[18:15:09] <fuzzie> yeah, i don't know, i can't work it out again at a glance
[18:17:42] <fuzzie> oh, i found some notes
[18:18:12] <fuzzie> "contingency trigger check STOPS if it encounters HitBy from owner on non-contingency"
[18:18:16] <fuzzie> not sure if that is right though
[18:19:57] <fuzzie> so i will go back to being useless
[18:25:47] <Avenger> hehe
[18:25:54] <-- Avenger has left IRC (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330])
[18:31:04] <brad_a> lynx what do you mean by "doubled typos"
[18:31:54] <lynxlynxlynx> the same typo is repeated twice
[18:34:37] <brad_a> ok what typo
[18:35:16] <lynxlynxlynx> the config commit
[18:40:11] <brad_a> spelling is not my forté : (
[18:40:35] <brad_a> will fix
[18:44:39] <brad_a> ok fixed now
[18:44:50] <brad_a> need the link again?
[18:46:23] <lynxlynxlynx> is it different?
[18:46:52] <brad_a> yes but maybe there is another typo
[18:47:04] <brad_a> i fixed the misspelling of whether
[18:47:11] <brad_a> what were you talking about
[18:47:16] <lynxlynxlynx> that
[18:47:25] <lynxlynxlynx> seems the url is the same
[18:47:57] <brad_a> yeah i overwrote the old file with the new. just opend the file and whether is correct
[18:50:39] <lynxlynxlynx> hmm, i did something wrong
[18:50:50] <brad_a> maybe it is being cached
[18:50:54] <brad_a> i can make a new file
[18:51:01] <lynxlynxlynx> it should really be checking the offspring effects, not the source
[18:51:09] <brad_a> oh that lol
[18:51:20] <lynxlynxlynx> and then adjust the units of measurement
[18:55:12] --> BaldimerBrandybo has joined #gemrb
[18:55:52] <CIA-40> GemRB: 03bradallred * rc9b45257c889 10gemrb/gemrb/ (14 files in 3 dirs): Adds getters and setters for control focus. moves iOS keyboard hooks to SDLVideo and adds Android TextEdit/Console/TextArea show softkeyboard on focus if config var is set.
[18:55:52] <CIA-40> GemRB: 03bradallred * r2110f9ba1f09 10gemrb/gemrb/plugins/SDLVideo/SDLVideo.cpp: Added SDL_WINDOW_BORDERLESS flag when creating fullscreen display. this removes the status bar on iOS/Android and since its fullscreen has no effect outside those platforms. Requires SDL 1.3+
[18:55:53] <CIA-40> GemRB: 03bradallred * ref5dbc215a77 10gemrb/gemrb/core/GUI/ (ScrollBar.cpp ScrollBar.h): Rewrote the scrollbar to support per-pixel scrolling with new method SetPosForY(y)
[18:55:54] <CIA-40> GemRB: 03bradallred * r9568c7832d20 10gemrb/gemrb/plugins/SDLVideo/SDLVideo.cpp: Fixes an SDL magic number
[18:55:54] <CIA-40> GemRB: 03bradallred * rd415e8bc127e 10gemrb/gemrb/plugins/SDLVideo/SDLVideo.cpp: Add handling for SDL_MOUSEWHEEL event. requires SDL 1.3+ Added a catch for unhandled events to aid in adding support for more SDL 1.3 events.
[18:55:55] <CIA-40> GemRB: 03bradallred * r75bfd45a83a4 10gemrb/gemrb/plugins/SDLVideo/SDLVideo.cpp: Clearifies a comment and cleans up the SDL macro usage for version 1.3.
[18:55:55] <CIA-40> GemRB: 03bradallred * rc2e810734638 10gemrb/gemrb/plugins/SDLVideo/SDLVideo.cpp: Replaces calls to SDL_SetPalette with a macro GEM_SetPalette for SDL 1.3 compatibility.
[18:55:57] <CIA-40> GemRB: 03bradallred * r23fce68dab49 10gemrb/gemrb/core/GUI/ (12 files): Adds OnMouseWheelScroll Method to event manager and controls. Offloads scrolling previously done in mousedown/keydown events to new method.
[18:55:59] <CIA-40> GemRB: 03bradallred * r066f069eec67 10gemrb/INSTALL:
[18:55:59] <CIA-40> GemRB: corrected description of -DTOUCHSCREEN. there is now a config var that controls the touch scroll area.
[18:55:59] <CIA-40> GemRB: Signed-off-by: Brad Allred <bradallred@me.com>
[18:55:59] <CIA-40> GemRB: 03bradallred * r69a03b2fc83c 10gemrb/gemrb/ (GemRB.cfg.noinstall.sample GemRB.cfg.sample.in):
[18:55:59] <CIA-40> GemRB: Adds new options for TouchScrollAreas ad UseSoftKeyboard to config.
[18:55:59] <CIA-40> GemRB: Signed-off-by: Brad Allred <bradallred@me.com>
[18:57:16] <brad_a> thank you
[18:58:25] <-- PixelScum has left IRC (Ping timeout: 246 seconds)
[18:59:51] <lynxlynxlynx> thank *you*
[19:00:39] <fuzzie> nice
[19:07:26] --> PixelScum has joined #gemrb
[19:10:27] <-- BaldimerBrandybo has left IRC (Ping timeout: 240 seconds)
[19:37:03] <lynxlynxlynx> what would be the simplest way to do something like this: ieResRef refs[4] = { fx->Resource, fx->Resource2, fx->Resource3, fx->Resource4 };
[19:38:02] <lynxlynxlynx> i just want to be able to access them by key
[19:38:22] <lynxlynxlynx> preferably in less than 4 lines
[19:46:54] <tomprince> lynxlynxlynx: Do you need them to be ieResRef, or does it work if you just change that to char*?
[19:47:35] <lynxlynxlynx> preferably the first
[19:48:04] <lynxlynxlynx> now i remember these will have to change anyway for gcc 4.6
[20:12:21] --> SiENcE has joined #gemrb
[20:14:34] <CIA-40> GemRB: 03lynxlupodian * r4f3c5783d541 10gemrb/gemrb/ (core/GameScript/GSUtils.h plugins/FXOpcodes/FXOpcodes.cpp):
[20:14:34] <CIA-40> GemRB: fx_cast_spell_on_condition: check the range of all the child effects,
[20:14:34] <CIA-40> GemRB: don't leak, check the comparable range
[20:21:39] --> BaldimerBrandybo has joined #gemrb
[20:24:51] <-- PixelScum has left IRC (Ping timeout: 276 seconds)
[22:08:58] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[22:51:53] <-- brad_a has left IRC (Quit: brad_a)
[22:58:51] <-- BaldimerBrandybo has left IRC (Ping timeout: 246 seconds)
[23:01:25] <-- SiENcE has left IRC (Quit: cya)
[23:02:55] --> Drakkar has joined #gemrb
[23:27:31] --> wirehead has joined #gemrb
[23:27:41] <wirehead> does this run at full speed on a desire z?