mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-07-28 01:51:49 +03:00
Compare commits
12 Commits
2.4.3
..
9adb0552ff
| Author | SHA1 | Date | |
|---|---|---|---|
| 9adb0552ff | |||
| ed795ea457 | |||
| be29c31511 | |||
| 1099a9ee8e | |||
| 08c3590a0a | |||
| ea811e15bd | |||
| 4b9f26bf81 | |||
| 6ed72297da | |||
| cf66323721 | |||
| b708b8911c | |||
| 30bdb47f80 | |||
| f22ae5fbf5 |
@@ -49,14 +49,16 @@ endif()
|
|||||||
# RPATH
|
# RPATH
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(BIN_LIBROOT "osx")
|
|
||||||
set(BIN_RPATH "@executable_path/osx")
|
set(BIN_RPATH "@executable_path/osx")
|
||||||
elseif(CMAKE_SIZEOF_VOID_P MATCHES "8")
|
|
||||||
set(BIN_LIBROOT "lib64")
|
|
||||||
set(BIN_RPATH "\$ORIGIN/lib64")
|
|
||||||
else()
|
else()
|
||||||
set(BIN_LIBROOT "lib")
|
SET(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-Wl,--disable-new-dtags")
|
||||||
set(BIN_RPATH "\$ORIGIN/lib")
|
|
||||||
|
if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
||||||
|
# Naming quirk for backward compatibility
|
||||||
|
SET(BIN_RPATH "\$ORIGIN/lib64")
|
||||||
|
else()
|
||||||
|
SET(BIN_RPATH "\$ORIGIN/lib${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_SKIP_BUILD_RPATH TRUE)
|
set(CMAKE_SKIP_BUILD_RPATH TRUE)
|
||||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||||
|
|||||||
@@ -1387,6 +1387,10 @@ next:
|
|||||||
{
|
{
|
||||||
name.text.push_back(std::string(text));
|
name.text.push_back(std::string(text));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
name.text.push_back(std::string(""));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1404,6 +1408,10 @@ next:
|
|||||||
{
|
{
|
||||||
name.text.push_back(std::string(text));
|
name.text.push_back(std::string(text));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
name.text.push_back(std::string(""));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3175,8 +3175,8 @@ void editorinput(void)
|
|||||||
ed.old_tilex = ed.tilex;
|
ed.old_tilex = ed.tilex;
|
||||||
ed.old_tiley = ed.tiley;
|
ed.old_tiley = ed.tiley;
|
||||||
|
|
||||||
ed.tilex = key.mousex / 8;
|
ed.tilex = SDL_clamp(key.mousex, 0, SCREEN_WIDTH_PIXELS - 1) / 8;
|
||||||
ed.tiley = key.mousey / 8;
|
ed.tiley = SDL_clamp(key.mousey, 0, SCREEN_HEIGHT_PIXELS - 1) / 8;
|
||||||
|
|
||||||
bool up_pressed = key.isDown(SDLK_UP) || key.isDown(SDL_CONTROLLER_BUTTON_DPAD_UP);
|
bool up_pressed = key.isDown(SDLK_UP) || key.isDown(SDL_CONTROLLER_BUTTON_DPAD_UP);
|
||||||
bool down_pressed = key.isDown(SDLK_DOWN) || key.isDown(SDL_CONTROLLER_BUTTON_DPAD_DOWN);
|
bool down_pressed = key.isDown(SDLK_DOWN) || key.isDown(SDL_CONTROLLER_BUTTON_DPAD_DOWN);
|
||||||
@@ -3594,7 +3594,6 @@ void editorinput(void)
|
|||||||
if (game.currentmenuname == Menu::ed_settings)
|
if (game.currentmenuname == Menu::ed_settings)
|
||||||
{
|
{
|
||||||
ed.state = EditorState_DRAW;
|
ed.state = EditorState_DRAW;
|
||||||
gameScreen.recacheTextures();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7800,7 +7800,6 @@ void Game::mapmenuchange(const enum GameGamestate newgamestate, const bool user_
|
|||||||
gamestate = newgamestate;
|
gamestate = newgamestate;
|
||||||
graphics.resumegamemode = false;
|
graphics.resumegamemode = false;
|
||||||
mapheld = true;
|
mapheld = true;
|
||||||
gameScreen.recacheTextures();
|
|
||||||
|
|
||||||
if (prevgamestate == GAMEMODE)
|
if (prevgamestate == GAMEMODE)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -459,6 +459,10 @@ void KeyPoll::Poll(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case SDL_RENDER_TARGETS_RESET:
|
||||||
|
gameScreen.recacheTextures();
|
||||||
|
break;
|
||||||
|
|
||||||
/* Window Events */
|
/* Window Events */
|
||||||
case SDL_WINDOWEVENT:
|
case SDL_WINDOWEVENT:
|
||||||
switch (evt.window.event)
|
switch (evt.window.event)
|
||||||
@@ -496,7 +500,6 @@ void KeyPoll::Poll(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
SDL_DisableScreenSaver();
|
SDL_DisableScreenSaver();
|
||||||
gameScreen.recacheTextures();
|
|
||||||
break;
|
break;
|
||||||
case SDL_WINDOWEVENT_FOCUS_LOST:
|
case SDL_WINDOWEVENT_FOCUS_LOST:
|
||||||
if (!game.disablepause)
|
if (!game.disablepause)
|
||||||
|
|||||||
@@ -214,11 +214,11 @@ void mapclass::updateroomnames(void)
|
|||||||
if (rx == roomname->x && ry == roomname->y && (roomname->flag == -1 || (INBOUNDS_ARR(roomname->flag, obj.flags) && obj.flags[roomname->flag])))
|
if (rx == roomname->x && ry == roomname->y && (roomname->flag == -1 || (INBOUNDS_ARR(roomname->flag, obj.flags) && obj.flags[roomname->flag])))
|
||||||
{
|
{
|
||||||
roomname_special = true;
|
roomname_special = true;
|
||||||
if (roomname->type == RoomnameType_STATIC)
|
if (roomname->type == RoomnameType_STATIC && roomname->text.size() >= 1)
|
||||||
{
|
{
|
||||||
setroomname(roomname->text[0].c_str());
|
setroomname(roomname->text[0].c_str());
|
||||||
}
|
}
|
||||||
if (roomname->type == RoomnameType_GLITCH)
|
if (roomname->type == RoomnameType_GLITCH && roomname->text.size() >= 2)
|
||||||
{
|
{
|
||||||
roomname->delay--;
|
roomname->delay--;
|
||||||
if (roomname->delay <= 0)
|
if (roomname->delay <= 0)
|
||||||
@@ -232,7 +232,7 @@ void mapclass::updateroomnames(void)
|
|||||||
}
|
}
|
||||||
setroomname(roomname->text[roomname->progress].c_str());
|
setroomname(roomname->text[roomname->progress].c_str());
|
||||||
}
|
}
|
||||||
if (roomname->type == RoomnameType_TRANSFORM)
|
if (roomname->type == RoomnameType_TRANSFORM && roomname->text.size() >= 1)
|
||||||
{
|
{
|
||||||
roomname->delay--;
|
roomname->delay--;
|
||||||
if (roomname->delay <= 0)
|
if (roomname->delay <= 0)
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ public:
|
|||||||
format.nSamplesPerSec = spec.freq;
|
format.nSamplesPerSec = spec.freq;
|
||||||
format.wFormatTag = FAUDIO_FORMAT_PCM;
|
format.wFormatTag = FAUDIO_FORMAT_PCM;
|
||||||
format.wBitsPerSample = SDL_AUDIO_BITSIZE(spec.format);
|
format.wBitsPerSample = SDL_AUDIO_BITSIZE(spec.format);
|
||||||
format.nBlockAlign = format.nChannels * format.wBitsPerSample;
|
format.nBlockAlign = format.nChannels * (format.wBitsPerSample / 8);
|
||||||
format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign;
|
format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign;
|
||||||
format.cbSize = 0;
|
format.cbSize = 0;
|
||||||
valid = true;
|
valid = true;
|
||||||
@@ -158,7 +158,7 @@ end:
|
|||||||
format.wBitsPerSample = sizeof(float) * 8;
|
format.wBitsPerSample = sizeof(float) * 8;
|
||||||
format.nChannels = vorbis_info.channels;
|
format.nChannels = vorbis_info.channels;
|
||||||
format.nSamplesPerSec = vorbis_info.sample_rate;
|
format.nSamplesPerSec = vorbis_info.sample_rate;
|
||||||
format.nBlockAlign = format.nChannels * format.wBitsPerSample;
|
format.nBlockAlign = format.nChannels * (format.wBitsPerSample / 8);
|
||||||
format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign;
|
format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign;
|
||||||
format.cbSize = 0;
|
format.cbSize = 0;
|
||||||
|
|
||||||
@@ -210,7 +210,7 @@ end:
|
|||||||
}
|
}
|
||||||
FAudioBuffer faudio_buffer = {
|
FAudioBuffer faudio_buffer = {
|
||||||
FAUDIO_END_OF_STREAM, /* Flags */
|
FAUDIO_END_OF_STREAM, /* Flags */
|
||||||
wav_length * 8, /* AudioBytes */
|
wav_length, /* AudioBytes */
|
||||||
wav_buffer, /* AudioData */
|
wav_buffer, /* AudioData */
|
||||||
0, /* playbegin */
|
0, /* playbegin */
|
||||||
0, /* playlength */
|
0, /* playlength */
|
||||||
@@ -262,7 +262,7 @@ end:
|
|||||||
format.nSamplesPerSec = audio_rate;
|
format.nSamplesPerSec = audio_rate;
|
||||||
format.wFormatTag = FAUDIO_FORMAT_PCM;
|
format.wFormatTag = FAUDIO_FORMAT_PCM;
|
||||||
format.wBitsPerSample = 16;
|
format.wBitsPerSample = 16;
|
||||||
format.nBlockAlign = format.nChannels * format.wBitsPerSample;
|
format.nBlockAlign = format.nChannels * (format.wBitsPerSample / 8);
|
||||||
format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign;
|
format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign;
|
||||||
format.cbSize = 0;
|
format.cbSize = 0;
|
||||||
voice_formats[i] = format;
|
voice_formats[i] = format;
|
||||||
@@ -392,7 +392,7 @@ public:
|
|||||||
format.wBitsPerSample = sizeof(float) * 8;
|
format.wBitsPerSample = sizeof(float) * 8;
|
||||||
format.nChannels = vorbis_info.channels;
|
format.nChannels = vorbis_info.channels;
|
||||||
format.nSamplesPerSec = vorbis_info.sample_rate;
|
format.nSamplesPerSec = vorbis_info.sample_rate;
|
||||||
format.nBlockAlign = format.nChannels * format.wBitsPerSample;
|
format.nBlockAlign = format.nChannels * (format.wBitsPerSample / 8);
|
||||||
format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign;
|
format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign;
|
||||||
format.cbSize = 0;
|
format.cbSize = 0;
|
||||||
|
|
||||||
@@ -731,7 +731,7 @@ musicclass::musicclass(void)
|
|||||||
|
|
||||||
void musicclass::init(void)
|
void musicclass::init(void)
|
||||||
{
|
{
|
||||||
if (FAudioCreate(&faudioctx, 0, FAUDIO_DEFAULT_PROCESSOR))
|
if (FAudioCreate(&faudioctx, FAUDIO_1024_QUANTUM, FAUDIO_DEFAULT_PROCESSOR))
|
||||||
{
|
{
|
||||||
vlog_error("Unable to initialize FAudio");
|
vlog_error("Unable to initialize FAudio");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#ifndef RELEASEVERSION_H
|
#ifndef RELEASEVERSION_H
|
||||||
#define RELEASEVERSION_H
|
#define RELEASEVERSION_H
|
||||||
|
|
||||||
#define RELEASE_VERSION "v2.4.3"
|
#define RELEASE_VERSION "v2.4.4"
|
||||||
|
|
||||||
#endif /* RELEASEVERSION_H */
|
#endif /* RELEASEVERSION_H */
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
#include "Alloc.h"
|
#include "Alloc.h"
|
||||||
#include "Constants.h"
|
#include "Constants.h"
|
||||||
|
#include "CustomLevels.h"
|
||||||
|
#include "Enums.h"
|
||||||
#include "Exit.h"
|
#include "Exit.h"
|
||||||
#include "FileSystemUtils.h"
|
#include "FileSystemUtils.h"
|
||||||
#include "Game.h"
|
#include "Game.h"
|
||||||
@@ -14,6 +16,7 @@
|
|||||||
#include "GraphicsResources.h"
|
#include "GraphicsResources.h"
|
||||||
#endif
|
#endif
|
||||||
#include "InterimVersion.h"
|
#include "InterimVersion.h"
|
||||||
|
#include "Map.h"
|
||||||
#include "Render.h"
|
#include "Render.h"
|
||||||
#include "Vlogging.h"
|
#include "Vlogging.h"
|
||||||
|
|
||||||
@@ -152,7 +155,6 @@ void Screen::ResizeScreen(int x, int y)
|
|||||||
if (!isWindowed || isForcedFullscreen())
|
if (!isWindowed || isForcedFullscreen())
|
||||||
{
|
{
|
||||||
int result = SDL_SetWindowFullscreen(m_window, SDL_WINDOW_FULLSCREEN_DESKTOP);
|
int result = SDL_SetWindowFullscreen(m_window, SDL_WINDOW_FULLSCREEN_DESKTOP);
|
||||||
recacheTextures();
|
|
||||||
if (result != 0)
|
if (result != 0)
|
||||||
{
|
{
|
||||||
vlog_error("Error: could not set the game to fullscreen mode: %s", SDL_GetError());
|
vlog_error("Error: could not set the game to fullscreen mode: %s", SDL_GetError());
|
||||||
@@ -175,7 +177,6 @@ void Screen::ResizeScreen(int x, int y)
|
|||||||
SDL_WINDOWPOS_CENTERED_DISPLAY(windowDisplay)
|
SDL_WINDOWPOS_CENTERED_DISPLAY(windowDisplay)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
recacheTextures();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -352,8 +353,6 @@ void Screen::toggleVSync(void)
|
|||||||
{
|
{
|
||||||
vsync = !vsync;
|
vsync = !vsync;
|
||||||
SDL_RenderSetVSync(m_renderer, (int) vsync);
|
SDL_RenderSetVSync(m_renderer, (int) vsync);
|
||||||
|
|
||||||
recacheTextures();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Screen::recacheTextures(void)
|
void Screen::recacheTextures(void)
|
||||||
@@ -366,15 +365,21 @@ void Screen::recacheTextures(void)
|
|||||||
graphics.towerbg.tdrawback = true;
|
graphics.towerbg.tdrawback = true;
|
||||||
graphics.titlebg.tdrawback = true;
|
graphics.titlebg.tdrawback = true;
|
||||||
|
|
||||||
if (game.ingame_titlemode)
|
if (game.gamestate == MAPMODE || game.ingame_titlemode)
|
||||||
{
|
{
|
||||||
// Redraw the cached gameplay texture if we're in the in-game menu.
|
// Redraw the cached gameplay texture if we're in the map screen.
|
||||||
// Additionally, reset alpha so things don't jitter when re-entering gameplay.
|
// Additionally, reset alpha so things don't jitter when re-entering gameplay.
|
||||||
float oldAlpha = graphics.alpha;
|
float oldAlpha = graphics.alpha;
|
||||||
graphics.alpha = 0;
|
graphics.alpha = 0;
|
||||||
gamerender();
|
gamerender();
|
||||||
graphics.alpha = oldAlpha;
|
graphics.alpha = oldAlpha;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (map.custommode)
|
||||||
|
{
|
||||||
|
// If we're in a custom level, regenerate the minimap, which also got cleared.
|
||||||
|
cl.generatecustomminimap();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Screen::isForcedFullscreen(void)
|
bool Screen::isForcedFullscreen(void)
|
||||||
|
|||||||
@@ -10,8 +10,8 @@
|
|||||||
|
|
||||||
/* Steamworks interface versions */
|
/* Steamworks interface versions */
|
||||||
|
|
||||||
#define VVVVVV_STEAMCLIENT "SteamClient017"
|
#define VVVVVV_STEAMCLIENT "SteamClient023"
|
||||||
#define VVVVVV_STEAMUSERSTATS "STEAMUSERSTATS_INTERFACE_VERSION011"
|
#define VVVVVV_STEAMUSERSTATS "STEAMUSERSTATS_INTERFACE_VERSION013"
|
||||||
#define VVVVVV_STEAMSCREENSHOTS "STEAMSCREENSHOTS_INTERFACE_VERSION003"
|
#define VVVVVV_STEAMSCREENSHOTS "STEAMSCREENSHOTS_INTERFACE_VERSION003"
|
||||||
|
|
||||||
/* Shared object file name */
|
/* Shared object file name */
|
||||||
@@ -45,8 +45,16 @@ struct SteamAPICallCompleted_t
|
|||||||
uint32_t m_cubParam;
|
uint32_t m_cubParam;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef enum ESteamAPIInitResult
|
||||||
|
{
|
||||||
|
k_ESteamAPIInitResult_OK = 0,
|
||||||
|
k_ESteamAPIInitResult_FailedGeneric = 1,
|
||||||
|
k_ESteamAPIInitResult_NoSteamClient = 2,
|
||||||
|
k_ESteamAPIInitResult_VersionMismatch = 3,
|
||||||
|
} ESteamAPIInitResult;
|
||||||
|
|
||||||
#define FUNC_LIST \
|
#define FUNC_LIST \
|
||||||
FOREACH_FUNC(uint8_t, SteamAPI_Init, (void)) \
|
FOREACH_FUNC(ESteamAPIInitResult, SteamAPI_InitFlat, (void*)) \
|
||||||
FOREACH_FUNC(void, SteamAPI_Shutdown, (void)) \
|
FOREACH_FUNC(void, SteamAPI_Shutdown, (void)) \
|
||||||
FOREACH_FUNC(void, SteamAPI_RunCallbacks, (void)) \
|
FOREACH_FUNC(void, SteamAPI_RunCallbacks, (void)) \
|
||||||
FOREACH_FUNC(struct ISteamClient*, SteamInternal_CreateInterface, (const char*)) \
|
FOREACH_FUNC(struct ISteamClient*, SteamInternal_CreateInterface, (const char*)) \
|
||||||
@@ -58,7 +66,6 @@ struct SteamAPICallCompleted_t
|
|||||||
int32_t, \
|
int32_t, \
|
||||||
const char* \
|
const char* \
|
||||||
)) \
|
)) \
|
||||||
FOREACH_FUNC(uint8_t, SteamAPI_ISteamUserStats_RequestCurrentStats, (struct ISteamUserStats*)) \
|
|
||||||
FOREACH_FUNC(uint8_t, SteamAPI_ISteamUserStats_StoreStats, (struct ISteamUserStats*)) \
|
FOREACH_FUNC(uint8_t, SteamAPI_ISteamUserStats_StoreStats, (struct ISteamUserStats*)) \
|
||||||
FOREACH_FUNC(uint8_t, SteamAPI_ISteamUserStats_SetAchievement, ( \
|
FOREACH_FUNC(uint8_t, SteamAPI_ISteamUserStats_SetAchievement, ( \
|
||||||
struct ISteamUserStats*, \
|
struct ISteamUserStats*, \
|
||||||
@@ -177,7 +184,7 @@ int32_t STEAM_init(void)
|
|||||||
FUNC_LIST
|
FUNC_LIST
|
||||||
#undef FOREACH_FUNC
|
#undef FOREACH_FUNC
|
||||||
|
|
||||||
if (!SteamAPI_Init())
|
if (SteamAPI_InitFlat(NULL) != k_ESteamAPIInitResult_OK)
|
||||||
{
|
{
|
||||||
vlog_error("Steamworks not initialized!");
|
vlog_error("Steamworks not initialized!");
|
||||||
ClearPointers();
|
ClearPointers();
|
||||||
@@ -207,7 +214,6 @@ int32_t STEAM_init(void)
|
|||||||
ClearPointers();
|
ClearPointers();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
SteamAPI_ISteamUserStats_RequestCurrentStats(steamUserStats);
|
|
||||||
steamScreenshots = SteamAPI_ISteamClient_GetISteamScreenshots(
|
steamScreenshots = SteamAPI_ISteamClient_GetISteamScreenshots(
|
||||||
steamClient,
|
steamClient,
|
||||||
steamUser,
|
steamUser,
|
||||||
|
|||||||
Vendored
+1
-1
Submodule third_party/FAudio updated: 38e9da7264...14f2875e27
Reference in New Issue
Block a user