A bit more on this:
First, if you want to test this behavior yourself, compile the following in 5Z71 and 6Exx:
[code]After reading a command:
say “Current action (after reading command): [current action].”
Every turn:
say “Current action (end of turn): [current action].”
Test me with “look / jump / wave / look”[/code]
Again, I can’t see any utility in reverting to “waiting” every turn, so I’m guessing that this is not intentional and is the by-product of some other change. Evidently “wait” is the fallthrough result for “the current action,” which is a decide phrase rather than a variable, so I’m guessing that the change in question occurs in this routine. Unfortunately, I’m not familiar enough with the code to really see where this could creep in. Here is the code for the decide phrase from each of the two builds:
5Z71:
[code]To decide which stored action is the current action:
(- STORED_ACTION_TY_Current({-pointer-to-new:STORED_ACTION_TY}) -)
[ STORED_ACTION_TY_Current stora at text_of_command;
if ((stora==0) || (BlkType(stora) ~= STORED_ACTION_TY)) return 0;
BlkValueWrite(stora, 0, action);
BlkValueWrite(stora, 1, noun);
BlkValueWrite(stora, 2, second);
BlkValueWrite(stora, 3, actor);
if (act_requester) BlkValueWrite(stora, 4, true); else BlkValueWrite(stora, 4, false);
at = FindAction(-1);
if ((at) && ((ActionData–>(at+AD_NOUN_KOV) == UNDERSTANDING_TY) ||
(ActionData–>(at+AD_SECOND_KOV) == UNDERSTANDING_TY))) {
text_of_command = BlkValueRead(stora, 5);
if (text_of_command == 0) {
text_of_command = INDEXED_TEXT_TY_Support(CREATE_KOVS);
BlkValueWrite(stora, 5, text_of_command);
}
INDEXED_TEXT_TY_Support(CAST_KOVS, players_command, SNIPPET_TY, text_of_command);
} else BlkValueWrite(stora, 5, 0);
return stora;
];[/code]
6E72:
[code]To decide which stored action is the current action:
(- STORED_ACTION_TY_Current({-pointer-to-new:stored action}) -)
[ STORED_ACTION_TY_Current stora at text_of_command;
if ((stora==0) || (BlkType(stora) ~= STORED_ACTION_TY)) return 0;
BlkValueWrite(stora, 0, action);
at = FindAction(-1);
if (ActionData–>(at+AD_NOUN_KOV) == OBJECT_TY) BlkValueWrite(stora, 1, noun);
else BlkValueWrite(stora, 1, parsed_number);
if (ActionData–>(at+AD_SECOND_KOV) == OBJECT_TY) BlkValueWrite(stora, 2, second);
else BlkValueWrite(stora, 2, parsed_number);
BlkValueWrite(stora, 3, actor);
if (act_requester) BlkValueWrite(stora, 4, true); else BlkValueWrite(stora, 4, false);
if ((at) && ((ActionData–>(at+AD_NOUN_KOV) == UNDERSTANDING_TY) ||
(ActionData–>(at+AD_SECOND_KOV) == UNDERSTANDING_TY))) {
text_of_command = BlkValueRead(stora, 5);
if (text_of_command == 0) {
text_of_command = INDEXED_TEXT_TY_Support(CREATE_KOVS);
BlkValueWrite(stora, 5, text_of_command);
}
INDEXED_TEXT_TY_Support(CAST_KOVS, players_command, SNIPPET_TY, text_of_command);
} else BlkValueWrite(stora, 5, 0);
return stora;
];
[/code]
Does the answer pop out at anyone?
Thanks,
Erik