mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 13:15:01 +00:00
Fixed screen mispositioning while sliding on ice, fixed broken Marts
This commit is contained in:
@@ -54,10 +54,10 @@ class Game_Temp
|
|||||||
@message_window_showing = false
|
@message_window_showing = false
|
||||||
@player_transferring = false
|
@player_transferring = false
|
||||||
@transition_processing = false
|
@transition_processing = false
|
||||||
@mart_prices = []
|
@mart_prices = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
def clear_mart_prices
|
def clear_mart_prices
|
||||||
@mart_prices = []
|
@mart_prices = {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -329,6 +329,7 @@ class Game_Map
|
|||||||
end
|
end
|
||||||
|
|
||||||
def display_x=(value)
|
def display_x=(value)
|
||||||
|
return if @display_x == value
|
||||||
@display_x = value
|
@display_x = value
|
||||||
if GameData::MapMetadata.exists?(self.map_id) && GameData::MapMetadata.get(self.map_id).snap_edges
|
if GameData::MapMetadata.exists?(self.map_id) && GameData::MapMetadata.get(self.map_id).snap_edges
|
||||||
max_x = (self.width - Graphics.width*1.0/TILE_WIDTH) * REAL_RES_X
|
max_x = (self.width - Graphics.width*1.0/TILE_WIDTH) * REAL_RES_X
|
||||||
@@ -338,6 +339,7 @@ class Game_Map
|
|||||||
end
|
end
|
||||||
|
|
||||||
def display_y=(value)
|
def display_y=(value)
|
||||||
|
return if @display_y == value
|
||||||
@display_y = value
|
@display_y = value
|
||||||
if GameData::MapMetadata.exists?(self.map_id) && GameData::MapMetadata.get(self.map_id).snap_edges
|
if GameData::MapMetadata.exists?(self.map_id) && GameData::MapMetadata.get(self.map_id).snap_edges
|
||||||
max_y = (self.height - Graphics.height*1.0/TILE_HEIGHT) * REAL_RES_Y
|
max_y = (self.height - Graphics.height*1.0/TILE_HEIGHT) * REAL_RES_Y
|
||||||
@@ -10,6 +10,9 @@ class Game_Player < Game_Character
|
|||||||
attr_accessor :charsetData
|
attr_accessor :charsetData
|
||||||
attr_accessor :encounter_count
|
attr_accessor :encounter_count
|
||||||
|
|
||||||
|
SCREEN_CENTER_X = (Settings::SCREEN_WIDTH / 2 - Game_Map::TILE_WIDTH / 2) * Game_Map::X_SUBPIXELS
|
||||||
|
SCREEN_CENTER_Y = (Settings::SCREEN_HEIGHT / 2 - Game_Map::TILE_HEIGHT / 2) * Game_Map::Y_SUBPIXELS
|
||||||
|
|
||||||
def initialize(*arg)
|
def initialize(*arg)
|
||||||
super(*arg)
|
super(*arg)
|
||||||
@lastdir=0
|
@lastdir=0
|
||||||
@@ -191,12 +194,8 @@ class Game_Player < Game_Character
|
|||||||
# * Set Map Display Position to Center of Screen
|
# * Set Map Display Position to Center of Screen
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
def center(x, y)
|
def center(x, y)
|
||||||
center_x = (Graphics.width/2 - Game_Map::TILE_WIDTH/2) * Game_Map::X_SUBPIXELS
|
self.map.display_x = x * Game_Map::REAL_RES_X - SCREEN_CENTER_X
|
||||||
center_y = (Graphics.height/2 - Game_Map::TILE_HEIGHT/2) * Game_Map::Y_SUBPIXELS
|
self.map.display_y = y * Game_Map::REAL_RES_Y - SCREEN_CENTER_Y
|
||||||
dispx = x * Game_Map::REAL_RES_X - center_x
|
|
||||||
dispy = y * Game_Map::REAL_RES_Y - center_y
|
|
||||||
self.map.display_x = dispx
|
|
||||||
self.map.display_y = dispy
|
|
||||||
end
|
end
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
@@ -372,21 +371,9 @@ class Game_Player < Game_Character
|
|||||||
|
|
||||||
# Center player on-screen
|
# Center player on-screen
|
||||||
def update_screen_position(last_real_x, last_real_y)
|
def update_screen_position(last_real_x, last_real_y)
|
||||||
return if !@moved_this_frame
|
return if self.map.scrolling? || !(@moved_last_frame || @moved_this_frame)
|
||||||
center_x = (Graphics.width/2 - Game_Map::TILE_WIDTH/2) * Game_Map::X_SUBPIXELS
|
self.map.display_x = @real_x - SCREEN_CENTER_X
|
||||||
center_y = (Graphics.height/2 - Game_Map::TILE_HEIGHT/2) * Game_Map::Y_SUBPIXELS
|
self.map.display_y = @real_y - SCREEN_CENTER_Y
|
||||||
if @real_y < last_real_y and @real_y - $game_map.display_y < center_y
|
|
||||||
$game_map.scroll_up(last_real_y - @real_y)
|
|
||||||
end
|
|
||||||
if @real_y > last_real_y and @real_y - $game_map.display_y > center_y
|
|
||||||
$game_map.scroll_down(@real_y - last_real_y)
|
|
||||||
end
|
|
||||||
if @real_x < last_real_x and @real_x - $game_map.display_x < center_x
|
|
||||||
$game_map.scroll_left(last_real_x - @real_x)
|
|
||||||
end
|
|
||||||
if @real_x > last_real_x and @real_x - $game_map.display_x > center_x
|
|
||||||
$game_map.scroll_right(@real_x - last_real_x)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_event_triggering
|
def update_event_triggering
|
||||||
|
|||||||
@@ -196,8 +196,10 @@ class Scene_Map
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
unless $game_player.moving?
|
unless $game_player.moving?
|
||||||
if $game_temp.menu_calling; call_menu
|
if $game_temp.menu_calling
|
||||||
elsif $game_temp.debug_calling; call_debug
|
call_menu
|
||||||
|
elsif $game_temp.debug_calling
|
||||||
|
call_debug
|
||||||
elsif $PokemonTemp.keyItemCalling
|
elsif $PokemonTemp.keyItemCalling
|
||||||
$PokemonTemp.keyItemCalling = false
|
$PokemonTemp.keyItemCalling = false
|
||||||
$game_player.straighten
|
$game_player.straighten
|
||||||
|
|||||||
@@ -787,9 +787,9 @@ def pbSlideOnIce(event=nil)
|
|||||||
break if !PBTerrain.isIce?(pbGetTerrainTag(event))
|
break if !PBTerrain.isIce?(pbGetTerrainTag(event))
|
||||||
event.move_forward
|
event.move_forward
|
||||||
while event.moving?
|
while event.moving?
|
||||||
|
pbUpdateSceneMap
|
||||||
Graphics.update
|
Graphics.update
|
||||||
Input.update
|
Input.update
|
||||||
pbUpdateSceneMap
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
event.center(event.x,event.y)
|
event.center(event.x,event.y)
|
||||||
|
|||||||
Reference in New Issue
Block a user