Removed options that break mouse input. Allow Singe to run with no mouse connected.
This commit is contained in:
parent
ed24346bf8
commit
ea7d9d97cf
7 changed files with 82 additions and 175 deletions
|
@ -60,8 +60,9 @@ function doBuild() {
|
|||
TARGET="${SOURCE_DIR}/../build/${TARGET}${EXT}"
|
||||
[[ -e "${TARGET}" ]] && rm "${TARGET}"
|
||||
echo "Linking ${TARGET}..."
|
||||
# The grep nonsense hides a warning we don't care about.
|
||||
${CROSS}-${CPPCOMPILER} -o "${TARGET}" ${OFILES} ${EXTRA_OFILES} "-L${SOURCE_DIR}/../thirdparty-build/${OSNAME}/${OSARCH}/installed/lib" ${EXTRA_LD_FLAGS} 2>&1 | grep -v loslib || true
|
||||
# The grep nonsense hides warnings we don't care about.
|
||||
${CROSS}-${CPPCOMPILER} -o "${TARGET}" ${OFILES} ${EXTRA_OFILES} "-L${SOURCE_DIR}/../thirdparty-build/${OSNAME}/${OSARCH}/installed/lib" ${EXTRA_LD_FLAGS} 2>&1 | \
|
||||
grep -v loslib | grep -v "ld: warning: building for macOS, but linking in object file" || true
|
||||
|
||||
echo "Compressing ${TARGET}..."
|
||||
${CROSS}-strip "${TARGET}"
|
||||
|
@ -77,7 +78,6 @@ function doBuild() {
|
|||
# Find Singe version
|
||||
G_VERSION=$(grep VERSION_STRING singe.h | cut -d '"' -f 2)
|
||||
|
||||
:<<'SKIP'
|
||||
# 32 Bit Linux
|
||||
echo -e "${G_L}\nLinux i386\n${G_L}"
|
||||
CROSS="x86_64-linux-gnu"
|
||||
|
@ -140,7 +140,6 @@ EXTRA_CFLAGS="-O2 --sysroot ${SYSROOT}"
|
|||
EXTRA_OFILES=""
|
||||
EXTRA_LD_FLAGS="--sysroot ${SYSROOT} -l:everything.a -Wl,-rpath-link,${SYSROOT}/opt/vc/lib -L${SYSROOT}/opt/vc/lib -lbcm_host -lasound -lpthread -lm -ldl -lsndio -lmmal_core -lmmal_util -lmmal_vc_client -lvdpau -ldrm -lgbm -lX11 -lsamplerate"
|
||||
doBuild Singe-${G_VERSION}-Pi-armv6 pi 32
|
||||
SKIP
|
||||
|
||||
# 32 Bit macOS
|
||||
echo -e "${G_L}\nmacOS i386\n${G_L}"
|
||||
|
@ -155,7 +154,6 @@ export MACOSX_DEPLOYMENT_TARGET=10.8
|
|||
doBuild Singe-${G_VERSION}-macOS-i386 mac 32
|
||||
export MACOSX_DEPLOYMENT_TARGET=${O_MACOSX_DEPLOYMENT_TARGET}
|
||||
|
||||
:<<'SKIP'
|
||||
# 64 Bit macOS
|
||||
echo -e "${G_L}\nmacOS x86_64\n${G_L}"
|
||||
CROSS="x86_64-apple-darwin${MACOSX_DARWIN}"
|
||||
|
@ -168,4 +166,3 @@ O_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET}
|
|||
export MACOSX_DEPLOYMENT_TARGET=10.8
|
||||
doBuild Singe-${G_VERSION}-macOS-x86_64 mac 64
|
||||
export MACOSX_DEPLOYMENT_TARGET=${O_MACOSX_DEPLOYMENT_TARGET}
|
||||
SKIP
|
||||
|
|
122
singe/games.dat
122
singe/games.dat
|
@ -1,122 +0,0 @@
|
|||
GAMES = {
|
||||
{
|
||||
TITLE = ".38 Ambush Alley",
|
||||
SCRIPT = "ActionMax/38AmbushAlley.singe",
|
||||
VIDEO = "ActionMax/frame_38AmbushAlley.txt",
|
||||
DATA = "ActionMax",
|
||||
STRETCH = false,
|
||||
NO_MOUSE = false,
|
||||
RESOLUTION_X = 720,
|
||||
RESOLUTION_Y = 480,
|
||||
SINDEN_GUN = "",
|
||||
CABINET = "ActionMax/cabinet_38AmbushAlley.png",
|
||||
MARQUEE = "ActionMax/marquee_ActionMax.png",
|
||||
ATTRACT = "ActionMax/video_38AmbushAlley.mkv",
|
||||
ATTRACT_START = 3000,
|
||||
ATTRACT_END = 3500,
|
||||
YEAR = 1987,
|
||||
PLATFORM = "ActionMax",
|
||||
DEVELOPER = "Sourcing International, Ltd.",
|
||||
PUBLISHER = "Worlds of Wonder, Inc.",
|
||||
GENERE = "Shooter",
|
||||
DESCRIPTION = "Get your target practice in with real police officers then hit the streets.",
|
||||
CREATOR = "Scott Duensing",
|
||||
SOURCE = "http://kangaroopunch.com"
|
||||
},
|
||||
{
|
||||
TITLE = "Blue Thunder",
|
||||
SCRIPT = "ActionMax/BlueThunder.singe",
|
||||
VIDEO = "ActionMax/frame_BlueThunder.txt",
|
||||
DATA = "ActionMax",
|
||||
STRETCH = false,
|
||||
NO_MOUSE = false,
|
||||
RESOLUTION_X = 720,
|
||||
RESOLUTION_Y = 480,
|
||||
SINDEN_GUN = "",
|
||||
CABINET = "ActionMax/cabinet_BlueThunder.png",
|
||||
MARQUEE = "ActionMax/marquee_ActionMax.png",
|
||||
ATTRACT = "ActionMax/video_BlueThunder.mkv",
|
||||
ATTRACT_START = 3000,
|
||||
ATTRACT_END = 3500,
|
||||
YEAR = 1987,
|
||||
PLATFORM = "ActionMax",
|
||||
DEVELOPER = "Sourcing International, Ltd.",
|
||||
PUBLISHER = "Worlds of Wonder, Inc.",
|
||||
GENERE = "Shooter",
|
||||
DESCRIPTION = "Get in your chopper and take out the bad guys in this action-packed game.",
|
||||
CREATOR = "Scott Duensing",
|
||||
SOURCE = "http://kangaroopunch.com"
|
||||
},
|
||||
{
|
||||
TITLE = "Hydrosub: 2021",
|
||||
SCRIPT = "ActionMax/Hydrosub2021.singe",
|
||||
VIDEO = "ActionMax/frame_Hydrosub2021.txt",
|
||||
DATA = "ActionMax",
|
||||
STRETCH = false,
|
||||
NO_MOUSE = false,
|
||||
RESOLUTION_X = 720,
|
||||
RESOLUTION_Y = 480,
|
||||
SINDEN_GUN = "",
|
||||
CABINET = "ActionMax/cabinet_Hydrosub2021.png",
|
||||
MARQUEE = "ActionMax/marquee_ActionMax.png",
|
||||
ATTRACT = "ActionMax/video_Hydrosub2021.mkv",
|
||||
ATTRACT_START = 3000,
|
||||
ATTRACT_END = 3500,
|
||||
YEAR = 1987,
|
||||
PLATFORM = "ActionMax",
|
||||
DEVELOPER = "Sourcing International, Ltd.",
|
||||
PUBLISHER = "Worlds of Wonder, Inc.",
|
||||
GENERE = "Shooter",
|
||||
DESCRIPTION = "Shootout beneath the ocean!",
|
||||
CREATOR = "Scott Duensing",
|
||||
SOURCE = "http://kangaroopunch.com"
|
||||
},
|
||||
{
|
||||
TITLE = "Rescue of Pops Ghostly, The",
|
||||
SCRIPT = "ActionMax/PopsGhostly.singe",
|
||||
VIDEO = "ActionMax/frame_PopsGhostly.txt",
|
||||
DATA = "ActionMax",
|
||||
STRETCH = false,
|
||||
NO_MOUSE = false,
|
||||
RESOLUTION_X = 720,
|
||||
RESOLUTION_Y = 480,
|
||||
SINDEN_GUN = "",
|
||||
CABINET = "ActionMax/cabinet_PopsGhostly.png",
|
||||
MARQUEE = "ActionMax/marquee_ActionMax.png",
|
||||
ATTRACT = "ActionMax/video_PopsGhostly.mkv",
|
||||
ATTRACT_START = 3000,
|
||||
ATTRACT_END = 3500,
|
||||
YEAR = 1987,
|
||||
PLATFORM = "ActionMax",
|
||||
DEVELOPER = "Sourcing International, Ltd.",
|
||||
PUBLISHER = "Worlds of Wonder, Inc.",
|
||||
GENERE = "Shooter",
|
||||
DESCRIPTION = "Help Pops Ghostly and his family get rid of the bad spirits who have taken over the house.",
|
||||
CREATOR = "Scott Duensing",
|
||||
SOURCE = "http://kangaroopunch.com"
|
||||
},
|
||||
{
|
||||
TITLE = "Sonic Fury",
|
||||
SCRIPT = "ActionMax/SonicFury.singe",
|
||||
VIDEO = "ActionMax/frame_SonicFury.txt",
|
||||
DATA = "ActionMax",
|
||||
STRETCH = false,
|
||||
NO_MOUSE = false,
|
||||
RESOLUTION_X = 720,
|
||||
RESOLUTION_Y = 480,
|
||||
SINDEN_GUN = "",
|
||||
CABINET = "ActionMax/cabinet_SonicFury.png",
|
||||
MARQUEE = "ActionMax/marquee_ActionMax.png",
|
||||
ATTRACT = "ActionMax/video_SonicFury.mkv",
|
||||
ATTRACT_START = 3000,
|
||||
ATTRACT_END = 3500,
|
||||
YEAR = 1987,
|
||||
PLATFORM = "ActionMax",
|
||||
DEVELOPER = "Sourcing International, Ltd.",
|
||||
PUBLISHER = "Worlds of Wonder, Inc.",
|
||||
GENERE = "Shooter",
|
||||
DESCRIPTION = "Shoot it out with the bad guys in your fighter jet!",
|
||||
CREATOR = "Scott Duensing",
|
||||
SOURCE = "http://kangaroopunch.com"
|
||||
}
|
||||
}
|
|
@ -717,13 +717,13 @@ void showUsage(char *name, char *message) {
|
|||
utilSay(" -d, --datadir=PATHNAME alternate location for written files");
|
||||
utilSay(" -e, --volume_nonvldp=PERCENT specify sound effects volume in percent");
|
||||
utilSay(" -f, --fullscreen run in full screen mode");
|
||||
utilSay(" -g, --sindengun=PARAMS enable Sinden Light Gun support");
|
||||
// utilSay(" -g, --sindengun='PARAMS' enable Sinden Light Gun support");
|
||||
utilSay(" -h, --help this display");
|
||||
utilSay(" -k, --nologos kill the splash screens");
|
||||
utilSay(" -l, --volume_vldp=PERCENT specify laserdisc volume in percent");
|
||||
utilSay(" -m, --nomouse disable mouse");
|
||||
utilSay(" -n, --nocrosshair request game not display gun crosshairs");
|
||||
utilSay(" -o, --scalefactor=PERCENT reduce screen size for overscan compensation");
|
||||
// utilSay(" -o, --scalefactor=PERCENT reduce screen size for overscan compensation");
|
||||
utilSay(" -s, --nosound, --mutesound mutes all sound");
|
||||
utilSay(" -t, --trace trace script execution to screen and file");
|
||||
utilSay(" -u, --stretch use ugly stretched video");
|
||||
|
|
102
singe/singe.c
102
singe/singe.c
|
@ -58,7 +58,8 @@ LUASOCKET_API int luaopen_socket_serial(lua_State *L);
|
|||
#define MAX_CONTROLLERS 4
|
||||
#define CONTROLLER_AXIS_COUNT 6
|
||||
#define AXIS_COUNT (MAX_CONTROLLERS * CONTROLLER_AXIS_COUNT + MAX_MICE * MOUSE_AXIS_COUNT)
|
||||
|
||||
#define AXIS_KEY_DOWN 0
|
||||
#define AXIS_KEY_UP 1
|
||||
|
||||
typedef struct MouseS {
|
||||
int32_t x;
|
||||
|
@ -239,7 +240,9 @@ int32_t apiDebugPrint(lua_State *L);
|
|||
int32_t apiDiscAudio(lua_State *L);
|
||||
int32_t apiDiscChangeSpeed(lua_State *L);
|
||||
int32_t apiDiscGetFrame(lua_State *L);
|
||||
int32_t apiDiscGetHeight(lua_State *L);
|
||||
int32_t apiDiscGetState(lua_State *L);
|
||||
int32_t apiDiscGetWidth(lua_State *L);
|
||||
int32_t apiDiscPause(lua_State *L);
|
||||
int32_t apiDiscPauseAtFrame(lua_State *L);
|
||||
int32_t apiDiscPlay(lua_State *L);
|
||||
|
@ -2613,6 +2616,24 @@ int32_t apiMouseHowMany(lua_State *L) {
|
|||
}
|
||||
|
||||
|
||||
int32_t apiDiscGetHeight(lua_State *L) {
|
||||
int32_t r = 0;
|
||||
if (_global.videoHandle >= 0) r = videoGetHeight(_global.videoHandle);
|
||||
luaTrace(L, "discGetHeight", "%d", r);
|
||||
lua_pushinteger(L, r);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int32_t apiDiscGetWidth(lua_State *L) {
|
||||
int32_t r = 0;
|
||||
if (_global.videoHandle >= 0) r = videoGetWidth(_global.videoHandle);
|
||||
luaTrace(L, "discGetWidth", "%d", r);
|
||||
lua_pushinteger(L, r);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int32_t apiDiscGetState(lua_State *L) {
|
||||
int32_t isPlaying = -1;
|
||||
|
||||
|
@ -3451,8 +3472,7 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, ConfigT *conf) {
|
|||
int32_t xr = 0;
|
||||
int32_t yr = 0;
|
||||
int32_t intReturn = 0;
|
||||
int32_t lastAnalogAxis = -1;
|
||||
int32_t lastAnalogDirection = -1;
|
||||
int32_t axisIndex = 0;
|
||||
int64_t thisFrame = -1;
|
||||
int64_t lastFrame = -1;
|
||||
uint32_t frameClock = 0;
|
||||
|
@ -3476,6 +3496,11 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, ConfigT *conf) {
|
|||
SDL_Event event;
|
||||
ManyMouseEvent mouseEvent;
|
||||
MouseT *mouse = NULL;
|
||||
int32_t lastAnalogDirection[AXIS_COUNT];
|
||||
//float val = 0;
|
||||
//float maxval = 0;
|
||||
int32_t lastMouseX = 0;
|
||||
int32_t lastMouseY = 0;
|
||||
|
||||
// Set up globals
|
||||
memset(&_global, 0, sizeof(GlobalT));
|
||||
|
@ -3626,7 +3651,9 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, ConfigT *conf) {
|
|||
lua_register(_global.luaContext, "discAudio", apiDiscAudio);
|
||||
lua_register(_global.luaContext, "discChangeSpeed", apiDiscChangeSpeed);
|
||||
lua_register(_global.luaContext, "discGetFrame", apiDiscGetFrame);
|
||||
lua_register(_global.luaContext, "discGetHeight", apiDiscGetHeight);
|
||||
lua_register(_global.luaContext, "discGetState", apiDiscGetState);
|
||||
lua_register(_global.luaContext, "discGetWidth", apiDiscGetWidth);
|
||||
lua_register(_global.luaContext, "discPause", apiDiscPause);
|
||||
lua_register(_global.luaContext, "discPauseAtFrame", apiDiscPauseAtFrame);
|
||||
lua_register(_global.luaContext, "discPlay", apiDiscPlay);
|
||||
|
@ -3854,15 +3881,15 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, ConfigT *conf) {
|
|||
SDL_SetSurfaceBlendMode(_global.overlay, SDL_BLENDMODE_BLEND);
|
||||
|
||||
// Mouse setup
|
||||
_global.mouseEnabled = (bool)!_global.conf->noMouse;
|
||||
_global.mouseCount = ManyMouse_Init();
|
||||
//utilSay("***DEBUG*** Mouse Driver: %s", ManyMouse_DriverName());
|
||||
//utilSay("***DEBUG*** Mice Found: %d", _global.mouseCount);
|
||||
if (_global.mouseCount < 1) utilDie("No mice detected.");
|
||||
if ((_global.mouseCount < 1) || !_global.mouseEnabled) utilDie("No mice detected.");
|
||||
if (_global.mouseCount > MAX_MICE) {
|
||||
_global.mouseCount = MAX_MICE;
|
||||
}
|
||||
memset(_global.mice, 0, sizeof(_global.mice));
|
||||
_global.mouseEnabled = (bool)!_global.conf->noMouse;
|
||||
for (x=0; x<_global.mouseCount; x++) {
|
||||
strncpy(_global.mice[x].name, ManyMouse_DeviceName((unsigned)x), sizeof(_global.mice[x].name));
|
||||
_global.mice[x].name[sizeof(_global.mice[x].name) - 1] = 0;
|
||||
|
@ -3876,9 +3903,10 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, ConfigT *conf) {
|
|||
SDL_SetWindowGrab(_global.window, SDL_TRUE);
|
||||
SDL_ShowCursor(SDL_DISABLE);
|
||||
|
||||
// Clear axis cache
|
||||
// Clear axis caches
|
||||
for (x=0; x<AXIS_COUNT; x++) {
|
||||
_global.axisCache[x] = 0;
|
||||
lastAnalogDirection[x] = AXIS_KEY_UP;
|
||||
}
|
||||
|
||||
// Controllers are started by the event loop
|
||||
|
@ -3911,6 +3939,7 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, ConfigT *conf) {
|
|||
while (SDL_PollEvent(&event)) {
|
||||
switch (event.type) {
|
||||
case SDL_CONTROLLERAXISMOTION:
|
||||
axisIndex = event.caxis.which * 2 + event.caxis.axis;
|
||||
// Is this in a range we care about?
|
||||
if (abs(event.caxis.value) > _global.controllerDeadZone) {
|
||||
// Determine which "scancode" to process - see Framework.singe
|
||||
|
@ -3918,33 +3947,22 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, ConfigT *conf) {
|
|||
x = event.caxis.which * 100 + 500;
|
||||
// The axis value lines up with the enumeration used by SDL * 3
|
||||
x += event.caxis.axis * 3;
|
||||
// Fire the down/up events for the entire axis
|
||||
if ((lastAnalogAxis != -1) && (lastAnalogAxis != x)) {
|
||||
processKey(false, 0, x);
|
||||
}
|
||||
processKey(true, 0, x);
|
||||
lastAnalogAxis = x;
|
||||
// Finally we add the particular direction we're interested in
|
||||
x += (event.caxis.value < 0) ? 1 : 2;
|
||||
// Fire the down/up events for the axis direction
|
||||
if ((lastAnalogDirection != -1) && (lastAnalogDirection != x)) {
|
||||
processKey(false, 0, x);
|
||||
}
|
||||
if (lastAnalogDirection[axisIndex] != AXIS_KEY_DOWN) {
|
||||
processKey(true, 0, x);
|
||||
lastAnalogDirection = x;
|
||||
lastAnalogDirection[axisIndex] = AXIS_KEY_DOWN;
|
||||
}
|
||||
} else {
|
||||
// Handle "up" events for controller inside dead zone
|
||||
if ((lastAnalogAxis != -1) && (lastAnalogAxis != x)) {
|
||||
if (lastAnalogDirection[axisIndex] != AXIS_KEY_UP) {
|
||||
processKey(false, 0, x);
|
||||
lastAnalogAxis = -1;
|
||||
}
|
||||
if ((lastAnalogDirection != -1) && (lastAnalogDirection != x)) {
|
||||
processKey(false, 0, x);
|
||||
lastAnalogDirection = -1;
|
||||
lastAnalogDirection[axisIndex] = AXIS_KEY_UP;
|
||||
}
|
||||
}
|
||||
// Remember this change
|
||||
_global.axisCache[event.caxis.which * 2 + event.caxis.axis] = event.caxis.value;
|
||||
_global.axisCache[axisIndex] = event.caxis.value;
|
||||
// Fire analog event
|
||||
callLua("onControllerMoved", "iii", event.caxis.axis, event.caxis.value, event.caxis.which);
|
||||
break;
|
||||
|
@ -4058,36 +4076,45 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, ConfigT *conf) {
|
|||
x = (int32_t)(mouse->x * _global.overlayScaleX);
|
||||
y = (int32_t)(mouse->y * _global.overlayScaleY);
|
||||
xr = (int32_t)(mouse->relx * _global.overlayScaleX);
|
||||
yr = (int32_t)(mouse->relx * _global.overlayScaleY);
|
||||
yr = (int32_t)(mouse->rely * _global.overlayScaleY);
|
||||
//utilSay("ManyMouse %d: Relative %dx%d r=%dx%d", mouseEvent.device, x, y, xr, yr);
|
||||
// Remember this change
|
||||
_global.axisCache[MAX_CONTROLLERS * 2 + mouseEvent.device * 2] = x;
|
||||
_global.axisCache[MAX_CONTROLLERS * 2 + mouseEvent.device * 2 + 1] = y;
|
||||
_global.axisCache[MAX_CONTROLLERS * 2 + mouseEvent.device * 2] = xr;
|
||||
_global.axisCache[MAX_CONTROLLERS * 2 + mouseEvent.device * 2 + 1] = yr;
|
||||
// Fire event
|
||||
callLua("onMouseMoved", "iiiii", x, y, xr, yr, mouseEvent.device);
|
||||
//callLua("onMouseMoved", "iiiii", x, y, xr, yr, mouseEvent.device);
|
||||
// We return relative coords for all parameters since we have no actual X & Y
|
||||
callLua("onMouseMoved", "iiiii", xr, yr, xr, yr, mouseEvent.device);
|
||||
break;
|
||||
|
||||
//***TODO*** Doesn't ever seem used?
|
||||
/*
|
||||
case MANYMOUSE_EVENT_ABSMOTION:
|
||||
val = (float)(mouseEvent.value - mouseEvent.minval);
|
||||
maxval = (float)(mouseEvent.maxval - mouseEvent.minval);
|
||||
switch (mouseEvent.item) {
|
||||
case 0:
|
||||
mouse->x += mouseEvent.value;
|
||||
mouse->x = (val / maxval) * videoGetWidth(_global.videoHandle);
|
||||
//mouse->x += mouseEvent.value;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
mouse->y += mouseEvent.value;
|
||||
mouse->y = (val / maxval) * videoGetHeight(_global.videoHandle);
|
||||
//mouse->y += mouseEvent.value;
|
||||
break;
|
||||
}
|
||||
x = (int32_t)(mouse->x * _global.overlayScaleX);
|
||||
y = (int32_t)(mouse->y * _global.overlayScaleY);
|
||||
xr = (int32_t)(mouse->relx * _global.overlayScaleX);
|
||||
yr = (int32_t)(mouse->relx * _global.overlayScaleY);
|
||||
//utilSay("Mouse %d: Absolute %d, %d", mouseEvent.device, x, y);
|
||||
yr = (int32_t)(mouse->rely * _global.overlayScaleY);
|
||||
//utilSay("ManyMouse %d: Absolute %dx%d r=%dx%d", mouseEvent.device, x, y, xr, yr);
|
||||
// Remember this change
|
||||
_global.axisCache[MAX_CONTROLLERS * 2 + mouseEvent.device * 2] = x;
|
||||
_global.axisCache[MAX_CONTROLLERS * 2 + mouseEvent.device * 2 + 1] = y;
|
||||
// Fire event
|
||||
callLua("onMouseMoved", "iiiii", x, y, xr, yr, mouseEvent.device);
|
||||
break;
|
||||
|
||||
*/
|
||||
case MANYMOUSE_EVENT_BUTTON:
|
||||
if (mouseEvent.item < 5 /* 32 */) { // Limited to 5 buttons so it matches single-mouse mode
|
||||
//utilSay("ManyMouse %d Button: %d", mouseEvent.device, mouseEvent.item);
|
||||
|
@ -4153,6 +4180,9 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, ConfigT *conf) {
|
|||
|
||||
// Update display
|
||||
if (_global.refreshDisplay || _global.discStopped) {
|
||||
// Clear entire display to black
|
||||
SDL_SetRenderDrawColor(_global.renderer, 0, 0, 0, 255);
|
||||
SDL_RenderClear(_global.renderer);
|
||||
// Sinden Gun Border
|
||||
if (sindenWhite.x >= 0) {
|
||||
if (sindenBlack.x >= 0) {
|
||||
|
@ -4164,18 +4194,20 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, ConfigT *conf) {
|
|||
} else {
|
||||
// Only white
|
||||
SDL_SetRenderDrawColor(_global.renderer, sindenWhiteColor.r, sindenWhiteColor.g, sindenWhiteColor.b, sindenWhiteColor.a);
|
||||
SDL_RenderClear(_global.renderer);
|
||||
SDL_RenderFillRect(_global.renderer, &sindenBlack);
|
||||
//SDL_RenderClear(_global.renderer);
|
||||
}
|
||||
SDL_RenderFillRect(_global.renderer, &windowTarget);
|
||||
//SDL_RenderFillRect(_global.renderer, &windowTarget);
|
||||
}
|
||||
// Laserdisc Video
|
||||
if (_global.discStopped) {
|
||||
// Stopped discs display blue like the good old days
|
||||
SDL_SetRenderTarget(_global.renderer, _global.videoTexture);
|
||||
SDL_SetRenderDrawColor(_global.renderer, 0, 0, 255, 255);
|
||||
SDL_RenderClear(_global.renderer);
|
||||
SDL_RenderFillRect(_global.renderer, &windowTarget);
|
||||
SDL_SetRenderTarget(_global.renderer, NULL);
|
||||
}
|
||||
// Copy current video frame into display
|
||||
SDL_RenderCopy(_global.renderer, _global.videoTexture, NULL, &windowTarget);
|
||||
// Overlay
|
||||
overlayTexture = SDL_CreateTextureFromSurface(_global.renderer, _global.overlay);
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
// Don't forget to update singe.rc!
|
||||
#define SINGE_VERSION 2.00
|
||||
#define VERSION_STRING "v2.00b18"
|
||||
#define VERSION_STRING "v2.00b19"
|
||||
#define COPYRIGHT_END_YEAR "2020"
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
101 ICON "/tmp/icon.ico"
|
||||
1 VERSIONINFO
|
||||
FILEVERSION 2,0,0,18
|
||||
PRODUCTVERSION 2,0,0,18
|
||||
FILEVERSION 2,0,0,19
|
||||
PRODUCTVERSION 2,0,0,19
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
|
@ -9,12 +9,12 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "CompanyName", "Kangaroo Punch Studios"
|
||||
VALUE "FileDescription", "Somewhat Interactive Nostalgic Game Engine"
|
||||
VALUE "FileVersion", "2.00b18"
|
||||
VALUE "FileVersion", "2.00b19"
|
||||
VALUE "InternalName", "Singe"
|
||||
VALUE "LegalCopyright", "Copyright 2006-2020 Scott C. Duensing"
|
||||
VALUE "OriginalFilename", "singe.exe"
|
||||
VALUE "ProductName", "Singe"
|
||||
VALUE "ProductVersion", "2.00b18"
|
||||
VALUE "ProductVersion", "2.00b19"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
Loading…
Add table
Reference in a new issue