Use RPGe dialog font at runtime from ROM
This commit is contained in:
parent
c9dcb8a17c
commit
e9d0dd4579
|
@ -78,8 +78,8 @@
|
||||||
プ
|
プ
|
||||||
ぷ
|
ぷ
|
||||||
ペ
|
ペ
|
||||||
"
|
“
|
||||||
'
|
‘
|
||||||
|
|
||||||
0
|
0
|
||||||
1
|
1
|
||||||
|
@ -151,8 +151,8 @@ it
|
||||||
|
|
||||||
li
|
li
|
||||||
ll
|
ll
|
||||||
'
|
“
|
||||||
"
|
”
|
||||||
:
|
:
|
||||||
;
|
;
|
||||||
,
|
,
|
||||||
|
@ -166,10 +166,10 @@ ti
|
||||||
fi
|
fi
|
||||||
ラ
|
ラ
|
||||||
ら
|
ら
|
||||||
pe
|
p
|
||||||
l
|
el
|
||||||
'
|
‘
|
||||||
"
|
“
|
||||||
if
|
if
|
||||||
lt
|
lt
|
||||||
tl
|
tl
|
||||||
|
@ -204,31 +204,31 @@ tt
|
||||||
?
|
?
|
||||||
ォ
|
ォ
|
||||||
%
|
%
|
||||||
/
|
/
|
||||||
:
|
:
|
||||||
「
|
「
|
||||||
」
|
」
|
||||||
。
|
。
|
||||||
A
|
A
|
||||||
B
|
B
|
||||||
X
|
X
|
||||||
Y
|
Y
|
||||||
L
|
L
|
||||||
R
|
R
|
||||||
E
|
E
|
||||||
H
|
H
|
||||||
M
|
M
|
||||||
P
|
P
|
||||||
S
|
S
|
||||||
C
|
C
|
||||||
T
|
T
|
||||||
←
|
←
|
||||||
→
|
→
|
||||||
+
|
+
|
||||||
、
|
、
|
||||||
◯
|
◯
|
||||||
『
|
『
|
||||||
F
|
|
||||||
°C
|
°C
|
||||||
・
|
・
|
||||||
(
|
(
|
||||||
|
|
|
@ -42,6 +42,7 @@ var character_battle_sprite_palette_stone_texture: ImageTexture
|
||||||
var weapon_textures = {}
|
var weapon_textures = {}
|
||||||
var font_atlas_image: Image
|
var font_atlas_image: Image
|
||||||
var font_atlas_texture: ImageTexture
|
var font_atlas_texture: ImageTexture
|
||||||
|
var font: BitmapFont
|
||||||
|
|
||||||
var character_status_palette_replacements = {
|
var character_status_palette_replacements = {
|
||||||
'poison': {4: '$7EDB = #DEB5FF', 8: '$4DD3 = #9C739C'}, # Also kneel
|
'poison': {4: '$7EDB = #DEB5FF', 8: '$4DD3 = #9C739C'}, # Also kneel
|
||||||
|
@ -537,6 +538,23 @@ func load_from_structs(data: Dictionary):
|
||||||
# Make font atlas
|
# Make font atlas
|
||||||
self.font_atlas_image = make_font_glyph_atlas(data.font_glyphs_small, data.font_glyphs_dialogue, data.font_glyphs_kanji)
|
self.font_atlas_image = make_font_glyph_atlas(data.font_glyphs_small, data.font_glyphs_dialogue, data.font_glyphs_kanji)
|
||||||
self.font_atlas_texture = texture_from_image(self.font_atlas_image)
|
self.font_atlas_texture = texture_from_image(self.font_atlas_image)
|
||||||
|
self.font = BitmapFont.new()
|
||||||
|
self.font.add_texture(self.font_atlas_texture)
|
||||||
|
# self.font.extra_spacing_top = -2
|
||||||
|
# self.font.extra_spacing_bottom = -1
|
||||||
|
# self.font.extra_spacing_char = -1
|
||||||
|
# self.font.extra_spacing_space = 1
|
||||||
|
var glyph_table: PoolStringArray = StringLoader.glyph_tables.RPGe_dialog
|
||||||
|
var advance_table: PoolByteArray = data.RPGe_font_character_widths
|
||||||
|
for i in 256:
|
||||||
|
var s := glyph_table[i]
|
||||||
|
if len(s) == 1: # ignore icons etc. for now
|
||||||
|
var c := s.ord_at(0)
|
||||||
|
self.font.add_char(c, 0, Rect2((i%32)*16, (i/32)*12 + 32, advance_table[i], 12))
|
||||||
|
if c == 0x2019: # RIGHT SINGLE QUOTATION MARK
|
||||||
|
# Add for ' as well
|
||||||
|
self.font.add_char(0x27, 0, Rect2((i%32)*16, (i/32)*12 + 32, advance_table[i], 12))
|
||||||
|
ThemeManager.theme.default_font = self.font
|
||||||
|
|
||||||
const gba_marker := 'FINAL FANTASY V ADVANCE SYGMAB'
|
const gba_marker := 'FINAL FANTASY V ADVANCE SYGMAB'
|
||||||
const gba_marker_pos_US := 0x12FE10
|
const gba_marker_pos_US := 0x12FE10
|
||||||
|
|
|
@ -3,6 +3,7 @@ var menu_r5 := 0
|
||||||
var menu_g5 := 0
|
var menu_g5 := 0
|
||||||
var menu_b5 := 16
|
var menu_b5 := 16
|
||||||
|
|
||||||
|
var theme := preload('res://theme/menu_theme.tres')
|
||||||
var border_image: Image = preload('res://theme/border.png')
|
var border_image: Image = preload('res://theme/border.png')
|
||||||
var border_texture := preload('res://theme/border_imagetexture.tres')
|
var border_texture := preload('res://theme/border_imagetexture.tres')
|
||||||
var border_stylebox := preload('res://theme/border_stylebox.tres')
|
var border_stylebox := preload('res://theme/border_stylebox.tres')
|
||||||
|
|
|
@ -43,10 +43,6 @@ func _ready():
|
||||||
bbg.align = LineEdit.ALIGN_RIGHT
|
bbg.align = LineEdit.ALIGN_RIGHT
|
||||||
add_child(bbg)
|
add_child(bbg)
|
||||||
|
|
||||||
# var fontbox := TextureRect.new()
|
|
||||||
# fontbox.texture = SpriteLoader.font_atlas_texture
|
|
||||||
# add_child(fontbox)
|
|
||||||
|
|
||||||
# var lbl = Label.new()
|
# var lbl = Label.new()
|
||||||
# for i in 22:
|
# for i in 22:
|
||||||
# lbl.text = lbl.text + '%s - %s\n' % [StringLoader.get_job_name(i), StringLoader.get_job_desc(i)]
|
# lbl.text = lbl.text + '%s - %s\n' % [StringLoader.get_job_name(i), StringLoader.get_job_desc(i)]
|
||||||
|
|
|
@ -33,6 +33,10 @@ func _ready() -> void:
|
||||||
ProjectSettings.set_setting('display/window/size/snap_to_integer', false)
|
ProjectSettings.set_setting('display/window/size/snap_to_integer', false)
|
||||||
make_hexview(RomLoader.snes_bytes, 480)
|
make_hexview(RomLoader.snes_bytes, 480)
|
||||||
|
|
||||||
|
var fontbox := TextureRect.new()
|
||||||
|
fontbox.texture = SpriteLoader.font_atlas_texture
|
||||||
|
add_child(fontbox)
|
||||||
|
|
||||||
func scroll_hexview(rows: int):
|
func scroll_hexview(rows: int):
|
||||||
var current_row: int = (-hexbox.rect_position.y)/4
|
var current_row: int = (-hexbox.rect_position.y)/4
|
||||||
var next_row = current_row + rows
|
var next_row = current_row + rows
|
||||||
|
|
Loading…
Reference in New Issue