Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000075Core InformRules and rulebookspublic2010-06-20 00:142010-07-01 23:07
ReporterRon Newcomb 
Assigned Tograham 
PrioritynormalSeverityseriousReproducibilityalways
StatusclosedResolutionfixed 
PlatformPPCOSMac OS XOS Version10.4
Product Version6E59 
Target VersionFixed in Version6E72 
Summary0000075: "Last scene changing rule" isn't.
DescriptionThe 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.)

TagsNo tags attached.
Effect(serious/mild) Game compiles but misbehaves
Attached Files

- Relationships
related to 0000077closed explicit listing a rule after "scene change machinery rule" works but never runs. (with solution?) 

-  Notes
(0000065)
jmcgrew (administrator)
2010-06-20 01:09

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.
(0000074)
graham (administrator)
2010-06-20 05:21

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.
(0000093)
jmcgrew (administrator)
2010-06-20 10:44

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".

- Issue History
Date Modified Username Field Change
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
Powered by Mantis Bugtracker