mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-21 14:29:55 +00:00
a
This commit is contained in:
commit
de008ddea2
9 changed files with 536 additions and 83 deletions
|
|
@ -80,6 +80,7 @@ DEF_PROP_I(Viewport, OY)
|
||||||
|
|
||||||
DEF_PROP_F(Viewport, ScaleX)
|
DEF_PROP_F(Viewport, ScaleX)
|
||||||
DEF_PROP_F(Viewport, ScaleY)
|
DEF_PROP_F(Viewport, ScaleY)
|
||||||
|
DEF_PROP_F(Viewport, Rotation)
|
||||||
|
|
||||||
void viewportBindingInit(){
|
void viewportBindingInit(){
|
||||||
VALUE klass = rb_define_class("Viewport", rb_cObject);
|
VALUE klass = rb_define_class("Viewport", rb_cObject);
|
||||||
|
|
@ -91,12 +92,13 @@ void viewportBindingInit(){
|
||||||
|
|
||||||
_rb_define_method(klass, "initialize", viewportInitialize);
|
_rb_define_method(klass, "initialize", viewportInitialize);
|
||||||
|
|
||||||
INIT_PROP_BIND( Viewport, Rect, "rect" );
|
INIT_PROP_BIND( Viewport, Rect, "rect" );
|
||||||
INIT_PROP_BIND( Viewport, OX, "ox" );
|
INIT_PROP_BIND( Viewport, OX, "ox" );
|
||||||
INIT_PROP_BIND( Viewport, OY, "oy" );
|
INIT_PROP_BIND( Viewport, OY, "oy" );
|
||||||
INIT_PROP_BIND( Viewport, ScaleX, "scale_x");
|
INIT_PROP_BIND( Viewport, ScaleX, "scale_x" );
|
||||||
INIT_PROP_BIND( Viewport, ScaleY, "scale_y");
|
INIT_PROP_BIND( Viewport, ScaleY, "scale_y" );
|
||||||
INIT_PROP_BIND( Viewport, Color, "color" );
|
INIT_PROP_BIND( Viewport, Rotation, "rotation");
|
||||||
INIT_PROP_BIND( Viewport, Tone, "tone" );
|
INIT_PROP_BIND( Viewport, Color, "color" );
|
||||||
|
INIT_PROP_BIND( Viewport, Tone, "tone" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,8 @@
|
||||||
// GNOME settings
|
// GNOME settings
|
||||||
static GSettings *bgsetting;
|
static GSettings *bgsetting;
|
||||||
static std::string defPictureURI, defPictureOptions, defPrimaryColor, defColorShading;
|
static std::string defPictureURI, defPictureOptions, defPrimaryColor, defColorShading;
|
||||||
|
static std::string defPictureURIDark;
|
||||||
|
static bool hasPictureURIDark = false;
|
||||||
// XFCE settings
|
// XFCE settings
|
||||||
static XfconfChannel* bgchannel;
|
static XfconfChannel* bgchannel;
|
||||||
static int defPictureStyle;
|
static int defPictureStyle;
|
||||||
|
|
@ -70,6 +72,16 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef unix_like
|
#ifdef unix_like
|
||||||
|
static bool gsettingsHasKey(GSettings *settings, const char *key){
|
||||||
|
GSettingsSchema *schema = NULL;
|
||||||
|
g_object_get(settings, "settings-schema", &schema, NULL);
|
||||||
|
if (!schema)
|
||||||
|
return false;
|
||||||
|
bool has = g_settings_schema_has_key(schema, key);
|
||||||
|
g_settings_schema_unref(schema);
|
||||||
|
return has;
|
||||||
|
}
|
||||||
|
|
||||||
void desktopEnvironmentInit(){
|
void desktopEnvironmentInit(){
|
||||||
printf("[desktopEnvironmentInit] desktopEnvironmentInit()\n");
|
printf("[desktopEnvironmentInit] desktopEnvironmentInit()\n");
|
||||||
if (desktop != "uninitialized")
|
if (desktop != "uninitialized")
|
||||||
|
|
@ -165,6 +177,9 @@
|
||||||
else if (desktop == "deepin") bgsetting = g_settings_new("com.deepin.wrap.gnome.desktop.background");
|
else if (desktop == "deepin") bgsetting = g_settings_new("com.deepin.wrap.gnome.desktop.background");
|
||||||
else bgsetting = g_settings_new("org.gnome.desktop.background");
|
else bgsetting = g_settings_new("org.gnome.desktop.background");
|
||||||
defPictureURI = g_settings_get_string(bgsetting, "picture-uri");
|
defPictureURI = g_settings_get_string(bgsetting, "picture-uri");
|
||||||
|
hasPictureURIDark = gsettingsHasKey(bgsetting, "picture-uri-dark");
|
||||||
|
if (hasPictureURIDark)
|
||||||
|
defPictureURIDark = g_settings_get_string(bgsetting, "picture-uri-dark");
|
||||||
} else {
|
} else {
|
||||||
bgsetting = g_settings_new("org.mate.background");
|
bgsetting = g_settings_new("org.mate.background");
|
||||||
defPictureURI = g_settings_get_string(bgsetting, "picture-filename");
|
defPictureURI = g_settings_get_string(bgsetting, "picture-filename");
|
||||||
|
|
@ -428,6 +443,8 @@ end:
|
||||||
g_settings_set_string(bgsetting, "color-shading-type", "solid");
|
g_settings_set_string(bgsetting, "color-shading-type", "solid");
|
||||||
if (desktop == "cinnamon" || desktop == "gnome" || desktop == "deepin" || desktop == "budgie" || desktop == "pantheon") {
|
if (desktop == "cinnamon" || desktop == "gnome" || desktop == "deepin" || desktop == "budgie" || desktop == "pantheon") {
|
||||||
g_settings_set_string(bgsetting, "picture-uri", ("file://" + gameDirStr + path).c_str());
|
g_settings_set_string(bgsetting, "picture-uri", ("file://" + gameDirStr + path).c_str());
|
||||||
|
if (hasPictureURIDark)
|
||||||
|
g_settings_set_string(bgsetting, "picture-uri-dark", ("file://" + gameDirStr + path).c_str());
|
||||||
} else {
|
} else {
|
||||||
g_settings_set_string(bgsetting, "picture-filename", (gameDirStr + path).c_str());
|
g_settings_set_string(bgsetting, "picture-filename", (gameDirStr + path).c_str());
|
||||||
}
|
}
|
||||||
|
|
@ -596,6 +613,8 @@ RB_METHOD(wallpaperReset){
|
||||||
if (desktop == "cinnamon" || desktop == "gnome" || desktop == "mate" || desktop == "deepin" || desktop == "budgie" || desktop == "pantheon") {
|
if (desktop == "cinnamon" || desktop == "gnome" || desktop == "mate" || desktop == "deepin" || desktop == "budgie" || desktop == "pantheon") {
|
||||||
if (desktop == "cinnamon" || desktop == "gnome" || desktop == "deepin" || desktop == "budgie" || desktop == "pantheon") {
|
if (desktop == "cinnamon" || desktop == "gnome" || desktop == "deepin" || desktop == "budgie" || desktop == "pantheon") {
|
||||||
g_settings_set_string(bgsetting, "picture-uri", defPictureURI.c_str());
|
g_settings_set_string(bgsetting, "picture-uri", defPictureURI.c_str());
|
||||||
|
if (hasPictureURIDark)
|
||||||
|
g_settings_set_string(bgsetting, "picture-uri-dark", defPictureURIDark.c_str());
|
||||||
} else {
|
} else {
|
||||||
g_settings_set_string(bgsetting, "picture-filename", defPictureURI.c_str());
|
g_settings_set_string(bgsetting, "picture-filename", defPictureURI.c_str());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,3 +63,4 @@ Added Pantheon DE support
|
||||||
Added Badgi DE support
|
Added Badgi DE support
|
||||||
Added Wallpaper Manager Settings
|
Added Wallpaper Manager Settings
|
||||||
Added X11 Window Managers support
|
Added X11 Window Managers support
|
||||||
|
GNOME support fixed
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ class Scene_OF
|
||||||
BPM = 100
|
BPM = 100
|
||||||
BPM_TIME = 1.0 / (BPM / 60.0) * Graphics.frame_rate * 2
|
BPM_TIME = 1.0 / (BPM / 60.0) * Graphics.frame_rate * 2
|
||||||
|
|
||||||
BUMP_SCALE = 1.07
|
BUMP_SCALE = 1.04
|
||||||
BUMP_RETURN_SPEED = 0.1
|
BUMP_RETURN_SPEED = 0.1
|
||||||
ICONS_BUMP_SCALE = 1.17
|
ICONS_BUMP_SCALE = 1.17
|
||||||
ICONS_BUMP_RETURN_SPEED = 0.2
|
ICONS_BUMP_RETURN_SPEED = 0.2
|
||||||
|
|
@ -21,7 +21,7 @@ class Scene_OF
|
||||||
HP_WIDTH = 400
|
HP_WIDTH = 400
|
||||||
HP_HEIGHT = 16
|
HP_HEIGHT = 16
|
||||||
|
|
||||||
MISS_TIME = 90
|
MISS_TIME = 60
|
||||||
|
|
||||||
SPRITES = {
|
SPRITES = {
|
||||||
:cat_base_arrow_left => Rect.new(0, 0, 32, 32), :cat_base_arrow_down => Rect.new(32, 0, 32, 32), :cat_base_arrow_up => Rect.new(64, 0, 32, 32), :cat_base_arrow_right => Rect.new(96, 0, 32, 32),
|
:cat_base_arrow_left => Rect.new(0, 0, 32, 32), :cat_base_arrow_down => Rect.new(32, 0, 32, 32), :cat_base_arrow_up => Rect.new(64, 0, 32, 32), :cat_base_arrow_right => Rect.new(96, 0, 32, 32),
|
||||||
|
|
@ -91,9 +91,8 @@ class Scene_OF
|
||||||
@miss_sound = Audio.create_sound("Audio/SE/shatter")
|
@miss_sound = Audio.create_sound("Audio/SE/shatter")
|
||||||
|
|
||||||
@viewport_ui = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
@viewport_ui = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||||
@viewport_arrows = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
@viewport_ui.ox = -Graphics.width / 2
|
||||||
@viewport_ui.ox = @viewport_arrows.ox = -Graphics.width / 2
|
@viewport_ui.oy = -Graphics.height / 2
|
||||||
@viewport_ui.oy = @viewport_arrows.oy = -Graphics.height / 2
|
|
||||||
@spritesheet = RPG::Cache.misc(".cats")
|
@spritesheet = RPG::Cache.misc(".cats")
|
||||||
|
|
||||||
@cat_flying_arrows = []
|
@cat_flying_arrows = []
|
||||||
|
|
@ -104,6 +103,7 @@ class Scene_OF
|
||||||
@player_tails_end = []
|
@player_tails_end = []
|
||||||
@cat_arrows = []
|
@cat_arrows = []
|
||||||
@player_arrows = []
|
@player_arrows = []
|
||||||
|
@events = []
|
||||||
for i in 0..3
|
for i in 0..3
|
||||||
cat_arrow = Sprite.new(@viewport_ui)
|
cat_arrow = Sprite.new(@viewport_ui)
|
||||||
cat_arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE)
|
cat_arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE)
|
||||||
|
|
@ -157,13 +157,17 @@ class Scene_OF
|
||||||
@hp_icons.y = Graphics.height / 2 - ARROWS_SIDES_MARGIN + HP_HEIGHT / 2 - 6
|
@hp_icons.y = Graphics.height / 2 - ARROWS_SIDES_MARGIN + HP_HEIGHT / 2 - 6
|
||||||
@hp_icons.z = @hp_white.z + 1
|
@hp_icons.z = @hp_white.z + 1
|
||||||
|
|
||||||
|
@rotate_power = 0
|
||||||
|
@reverse = false;
|
||||||
|
|
||||||
self.hp = 50
|
self.hp = 50
|
||||||
|
|
||||||
@bst_debug = Sprite.new(@viewport_ui)
|
@bst_debug = Sprite.new(@viewport_ui)
|
||||||
@bst_debug.bitmap = Bitmap.new(300, 40)
|
@bst_debug.bitmap = Bitmap.new(300, 40)
|
||||||
|
|
||||||
@total_time = 0
|
@total_time = 0
|
||||||
@bump_timeout = 0
|
@bump_timeout = 999999
|
||||||
|
@bump_time = 999999
|
||||||
@icons_bump_timeout = 0
|
@icons_bump_timeout = 0
|
||||||
@miss_timeout = 0
|
@miss_timeout = 0
|
||||||
|
|
||||||
|
|
@ -199,6 +203,13 @@ class Scene_OF
|
||||||
@miss_timeout -= 1
|
@miss_timeout -= 1
|
||||||
@voice_niko.volume = @miss_timeout <= 0 ? 1.0 : 0.0
|
@voice_niko.volume = @miss_timeout <= 0 ? 1.0 : 0.0
|
||||||
|
|
||||||
|
@events.each do |event|
|
||||||
|
if @total_time * ARROWS_SPEED >= event[1]
|
||||||
|
instance_exec(&event[0])
|
||||||
|
@events.delete(event)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# fl studio b:s:t :3
|
# fl studio b:s:t :3
|
||||||
beat = (@total_time / BPM_TIME / 2).to_i + 1
|
beat = (@total_time / BPM_TIME / 2).to_i + 1
|
||||||
step = (@total_time / BPM_TIME * 15 / 2).to_i % 15 + 1
|
step = (@total_time / BPM_TIME * 15 / 2).to_i % 15 + 1
|
||||||
|
|
@ -210,17 +221,18 @@ class Scene_OF
|
||||||
@bump_timeout -= 1
|
@bump_timeout -= 1
|
||||||
@icons_bump_timeout -= 1
|
@icons_bump_timeout -= 1
|
||||||
if @bump_timeout <= 0
|
if @bump_timeout <= 0
|
||||||
@bump_timeout += BPM_TIME
|
@bump_timeout += @bump_time
|
||||||
@viewport_arrows.scale_y = @viewport_ui.scale_y =
|
@viewport_ui.scale_y = @viewport_ui.scale_x = BUMP_SCALE
|
||||||
@viewport_arrows.scale_x = @viewport_ui.scale_x = BUMP_SCALE
|
|
||||||
end
|
end
|
||||||
if @icons_bump_timeout <= 0
|
if @icons_bump_timeout <= 0
|
||||||
@icons_bump_timeout += BPM_TIME / 2.0
|
@icons_bump_timeout += BPM_TIME / 2.0
|
||||||
@hp_icons.zoom_x = @hp_icons.zoom_y = ICONS_BUMP_SCALE
|
@hp_icons.zoom_x = @hp_icons.zoom_y = ICONS_BUMP_SCALE
|
||||||
|
@viewport_ui.rotation = @reverse ? -@rotate_power : @rotate_power
|
||||||
|
@reverse = !@reverse
|
||||||
end
|
end
|
||||||
@viewport_arrows.scale_x = @viewport_ui.scale_x =
|
@viewport_ui.scale_x = @viewport_ui.scale_y = @viewport_ui.scale_x * (1.0 - BUMP_RETURN_SPEED) + BUMP_RETURN_SPEED
|
||||||
@viewport_arrows.scale_y = @viewport_ui.scale_y = @viewport_ui.scale_x * (1.0 - BUMP_RETURN_SPEED) + BUMP_RETURN_SPEED
|
|
||||||
@hp_icons.zoom_x = @hp_icons.zoom_y = @hp_icons.zoom_x * (1.0 - ICONS_BUMP_RETURN_SPEED) + ICONS_BUMP_RETURN_SPEED
|
@hp_icons.zoom_x = @hp_icons.zoom_y = @hp_icons.zoom_x * (1.0 - ICONS_BUMP_RETURN_SPEED) + ICONS_BUMP_RETURN_SPEED
|
||||||
|
@viewport_ui.rotation = @viewport_ui.rotation * (1.0 - BUMP_RETURN_SPEED)
|
||||||
|
|
||||||
# Cat Arrows
|
# Cat Arrows
|
||||||
i = 0
|
i = 0
|
||||||
|
|
@ -273,10 +285,6 @@ class Scene_OF
|
||||||
arrow[0].dispose
|
arrow[0].dispose
|
||||||
@player_flying_arrows.delete(arrow)
|
@player_flying_arrows.delete(arrow)
|
||||||
i -= 1
|
i -= 1
|
||||||
#elsif arrow[0].y < ARROW_SIZE * ARROW_SCALE
|
|
||||||
# arrow[0].dispose
|
|
||||||
# @player_flying_arrows.delete(arrow)
|
|
||||||
# i -= 1
|
|
||||||
end
|
end
|
||||||
i += 1
|
i += 1
|
||||||
end
|
end
|
||||||
|
|
@ -375,7 +383,7 @@ class Scene_OF
|
||||||
arrow[0].dispose
|
arrow[0].dispose
|
||||||
@player_flying_arrows.delete(arrow)
|
@player_flying_arrows.delete(arrow)
|
||||||
self.hp += 5
|
self.hp += 5
|
||||||
@miss_sound.stop
|
@miss_sound.fade_out(0.2)
|
||||||
@miss_timeout = 0
|
@miss_timeout = 0
|
||||||
else
|
else
|
||||||
miss
|
miss
|
||||||
|
|
@ -450,8 +458,7 @@ class Scene_OF
|
||||||
if line_data[0][dir] == '#'
|
if line_data[0][dir] == '#'
|
||||||
arrow = make_arrow(dir, true)
|
arrow = make_arrow(dir, true)
|
||||||
arrow.x = cat_arrow_x
|
arrow.x = cat_arrow_x
|
||||||
arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 32
|
arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 16
|
||||||
arrow.z += 1
|
|
||||||
|
|
||||||
@cat_flying_arrows << [arrow, dir]
|
@cat_flying_arrows << [arrow, dir]
|
||||||
|
|
||||||
|
|
@ -474,8 +481,7 @@ class Scene_OF
|
||||||
if line_data[0][dir + 5] == '#'
|
if line_data[0][dir + 5] == '#'
|
||||||
arrow = make_arrow(dir, false)
|
arrow = make_arrow(dir, false)
|
||||||
arrow.x = player_arrow_x
|
arrow.x = player_arrow_x
|
||||||
arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 32
|
arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 16
|
||||||
arrow.z += 1
|
|
||||||
|
|
||||||
@player_flying_arrows << [arrow, dir]
|
@player_flying_arrows << [arrow, dir]
|
||||||
|
|
||||||
|
|
@ -496,6 +502,10 @@ class Scene_OF
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if line_data[7] != nil
|
||||||
|
@events << [line_data[7], bst2time(beat, step, tick)]
|
||||||
|
end
|
||||||
|
|
||||||
i += 1
|
i += 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -505,26 +515,29 @@ class Scene_OF
|
||||||
end
|
end
|
||||||
|
|
||||||
def make_arrow(direction, meow)
|
def make_arrow(direction, meow)
|
||||||
arrow = Sprite.new(@viewport_arrows)
|
arrow = Sprite.new(@viewport_ui)
|
||||||
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE)
|
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE)
|
||||||
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:target][direction]])
|
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:target][direction]])
|
||||||
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
||||||
|
arrow.z = 20
|
||||||
arrow
|
arrow
|
||||||
end
|
end
|
||||||
|
|
||||||
def make_tail(direction, meow)
|
def make_tail(direction, meow)
|
||||||
arrow = Sprite.new(@viewport_arrows)
|
arrow = Sprite.new(@viewport_ui)
|
||||||
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE / 2)
|
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE / 2)
|
||||||
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE / 2), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:tail][direction]])
|
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE / 2), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:tail][direction]])
|
||||||
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
||||||
|
arrow.z = 18
|
||||||
arrow
|
arrow
|
||||||
end
|
end
|
||||||
|
|
||||||
def make_tail_end(direction, meow)
|
def make_tail_end(direction, meow)
|
||||||
arrow = Sprite.new(@viewport_arrows)
|
arrow = Sprite.new(@viewport_ui)
|
||||||
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE / 2)
|
arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE / 2)
|
||||||
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE / 2), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:tail_end][direction]])
|
arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE / 2), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:tail_end][direction]])
|
||||||
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
arrow.zoom_x = arrow.zoom_y = ARROW_SCALE
|
||||||
|
arrow.z = 19
|
||||||
arrow
|
arrow
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -535,8 +548,8 @@ class Scene_OF
|
||||||
end
|
end
|
||||||
|
|
||||||
SONG_MAPPING = [ # Length
|
SONG_MAPPING = [ # Length
|
||||||
# arrows, B, S, T, | B, S, T
|
# arrows, B, S, T, | B, S, T | proc
|
||||||
["# | ", 5, 1, 0, 0, 1, 0],
|
["# | ", 5, 1, 0, 0, 1, 0, proc { @bump_time = BPM_TIME * 2; @bump_timeout = 0 }],
|
||||||
[" # | ", 5, 3, 0, 0, 1, 0],
|
[" # | ", 5, 3, 0, 0, 1, 0],
|
||||||
[" # | ", 5, 5, 0, 0, 1, 0],
|
[" # | ", 5, 5, 0, 0, 1, 0],
|
||||||
[" #| ", 5, 9, 0, 0, 1, 0],
|
[" #| ", 5, 9, 0, 0, 1, 0],
|
||||||
|
|
@ -571,7 +584,7 @@ class Scene_OF
|
||||||
[" | # ", 11, 1, 0, 0, 1, 0],
|
[" | # ", 11, 1, 0, 0, 1, 0],
|
||||||
[" | #", 11, 3, 0, 0, 1, 0],
|
[" | #", 11, 3, 0, 0, 1, 0],
|
||||||
[" | # ", 11, 5, 0, 0, 1, 0],
|
[" | # ", 11, 5, 0, 0, 1, 0],
|
||||||
[" |# ", 11, 9, 0, 0, 1, 0],
|
[" |# ", 11, 9, 0, 0, 1, 0, proc { @bump_time = BPM_TIME / 2; @bump_timeout = 0 }],
|
||||||
[" |# ", 11, 13, 0, 0, 1, 0],
|
[" |# ", 11, 13, 0, 0, 1, 0],
|
||||||
[" |# ", 12, 1, 0, 0, 1, 0],
|
[" |# ", 12, 1, 0, 0, 1, 0],
|
||||||
[" | # ", 12, 3, 0, 0, 1, 0],
|
[" | # ", 12, 3, 0, 0, 1, 0],
|
||||||
|
|
@ -579,17 +592,17 @@ class Scene_OF
|
||||||
[" | # ", 12, 6, 0],
|
[" | # ", 12, 6, 0],
|
||||||
[" | # ", 12, 7, 0],
|
[" | # ", 12, 7, 0],
|
||||||
[" | # ", 12, 8, 0],
|
[" | # ", 12, 8, 0],
|
||||||
[" | # ", 12, 9, 0],
|
[" | # ", 12, 9, 0, 0, 0, 0, proc { @bump_time = BPM_TIME / 4; @bump_timeout = 0 }],
|
||||||
[" | #", 12, 10, 0],
|
[" | #", 12, 10, 0],
|
||||||
[" | # ", 12, 11, 0, 0, 1, 0],
|
[" | # ", 12, 11, 0, 0, 1, 0],
|
||||||
[" |# ", 12, 13, 0],
|
[" |# ", 12, 13, 0, 0, 0, 0, proc { @bump_time = BPM_TIME / 8; @bump_timeout = 0 }],
|
||||||
[" |# ", 12, 15, 0],
|
[" |# ", 12, 15, 0],
|
||||||
#[" |# ", 12, 15, 12],
|
#[" |# ", 12, 15, 12],
|
||||||
[" |# ", 12, 16, 0],
|
[" |# ", 12, 16, 0],
|
||||||
#[" |# ", 12, 16, 12],
|
#[" |# ", 12, 16, 12],
|
||||||
#[" |# ", 13, 1, 0],
|
#[" |# ", 13, 1, 0],
|
||||||
|
|
||||||
["# | ", 13, 1, 0],
|
["# | ", 13, 1, 0, 0, 0, 0, proc { @rotate_power = 1; @bump_time = BPM_TIME / 2; @bump_timeout = 0 }],
|
||||||
[" # | ", 13, 2, 0],
|
[" # | ", 13, 2, 0],
|
||||||
[" # | ", 13, 3, 0],
|
[" # | ", 13, 3, 0],
|
||||||
[" # | ", 13, 4, 0],
|
[" # | ", 13, 4, 0],
|
||||||
|
|
@ -694,7 +707,7 @@ class Scene_OF
|
||||||
[" | # ", 20, 12, 0],
|
[" | # ", 20, 12, 0],
|
||||||
[" | #", 20, 13, 0, 0, 1, 0],
|
[" | #", 20, 13, 0, 0, 1, 0],
|
||||||
|
|
||||||
[" # | ", 21, 1, 0],
|
[" # | ", 21, 1, 0, 0, 0, 0, proc { @rotate_power = 0; @bump_time = BPM_TIME; @bump_timeout = 0 }],
|
||||||
[" # | ", 21, 2, 0],
|
[" # | ", 21, 2, 0],
|
||||||
["# | ", 21, 3, 0],
|
["# | ", 21, 3, 0],
|
||||||
["# # | ", 21, 5, 0],
|
["# # | ", 21, 5, 0],
|
||||||
|
|
@ -762,7 +775,7 @@ class Scene_OF
|
||||||
[" |# #", 28, 11, 0],
|
[" |# #", 28, 11, 0],
|
||||||
[" | ## ", 28, 13, 0],
|
[" | ## ", 28, 13, 0],
|
||||||
|
|
||||||
["# | ", 29, 1, 0, 0, 1, 0],
|
["# | ", 29, 1, 0, 0, 1, 0, proc { @rotate_power = 0; @bump_time = 999999; @bump_timeout = 999999}],
|
||||||
[" # | ", 29, 3, 0, 0, 1, 0],
|
[" # | ", 29, 3, 0, 0, 1, 0],
|
||||||
[" # | ", 29, 5, 0, 0, 1, 0],
|
[" # | ", 29, 5, 0, 0, 1, 0],
|
||||||
[" #| ", 29, 9, 0, 0, 1, 0],
|
[" #| ", 29, 9, 0, 0, 1, 0],
|
||||||
|
|
@ -807,6 +820,321 @@ class Scene_OF
|
||||||
[" ##| ", 36, 9, 0, 0, 1, 0],
|
[" ##| ", 36, 9, 0, 0, 1, 0],
|
||||||
[" | # ", 36, 11, 0, 0, 1, 0],
|
[" | # ", 36, 11, 0, 0, 1, 0],
|
||||||
["# #| #", 36, 13, 0, 0, 1, 0],
|
["# #| #", 36, 13, 0, 0, 1, 0],
|
||||||
|
|
||||||
|
[" #| #", 37, 1, 0, 0, 0, 0, proc { @rotate_power = 1; @bump_time = BPM_TIME / 2; @bump_timeout = 0}],
|
||||||
|
[" # | # ", 37, 2, 0],
|
||||||
|
["# |# ", 37, 3, 0],
|
||||||
|
[" # | # ", 37, 4, 0],
|
||||||
|
[" #| #", 37, 6, 0],
|
||||||
|
[" # | # ", 37, 7, 0],
|
||||||
|
[" # | # ", 37, 8, 0],
|
||||||
|
[" # | # ", 37, 9, 0],
|
||||||
|
[" #| #", 37, 10, 0],
|
||||||
|
[" # | # ", 37, 11, 0],
|
||||||
|
[" # | # ", 37, 12, 0],
|
||||||
|
[" #| #", 37, 13, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 37, 15, 0],
|
||||||
|
[" #| #", 38, 1, 0],
|
||||||
|
["# |# ", 38, 2, 0],
|
||||||
|
[" #| #", 38, 3, 0],
|
||||||
|
[" # | # ", 38, 4, 0],
|
||||||
|
["# |# ", 38, 6, 0],
|
||||||
|
[" # | # ", 38, 7, 0],
|
||||||
|
[" #| #", 38, 8, 0],
|
||||||
|
[" # | # ", 38, 9, 0],
|
||||||
|
["# |# ", 38, 10, 0],
|
||||||
|
[" # | # ", 38, 11, 0],
|
||||||
|
[" # | # ", 38, 12, 0],
|
||||||
|
[" #| #", 38, 13, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 38, 15, 0],
|
||||||
|
["# |# ", 39, 1, 0],
|
||||||
|
[" # | # ", 39, 2, 0],
|
||||||
|
[" # | # ", 39, 3, 0],
|
||||||
|
[" #| #", 39, 4, 0],
|
||||||
|
[" # | # ", 39, 6, 0],
|
||||||
|
["# |# ", 39, 7, 0],
|
||||||
|
[" #| #", 39, 8, 0],
|
||||||
|
[" # | # ", 39, 9, 0],
|
||||||
|
["# |# ", 39, 10, 0],
|
||||||
|
[" #| #", 39, 11, 0],
|
||||||
|
[" # | # ", 39, 12, 0],
|
||||||
|
["# |# ", 39, 13, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 39, 15, 0],
|
||||||
|
["# |# ", 40, 1, 0],
|
||||||
|
[" # | # ", 40, 2, 0],
|
||||||
|
[" #| #", 40, 3, 0],
|
||||||
|
["# |# ", 40, 4, 0],
|
||||||
|
[" #| #", 40, 6, 0],
|
||||||
|
[" # | # ", 40, 7, 0],
|
||||||
|
[" #| #", 40, 8, 0],
|
||||||
|
[" # | # ", 40, 9, 0],
|
||||||
|
[" # | # ", 40, 10, 0],
|
||||||
|
["# |# ", 40, 11, 0],
|
||||||
|
[" # | # ", 40, 12, 0],
|
||||||
|
["# |# ", 40, 13, 0, 0, 1, 0],
|
||||||
|
[" #| #", 40, 15, 0],
|
||||||
|
|
||||||
|
[" #| #", 41, 1, 0],
|
||||||
|
[" # | # ", 41, 2, 0],
|
||||||
|
[" # | # ", 41, 3, 0],
|
||||||
|
["# |# ", 41, 4, 0],
|
||||||
|
["# |# ", 41, 6, 0],
|
||||||
|
[" # | # ", 41, 7, 0],
|
||||||
|
[" # | # ", 41, 8, 0],
|
||||||
|
[" #| #", 41, 9, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 41, 11, 0, 0, 1, 0],
|
||||||
|
[" #| #", 41, 13, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 41, 15, 0, 0, 1, 0],
|
||||||
|
[" #| #", 42, 1, 0],
|
||||||
|
[" # | # ", 42, 2, 0],
|
||||||
|
[" # | # ", 42, 3, 0],
|
||||||
|
["# |# ", 42, 4, 0],
|
||||||
|
[" #| #", 42, 6, 0],
|
||||||
|
[" # | # ", 42, 7, 0],
|
||||||
|
[" # | # ", 42, 8, 0],
|
||||||
|
[" # | # ", 42, 9, 0, 0, 1, 0],
|
||||||
|
["# |# ", 42, 11, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 42, 13, 0, 0, 1, 0],
|
||||||
|
["# |# ", 42, 15, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 43, 1, 0],
|
||||||
|
["# |# ", 43, 2, 0],
|
||||||
|
[" #| #", 43, 3, 0],
|
||||||
|
[" # | # ", 43, 4, 0],
|
||||||
|
[" # | # ", 43, 6, 0],
|
||||||
|
[" # | # ", 43, 7, 0],
|
||||||
|
[" #| #", 43, 8, 0],
|
||||||
|
[" # | # ", 43, 9, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 43, 11, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 43, 13, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 43, 15, 0, 0, 1, 0],
|
||||||
|
["# |# ", 44, 1, 0],
|
||||||
|
[" # | # ", 44, 2, 0],
|
||||||
|
[" # | # ", 44, 3, 0],
|
||||||
|
[" #| #", 44, 4, 0],
|
||||||
|
[" # | # ", 44, 6, 0],
|
||||||
|
[" # | # ", 44, 7, 0],
|
||||||
|
[" # | # ", 44, 8, 0],
|
||||||
|
[" #| #", 44, 9, 0, 0, 1, 0],
|
||||||
|
["# |# ", 44, 11, 0, 0, 1, 0],
|
||||||
|
[" #| #", 44, 13, 0, 0, 1, 0],
|
||||||
|
["# |# ", 44, 15, 0, 0, 1, 0],
|
||||||
|
|
||||||
|
[" #| #", 45, 1, 0, 0, 0, 0, proc { @rotate_power = 0; @bump_time = 9999999 }],
|
||||||
|
[" | # ", 45, 3, 0],
|
||||||
|
[" | # ", 45, 5, 0],
|
||||||
|
["# |# ", 45, 9, 0],
|
||||||
|
[" | # ", 45, 11, 0],
|
||||||
|
[" # | # ", 45, 13, 0],
|
||||||
|
[" #| #", 46, 1, 0],
|
||||||
|
[" |# ", 46, 3, 0],
|
||||||
|
[" | # ", 46, 5, 0],
|
||||||
|
[" #| #", 46, 9, 0],
|
||||||
|
[" | # ", 46, 11, 0],
|
||||||
|
[" # | # ", 46, 13, 0],
|
||||||
|
[" # | # ", 47, 1, 0],
|
||||||
|
[" | # ", 47, 3, 0],
|
||||||
|
[" |# ", 47, 5, 0],
|
||||||
|
[" #| #", 47, 9, 0],
|
||||||
|
[" | # ", 47, 11, 0],
|
||||||
|
[" # | # ", 47, 13, 0],
|
||||||
|
[" # | # ", 48, 1, 0],
|
||||||
|
[" |# ", 48, 3, 0],
|
||||||
|
[" | # ", 48, 5, 0],
|
||||||
|
[" #| #", 48, 9, 0],
|
||||||
|
[" | # ", 48, 11, 0],
|
||||||
|
["# |# ", 48, 13, 0],
|
||||||
|
|
||||||
|
[" #| ", 49, 1, 0, 0, 0, 0, proc { @rotate_power = 0; @bump_time = BPM_TIME; @bump_timeout = 0 }],
|
||||||
|
[" # | ", 49, 3, 0],
|
||||||
|
["# | ", 49, 5, 0],
|
||||||
|
[" # | ", 49, 7, 0],
|
||||||
|
["# | ", 49, 9, 0],
|
||||||
|
[" # | ", 49, 11, 0],
|
||||||
|
["# | ", 49, 13, 0],
|
||||||
|
[" #| ", 50, 1, 0],
|
||||||
|
[" # | ", 50, 3, 0],
|
||||||
|
[" # | ", 50, 5, 0],
|
||||||
|
[" #| ", 50, 7, 0],
|
||||||
|
[" # | ", 50, 9, 0],
|
||||||
|
["# | ", 50, 11, 0],
|
||||||
|
[" # | ", 50, 13, 0],
|
||||||
|
["# | ", 51, 1, 0],
|
||||||
|
[" # | ", 51, 3, 0],
|
||||||
|
[" # | ", 51, 5, 0],
|
||||||
|
[" #| ", 51, 7, 0],
|
||||||
|
[" # | ", 51, 9, 0],
|
||||||
|
[" #| ", 51, 11, 0],
|
||||||
|
["# | ", 51, 13, 0],
|
||||||
|
[" #| ", 52, 1, 0],
|
||||||
|
["# | ", 52, 3, 0],
|
||||||
|
[" # | ", 52, 5, 0],
|
||||||
|
["# | ", 52, 7, 0],
|
||||||
|
[" # | ", 52, 9, 0],
|
||||||
|
[" # | ", 52, 11, 0],
|
||||||
|
["# | ", 52, 13, 0],
|
||||||
|
|
||||||
|
[" | #", 53, 1, 0],
|
||||||
|
[" | # ", 53, 3, 0],
|
||||||
|
[" |# ", 53, 5, 0],
|
||||||
|
[" | # ", 53, 7, 0],
|
||||||
|
[" |# ", 53, 9, 0],
|
||||||
|
[" | # ", 53, 11, 0],
|
||||||
|
[" |# ", 53, 13, 0],
|
||||||
|
[" | #", 54, 1, 0],
|
||||||
|
[" | # ", 54, 3, 0],
|
||||||
|
[" | # ", 54, 5, 0],
|
||||||
|
[" | #", 54, 7, 0],
|
||||||
|
[" | # ", 54, 9, 0],
|
||||||
|
[" |# ", 54, 11, 0],
|
||||||
|
[" | # ", 54, 13, 0],
|
||||||
|
[" |# ", 55, 1, 0],
|
||||||
|
[" | # ", 55, 3, 0],
|
||||||
|
[" | # ", 55, 5, 0],
|
||||||
|
[" | #", 55, 7, 0],
|
||||||
|
[" | # ", 55, 9, 0],
|
||||||
|
[" | #", 55, 11, 0],
|
||||||
|
[" |# ", 55, 13, 0],
|
||||||
|
[" | #", 56, 1, 0],
|
||||||
|
[" |# ", 56, 3, 0],
|
||||||
|
[" | # ", 56, 5, 0],
|
||||||
|
[" |# ", 56, 7, 0],
|
||||||
|
[" ## | ## ", 56, 9, 0, 0, 2, 0, proc {@bump_time = BPM_TIME / 8; @bump_timeout = 0 }],
|
||||||
|
["# #|# #", 56, 13, 0, 0, 2, 0, proc {@bump_time = BPM_TIME / 4; @bump_timeout = 0 }],
|
||||||
|
|
||||||
|
["# | ", 57, 1, 0, 0, 0, 0, proc { @rotate_power = 1; @bump_time = BPM_TIME / 2; @bump_timeout = 0 }],
|
||||||
|
[" # | ", 57, 2, 0],
|
||||||
|
[" # | ", 57, 3, 0],
|
||||||
|
[" # | ", 57, 4, 0],
|
||||||
|
["# | ", 57, 5, 0, 0, 1, 0],
|
||||||
|
[" #| ", 57, 7, 0],
|
||||||
|
["# | ", 57, 8, 0],
|
||||||
|
[" # | ", 57, 9, 0],
|
||||||
|
["# | ", 57, 10, 0],
|
||||||
|
[" # | ", 57, 11, 0],
|
||||||
|
[" #| ", 57, 12, 0],
|
||||||
|
[" # | ", 57, 13, 0, 0, 1, 0],
|
||||||
|
[" # | ", 57, 15, 0],
|
||||||
|
[" #| ", 58, 1, 0],
|
||||||
|
[" # | ", 58, 2, 0],
|
||||||
|
["# | ", 58, 3, 0],
|
||||||
|
[" # | ", 58, 4, 0],
|
||||||
|
["# | ", 58, 5, 0, 0, 1, 0],
|
||||||
|
[" # | ", 58, 7, 0],
|
||||||
|
["# | ", 58, 8, 0],
|
||||||
|
[" # | ", 58, 9, 0],
|
||||||
|
[" #| ", 58, 10, 0],
|
||||||
|
[" # | ", 58, 11, 0],
|
||||||
|
[" #| ", 58, 12, 0],
|
||||||
|
[" # | ", 58, 13, 0, 0, 1, 0],
|
||||||
|
["# | ", 58, 15, 0],
|
||||||
|
[" # | ", 59, 1, 0],
|
||||||
|
[" #| ", 59, 2, 0],
|
||||||
|
[" # | ", 59, 3, 0],
|
||||||
|
["# | ", 59, 4, 0],
|
||||||
|
["# | ", 59, 5, 0, 0, 1, 0],
|
||||||
|
[" # | ", 59, 7, 0],
|
||||||
|
[" #| ", 59, 8, 0],
|
||||||
|
[" # | ", 59, 9, 0],
|
||||||
|
[" # | ", 59, 10, 0],
|
||||||
|
[" # | ", 59, 11, 0],
|
||||||
|
[" # | ", 59, 12, 0],
|
||||||
|
[" #| ", 59, 13, 0, 0, 1, 0],
|
||||||
|
["# | ", 59, 15, 0, 0, 1, 0],
|
||||||
|
[" #| ", 60, 1, 0],
|
||||||
|
[" # | ", 60, 2, 0],
|
||||||
|
[" # | ", 60, 3, 0],
|
||||||
|
["# | ", 60, 4, 0],
|
||||||
|
[" # | ", 60, 5, 0],
|
||||||
|
[" # | ", 60, 7, 0],
|
||||||
|
[" # | ", 60, 8, 0],
|
||||||
|
["# | ", 60, 9, 0],
|
||||||
|
[" #| ", 60, 10, 0],
|
||||||
|
[" # | ", 60, 11, 0],
|
||||||
|
[" # | ", 60, 12, 0],
|
||||||
|
[" #| ", 60, 13, 0, 0, 1, 0],
|
||||||
|
[" #| ", 60, 15, 0, 0, 1, 0],
|
||||||
|
|
||||||
|
[" |# ", 61, 1, 0],
|
||||||
|
[" | # ", 61, 2, 0],
|
||||||
|
[" | # ", 61, 3, 0],
|
||||||
|
[" | # ", 61, 4, 0],
|
||||||
|
[" |# ", 61, 5, 0, 0, 1, 0],
|
||||||
|
[" | #", 61, 7, 0],
|
||||||
|
[" |# ", 61, 8, 0],
|
||||||
|
[" | # ", 61, 9, 0],
|
||||||
|
[" |# ", 61, 10, 0],
|
||||||
|
[" | # ", 61, 11, 0],
|
||||||
|
[" | #", 61, 12, 0],
|
||||||
|
[" | # ", 61, 13, 0, 0, 1, 0],
|
||||||
|
[" | # ", 61, 15, 0],
|
||||||
|
[" | #", 62, 1, 0],
|
||||||
|
[" | # ", 62, 2, 0],
|
||||||
|
[" |# ", 62, 3, 0],
|
||||||
|
[" | # ", 62, 4, 0],
|
||||||
|
[" |# ", 62, 5, 0, 0, 1, 0],
|
||||||
|
[" | # ", 62, 7, 0],
|
||||||
|
[" |# ", 62, 8, 0],
|
||||||
|
[" | # ", 62, 9, 0],
|
||||||
|
[" | #", 62, 10, 0],
|
||||||
|
[" | # ", 62, 11, 0],
|
||||||
|
[" | #", 62, 12, 0],
|
||||||
|
[" | # ", 62, 13, 0, 0, 1, 0],
|
||||||
|
[" |# ", 62, 15, 0],
|
||||||
|
[" | # ", 63, 1, 0],
|
||||||
|
[" | #", 63, 2, 0],
|
||||||
|
[" | # ", 63, 3, 0],
|
||||||
|
[" |# ", 63, 4, 0],
|
||||||
|
[" |# ", 63, 5, 0, 0, 1, 0],
|
||||||
|
[" | # ", 63, 7, 0],
|
||||||
|
[" | #", 63, 8, 0],
|
||||||
|
[" | # ", 63, 9, 0],
|
||||||
|
[" | # ", 63, 10, 0],
|
||||||
|
[" | # ", 63, 11, 0],
|
||||||
|
[" | # ", 63, 12, 0],
|
||||||
|
[" | #", 63, 13, 0, 0, 1, 0],
|
||||||
|
[" |# ", 63, 15, 0, 0, 1, 0],
|
||||||
|
[" | #", 64, 1, 0],
|
||||||
|
[" | # ", 64, 2, 0],
|
||||||
|
[" | # ", 64, 3, 0],
|
||||||
|
[" |# ", 64, 4, 0],
|
||||||
|
[" | # ", 64, 5, 0, 0, 1, 0],
|
||||||
|
[" | # ", 64, 7, 0],
|
||||||
|
[" | # ", 64, 8, 0],
|
||||||
|
[" |# ", 64, 9, 0],
|
||||||
|
[" | #", 64, 10, 0],
|
||||||
|
[" | # ", 64, 11, 0],
|
||||||
|
[" | # ", 64, 12, 0],
|
||||||
|
[" | #", 64, 13, 0, 0, 1, 0],
|
||||||
|
[" | #", 64, 15, 0, 0, 1, 0],
|
||||||
|
|
||||||
|
[" # | # ", 65, 1, 0, 0, 1, 0, proc { @rotate_power = 0; @bump_time = 9999999; @bump_timeout = 9999999 }],
|
||||||
|
[" #| #", 65, 3, 0],
|
||||||
|
[" # | # ", 65, 6, 0],
|
||||||
|
[" # | # ", 65, 7, 0, 0, 1, 0],
|
||||||
|
[" #| #", 65, 9, 0, 0, 1, 0],
|
||||||
|
["# |# ", 65, 11, 0, 0, 1, 0],
|
||||||
|
[" #| #", 65, 13, 0, 0, 1, 0],
|
||||||
|
[" #| #", 66, 1, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 66, 3, 0],
|
||||||
|
[" # | # ", 66, 5, 0],
|
||||||
|
["# |# ", 66, 6, 0, 0, 1, 0],
|
||||||
|
[" #| #", 66, 8, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 66, 11, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 66, 13, 0, 0, 1, 0],
|
||||||
|
[" # | # ", 67, 1, 0, 0, 1, 0],
|
||||||
|
[" #| #", 67, 3, 0],
|
||||||
|
[" # | # ", 67, 6, 0],
|
||||||
|
[" # | # ", 67, 7, 0, 0, 1, 0],
|
||||||
|
[" #| #", 67, 9, 0, 0, 1, 0],
|
||||||
|
["# |# ", 67, 11, 0, 0, 1, 0],
|
||||||
|
[" #| #", 67, 13, 0, 0, 1, 0],
|
||||||
|
["# |# ", 68, 1, 0, 0, 1, 0],
|
||||||
|
[" #| #", 68, 3, 0],
|
||||||
|
["# |# ", 68, 5, 0],
|
||||||
|
[" # | # ", 68, 6, 0, 0, 1, 0],
|
||||||
|
[" #| #", 68, 8, 0, 0, 1, 0],
|
||||||
|
[" #| #", 68, 11, 0, 0, 1, 0],
|
||||||
|
["# |# ", 68, 13, 0, 0, 1, 0],
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,58 @@
|
||||||
#include <seccomp.h>
|
#include <seccomp.h>
|
||||||
//Yes its not best way, anyway better than nothing.
|
//Yes its not best way, anyway better than nothing.
|
||||||
scmp_filter_ctx ctx;
|
scmp_filter_ctx ctx;
|
||||||
int seccomplist[] = {SCMP_SYS(bpf), SCMP_SYS(set_mempolicy), SCMP_SYS(set_mempolicy_home_node), SCMP_SYS(vhangup), SCMP_SYS(settimeofday), SCMP_SYS(stime), SCMP_SYS(clock_settime),
|
const int seccomplist[] = {SCMP_SYS(bpf),
|
||||||
SCMP_SYS(clock_settime64), SCMP_SYS(iopl), SCMP_SYS(ioperm), SCMP_SYS(ptrace), SCMP_SYS(process_vm_writev), SCMP_SYS(process_vm_readv), SCMP_SYS(process_madvise),
|
SCMP_SYS(set_mempolicy),
|
||||||
SCMP_SYS(pidfd_getfd), SCMP_SYS(kcmp), SCMP_SYS(delete_module), SCMP_SYS(init_module), SCMP_SYS(init_module), SCMP_SYS(chroot), SCMP_SYS(reboot), SCMP_SYS(unshare),
|
SCMP_SYS(set_mempolicy_home_node),
|
||||||
SCMP_SYS(umount2), SCMP_SYS(umount), SCMP_SYS(setns), SCMP_SYS(sethostname), SCMP_SYS(setdomainname), SCMP_SYS(bpf), SCMP_SYS(quotactl_fd), SCMP_SYS(quotactl),
|
SCMP_SYS(vhangup),
|
||||||
SCMP_SYS(move_mount), SCMP_SYS(mount_setattr), SCMP_SYS(mount),
|
SCMP_SYS(settimeofday),
|
||||||
SCMP_SYS(process_vm_readv), SCMP_SYS(process_vm_writev), SCMP_SYS(ptrace), SCMP_SYS(swapon), SCMP_SYS(swapoff), SCMP_SYS(settimeofday),
|
SCMP_SYS(stime),
|
||||||
SCMP_SYS(sethostname), SCMP_SYS(umount), SCMP_SYS(umount2), SCMP_SYS(vm86old), SCMP_SYS(vm86), SCMP_SYS(setgroups), SCMP_SYS(setgid), SCMP_SYS(setfsuid),
|
SCMP_SYS(clock_settime),
|
||||||
SCMP_SYS(setfsgid), SCMP_SYS(setdomainname), SCMP_SYS(setns), SCMP_SYS(setpgid), SCMP_SYS(pciconfig_write)};
|
SCMP_SYS(clock_settime64),
|
||||||
|
SCMP_SYS(iopl),
|
||||||
|
SCMP_SYS(ioperm),
|
||||||
|
SCMP_SYS(ptrace),
|
||||||
|
SCMP_SYS(process_vm_writev),
|
||||||
|
SCMP_SYS(process_vm_readv),
|
||||||
|
SCMP_SYS(process_madvise),
|
||||||
|
SCMP_SYS(pidfd_getfd),
|
||||||
|
SCMP_SYS(kcmp),
|
||||||
|
SCMP_SYS(delete_module),
|
||||||
|
SCMP_SYS(init_module),
|
||||||
|
SCMP_SYS(init_module),
|
||||||
|
SCMP_SYS(chroot),
|
||||||
|
SCMP_SYS(reboot),
|
||||||
|
SCMP_SYS(unshare),
|
||||||
|
SCMP_SYS(umount2),
|
||||||
|
SCMP_SYS(umount),
|
||||||
|
SCMP_SYS(setns),
|
||||||
|
SCMP_SYS(sethostname),
|
||||||
|
SCMP_SYS(setdomainname),
|
||||||
|
SCMP_SYS(bpf),
|
||||||
|
SCMP_SYS(quotactl_fd),
|
||||||
|
SCMP_SYS(quotactl),
|
||||||
|
SCMP_SYS(move_mount),
|
||||||
|
SCMP_SYS(mount_setattr),
|
||||||
|
SCMP_SYS(mount),
|
||||||
|
SCMP_SYS(process_vm_readv),
|
||||||
|
SCMP_SYS(process_vm_writev),
|
||||||
|
SCMP_SYS(ptrace),
|
||||||
|
SCMP_SYS(swapon),
|
||||||
|
SCMP_SYS(swapoff),
|
||||||
|
SCMP_SYS(settimeofday),
|
||||||
|
SCMP_SYS(sethostname),
|
||||||
|
SCMP_SYS(umount),
|
||||||
|
SCMP_SYS(umount2),
|
||||||
|
SCMP_SYS(vm86old),
|
||||||
|
SCMP_SYS(vm86),
|
||||||
|
SCMP_SYS(setgroups),
|
||||||
|
SCMP_SYS(setgid),
|
||||||
|
SCMP_SYS(setfsuid),
|
||||||
|
SCMP_SYS(setfsgid),
|
||||||
|
SCMP_SYS(setdomainname),
|
||||||
|
SCMP_SYS(setns),
|
||||||
|
SCMP_SYS(setpgid),
|
||||||
|
SCMP_SYS(pciconfig_write)};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void SecurityManagerInit(){
|
void SecurityManagerInit(){
|
||||||
|
|
|
||||||
|
|
@ -623,10 +623,14 @@ void Sprite::onGeometryChange(const Scene::Geometry &geo){
|
||||||
* relative to screen origin */
|
* relative to screen origin */
|
||||||
p->trans.setGlobalOffset(geo.offset());
|
p->trans.setGlobalOffset(geo.offset());
|
||||||
Viewport* viewport = ViewportElement::getViewport();
|
Viewport* viewport = ViewportElement::getViewport();
|
||||||
if (viewport)
|
if (viewport) {
|
||||||
p->trans.setGlobalScale(Vec2(viewport->getScaleX(), viewport->getScaleY()));
|
p->trans.setGlobalScale(Vec2(viewport->getScaleX(), viewport->getScaleY()));
|
||||||
else
|
p->trans.setGlobalRotation(viewport->getRotation());
|
||||||
|
}
|
||||||
|
else {
|
||||||
p->trans.setGlobalScale(Vec2(1.0, 1.0));
|
p->trans.setGlobalScale(Vec2(1.0, 1.0));
|
||||||
|
p->trans.setGlobalRotation(0);
|
||||||
|
}
|
||||||
|
|
||||||
p->sceneRect.setSize(geo.rect.size());
|
p->sceneRect.setSize(geo.rect.size());
|
||||||
p->sceneOrig = geo.orig;
|
p->sceneOrig = geo.orig;
|
||||||
|
|
|
||||||
|
|
@ -43,15 +43,17 @@
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// added global rotation and global scale, modified updateMatrix(), using SDL funcs instead of math.h
|
||||||
|
|
||||||
#ifndef TRANSFORM_H
|
#ifndef TRANSFORM_H
|
||||||
#define TRANSFORM_H
|
#define TRANSFORM_H
|
||||||
|
|
||||||
#include "etc-internal.h"
|
#include "etc-internal.h"
|
||||||
|
|
||||||
#include <math.h>
|
|
||||||
#include <SDL3/SDL_stdinc.h>
|
#include <SDL3/SDL_stdinc.h>
|
||||||
|
|
||||||
|
constexpr float PI = 3.14159265358979323846f;
|
||||||
|
|
||||||
class Transform{
|
class Transform{
|
||||||
public:
|
public:
|
||||||
Transform()
|
Transform()
|
||||||
|
|
@ -65,10 +67,12 @@ public:
|
||||||
matrix[15] = 1;
|
matrix[15] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec2 &getPosition() { return position; }
|
Vec2 &getPosition() { return position; }
|
||||||
Vec2 &getOrigin() { return origin; }
|
Vec2 &getOrigin() { return origin; }
|
||||||
Vec2 &getScale() { return scale; }
|
Vec2 &getScale() { return scale; }
|
||||||
float getRotation() { return rotation; }
|
Vec2 &getGlobalScale() { return globalScale; }
|
||||||
|
float getRotation() { return rotation; }
|
||||||
|
float getGlobalRotation() { return globalRotation; }
|
||||||
|
|
||||||
Vec2i getPositionI() const{
|
Vec2i getPositionI() const{
|
||||||
return Vec2i(position.x, position.y);
|
return Vec2i(position.x, position.y);
|
||||||
|
|
@ -98,6 +102,11 @@ public:
|
||||||
dirty = true;
|
dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setGlobalRotation(float value){
|
||||||
|
globalRotation = value;
|
||||||
|
dirty = true;
|
||||||
|
}
|
||||||
|
|
||||||
void setGlobalOffset(const Vec2i &value){
|
void setGlobalOffset(const Vec2i &value){
|
||||||
offset = value;
|
offset = value;
|
||||||
dirty = true;
|
dirty = true;
|
||||||
|
|
@ -119,33 +128,65 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void updateMatrix(){
|
void updateMatrix(){
|
||||||
if (rotation >= 360 || rotation < -360)
|
if (rotation >= 360 || rotation < -360)
|
||||||
rotation = (float) SDL_fmod(rotation, 360);
|
rotation = (float)SDL_fmod(rotation, 360);
|
||||||
if (rotation < 0)
|
|
||||||
rotation += 360;
|
|
||||||
|
|
||||||
float angle = rotation * 3.141592654f / 180.0f;
|
if (globalRotation >= 360 || globalRotation < -360)
|
||||||
float cosine = (float) SDL_cos(angle);
|
globalRotation = (float)SDL_fmod(globalRotation, 360);
|
||||||
float sine = (float) SDL_sin(angle);
|
|
||||||
float sxc = scale.x * cosine;
|
|
||||||
float syc = scale.y * cosine;
|
|
||||||
float sxs = scale.x * sine;
|
|
||||||
float sys = scale.y * sine;
|
|
||||||
float tx = (-origin.x * sxc - origin.y * sys + position.x) * globalScale.x + offset.x;
|
|
||||||
float ty = ( origin.x * sxs - origin.y * syc + position.y) * globalScale.y + offset.y;
|
|
||||||
|
|
||||||
matrix[0] = sxc * globalScale.x;
|
// object rotation cos and sin
|
||||||
matrix[1] = -sxs * globalScale.y;
|
float angle = rotation * PI / 180.0f;
|
||||||
matrix[4] = sys * globalScale.x;
|
float cosine = SDL_cos(angle);
|
||||||
matrix[5] = syc * globalScale.y;
|
float sine = SDL_sin(angle);
|
||||||
matrix[12] = tx;
|
|
||||||
matrix[13] = ty;
|
float sxc = scale.x * cosine;
|
||||||
|
float syc = scale.y * cosine;
|
||||||
|
float sxs = scale.x * sine;
|
||||||
|
float sys = scale.y * sine;
|
||||||
|
|
||||||
|
// object matrix
|
||||||
|
float a = sxc * globalScale.x;
|
||||||
|
float b = -sxs * globalScale.y;
|
||||||
|
float c = sys * globalScale.x;
|
||||||
|
float d = syc * globalScale.y;
|
||||||
|
|
||||||
|
float tx = (-origin.x * sxc - origin.y * sys + position.x)
|
||||||
|
* globalScale.x;
|
||||||
|
|
||||||
|
float ty = ( origin.x * sxs - origin.y * syc + position.y)
|
||||||
|
* globalScale.y;
|
||||||
|
|
||||||
|
// viewport rotation cos and sin
|
||||||
|
float globalAngle = globalRotation * PI / 180.0f;
|
||||||
|
float gc = SDL_cos(globalAngle);
|
||||||
|
float gs = SDL_sin(globalAngle);
|
||||||
|
|
||||||
|
// basis rotation
|
||||||
|
float na = a * gc - b * gs;
|
||||||
|
float nb = a * gs + b * gc;
|
||||||
|
float nc = c * gc - d * gs;
|
||||||
|
float nd = c * gs + d * gc;
|
||||||
|
|
||||||
|
float dx = tx;
|
||||||
|
float dy = ty;
|
||||||
|
|
||||||
|
// appling global rotation
|
||||||
|
tx = dx * gc - dy * gs + offset.x;
|
||||||
|
ty = dx * gs + dy * gc + offset.y;
|
||||||
|
|
||||||
|
matrix[0] = na;
|
||||||
|
matrix[1] = nb;
|
||||||
|
matrix[4] = nc;
|
||||||
|
matrix[5] = nd;
|
||||||
|
matrix[12] = tx;
|
||||||
|
matrix[13] = ty;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec2 position;
|
Vec2 position;
|
||||||
Vec2 origin;
|
Vec2 origin;
|
||||||
Vec2 scale;
|
Vec2 scale;
|
||||||
float rotation;
|
float rotation;
|
||||||
|
float globalRotation;
|
||||||
|
|
||||||
/* Silently added to position */
|
/* Silently added to position */
|
||||||
Vec2i offset;
|
Vec2i offset;
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ struct ViewportPrivate{
|
||||||
|
|
||||||
double scaleX;
|
double scaleX;
|
||||||
double scaleY;
|
double scaleY;
|
||||||
|
double rotation;
|
||||||
|
|
||||||
EtcTemps tmp;
|
EtcTemps tmp;
|
||||||
|
|
||||||
|
|
@ -56,6 +57,7 @@ struct ViewportPrivate{
|
||||||
tone(&tmp.tone),
|
tone(&tmp.tone),
|
||||||
scaleX(1.0),
|
scaleX(1.0),
|
||||||
scaleY(1.0),
|
scaleY(1.0),
|
||||||
|
rotation(0.0),
|
||||||
isOnScreen(false)
|
isOnScreen(false)
|
||||||
{
|
{
|
||||||
rect->set(x, y, width, height);
|
rect->set(x, y, width, height);
|
||||||
|
|
@ -139,8 +141,9 @@ void Viewport::update(){
|
||||||
DEF_ATTR_RD_SIMPLE(Viewport, OX, int, geometry.orig.x)
|
DEF_ATTR_RD_SIMPLE(Viewport, OX, int, geometry.orig.x)
|
||||||
DEF_ATTR_RD_SIMPLE(Viewport, OY, int, geometry.orig.y)
|
DEF_ATTR_RD_SIMPLE(Viewport, OY, int, geometry.orig.y)
|
||||||
|
|
||||||
DEF_ATTR_RD_SIMPLE(Viewport, ScaleX, double, p->scaleX)
|
DEF_ATTR_RD_SIMPLE(Viewport, ScaleX, double, p->scaleX)
|
||||||
DEF_ATTR_RD_SIMPLE(Viewport, ScaleY, double, p->scaleY)
|
DEF_ATTR_RD_SIMPLE(Viewport, ScaleY, double, p->scaleY)
|
||||||
|
DEF_ATTR_RD_SIMPLE(Viewport, Rotation, double, p->rotation)
|
||||||
|
|
||||||
DEF_ATTR_SIMPLE(Viewport, Rect, Rect&, *p->rect)
|
DEF_ATTR_SIMPLE(Viewport, Rect, Rect&, *p->rect)
|
||||||
DEF_ATTR_SIMPLE(Viewport, Color, Color&, *p->color)
|
DEF_ATTR_SIMPLE(Viewport, Color, Color&, *p->color)
|
||||||
|
|
@ -186,6 +189,16 @@ void Viewport::setScaleY(double value){
|
||||||
notifyGeometryChange();
|
notifyGeometryChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Viewport::setRotation(double value){
|
||||||
|
guardDisposed();
|
||||||
|
|
||||||
|
if (p->rotation == value)
|
||||||
|
return;
|
||||||
|
|
||||||
|
p->rotation = value;
|
||||||
|
notifyGeometryChange();
|
||||||
|
}
|
||||||
|
|
||||||
void Viewport::initDynAttribs(){
|
void Viewport::initDynAttribs(){
|
||||||
p->rect = new Rect(*p->rect);
|
p->rect = new Rect(*p->rect);
|
||||||
p->color = new Color;
|
p->color = new Color;
|
||||||
|
|
|
||||||
|
|
@ -38,13 +38,14 @@ public:
|
||||||
|
|
||||||
void update();
|
void update();
|
||||||
|
|
||||||
DECL_ATTR( Rect, Rect& )
|
DECL_ATTR( Rect, Rect& )
|
||||||
DECL_ATTR( OX, int )
|
DECL_ATTR( OX, int )
|
||||||
DECL_ATTR( OY, int )
|
DECL_ATTR( OY, int )
|
||||||
DECL_ATTR( ScaleX, double )
|
DECL_ATTR( ScaleX, double )
|
||||||
DECL_ATTR( ScaleY, double )
|
DECL_ATTR( ScaleY, double )
|
||||||
DECL_ATTR( Color, Color& )
|
DECL_ATTR( Rotation, double )
|
||||||
DECL_ATTR( Tone, Tone& )
|
DECL_ATTR( Color, Color& )
|
||||||
|
DECL_ATTR( Tone, Tone& )
|
||||||
|
|
||||||
void initDynAttribs();
|
void initDynAttribs();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue