This commit is contained in:
DepressedTWM 2026-05-12 15:05:32 +04:00
parent e5714fbb75
commit 07b89ef555
28 changed files with 78 additions and 177 deletions

View file

@ -162,6 +162,5 @@ void audioBindingInit(){
_rb_define_module_function(module, "__reset__", audioReset); _rb_define_module_function(module, "__reset__", audioReset);
INIT_AUD_PROP_BIND( BGM_Volume, "bgm_volume" ); INIT_AUD_PROP_BIND( BGM_Volume, "bgm_volume" );
INIT_AUD_PROP_BIND( SFX_Volume, "sfx_volume" ); INIT_AUD_PROP_BIND( SFX_Volume, "sfx_volume" );es
printf("[audioBindingInit] Done\n");
} }

View file

@ -421,5 +421,4 @@ void bitmapBindingInit(){
} }
INIT_PROP_BIND(Bitmap, Font, "font"); INIT_PROP_BIND(Bitmap, Font, "font");
printf("[bitmapBindingInit] Done\n");
} }

View file

@ -217,5 +217,4 @@ void etcBindingInit(){
RB_ATTR_RW(Rect, Width, width); RB_ATTR_RW(Rect, Width, width);
RB_ATTR_RW(Rect, Height, height); RB_ATTR_RW(Rect, Height, height);
_rb_define_method(klass, "empty", rectEmpty); _rb_define_method(klass, "empty", rectEmpty);
printf("[bitmapBindingInit] Done\n");
} }

View file

@ -220,5 +220,4 @@ void fileIntBindingInit(){
VALUE marsh = rb_const_get(rb_cObject, rb_intern("Marshal")); VALUE marsh = rb_const_get(rb_cObject, rb_intern("Marshal"));
rb_define_alias(rb_singleton_class(marsh), "_mkxp_load_alias", "load"); rb_define_alias(rb_singleton_class(marsh), "_mkxp_load_alias", "load");
rb_define_module_function(marsh, "load", RUBY_METHOD_FUNC(_marshalLoad), -1); rb_define_module_function(marsh, "load", RUBY_METHOD_FUNC(_marshalLoad), -1);
printf("[fileIntBindingInit] Done\n");
} }

View file

@ -27,8 +27,7 @@
#include "binding-types.h" #include "binding-types.h"
template<class C> template<class C>
RB_METHOD(flashableFlash) RB_METHOD(flashableFlash){
{
Flashable *f = getPrivateData<C>(self); Flashable *f = getPrivateData<C>(self);
VALUE colorObj; VALUE colorObj;
@ -38,8 +37,7 @@ RB_METHOD(flashableFlash)
rb_get_args(argc, argv, "oi", &colorObj, &duration RB_ARG_END); rb_get_args(argc, argv, "oi", &colorObj, &duration RB_ARG_END);
if (NIL_P(colorObj)) if (NIL_P(colorObj)){
{
f->flash(0, duration); f->flash(0, duration);
return Qnil; return Qnil;
} }
@ -52,8 +50,7 @@ RB_METHOD(flashableFlash)
} }
template<class C> template<class C>
RB_METHOD(flashableUpdate) RB_METHOD(flashableUpdate){
{
RB_UNUSED_PARAM; RB_UNUSED_PARAM;
Flashable *f = getPrivateData<C>(self); Flashable *f = getPrivateData<C>(self);
@ -64,10 +61,10 @@ RB_METHOD(flashableUpdate)
} }
template<class C> template<class C>
static void flashableBindingInit(VALUE klass) static void flashableBindingInit(VALUE klass){
{
_rb_define_method(klass, "flash", flashableFlash<C>); _rb_define_method(klass, "flash", flashableFlash<C>);
_rb_define_method(klass, "update", flashableUpdate<C>); _rb_define_method(klass, "update", flashableUpdate<C>);
} }
#endif // FLASHABLEBINDING_H #endif // FLASHABLEBINDING_H

View file

@ -71,13 +71,11 @@ RB_METHOD(fontInitialize){
Font *f; Font *f;
if (NIL_P(namesObj)) if (NIL_P(namesObj)){
{
namesObj = rb_iv_get(rb_obj_class(self), "default_name"); namesObj = rb_iv_get(rb_obj_class(self), "default_name");
f = new Font(0, size); f = new Font(0, size);
} }
else else{
{
std::vector<std::string> names; std::vector<std::string> names;
collectStrings(namesObj, names); collectStrings(namesObj, names);
@ -302,5 +300,4 @@ void fontBindingInit(){
INIT_PROP_BIND(Font, Outline, "outline"); INIT_PROP_BIND(Font, Outline, "outline");
INIT_PROP_BIND(Font, OutColor, "out_color"); INIT_PROP_BIND(Font, OutColor, "out_color");
} }
printf("[fontBindingInit] Done\n");
} }

