diff --git a/src/Game.c b/src/Game.c index bea65c691..a1c4c58f4 100644 --- a/src/Game.c +++ b/src/Game.c @@ -65,6 +65,10 @@ String Game_Mppass = String_FromArray(Game_MppassBuffer); String Game_IPAddress = String_FromArray(Game_IPAddressBuffer); String Game_Hash = String_FromArray(Game_HashBuffer); +const char* FpsLimit_Names[FPS_LIMIT_COUNT] = { + "LimitVSync", "Limit30FPS", "Limit60FPS", "Limit120FPS", "Limit144FPS", "LimitNone", +}; + static struct IGameComponent* comps_head; static struct IGameComponent* comps_tail; void Game_AddComponent(struct IGameComponent* comp) { @@ -507,7 +511,7 @@ static void Game_Load(void) { Server.BeginConnect(); } -void Game_SetFpsLimit(enum FpsLimit method) { +void Game_SetFpsLimit(int method) { float minFrameTime = 0; Game_FpsLimit = method; diff --git a/src/Game.h b/src/Game.h index fb92e99a6..5e62509cc 100644 --- a/src/Game.h +++ b/src/Game.h @@ -51,6 +51,11 @@ extern bool Game_BreakableLiquids; extern bool Game_ScreenshotRequested; extern bool Game_HideGui; +enum FpsLimitMethod { + FPS_LIMIT_VSYNC, FPS_LIMIT_30, FPS_LIMIT_60, FPS_LIMIT_120, FPS_LIMIT_144, FPS_LIMIT_NONE, FPS_LIMIT_COUNT +}; +extern const char* FpsLimit_Names[FPS_LIMIT_COUNT]; + extern float Game_RawHotbarScale, Game_RawChatScale, Game_RawInventoryScale; float Game_Scale(float value); float Game_GetHotbarScale(void); @@ -88,7 +93,8 @@ bool Game_ValidateBitmap(const String* file, Bitmap* bmp); /* Updates Game_Width and Game_Height. */ void Game_UpdateDimensions(void); /* Sets the strategy/method used to limit frames per second. */ -void Game_SetFpsLimit(enum FpsLimit method); +/* See FPS_LIMIT_ for valid strategies/methods */ +void Game_SetFpsLimit(int method); /* Runs the main game loop until the window is closed. */ void Game_Run(int width, int height, const String* title); diff --git a/src/Input.h b/src/Input.h index f9a93ad82..2cb3bf33c 100644 --- a/src/Input.h +++ b/src/Input.h @@ -93,18 +93,19 @@ void Mouse_SetPosition(int x, int y); /* Enumeration of all key bindings. */ -typedef enum KeyBind_ { - KEYBIND_FORWARD, KEYBIND_BACK, KEYBIND_LEFT, KEYBIND_RIGHT, +enum KeyBind_ { + KEYBIND_FORWARD, KEYBIND_BACK, KEYBIND_LEFT, KEYBIND_RIGHT, KEYBIND_JUMP, KEYBIND_RESPAWN, KEYBIND_SET_SPAWN, KEYBIND_CHAT, - KEYBIND_INVENTORY, KEYBIND_FOG, KEYBIND_SEND_CHAT, KEYBIND_PLAYER_LIST, - KEYBIND_SPEED, KEYBIND_NOCLIP, KEYBIND_FLY, KEYBIND_FLY_UP, KEYBIND_FLY_DOWN, + KEYBIND_INVENTORY, KEYBIND_FOG, KEYBIND_SEND_CHAT, KEYBIND_PLAYER_LIST, + KEYBIND_SPEED, KEYBIND_NOCLIP, KEYBIND_FLY, KEYBIND_FLY_UP, KEYBIND_FLY_DOWN, KEYBIND_EXT_INPUT, KEYBIND_HIDE_FPS, KEYBIND_SCREENSHOT, KEYBIND_FULLSCREEN, - KEYBIND_THIRD_PERSON, KEYBIND_HIDE_GUI, KEYBIND_AXIS_LINES, KEYBIND_ZOOM_SCROLL, - KEYBIND_HALF_SPEED, KEYBIND_MOUSE_LEFT, KEYBIND_MOUSE_MIDDLE, KEYBIND_MOUSE_RIGHT, - KEYBIND_AUTOROTATE, KEYBIND_HOTBAR_SWITCH, KEYBIND_SMOOTH_CAMERA, + KEYBIND_THIRD_PERSON, KEYBIND_HIDE_GUI, KEYBIND_AXIS_LINES, KEYBIND_ZOOM_SCROLL, + KEYBIND_HALF_SPEED, KEYBIND_MOUSE_LEFT, KEYBIND_MOUSE_MIDDLE, KEYBIND_MOUSE_RIGHT, + KEYBIND_AUTOROTATE, KEYBIND_HOTBAR_SWITCH, KEYBIND_SMOOTH_CAMERA, KEYBIND_DROP_BLOCK, KEYBIND_IDOVERLAY, KEYBIND_BREAK_LIQUIDS, KEYBIND_COUNT -} KeyBind; +}; +typedef int KeyBind; /* The keys that are bound to each key binding. */ extern uint8_t KeyBinds[KEYBIND_COUNT]; diff --git a/src/LScreens.c b/src/LScreens.c index 0603f15a0..ac74183c7 100644 --- a/src/LScreens.c +++ b/src/LScreens.c @@ -922,6 +922,7 @@ static void MainScreen_TickFetchServers(struct MainScreen* s) { s->SigningIn = false; if (Game_Hash.length) { Launcher_ConnectToServer(&Game_Hash); + Game_Hash.length = 0; } else { Launcher_SetScreen(ServersScreen_MakeInstance()); } diff --git a/src/Options.c b/src/Options.c index 5825a5f3e..6ce9d18bd 100644 --- a/src/Options.c +++ b/src/Options.c @@ -8,9 +8,6 @@ #include "Utils.h" #include "Logger.h" -const char* FpsLimit_Names[FPS_LIMIT_COUNT] = { - "LimitVSync", "Limit30FPS", "Limit60FPS", "Limit120FPS", "Limit144FPS", "LimitNone", -}; struct EntryList Options; static StringsBuffer Options_Changed; diff --git a/src/Options.h b/src/Options.h index 2dbec25de..77874d651 100644 --- a/src/Options.h +++ b/src/Options.h @@ -5,11 +5,6 @@ Copyright 2014-2017 ClassicalSharp | Licensed under BSD-3 */ -enum FpsLimit { - FPS_LIMIT_VSYNC, FPS_LIMIT_30, FPS_LIMIT_60, FPS_LIMIT_120, FPS_LIMIT_144, FPS_LIMIT_NONE, FPS_LIMIT_COUNT -}; -extern const char* FpsLimit_Names[FPS_LIMIT_COUNT]; - #define OPT_USE_MUSIC "usemusic" #define OPT_USE_SOUND "usesound" #define OPT_MUSIC_VOLUME "musicvolume" diff --git a/src/Platform.c b/src/Platform.c index 24cb6ae81..27194d595 100644 --- a/src/Platform.c +++ b/src/Platform.c @@ -728,7 +728,7 @@ void Thread_Detach(void* handle) { } void Thread_Join(void* handle) { - pthread_t* ptr = handle; + pthread_t* ptr = (pthread_t*)handle; int res = pthread_join(*ptr, NULL); if (res) Logger_Abort2(res, "Joining thread"); Mem_Free(ptr);