This commit is contained in:
DepressedTWM 2026-08-02 12:19:41 +04:00
commit 24380ac4eb
6 changed files with 324 additions and 49 deletions

View file

@ -159,8 +159,26 @@ RB_METHOD(mriRgssMain);
RB_METHOD(mriRgssStop); RB_METHOD(mriRgssStop);
RB_METHOD(_kernelCaller); RB_METHOD(_kernelCaller);
// TODO: find the reason why Symbol doesn't have some methods
VALUE rb_symbol_to_s(VALUE self)
{
ID id = SYM2ID(self);
const char *name = rb_id2name(id);
if (!name)
return rb_str_new("", 0);
return rb_utf8_str_new_cstr(name);
}
static void mriBindingInit(){ static void mriBindingInit(){
printf("[mriBindingInit] Loading bindings...\n"); printf("[mriBindingInit] Loading bindings...\n");
rb_define_method(rb_cSymbol, "to_s", RUBY_METHOD_FUNC(rb_symbol_to_s), 0);
rb_define_method(rb_cSymbol, "name", RUBY_METHOD_FUNC(rb_symbol_to_s), 0);
rb_define_method(rb_cSymbol, "id2name", RUBY_METHOD_FUNC(rb_symbol_to_s), 0);
tableBindingInit(); tableBindingInit();
etcBindingInit(); etcBindingInit();
fontBindingInit(); fontBindingInit();
@ -564,7 +582,12 @@ static void mriBindingExecute(){
* but not doing it will lead to crashes due to closed * but not doing it will lead to crashes due to closed
* stdio streams on some platforms (eg. Windows) */ * stdio streams on some platforms (eg. Windows) */
int argc = 0; int argc = 0;
<<<<<<< HEAD
char **argv = 0; char **argv = 0;
=======
char **argv = nullptr;
//options_argv3[] = "--jit"
>>>>>>> b9cd221a9e6e6586cc4ca23a2b2d315b074f14e7
char options_argv1[] = "oneshot", options_argv2[] = "-ev"; char options_argv1[] = "oneshot", options_argv2[] = "-ev";
char* options_argv[] = {options_argv1, options_argv2, NULL}; char* options_argv[] = {options_argv1, options_argv2, NULL};
ruby_sysinit(&argc, &argv); ruby_sysinit(&argc, &argv);

View file

@ -25,4 +25,5 @@ fixed segfault while to fast window size changing
updated cg_blue picture updated cg_blue picture
Deleted useless hooks Deleted useless hooks
fix crash on game exit fix crash on game exit
Error hadnling updated Error handling updated
added gamepad button icons in settings

View file

@ -221,7 +221,22 @@ module GamepadMapColors
end end
module GamepadIcons module GamepadIcons
ICONS_CACHE = [] GAMEPADS = [nil,
Input::GamepadType::XBOX360,
Input::GamepadType::XBOXONE,
:series_x,
Input::GamepadType::PS3,
Input::GamepadType::PS4,
Input::GamepadType::PS5,
Input::GamepadType::SWITCH_PRO,
Input::GamepadType::JOYCON_PAIR,
:luna,
:ouya,
:stadia,
:steam_controller,
:steam_deck,
Input::GamepadType::GAMECUBE
]
ICONS = { ICONS = {
# SDL supported types, can be detected automatically # SDL supported types, can be detected automatically
@ -244,6 +259,7 @@ module GamepadIcons
}, },
Input::GamepadType::STANDART => { Input::GamepadType::STANDART => {
:icon => [10, 13], :icon => [10, 13],
:face_skinnable => true,
:buttons => { :buttons => {
Input::GamepadButton::INVALID => [9, 16], Input::GamepadButton::INVALID => [9, 16],
Input::GamepadButton::SOUTH => [0, 0], Input::GamepadButton::SOUTH => [0, 0],
@ -275,9 +291,9 @@ module GamepadIcons
}, },
:axes => { :axes => {
Input::GamepadAxis::INVALID => [[9, 16], [9, 16]], Input::GamepadAxis::INVALID => [[9, 16], [9, 16]],
Input::GamepadAxis::LEFTX => [[5, 1], [6, 1]], Input::GamepadAxis::LEFTX => [[6, 1], [5, 1]],
Input::GamepadAxis::LEFTY => [[4, 1], [7, 1]], Input::GamepadAxis::LEFTY => [[4, 1], [7, 1]],
Input::GamepadAxis::RIGHTX => [[5, 2], [6, 2]], Input::GamepadAxis::RIGHTX => [[6, 2], [5, 2]],
Input::GamepadAxis::RIGHTY => [[4, 2], [7, 2]], Input::GamepadAxis::RIGHTY => [[4, 2], [7, 2]],
Input::GamepadAxis::LEFT_TRIGGER => [[6, 4], [9, 16]], Input::GamepadAxis::LEFT_TRIGGER => [[6, 4], [9, 16]],
Input::GamepadAxis::RIGHT_TRIGGER => [[7, 4], [9, 16]], Input::GamepadAxis::RIGHT_TRIGGER => [[7, 4], [9, 16]],
@ -338,16 +354,6 @@ module GamepadIcons
Input::GamepadButton::MISC1 => [7, 11], Input::GamepadButton::MISC1 => [7, 11],
} }
}, },
Input::GamepadType::PS5 => {
:extends => Input::GamepadType::PS4,
:icon => [10, 12],
:buttons => {
Input::GamepadButton::BACK => [4, 9],
Input::GamepadButton::START => [5, 9],
Input::GamepadButton::TOUCHPAD => [4, 10],
Input::GamepadButton::MISC1 => [7, 11],
}
},
Input::GamepadType::SWITCH_PRO => { Input::GamepadType::SWITCH_PRO => {
:extends => Input::GamepadType::JOYCON_PAIR, :extends => Input::GamepadType::JOYCON_PAIR,
:icon => [10, 13], :icon => [10, 13],
@ -391,6 +397,7 @@ module GamepadIcons
}, },
Input::GamepadType::GAMECUBE => { Input::GamepadType::GAMECUBE => {
:extends => Input::GamepadType::STANDART, :extends => Input::GamepadType::STANDART,
:face_skinnable => false,
:icon => [8, 11], :icon => [8, 11],
:buttons => { :buttons => {
Input::GamepadButton::SOUTH => [8, 10], Input::GamepadButton::SOUTH => [8, 10],
@ -405,9 +412,9 @@ module GamepadIcons
:axes => { :axes => {
Input::GamepadAxis::LEFT_TRIGGER => [[6, 15], [9, 16]], Input::GamepadAxis::LEFT_TRIGGER => [[6, 15], [9, 16]],
Input::GamepadAxis::RIGHT_TRIGGER => [[0, 17], [9, 16]], Input::GamepadAxis::RIGHT_TRIGGER => [[0, 17], [9, 16]],
Input::GamepadAxis::LEFTX => [[9, 9], [10, 9]], Input::GamepadAxis::LEFTX => [[10, 9], [9, 9]],
Input::GamepadAxis::LEFTY => [[8, 9], [11, 9]], Input::GamepadAxis::LEFTY => [[8, 9], [11, 9]],
Input::GamepadAxis::RIGHTX => [[9, 8], [10, 8]], Input::GamepadAxis::RIGHTX => [[10, 8], [9, 8]],
Input::GamepadAxis::RIGHTY => [[8, 8], [11, 8]], Input::GamepadAxis::RIGHTY => [[8, 8], [11, 8]],
} }
}, },
@ -422,7 +429,7 @@ module GamepadIcons
}, },
:luna => { :luna => {
:extends => Input::GamepadType::XBOXONE, :extends => Input::GamepadType::XBOXONE,
:icon => [8, 11], :icon => [10, 11],
:buttons => { :buttons => {
Input::GamepadButton::BACK => [7, 13], Input::GamepadButton::BACK => [7, 13],
Input::GamepadButton::GUIDE => [7, 12], Input::GamepadButton::GUIDE => [7, 12],
@ -455,7 +462,7 @@ module GamepadIcons
Input::GamepadButton::RIGHT_STICK => [3, 17], Input::GamepadButton::RIGHT_STICK => [3, 17],
}, },
:axes => { :axes => {
Input::GamepadAxis::RIGHTX => [[5, 16], [6, 16]], Input::GamepadAxis::RIGHTX => [[6, 16], [5, 16]],
Input::GamepadAxis::RIGHTY => [[4, 16], [7, 16]], Input::GamepadAxis::RIGHTY => [[4, 16], [7, 16]],
} }
}, },
@ -477,7 +484,7 @@ module GamepadIcons
}, },
:stadia => { :stadia => {
:extends => Input::GamepadType::XBOXONE, :extends => Input::GamepadType::XBOXONE,
:icon => [8, 17], :icon => [10, 13],
:buttons => { :buttons => {
Input::GamepadButton::BACK => [5, 8], Input::GamepadButton::BACK => [5, 8],
Input::GamepadButton::GUIDE => [8, 17], Input::GamepadButton::GUIDE => [8, 17],
@ -492,26 +499,179 @@ module GamepadIcons
} }
GUIDS = { GUIDS = {
"030000006f0e00001301000000000000" => :series_x,
"030000006f0e00001304000000000000" => :series_x,
"030000006f0e00001302000000000000" => :series_x,
"030000006f0e00003901000000000000" => :series_x,
"030000006f0e00001413000000000000" => :series_x,
"03000000ab1200000103000000000000" => :series_x,
"03000000ad1b000000f9000000000000" => :series_x,
"030000005e040000130b000000000000" => :series_x,
"03000000373500000411000023000000" => :series_x,
"030000005e040000050b000003090000" => :series_x,
"030000005e040000130b000001050000" => :series_x,
"030000005e040000130b000013050000" => :series_x,
"030000005e040000130b000015050000" => :series_x,
"030000005e040000130b000007050000" => :series_x,
"030000005e040000130b000017050000" => :series_x,
"030000005e040000130b000022050000" => :series_x,
"030000005e040000220b000017050000" => :series_x,
"030000005e040000220b000021050000" => :series_x,
"03000000c82d00000a20000000020000" => :series_x,
"03000000c82d00000020000000000000" => :series_x,
"06000000c82d00000020000006010000" => :series_x,
"030000005e040000120b00000b050000" => :series_x,
"030000005e040000120b000016050000" => :series_x,
"030000005e040000120b000017050000" => :series_x,
"060000005e040000120b000001050000" => :series_x,
"030000006f0e0000d702000006640000" => :series_x,
"030000006f0e0000d802000006640000" => :series_x,
"030000006f0e0000ef02000007640000" => :series_x,
"03000000d62000000540000001010000" => :series_x,
"03000000d62000000520000050010000" => :series_x,
"03000000d62000000b20000001010000" => :series_x,
"03000000d62000000f20000001010000" => :series_x,
"03000000d62000006520000002010000" => :series_x,
"030000004b2900000430000011000000" => :series_x,
"030000005e040000120b000001050000" => :series_x,
"030000005e040000120b000005050000" => :series_x,
"030000005e040000120b000007050000" => :series_x,
"030000005e040000120b000009050000" => :series_x,
"030000005e040000120b00000d050000" => :series_x,
"030000005e040000120b00000f050000" => :series_x,
"030000005e040000120b000011050000" => :series_x,
"030000005e040000120b000014050000" => :series_x,
"030000005e040000120b000015050000" => :series_x,
"030000005e040000130b000005050000" => :series_x,
"050000005e040000130b000001050000" => :series_x,
"050000005e040000130b000005050000" => :series_x,
"050000005e040000130b000007050000" => :series_x,
"050000005e040000130b000009050000" => :series_x,
"050000005e040000130b000011050000" => :series_x,
"050000005e040000130b000013050000" => :series_x,
"050000005e040000130b000015050000" => :series_x,
"050000005e040000130b000017050000" => :series_x,
"060000005e040000120b000007050000" => :series_x,
"060000005e040000120b00000b050000" => :series_x,
"060000005e040000120b00000d050000" => :series_x,
"060000005e040000120b00000f050000" => :series_x,
"050000005e040000130b000022050000" => :series_x,
"060000005e040000120b000011050000" => :series_x,
"32386235353630393033393135613831" => :series_x,
"050000005e040000120b000000783f00" => :series_x,
"050000005e040000120b000000783f80" => :series_x,
"050000005e040000130b0000ffff3f00" => :series_x,
"65633038363832353634653836396239" => :series_x,
"050000005e040000130b0000df870001" => :series_x,
"050000005e040000130b0000ff870001" => :series_x,
"0300fa675e040000ff02000000007801" => :series_x, # this is my gamepad, but for some reason it is not in the gamecontrollerdb.txt
"03000000491900001904000000000000" => :luna,
"03000000710100001904000000000000" => :luna,
"03000000491900001904000001010000" => :luna,
"03000000710100001904000000010000" => :luna,
"03000000491900001904000011010000" => :luna,
"05000000710100001904000000010000" => :luna,
"32333634613735616163326165323731" => :luna,
"416d617a6f6e2047616d6520436f6e74" => :luna,
"4c756e612047616d6570616400000000" => :luna,
"03000000362800000100000000000000" => :ouya,
"05000000362800000100000002010000" => :ouya,
"05000000362800000100000003010000" => :ouya,
"05000000362800000100000004010000" => :ouya,
"39383335313438623439373538343266" => :ouya,
"4f5559412047616d6520436f6e74726f" => :ouya,
"03000000de2800000112000001000000" => :steam_controller,
"03000000de2800000112000011010000" => :steam_controller,
"03000000de2800000211000001000000" => :steam_controller,
"03000000de2800000211000011010000" => :steam_controller,
"03000000de2800004211000001000000" => :steam_controller,
"03000000de2800004211000011010000" => :steam_controller,
"03000000de280000fc11000001000000" => :steam_controller,
"05000000de2800000212000001000000" => :steam_controller,
"05000000de2800000511000001000000" => :steam_controller,
"05000000de2800000611000001000000" => :steam_controller,
"30623739343039643830333266346439" => :steam_controller,
"31643365666432386133346639383937" => :steam_controller,
"03000000de2800000512000010010000" => :steam_deck,
"03000000de2800000512000011010000" => :steam_deck,
"03000000d11800000094000000000000" => :stadia,
"03000000d11800000094000000010000" => :stadia,
"03000000d11800000094000011010000" => :stadia,
"05000000d11800000094000000010000" => :stadia,
"35383633353935396534393230616564" => :stadia,
"476f6f676c65204c4c43205374616469" => :stadia,
"5374616469614e3848532d6532633400" => :stadia,
} }
class << self class << self
def icon(gamepad_type = nil)
current_gamepad = get_gamepad_type(gamepad_type)
debug_string = ""
iterations = 0
result = nil
while !result
if !ICONS[current_gamepad].has_key?(:icon)
current_gamepad = ICONS[current_gamepad][:extends]
debug_string << "gamepad " << current_gamepad << "\n"
iterations += 1
if iterations > 10
puts debug_string
result = [8, 16]
end
next
end
result = ICONS[current_gamepad][:icon].clone
current_gamepad = ICONS[current_gamepad][:extends]
end
result
end
def face_skinnable(gamepad_type = nil)
current_gamepad = get_gamepad_type(gamepad_type)
debug_string = ""
iterations = 0
result = nil
while result == nil
if !ICONS[current_gamepad].has_key?(:face_skinnable)
current_gamepad = ICONS[current_gamepad][:extends]
debug_string << "gamepad " << current_gamepad << "\n"
iterations += 1
if iterations > 10
puts debug_string
result = false
end
next
end
result = ICONS[current_gamepad][:face_skinnable]
current_gamepad = ICONS[current_gamepad][:extends]
end
result
end
def button(id, skinned = true, gamepad_type = nil) def button(id, skinned = true, gamepad_type = nil)
current_gamepad = gamepad_type current_gamepad = get_gamepad_type(gamepad_type)
if !ICONS.has_key?(gamepad_type)
current_gamepad = Input::GamepadType.current_type debug_string = ""
if !ICONS.has_key?(current_gamepad) iterations = 0
current_gamepad = Input::GamepadType::UNKNOWN
end
end
result = nil result = nil
while !result while !result
if !ICONS[current_gamepad].has_key?(:buttons) if !ICONS[current_gamepad].has_key?(:buttons)
current_gamepad = ICONS[current_gamepad][:extends] current_gamepad = ICONS[current_gamepad][:extends]
debug_string << current_gamepad << "\n"
iterations += 1
if iterations > 10
puts debug_string
result = [8, 16]
end
next next
end end
result = ICONS[current_gamepad][:buttons][id].clone result = ICONS[current_gamepad][:buttons][id].clone
current_gamepad = ICONS[current_gamepad][:extends]
end end
if skinned if skinned
if id == Input::GamepadButton::SOUTH || if id == Input::GamepadButton::SOUTH ||
@ -525,23 +685,42 @@ module GamepadIcons
end end
def axis(id, dir, gamepad_type = nil) def axis(id, dir, gamepad_type = nil)
current_gamepad = gamepad_type current_gamepad = get_gamepad_type(gamepad_type)
if !ICONS.has_key?(gamepad_type)
current_gamepad = Input::GamepadType.current_type debug_string = ""
if !ICONS.has_key?(current_gamepad) iterations = 0
current_gamepad = Input::GamepadType::UNKNOWN
end
end
result = nil result = nil
while !result while !result
if !ICONS[current_gamepad].has_key?(:axes) if !ICONS[current_gamepad].has_key?(:axes)
current_gamepad = ICONS[current_gamepad][:extends] current_gamepad = ICONS[current_gamepad][:extends]
debug_string << "gamepad " << current_gamepad << "\n"
iterations += 1
if iterations > 10
puts debug_string
result = [8, 16]
end
next next
end end
result = ICONS[current_gamepad][:axes][id][1 - dir].clone axis = ICONS[current_gamepad][:axes][id]
result = axis[1 - dir].clone if axis
current_gamepad = ICONS[current_gamepad][:extends]
end end
result result
end end
def get_gamepad_type(gamepad_override = nil)
current_gamepad = gamepad_override || GamepadIcons::GAMEPADS[Settings[:gamepad_type]]
if !ICONS.has_key?(current_gamepad)
current_gamepad = GUIDS[Input::GamepadType.current_guid]
if !ICONS.has_key?(current_gamepad)
current_gamepad = Input::GamepadType.current_type
if !ICONS.has_key?(current_gamepad)
current_gamepad = Input::GamepadType::UNKNOWN
end
end
end
current_gamepad
end
end end
end end

View file

@ -294,25 +294,42 @@ class Window_Settings
{ :type => :sep, :name => "Gamepad" }, { :type => :sep, :name => "Gamepad" },
{ {
:type => :custom, :type => :custom,
:name => "Face buttons style", :name => "Your gamepad type",
:parameter => :gamepad_face_style, :parameter => :gamepad_type,
:default => 0, :default => 0,
:callbacks => { :callbacks => {
:init => proc { |super_proc| :init => proc { |super_proc|
@max_value = 5 @max_value = GamepadIcons::GAMEPADS.length
@texts = [
"Auto",
"XBOX 360",
"XBOX One",
"XBOX Series X",
"PS 3",
"PS 4",
"PS 5",
"Nintendo Switch Pro",
"Nintendo Joycons",
"Amazon Luna",
"OUYA",
"Google Stadia",
"Steam Controller",
"Steam Deck",
"Nintendo GAMECUBE"
]
super_proc.call super_proc.call
}, },
:get_display_value => proc { |super_proc| :get_display_value => proc { |super_proc|
"" # meow >w< ""
}, },
:redraw => proc { |super_proc| :redraw => proc { |super_proc|
super_proc.call super_proc.call
x, y = GamepadIcons.button(Input::GamepadButton::SOUTH, false) x, y = GamepadIcons.icon()
y += self.value * ICON_SIZE
@sprite.bitmap.stretch_blt(Rect.new(PARAMETER_WIDTH - ICON_SIZE * 4 * 2, (PARAMETER_HEIGHT - ICON_SIZE * 2) / 2, ICON_SIZE * 4 * 2, ICON_SIZE * 2), RPG::Cache.menu("gamepad_icons"), Rect.new(x, y, ICON_SIZE * 4, ICON_SIZE)) @sprite.bitmap.stretch_blt(Rect.new(PARAMETER_WIDTH - ICON_SIZE * 2, PARAMETER_HEIGHT / 2 - ICON_SIZE, ICON_SIZE * 2, ICON_SIZE * 2), RPG::Cache.menu("gamepad_icons"), Rect.new(x * ICON_SIZE, y * ICON_SIZE, ICON_SIZE, ICON_SIZE))
@sprite.bitmap.draw_text(@sprite.bitmap.width - @value_width - ICON_SIZE * 2 - 8, 0, @value_width, @sprite.bitmap.height, tr(@texts[self.value]), 2)
}, },
:value_set => proc { |super_proc, value| :value_set => proc { |super_proc, value|
if (value != self.value) if (value != self.value)
@ -332,9 +349,62 @@ class Window_Settings
} }
} }
}, },
{
:type => :custom,
:name => "Face buttons style",
:parameter => :gamepad_face_style,
:default => 0,
:callbacks => {
:init => proc { |super_proc|
@max_value = 5
super_proc.call
},
:get_display_value => proc { |super_proc|
"" # meow >w<
},
:redraw => proc { |super_proc|
@disabled = !GamepadIcons.face_skinnable
super_proc.call
sx, sy = GamepadIcons.button(Input::GamepadButton::SOUTH, false)
wx, wy = GamepadIcons.button(Input::GamepadButton::WEST, false)
nx, ny = GamepadIcons.button(Input::GamepadButton::NORTH, false)
ex, ey = GamepadIcons.button(Input::GamepadButton::EAST, false)
if GamepadIcons.face_skinnable
sy += self.value
wy += self.value
ny += self.value
ey += self.value
end
@sprite.bitmap.stretch_blt(Rect.new(PARAMETER_WIDTH - ICON_SIZE * 8, PARAMETER_HEIGHT / 2 - ICON_SIZE, ICON_SIZE * 2, ICON_SIZE * 2), RPG::Cache.menu("gamepad_icons"), Rect.new(sx * ICON_SIZE, sy * ICON_SIZE, ICON_SIZE, ICON_SIZE))
@sprite.bitmap.stretch_blt(Rect.new(PARAMETER_WIDTH - ICON_SIZE * 6, PARAMETER_HEIGHT / 2 - ICON_SIZE, ICON_SIZE * 2, ICON_SIZE * 2), RPG::Cache.menu("gamepad_icons"), Rect.new(wx * ICON_SIZE, wy * ICON_SIZE, ICON_SIZE, ICON_SIZE))
@sprite.bitmap.stretch_blt(Rect.new(PARAMETER_WIDTH - ICON_SIZE * 4, PARAMETER_HEIGHT / 2 - ICON_SIZE, ICON_SIZE * 2, ICON_SIZE * 2), RPG::Cache.menu("gamepad_icons"), Rect.new(nx * ICON_SIZE, ny * ICON_SIZE, ICON_SIZE, ICON_SIZE))
@sprite.bitmap.stretch_blt(Rect.new(PARAMETER_WIDTH - ICON_SIZE * 2, PARAMETER_HEIGHT / 2 - ICON_SIZE, ICON_SIZE * 2, ICON_SIZE * 2), RPG::Cache.menu("gamepad_icons"), Rect.new(ex * ICON_SIZE, ey * ICON_SIZE, ICON_SIZE, ICON_SIZE))
},
:value_set => proc { |super_proc, value|
if (value != self.value)
Audio.se_play(PARAMETER_CHANGE_AUDIO, 70, (value.to_f / @max_value.to_f * 50.0).to_i + 75)
end
super_proc.call(value)
},
:value_left => proc { |super_proc|
next if @disabled
self.value = (self.value - 1) % @max_value
@settings_content.redraw_all
},
:value_right => proc { |super_proc|
next if @disabled
self.value = (self.value + 1) % @max_value
@settings_content.redraw_all
}
}
},
{ {
:type => :bool, :type => :bool,
:name => "Control LED lighting on gamepads", :name => "Control LED lighting",
:parameter => :gamepad_led :parameter => :gamepad_led
}, },
{ :type => :sep, :name => "Walk" }, { :type => :sep, :name => "Walk" },
@ -511,3 +581,4 @@ class Window_Settings
DATA["Mods"] << setting DATA["Mods"] << setting
end end
end end

View file

@ -730,8 +730,9 @@ class Window_Settings
def redraw() def redraw()
redraw_icon redraw_icon
offset = !!@icon_position ? ICON_SIZE * 2 + 8 : 0 offset = !!@icon_position ? ICON_SIZE * 2 + 8 : 0
if (@parameter) if @parameter && @key_binds != Settings[@parameter]
@key_binds = Settings[@parameter] @key_binds = Settings[@parameter]
apply
end end
@sprite.bitmap.clear @sprite.bitmap.clear
@ -747,7 +748,7 @@ class Window_Settings
offset = (@selected && i == @selection ? SELECTED_KEYS_MARGIN : 4) offset = (@selected && i == @selection ? SELECTED_KEYS_MARGIN : 4)
parameter_x = @sprite.bitmap.width - PARAMETER_KEY_WIDTH * (4 - i) parameter_x = @sprite.bitmap.width - PARAMETER_KEY_WIDTH * (4 - i)
key_bind = @key_binds[i] key_bind = @key_binds[i]
if key_bind && key_bind.type > KeyBind::Type::Key && key_bind.type < KeyBind::Type::JButton if !(@waiting_for_key && i == @selection) && key_bind && key_bind.type > KeyBind::Type::Key && key_bind.type < KeyBind::Type::JButton
icon_x, icon_y = case key_bind.type icon_x, icon_y = case key_bind.type
when KeyBind::Type::CButton when KeyBind::Type::CButton
GamepadIcons.button(key_bind.button) GamepadIcons.button(key_bind.button)
@ -821,12 +822,12 @@ class Window_Settings
@waiting_for_key = @settings_content.waiting_for_key = false @waiting_for_key = @settings_content.waiting_for_key = false
apply apply
redraw redraw
elsif c_button elsif c_button && (!Input.press?(Input::ACTION) || @accept_action)
Settings[@parameter][@selection] = KeyBind.cbutton(c_button) Settings[@parameter][@selection] = KeyBind.cbutton(c_button)
@waiting_for_key = @settings_content.waiting_for_key = false @waiting_for_key = @settings_content.waiting_for_key = false
apply apply
redraw redraw
elsif c_axis elsif c_axis && (!Input.press?(Input::ACTION) || @accept_action)
Settings[@parameter][@selection] = KeyBind.caxis(c_axis, Input::c_axis_pressure(c_axis) > 0 ? KeyBind::Positive : KeyBind::Negative) Settings[@parameter][@selection] = KeyBind.caxis(c_axis, Input::c_axis_pressure(c_axis) > 0 ? KeyBind::Positive : KeyBind::Negative)
@waiting_for_key = @settings_content.waiting_for_key = false @waiting_for_key = @settings_content.waiting_for_key = false
apply apply

View file

@ -4,7 +4,7 @@ uniform int lightSourcesCount;
uniform float ambientLight; uniform float ambientLight;
uniform sampler2D texture; uniform sampler2D texture;
uniform sampler2D wallMapTexture; //uniform sampler2D wallMapTexture;
uniform vec2 wallMapResolution; uniform vec2 wallMapResolution;
@ -24,8 +24,8 @@ float distance(vec2 a, vec2 b){
void main(){ void main(){
vec2 screenPoint = v_texCoord / texSizeInv; vec2 screenPoint = v_texCoord / texSizeInv;
vec2 mapPoint = cameraPosition + screenPoint; //vec2 mapPoint = cameraPosition + screenPoint;
vec2 wallmapUV = mapPoint / tileSize / wallMapResolution; //vec2 wallmapUV = mapPoint / tileSize / wallMapResolution;
vec3 light = vec3(0, 0, 0); vec3 light = vec3(0, 0, 0);