73 lines
2.6 KiB
GDScript
73 lines
2.6 KiB
GDScript
extends Control
|
|
#warning-ignore-all:return_value_discarded
|
|
|
|
const palette_mat := preload('res://palette_mat.tres')
|
|
var save_slots = []
|
|
var save_slot_dicts = []
|
|
|
|
func _ready():
|
|
RomLoader.connect('rom_loaded', self, '_on_rom_loaded')
|
|
# RomLoader.load_snes_rom('/home/luke/code/FF/ffv romhacks/Final Fantasy V (Japan).sfc')
|
|
RomLoader.load_snes_rom('/home/luke/code/FF/ffv romhacks/Final Fantasy V (Japan) [En by RPGe v1.1].sfc')
|
|
|
|
func _on_rom_loaded():
|
|
party_menu()
|
|
# monster_sprites()
|
|
# battle_bgs()
|
|
# jobs_and_abilities()
|
|
|
|
func party_menu():
|
|
var PartyMenu = preload('res://widgets/PartyMenu.tscn').instance()
|
|
# PartyMenu.margin_right = 320.0
|
|
PartyMenu.margin_right = 384.0
|
|
add_child(PartyMenu)
|
|
var save_file := File.new()
|
|
#var error := save_file.open('test.srm', File.READ)
|
|
var error := save_file.open('/home/luke/.config/Mesen2/Saves/FF5_SCC_WepTweaks_Inus_Dash.srm', File.READ)
|
|
if error == OK:
|
|
for i in 4:
|
|
save_slots.append(SaveLoader.get_save_slot(save_file, i))
|
|
save_slot_dicts.append(SaveLoader.load_save_slot(save_slots[i]))
|
|
print('Loaded test save file')
|
|
save_file.close()
|
|
# error = save_file.open('downloaded_saves/psx_world1.gme', File.READ)
|
|
# if error == OK:
|
|
# var buffer := StreamPeerBuffer.new()
|
|
# save_file.seek(0x2FA0)
|
|
# buffer.data_array = save_file.get_buffer(0x600)
|
|
# save_slot_dicts.append(SaveLoader.get_struct(buffer, 'Save_slot'))
|
|
var data = save_slot_dicts[0]
|
|
data.characters[2].equipped_abilities[3] = 0x9B
|
|
PartyMenu.update_labels(data)
|
|
ThemeManager.set_menu_color_555(data.config.menu_color_r, data.config.menu_color_g, data.config.menu_color_b)
|
|
|
|
func monster_sprites():
|
|
var monster_box := GridContainer.new()
|
|
monster_box.columns = 8
|
|
add_child(monster_box)
|
|
for mon in RomLoader.snes_data.monster_battle_sprites:
|
|
var t := TextureRect.new()
|
|
t.material = palette_mat.duplicate()
|
|
t.texture = mon.sprite
|
|
t.material.set_shader_param('palette', mon.palette)
|
|
monster_box.add_child(t)
|
|
|
|
func battle_bgs():
|
|
var bbg := SpinBox.new()
|
|
bbg.max_value = len(SpriteLoader.battle_backgrounds) - 1
|
|
bbg.connect('value_changed', $BattleScene, 'set_bg')
|
|
bbg.rect_min_size.x = 32
|
|
bbg.rect_position.y = 218
|
|
bbg.align = LineEdit.ALIGN_RIGHT
|
|
add_child(bbg)
|
|
|
|
func jobs_and_abilities():
|
|
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)]
|
|
for i in 78:
|
|
lbl.text = lbl.text + '\n%s - %s' % [StringLoader.get_ability_name(i), StringLoader.get_ability_desc(i)]
|
|
for i in range(128, 161):
|
|
lbl.text = lbl.text + '\n%s - %s' % [StringLoader.get_ability_name(i), StringLoader.get_ability_desc(i)]
|
|
add_child(lbl)
|