Use RPGe dialog font at runtime from ROM
This commit is contained in:
parent
c9dcb8a17c
commit
e9d0dd4579
|
@ -78,8 +78,8 @@
|
|||
プ
|
||||
ぷ
|
||||
ペ
|
||||
"
|
||||
'
|
||||
“
|
||||
‘
|
||||
|
||||
0
|
||||
1
|
||||
|
@ -151,8 +151,8 @@ it
|
|||
|
||||
li
|
||||
ll
|
||||
'
|
||||
"
|
||||
“
|
||||
”
|
||||
:
|
||||
;
|
||||
,
|
||||
|
@ -166,10 +166,10 @@ ti
|
|||
fi
|
||||
ラ
|
||||
ら
|
||||
pe
|
||||
l
|
||||
'
|
||||
"
|
||||
p
|
||||
el
|
||||
‘
|
||||
“
|
||||
if
|
||||
lt
|
||||
tl
|
||||
|
@ -204,31 +204,31 @@ tt
|
|||
?
|
||||
ォ
|
||||
%
|
||||
/
|
||||
/
|
||||
:
|
||||
「
|
||||
」
|
||||
。
|
||||
A
|
||||
B
|
||||
X
|
||||
Y
|
||||
L
|
||||
R
|
||||
E
|
||||
H
|
||||
M
|
||||
P
|
||||
S
|
||||
C
|
||||
T
|
||||
A
|
||||
B
|
||||
X
|
||||
Y
|
||||
L
|
||||
R
|
||||
E
|
||||
H
|
||||
M
|
||||
P
|
||||
S
|
||||
C
|
||||
T
|
||||
←
|
||||
→
|
||||
+
|
||||
、
|
||||
◯
|
||||
『
|
||||
F
|
||||
|
||||
°C
|
||||
・
|
||||
(
|
||||
|
|
|
@ -42,6 +42,7 @@ var character_battle_sprite_palette_stone_texture: ImageTexture
|
|||
var weapon_textures = {}
|
||||
var font_atlas_image: Image
|
||||
var font_atlas_texture: ImageTexture
|
||||
var font: BitmapFont
|
||||
|
||||
var character_status_palette_replacements = {
|
||||
'poison': {4: '$7EDB = #DEB5FF', 8: '$4DD3 = #9C739C'}, # Also kneel
|
||||
|
@ -537,6 +538,23 @@ func load_from_structs(data: Dictionary):
|
|||
# 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_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_pos_US := 0x12FE10
|
||||
|
|
|
@ -3,6 +3,7 @@ var menu_r5 := 0
|
|||
var menu_g5 := 0
|
||||
var menu_b5 := 16
|
||||
|
||||
var theme := preload('res://theme/menu_theme.tres')
|
||||
var border_image: Image = preload('res://theme/border.png')
|
||||
var border_texture := preload('res://theme/border_imagetexture.tres')
|
||||
var border_stylebox := preload('res://theme/border_stylebox.tres')
|
||||
|
|
|
@ -43,10 +43,6 @@ func _ready():
|
|||
bbg.align = LineEdit.ALIGN_RIGHT
|
||||
add_child(bbg)
|
||||
|
||||
# var fontbox := TextureRect.new()
|
||||
# fontbox.texture = SpriteLoader.font_atlas_texture
|
||||
# add_child(fontbox)
|
||||
|
||||
# var lbl = Label.new()
|
||||
# for i in 22:
|
||||
# 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)
|
||||
make_hexview(RomLoader.snes_bytes, 480)
|
||||
|
||||
var fontbox := TextureRect.new()
|
||||
fontbox.texture = SpriteLoader.font_atlas_texture
|
||||
add_child(fontbox)
|
||||
|
||||
func scroll_hexview(rows: int):
|
||||
var current_row: int = (-hexbox.rect_position.y)/4
|
||||
var next_row = current_row + rows
|
||||
|
|
Loading…
Reference in New Issue