8#define LOAD_ASSET(path) \
10 : (GameEngine_OTRSigCheck((const char*) path) ? ResourceGetDataByName((const char*) path) : path))
11#define LOAD_ASSET_RAW(path) ResourceGetDataByName((const char*) path)
16#include <fast/Fast3dWindow.h>
17#include <fast/interpreter.h>
18#include "ship/Context.h"
19#include <unordered_map>
28#define SAMPLES_HIGH 448
29#define SAMPLES_LOW 432
30#define AUDIO_FRAMES_PER_UPDATE 2
31#define NUM_AUDIO_CHANNELS 2
32#define SAMPLES_PER_FRAME (SAMPLES_HIGH * NUM_AUDIO_CHANNELS * 2)
42 static GameEngine* Instance;
44 std::shared_ptr<Ship::Context> context;
45 std::vector<CtlEntry*> banksTable;
46 std::vector<std::string> sequenceTable;
47 std::vector<AudioSequenceData*> audioSequenceTable;
48 std::vector<std::string> archiveFiles;
51 ImFont* fontStandardLarger;
52 ImFont* fontStandardLargest;
54 ImFont* fontMonoLarger;
55 ImFont* fontMonoLargest;
59 std::unordered_map<std::string, uint8_t> bankMapTable;
61 static bool GenAssetFile();
65 static void HandleAudioThread();
66 static void StartAudioFrame();
67 static void EndAudioFrame();
68 static void AudioExit();
72 static uint32_t GetInterpolationFPS();
73 static uint32_t GetInterpolationFrameCount();
74 void StartFrame()
const;
75 static void RunCommands(Gfx* pool,
const std::vector<std::unordered_map<Mtx*, MtxF>>& mtx_replacements);
76 void ProcessFrame(
void (*run_one_game_iter)())
const;
77 static void Destroy();
78 static void ProcessGfxCommands(Gfx* pool);
79 static uint8_t GetBankIdByName(
const std::string& name);
80 static int ShowYesNoBox(
const char* title,
const char* box);
81 static void ShowMessage(
const char* title,
const char* message, SDL_MessageBoxFlags type = SDL_MESSAGEBOX_ERROR);
94 ImFont* CreateFontWithSize(
float size, std::string fontPath =
"");
uint32_t OTRGetGameRenderWidth()
Definition Engine.cpp:805
float OTRGetAspectRatio()
Definition Engine.cpp:762
uint32_t OTRGetGameViewportWidth()
Definition Engine.cpp:814
float OTRGetDimensionFromRightEdge(float v)
Definition Engine.cpp:774
uint32_t OTRCalculateCenterOfAreaFromRightEdge(int32_t center)
Definition Engine.cpp:796
Fast::Interpreter * GetInterpreter()
Definition Engine.cpp:59
int16_t OTRGetRectDimensionFromRightEdge(float v)
Definition Engine.cpp:778
uint32_t OTRGetGameRenderHeight()
Definition Engine.cpp:810
uint32_t OTRGetGameViewportHeight()
Definition Engine.cpp:818
uint32_t OTRCalculateCenterOfAreaFromLeftEdge(int32_t center)
Definition Engine.cpp:800
int16_t OTRGetRectDimensionFromLeftEdge(float v)
Definition Engine.cpp:770
float OTRGetDimensionFromLeftEdge(float v)
Definition Engine.cpp:766
void GameEngine_UnloadSequence(uint8_t seqId)
Definition Engine.cpp:694
uint32_t OTRGetGameViewportWidth()
Definition Engine.cpp:814
float OTRGetDimensionFromRightEdge(float v)
Definition Engine.cpp:774
uint32_t OTRCalculateCenterOfAreaFromRightEdge(int32_t center)
Definition Engine.cpp:796
uint32_t GameEngine_GetSampleRate()
Definition Engine.cpp:620
void GameEngine_UnloadBank(uint8_t bankId)
Definition Engine.cpp:664
uint8_t GameEngine_IsBankLoaded(uint8_t bankId)
Definition Engine.cpp:658
uint32_t OTRGetGameRenderHeight(void)
Definition Engine.cpp:810
void GameEngine_ProcessGfxCommands(Gfx *commands)
uint32_t GameEngine_GetSequenceCount()
Definition Engine.cpp:685
int16_t OTRGetRectDimensionFromRightEdge(float v)
Definition Engine.cpp:778
struct CtlEntry * GameEngine_LoadBank(uint8_t bankId)
Definition Engine.cpp:637
int32_t GameEngine_ResourceGetTexTypeByName(const char *name)
Definition Engine.cpp:714
uint8_t GameEngine_IsSequenceLoaded(uint8_t seqId)
Definition Engine.cpp:690
uint32_t GameEngine_GetSamplesPerFrame()
Definition Engine.cpp:633
float OTRGetAspectRatio(void)
Definition Engine.cpp:762
float GameEngine_GetAspectRatio()
Definition Engine.cpp:699
struct AudioSequenceData * GameEngine_LoadSequence(uint8_t seqId)
Definition Engine.cpp:669
uint32_t OTRGetGameViewportHeight()
Definition Engine.cpp:818
uint32_t OTRCalculateCenterOfAreaFromLeftEdge(int32_t center)
Definition Engine.cpp:800
uint32_t OTRGetGameRenderWidth(void)
Definition Engine.cpp:805
static const char engine_asset_file[]
Definition Engine.h:6
int16_t OTRGetRectDimensionFromLeftEdge(float v)
Definition Engine.cpp:770
float OTRGetDimensionFromLeftEdge(float v)
Definition Engine.cpp:766
static const char game_asset_file[]
Definition Engine.h:5
Definition internal.h:134
Definition AudioSequence.h:7
Definition internal.h:172
u8 bankId
Definition internal.h:173