From: SourceForge.net <no...@so...> - 2009-03-28 21:03:02
|
Feature Requests item #863757, was opened at 2003-12-20 20:09 Message generated for change (Settings changed) made by thpr You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=863757&group_id=25576 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Campaign Support Group: Unscheduled Status: Open Resolution: None >Priority: 2 Private: No Submitted By: Jenni Merrifield (strawberryjamm) Assigned to: Nobody/Anonymous (nobody) Summary: Selectively load PCC files, LST files and their contents Initial Comment: [FREQ] The following actions must all be possible for this FREQ to be completely addressed: 1) Loading Items from a LST file: 1a) A user must be able to selectively load a sub-set of items normally loaded by a particular LST file. 1b) A user must be able to choose when additional items may not be subsequently added to the set of items loaded from a particular LST file when that LST file is implicitly loaded by another PCC file 1c) A user must be able to subsequently add to the set of items loaded from a particular LST file by explicitly loading them later in the same PCC file. 2) Loading LST files from a PCC file: 2a) A user must be able to selectively load a sub-set of the LST files normally loaded by a particular PCC file 2b) A user must be able to choose when additional LST files may not be subsequently added to the set of LST files loaded from a particular PCC file when that PCC file is implicitly loaded by another PCC file 2c) A user must be able to subsequently add to the set of LST files loaded from a particular PCC file by explicitly loading it later in the same PCC file. 3) Loading PCC files from a PCC file: 3a) A user must be able to selectively load a sub-set of the PCC files normally loaded by another PCC file 3b) A user must be able to choose when additional PCC files may not be subsequently added to the set of PCC files loaded from a particular PCC file when that PCC file is implicitly loaded by another PCC file 3c) A user must be able to subsequently add to the set of PCC files loaded from a particular PCC file by explicitly loading it later in the same PCC file. [NOTE] This FREQ has actually been raised TWICE before - see FREQ #480990 (opened Nov 2001) and FREQ #506959 (opened Jan 2002) - but it has never been properly addressed before being closed. I'm attempting to revive it because I believe this functionality will improve the user experience for DM's who wish to create custom campaigns that require significant portions, but not all aspects, that would normally be loaded by a pre-existing PCC campaign file. [OBSERVATIONS] * The INCLUDE and EXCLUDE tags on LST tags (e.g., in "LST:file.lst|(EXCLUDE:Item1|Item2)" address point 1a * The LSTEXCLUDE tag almost addresses point 1b, 2a and 2b but it breaks points 1c and 2c. This is because it completely blocks LST files from ever being loaded beyond that point, meaning that none of the items in the LST files can be explitly loaded later once they've been excluded. * LSTEXCLUDE also fails to address point 1b properly because there appears to be implementational problems when it is used after a LST file has been earlier loaded with the INCLUDE/EXCLUDE tags (see this thread in the Code Monkey Publishing forums: http://www.codemonkeypublishing.com/modules.php? op=modload&name=PNphpBB2&file=viewtopic&p=32546 * There are no tags that address points 3a, 3b or 3c at all [RECOMMENDATIONS] The following tags and behaviours, if implemented, should address this FREQ completely: * Allow INCLUDE/EXCLUDE to be applied to PCC tags for the purpose of selecting exactly which LST files and PCC files should be loaded without also blocking them from ever being loaded like LSTEXCLUDE does [examples] PCC:campaign.pcc|(EXCLUDE:file.lst|othercampaign.pcc) PCC:campaign.pcc| (INCLUDE:file1.lst|file2.lst|othercampaign.pcc) * Similar to what happens when applied to items in a LST file, the above should selectively load only INCLUDED (or all but the EXCLUDED) LST files and PCC files loaded by that PCC file. * EXCLUDE should be intelligent enough to ignore a LST file or PCC file that has been EXCLUDED from a loaded PCC file even if it happens to be referenced by another PCC file inside that same PCC file. * INCLUDE should be intelligent enough to allow recursive INCLUDE/EXCLUDE tags on the LST and/or PCC files it is loading. [examples] PCC:campaign.pcc|(INCLUDE:file.lst|(EXCLUDE:some item)) PCC:campaign.pcc|(INCLUDE:othercampaign.pcc| (EXCLUDE:file1.lst) * INCLUDE should be intelligent enough to respect INCLUDE/EXCLUDE tags on a LST or PCC file that is being loaded from within a PCC file. [example] @ In campaign.pcc: CLASS:classfile.lst|(INCLUDE:class1|class2) RACE:racefile.lst|(EXCLUDE:race1|race2) @ In mycampaign.pcc: PCC:campaign.pcc|(INCLUDE:classfile.lst|racefile.lst) When mycampaign.pcc loads classfile.lst and racefile.lst from the reference to campaign.pcc, only class1 and class2 and all races except race1 and race2 should be loaded. * Modify LSTEXCLUDE so that it only blocks implicit references to a LST. That is, only block the LST file from being loaded from within a PCC that is loaded by the current file, but allow all explicit references to that same LST file inside the same PCC file to load. [example] @ In campaign.pcc: CLASS:classfile.lst RACE:racefile.lst @ In mycampaign.pcc: LSTEXCLUDE:classfile.lst PCC:campaign.pcc CLASS:classfile.lst|(INCLUDE:class1|class2) When mycampaign.pcc loads, classfile.lst should not be loaded when campaign.pcc file is loaded, but racefile.lst should still be loaded. However, the explicit reference to classfile.lst inside mycampaign.pcc should allow class1 and class2 to be successfully loaded. [example] @ In campaign1.pcc RACE:racefile.lst @ In campaign2.pcc RACE:racefile.lst|(EXCLUDE:race1) @ In mycampaign.pcc LSTEXCLUDE:racefile.lst PCC:campaign1.pcc PCC:campaign2.pcc|(INCLUDE:racefile.lst) When mycampaign.pcc loads, racefile.lst should not be loaded when campaign1.pcc file is loaded. However, the explicit reference to racefile.lst, via an INCLUDE on campaign2.pcc, should allow the racefile.lst reference from campaign2 to successfully load all races except race1. * Add a PCCEXCLUDE tag with similar properties to LSTEXCLUDE (as defined above). That is, it should block implicit references to a PCC but allow explicit references to that same PCC to load. ---------------------------------------------------------------------- Comment By: Martijn Verburg (karianna) Date: 2006-08-14 09:24 Message: Logged In: YES user_id=252169 Architecture ---------------------------------------------------------------------- Comment By: Jenni Merrifield (strawberryjamm) Date: 2005-09-16 15:13 Message: Logged In: YES user_id=931361 After some additional thought I'd like to add that even if the whole FREQ can't be implemented it would be good if just one or two pieces of the whole could be done. If you do this, please create a new FREQ for the separate work items (even those that you're not going to do) so that things that won't get done this time around don't just slip through the cracks. Not knowing very much about the code design I'd divide this FREQ up into the following: 1) Overload INCLUDE/EXCLUDE tags to explicitly include or exclude PCC or LST files from a loaded PCC. INCLUDE should be intelligent enough to allow nested INCLUDE/EXCLUDE tags on the LST and/or PCC file it is attached to. [example] PCC:campaign.pcc|(EXCLUDE:file.lst|other.pcc) PCC:campaign.pcc|(INCLUDE:file1.lst|file2.lst|other.pcc) PCC:campaign.pcc|(INCLUDE:file.lst|(EXCLUDE:item)) PCC:campaign.pcc|(INCLUDE:other.pcc|(EXCLUDE:file.lst) 2) Fix LSTEXCLUDE so that it doesn't behave badly when items are loaded from a LST file before the LSTEXCLUDE for that same file is encountered 3) LSTEXCLUDE allows explicit references from the same PCC file as the LSTEXCLUDE are allowed to load [example] @ In campaign.pcc: CLASS:classfile.lst RACE:racefile.lst @ In other.pcc: LSTEXCLUDE:classfile.lst PCC:campaign.pcc CLASS:classfile.lst|(INCLUDE:class1|class2) When other.pcc loads, classfile.lst should not be loaded when campaign.pcc file is loaded, but racefile.lst should still be loaded. However, the explicit reference to classfile.lst inside other.pcc should allow class1 and class2 to be successfully loaded. 4) Add a PCCEXCLUDE tag which works the same way as LSTEXCLUDE but with PCC files 5) INCLUDE tag respects implicit, recursive INCLUDE/EXCLUDE tags on a LST or PCC file. [example] @ In other.pcc: PCC:campaign.pcc|(INCLUDE:classfile.lst|racefile.lst) @ In campaign.pcc: CLASS:classfile.lst|(INCLUDE:class1|class2) RACE:racefile.lst|(EXCLUDE:race1|race2) When other.pcc loads classfile.lst and racefile.lst from the reference to campaign.pcc, only class1 and class2 and all races except race1 and race2 should be loaded. ---------------------------------------------------------------------- Comment By: Jenni Merrifield (strawberryjamm) Date: 2005-09-16 13:45 Message: Logged In: YES user_id=931361 While an editor that allowed you to select objects from a lst file to create a new lst file might be a useful addition to the application, it wouldn't really fulfill the goals of this FREQ. One key issue is that the user doesn't want to re-create the majority of a LST or PCC file, he or she wants to re-use the contents of a LST or PCC file with some tweaking. If the original PCC or LST file is updated in the future, the tweaked reference in the user's PCC will still load the correct objects, even if a filename changed, a file was removed or a new file was added. The other key issue is one of explicit vs implicit inclusion or exclusion of objects or files. Right now, if a user only wants to load a subset of items from a file - say somestuff.lst - and also wants to include the contents of a PCC file - say foobar.pcc - and foobar.pcc includes somestuff.lst, the user can't use LSTEXCLUDE to stop foobar.pcc from loading somestuff.lst because it blocks ALL content from somestuff.lst, even if it is explicitly added via the user's own PCC file. Even trying to load the bits the user wants from somestuff.lst and then using LSTEXCLUDE to stop it from being loaded with foobar.pcc also doesn't work. The only solution is for the user to create his or her own PCC file that is essentially identical to foobar.pcc except that somestuff.lst is not included. But now, the first time that foobar.pcc is updated with the addition or removal of files, the user's PCC file is no longer accurate. ---------------------------------------------------------------------- Comment By: Devon Jones (soulcatcher) Date: 2005-09-14 11:47 Message: Logged In: YES user_id=107647 Eek. This is not a simple problem. we can try to cram it in to 5.9, but this is a seriously hard problem. Any implementation that I can think of off hand for this would be pretty fragile, but I'll give it some more thought. How would you feel about an editor that allowed you to select objects form a lst file object by object to make a new, campaign lst file? Devon ---------------------------------------------------------------------- Comment By: Martijn Verburg (karianna) Date: 2005-09-14 11:34 Message: Logged In: YES user_id=252169 Checking with Devon.... - K ---------------------------------------------------------------------- Comment By: Jenni Merrifield (strawberryjamm) Date: 2005-07-25 14:51 Message: Logged In: YES user_id=931361 This FREQ hasn't been touched by anyone since February 2004 even though it is still OPEN. What are the chances at least some of it might be do-able in the 5.10 / 6.0 timeframe? ---------------------------------------------------------------------- Comment By: Martijn Verburg (karianna) Date: 2004-02-09 17:28 Message: Logged In: YES user_id=252169 Sam, could you possibly comment on this (perhaps with assistance from Jayme?) K TM SB ---------------------------------------------------------------------- Comment By: Martijn Verburg (karianna) Date: 2004-02-02 23:15 Message: Logged In: YES user_id=252169 Please assign these to me if you need me to do something, I completely missed this one :-). I'll see if I can whip up that coder. ---------------------------------------------------------------------- Comment By: Eric Beaudoin (ericbeaudoin) Date: 2003-12-26 02:20 Message: Logged In: YES user_id=324612 Well, in order to do all this, the source loader would have to be entierly redisigned (at least for the .PCC part). The INCLUDE/EXCLUDE functions for .lst could certainly be improved but I don't know the price for such an improvement. K, whose the code monkey that has been working on refactoring the source loader? I would appreciate if he could have a look at this and comment. He might even prove me wrong on my need to redesign statement. ---------------------------------------------------------------------- Comment By: Martijn Verburg (karianna) Date: 2003-12-21 21:53 Message: Logged In: YES user_id=252169 Eric, you'd better take a look @ this ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=863757&group_id=25576 |