mirror of
https://github.com/kichikuou/xsystem35-sdl2.git
synced 2026-09-22 22:48:08 +03:00
Simplify logic around message wait cancellation
This commit is contained in:
+2
-2
@@ -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
@@ -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
@@ -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
@@ -97,7 +97,7 @@ typedef struct {
|
||||
|
||||
/* message wait */
|
||||
boolean messagewait_enable;
|
||||
boolean messagewait_enable_save;
|
||||
boolean messagewait_cancelled;
|
||||
int messagewait_time;
|
||||
boolean messagewait_cancel;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user