vkdoom_m/src/common/engine/i_interface.h
Boondorl 4a84210998 Updated multiplayer tab
Use dropdowns and reorganize the elements to improve clarity.
2025-08-22 12:07:47 -03:00

119 lines
3.1 KiB
C++

#pragma once
#include "zstring.h"
#include "intrect.h"
#include "name.h"
struct event_t;
class FRenderState;
class FGameTexture;
class FTextureID;
enum EUpscaleFlags : int;
class FConfigFile;
class FArgs;
struct FTranslationID;
extern FString GameUUID;
FString GenerateUUID();
struct SystemCallbacks
{
bool (*G_Responder)(event_t* ev); // this MUST be set, otherwise nothing will work
bool (*WantGuiCapture)();
bool (*WantLeftButton)();
bool (*NetGame)();
bool (*WantNativeMouse)();
bool (*CaptureModeInGame)();
void (*CrashInfo)(char* buffer, size_t bufflen, const char* lfstr);
void (*PlayStartupSound)(const char* name);
bool (*IsSpecialUI)();
bool (*DisableTextureFilter)();
void (*OnScreenSizeChanged)();
IntRect(*GetSceneRect)();
FString(*GetLocationDescription)();
void (*MenuDim)();
FString(*GetPlayerName)(int i);
bool (*DispatchEvent)(event_t* ev);
bool (*CheckGame)(const char* nm);
void (*MenuClosed)();
bool (*CheckMenudefOption)(const char* opt);
void (*ConsoleToggled)(int state);
bool (*PreBindTexture)(FRenderState* state, FGameTexture*& tex, EUpscaleFlags& flags, int& scaleflags, int& clampmode, int& translation, int& overrideshader);
void (*FontCharCreated)(FGameTexture* base, FGameTexture* untranslated);
void (*ToggleFullConsole)();
void (*StartCutscene)(bool blockui);
void (*SetTransition)(int type);
bool (*CheckCheatmode)(bool printmsg, bool sponly);
void (*HudScaleChanged)();
bool (*SetSpecialMenu)(FName& menu, int param);
void (*OnMenuOpen)(bool makesound);
void (*LanguageChanged)(const char*);
bool (*OkForLocalization)(FTextureID, const char*);
FConfigFile* (*GetConfig)();
bool (*WantEscape)();
FTranslationID(*RemapTranslation)(FTranslationID trans);
};
extern SystemCallbacks sysCallbacks;
struct WadStuff
{
FString Path;
FString Name;
};
struct FStartupSelectionInfo
{
const TArray<WadStuff>* Wads = nullptr;
FArgs* Args = nullptr;
// Local game info
int DefaultIWAD = 0;
FString DefaultArgs = {};
bool bSaveArgs = true;
// Settings
int DefaultStartFlags = 0;
bool DefaultQueryIWAD = true;
FString DefaultLanguage = "auto";
int DefaultBackend = 1;
bool DefaultFullscreen = true;
// Net game info
int DefaultNetIWAD = 0;
bool bNetStart = false;
bool bHosting = false;
bool bSaveNetFile = false;
bool bSaveNetArgs = true;
int DefaultNetPage = 0;
FString DefaultNetArgs = {};
FString AdditionalNetArgs = {}; // These ones shouldn't be saved.
FString DefaultNetSaveFile = {};
int DefaultNetHostTeam = 255;
int DefaultNetPlayers = 8;
int DefaultNetHostPort = 0;
int DefaultNetTicDup = 0;
bool DefaultNetExtraTic = false;
int DefaultNetMode = 0;
int DefaultNetGameMode = 0;
bool DefaultNetAltDM = false;
FString DefaultNetAddress = {};
int DefaultNetJoinPort = 0;
int DefaultNetJoinTeam = 255;
FStartupSelectionInfo() = delete;
FStartupSelectionInfo(const TArray<WadStuff>& wads, FArgs& args, int startFlags);
int SaveInfo();
};
extern FString endoomName;
extern bool batchrun;
extern float menuBlurAmount;
extern bool generic_ui;
extern bool special_i;
extern int paused;
extern bool pauseext;
void UpdateGenericUI(bool cvar);