ref: f5334d8324dae71325c59b559ab8fcceb8695fd8
parent: 4bcb5aa6a4d868649e795885d85182e3a452693b
author: Olav Sørensen <[email protected]>
date: Sun Feb 14 07:42:24 EST 2021
Remove unsuitable quit messages + code cleanup Also handle "waitVBL on minimize" quirk when rendering sysreqs.
--- a/src/ft2_events.c
+++ b/src/ft2_events.c
@@ -54,7 +54,7 @@
static void handleInput(void);
-// usleep() implementation for Windows
+// usleep() implementation for Windows (Warning: This might not be future-safe!)
#ifdef _WIN32
void usleep(uint32_t usec)
{
@@ -392,6 +392,29 @@
#endif
}
+void handleWaitVblQuirk(SDL_Event *event)
+{
+ if (event->type == SDL_WINDOWEVENT)
+ {
+ if (event->window.event == SDL_WINDOWEVENT_HIDDEN)
+ video.windowHidden = true;
+ else if (event->window.event == SDL_WINDOWEVENT_SHOWN)
+ video.windowHidden = false;
+
+ if (video.vsync60HzPresent)
+ {
+ /* If we minimize the window and vsync is present, vsync is temporarily turned off.
+ ** recalc waitVBL() vars so that it can sleep properly in said mode.
+ */
+ if (event->window.event == SDL_WINDOWEVENT_MINIMIZED ||
+ event->window.event == SDL_WINDOWEVENT_FOCUS_LOST)
+ {
+ setupWaitVBL();
+ }
+ }
+ }
+}
+
static void handleInput(void)
{
SDL_Event event;
@@ -401,25 +424,7 @@
while (SDL_PollEvent(&event))
{
- if (event.type == SDL_WINDOWEVENT)
- {
- if (event.window.event == SDL_WINDOWEVENT_HIDDEN)
- video.windowHidden = true;
- else if (event.window.event == SDL_WINDOWEVENT_SHOWN)
- video.windowHidden = false;
-
- if (video.vsync60HzPresent)
- {
- /* if we minimize the window and vsync is present, vsync is temporarily turned off.
- ** recalc waitVBL() vars so that it can sleep properly in said mode.
- */
- if (event.window.event == SDL_WINDOWEVENT_MINIMIZED ||
- event.window.event == SDL_WINDOWEVENT_FOCUS_LOST)
- {
- setupWaitVBL();
- }
- }
- }
+ handleWaitVblQuirk(&event);
if (editor.busy)
{
--- a/src/ft2_events.h
+++ b/src/ft2_events.h
@@ -1,5 +1,6 @@
#pragma once
+#include <SDL2/SDL.h>
#include <stdint.h>
#include <stdbool.h>
@@ -15,6 +16,7 @@
void readInput(void);
void handleEvents(void);
void setupCrashHandler(void);
+void handleWaitVblQuirk(SDL_Event *event);
#ifdef _WIN32
bool handleSingleInstancing(int32_t argc, char **argv);
void closeSingleInstancing(void);
--- a/src/ft2_scopes.c
+++ b/src/ft2_scopes.c
@@ -589,12 +589,12 @@
if (time64 < timeNext64)
{
time64 = timeNext64 - time64;
- if (time64 > UINT32_MAX)
- time64 = UINT32_MAX;
+ if (time64 > INT32_MAX)
+ time64 = INT32_MAX;
- const uint32_t diff32 = (uint32_t)time64;
+ const int32_t diff32 = (int32_t)time64;
- // convert to microseconds and round to integer
+ // convert and round to microseconds
const int32_t time32 = (int32_t)((diff32 * editor.dPerfFreqMulMicro) + 0.5);
// delay until we have reached the next frame
--- a/src/ft2_sysreqs.c
+++ b/src/ft2_sysreqs.c
@@ -8,6 +8,7 @@
#include "ft2_video.h"
#include "ft2_sysreqs.h"
#include "ft2_structs.h"
+#include "ft2_events.h"
#define SYSTEM_REQUEST_H 67
#define SYSTEM_REQUEST_Y 249
@@ -22,7 +23,7 @@
{ "OK", "","","","" },
{ "OK", "Cancel", "","","" },
{ "Yes", "No", "","","" },
- { "=(", "Rules","","","" },
+ { "","","","","" }, // deprecated
{ "All", "Song", "Instruments", "Cancel", "" },
{ "Read left", "Read right", "Convert", "", "" },
{ "OK", "","","","" },
@@ -36,7 +37,7 @@
{ SDLK_o, 0, 0, 0, 0 },
{ SDLK_o, SDLK_c, 0, 0, 0 },
{ SDLK_y, SDLK_n, 0, 0, 0 },
- { SDLK_s, SDLK_r, 0, 0, 0 },
+ { 0, 0, 0, 0, 0 }, // deprecated
{ SDLK_a, SDLK_s, SDLK_i, SDLK_c, 0 },
{ SDLK_l, SDLK_r, SDLK_c, 0, 0 },
{ SDLK_o, 0, 0, 0, 0 },
@@ -51,27 +52,22 @@
uint8_t typ;
} quitType_t;
-#define QUIT_MESSAGES 16
+#define QUIT_MESSAGES 11
-// 8bitbubsy: Removed the MS-DOS ones...
+// 8bitbubsy: Removed unsuitable/offensive ones...
static quitType_t quitMessage[QUIT_MESSAGES] =
{
{ "Do you really want to quit?", 2 },
- { "Musicians, press >Cancel<. Lamers, press >OK<", 1 },
{ "Tired already?", 2 },
{ "Dost thou wish to leave with such hasty abandon?", 2 },
{ "So, you think you can quit this easily, huh?", 2 },
{ "Hey, what is the matter? You are not quiting now, are you?", 2 },
{ "Rome was not built in one day! Quit really?", 2 },
- { "For Work and Worry, press YES. For Delectation and Demos, press NO.", 2 },
{ "Did you really press the right key?", 2 },
- { "You are a lamer, aren't you? Press >OK< to confirm.", 1 },
{ "Hope ya did some good. Press >OK< to quit.", 1 },
{ "Quit? Only for a good reason you are allowed to press >OK<.", 1 },
{ "Are we at the end of a Fasttracker round?", 2 },
- { "Are you just another boring user?", 2 },
{ "Hope you're doing the compulsory \"Exit ceremony\" before pressing >OK<.", 1 },
- { "Fasttracker...", 3 }
};
static void drawWindow(uint16_t w)
@@ -266,6 +262,8 @@
while (SDL_PollEvent(&inputEvent))
{
+ handleWaitVblQuirk(&inputEvent);
+
if (inputEvent.type == SDL_KEYDOWN)
{
if (inputEvent.key.keysym.sym == SDLK_ESCAPE)
@@ -479,6 +477,8 @@
while (SDL_PollEvent(&inputEvent))
{
+ handleWaitVblQuirk(&inputEvent);
+
if (inputEvent.type == SDL_TEXTINPUT)
{
if (editor.editTextFlag)
--- a/src/ft2_video.c
+++ b/src/ft2_video.c
@@ -717,10 +717,10 @@
if (time64 < timeNext64)
{
time64 = timeNext64 - time64;
- if (time64 > UINT32_MAX)
- time64 = UINT32_MAX;
+ if (time64 > INT32_MAX)
+ time64 = INT32_MAX;
- const uint32_t diff32 = (uint32_t)time64;
+ const int32_t diff32 = (int32_t)time64;
// convert and round to microseconds
const int32_t time32 = (int32_t)((diff32 * editor.dPerfFreqMulMicro) + 0.5);