Skip to content
This repository was archived by the owner on Jul 24, 2020. It is now read-only.

Commit ea89f56

Browse files
Merge pull request #420 from RMEx/dev
Version 1.4.1
2 parents c8a5fb2 + 2be2deb commit ea89f56

File tree

6 files changed

+129
-24
lines changed

6 files changed

+129
-24
lines changed

CHANGELOG.md

+11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# RME Changelog
22

3+
## Release (1.4.1)
4+
5+
### Bug fixes
6+
- Fix `spritesheet_erase` and `spritesheets_clear` (@BastienDuplessier, reported by @Princesseuh)
7+
- Fix `event_look_towards?` and `event_look_towards_event?` (@BastienDuplessier, reported by @Azvnrd)
8+
- Fix `pixel_in_event?` and `pixel_in_player?` (@BastienDuplessier, reported by @acs-l)
9+
- Fix `page_runnable?` (@BastienDuplessier, reported by @acs-l)
10+
- Fix `event_move_with`, move is not repeatable anymore (@BastienDuplessier, reported by @Zer0xxxxx)
11+
- Fix `invoke_event` which was stopping animations when called (@BastienDuplessier, reported by @YendaHusk)
12+
- Fix `switch_tileset`, now does not reset ox/oy of events sprites (@BastienDuplessier, reported by @YendaHusk)
13+
314
## Release (1.4.0)
415

516
### Additions

RME.rb

+59-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# -*- coding: utf-8 -*-
22
#==============================================================================
3-
# ** RME v1.4.0
3+
# ** RME v1.4.1
44
#------------------------------------------------------------------------------
55
# With :
66
# xvw
@@ -72,7 +72,7 @@ class << self
7272
# * Version
7373
# * With RMEPackage, it's seems useless ?
7474
#--------------------------------------------------------------------------
75-
def version; define_version(1,4,0); end
75+
def version; define_version(1,4,1); end
7676
#--------------------------------------------------------------------------
7777
# * define Version
7878
#--------------------------------------------------------------------------
@@ -7168,6 +7168,13 @@ def release?(key = :mouse_left, pr = false)
71687168
return false unless k_sprite
71697169
k_sprite.release?(key, pr)
71707170
end
7171+
#--------------------------------------------------------------------------
7172+
# * Is pixel in sprite ?
7173+
#--------------------------------------------------------------------------
7174+
def pixel_in?(x, y, precise = false)
7175+
return false unless k_sprite
7176+
precise ? k_sprite.precise_in?(x, y) : k_sprite.in?(x, y)
7177+
end
71717178
end
71727179
#==============================================================================
71737180
# ** API
@@ -7538,10 +7545,12 @@ class << self
75387545
attr_accessor :light_emitter
75397546
attr_accessor :tone
75407547
attr_accessor :allow_overlap
7548+
attr_accessor :changing_graphics
75417549
attr_reader :id
75427550

75437551
alias_method :allow_overlap?, :allow_overlap
75447552
alias_method :rme_collide_with_characters?, :collide_with_characters?
7553+
alias_method :rme_set_graphic, :set_graphic
75457554
#--------------------------------------------------------------------------
75467555
# * Initialisation du Buzzer
75477556
#--------------------------------------------------------------------------
@@ -7570,6 +7579,7 @@ def initialize
75707579
@rect = Rect.new(0,0,0,0)
75717580
@sprite_index
75727581
init_tone
7582+
@changing_graphics = false
75737583
end
75747584

75757585
#--------------------------------------------------------------------------
@@ -7764,6 +7774,13 @@ def collide_with_characters?(x, y)
77647774
return false if allow_overlap?
77657775
rme_collide_with_characters?(x, y)
77667776
end
7777+
#--------------------------------------------------------------------------
7778+
# * Change Graphics
7779+
#--------------------------------------------------------------------------
7780+
def set_graphic(character_name, character_index)
7781+
rme_set_graphic(character_name, character_index)
7782+
@changing_graphics = true
7783+
end
77677784

77687785
end
77697786

