mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
Removed redundant "\r" from various messages, removed usages of BitmapWrapper, fixed Lure Ball error in battles started in the Debug menu, improved Terrain Tag editor, fixed some Compiler errors, enabled vsync, fixed event graphics frozen to the screen when using $game_player.moveto directly.
This commit is contained in:
@@ -68,9 +68,9 @@ class Sprite_Character < RPG::Sprite
|
||||
@oldbushdepth = 0
|
||||
@spriteoffset = false
|
||||
if !character || character == $game_player || (character.name[/reflection/i] rescue false)
|
||||
@reflection = Sprite_Reflection.new(self, character, viewport)
|
||||
@reflection = Sprite_Reflection.new(self, viewport)
|
||||
end
|
||||
@surfbase = Sprite_SurfBase.new(self, character, viewport) if character == $game_player
|
||||
@surfbase = Sprite_SurfBase.new(self, viewport) if character == $game_player
|
||||
self.zoom_x = TilemapRenderer::ZOOM_X
|
||||
self.zoom_y = TilemapRenderer::ZOOM_Y
|
||||
update
|
||||
@@ -94,51 +94,55 @@ class Sprite_Character < RPG::Sprite
|
||||
@reflection = nil
|
||||
@surfbase&.dispose
|
||||
@surfbase = nil
|
||||
@character = nil
|
||||
super
|
||||
end
|
||||
|
||||
def refresh_graphic
|
||||
return if @tile_id == @character.tile_id &&
|
||||
@character_name == @character.character_name &&
|
||||
@character_hue == @character.character_hue &&
|
||||
@oldbushdepth == @character.bush_depth
|
||||
@tile_id = @character.tile_id
|
||||
@character_name = @character.character_name
|
||||
@character_hue = @character.character_hue
|
||||
@oldbushdepth = @character.bush_depth
|
||||
@charbitmap&.dispose
|
||||
@charbitmap = nil
|
||||
@bushbitmap&.dispose
|
||||
@bushbitmap = nil
|
||||
if @tile_id >= 384
|
||||
@charbitmap = pbGetTileBitmap(@character.map.tileset_name, @tile_id,
|
||||
@character_hue, @character.width, @character.height)
|
||||
@charbitmapAnimated = false
|
||||
@spriteoffset = false
|
||||
@cw = Game_Map::TILE_WIDTH * @character.width
|
||||
@ch = Game_Map::TILE_HEIGHT * @character.height
|
||||
self.src_rect.set(0, 0, @cw, @ch)
|
||||
self.ox = @cw / 2
|
||||
self.oy = @ch
|
||||
elsif @character_name != ""
|
||||
@charbitmap = AnimatedBitmap.new(
|
||||
"Graphics/Characters/" + @character_name, @character_hue
|
||||
)
|
||||
RPG::Cache.retain("Graphics/Characters/", @character_name, @character_hue) if @character == $game_player
|
||||
@charbitmapAnimated = true
|
||||
@spriteoffset = @character_name[/offset/i]
|
||||
@cw = @charbitmap.width / 4
|
||||
@ch = @charbitmap.height / 4
|
||||
self.ox = @cw / 2
|
||||
else
|
||||
self.bitmap = nil
|
||||
@cw = 0
|
||||
@ch = 0
|
||||
end
|
||||
@character.sprite_size = [@cw, @ch]
|
||||
end
|
||||
|
||||
def update
|
||||
return if @character.is_a?(Game_Event) && !@character.should_update?
|
||||
super
|
||||
if @tile_id != @character.tile_id ||
|
||||
@character_name != @character.character_name ||
|
||||
@character_hue != @character.character_hue ||
|
||||
@oldbushdepth != @character.bush_depth
|
||||
@tile_id = @character.tile_id
|
||||
@character_name = @character.character_name
|
||||
@character_hue = @character.character_hue
|
||||
@oldbushdepth = @character.bush_depth
|
||||
@charbitmap&.dispose
|
||||
@charbitmap = nil
|
||||
@bushbitmap&.dispose
|
||||
@bushbitmap = nil
|
||||
if @tile_id >= 384
|
||||
@charbitmap = pbGetTileBitmap(@character.map.tileset_name, @tile_id,
|
||||
@character_hue, @character.width, @character.height)
|
||||
@charbitmapAnimated = false
|
||||
@spriteoffset = false
|
||||
@cw = Game_Map::TILE_WIDTH * @character.width
|
||||
@ch = Game_Map::TILE_HEIGHT * @character.height
|
||||
self.src_rect.set(0, 0, @cw, @ch)
|
||||
self.ox = @cw / 2
|
||||
self.oy = @ch
|
||||
elsif @character_name != ""
|
||||
@charbitmap = AnimatedBitmap.new(
|
||||
"Graphics/Characters/" + @character_name, @character_hue
|
||||
)
|
||||
RPG::Cache.retain("Graphics/Characters/", @character_name, @character_hue) if @character == $game_player
|
||||
@charbitmapAnimated = true
|
||||
@spriteoffset = @character_name[/offset/i]
|
||||
@cw = @charbitmap.width / 4
|
||||
@ch = @charbitmap.height / 4
|
||||
self.ox = @cw / 2
|
||||
else
|
||||
self.bitmap = nil
|
||||
@cw = 0
|
||||
@ch = 0
|
||||
end
|
||||
@character.sprite_size = [@cw, @ch]
|
||||
end
|
||||
refresh_graphic
|
||||
return if !@charbitmap
|
||||
@charbitmap.update if @charbitmapAnimated
|
||||
bushdepth = @character.bush_depth
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
class Sprite_Reflection
|
||||
attr_reader :visible
|
||||
attr_accessor :event
|
||||
|
||||
def initialize(sprite, event, viewport = nil)
|
||||
@rsprite = sprite
|
||||
@sprite = nil
|
||||
@event = event
|
||||
@height = 0
|
||||
def initialize(parent_sprite, viewport = nil)
|
||||
@parent_sprite = parent_sprite
|
||||
@sprite = nil
|
||||
@height = 0
|
||||
@fixedheight = false
|
||||
if @event && @event != $game_player && @event.name[/reflection\((\d+)\)/i]
|
||||
if @parent_sprite.character && @parent_sprite.character != $game_player &&
|
||||
@parent_sprite.character.name[/reflection\((\d+)\)/i]
|
||||
@height = $~[1].to_i || 0
|
||||
@fixedheight = true
|
||||
end
|
||||
@@ -18,15 +17,19 @@ class Sprite_Reflection
|
||||
end
|
||||
|
||||
def dispose
|
||||
if !@disposed
|
||||
@sprite&.dispose
|
||||
@sprite = nil
|
||||
@disposed = true
|
||||
end
|
||||
return if @disposed
|
||||
@sprite&.dispose
|
||||
@sprite = nil
|
||||
@parent_sprite = nil
|
||||
@disposed = true
|
||||
end
|
||||
|
||||
def disposed?
|
||||
@disposed
|
||||
return @disposed
|
||||
end
|
||||
|
||||
def event
|
||||
return @parent_sprite.character
|
||||
end
|
||||
|
||||
def visible=(value)
|
||||
@@ -36,7 +39,7 @@ class Sprite_Reflection
|
||||
|
||||
def update
|
||||
return if disposed?
|
||||
shouldShow = @rsprite.visible
|
||||
shouldShow = @parent_sprite.visible
|
||||
if !shouldShow
|
||||
# Just-in-time disposal of sprite
|
||||
if @sprite
|
||||
@@ -48,38 +51,38 @@ class Sprite_Reflection
|
||||
# Just-in-time creation of sprite
|
||||
@sprite = Sprite.new(@viewport) if !@sprite
|
||||
if @sprite
|
||||
x = @rsprite.x - (@rsprite.ox * TilemapRenderer::ZOOM_X)
|
||||
y = @rsprite.y - (@rsprite.oy * TilemapRenderer::ZOOM_Y)
|
||||
y -= Game_Map::TILE_HEIGHT * TilemapRenderer::ZOOM_Y if @rsprite.character.character_name[/offset/i]
|
||||
x = @parent_sprite.x - (@parent_sprite.ox * TilemapRenderer::ZOOM_X)
|
||||
y = @parent_sprite.y - (@parent_sprite.oy * TilemapRenderer::ZOOM_Y)
|
||||
y -= Game_Map::TILE_HEIGHT * TilemapRenderer::ZOOM_Y if event.character_name[/offset/i]
|
||||
@height = $PokemonGlobal.bridge if !@fixedheight
|
||||
y += @height * TilemapRenderer::ZOOM_Y * Game_Map::TILE_HEIGHT / 2
|
||||
width = @rsprite.src_rect.width
|
||||
height = @rsprite.src_rect.height
|
||||
width = @parent_sprite.src_rect.width
|
||||
height = @parent_sprite.src_rect.height
|
||||
@sprite.x = x + ((width / 2) * TilemapRenderer::ZOOM_X)
|
||||
@sprite.y = y + ((height + (height / 2)) * TilemapRenderer::ZOOM_Y)
|
||||
@sprite.ox = width / 2
|
||||
@sprite.oy = (height / 2) - 2 # Hard-coded 2 pixel shift up
|
||||
@sprite.oy -= @rsprite.character.bob_height * 2
|
||||
@sprite.oy -= event.bob_height * 2
|
||||
@sprite.z = -50 # Still water is -100, map is 0 and above
|
||||
@sprite.z += 1 if @event == $game_player
|
||||
@sprite.zoom_x = @rsprite.zoom_x
|
||||
@sprite.zoom_y = @rsprite.zoom_y
|
||||
@sprite.z += 1 if event == $game_player
|
||||
@sprite.zoom_x = @parent_sprite.zoom_x
|
||||
@sprite.zoom_y = @parent_sprite.zoom_y
|
||||
frame = (Graphics.frame_count % 40) / 10
|
||||
@sprite.zoom_x *= [1.0, 0.95, 1.0, 1.05][frame]
|
||||
@sprite.angle = 180.0
|
||||
@sprite.mirror = true
|
||||
@sprite.bitmap = @rsprite.bitmap
|
||||
@sprite.tone = @rsprite.tone
|
||||
@sprite.bitmap = @parent_sprite.bitmap
|
||||
@sprite.tone = @parent_sprite.tone
|
||||
if @height > 0
|
||||
@sprite.color = Color.new(48, 96, 160, 255) # Dark still water
|
||||
@sprite.opacity = @rsprite.opacity
|
||||
@sprite.opacity = @parent_sprite.opacity
|
||||
@sprite.visible = !Settings::TIME_SHADING # Can't time-tone a colored sprite
|
||||
else
|
||||
@sprite.color = Color.new(224, 224, 224, 96)
|
||||
@sprite.opacity = @rsprite.opacity * 3 / 4
|
||||
@sprite.opacity = @parent_sprite.opacity * 3 / 4
|
||||
@sprite.visible = true
|
||||
end
|
||||
@sprite.src_rect = @rsprite.src_rect
|
||||
@sprite.src_rect = @parent_sprite.src_rect
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
class Sprite_SurfBase
|
||||
attr_reader :visible
|
||||
attr_accessor :event
|
||||
|
||||
def initialize(sprite, event, viewport = nil)
|
||||
@rsprite = sprite
|
||||
@sprite = nil
|
||||
@event = event
|
||||
def initialize(parent_sprite, viewport = nil)
|
||||
@parent_sprite = parent_sprite
|
||||
@sprite = nil
|
||||
@viewport = viewport
|
||||
@disposed = false
|
||||
@surfbitmap = AnimatedBitmap.new("Graphics/Characters/base_surf")
|
||||
@@ -23,13 +21,18 @@ class Sprite_SurfBase
|
||||
return if @disposed
|
||||
@sprite&.dispose
|
||||
@sprite = nil
|
||||
@parent_sprite = nil
|
||||
@surfbitmap.dispose
|
||||
@divebitmap.dispose
|
||||
@disposed = true
|
||||
end
|
||||
|
||||
def disposed?
|
||||
@disposed
|
||||
return @disposed
|
||||
end
|
||||
|
||||
def event
|
||||
return @parent_sprite.character
|
||||
end
|
||||
|
||||
def visible=(value)
|
||||
@@ -49,41 +52,40 @@ class Sprite_SurfBase
|
||||
end
|
||||
# Just-in-time creation of sprite
|
||||
@sprite = Sprite.new(@viewport) if !@sprite
|
||||
if @sprite
|
||||
if $PokemonGlobal.surfing
|
||||
@sprite.bitmap = @surfbitmap.bitmap
|
||||
cw = @cws
|
||||
ch = @chs
|
||||
elsif $PokemonGlobal.diving
|
||||
@sprite.bitmap = @divebitmap.bitmap
|
||||
cw = @cwd
|
||||
ch = @chd
|
||||
end
|
||||
sx = @event.pattern_surf * cw
|
||||
sy = ((@event.direction - 2) / 2) * ch
|
||||
@sprite.src_rect.set(sx, sy, cw, ch)
|
||||
if $game_temp.surf_base_coords
|
||||
spr_x = ((($game_temp.surf_base_coords[0] * Game_Map::REAL_RES_X) - @event.map.display_x).to_f / Game_Map::X_SUBPIXELS).round
|
||||
spr_x += (Game_Map::TILE_WIDTH / 2)
|
||||
spr_x = ((spr_x - (Graphics.width / 2)) * TilemapRenderer::ZOOM_X) + (Graphics.width / 2) if TilemapRenderer::ZOOM_X != 1
|
||||
@sprite.x = spr_x
|
||||
spr_y = ((($game_temp.surf_base_coords[1] * Game_Map::REAL_RES_Y) - @event.map.display_y).to_f / Game_Map::Y_SUBPIXELS).round
|
||||
spr_y += (Game_Map::TILE_HEIGHT / 2) + 16
|
||||
spr_y = ((spr_y - (Graphics.height / 2)) * TilemapRenderer::ZOOM_Y) + (Graphics.height / 2) if TilemapRenderer::ZOOM_Y != 1
|
||||
@sprite.y = spr_y
|
||||
else
|
||||
@sprite.x = @rsprite.x
|
||||
@sprite.y = @rsprite.y
|
||||
end
|
||||
@sprite.ox = cw / 2
|
||||
@sprite.oy = ch - 16 # Assume base needs offsetting
|
||||
@sprite.oy -= @event.bob_height
|
||||
@sprite.z = @event.screen_z(ch) - 1
|
||||
@sprite.zoom_x = @rsprite.zoom_x
|
||||
@sprite.zoom_y = @rsprite.zoom_y
|
||||
@sprite.tone = @rsprite.tone
|
||||
@sprite.color = @rsprite.color
|
||||
@sprite.opacity = @rsprite.opacity
|
||||
return if !@sprite
|
||||
if $PokemonGlobal.surfing
|
||||
@sprite.bitmap = @surfbitmap.bitmap
|
||||
cw = @cws
|
||||
ch = @chs
|
||||
elsif $PokemonGlobal.diving
|
||||
@sprite.bitmap = @divebitmap.bitmap
|
||||
cw = @cwd
|
||||
ch = @chd
|
||||
end
|
||||
sx = event.pattern_surf * cw
|
||||
sy = ((event.direction - 2) / 2) * ch
|
||||
@sprite.src_rect.set(sx, sy, cw, ch)
|
||||
if $game_temp.surf_base_coords
|
||||
spr_x = ((($game_temp.surf_base_coords[0] * Game_Map::REAL_RES_X) - event.map.display_x).to_f / Game_Map::X_SUBPIXELS).round
|
||||
spr_x += (Game_Map::TILE_WIDTH / 2)
|
||||
spr_x = ((spr_x - (Graphics.width / 2)) * TilemapRenderer::ZOOM_X) + (Graphics.width / 2) if TilemapRenderer::ZOOM_X != 1
|
||||
@sprite.x = spr_x
|
||||
spr_y = ((($game_temp.surf_base_coords[1] * Game_Map::REAL_RES_Y) - event.map.display_y).to_f / Game_Map::Y_SUBPIXELS).round
|
||||
spr_y += (Game_Map::TILE_HEIGHT / 2) + 16
|
||||
spr_y = ((spr_y - (Graphics.height / 2)) * TilemapRenderer::ZOOM_Y) + (Graphics.height / 2) if TilemapRenderer::ZOOM_Y != 1
|
||||
@sprite.y = spr_y
|
||||
else
|
||||
@sprite.x = @parent_sprite.x
|
||||
@sprite.y = @parent_sprite.y
|
||||
end
|
||||
@sprite.ox = cw / 2
|
||||
@sprite.oy = ch - 16 # Assume base needs offsetting
|
||||
@sprite.oy -= event.bob_height
|
||||
@sprite.z = event.screen_z(ch) - 1
|
||||
@sprite.zoom_x = @parent_sprite.zoom_x
|
||||
@sprite.zoom_y = @parent_sprite.zoom_y
|
||||
@sprite.tone = @parent_sprite.tone
|
||||
@sprite.color = @parent_sprite.color
|
||||
@sprite.opacity = @parent_sprite.opacity
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user