Browse Source

Make DrawDiabloMsg time based instead of frame based

pull/460/head
Anders Jenbo 6 years ago
parent
commit
def6ee472b
  1. 16
      Source/error.cpp
  2. 2
      Source/error.h

16
Source/error.cpp

@ -3,7 +3,7 @@
DEVILUTION_BEGIN_NAMESPACE DEVILUTION_BEGIN_NAMESPACE
char msgtable[MAX_SEND_STR_LEN]; char msgtable[MAX_SEND_STR_LEN];
char msgdelay; DWORD msgdelay;
char msgflag; char msgflag;
char msgcnt; char msgcnt;
@ -58,17 +58,19 @@ void InitDiabloMsg(char e)
{ {
int i; int i;
if (msgcnt >= sizeof(msgtable))
return;
for (i = 0; i < msgcnt; i++) { for (i = 0; i < msgcnt; i++) {
if (msgtable[i] == e) if (msgtable[i] == e)
return; return;
} }
msgtable[msgcnt] = e; msgtable[msgcnt] = e;
if (msgcnt < (BYTE)sizeof(msgtable)) msgcnt++;
msgcnt++;
msgflag = msgtable[0]; msgflag = msgtable[0];
msgdelay = 70; msgdelay = GetTickCount();
} }
void ClrDiabloMsg() void ClrDiabloMsg()
@ -131,16 +133,16 @@ void DrawDiabloMsg()
sx += fontkern[c] + 1; sx += fontkern[c] + 1;
} }
if (msgdelay > 0) { if (msgdelay > 0 && msgdelay <= GetTickCount() - 3500) {
msgdelay--; msgdelay = 0;
} }
if (msgdelay == 0) { if (msgdelay == 0) {
msgcnt--; msgcnt--;
msgdelay = 70;
if (msgcnt == 0) { if (msgcnt == 0) {
msgflag = 0; msgflag = 0;
} else { } else {
msgflag = msgtable[msgcnt]; msgflag = msgtable[msgcnt];
msgdelay = GetTickCount();
} }
} }
} }

2
Source/error.h

@ -3,7 +3,7 @@
#define __ERROR_H__ #define __ERROR_H__
extern char msgtable[MAX_SEND_STR_LEN]; extern char msgtable[MAX_SEND_STR_LEN];
extern char msgdelay; extern DWORD msgdelay;
extern char msgflag; extern char msgflag;
extern char msgcnt; extern char msgcnt;

Loading…
Cancel
Save