View file

@ -229,5 +229,4 @@ void graphicsBindingInit(){
INIT_GRA_PROP_BIND( ShowCursor, "show_cursor" ); INIT_GRA_PROP_BIND( ShowCursor, "show_cursor" );
INIT_GRA_PROP_BIND( Smooth, "smooth" ); INIT_GRA_PROP_BIND( Smooth, "smooth" );
INIT_GRA_PROP_BIND( Frameskip, "frameskip" ); INIT_GRA_PROP_BIND( Frameskip, "frameskip" );
printf("[graphicsBindingInit] Done\n");
} }

View file

@ -159,12 +159,10 @@ void inputBindingInit(){
_rb_define_module_function(module, "quit?", inputQuit); _rb_define_module_function(module, "quit?", inputQuit);
if (rgssVer >= 3) if (rgssVer >= 3){
{
VALUE symHash = rb_hash_new(); VALUE symHash = rb_hash_new();
for (size_t i = 0; i < buttonCodesN; ++i) for (size_t i = 0; i < buttonCodesN; ++i){
{
ID sym = rb_intern(buttonCodes[i].str); ID sym = rb_intern(buttonCodes[i].str);
VALUE val = INT2FIX(buttonCodes[i].val); VALUE val = INT2FIX(buttonCodes[i].val);
@ -176,16 +174,12 @@ void inputBindingInit(){
rb_iv_set(module, "buttoncodes", symHash); rb_iv_set(module, "buttoncodes", symHash);
getRbData()->buttoncodeHash = symHash; getRbData()->buttoncodeHash = symHash;
} }else{
else for (size_t i = 0; i < buttonCodesN; ++i){
{
for (size_t i = 0; i < buttonCodesN; ++i)
{
ID sym = rb_intern(buttonCodes[i].str); ID sym = rb_intern(buttonCodes[i].str);
VALUE val = INT2FIX(buttonCodes[i].val); VALUE val = INT2FIX(buttonCodes[i].val);
rb_const_set(module, sym, val); rb_const_set(module, sym, val);
} }
} }
printf("[inputBindingInit] Done\n");
} }

View file

@ -174,5 +174,4 @@ void journalBindingInit(){
_rb_define_module_function(module, "set", journalSet); _rb_define_module_function(module, "set", journalSet);
_rb_define_module_function(module, "active?", journalActive); _rb_define_module_function(module, "active?", journalActive);
_rb_define_module_function(module, "setLang", journalSetLang); _rb_define_module_function(module, "setLang", journalSetLang);
printf("[inputBindingInit] Done\n");
} }

View file

@ -79,11 +79,9 @@ int niko_server_thread(void *data){
out_pipe = open(NIKO_PIPE_PATH.c_str(), O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); out_pipe = open(NIKO_PIPE_PATH.c_str(), O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
SDL_LockMutex(mutex); SDL_LockMutex(mutex);
active = true; active = true;
if (message_len > 0) if (message_len > 0){
{ if (write(out_pipe, (char*)message_buffer, message_len) == -1){
if (write(out_pipe, (char*)message_buffer, message_len) == -1) Debug() << "[niko_server_thread] Failed to write to pipe!";
{
Debug() << "[niko_server_thread]Failed to write to pipe!";
} }
} }
SDL_UnlockMutex(mutex); SDL_UnlockMutex(mutex);
@ -210,5 +208,4 @@ void nikoBindingInit(){
//Functions //Functions
_rb_define_module_function(module, "get_ready", nikoPrepare); _rb_define_module_function(module, "get_ready", nikoPrepare);
_rb_define_module_function(module, "do_your_thing", nikoStart); _rb_define_module_function(module, "do_your_thing", nikoStart);
printf("[nikoBindingInit] Done\n");
} }

View file

@ -123,5 +123,4 @@ void oneshotBindingInit(){
_rb_define_module_function(module, "exiting", oneshotExiting); _rb_define_module_function(module, "exiting", oneshotExiting);
_rb_define_module_function(module, "shake", oneshotShake); _rb_define_module_function(module, "shake", oneshotShake);
_rb_define_module_function(module, "crc32", oneshotCRC32); _rb_define_module_function(module, "crc32", oneshotCRC32);
printf("[oneshotBindingInit] Done\n");
} }

View file

@ -75,5 +75,4 @@ void planeBindingInit(){
INIT_PROP_BIND( Plane, BlendType, "blend_type" ); INIT_PROP_BIND( Plane, BlendType, "blend_type" );
INIT_PROP_BIND( Plane, Color, "color" ); INIT_PROP_BIND( Plane, Color, "color" );
INIT_PROP_BIND( Plane, Tone, "tone" ); INIT_PROP_BIND( Plane, Tone, "tone" );
printf("[planeBindingInit] Done\n");
} }

