You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.0 KiB
51 lines
1.0 KiB
#include "all.h" |
|
|
|
DEVILUTION_BEGIN_NAMESPACE |
|
|
|
static BYTE sgbIsScrolling; |
|
static DWORD sgdwLastWalk; |
|
static BOOL sgbIsWalking; |
|
|
|
void track_process() |
|
{ |
|
if (!sgbIsWalking) |
|
return; |
|
|
|
if (cursmx < 0 || cursmx >= MAXDUNX - 1 || cursmy < 0 || cursmy >= MAXDUNY - 1) |
|
return; |
|
|
|
if (plr[myplr]._pVar8 <= 6 && plr[myplr]._pmode != PM_STAND) |
|
return; |
|
|
|
if (cursmx != plr[myplr]._ptargx || cursmy != plr[myplr]._ptargy) { |
|
DWORD tick = SDL_GetTicks(); |
|
if ((int)(tick - sgdwLastWalk) >= 300) { |
|
sgdwLastWalk = tick; |
|
NetSendCmdLoc(TRUE, CMD_WALKXY, cursmx, cursmy); |
|
if (!sgbIsScrolling) |
|
sgbIsScrolling = 1; |
|
} |
|
} |
|
} |
|
|
|
void track_repeat_walk(BOOL rep) |
|
{ |
|
if (sgbIsWalking == rep) |
|
return; |
|
|
|
sgbIsWalking = rep; |
|
if (rep) { |
|
sgbIsScrolling = 0; |
|
sgdwLastWalk = SDL_GetTicks() - 50; |
|
NetSendCmdLoc(TRUE, CMD_WALKXY, cursmx, cursmy); |
|
} else if (sgbIsScrolling) { |
|
sgbIsScrolling = 0; |
|
} |
|
} |
|
|
|
BOOL track_isscrolling() |
|
{ |
|
return sgbIsScrolling; |
|
} |
|
|
|
DEVILUTION_END_NAMESPACE
|
|
|