Replies: 4 comments 2 replies
-
A follow-up note: I found a function that seems oddly unused in /std/room/roomdesc.c:
I searched the entire lib tree with: |
Beta Was this translation helpful? Give feedback.
-
Sounds like there is some general clean up needed in there :-) Also, do you think rooms that would need not to be automatically "fancied up", could set a function like int show_fancy_long() { return 0; } to avoid the fanciness? |
Beta Was this translation helpful? Give feedback.
-
Yes, the solution ends up being quite easy. Toward the top of the room, I define:
I suspect this is why that show_fancy_long() stub never got fleshed out and probably can be removed from /std/room/roomdesc.c since it is likely cruft. |
Beta Was this translation helpful? Give feedback.
-
Discussion resolved. No actual enhancement required. Solution is to overload the fancy_long function. |
Beta Was this translation helpful? Give feedback.
-
Summary: The function fancy_long() in /std/base_room.c parses all long() text without exception causing difficulty with more granular formatting of text.
Specifics: When working with the academy files, one challenge is to eliminate the
@FOO..FOO
text construct. To accomplish this, I discovered I could not simply add a single linefeed without it being doubled. So I traced the command stack beginning with the look verb to isolate where the linefeed doubling was being applied (fancy_long in base_room).I have placed three rooms in /open that demonstrate several look/long() processing methods. The first two, while they inherit my new_base_room they do not set_no_double_spaced_long(1). The third file does.
@FOO..FOO
.@FOO..FOO
removed, quotes added, and a single space at EOLs.While I have fixed this for my needs, I feel it appropriate to raise the discussion that seems to have an origin in feeding all long() descriptions through this fancy_long() method in an attempt to standardize the presentation of text and paragraphs.
The private variable no_double_spaced_long and set_ query_ methods supporting it presume a "no change" requirement to existing room objects and thus should not (itself) be a compat-breaker for legacy or existing code.
If there is an alternate or more desirable approach, for now, let's get it on the table. Should we desire a more in depth approach to the look->long_display command stack, this small change now should not interfere and might even help craft requirements should someone desire.
Before I end my discussion question, I stipulate that my current approach to the academy includes the display of text that might better be put into separate in-room objects and not into the room description. Currently, almost all the 'teaching' material is embedded in the room descriptions. This might not be where we end up, but it is where we are now.
It is my desire to set milestones of achievement that allow for progress instead of getting in a quagmire seeking perfection. I'd like for us to think of the Lima Academy is a living domain that will grow and be more easily maintainable as features are introduced and changes are implemented. That said, this discussion is really about a specific change to basic_room.c.
I'm willing to open another discussion that invites discussion on the subjects of the academy's mission, priorities, and integration with supporting continuous improvement of Lima itself.
Your thoughts, please. :)
Beta Was this translation helpful? Give feedback.
All reactions