devilutionX/Source/nthread.h
Anders Jenbo 5fdb9ce459 🎨 Format code
2021-04-19 00:37:33 +02:00

36 lines
1.1 KiB
C++

/**
* @file nthread.h
*
* Interface of functions for managing game ticks.
*/
#pragma once
#include "miniwin/miniwin.h"
#include "player.h"
namespace devilution {
extern BYTE sgbNetUpdateRate;
extern DWORD gdwMsgLenTbl[MAX_PLRS];
extern DWORD gdwDeltaBytesSec;
extern DWORD gdwTurnsInTransit;
extern uintptr_t glpMsgTbl[MAX_PLRS];
extern DWORD gdwLargestMsgSize;
extern DWORD gdwNormalMsgSize;
extern float gfProgressToNextGameTick; // the progress as a fraction (0.0f to 1.0f) in time to the next game tick
void nthread_terminate_game(const char *pszFcn);
DWORD nthread_send_and_recv_turn(DWORD cur_turn, int turn_delta);
bool nthread_recv_turns(bool *pfSendAsync);
void nthread_set_turn_upper_bit();
void nthread_start(bool set_turn_upper_bit);
void nthread_cleanup();
void nthread_ignore_mutex(bool bStart);
bool nthread_has_500ms_passed();
/**
* @brief Calculates the progress in time to the next game tick
* @return Progress as a fraction (0.0f to 1.0f)
*/
void nthread_UpdateProgressToNextGameTick();
} // namespace devilution