#gemrb@irc.freenode.net logs for 16 Mar 2011 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:21:38] <-- edheldil_ has left IRC (Ping timeout: 255 seconds)
[06:21:18] --> edheldil_ has joined #GemRb
[06:46:37] --> Bo_Thomsen has joined #GemRb
[06:52:41] <-- edheldil_ has left IRC (Ping timeout: 255 seconds)
[06:54:41] <tomprince> I really want to do 'git mv gemrb src' or something like that. :)
[06:59:43] --> pupnik_ has joined #GemRb
[07:00:21] --> lynxlynxlynx has joined #GemRb
[07:00:21] <-- lynxlynxlynx has left IRC (Changing host)
[07:00:21] --> lynxlynxlynx has joined #GemRb
[07:00:21] --- ChanServ gives channel operator status to lynxlynxlynx
[07:02:28] <-- pupnik has left IRC (Ping timeout: 250 seconds)
[07:10:14] <lynxlynxlynx> tomprince: hehe, me too
[07:10:30] <lynxlynxlynx> annoying how many names start with gemrb
[07:54:55] <-- Demitar has left IRC (Quit: Burn the land and boil the sea, you can't take the sky from me!)
[08:12:42] --> lubos has joined #GemRb
[08:15:59] --> edheldil_ has joined #GemRb
[08:17:51] --> Demitar has joined #GemRb
[08:19:40] --- pupnik_ is now known as pupnik
[08:24:07] <-- Bo_Thomsen has left IRC (Quit: Leaving.)
[08:26:05] <edheldil> tomprince: if you do that, I will applaud you :)
[08:27:41] <-- edheldil_ has left IRC (Ping timeout: 252 seconds)
[08:33:14] --> adominguez has joined #GemRb
[08:45:15] --> edheldil_ has joined #GemRb
[09:04:03] --> Lingerance has joined #GemRb
[09:06:27] <Lingerance> So... I do have BG2, never really completed it and was thinking about trying to do that. Looks like BG2 is well supported, but the phrasing "which can be roughly played through." makes me nervous, would it be wiser to just run it in a VM at this point, or is BG2 supported to the point where someone unfamilliar with the late game will have no issues?
[09:09:46] <edheldil> afaik it's the former - there are still places where you have to cheat. If you want to have a good gameplay experience, use VM or wine or whatever
[09:09:53] <-- lubos has left IRC (Remote host closed the connection)
[09:10:13] <Lingerance> Thanks
[09:15:05] <fuzzie> phft
[09:15:08] <fuzzie> you don't have to cheat :o
[09:15:21] <fuzzie> but yes, if you want a good gameplay experience, use VM/wine
[09:15:38] <fuzzie> i imagine almost all our users are on mobile phones/tablets
[09:16:02] <Lingerance> Out of curiousity, is it just points in the game that don't work, or specific mid-high level features?
[09:17:27] <fuzzie> It is mostly just a *lot* of bugs, at this point.
[09:19:12] <fuzzie> and mostly they are stupid low-level bugs
[09:19:35] <edheldil> fuzzie: really no need to cheat anymore?
[09:19:55] <fuzzie> edheldil: yes, when you had to cheat it said 'with some cheating' :)
[09:19:57] <Lingerance> Independant of my other question: is there multiplayer (site is slow otherwise I'd look at the site for this), and would it be a good engine for a new game?
[09:20:02] <fuzzie> i fixed the last one a while ago
[09:20:07] <edheldil> ah
[09:20:19] <fuzzie> or i expect it was me. maybe lynx :)
[09:20:36] <fuzzie> Lingerance: There is no multiplayer code at all, yet.
[09:21:19] <edheldil> now THAT would be a big GSOC :)
[09:21:52] <Lingerance> GSOC?
[09:22:00] <fuzzie> And it depends on which kind of game - gemrb would work really well for games in bg2-style, with huge backgrounds, but it's an awful lot of work to produce those. And there's a large community around the modding scene which would help.
[09:22:29] <fuzzie> But so far I don't know of anyone getting very far making a game.
[09:27:54] <edheldil> Lingerance: Google summer of code
[09:28:14] <Lingerance> Ah
[09:29:08] <-- edheldil_ has left IRC (Quit: Really?)
[09:29:59] <edheldil> Lingerance: are you going to write any? :)
[09:30:37] <Lingerance> Not sure, I was mostly curious
[10:05:53] <-- |Cable| has left IRC (Remote host closed the connection)
[10:33:20] <pupnik> or do something like remaking ultima 2 in gemrb
[12:32:50] <-- exultbot has left IRC (signing off...)
[12:34:12] --> exultbot has joined #GemRb
[12:34:12] --- Topic for #GemRb is: GemRB 0.6.3 | http://gemrb.sf.net | Be wary of your words for there are Modron sensors in this channel: http://log.usecode.org/gemrblog.php | Hey <CHARNAME>, we need some awesome screenshots! | We now have our own domain, http://www.gemrb.org
[12:34:12] --- Topic for #GemRb set by edheldil!~edheldil@2001:1488:ac14:1400:222:19ff:fe31:415e at Mon Dec 20 08:34:18 2010
[12:44:19] <lynxlynxlynx> Lingerance: there's a sticky on our forum with some more info wrt new games
[12:58:28] <edheldil> or forget a term "game" and just think of simple demo data.
[13:01:52] <fuzzie> yes, but demo data never interests people
[13:06:21] <Lingerance> Cool, I'll poke into that
[13:09:04] <edheldil> btw, anyone knows why does fireball.pro set unknown bit in it's travel flags? :) ?
[13:09:20] <fuzzie> actually unknown? :P
[13:09:43] <lynxlynxlynx> check the gemrb importer
[13:09:46] <edheldil> it's not documented neither in iesdp, neither in Projectile.h
[13:09:49] <fuzzie> what's the flag?
[13:09:57] <edheldil> 0x04
[13:12:23] <fuzzie> um
[13:13:44] <fuzzie> which one is travel flags again?
[13:14:20] <fuzzie> oh, right
[13:14:24] <fuzzie> afaik that is indeed unused
[13:16:27] <fuzzie> it is unknown in DLTCEP also.
[13:54:26] <CIA-48> GemRB: 03edheldil * rd714973925a2 10ie_shell/infinity/ (format.py formats/chui.py):
[13:54:26] <CIA-48> GemRB: Enhancements and fixes for Format() class
[13:54:26] <CIA-48> GemRB: Fixed several places not taking 'count' into account.
[13:54:31] <CIA-48> GemRB: 03edheldil * rab0a45b981f8 10ie_shell/infinity/formats/pro.py:
[13:54:31] <CIA-48> GemRB: Tweaks for PRO format
[13:54:31] <CIA-48> GemRB: Added GemRB-specific flags
[14:04:13] <fuzzie> :)
[14:04:33] <fuzzie> i assume g3 forums are down..
[14:04:53] <fuzzie> v.strange behaviour
[14:50:03] <-- DrMcCoy has left IRC (Ping timeout: 248 seconds)
[15:08:53] <CIA-48> GemRB: 03edheldil * r4352164e7a28 10ie_shell/infinity/formats/pro.py: Fixed wrong length in PRO
[15:25:43] --> DrMcCoy has joined #GemRb
[15:42:15] --> kettuz has joined #GemRb
[16:12:32] <-- kettuz has left IRC (Quit: Leaving)
[16:50:26] --> Maighstir has joined #GemRb
[16:55:07] --> Avenger has joined #GemRb
[16:55:07] --- ChanServ gives channel operator status to Avenger
[16:55:11] <Avenger> hi
[16:55:21] <Avenger> fuzzie, i found a "critical scripting bug" :)
[16:55:31] <Avenger> this trigger -->AttackedBy([0],DEFAULT)
[16:56:00] <Avenger> won't be true at all, because [0] is a 0 object, that is rejected by GetAllObjects
[16:56:48] <Avenger> At least one case in pst, the modrons don't respond to attacks
[16:57:56] <Avenger> i think in this case, the whole attacker list is unnecessary, but there could be other triggers that need this change
[16:58:34] <fuzzie> um
[16:58:43] <fuzzie> i'm confused
[16:59:09] <fuzzie> i mean, GetAllObjects shouldn't be called there
[16:59:25] <fuzzie> we should just be matching against a trigger list which i didn't make work yet
[17:01:45] <fuzzie> and we don't use the attacker list there anyway, i didn't have to change it in my local copy when i removed the attackers list..
[17:03:40] <fuzzie> so i understand if bug is "our trigger system is broken and fuzzie didn't fix it yet" but not otherwise :)
[17:05:57] <Avenger> i didn't mean attacker list
[17:06:19] <fuzzie> ok
[17:06:36] <fuzzie> well, all non-0x4xxx triggers are broken like this, i think
[17:06:37] <Avenger> but you can consider this as a result of the lack of the trigger system
[17:06:47] <fuzzie> it's just that mostly it is hidden because we just match
[17:07:01] <fuzzie> but i will be sure to test with it
[17:07:11] <Avenger> it is simply: the LastAttacker should be matched against the object specification
[17:07:23] <Avenger> not looked up on a list of all matches
[17:07:33] <Avenger> though, i guess the two are almost the same :)
[17:07:45] <Avenger> in any case [0] matches anyone, and not 'nobody'
[17:08:08] <Avenger> GetAllObjects([0]) returns a null list
[17:09:12] <fuzzie> edheldil wanted to know why our fireball.pro has 0x04 in the travel flags field, btw
[17:09:23] <-- Demitar has left IRC (Quit: Burn the land and boil the sea, you can't take the sky from me!)
[17:09:38] <fuzzie> or, not our fireball.pro? original fireball.pro? some fireball.pro :P
[17:09:41] <Avenger> our fireball?
[17:10:03] <Avenger> hmm, if it is in our fireball, then i was caught red handed by stealing the original pro file :P
[17:10:08] <fuzzie> hehe
[17:10:12] <fuzzie> original engine uses that flag?
[17:10:17] <Avenger> i guess yes
[17:10:38] <Avenger> the original uses it
[17:11:19] <fuzzie> which pst script was the AttackedBy thing, btw?
[17:11:55] <Avenger> 13fymmdo
[17:11:57] <Avenger> for example
[17:12:04] <Avenger> the modron in the modron foyer
[17:12:06] <Avenger> ar13fy
[17:12:08] <fuzzie> oh right
[17:12:14] <fuzzie> decompiles as [ANYONE]
[17:12:18] <Avenger> yes
[17:12:35] <Avenger> it is read as a NULL object in our bcs loader
[17:12:39] <fuzzie> we should stop checking the attack style, too
[17:12:42] <fuzzie> i guess that should maybe be GF_ed
[17:12:52] <Avenger> gf, yep, i think iwd2 has it right
[17:13:23] <fuzzie> sometimes seems that iwd2 does everything right
[17:13:37] <Avenger> i would also look into the engine code to see why it is buggy :)
[17:13:40] <fuzzie> so should i ask you about APP_BUDDY now or is it bad time? :)
[17:14:01] <Avenger> well, still reviewing the projectiles
[17:14:09] <Avenger> my playground is the modron foyer :)
[17:14:11] <fuzzie> it is buggy in original engines because it's not a 0x4xxx trigger and so there's no way to do the attack style check i think
[17:14:40] <Avenger> why?
[17:14:49] <Avenger> it stores the last attack style
[17:14:54] <Avenger> i see the variable :)
[17:14:56] <fuzzie> yes, but not in the trigger entry
[17:15:06] <Avenger> it could do that too
[17:15:25] <fuzzie> but it doesn't, as far as i remember
[17:15:28] <Avenger> wanna me see, how sendtrigger sends it?
[17:15:50] <fuzzie> no because i already argued this with taimon and came to the conclusion it sucked :)
[17:15:52] <Avenger> well, first the buddy code
[17:16:29] <fuzzie> anyway i'm pretty sure AttackedBy does something completely diffferent
[17:16:39] <fuzzie> so it might be helpful if you'd take a look
[17:16:40] <Avenger> actually, i track this from the attack action so, i might see the sendtrigger too ;P
[17:17:10] <fuzzie> i think sendtrigger for it is called in loads of situations, not just attack
[17:18:26] <fuzzie> well i guess obviously it is called for spells. and this is reminding me how LastTrigger works. i hate bioware.
[17:20:18] <Avenger> ok, pst always stores 0 in attackedby/hitby int0param trigger
[17:20:33] <Avenger> so, we can assume it is the problem with all engines :)
[17:21:20] <fuzzie> it is just so crazy
[17:21:35] <Avenger> but, theoretically, they could store the right value :)
[17:21:41] <fuzzie> they carefully added damage types to so many of the HitBy triggers
[17:21:59] <Avenger> and never implemented it correctly
[17:22:09] <Avenger> at least, in pst, there is no effort :)
[17:22:14] <fuzzie> i think HitBy *always* has a non-zero style param
[17:22:28] <Avenger> maybe in bg2
[17:22:33] <fuzzie> i mean, in the scripts
[17:22:35] <Avenger> ahh
[17:22:37] <Avenger> i see
[17:22:45] <Avenger> but then it never works?
[17:22:54] <fuzzie> it never works :(
[17:23:00] <fuzzie> but of course if you make it work, you break all the scripts
[17:23:05] <Avenger> LOL
[17:23:31] <Avenger> maybe they foreseen a reimplementation attempt, and tried to subvert it
[17:23:49] <fuzzie> well the modders noticed pretty quickly :-P
[17:25:01] <fuzzie> but i don't know which games this applies to
[17:25:19] <fuzzie> i know that AttackedBy is broken
[17:25:55] <Avenger> ok, any idea where is this buddy thing? hitby or attackedby
[17:26:08] <fuzzie> but maybe HitBy works fine in some games
[17:26:16] <fuzzie> the buddy thing should be in Help(
[17:26:19] <fuzzie> )
[17:28:07] <Avenger> oh
[17:28:09] <Avenger> ok
[17:28:21] <Avenger> that's here too ;)
[17:28:37] <Avenger> i see it, i think
[17:28:42] <Avenger> buddy bit is 0x8000 ?
[17:28:55] <fuzzie> yes
[17:29:19] <fuzzie> ok, taimon's notes imply that HitBy works in at least ToB
[17:31:34] <Avenger> this code is pretty simple
[17:31:38] <fuzzie> http://iesdp.gibberlings3.net//files/ids/bg2/astyles.htm is silly documentation :-P
[17:32:35] <fuzzie> Avenger: that is horrible
[17:32:50] <fuzzie> directly setting one single EA :(
[17:33:03] <Avenger> yes
[17:46:19] <-- Avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.15/20110303024726])
[17:46:24] <fuzzie> oop
[17:53:45] <fuzzie> ok so i guess it's trigger rewriting time.
[17:59:39] --> Avenger has joined #GemRb
[17:59:39] --- ChanServ gives channel operator status to Avenger
[17:59:49] <Avenger> fuzzie: got them?
[17:59:55] <fuzzie> yup
[18:00:42] <Avenger> rar is a better compressor :) it is only 15M compared to the 29M i estimated it first :)
[18:02:36] <Lingerance> 7z ppl
[18:05:20] <tomprince> xz?
[18:06:05] <fuzzie> no need to suggest alternatives after it is all done :P
[18:13:55] <-- adominguez has left IRC (Quit: Saliendo)
[18:32:18] --> |Cable| has joined #GemRb
[18:52:24] <-- |Cable| has left IRC (Remote host closed the connection)
[18:52:40] --> |Cable| has joined #GemRb
[18:53:58] --> kettuz has joined #GemRb
[18:56:04] <pupnik> moin
[18:56:42] <fuzzie> heya
[18:57:00] <pupnik> :)
[19:16:57] <fuzzie> ok, i see how bg2's ai cycle stuff works, that is helpful
[19:22:16] <pupnik> so complex
[19:23:30] <fuzzie> yes, it is, way too much work
[19:23:45] <fuzzie> i still can't believe Avenger tried doing without ida
[19:25:32] <lynxlynxlynx> anything interesting?
[19:27:09] <fuzzie> sure
[19:27:17] <Avenger> without ida, i just looked at the opcodes :)
[19:27:34] <fuzzie> i found the instants loop
[19:27:50] <fuzzie> i mean, the one which runs always
[19:28:12] <fuzzie> well, it is not a loop i guess :)
[19:28:39] <fuzzie> and i found the places where it resets stance, i guess
[19:29:03] <fuzzie> what is the 'aura' field, Avenger?
[19:29:59] <Avenger> aura cleansing timer?
[19:31:41] <fuzzie> it is some 'if (aura > -1) { if (stats & STATE_HASTED || aura == 0 || <stuff>) aura++; if (aura >= 100 && !dw3550) aura = -1; }' type thing
[19:31:55] <fuzzie> maybe i screwed up the field names
[19:32:01] <fuzzie> oh and it is if not STATE_HASTED of course
[19:32:53] <fuzzie> oh well, not to worry about
[19:33:24] <fuzzie> the most interesting thing is that STATE_DEAD is checked as well as STATE_SLEEP for the ids check, which i should have known about already
[19:36:14] <-- kettuz has left IRC (Quit: Leaving)
[19:37:54] <fuzzie> other than the instants stuff, which is really obviously implemented
[19:38:54] <lynxlynxlynx> haste, another pita
[19:39:05] <fuzzie> and the fact that action 110 is hardcoded everywhere
[19:39:15] <fuzzie> (LeaveAreaLUA)
[19:39:15] <lynxlynxlynx> it also speeds up some effects like regeneration and poison
[19:39:33] <fuzzie> i am really not going to look at the effects, they are scary
[19:39:54] <fuzzie> all the attack code really belongs in the attack action, also
[19:40:16] <fuzzie> the original bg2 engine even has the attack music change stuff in there..
[19:40:35] <Avenger> hehe :)
[19:40:48] <Avenger> i told you some of that
[19:40:55] <fuzzie> yes, i expect you did
[19:41:15] <fuzzie> you have labelled the instants loop function 'replaceWithPanic', btw :)
[19:41:54] <Avenger> hehe
[19:42:20] <Avenger> all i figured out in it is that it overwrites the normal action, i guess :)
[19:42:45] <fuzzie> it is quite right, if there are no instants or a 110 action, and if some param is passed, then it overwrites the normal action
[19:43:26] <fuzzie> but otherwise it just loops until it finds some action which isn't in instants.ids, which is bit i was looking for :-) so yay
[19:43:39] <Avenger> yay
[19:44:07] <fuzzie> how are projectiles?
[19:47:28] <fuzzie> i treid some pst spells and they all explode, i think
[19:48:13] <fuzzie> with errors like looking for stnkcldd.bam and can't find cgtable.2da and can't find iswarm2.pro, but maybe i have wrong spells
[19:51:17] <-- DrMcCoy has left IRC (Quit: He's dead, Jim)
[19:52:14] --> DrMcCoy has joined #GemRb
[20:00:05] <fuzzie> meh, gemrb so broken
[20:00:09] <Avenger> hehe
[20:00:12] <fuzzie> i left for the underdark
[20:00:18] <Avenger> insect swarm is not finished
[20:00:20] <fuzzie> and the cutscene was centered on the wrong place
[20:00:32] <fuzzie> and now i get a textscreen with nothing in it
[20:00:32] <Avenger> dunno which of your spells had stinking cloud
[20:00:44] <Avenger> huh
[20:00:56] <Avenger> that's probably for merging the textscreen code ;P
[20:01:08] <fuzzie> yes
[20:01:22] <Avenger> it worked earlier, in the playthroughs
[20:01:22] <fuzzie> it tried chptxt4.2da first, which i think shouldn't ever have produced a textscreen
[20:01:38] <fuzzie> then after some script ran, i get one with scrtxt07.2da which is fine
[20:01:53] <Avenger> chptxt4?
[20:02:02] <Avenger> that's for incrementchapter
[20:02:28] <fuzzie> [ResourceManager]: Searching for CHPTXT4.2da...[chitin.key]
[20:02:28] <fuzzie> [ResourceManager]: Searching for NONE... Tried NONE.bmp NONE.mos NONE.png [ERROR]
[20:02:31] <fuzzie> if that helps
[20:03:15] <Avenger> it isn't that bad
[20:03:40] <Avenger> the default value is NONE in chptxt4.2da
[20:04:06] <Avenger> and 15838 is empty string
[20:04:07] <Avenger> LOL
[20:04:17] <Avenger> so chptxt4 is probably from bg1?
[20:04:23] <fuzzie> i imagine so
[20:04:56] <fuzzie> i don't understand where the second working textscreen comes from though
[20:05:08] <fuzzie> i get 'Paused for chapter text' twice
[20:05:09] <Avenger> from a textscreen action?
[20:05:30] <fuzzie> ah yes, from a textscreen action
[20:06:17] <Avenger> so, the conclusion? IncrementChapter doesn't give a textscreen?
[20:06:33] <fuzzie> i dunno, lynx wrote this stuff as bg2-specific
[20:06:58] <fuzzie> it does IncrementChapter("") then TextScreen("SCRTXT07")
[20:07:57] <Avenger> instead of incrementchapter("scrtxt07")
[20:07:58] <fuzzie> all the bg2 scripts which pass a parameter to IncrementChapter look like they're left over from bg1, like the one which checks for Mulahey's letter :P
[20:08:24] <Avenger> bg2 incrementchapters don't take a valid 2da parameter?
[20:08:45] <Avenger> this is easy to script around
[20:08:48] <Avenger> not a big deal
[20:09:10] <Avenger> if parameter is empty, don't do anything :)
[20:09:20] <lynxlynxlynx> i don't think i wrote anything about textscreens
[20:09:31] <Avenger> you merged the guiscript, didn't you?
[20:09:49] <lynxlynxlynx> yes, but that should've been only a merge
[20:10:13] <lynxlynxlynx> still full of gametype checks, is it not?
[20:10:22] <fuzzie> it is
[20:10:26] <fuzzie> i read disasm, one moment pls
[20:10:29] <Avenger> well, you also played through the part fuzzie reported?
[20:10:36] <lynxlynxlynx> twice :)
[20:10:48] <Avenger> i don't remember anyone mentioning that they seen an empty textscreen then a good one ;)
[20:10:50] <lynxlynxlynx> but that was likely before that merge
[20:11:01] <Avenger> yes, that's what i suggested too
[20:11:25] <Avenger> probably the merging cause that IncrementChapter("") now does something visible
[20:12:22] <Avenger> i guess, i did this though :)
[20:12:40] <Avenger> if GUICommon.GameIsBG2():
[20:12:42] <Avenger> if TableName == "":
[20:12:43] <Avenger> Chapter = GemRB.GetGameVar ("CHAPTER") & 0x7fffffff
[20:12:45] <Avenger> TableName = "CHPTXT"+str(Chapter)
[20:12:46] <Avenger> ID = 62
[20:12:59] <Avenger> this is where an empty tablename becomes chptxt4 :)
[20:15:17] <fuzzie> yes
[20:15:36] <fuzzie> the original IncrementChapter code is weirdly complex
[20:17:10] <fuzzie> i guess because of all the locking
[20:22:16] <fuzzie> oh, copyResRef does some kind of shuffle.
[20:23:31] <fuzzie> ok, so i suppose it just ignores the whole lot on empty string, indeed
[20:24:38] --> edheldil_ has joined #GemRb
[20:25:42] <edheldil_> Hi
[20:26:01] <fuzzie> hi
[20:26:18] <fuzzie> i played bg2 a bit after removing attackers, it seems ok, but i didn't fix TryToHide yet
[20:31:33] <lynxlynxlynx> the PCInCombat bit?
[20:32:01] <fuzzie> yes
[20:32:22] <fuzzie> http://fuzzie.org/nfs/gemrb/remove_attackers.txt
[20:32:42] <lynxlynxlynx> that should be changed anyway, Avenger described it well (yesterday?)
[20:33:07] <fuzzie> patch is as simple as possible while actually improving stuff
[20:33:26] <fuzzie> i have a branch moving everything around properly but it's too messy to commit before a release
[20:34:01] <lynxlynxlynx> i love patches that mostly remove stuff :)
[20:34:19] <edheldil_> Avenger: there's a stray unknown bit set in bg1's and pst's fireball.pro travel_flags
[20:34:31] <fuzzie> edheldil_: is a mistake
[20:34:43] <fuzzie> a little too automatically copied from internal data :-)
[20:36:04] <lynxlynxlynx> could then PCInCombat be replaced with LastTarget / LastAttacker checks, once triggers work properly?
[20:36:45] <fuzzie> i don't think it's ever a needed check
[20:36:49] <lynxlynxlynx> for this a visibility check should be enough
[20:36:58] <fuzzie> the TryToHide one should be checking whether enemy can see you
[20:37:05] <lynxlynxlynx> yes
[20:37:10] <fuzzie> just need to write a loop which does CanSee
[20:38:10] <fuzzie> well, this is what Avenger said, "you should be able to hide, if you are chased but turn around the corner", so shouldn't check triggers
[20:39:57] <fuzzie> and that is indeed exactly what original engine does
[20:40:19] <lynxlynxlynx> yeah, i was wondering if it will be needed anywhere else
[20:42:20] <lynxlynxlynx> hide in shadows + boots of speed + backstab + fog bugs == divide and conquer
[20:43:45] <fuzzie> hehe
[20:49:19] <fuzzie> anyway, we can replace it with something, original engine doesn't maintain such lists
[20:49:29] <fuzzie> i am looking at this visibility check function now
[20:49:52] <fuzzie> it's weird because Hide seems to check if the *hiding actor* can see enemies
[20:50:01] <fuzzie> i really hope it doesn't do that, that would be silly
[20:50:19] <CIA-48> GemRB: 03edheldil * rb5812dd79090 10gemrb/gemrb/override/ (bg1/fireball.pro how/gemrb.ini pst/fireball.pro):
[20:50:19] <CIA-48> GemRB: HoW movie font, fireball.pro stray bits
[20:50:19] <CIA-48> GemRB: Changed HoW movie font to one used at least in CZ version
[20:50:46] <fuzzie> but it seems to do exactly that
[20:51:32] <wjp> covering your eyes to be invisible? :-)
[20:51:40] <edheldil_> well, if you can't see enemies, they can't see you as well, rrrrriiight? ;-)
[20:52:24] <lynxlynxlynx> commutative vision?
[20:52:39] <fuzzie> well at least it doesn't set the 'check invisibility' bit :P
[20:53:11] <lynxlynxlynx> most actors do have the same base visual range, so it's not that problematic
[20:54:33] <fuzzie> wah :P
[21:00:32] <fuzzie> anyway, we can presumably implement that properly without any trouble
[21:00:43] <fuzzie> the whole piece of code is wrong though
[21:00:52] <fuzzie> it needs moving earlier, into AttackCore
[21:01:37] <Avenger> fuzzie, i'm sure it is the other way around
[21:01:46] <fuzzie> Avenger: take a look at it, in Hide action
[21:01:52] <fuzzie> well i guess that is a lot of work :P
[21:01:59] <Avenger> gotta reboot
[21:02:05] <fuzzie> so don't bother
[21:02:50] <fuzzie> the Hide action just makes an enemy-matching object, then calls some function which iterates through everything which matches it, checking LOS
[21:03:00] <Avenger> yep
[21:03:19] <Avenger> that's like a GetAllActorsInRadius :)
[21:03:21] <fuzzie> but the function is clearly designed to see if you can *see* that stuff, since it checks flags on the *other* object
[21:03:25] <Avenger> i just added LOS checking to it
[21:03:26] <Avenger> heh
[21:03:30] <Avenger> maybe didn't commit
[21:03:43] <fuzzie> well please do commit, then i can commit this code :P
[21:03:44] <Avenger> i needed it for projectiles that honour walls
[21:03:52] <fuzzie> ah nice
[21:03:57] <Avenger> ok, i commit the non projectile parts
[21:04:09] <fuzzie> i guess the trick is, it doesn't matter which way you're looking, if all the state checks are disabled
[21:04:11] <Avenger> the projectile code needs the review of the projectiles :)
[21:04:15] <Avenger> that's what i did
[21:06:29] <fuzzie> ick though
[21:06:31] <fuzzie> all of this code is ick
[21:06:42] <fuzzie> especially all the stupid stat checks
[21:06:51] <Avenger> the stat check is bg2 specific
[21:07:05] <Avenger> there is no such ugliness in iwd2 or bg1
[21:07:09] <fuzzie> someone should tell their compiler that *you only have to check once*, not every time they retrieve a stat :P
[21:07:18] <fuzzie> well bg1 just breaks :)
[21:07:43] <Avenger> this is what i hacked around with GetSafeStat :)
[21:08:18] <fuzzie> sure, it is great
[21:08:36] <fuzzie> well ok, i guess the disasm agrees with what i want to do
[21:08:44] <fuzzie> i still don't understand how the triggers work though, stupid vtables
[21:09:41] <CIA-48> GemRB: 03avenger_teambg * r9696fc0de1e6 10gemrb/gemrb/core/ (Map.cpp Scriptable/Actor.h): implemented GA_NO_LOS
[21:09:46] <Avenger> ok, this is probably not the best solution, i'm sure once you see the big picture and take the efforts you can refactor all this code
[21:10:21] <Avenger> anyway, from now on GetAllActorsInRadius will need GA_NO_LOS to bypass walls
[21:10:44] <Avenger> you can use this for the hide stuff, i think
[21:11:58] <fuzzie> well it is probably easier to check the EA while looping
[21:12:12] <fuzzie> but yes
[21:13:20] <Avenger> it worths refactoring into a list :) or having a function that only counts the actors but doesn't provide the list
[21:13:34] <fuzzie> sheesh, CanSeeInvis is a virtual function? :)
[21:14:04] <Avenger> yes, scriptables 'see' things :)
[21:14:45] <Avenger> there are other virtual functions that don't make much sense
[21:15:13] <Avenger> one of the weirdest things is the terrain table stuff, that gets passed around a lot
[21:15:39] <Avenger> that's the same as the bits we store in pathfind.2da :)
[21:15:51] <Avenger> at least, similar function
[21:16:00] <Avenger> but they keep copies of it all around
[21:16:03] <Avenger> for no apparent reason
[21:19:29] <Avenger> ok, what if i commit the projectile code :)
[21:20:06] <lynxlynxlynx> hey
[21:20:09] <Avenger> it may break something, but i think regular ones won't be affected
[21:20:24] <Avenger> at least, i get feedback :>
[21:20:35] <lynxlynxlynx> are you sure the GetAllActorsInRadius change is safe now? it's opt-out :(
[21:20:53] <Avenger> well, the default is to not bypass walls
[21:20:59] <Avenger> you dont want that
[21:21:09] <Avenger> like hiding when the enemy is behind a wall
[21:21:28] <Avenger> you wouldn't be able to do that (if fuzzie adds that check)
[21:21:40] <Avenger> it is safe to assume walls almost always count
[21:21:49] <fuzzie> i think it does cause problems maybe
[21:21:49] <Avenger> they don't count only for a special projectile type
[21:21:55] <Avenger> that has the bypass walls
[21:22:06] <Avenger> what problems?
[21:22:20] <Avenger> what code uses GetAllActorsInRadius, now?
[21:22:26] <Avenger> some iwd opcodes i know of
[21:22:27] <fuzzie> the tracking code, and the searchmap code
[21:22:35] <Avenger> oh tracking
[21:22:40] <Avenger> tracking should bypass walls
[21:22:46] <Avenger> good call
[21:23:03] <fuzzie> and i'm not sure i trust IsVisible enough to not corrupt the searchmap :-P
[21:23:03] <lynxlynxlynx> 3 users
[21:23:23] <Avenger> IsVisible changes the searchmap???
[21:23:27] <Avenger> lynx: iwdopcodes?
[21:23:33] <lynxlynxlynx> none
[21:24:13] <Avenger> ahh it calls: fxqueue->AffectAllInRange(map, pos, 0, 0,fx->Parameter1, fx->Parameter2&AE_TARGETEXCL?target:NULL);
[21:24:25] <Avenger> so maybe fxqueue has it :)
[21:24:27] <lynxlynxlynx> the searchmap one sounds the most dangerous
[21:24:59] <Avenger> meh, the fxqueue re-implements this
[21:25:20] <Avenger> it has the isvisible part too :)
[21:25:27] <Avenger> so refactoring time !!!
[21:25:49] <fuzzie> haha.
[21:25:51] <Avenger> what's about searchmap
[21:26:13] <fuzzie> the searchmap code uses GetAllActorsInRadius to get all actors which need their searchmap updating.
[21:26:29] <fuzzie> this is Map::ClearSearchMapFor.
[21:26:30] <Avenger> hmm
[21:26:40] <Avenger> with what radius?
[21:26:50] <fuzzie> MAX_CIRCLE_SIZE*2*16 because it is crazy
[21:27:09] <fuzzie> but i would not change it unless you are dedicated, there are all kinds of corner cases like when circles change size
[21:27:13] <Avenger> that's whole code is weird
[21:27:33] <fuzzie> it works, don't break it :P
[21:27:53] <Avenger> anyway, the searchmap won't be affected
[21:28:06] <Avenger> you cannot walk over walls
[21:28:07] <Avenger> can you
[21:28:13] <fuzzie> no, but you can walk through very small gaps
[21:28:17] <Avenger> if you can, you don't affect the searchmap
[21:28:18] <fuzzie> just like the original engine
[21:28:33] <Avenger> ah i see, and then you can somehow accidentally block the gap?
[21:28:36] <Avenger> well, maybe
[21:28:56] <Avenger> you can add the GA_NO_LOS thing then
[21:29:00] <fuzzie> well, i just think it best for someone to add this flag for now, just to be safe, can add a TODO to check it later
[21:29:00] <Avenger> not a big deal
[21:29:10] <fuzzie> but i will do it when i merge this hide thing, if no-one beats me to it
[21:29:28] <fuzzie> and that will be a bit because, i am trying to work out triggers
[21:29:45] <Avenger> ok i add it
[21:29:51] <Avenger> tracking is where?
[21:30:02] <Avenger> in the opcode?
[21:31:25] <fuzzie> in gamecontrol i think
[21:32:18] <Avenger> ok
[21:32:40] <CIA-48> GemRB: 03avenger_teambg * r5c1ee712d40c 10gemrb/gemrb/core/ (GUI/GameControl.cpp Map.cpp): no line of sight check for 2 of the 3 cases (TODO: merge in fxqueue's AffectAllInRange)
[21:32:44] <fuzzie> lynxlynxlynx: good thing you mentioned it :)
[21:32:52] <Avenger> hey, we commit more than 3 times a day, for 7 years. on average
[21:33:16] <Avenger> i didn't expect this to come :) yay
[21:34:44] <lynxlynxlynx> it will get higher, especially now that we shout almost each time you commit multiple things as one :P
[21:34:45] <pupnik> nice
[21:35:26] <Avenger> meh, nowadays every little bit i add comes in 3 parts
[21:35:53] <Avenger> i didn't even add the projectile code :)
[21:36:21] <Avenger> gotta add at least the wall bit, that isn't difficult
[21:36:31] <Avenger> i just need to remember the cherry pick option of git
[21:36:37] <lynxlynxlynx> it's better, i admit
[21:36:58] <Avenger> git add -p ?
[21:37:18] <lynxlynxlynx> yes
[21:37:27] <lynxlynxlynx> with 's' when needed
[21:37:46] <lynxlynxlynx> let me check something
[21:40:28] <lynxlynxlynx> only 8k lines that start with space left
[21:41:02] <CIA-48> GemRB: 03avenger_teambg * r603c4565fa44 10gemrb/gemrb/core/Projectile.cpp: most projectiles don't bypass walls
[21:41:07] <Avenger> 8k???
[21:41:08] <lynxlynxlynx> and a lot of those must be the license headers
[21:44:50] <CIA-48> GemRB: 03avenger_teambg * re5c5908c5703 10gemrb/gemrb/ (core/Projectile.h plugins/PROImporter/PROImporter.cpp): read the tile fields
[21:46:52] <Avenger> i try to commit the 'harmless' changes first, so a bysect will be more meaningful
[21:47:00] <fuzzie> much appreciated
[21:52:30] <CIA-48> GemRB: 03avenger_teambg * rab4a3746cf3c 10gemrb/gemrb/core/Projectile.cpp: get flags once
[21:54:33] <lynxlynxlynx> indeed
[21:56:52] <Avenger> meh
[21:58:03] <CIA-48> GemRB: 03avenger_teambg * r8f7d15434f63 10gemrb/gemrb/core/ (Projectile.cpp Projectile.h): spawnfragment (accidentally left out in previous commit)
[21:58:16] <Avenger> the previous one won't compile, hopefully with this, it does
[21:59:06] <Avenger> haha, it wont
[21:59:13] <Avenger> well, i already lost track :)
[22:00:14] <Avenger> sowwy, i will need to practice this
[22:01:32] <CIA-48> GemRB: 03avenger_teambg * rc7153d8f9dc3 10gemrb/gemrb/core/ (Projectile.cpp Projectile.h): all the rest :(
[22:05:27] <lynxlynxlynx> head compiles :)
[22:35:26] <-- edheldil_ has left IRC (Ping timeout: 255 seconds)
[22:48:51] <CIA-48> GemRB: 03lynxlupodian * r2c488e4bb632 10gemrb/gemrb/ (26 files in 14 dirs):
[22:48:51] <CIA-48> GemRB: removed much of the stray start-of-line spaces in favour of the prevalent tabs
[22:48:51] <CIA-48> GemRB: nothing to see here, use git log -b
[22:53:40] <Avenger> nice
[22:53:54] <Avenger> you didn't mess with CharAnimations ?
[22:54:00] <Avenger> there is a nice comment with spaces in it
[22:54:40] <lynxlynxlynx> i left comments and the files that are wholly spacey alone (eg. the ffmpeg stuff)
[22:55:05] <lynxlynxlynx> more grepping around, there's almost 1k of cases where tabs and spaces are right next to each other
[22:56:26] <Avenger> also removed line ending whitespaces?
[22:57:53] <lynxlynxlynx> nope
[22:58:07] <lynxlynxlynx> that one is easy though
[22:59:17] <Avenger> bye!
[22:59:19] <-- Avenger has left IRC (Quit: bye!)
[23:06:46] <lynxlynxlynx> this is safe too
[23:07:27] <lynxlynxlynx> i do wonder how much of a merging disruption it would be for you two, tomprince and fuzzie, branch-a-loters
[23:07:48] <fuzzie> well
[23:07:54] <lynxlynxlynx> 1047 affected lines
[23:07:56] <fuzzie> if there's enough lines of context left..
[23:08:30] <fuzzie> then we can always semi-manually fix up
[23:10:36] <lynxlynxlynx> semi manually? resolving silly conflicts is a nightmare
[23:11:17] <lynxlynxlynx> well, it's all spread around, so the impact isn't so big
[23:11:56] <lynxlynxlynx> gemrb/plugins/BIKPlayer/GetBitContext.h is the only odd one out, I guess it had crlf
[23:15:22] <lynxlynxlynx> ugh, time
[23:17:42] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[23:30:32] --> Bo_Thomsen has joined #GemRb
[23:56:52] <-- |Cable| has left IRC (Ping timeout: 241 seconds)
[23:57:22] --> |Cable| has joined #GemRb