View file

@ -26,8 +26,7 @@
#include "binding-util.h" #include "binding-util.h"
template<class C> template<class C>
RB_METHOD(sceneElementGetZ) RB_METHOD(sceneElementGetZ){
{
RB_UNUSED_PARAM; RB_UNUSED_PARAM;
SceneElement *se = getPrivateData<C>(self); SceneElement *se = getPrivateData<C>(self);
@ -39,8 +38,7 @@ RB_METHOD(sceneElementGetZ)
} }
template<class C> template<class C>
RB_METHOD(sceneElementSetZ) RB_METHOD(sceneElementSetZ){
{
SceneElement *se = getPrivateData<C>(self); SceneElement *se = getPrivateData<C>(self);
int z; int z;
@ -52,8 +50,7 @@ RB_METHOD(sceneElementSetZ)
} }
template<class C> template<class C>
RB_METHOD(sceneElementGetVisible) RB_METHOD(sceneElementGetVisible){
{
RB_UNUSED_PARAM; RB_UNUSED_PARAM;
SceneElement *se = getPrivateData<C>(self); SceneElement *se = getPrivateData<C>(self);
@ -65,8 +62,7 @@ RB_METHOD(sceneElementGetVisible)
} }
template<class C> template<class C>
RB_METHOD(sceneElementSetVisible) RB_METHOD(sceneElementSetVisible){
{
SceneElement *se = getPrivateData<C>(self); SceneElement *se = getPrivateData<C>(self);
bool visible; bool visible;
@ -79,8 +75,7 @@ RB_METHOD(sceneElementSetVisible)
template<class C> template<class C>
void void
sceneElementBindingInit(VALUE klass) sceneElementBindingInit(VALUE klass){
{
_rb_define_method(klass, "z", sceneElementGetZ<C>); _rb_define_method(klass, "z", sceneElementGetZ<C>);
_rb_define_method(klass, "z=", sceneElementSetZ<C>); _rb_define_method(klass, "z=", sceneElementSetZ<C>);
_rb_define_method(klass, "visible", sceneElementGetVisible<C>); _rb_define_method(klass, "visible", sceneElementGetVisible<C>);

View file

@ -76,5 +76,4 @@ void screenBindingInit(){
_rb_define_module_function(module, "start", screenStart); _rb_define_module_function(module, "start", screenStart);
_rb_define_module_function(module, "finish", screenFinish); _rb_define_module_function(module, "finish", screenFinish);
_rb_define_module_function(module, "set", screenSet); _rb_define_module_function(module, "set", screenSet);
printf("[screenBindingInit] Done\n");
} }

View file

@ -28,8 +28,7 @@
template<class C> template<class C>
static VALUE static VALUE
serializableDump(int, VALUE *, VALUE self) serializableDump(int, VALUE *, VALUE self){
{
Serializable *s = getPrivateData<C>(self); Serializable *s = getPrivateData<C>(self);
int dataSize = s->serialSize(); int dataSize = s->serialSize();
@ -43,8 +42,7 @@ serializableDump(int, VALUE *, VALUE self)
template<class C> template<class C>
void void
serializableBindingInit(VALUE klass) serializableBindingInit(VALUE klass){
{
_rb_define_method(klass, "_dump", serializableDump<C>); _rb_define_method(klass, "_dump", serializableDump<C>);
} }

View file

@ -131,5 +131,4 @@ void spriteBindingInit(){
INIT_PROP_BIND( Sprite, WaveSpeed, "wave_speed" ); INIT_PROP_BIND( Sprite, WaveSpeed, "wave_speed" );
INIT_PROP_BIND( Sprite, WavePhase, "wave_phase" ); INIT_PROP_BIND( Sprite, WavePhase, "wave_phase" );
} }
printf("[spriteBindingInit] Done\n");
} }

View file

@ -75,5 +75,4 @@ void steamBindingInit(){
_rb_define_module_function(module, "unlock", steamUnlock); _rb_define_module_function(module, "unlock", steamUnlock);
_rb_define_module_function(module, "lock", steamLock); _rb_define_module_function(module, "lock", steamLock);
_rb_define_module_function(module, "unlocked?", steamUnlocked); _rb_define_module_function(module, "unlocked?", steamUnlocked);
printf("[steamBindingInit] Done\n");
} }

View file

@ -20,6 +20,5 @@ void SunshineBindingInit(){
} }
if (!rb_respond_to(rb_cString, rb_intern("clone"))) { if (!rb_respond_to(rb_cString, rb_intern("clone"))) {
rb_define_method(rb_cString, "clone", RUBY_METHOD_FUNC(string_clone), 0); rb_define_method(rb_cString, "clone", RUBY_METHOD_FUNC(string_clone), 0);
} }
printf("[SunshineBindingInit] Done\n");
} }

