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:807
float OTRGetAspectRatio()
Definition Engine.cpp:764
uint32_t OTRGetGameViewportWidth()
Definition Engine.cpp:816
float OTRGetDimensionFromRightEdge(float v)
Definition Engine.cpp:776
uint32_t OTRCalculateCenterOfAreaFromRightEdge(int32_t center)
Definition Engine.cpp:798
Fast::Interpreter * GetInterpreter()
Definition Engine.cpp:60
int16_t OTRGetRectDimensionFromRightEdge(float v)
Definition Engine.cpp:780
uint32_t OTRGetGameRenderHeight()
Definition Engine.cpp:812
uint32_t OTRGetGameViewportHeight()
Definition Engine.cpp:820
uint32_t OTRCalculateCenterOfAreaFromLeftEdge(int32_t center)
Definition Engine.cpp:802
int16_t OTRGetRectDimensionFromLeftEdge(float v)
Definition Engine.cpp:772
float OTRGetDimensionFromLeftEdge(float v)
Definition Engine.cpp:768
void GameEngine_UnloadSequence(uint8_t seqId)
Definition Engine.cpp:696
uint32_t OTRGetGameViewportWidth()
Definition Engine.cpp:816
float OTRGetDimensionFromRightEdge(float v)
Definition Engine.cpp:776
uint32_t OTRCalculateCenterOfAreaFromRightEdge(int32_t center)
Definition Engine.cpp:798
uint32_t GameEngine_GetSampleRate()
Definition Engine.cpp:622
void GameEngine_UnloadBank(uint8_t bankId)
Definition Engine.cpp:666
uint8_t GameEngine_IsBankLoaded(uint8_t bankId)
Definition Engine.cpp:660
uint32_t OTRGetGameRenderHeight(void)
Definition Engine.cpp:812
void GameEngine_ProcessGfxCommands(Gfx *commands)
uint32_t GameEngine_GetSequenceCount()
Definition Engine.cpp:687
int16_t OTRGetRectDimensionFromRightEdge(float v)
Definition Engine.cpp:780
struct CtlEntry * GameEngine_LoadBank(uint8_t bankId)
Definition Engine.cpp:639
int32_t GameEngine_ResourceGetTexTypeByName(const char *name)
Definition Engine.cpp:716
uint8_t GameEngine_IsSequenceLoaded(uint8_t seqId)
Definition Engine.cpp:692
uint32_t GameEngine_GetSamplesPerFrame()
Definition Engine.cpp:635
float OTRGetAspectRatio(void)
Definition Engine.cpp:764
float GameEngine_GetAspectRatio()
Definition Engine.cpp:701
struct AudioSequenceData * GameEngine_LoadSequence(uint8_t seqId)
Definition Engine.cpp:671
uint32_t OTRGetGameViewportHeight()
Definition Engine.cpp:820
uint32_t OTRCalculateCenterOfAreaFromLeftEdge(int32_t center)
Definition Engine.cpp:802
uint32_t OTRGetGameRenderWidth(void)
Definition Engine.cpp:807
static const char engine_asset_file[]
Definition Engine.h:6
int16_t OTRGetRectDimensionFromLeftEdge(float v)
Definition Engine.cpp:772
float OTRGetDimensionFromLeftEdge(float v)
Definition Engine.cpp:768
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