|Anonymous | Login | Signup for a new account||2018-10-18 15:35 PDT|
|Main | My View | View Issues | Change Log | Roadmap|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000075||Core Inform||Rules and rulebooks||public||2010-06-20 00:14||2010-07-01 23:07|
|Platform||PPC||OS||Mac OS X||OS Version||10.4|
|Target Version||Fixed in Version||6E72|
|Summary||0000075: "Last scene changing rule" isn't.|
|Description||The scene changing rulebook by default has only one rule, the "scene change machinery" rule. In order to change a variable while that rule runs (and then change it back) a pair of "First scene changing" and "Last scene changing" rules would be used. But the Last isn't being listed last.|
|Minimal Source Text To Reproduce|
spot is room. Last scene changing rule: say "Check the scene index to ensure I am listed AFTER the 'scene change machinery' rule."
|Additional Information||(The need for said variable comes about when measuring turns or other time information, and, predicating scene changes on those measurements. Said variable exists to correct an annoying off-by-one error which happens merely due to the fact that scene-changing happens twice per turn and/or happens exceptionally late in the turn, after the chronological records are updated.|
For example, if scheduling "the egg-timer clucks in 4 turns", and ending the Waiting For Dinner Scene on that event, the scene will actually end one turn *before* the egg-timer goes off. That's the off-by-one error the First and Last rules are correcting for.
Incidentally, the off-by-one isn't an Inform bug. It's just how things play out.)
|Tags||No tags attached.|
|Effect||(serious/mild) Game compiles but misbehaves|
|This affects other standard rulebooks as well (action-processing rules, reaching inside rules, activities, etc.): the "last" rules defined in the Standard Rules come after "last" rules defined by the game. Also, "first" rules defined in the Standard Rules come before "first" rules defined by the game. It's as if the Standard Rules are being included at the end of the source code, even though 25.2 says they're included at the beginning.|
It's true that the Standard Rules get priority here, yes.
In theory you can avoid this by writing:
This is the ultimate scene rule: say "Check the scene index to ensure I am listed AFTER the 'scene change machinery' rule."
The ultimate scene rule is listed after the scene change machinery rule in the scene changing rulebook.
...In practice while that does file the rule correctly, it never takes effect, because the scene change machinery rule always succeeds (thus ending the rulebook). There didn't seem to be any good reason for that to be true, so I've changed it: the scene change machinery rule now always ends with no result, allowing its rulebook to continue. But that's the only change I've made.
|I suspected that the Standard Rules might be given priority intentionally, but this behavior should probably be documented. Currently, 18.6 just says "The word 'first' or 'last', if present, is significant: it tells Inform exactly where the new rule should be placed into its rulebook", and the rules/scenes index says the rules were put in order of listing because they were both marked "last".|
|2010-06-20 00:14||Ron Newcomb||New Issue|
|2010-06-20 01:09||jmcgrew||Note Added: 0000065|
|2010-06-20 01:09||jmcgrew||Severity||mild => serious|
|2010-06-20 01:09||jmcgrew||Status||new => confirmed|
|2010-06-20 01:09||jmcgrew||Category||Scenes => Rules and rulebooks|
|2010-06-20 05:21||graham||Note Added: 0000074|
|2010-06-20 05:21||graham||Status||confirmed => resolved|
|2010-06-20 05:21||graham||Resolution||open => fixed|
|2010-06-20 05:21||graham||Assigned To||=> graham|
|2010-06-20 10:32||jmcgrew||Relationship added||related to 0000077|
|2010-06-20 10:44||jmcgrew||Note Added: 0000093|
|2010-06-20 11:10||jmcgrew||Issue Monitored: jmcgrew|
|2010-06-30 18:07||jmcgrew||Fixed in Version||=> 6E72|
|2010-07-01 23:07||jmcgrew||Status||resolved => closed|
|Copyright © 2000 - 2010 MantisBT Group|