View file

@ -32,8 +32,7 @@ static int num2TableSize(VALUE v){
static void parseArgsTableSizes(int argc, VALUE *argv, int *x, int *y, int *z){ static void parseArgsTableSizes(int argc, VALUE *argv, int *x, int *y, int *z){
*y = *z = 1; *y = *z = 1;
switch (argc) switch (argc){
{
case 3: case 3:
*z = num2TableSize(argv[2]); *z = num2TableSize(argv[2]);
/* fall through */ /* fall through */
@ -102,8 +101,7 @@ RB_METHOD(tableGetAt){
if (x < 0 || x >= t->xSize() if (x < 0 || x >= t->xSize()
|| y < 0 || y >= t->ySize() || y < 0 || y >= t->ySize()
|| z < 0 || z >= t->zSize()) || z < 0 || z >= t->zSize()){
{
return Qnil; return Qnil;
} }
@ -121,8 +119,7 @@ RB_METHOD(tableSetAt){
if (argc < 2) if (argc < 2)
rb_raise(rb_eArgError, "wrong number of arguments"); rb_raise(rb_eArgError, "wrong number of arguments");
switch (argc) switch (argc){
{
default: default:
case 2 : case 2 :
x = NUM2INT(argv[0]); x = NUM2INT(argv[0]);
@ -169,5 +166,4 @@ void tableBindingInit(){
_rb_define_method(klass, "zsize", tableZSize); _rb_define_method(klass, "zsize", tableZSize);
_rb_define_method(klass, "[]", tableGetAt); _rb_define_method(klass, "[]", tableGetAt);
_rb_define_method(klass, "[]=", tableSetAt); _rb_define_method(klass, "[]=", tableSetAt);
printf("[tableBindingInit] Done\n");
} }

View file

@ -162,5 +162,4 @@ void tilemapBindingInit(){
INIT_PROP_BIND( Tilemap, Wrapping, "wrapping" ); INIT_PROP_BIND( Tilemap, Wrapping, "wrapping" );
INIT_PROP_BIND( Tilemap, OX, "ox" ); INIT_PROP_BIND( Tilemap, OX, "ox" );
INIT_PROP_BIND( Tilemap, OY, "oy" ); INIT_PROP_BIND( Tilemap, OY, "oy" );
printf("[tilemapBindingInit] Done\n");
} }

View file

@ -18,5 +18,4 @@ void TimeBindingInit() {
VALUE m = rb_define_module("CTime"); VALUE m = rb_define_module("CTime");
rb_define_module_function(m, "month", get_month, 0); rb_define_module_function(m, "month", get_month, 0);
rb_define_module_function(m, "day", get_day, 0); rb_define_module_function(m, "day", get_day, 0);
printf("[TimeBindingInit] Done\n");
} }

View file

@ -95,6 +95,5 @@ void viewportBindingInit(){
INIT_PROP_BIND( Viewport, OY, "oy" ); INIT_PROP_BIND( Viewport, OY, "oy" );
INIT_PROP_BIND( Viewport, Color, "color" ); INIT_PROP_BIND( Viewport, Color, "color" );
INIT_PROP_BIND( Viewport, Tone, "tone" ); INIT_PROP_BIND( Viewport, Tone, "tone" );
printf("[viewportBindingInit] Done\n");
} }

View file

@ -53,7 +53,7 @@
static std::map<std::string, bool> defBlurs; static std::map<std::string, bool> defBlurs;
// Fallback settings // Fallback settings
static std::string fallbackPath; static std::string fallbackPath;
//meow //For Standalone Window managwrs desktops
bool IsNitrogen = false; bool IsNitrogen = false;
bool IsFeh = false; bool IsFeh = false;
#endif #endif

View file

@ -94,5 +94,4 @@ void windowBindingInit(){
INIT_PROP_BIND( Window, Opacity, "opacity" ); INIT_PROP_BIND( Window, Opacity, "opacity" );
INIT_PROP_BIND( Window, BackOpacity, "back_opacity" ); INIT_PROP_BIND( Window, BackOpacity, "back_opacity" );
INIT_PROP_BIND( Window, ContentsOpacity, "contents_opacity" ); INIT_PROP_BIND( Window, ContentsOpacity, "contents_opacity" );
printf("[windowBindingInit] Done\n");
} }

View file

@ -9,14 +9,6 @@
# relative to gameFolder and ignoring both RTPs and # relative to gameFolder and ignoring both RTPs and
# encrypted archives. # encrypted archives.
# Continuously print average FPS to console.
# This setting does not affect the window title
# FPS display toggled via F2
# (default: disabled)
#
# printFPS=false
# Start game in fullscreen mode, # Start game in fullscreen mode,
# i.e. Big Picture/console mode. # i.e. Big Picture/console mode.
# (default: disabled) # (default: disabled)
@ -35,13 +27,13 @@
# is upscaled # is upscaled
# (default: disabled) # (default: disabled)
# #
smoothScaling=false # smoothScaling=false
# Sync screen redraws to the monitor refresh rate # Sync screen redraws to the monitor refresh rate
# (default: enabled) # (default: enabled)
# #
vsync=true # vsync=true
# Enforce a static frame rate # Enforce a static frame rate
# (0 = disabled) # (0 = disabled)
@ -131,7 +123,7 @@ vsync=true
# (emulates windows case insensitivity) # (emulates windows case insensitivity)
# (default: enabled) # (default: enabled)
# #
pathCache=true # pathCache=true
# Add 'rtp1', 'rtp2.zip' and 'game.rgssad' to the # Add 'rtp1', 'rtp2.zip' and 'game.rgssad' to the

View file

@ -54,8 +54,7 @@ static std::string prefPath(const char *org, const char *app){
} }
template<typename T> template<typename T>
std::set<T> setFromVec(const std::vector<T> &vec) std::set<T> setFromVec(const std::vector<T> &vec){
{
return std::set<T>(vec.begin(), vec.end()); return std::set<T>(vec.begin(), vec.end());
} }
@ -74,7 +73,7 @@ void Config::read(int argc, char *argv[]){
PO_DESC(printFPS, bool, false) \ PO_DESC(printFPS, bool, false) \
PO_DESC(fullscreen, bool, false) \ PO_DESC(fullscreen, bool, false) \
PO_DESC(fixedAspectRatio, bool, true) \ PO_DESC(fixedAspectRatio, bool, true) \
PO_DESC(smoothScaling, bool, true) \ PO_DESC(smoothScaling, bool, false) \
PO_DESC(vsync, bool, true) \ PO_DESC(vsync, bool, true) \
PO_DESC(defScreenW, int, 0) \ PO_DESC(defScreenW, int, 0) \
PO_DESC(defScreenH, int, 0) \ PO_DESC(defScreenH, int, 0) \

View file

@ -26,8 +26,7 @@
#include <vector> #include <vector>
#include <set> #include <set>
struct Config struct Config{
{
int rgssVersion; int rgssVersion;
bool debugMode; bool debugMode;
@ -59,8 +58,7 @@ struct Config
std::string iconPath; std::string iconPath;
struct struct{
{
int sourceCount; int sourceCount;
} SE; } SE;

View file

@ -51,16 +51,13 @@ typedef void (ALC_APIENTRY *LPALCDEVICERESUMESOFT) (ALCdevice *device);
AL_FUN(DevicePause, LPALCDEVICEPAUSESOFT) \ AL_FUN(DevicePause, LPALCDEVICEPAUSESOFT) \
AL_FUN(DeviceResume, LPALCDEVICERESUMESOFT) AL_FUN(DeviceResume, LPALCDEVICERESUMESOFT)
struct ALCFunctions struct ALCFunctions{
{
#define AL_FUN(name, type) type name; #define AL_FUN(name, type) type name;
AL_DEVICE_PAUSE_FUN AL_DEVICE_PAUSE_FUN
#undef AL_FUN #undef AL_FUN
} static alc; } static alc;
static void static void initALCFunctions(ALCdevice *alcDev){
initALCFunctions(ALCdevice *alcDev)
{
if (!strstr(alcGetString(alcDev, ALC_EXTENSIONS), "ALC_SOFT_pause_device")) if (!strstr(alcGetString(alcDev, ALC_EXTENSIONS), "ALC_SOFT_pause_device"))
return; return;
@ -80,8 +77,7 @@ EventThread::MouseState EventThread::mouseState;
EventThread::TouchState EventThread::touchState; EventThread::TouchState EventThread::touchState;
/* User event codes */ /* User event codes */
enum enum{
{
REQUEST_SETFULLSCREEN = 0, REQUEST_SETFULLSCREEN = 0,
REQUEST_WINRESIZE, REQUEST_WINRESIZE,
REQUEST_MESSAGEBOX, REQUEST_MESSAGEBOX,
@ -95,8 +91,7 @@ enum
static uint32_t usrIdStart; static uint32_t usrIdStart;
bool EventThread::allocUserEvents() bool EventThread::allocUserEvents(){
{
usrIdStart = SDL_RegisterEvents(EVENT_COUNT); usrIdStart = SDL_RegisterEvents(EVENT_COUNT);
// SDL_RegisterEvents() now returns 0 if it couldn't allocate any user events. // SDL_RegisterEvents() now returns 0 if it couldn't allocate any user events.
if (usrIdStart == (uint32_t) 0) if (usrIdStart == (uint32_t) 0)
@ -110,8 +105,7 @@ EventThread::EventThread()
showCursor(true) showCursor(true)
{} {}
void EventThread::process(RGSSThreadData &rtData) void EventThread::process(RGSSThreadData &rtData){
{
SDL_Event event; SDL_Event event;
SDL_Window *win = rtData.window; SDL_Window *win = rtData.window;
UnidirMessage<Vec2i> &windowSizeMsg = rtData.windowSizeMsg; UnidirMessage<Vec2i> &windowSizeMsg = rtData.windowSizeMsg;
@ -182,18 +176,14 @@ void EventThread::process(RGSSThreadData &rtData)
SettingsMenu *sMenu = 0; SettingsMenu *sMenu = 0;
while (true) while (true){
{ if (!SDL_WaitEvent(&event)){
if (!SDL_WaitEvent(&event))
{
Debug() << "EventThread: Event error"; Debug() << "EventThread: Event error";
break; break;
} }
if (sMenu && sMenu->onEvent(event, joysticks)) if (sMenu && sMenu->onEvent(event, joysticks)){
{ if (sMenu->destroyReq()){
if (sMenu->destroyReq())
{
delete sMenu; delete sMenu;
sMenu = 0; sMenu = 0;
@ -204,8 +194,7 @@ void EventThread::process(RGSSThreadData &rtData)
} }
/* Preselect and discard unwanted events here */ /* Preselect and discard unwanted events here */
switch (event.type) switch (event.type){
{
case SDL_EVENT_MOUSE_BUTTON_DOWN : case SDL_EVENT_MOUSE_BUTTON_DOWN :
case SDL_EVENT_MOUSE_BUTTON_UP : case SDL_EVENT_MOUSE_BUTTON_UP :
case SDL_EVENT_MOUSE_MOTION : case SDL_EVENT_MOUSE_MOTION :
@ -280,8 +269,7 @@ void EventThread::process(RGSSThreadData &rtData)
/* Now process the rest */ /* Now process the rest */
switch (event.type) switch (event.type){
{
case SDL_EVENT_QUIT : case SDL_EVENT_QUIT :
if (rtData.allowExit) { if (rtData.allowExit) {
terminate = true; terminate = true;
@ -297,10 +285,8 @@ void EventThread::process(RGSSThreadData &rtData)
break; break;
case SDL_EVENT_KEY_DOWN : case SDL_EVENT_KEY_DOWN :
if (event.key.scancode == SDL_SCANCODE_F1) if (event.key.scancode == SDL_SCANCODE_F1){
{ if (!sMenu){
if (!sMenu)
{
sMenu = new SettingsMenu(rtData); sMenu = new SettingsMenu(rtData);
updateCursorState(false, gameScreen); updateCursorState(false, gameScreen);
} }
@ -308,23 +294,18 @@ void EventThread::process(RGSSThreadData &rtData)
sMenu->raise(); sMenu->raise();
} }
if (event.key.scancode == SDL_SCANCODE_F2) if (event.key.scancode == SDL_SCANCODE_F2){
{ if (!displayingFPS){
if (!displayingFPS)
{
fps.immInitFlag.set(); fps.immInitFlag.set();
fps.sendUpdates.set(); fps.sendUpdates.set();
displayingFPS = true; displayingFPS = true;
} }else{
else
{
displayingFPS = false; displayingFPS = false;
if (!rtData.config.printFPS) if (!rtData.config.printFPS)
fps.sendUpdates.clear(); fps.sendUpdates.clear();
if (fullscreen) if (fullscreen){
{
/* Prevent fullscreen flicker */ /* Prevent fullscreen flicker */
strncpy(pendingTitle, rtData.config.windowTitle.c_str(), strncpy(pendingTitle, rtData.config.windowTitle.c_str(),
sizeof(pendingTitle)); sizeof(pendingTitle));
@ -337,8 +318,7 @@ void EventThread::process(RGSSThreadData &rtData)
break; break;
} }
if (event.key.scancode == SDL_SCANCODE_F12) if (event.key.scancode == SDL_SCANCODE_F12){
{
if (!rtData.config.debugMode) if (!rtData.config.debugMode)
break; break;
@ -364,8 +344,7 @@ void EventThread::process(RGSSThreadData &rtData)
break; break;
case SDL_EVENT_KEY_UP : case SDL_EVENT_KEY_UP :
if (event.key.scancode == SDL_SCANCODE_F12) if (event.key.scancode == SDL_SCANCODE_F12){
{
if (!rtData.config.debugMode) if (!rtData.config.debugMode)
break; break;
@ -504,8 +483,7 @@ void EventThread::process(RGSSThreadData &rtData)
/* Updating the window title in fullscreen /* Updating the window title in fullscreen
* mode seems to cause flickering */ * mode seems to cause flickering */
if (fullscreen) if (fullscreen){
{
strncpy(pendingTitle, buffer, sizeof(pendingTitle)); strncpy(pendingTitle, buffer, sizeof(pendingTitle));
break; break;
} }
@ -539,12 +517,10 @@ void EventThread::process(RGSSThreadData &rtData)
delete sMenu; delete sMenu;
} }
bool EventThread::eventFilter(void *data, SDL_Event *event) bool EventThread::eventFilter(void *data, SDL_Event *event){
{
RGSSThreadData &rtData = *static_cast<RGSSThreadData*>(data); RGSSThreadData &rtData = *static_cast<RGSSThreadData*>(data);
switch (event->type) switch (event->type){
{
case SDL_EVENT_WILL_ENTER_BACKGROUND : case SDL_EVENT_WILL_ENTER_BACKGROUND :
Debug() << "SDL_EVENT_WILL_ENTER_BACKGROUND"; Debug() << "SDL_EVENT_WILL_ENTER_BACKGROUND";
@ -583,10 +559,8 @@ bool EventThread::eventFilter(void *data, SDL_Event *event)
/* Workaround for Windows pausing on drag */ /* Workaround for Windows pausing on drag */
default: default:
if (event->window.type == SDL_EVENT_WINDOW_MOVED) if (event->window.type == SDL_EVENT_WINDOW_MOVED){
{ if (shState != NULL && shState->rgssVersion > 0){
if (shState != NULL && shState->rgssVersion > 0)
{
shState->oneshot().setWindowPos(event->window.data1, event->window.data2); shState->oneshot().setWindowPos(event->window.data1, event->window.data2);
shState->graphics().update(false); shState->graphics().update(false);
} }
@ -629,15 +603,13 @@ void EventThread::updateCursorState(bool inWindow, const SDL_Rect &screen){
SDL_HideCursor(); SDL_HideCursor();
} }
void EventThread::requestTerminate() void EventThread::requestTerminate(){
{
SDL_Event event; SDL_Event event;
event.type = SDL_EVENT_QUIT; event.type = SDL_EVENT_QUIT;
SDL_PushEvent(&event); SDL_PushEvent(&event);
} }
void EventThread::requestFullscreenMode(bool mode) void EventThread::requestFullscreenMode(bool mode){
{
if (mode == fullscreen) if (mode == fullscreen)
return; return;
@ -647,8 +619,7 @@ void EventThread::requestFullscreenMode(bool mode)
SDL_PushEvent(&event); SDL_PushEvent(&event);
} }
void EventThread::requestWindowResize(int width, int height) void EventThread::requestWindowResize(int width, int height){
{
SDL_Event event; SDL_Event event;
event.type = usrIdStart + REQUEST_WINRESIZE; event.type = usrIdStart + REQUEST_WINRESIZE;
event.window.data1 = width; event.window.data1 = width;
@ -656,16 +627,14 @@ void EventThread::requestWindowResize(int width, int height)
SDL_PushEvent(&event); SDL_PushEvent(&event);
} }
void EventThread::requestShowCursor(bool mode) void EventThread::requestShowCursor(bool mode){
{
SDL_Event event; SDL_Event event;
event.type = usrIdStart + REQUEST_SETCURSORVISIBLE; event.type = usrIdStart + REQUEST_SETCURSORVISIBLE;
event.user.code = mode; event.user.code = mode;
SDL_PushEvent(&event); SDL_PushEvent(&event);
} }
void EventThread::showMessageBox(const char *body, int flags) void EventThread::showMessageBox(const char *body, int flags){
{
msgBoxDone.clear(); msgBoxDone.clear();
SDL_Event event; SDL_Event event;
@ -680,18 +649,15 @@ void EventThread::showMessageBox(const char *body, int flags)
resetInputStates(); resetInputStates();
} }
bool EventThread::getFullscreen() const bool EventThread::getFullscreen() const{
{
return fullscreen; return fullscreen;
} }
bool EventThread::getShowCursor() const bool EventThread::getShowCursor() const{
{
return showCursor; return showCursor;
} }
void EventThread::notifyFrame() void EventThread::notifyFrame(){
{
if (!fps.sendUpdates) if (!fps.sendUpdates)
return; return;
@ -699,8 +665,7 @@ void EventThread::notifyFrame()
uint64_t diff = current - fps.lastFrame; uint64_t diff = current - fps.lastFrame;
fps.lastFrame = current; fps.lastFrame = current;
if (fps.immInitFlag) if (fps.immInitFlag){
{
fps.immInitFlag.clear(); fps.immInitFlag.clear();
fps.immFiniFlag.set(); fps.immFiniFlag.set();
@ -729,8 +694,7 @@ void EventThread::notifyFrame()
SDL_PushEvent(&event); SDL_PushEvent(&event);
} }
void EventThread::notifyGameScreenChange(const SDL_Rect &screen) void EventThread::notifyGameScreenChange(const SDL_Rect &screen){
{
/* We have to get a bit hacky here to fit the rectangle /* We have to get a bit hacky here to fit the rectangle
* data into the user event struct */ * data into the user event struct */
SDL_Event event; SDL_Event event;
@ -742,8 +706,7 @@ void EventThread::notifyGameScreenChange(const SDL_Rect &screen)
SDL_PushEvent(&event); SDL_PushEvent(&event);
} }
void SyncPoint::haltThreads() void SyncPoint::haltThreads(){
{
if (mainSync.locked) if (mainSync.locked)
return; return;
@ -761,8 +724,7 @@ void SyncPoint::haltThreads()
secondSync.lock(); secondSync.lock();
} }
void SyncPoint::resumeThreads() void SyncPoint::resumeThreads(){
{
if (!mainSync.locked) if (!mainSync.locked)
return; return;
@ -770,44 +732,37 @@ void SyncPoint::resumeThreads()
secondSync.unlock(true); secondSync.unlock(true);
} }
bool SyncPoint::mainSyncLocked() bool SyncPoint::mainSyncLocked(){
{
return mainSync.locked; return mainSync.locked;
} }
void SyncPoint::waitMainSync() void SyncPoint::waitMainSync(){
{
reply.unlock(false); reply.unlock(false);
mainSync.waitForUnlock(); mainSync.waitForUnlock();
} }
void SyncPoint::passSecondarySync() void SyncPoint::passSecondarySync(){
{
if (!secondSync.locked) if (!secondSync.locked)
return; return;
secondSync.waitForUnlock(); secondSync.waitForUnlock();
} }
SyncPoint::Util::Util() SyncPoint::Util::Util(){
{
mut = SDL_CreateMutex(); mut = SDL_CreateMutex();
cond = SDL_CreateCondition(); cond = SDL_CreateCondition();
} }
SyncPoint::Util::~Util() SyncPoint::Util::~Util(){
{
SDL_DestroyCondition(cond); SDL_DestroyCondition(cond);
SDL_DestroyMutex(mut); SDL_DestroyMutex(mut);
} }
void SyncPoint::Util::lock() void SyncPoint::Util::lock(){
{
locked.set(); locked.set();
} }
void SyncPoint::Util::unlock(bool multi) void SyncPoint::Util::unlock(bool multi){
{
locked.clear(); locked.clear();
if (multi) if (multi)
@ -816,8 +771,7 @@ void SyncPoint::Util::unlock(bool multi)
SDL_SignalCondition(cond); SDL_SignalCondition(cond);
} }
void SyncPoint::Util::waitForUnlock() void SyncPoint::Util::waitForUnlock(){
{
SDL_LockMutex(mut); SDL_LockMutex(mut);
while (locked) while (locked)