mirror of
https://github.com/ganelson/inform.git
synced 2024-07-16 22:14:23 +03:00
141 lines
3.3 KiB
Plaintext
141 lines
3.3 KiB
Plaintext
B/oowt: OutOfWorld Template.
|
|
|
|
@Purpose: To implement some of the out of world actions.
|
|
|
|
@-------------------------------------------------------------------------------
|
|
|
|
@p Perform Undo.
|
|
|
|
@c
|
|
[ Perform_Undo;
|
|
#ifdef PREVENT_UNDO; IMMEDIATELY_UNDO_RM('A'); new_line; return; #endif;
|
|
if (IterationsOfTurnSequence == 0) { IMMEDIATELY_UNDO_RM('B'); new_line; return; }
|
|
if (undo_flag == 0) { IMMEDIATELY_UNDO_RM('C'); new_line; return; }
|
|
if (undo_flag == 1) { IMMEDIATELY_UNDO_RM('D'); new_line; return; }
|
|
if (VM_Undo() == 0) { IMMEDIATELY_UNDO_RM('A'); new_line; }
|
|
];
|
|
|
|
@p Announce Score Rule.
|
|
|
|
@c
|
|
[ ANNOUNCE_SCORE_R;
|
|
if (actor ~= player) rfalse;
|
|
#Iftrue USE_SCORING == 0; ANNOUNCE_SCORE_RM('C'); new_line;
|
|
#ifnot; ANNOUNCE_SCORE_RM('A'); PrintRank();
|
|
#endif;
|
|
];
|
|
|
|
@p Switch Score Notification On Rule.
|
|
|
|
@c
|
|
[ SWITCH_SCORE_NOTIFY_ON_R;
|
|
if (actor ~= player) rfalse;
|
|
#Iftrue USE_SCORING == 0; ANNOUNCE_SCORE_R();
|
|
#ifnot; notify_mode=1; #endif;
|
|
];
|
|
|
|
@p Standard Report Switching Score Notification On Rule.
|
|
|
|
@c
|
|
[ REP_SWITCH_NOTIFY_ON_R;
|
|
if (actor ~= player) rfalse;
|
|
#Iftrue USE_SCORING ~= 0; REP_SWITCH_NOTIFY_ON_RM('A'); new_line; #endif;
|
|
];
|
|
|
|
@p Switch Score Notification Off Rule.
|
|
|
|
@c
|
|
[ SWITCH_SCORE_NOTIFY_OFF_R;
|
|
if (actor ~= player) rfalse;
|
|
#Iftrue USE_SCORING == 0; ANNOUNCE_SCORE_R();
|
|
#ifnot; notify_mode=0; #endif;
|
|
];
|
|
|
|
@p Standard Report Switching Score Notification Off Rule.
|
|
|
|
@c
|
|
[ REP_SWITCH_NOTIFY_OFF_R;
|
|
if (actor ~= player) rfalse;
|
|
#Iftrue USE_SCORING ~= 0; REP_SWITCH_NOTIFY_OFF_RM('A'); new_line; #endif;
|
|
];
|
|
|
|
@p Prefer Sometimes Abbreviated Room Descriptions Rule.
|
|
|
|
@c
|
|
[ PREFER_SOMETIMES_ABBREVIATED_R;
|
|
if (actor ~= player) rfalse;
|
|
lookmode=1;
|
|
]; ! Brief
|
|
|
|
@p Standard Report Prefer Sometimes Abbreviated Room Descriptions Rule.
|
|
|
|
@c
|
|
[ REP_PREFER_SOMETIMES_ABBR_R;
|
|
if (actor ~= player) rfalse;
|
|
print (TEXT_TY_Say) Story; REP_PREFER_SOMETIMES_ABBR_RM('A'); new_line;
|
|
]; ! Brief
|
|
|
|
@p Prefer Unabbreviated Room Descriptions Rule.
|
|
|
|
@c
|
|
[ PREFER_UNABBREVIATED_R;
|
|
if (actor ~= player) rfalse;
|
|
lookmode=2;
|
|
]; ! Verbose
|
|
|
|
@p Standard Report Prefer Unabbreviated Room Descriptions Rule.
|
|
|
|
@c
|
|
[ REP_PREFER_UNABBREVIATED_R;
|
|
if (actor ~= player) rfalse;
|
|
print (TEXT_TY_Say) Story; REP_PREFER_UNABBREVIATED_RM('A'); new_line;
|
|
]; ! Verbose
|
|
|
|
@p Prefer Abbreviated Room Descriptions Rule.
|
|
|
|
@c
|
|
[ PREFER_ABBREVIATED_R;
|
|
if (actor ~= player) rfalse;
|
|
lookmode=3;
|
|
]; ! Superbrief
|
|
|
|
@p Standard Report Prefer Abbreviated Room Descriptions Rule.
|
|
|
|
@c
|
|
[ REP_PREFER_ABBREVIATED_R;
|
|
if (actor ~= player) rfalse;
|
|
print (TEXT_TY_Say) Story; REP_PREFER_ABBREVIATED_RM('A'); new_line;
|
|
]; ! Superbrief
|
|
|
|
@p Announce Pronoun Meanings Rule.
|
|
|
|
@c
|
|
[ ANNOUNCE_PRONOUN_MEANINGS_R x y c d;
|
|
if (actor ~= player) rfalse;
|
|
ANNOUNCE_PRONOUN_MEANINGS_RM('A');
|
|
|
|
c = (LanguagePronouns-->0)/3;
|
|
if (player ~= selfobj) c++;
|
|
|
|
if (c==0) { ANNOUNCE_PRONOUN_MEANINGS_RM('D'); rtrue; }
|
|
|
|
for (x = 1, d = 0 : x <= LanguagePronouns-->0: x = x+3) {
|
|
print "~", (address) LanguagePronouns-->x, "~ ";
|
|
y = LanguagePronouns-->(x+2);
|
|
if (y == NULL) ANNOUNCE_PRONOUN_MEANINGS_RM('C');
|
|
else { ANNOUNCE_PRONOUN_MEANINGS_RM('B'); print (the) y; }
|
|
d++;
|
|
if (d < c-1) print ", ";
|
|
if (d == c-1) {
|
|
#ifdef SERIAL_COMMA; print ","; #endif;
|
|
LIST_WRITER_INTERNAL_RM('C');
|
|
}
|
|
}
|
|
if (player ~= selfobj) {
|
|
print "~", (address) ME1__WD, "~ "; ANNOUNCE_PRONOUN_MEANINGS_RM('B');
|
|
c = player; player = selfobj;
|
|
print (the) c; player = c;
|
|
}
|
|
".";
|
|
];
|