Simplify logic around message wait cancellation

This commit is contained in:
kichikuou
2019-07-21 10:18:09 +09:00
parent ee547fc1b7
commit 447632a4c3
4 changed files with 13 additions and 16 deletions
+2 -2
View File
@@ -108,8 +108,8 @@ void commandZW() {
int sw = getCaliValue();
if (sw < 256) {
nact->messagewait_enable_save =
nact->messagewait_enable = ((sw & 0xff) <= 1) ? FALSE : TRUE;
nact->messagewait_enable = ((sw & 0xff) <= 1) ? FALSE : TRUE;
nact->messagewait_cancelled = FALSE;
} else {
nact->messagewait_time = sw & 0xff;
nact->messagewait_cancel = (sw & 0x200) ? TRUE : FALSE;
+8 -10
View File
@@ -110,17 +110,15 @@ void sys_hit_any_key() {
msg_hitAnyKey();
/* message wait flag restore */
if (nact->messagewait_enable_save) {
/* if message wait was cancelled, consume that input */
if (!nact->messagewait_enable) {
while(0 == (key & hak_ignore_mask)) {
key = sys_keywait(INT_MAX, TRUE);
}
while(key & hak_releasewait_mask) {
key = sys_keywait(100, TRUE);
}
if (nact->messagewait_cancelled) {
nact->messagewait_cancelled = FALSE;
/* consume the input that cancelled message wait */
while(0 == (key & hak_ignore_mask)) {
key = sys_keywait(INT_MAX, TRUE);
}
while(key & hak_releasewait_mask) {
key = sys_keywait(100, TRUE);
}
nact->messagewait_enable = nact->messagewait_enable_save ;
}
while(0 == (key & hak_ignore_mask)) {
+2 -3
View File
@@ -164,15 +164,14 @@ void msg_putMessage(char *m) {
w = ags_drawString(msgcur.x, msgcur.y, m, msg.MsgFontColor);
if (nact->messagewait_enable) {
if (nact->messagewait_enable && !nact->messagewait_cancelled) {
int x;
for (x = 0; x < w + adj.width; x+=16) {
ags_updateArea(msgcur.x + adj.x + x, msgcur.y + adj.y,
16, msg.MsgFontSize + adj.height);
if (nact->messagewait_cancel) {
if (sys_getInputInfo()) {
nact->messagewait_enable_save = nact->messagewait_enable ;
nact->messagewait_enable = FALSE;
nact->messagewait_cancelled = TRUE;
ags_updateArea(msgcur.x + adj.x, msgcur.y + adj.y,
w + adj.width, msg.MsgFontSize + adj.height);
break;
+1 -1
View File
@@ -97,7 +97,7 @@ typedef struct {
/* message wait */
boolean messagewait_enable;
boolean messagewait_enable_save;
boolean messagewait_cancelled;
int messagewait_time;
boolean messagewait_cancel;