mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-10 06:34:59 +00:00
Fixed crash upon soft resetting
This commit is contained in:
@@ -340,32 +340,20 @@ module RPG
|
|||||||
end
|
end
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# A modification to class Sprite that allows its coordinates to be floats rather
|
# A version of class Sprite that allows its coordinates to be floats rather than
|
||||||
# than integers.
|
# integers.
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
class Sprite
|
class FloatSprite < Sprite
|
||||||
attr_accessor :float
|
def x; return @float_x; end
|
||||||
|
def y; return @float_y; end
|
||||||
alias :__float__x :x
|
|
||||||
alias :__float__y :y
|
|
||||||
alias :__float__x_equals :x=
|
|
||||||
alias :__float__y_equals :y=
|
|
||||||
|
|
||||||
def x
|
|
||||||
return (@float) ? @real_x : __float__x
|
|
||||||
end
|
|
||||||
|
|
||||||
def y
|
|
||||||
return (@float) ? @real_y : __float__y
|
|
||||||
end
|
|
||||||
|
|
||||||
def x=(value)
|
def x=(value)
|
||||||
@real_x = value if @float
|
@float_x = value
|
||||||
__float__x_equals(value)
|
super
|
||||||
end
|
end
|
||||||
|
|
||||||
def y=(value)
|
def y=(value)
|
||||||
@real_y = value if @float
|
@float_y = value
|
||||||
__float__y_equals(value)
|
super
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -164,8 +164,7 @@ module RPG
|
|||||||
if @sprites.length < MAX_SPRITES && @weatherTypes[@type] && @weatherTypes[@type][1].length > 0
|
if @sprites.length < MAX_SPRITES && @weatherTypes[@type] && @weatherTypes[@type][1].length > 0
|
||||||
MAX_SPRITES.times do |i|
|
MAX_SPRITES.times do |i|
|
||||||
if !@sprites[i]
|
if !@sprites[i]
|
||||||
sprite = Sprite.new(@origViewport)
|
sprite = FloatSprite.new(@origViewport)
|
||||||
sprite.float = true
|
|
||||||
sprite.z = 1000
|
sprite.z = 1000
|
||||||
sprite.ox = @ox + @ox_offset
|
sprite.ox = @ox + @ox_offset
|
||||||
sprite.oy = @oy + @oy_offset
|
sprite.oy = @oy + @oy_offset
|
||||||
@@ -180,8 +179,7 @@ module RPG
|
|||||||
@weatherTypes[@target_type][1].length > 0
|
@weatherTypes[@target_type][1].length > 0
|
||||||
MAX_SPRITES.times do |i|
|
MAX_SPRITES.times do |i|
|
||||||
if !@new_sprites[i]
|
if !@new_sprites[i]
|
||||||
sprite = Sprite.new(@origViewport)
|
sprite = FloatSprite.new(@origViewport)
|
||||||
sprite.float = true
|
|
||||||
sprite.z = 1000
|
sprite.z = 1000
|
||||||
sprite.ox = @ox + @ox_offset
|
sprite.ox = @ox + @ox_offset
|
||||||
sprite.oy = @oy + @oy_offset
|
sprite.oy = @oy + @oy_offset
|
||||||
@@ -198,8 +196,7 @@ module RPG
|
|||||||
return if @tiles.length >= @tiles_wide * @tiles_tall
|
return if @tiles.length >= @tiles_wide * @tiles_tall
|
||||||
(@tiles_wide * @tiles_tall).times do |i|
|
(@tiles_wide * @tiles_tall).times do |i|
|
||||||
if !@tiles[i]
|
if !@tiles[i]
|
||||||
sprite = Sprite.new(@origViewport)
|
sprite = FloatSprite.new(@origViewport)
|
||||||
sprite.float = true
|
|
||||||
sprite.z = 1000
|
sprite.z = 1000
|
||||||
sprite.ox = @ox + @ox_offset
|
sprite.ox = @ox + @ox_offset
|
||||||
sprite.oy = @oy + @oy_offset
|
sprite.oy = @oy + @oy_offset
|
||||||
|
|||||||
Reference in New Issue
Block a user