World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Структура Timer

#include <Time.h>

Открытые члены

 Timer ()
 
void Initialize ()
 
uint64_t Time ()
 
void Update ()
 
void Pause ()
 
void Resume ()
 
void TrackGameTime ()
 
void StopGameTime ()
 

Открытые статические члены

static TimerCreate ()
 

Открытые атрибуты

unsigned int bReady
 
unsigned int bPaused
 
int bTackGameTime
 
unsigned int uStartTime
 
unsigned int uStopTime
 
int uGameTimeStart
 
int field_18
 
unsigned int uTimeElapsed
 
int dt_in_some_format
 
unsigned int uTotalGameTimeElapsed
 

Статические открытые данные

static const unsigned int Minute = 2 * TIME_QUANT
 
static const unsigned int Hour = 60 * Minute
 
static const unsigned int Day = 24 * Hour
 
static const unsigned int Week = 7 * Day
 
static const unsigned int Month = 4 * Week
 
static const unsigned int Year = 12 * Month
 

Подробное описание

См. определение в файле Time.h строка 104

Конструктор(ы)

◆ Timer()

Timer::Timer ( )
inline

См. определение в файле Time.h строка 107

107  : bReady(false), bPaused(false) {
108  bTackGameTime = 0;
109  uStartTime = 0;
110  uStopTime = 0;
111  uGameTimeStart = 0;
112  field_18 = 0;
113  uTimeElapsed = 0;
114  dt_in_some_format = 0;
116  }

Перекрестные ссылки bTackGameTime, dt_in_some_format, field_18, uGameTimeStart, uStartTime, uStopTime, uTimeElapsed и uTotalGameTimeElapsed.

Используется в Create().

+ Граф вызова функции:

Методы

◆ Create()

static Timer* Timer::Create ( )
inlinestatic

См. определение в файле Time.h строка 105

105 { return new Timer; }

Перекрестные ссылки Timer().

Используется в Engine::MM7_Initialize().

+ Граф вызовов:
+ Граф вызова функции:

◆ Initialize()

void Timer::Initialize ( )

См. определение в файле Time.cpp строка 72

72  {
74  bReady = true;
75 }

Перекрестные ссылки bReady и uTotalGameTimeElapsed.

Используется в Engine::MM7_Initialize().

+ Граф вызова функции:

◆ Time()

uint64_t Timer::Time ( )

См. определение в файле Time.cpp строка 11

11  {
12  std::chrono::milliseconds ms = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch());
13  uint64_t v2 = TIME_QUANT * ms.count() / 1000;
14  if (v2 < uStartTime) uStartTime = 0;
15  return v2;
16 }

Перекрестные ссылки uStartTime.

Используется в DecalBuilder_stru0::_43B570_get_color_mult_by_time(), DecalBuilder::ApplyBloodSplatToTerrain(), GameUI_CharacterQuickRecord_Draw(), GameUI_DrawTorchlightAndWizardEye(), ArcomageGame::Loop(), Pause(), PlayerTurn(), Resume(), StopGameTime(), TrackGameTime() и Update().

+ Граф вызова функции:

◆ Update()

void Timer::Update ( )

См. определение в файле Time.cpp строка 53

53  {
54  // Timer *v1; // esi@1
55  // unsigned int v2; // eax@2
56  // signed int v3; // eax@3
57  // char v4; // zf@5
58 
59  uint64_t new_time = Time();
60  while (new_time <= uStartTime) new_time = Time();
61 
62  uTimeElapsed = new_time - uStartTime;
63  uStartTime = new_time;
64 
65  if (uTimeElapsed > 32) uTimeElapsed = 32;
66 
68  dt_in_some_format = (uTimeElapsed << 16) / 128;
69 }

Перекрестные ссылки bPaused, bTackGameTime, dt_in_some_format, Time(), uStartTime, uTimeElapsed и uTotalGameTimeElapsed.

Используется в Application::Game::GameLoop().

+ Граф вызовов:
+ Граф вызова функции:

◆ Pause()

void Timer::Pause ( )

См. определение в файле Time.cpp строка 19

19  {
20  if (!bPaused) {
21  uStopTime = Time();
22  bPaused = true;
23  }
24 }

Перекрестные ссылки bPaused, Time() и uStopTime.

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), Application::Game::EventLoop(), Application::Game::GameLoop(), GameUI_InitializeDialogue(), CastSpellInfo::GetCastSpellInInventoryWindow(), GUIWindow_AutonotesBook::GUIWindow_AutonotesBook(), GUIWindow_CalendarBook::GUIWindow_CalendarBook(), GUIWindow_CharacterRecord::GUIWindow_CharacterRecord(), GUIWindow_DebugMenu::GUIWindow_DebugMenu(), GUIWindow_House::GUIWindow_House(), GUIWindow_JournalBook::GUIWindow_JournalBook(), GUIWindow_MapBook::GUIWindow_MapBook(), GUIWindow_Modal::GUIWindow_Modal(), GUIWindow_QuestBook::GUIWindow_QuestBook(), GUIWindow_QuickReference::GUIWindow_QuickReference(), GUIWindow_Spellbook::GUIWindow_Spellbook(), GUIWindow_Transition::GUIWindow_Transition(), GUIWindow_Travel::GUIWindow_Travel(), Engine::Initialize(), Application::Menu::MenuLoop(), OnCastTargetedSpell::OnCastTargetedSpell(), Application::GameWindowHandler::OnDeactivated(), MPlayer::OpenHouseMovie(), MPlayer::PlayFullscreenMovie(), PrepareToLoadRestUI(), PrepareWorld(), Party::Reset(), sub_4451A8_press_any_key() и UI_OnMouseRightClick().

