diff --git a/scripts/Data_Footsteps.rb b/scripts/Data_Footsteps.rb index b8942ba..d7cbe89 100644 --- a/scripts/Data_Footsteps.rb +++ b/scripts/Data_Footsteps.rb @@ -68,9 +68,16 @@ FOOTSTEP_SFX = [ ['step_gravel', 'step_wood', 'step_boat'], - # shkep this - ["step_gravel", - "step_tile"], + # shkep this + ["step_gravel", + "step_tile"], + [], + [], + [], + [], + # maize + ['step_grass', + 'step_tile'], ] FOOTSTEP_AMT = { diff --git a/scripts/Data_Settings.rb b/scripts/Data_Settings.rb index 493908a..be7e10c 100644 --- a/scripts/Data_Settings.rb +++ b/scripts/Data_Settings.rb @@ -42,6 +42,7 @@ module Settings :debug_text => false, :debug_text_scene_title => true, :debug_picture_names => false, + :debug_lightmap => false, } reset_controls! end @@ -356,6 +357,11 @@ class Window_Settings :name => tr('Show picture names'), :parameter => :debug_picture_names }, + { + :type => :bool, + :name => tr('Debug lightmap'), + :parameter => :debug_lightmap + }, { :type => :sep }, { :type => :key, diff --git a/scripts/Data_Settings_Classes.rb b/scripts/Data_Settings_Classes.rb index 820b8f4..ed3bf75 100644 --- a/scripts/Data_Settings_Classes.rb +++ b/scripts/Data_Settings_Classes.rb @@ -301,8 +301,7 @@ class Window_Settings @sprite.bitmap.font.size = 20 @value_width = PARAMETER_VALUE_WIDTH - - update_parameter + self.value = self.value # appling init settings redraw end @@ -315,18 +314,19 @@ class Window_Settings end def value + if (Settings.has?(@parameter)) + @value = Settings[@parameter] + end @value end def value=(value) - @value = value - update_parameter - end - - def update_parameter - if @parameter != nil && Settings::Setters.respond_to?(@parameter) - Settings::Setters.send(@parameter, @value) + if @parameter && (Settings.has?(@parameter)) + Settings[@parameter] = value + if Settings::Setters.respond_to?(@parameter) + Settings::Setters.send(@parameter, value) + end end - Settings[@parameter] = @value + @value = value end def name @@ -338,7 +338,7 @@ class Window_Settings end def get_display_value() - @value.to_s || "null" + self.value.to_s || "null" end def redraw() @@ -395,26 +395,26 @@ class Window_Settings end def value=(value) - if (value != @value) + if (value != self.value) Audio.se_play(PARAMETER_CHANGE_AUDIO, 70, value ? 125 : 75) end super(value) end def get_display_value - return @value ? tr("ON") : tr("OFF") + return self.value ? tr("ON") : tr("OFF") end def value_left() - self.value = !@value + self.value = !self.value redraw end def value_right() - self.value = !@value + self.value = !self.value redraw end def action() - self.value = !@value + self.value = !self.value redraw end end @@ -430,11 +430,11 @@ class Window_Settings super(settings_content, screen_id, position, name, parameter, bool_value) end - def update_parameter + def value=(value) super() - if @switch - $game_switches[@switch] = invert ? !@value : @value + if $game_switches[@switch] + $game_switches[@switch] = @invert ? !@value : @value end end end @@ -454,18 +454,18 @@ class Window_Settings end def value=(value) - if (value != @value) + if (value != self.value) Audio.se_play(PARAMETER_CHANGE_AUDIO, 70, ((value.to_f + @min_value.to_f) / (@max_value.to_f + @min_value.to_f) * 50.0).to_i + 75) end super(value) end def value_left() - self.value = (@value - 1).clamp(@min_value, @max_value) + self.value = (self.value - 1).clamp(@min_value, @max_value) redraw end def value_right() - self.value = (@value + 1).clamp(@min_value, @max_value) + self.value = (self.value + 1).clamp(@min_value, @max_value) redraw end end @@ -479,7 +479,7 @@ class Window_Settings end def get_display_value() - percent = (@value.to_f - @min_value.to_f) / @max_value.to_f + percent = (self.value.to_f - @min_value.to_f) / @max_value.to_f (percent * 100.0).to_i.to_s + "%" end @@ -489,7 +489,7 @@ class Window_Settings @sprite.bitmap.draw_text(0, 0, @sprite.bitmap.width - @value_width, @sprite.bitmap.height, @name) - percent = (@value.to_f - @min_value.to_f) / @max_value.to_f + percent = (self.value.to_f - @min_value.to_f) / @max_value.to_f width = (@value_width * percent).to_i @sprite.bitmap.fill_rect(Rect.new(@sprite.bitmap.width - @value_width, 4, @value_width, @sprite.bitmap.height - 8), Color.new(255, 255, 255, 64)) #@sprite.bitmap.fill_rect(Rect.new(@sprite.bitmap.width - @value_width + 1, 5, @value_width - 2, @sprite.bitmap.height - 10), Color.new(255, 255, 255, 0)) @@ -533,11 +533,11 @@ class Window_Settings end def value_left() - self.value = (@value - step).clamp(@min_value, @max_value) + self.value = (self.value - @step).clamp(@min_value, @max_value) redraw end def value_right() - self.value = (@value + step).clamp(@min_value, @max_value) + self.value = (self.value + @step).clamp(@min_value, @max_value) redraw end end @@ -553,15 +553,15 @@ class Window_Settings end def get_display_value - @texts&.[](@value) || @value.to_s || "null" + @texts&.[](self.value) || "Unknown value #{self.value}" end def value_left() - self.value = (@value - 1) % [1, @max_value + 1].max + self.value = (self.value - 1) % [1, @max_value + 1].max redraw end def value_right() - self.value = (@value + 1) % [1, @max_value + 1].max + self.value = (self.value + 1) % [1, @max_value + 1].max redraw end end diff --git a/scripts/Data_Settings_Setters.rb b/scripts/Data_Settings_Setters.rb index 9f4f8d9..5d74155 100644 --- a/scripts/Data_Settings_Setters.rb +++ b/scripts/Data_Settings_Setters.rb @@ -18,7 +18,7 @@ module Settings # Video def fullscreen(value) - Graphics.fullscreen = value + Graphics.fullscreen = $console = value end def colorblind(value) $game_switches[252] = value diff --git a/scripts/DynamicLight.rb b/scripts/DynamicLight.rb index afeadba..c71a130 100644 --- a/scripts/DynamicLight.rb +++ b/scripts/DynamicLight.rb @@ -1,5 +1,9 @@ class DynamicLight def initialize(viewport) + @debug_sprite = Sprite.new(viewport) + @debug_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height) + @debug_sprite.bitmap.fill_rect(0, 0, Graphics.width, Graphics.height, Color.new(255, 255, 255)) + @debug_sprite.visible = false @light_sprite = LightMap.new(viewport) #@light_sprite.wallmap = Bitmap.new($game_map.width, $game_map.height) @@ -40,6 +44,8 @@ class DynamicLight return end + @debug_sprite.visible = Settings[:debug_lightmap] + if $light.update_clear_lights @light_sprite.clear_static_sources() @light_sprite.clear_dynamic_sources() diff --git a/scripts/Scene_Map.rb b/scripts/Scene_Map.rb index 7184140..2c2acb7 100644 --- a/scripts/Scene_Map.rb +++ b/scripts/Scene_Map.rb @@ -277,17 +277,10 @@ class Scene_Map @window_debug.update if Input.trigger?(Input::F8) && !$game_switches[123] - if Graphics.fullscreen == true - Graphics.fullscreen = false - $console = false - else - Graphics.fullscreen = true - $console = true - end - sleep(0.500) + Graphics.fullscreen = $console = !Settings[:fullscreen] + Settings[:fullscreen] = !Settings[:fullscreen] if @window_settings.visible - @window_settings.redraw_setting_index(2) - sleep(0.500) + @window_settings.redraw_setting(1, 0) end end # If showing message window diff --git a/scripts/Scene_Title.rb b/scripts/Scene_Title.rb index e9c6748..d182afd 100644 --- a/scripts/Scene_Title.rb +++ b/scripts/Scene_Title.rb @@ -166,6 +166,14 @@ class Scene_Title def update @debug.visible = Settings[:debug_text_scene_title] || false # if undefined don't render + if Input.trigger?(Input::F8) + Graphics.fullscreen = $console = !Settings[:fullscreen] + Settings[:fullscreen] = !Settings[:fullscreen] + if @window_settings_title.visible + @window_settings_title.redraw_setting(1, 0) + end + end + # Handle cursor movement if !@window_settings_title.visible @cursor.y = (MENU_Y.to_f + (20.0 - @cursor.bitmap.height.to_f) / 2.0 + 25.5 * @cursor_pos) * 0.65 + @cursor.y.to_f * 0.35 @@ -189,21 +197,10 @@ class Scene_Title end end end - if Input.trigger?(Input::F8) - if Graphics.fullscreen == true - Graphics.fullscreen = false - $console = false - else - Graphics.fullscreen = true - $console = true - end - end if update_cursor Audio.se_play('Audio/SE/title_cursor.wav', 40) end - end - - if !@window_settings_title.visible + # Handle confirmation if Input.trigger?(Input::ACTION) if File.exist?("badend.lock") diff --git a/scripts/Settings.rb b/scripts/Settings.rb index 1133303..1dbe6f4 100644 --- a/scripts/Settings.rb +++ b/scripts/Settings.rb @@ -20,6 +20,10 @@ module Settings @data[k] = v; end + def has?(parameter) + @data.has_key?(parameter) + end + def load! #Settings::Legacy.load! Settings.reset! diff --git a/shader/dynamicLight.frag b/shader/dynamicLight.frag index e53e409..cbb94a1 100644 --- a/shader/dynamicLight.frag +++ b/shader/dynamicLight.frag @@ -38,5 +38,7 @@ void main(){ pow(clamp(1.0 - distance(screenPoint, lightScreenPoint) / 32.0 / sourceInfo.w, 0.0, 1.0), sourceColor.a * 2.0); } - gl_FragColor = vec4(light + ambientLight / powerBase, 1.0); + light += ambientLight / powerBase; + + gl_FragColor = vec4(light, 1.0); } diff --git a/src/main.cpp b/src/main.cpp index 980c6d4..22d17ac 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -230,7 +230,7 @@ int main(int argc, char *argv[]){ #if SDL_VERSION_ATLEAST(3, 4, 10) SDL_SetHint(SDL_HINT_VIDEO_X11_ENABLE_XSYNC_EXT, "1"); #endif - #elif WIN32 + #elif defined(WIN32) SDL_SetHint(SDL_HINT_WINDOWS_RAW_KEYBOARD, "1"); #elif __ANDROID__ SDL_SetHint(SDL_HINT_ANDROID_ALLOW_PERSISTENT_FOLDER_ACCESS, "1");