5#define LOAD_ASSET(path) \
7 : (GameEngine_OTRSigCheck((const char*) path) ? ResourceGetDataByName((const char*) path) : path))
8 #define LOAD_ASSET_RAW(path) ResourceGetDataByName((const char*) path)
13#include <fast/Fast3dWindow.h>
14#include <fast/interpreter.h>
15#include "ship/Context.h"
16#include <unordered_map>
25#define SAMPLES_HIGH 448
26#define SAMPLES_LOW 432
27#define AUDIO_FRAMES_PER_UPDATE 2
28#define NUM_AUDIO_CHANNELS 2
29#define SAMPLES_PER_FRAME (SAMPLES_HIGH * NUM_AUDIO_CHANNELS * 2)
39 static GameEngine* Instance;
41 std::shared_ptr<Ship::Context> context;
42 std::vector<CtlEntry*> banksTable;
43 std::vector<std::string> sequenceTable;
44 std::vector<AudioSequenceData*> audioSequenceTable;
45 std::vector<std::string> archiveFiles;
48 ImFont* fontStandardLarger;
49 ImFont* fontStandardLargest;
51 ImFont* fontMonoLarger;
52 ImFont* fontMonoLargest;
56 std::unordered_map<std::string, uint8_t> bankMapTable;
58 static bool GenAssetFile();
62 static void HandleAudioThread();
63 static void StartAudioFrame();
64 static void EndAudioFrame();
65 static void AudioExit();
69 static uint32_t GetInterpolationFPS();
70 static uint32_t GetInterpolationFrameCount();
71 void StartFrame()
const;
72 static void RunCommands(Gfx* pool,
const std::vector<std::unordered_map<Mtx*, MtxF>>& mtx_replacements);
73 void ProcessFrame(
void (*run_one_game_iter)())
const;
74 static void Destroy();
75 static void ProcessGfxCommands(Gfx* pool);
76 static uint8_t GetBankIdByName(
const std::string& name);
77 static int ShowYesNoBox(
const char* title,
const char* box);
78 static void ShowMessage(
const char* title,
const char* message, SDL_MessageBoxFlags type = SDL_MESSAGEBOX_ERROR);
91 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
int16_t OTRGetRectDimensionFromLeftEdge(float v)
Definition Engine.cpp:770
float OTRGetDimensionFromLeftEdge(float v)
Definition Engine.cpp:766
Definition internal.h:134
Definition AudioSequence.h:7
Definition internal.h:172
u8 bankId
Definition internal.h:173