Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Proposal
-------------------------------------------------------------------------------------------------------- | --------------- | --------
[(IE-0032) Run-time problem reform](proposals/0032-run-time-problem-reform.md) | 26 August 2023 | [PR#32](https://github.com/ganelson/inform-evolution/pull/32)
[(IE-0030) Extension examples and testing](proposals/0030-extension-examples-and-testing.md) | 7 August 2023 | [PR#30](https://github.com/ganelson/inform-evolution/pull/30)
[(IE-0029) Basic IO](proposals/0029-basic-io.md) | 20 July 2023 | [PR#29](https://github.com/ganelson/inform-evolution/pull/29)
[(IE-0028) Extension documentation revisited](proposals/0028-extension-documentation-revisited.md) | 19 July 2023 | [PR#28](https://github.com/ganelson/inform-evolution/pull/28)
[(IE-0017) Apps and extensions](proposals/0017-apps-and-extensions.md) | 15 April 2023 | [PR#17](https://github.com/ganelson/inform-evolution/pull/17)
[(IE-0015) World model enforcement](proposals/0015-world-model-enforcement.md) | 16 January 2023 | [PR#15](https://github.com/ganelson/inform-evolution/pull/15)
Expand Down Expand Up @@ -47,7 +48,6 @@ Proposal

Proposal | Began | Comments
-------------------------------------------------------------------------------------------------------- | --------------- | --------
_(IE-0029) Basic IO_ (still drafting: see pull request) | 19 July 2023 | [PR#29](https://github.com/ganelson/inform-evolution/pull/29)
_(IE-0011) New data structures_ (still drafting: see pull request) | -- | [PR#11](https://github.com/ganelson/inform-evolution/pull/11)
[(IE-0008) Faster memory allocation](proposals/0008-faster-memory-allocation.md) | 13 July 2022 | [PR#8](https://github.com/ganelson/inform-evolution/pull/8)
[(IE-0007) Double-precision real numbers](proposals/0007-double-precision-reals.md) | 3 July 2022 | [PR#7](https://github.com/ganelson/inform-evolution/pull/7)
Expand Down
65 changes: 65 additions & 0 deletions proposals/0029-basic-io.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# (IE-0029) Basic IO

* Proposal: [IE-0029](0029-basic-io.md)
* Discussion PR link: [#29](https://github.com/ganelson/inform-evolution/pull/29)
* Author: Dannii Willis
* Language feature name: None
* Status: Accepted
* Related proposals: [IE-0017](0017-apps-and-extensions.md)

## Summary

Extend the basic IO functionality of Basic Inform, including incorporating
Basic Screen Effects.

## Motivation

As part of [IE-0017](0017-apps-and-extensions.md) the former built-in extensions
have been removed. Most of them will be available in the Public Library, but
[Basic Screen Effects](https://github.com/ganelson/inform/blob/r10.1/inform7/Internal/Extensions/Emily%20Short/Basic%20Screen%20Effects.i7x)
is so close to essential that it was decided it would be better to just incorporate
its contents into Basic Inform. A few extra phrases will also be added.

## Components affected

- [ ] No change to the natural-language syntax.
- [ ] No change to inbuild.
- [ ] No changes to inform7.
- [ ] No change to inter.
- [ ] No change to the Inter specification.
- [x] Minor change to BasicInformKit.
- [x] Minor changes Basic Inform.
- [x] Minor addition to documentation.
- [ ] No change to the GUI apps.

## Impact on existing projects

Projects currently relying on Basic Screen Effects may need to slightly change
some phrases, but where possible the new Basic Inform implementation will be made
compatible.

## Specifics

Basic Screen Effects has the following functionality:

- measuring the screen/game window
- clearing the screen/specific windows
- customising the status line
- key press phrases
- pausing the game activity
- showing boxed quotations
- centering text
- coloured text (Z-Machine only)

These are generally very useful features, and are also quite basic. Incorporating
them into Basic Inform shouldn't be an issue as it is unlikely anyone would want
a very different implementation of these features. We can also now make coloured
text supported in Glulx as well as Z-Machine. However we don't need to incorporate
absolutely all of BSE; in particular having a whole activity for pausing the game
seems like an overcomplication.

While BSE lets you read one keypress event, it has no phrases for reading text.
Neither does Basic Inform at present! Accepting a line of text from the user is
a pretty fundamental operation that is supported by almost every other language.
So it is proposed that we also add phrases to read text and to read and parse a
number from the user.