+ Граф вызовов:
+ Граф вызова функции:

◆ Resume()

void Timer::Resume ( )

См. определение в файле Time.cpp строка 27

27  {
28  if (bPaused) {
29  pKeyActionMap->ResetKeys(); // Unhandled application exception
30 
31  bPaused = 0;
32  uStartTime = Time();
33  }
34 }

Перекрестные ссылки bPaused, pKeyActionMap, KeyboardActionMapping::ResetKeys(), Time() и uStartTime.

Используется в back_to_game(), DialogueEnding(), DoSavegame(), Application::Menu::EventLoop(), Application::Game::EventLoop(), Application::Game::GameLoop(), LoadGame(), MainMenuLoad_EventLoop(), Application::GameWindowHandler::OnActivated(), Application::Game::OnEscape(), PrepareWorld(), GUIWindow_Modal::Release(), sub_4452BB(), MPlayer::Unload() и GUIWindow_Inventory::Update().

+ Граф вызовов:
+ Граф вызова функции:

◆ TrackGameTime()

void Timer::TrackGameTime ( )

См. определение в файле Time.cpp строка 37

37  {
38  if (!bTackGameTime) {
39  uGameTimeStart = Time();
40  bTackGameTime = true;
41  }
42 }

Перекрестные ссылки bTackGameTime, Time() и uGameTimeStart.

Используется в stru262_TurnBased::Start().

+ Граф вызовов:
+ Граф вызова функции:

◆ StopGameTime()

void Timer::StopGameTime ( )

См. определение в файле Time.cpp строка 45

45  {
46  if (bTackGameTime) {
47  bTackGameTime = 0;
48  uStartTime = Time();
49  }
50 }

Перекрестные ссылки bTackGameTime, Time() и uStartTime.

Используется в stru262_TurnBased::End() и LoadGame().

+ Граф вызовов:
+ Граф вызова функции:

Данные класса

◆ bReady

unsigned int Timer::bReady

См. определение в файле Time.h строка 126

Используется в Timer_Image_MM7::Deserialize(), Initialize() и Timer_Image_MM7::Serialize().

◆ bPaused

◆ bTackGameTime

int Timer::bTackGameTime

См. определение в файле Time.h строка 128

Используется в Timer_Image_MM7::Deserialize(), Application::Game::GameLoop(), Timer_Image_MM7::Serialize(), StopGameTime(), Timer(), TrackGameTime() и Update().

◆ uStartTime

unsigned int Timer::uStartTime

◆ uStopTime

unsigned int Timer::uStopTime

См. определение в файле Time.h строка 130

Используется в Timer_Image_MM7::Deserialize(), Pause(), Timer_Image_MM7::Serialize() и Timer().

◆ uGameTimeStart

int Timer::uGameTimeStart

См. определение в файле Time.h строка 131

Используется в Timer_Image_MM7::Deserialize(), Timer_Image_MM7::Serialize(), Timer() и TrackGameTime().

◆ field_18

int Timer::field_18

См. определение в файле Time.h строка 132

Используется в Timer_Image_MM7::Deserialize(), Timer_Image_MM7::Serialize() и Timer().

◆ uTimeElapsed

◆ dt_in_some_format

int Timer::dt_in_some_format

◆ uTotalGameTimeElapsed

◆ Minute

const unsigned int Timer::Minute = 2 * TIME_QUANT
static

См. определение в файле Time.h строка 137

◆ Hour

const unsigned int Timer::Hour = 60 * Minute
static

См. определение в файле Time.h строка 138

◆ Day

const unsigned int Timer::Day = 24 * Hour
static

См. определение в файле Time.h строка 139

◆ Week

const unsigned int Timer::Week = 7 * Day
static

См. определение в файле Time.h строка 140

Используется в WinApiWindow::OnOSMenu().

◆ Month

const unsigned int Timer::Month = 4 * Week
static

См. определение в файле Time.h строка 141

Используется в WinApiWindow::OnOSMenu().

◆ Year

const unsigned int Timer::Year = 12 * Month
static

См. определение в файле Time.h строка 142


Объявления и описания членов структур находятся в файлах:
Timer::Time
uint64_t Time()
Definition: Time.cpp:11
Timer::uTimeElapsed
unsigned int uTimeElapsed
Definition: Time.h:133
Timer::field_18
int field_18
Definition: Time.h:132
Timer::bPaused
unsigned int bPaused
Definition: Time.h:127
uint64_t
unsigned __int64 uint64_t
Definition: alext.h:32
Timer::bTackGameTime
int bTackGameTime
Definition: Time.h:128
Timer::uStopTime
unsigned int uStopTime
Definition: Time.h:130
Timer::dt_in_some_format
int dt_in_some_format
Definition: Time.h:134
Timer::uGameTimeStart
int uGameTimeStart
Definition: Time.h:131
KeyboardActionMapping::ResetKeys
void ResetKeys()
Definition: Keyboard.cpp:176
Timer::bReady
unsigned int bReady
Definition: Time.h:126
pKeyActionMap
struct KeyboardActionMapping * pKeyActionMap
Definition: Keyboard.cpp:35
v2
GLfloat GLfloat GLfloat v2
Definition: SDL_opengl_glext.h:695
Timer::Timer
Timer()
Definition: Time.h:107
Timer::uStartTime
unsigned int uStartTime
Definition: Time.h:129
Timer::uTotalGameTimeElapsed
unsigned int uTotalGameTimeElapsed
Definition: Time.h:135