@@ -7997,8 +8014,14 @@ def initialize(viewport, character = nil)
79978014
#--------------------------------------------------------------------------
79988015
def set_character_bitmap
79998016
rm_extender_set_character_bitmap
8000-
character.ox = self.ox
8001-
character.oy = self.oy
8017+
if character.changing_graphics || (character.ox.nil? && character.oy.nil?)
8018+
character.ox = self.ox
8019+
character.oy = self.oy
8020+
else
8021+
self.ox = character.ox
8022+
self.oy = character.oy
8023+
end
8024+
character.changing_graphics = false
80028025
@old_buzz = 0
80038026
@origin_len_x = self.zoom_x
80048027
end
@@ -8843,6 +8866,12 @@ def refresh_message
88438866
@message_window.dispose
88448867
@message_window = Window_Message.new
88458868
end
8869+
#--------------------------------------------------------------------------
8870+
# * Add Event sprite into spriteset
8871+
#--------------------------------------------------------------------------
8872+
def add_event_sprite(event)
8873+
@spriteset.add_event_sprite(event)
8874+
end
88468875

88478876
#--------------------------------------------------------------------------
88488877
# * Update All Windows
@@ -9164,14 +9193,15 @@ def add_event(map_id, event_id, new_id,x=nil,y=nil)
91649193
return unless event
91659194
event.id = new_id
91669195
clone_events = @events.clone
9167-
clone_events.store(new_id, Game_Event.new(@map_id, event))
9196+
new_event = Game_Event.new(@map_id, event)
9197+
clone_events.store(new_id, new_event)
91689198
x ||= event.x
91699199
y ||= event.y
91709200
@events = clone_events
91719201
@events[new_id].moveto(x, y)
91729202
@need_refresh = true
91739203
@max_event_id = [@max_event_id, new_id].max
9174-
SceneManager.scene.refresh_spriteset
9204+
SceneManager.scene.add_event_sprite(new_event)
91759205
end
91769206
#--------------------------------------------------------------------------
91779207
# * Clear parallaxes
@@ -9954,6 +9984,14 @@ def show(name, rows, columns, index, origin, x, y, zoom_x, zoom_y, opacity, blen
99549984
self.current = index
99559985
@dirty = true
99569986
end
9987+
#--------------------------------------------------------------------------
9988+
# * Erase Picture
9989+
#--------------------------------------------------------------------------
9990+
def erase
9991+
super
9992+
@dirty = true
9993+
end
9994+
99579995
end
99589996

99599997
#==============================================================================
@@ -10204,6 +10242,13 @@ def update_parallax
1020410242
end
1020510243
rm_extender_update_parallax
1020610244
end
10245+
#--------------------------------------------------------------------------
10246+
# * Add Event Sprite to Characters
10247+
#--------------------------------------------------------------------------
10248+
def add_event_sprite(event)
10249+
sp = Sprite_Character.new(@viewport1, event)
10250+
@character_sprites.push(sp)
10251+
end
1020710252
end
1020810253

1020910254
#==============================================================================
@@ -11580,7 +11625,7 @@ def get_tileset_id
1158011625
end
1158111626

1158211627
def switch_tileset(tileset_id)
11583-
$game_map.tileset_id = tileset_id
11628+
$game_map.change_tileset(tileset_id)
1158411629
end
1158511630

1158611631
def set_tile(value, x, y, layer)
@@ -12850,7 +12895,7 @@ def fresh_event_id(erased = false)
1285012895
#--------------------------------------------------------------------------
1285112896
def page_runnable?(map_id, ev_id, page, context=false)
1285212897
return unless self.class == Game_Interpreter
12853-
page = Game_Interpreter.get_page(map_id, ev_id, p_id) if page.is_a?(Fixnum)
12898+
page = Game_Interpreter.get_page(map_id, ev_id, page) if page.is_a?(Fixnum)
1285412899
return unless page
1285512900
return Game_Interpreter.conditions_met?(map_id, ev_id, page) if context
1285612901
c_map_id = Game_Interpreter.current_map_id
@@ -13461,13 +13506,13 @@ def event_look_towards?(source, x, y, scope)
1346113506
ex, ey = event_x(source), event_y(source)
1346213507
case event_direction(source)
1346313508
when Direction::UP
13464-
distance = ey - y
13465-
x_axis = (ex >= x - distance) && (ex <= x + distance)
13466-
y_axis = ey > y
13467-
when Direction::DOWN
1346813509
distance = y - ey
1346913510
x_axis = (ex >= x - distance) && (ex <= x + distance)
1347013511
y_axis = ey < y
13512+
when Direction::DOWN
13513+
distance = ey - y
13514+
x_axis = (ex >= x - distance) && (ex <= x + distance)
13515+
y_axis = ey > y
1347113516
when Direction::LEFT
1347213517
distance = ex - x
1347313518
x_axis = ex > x
@@ -13828,7 +13873,9 @@ def player_opacity(value = nil)
1382813873

1382913874
def event_move_with(id, *code)
1383013875
route = RPG::MoveRoute.new
13876+
route.repeat = false
1383113877
route.list = code.map {|i| RPG::MoveCommand.new(i)}
13878+
route.list << RPG::MoveCommand.new(0)
1383213879
event(id).force_move_route(route)
1383313880
end
1383413881

src/Commands.rb

+8-6
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ def get_tileset_id
221221
end
222222

223223
def switch_tileset(tileset_id)
224-
$game_map.tileset_id = tileset_id
224+
$game_map.change_tileset(tileset_id)
225225
end
226226

227227
def set_tile(value, x, y, layer)
@@ -1491,7 +1491,7 @@ def fresh_event_id(erased = false)
14911491
#--------------------------------------------------------------------------
14921492
def page_runnable?(map_id, ev_id, page, context=false)
14931493
return unless self.class == Game_Interpreter
1494-
page = Game_Interpreter.get_page(map_id, ev_id, p_id) if page.is_a?(Fixnum)
1494+
page = Game_Interpreter.get_page(map_id, ev_id, page) if page.is_a?(Fixnum)
14951495
return unless page
14961496
return Game_Interpreter.conditions_met?(map_id, ev_id, page) if context
14971497
c_map_id = Game_Interpreter.current_map_id
@@ -2102,13 +2102,13 @@ def event_look_towards?(source, x, y, scope)
21022102
ex, ey = event_x(source), event_y(source)
21032103
case event_direction(source)
21042104
when Direction::UP
2105-
distance = ey - y
2106-
x_axis = (ex >= x - distance) && (ex <= x + distance)
2107-
y_axis = ey > y
2108-
when Direction::DOWN
21092105
distance = y - ey
21102106
x_axis = (ex >= x - distance) && (ex <= x + distance)
21112107
y_axis = ey < y
2108+
when Direction::DOWN
2109+
distance = ey - y
2110+
x_axis = (ex >= x - distance) && (ex <= x + distance)
2111+
y_axis = ey > y
21122112
when Direction::LEFT
21132113
distance = ex - x
21142114
x_axis = ex > x
@@ -2469,7 +2469,9 @@ def player_opacity(value = nil)
24692469

24702470
def event_move_with(id, *code)
24712471
route = RPG::MoveRoute.new
2472+
route.repeat = false
24722473
route.list = code.map {|i| RPG::MoveCommand.new(i)}
2474+
route.list << RPG::MoveCommand.new(0)
24732475
event(id).force_move_route(route)
24742476
end
24752477

src/EvEx.rb

+49-4
Original file line numberDiff line numberDiff line change
@@ -1058,6 +1058,13 @@ def release?(key = :mouse_left, pr = false)
10581058
return false unless k_sprite
10591059
k_sprite.release?(key, pr)
10601060
end
1061+
#--------------------------------------------------------------------------
1062+
# * Is pixel in sprite ?
1063+
#--------------------------------------------------------------------------
1064+
def pixel_in?(x, y, precise = false)
1065+
return false unless k_sprite
1066+
precise ? k_sprite.precise_in?(x, y) : k_sprite.in?(x, y)
1067+
end
10611068
end
10621069
#==============================================================================
10631070
# ** API
@@ -1428,10 +1435,12 @@ class << self
14281435
attr_accessor :light_emitter
14291436
attr_accessor :tone
14301437
attr_accessor :allow_overlap
1438+
attr_accessor :changing_graphics
14311439
attr_reader :id
14321440

14331441
alias_method :allow_overlap?, :allow_overlap
14341442
alias_method :rme_collide_with_characters?, :collide_with_characters?
1443+
alias_method :rme_set_graphic, :set_graphic
14351444
#--------------------------------------------------------------------------
14361445
# * Initialisation du Buzzer
14371446
#--------------------------------------------------------------------------
@@ -1460,6 +1469,7 @@ def initialize
14601469
@rect = Rect.new(0,0,0,0)
14611470
@sprite_index
14621471
init_tone
1472+
@changing_graphics = false
14631473
end
14641474

14651475
#--------------------------------------------------------------------------
@@ -1654,6 +1664,13 @@ def collide_with_characters?(x, y)
16541664
return false if allow_overlap?
16551665
rme_collide_with_characters?(x, y)
16561666
end
1667+
#--------------------------------------------------------------------------
1668+
# * Change Graphics
1669+
#--------------------------------------------------------------------------
1670+
def set_graphic(character_name, character_index)
1671+
rme_set_graphic(character_name, character_index)
1672+
@changing_graphics = true
1673+
end
16571674

16581675
end
16591676

@@ -1887,8 +1904,14 @@ def initialize(viewport, character = nil)
18871904
#--------------------------------------------------------------------------
18881905
def set_character_bitmap
18891906
rm_extender_set_character_bitmap
1890-
character.ox = self.ox
1891-
character.oy = self.oy
1907+
if character.changing_graphics || (character.ox.nil? && character.oy.nil?)
1908+
character.ox = self.ox
1909+
character.oy = self.oy
1910+
else
1911+
self.ox = character.ox
1912+
self.oy = character.oy
1913+
end
1914+
character.changing_graphics = false
18921915
@old_buzz = 0
18931916
@origin_len_x = self.zoom_x
18941917
end
@@ -2733,6 +2756,12 @@ def refresh_message
27332756
@message_window.dispose
27342757
@message_window = Window_Message.new
27352758
end
2759+
#--------------------------------------------------------------------------
2760+
# * Add Event sprite into spriteset
2761+
#--------------------------------------------------------------------------
2762+
def add_event_sprite(event)
2763+
@spriteset.add_event_sprite(event)
2764+
end
27362765

27372766
#--------------------------------------------------------------------------
27382767
# * Update All Windows
@@ -3054,14 +3083,15 @@ def add_event(map_id, event_id, new_id,x=nil,y=nil)
30543083
return unless event
30553084
event.id = new_id
30563085
clone_events = @events.clone
3057-
clone_events.store(new_id, Game_Event.new(@map_id, event))
3086+
new_event = Game_Event.new(@map_id, event)
3087+
clone_events.store(new_id, new_event)
30583088
x ||= event.x
30593089
y ||= event.y
30603090
@events = clone_events
30613091
@events[new_id].moveto(x, y)
30623092
@need_refresh = true
30633093
@max_event_id = [@max_event_id, new_id].max
3064-
SceneManager.scene.refresh_spriteset
3094+
SceneManager.scene.add_event_sprite(new_event)
30653095
end
30663096
#--------------------------------------------------------------------------
30673097
# * Clear parallaxes
@@ -3844,6 +3874,14 @@ def show(name, rows, columns, index, origin, x, y, zoom_x, zoom_y, opacity, blen
38443874
self.current = index
38453875
@dirty = true
38463876
end
3877+
#--------------------------------------------------------------------------
3878+
# * Erase Picture
3879+
#--------------------------------------------------------------------------
3880+
def erase
3881+
super
3882+
@dirty = true
3883+
end
3884+
38473885
end
38483886

38493887
#==============================================================================
@@ -4094,6 +4132,13 @@ def update_parallax
40944132
end
40954133
rm_extender_update_parallax
40964134
end
4135+
#--------------------------------------------------------------------------
4136+
# * Add Event Sprite to Characters
4137+
#--------------------------------------------------------------------------
4138+
def add_event_sprite(event)
4139+
sp = Sprite_Character.new(@viewport1, event)
4140+
@character_sprites.push(sp)
4141+
end
40974142
end
40984143

40994144
#==============================================================================

src/SDK.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class << self
7272
# * Version
7373
# * With RMEPackage, it's seems useless ?
7474
#--------------------------------------------------------------------------
75-
def version; define_version(1,4,0); end
75+
def version; define_version(1,4,1); end
7676
#--------------------------------------------------------------------------
7777
# * define Version
7878
#--------------------------------------------------------------------------

src/package.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Package description
22
Package.new(
33
name: 'RME',
4-
version: vsn(1, 4, 0),
4+
version: vsn(1, 4, 1),
55
authors: {
66
'xvw' => '[email protected]',
77
'Grim' => '[email protected]',

0 commit comments

Comments
 (0)