mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-28 15:57:59 +03:00

* Initial commit * Update CHANGELOG.md * Tint flare smoke * Expose GetCustomizations * Added lensflare and flicker customization options for flare * Update LensFlare.cpp * Remove unnecessary code * Update lara_flare.cpp * Massive refactor to merge animations, settings and customizations * Add HUD customization options * Customize weapons * Fixed flare, renamed recoil to interval, fixed lensflare default * Occlude flare lensflares * Update Settings.cpp * Use alternate damage for lasersight mode * Added hair cust * Fix comment * Fix another comment * Fix link * Fix placeholder table names * Reorganize types * Add missing initializers for hair settings * Added physics cust * Clarify description * Update settings.lua * Update CHANGELOG.md * Add gun smoke, gun shells and ammo pickup counts * Fix naming ambiguity * Remove missing features from documentation * Fix comment * Fix parameter name, change default settings file * Fixed pitch black * Rollback DoDistanceFogForVertex * Add camera cust * Change binocular/lasersight toggle to color * Update lara_basic.cpp * Add time and statistics classes and script API for it * Fix comment * Use DoDamage on Lara helpers to register with statistics * Update Time.cpp * Fix documentation * Fix default flare timeout * Update Settings.lua * Add flare muzzle offset customization * Remove young Lara limitations * Fix lasersight color * Push full settings.lua * Update RendererCompatibility.cpp * Allow to customize root meshes, decopypaste hair and joint init code * Added sol Time operator overloads * Some changes to docs, add meaningful error for unknown fields * Use existing new index template, add gunflash color settings, add shotgun muzzle * Remove excessive usage of GetSettings() * Cleanups * Update Settings.lua * Clarify parameter name * Fix InitializeWeaponInfo * PR review code tidying * Fix bad merge * Update FlowHandler.cpp * Remove tabs for LDoc comments * Use different comment style to preserve formatting * Update lara_fire.cpp * Some cleanups * Fixed GetTimeUnits * Fix typo * Update Time.cpp --------- Co-authored-by: Sezz <sezzary@outlook.com>
106 lines
1.9 KiB
C++
106 lines
1.9 KiB
C++
#pragma once
|
|
#include "Game/animation.h"
|
|
#include "Game/control/trigger.h"
|
|
#include "Game/items.h"
|
|
#include "Game/room.h"
|
|
#include "Math/Math.h"
|
|
|
|
class FloorInfo;
|
|
class GameBoundingBox;
|
|
struct AnimData;
|
|
struct CollisionInfo;
|
|
struct ItemInfo;
|
|
struct MESH_INFO;
|
|
struct ROOM_INFO;
|
|
|
|
enum class GameStatus
|
|
{
|
|
Normal,
|
|
NewGame,
|
|
HomeLevel,
|
|
LoadGame,
|
|
SaveGame,
|
|
ExitToTitle,
|
|
ExitGame,
|
|
LaraDead,
|
|
LevelComplete
|
|
};
|
|
|
|
enum class FreezeMode
|
|
{
|
|
None,
|
|
Full,
|
|
Spectator,
|
|
Player
|
|
};
|
|
|
|
enum CardinalDirection
|
|
{
|
|
NORTH,
|
|
EAST,
|
|
SOUTH,
|
|
WEST
|
|
};
|
|
|
|
enum FadeStatus
|
|
{
|
|
FADE_STATUS_NONE,
|
|
FADE_STATUS_FADEIN,
|
|
FADE_STATUS_FADEOUT
|
|
};
|
|
|
|
constexpr int MAX_ROOMS = 1024;
|
|
|
|
constexpr auto LOOP_FRAME_COUNT = 2;
|
|
|
|
extern int RumbleTimer;
|
|
extern int GlobalCounter;
|
|
|
|
extern bool InitializeGame;
|
|
extern bool DoTheGame;
|
|
extern bool JustLoaded;
|
|
extern bool ThreadEnded;
|
|
|
|
extern int RequiredStartPos;
|
|
extern int CurrentLevel;
|
|
extern int NextLevel;
|
|
|
|
extern bool InItemControlLoop;
|
|
extern short ItemNewRoomNo;
|
|
extern short ItemNewRooms[MAX_ROOMS];
|
|
extern short NextItemActive;
|
|
extern short NextItemFree;
|
|
extern short NextFxActive;
|
|
extern short NextFxFree;
|
|
|
|
extern int ControlPhaseTime;
|
|
|
|
extern std::vector<short> OutsideRoomTable[OUTSIDE_SIZE][OUTSIDE_SIZE];
|
|
|
|
void DrawPhase(bool isTitle, float interpolationFactor);
|
|
|
|
GameStatus ControlPhase(bool insideMenu);
|
|
GameStatus DoLevel(int levelIndex, bool loadGame = false);
|
|
GameStatus DoGameLoop(int levelIndex);
|
|
void EndGameLoop(int levelIndex, GameStatus reason);
|
|
|
|
GameStatus HandleMenuCalls(bool isTitle);
|
|
GameStatus HandleGlobalInputEvents(bool isTitle);
|
|
void HandleControls(bool isTitle);
|
|
|
|
int GetRandomControl();
|
|
int GetRandomDraw();
|
|
|
|
void KillMoveItems();
|
|
void KillMoveEffects();
|
|
void UpdateShatters();
|
|
|
|
void CleanUp();
|
|
|
|
void InitializeOrLoadGame(bool loadGame);
|
|
void InitializeScripting(int levelIndex, bool loadGame);
|
|
void DeInitializeScripting(int levelIndex, GameStatus reason);
|
|
|
|
void SetupInterpolation();
|
|
|
|
unsigned CALLBACK GameMain(void*);
|