Make hot reloading ROMs actually work on the web build with battle_sprites
This commit is contained in:
parent
80d65d2a76
commit
9dfa0b1ec7
|
@ -69,7 +69,9 @@ func _on_loader_loading_stage_updated(stage: String, loader: String) -> void:
|
|||
#print(Time.get_time_string_from_system() + ' ' + output)
|
||||
print('@%dms - %s' % [Time.get_ticks_msec() - load_start_tick, output])
|
||||
emit_signal('loading_stage_updated', output)
|
||||
yield(get_tree(), 'idle_frame')
|
||||
var scenetree := get_tree()
|
||||
if scenetree:
|
||||
yield(scenetree, 'idle_frame')
|
||||
|
||||
func _load_snes_audio(data_and_buffer: Array):
|
||||
yield(_on_loader_loading_stage_updated('Loading sound samples and music data', 'SoundLoader'), 'completed')
|
||||
|
@ -91,8 +93,10 @@ func load_snes_rom_from_bytes(bytes: PoolByteArray) -> void:
|
|||
else:
|
||||
yield(self._load_snes_audio([self.snes_data, self.snes_buffer]), 'completed')
|
||||
yield(_on_loader_loading_stage_updated('Loading strings', 'StringLoader'), 'completed')
|
||||
StringLoader.connect('loading_stage_updated', self, '_on_loader_loading_stage_updated', ['StringLoader'])
|
||||
yield(StringLoader.load_snes_rom(self.snes_buffer, true), 'completed')
|
||||
|
||||
SpriteLoader.reset()
|
||||
|
||||
yield(_on_loader_loading_stage_updated('Loading sprites', 'SpriteLoader'), 'completed')
|
||||
SpriteLoader.load_from_structs(self.snes_data)
|
||||
yield(_on_loader_loading_stage_updated('Loading enemy battle sprites', 'SpriteLoader'), 'completed')
|
||||
|
@ -141,6 +145,7 @@ func _ready():
|
|||
STRUCT.parse_struct_definitions_from_tsv_filename('res://data/5/structs/SNES_save.tsv', structdefs)
|
||||
STRUCT.parse_struct_definitions_from_tsv_filename('res://data/5/structs/SNES.tsv', structdefs)
|
||||
var _error := psx_productcode_regex.compile('(S[A-Z]{3}_\\d{3}\\.\\d{2});(\\d)')
|
||||
StringLoader.connect('loading_stage_updated', self, '_on_loader_loading_stage_updated', ['StringLoader'])
|
||||
# Debugging breakpoint
|
||||
pass
|
||||
|
||||
|
|
|
@ -44,6 +44,11 @@ var font_atlas_image: Image
|
|||
var font_atlas_texture: ImageTexture
|
||||
var font: BitmapFont
|
||||
|
||||
var strip_images = []
|
||||
var strip_textures = []
|
||||
|
||||
var battle_backgrounds := []
|
||||
|
||||
var character_status_palette_replacements = {
|
||||
'poison': {4: '$7EDB = #DEB5FF', 8: '$4DD3 = #9C739C'}, # Also kneel
|
||||
'zombie': {3: '$7FFF = #FFFFFF', 4: '$3AF5 = #ADBD73', 8: '$3210 = #848463'}, # Also kneel in menu
|
||||
|
@ -318,7 +323,6 @@ class BattleBackground:
|
|||
var tile_atlas_images: Array
|
||||
var tile_atlas_texs: Array
|
||||
|
||||
var battle_backgrounds := []
|
||||
func load_battle_bgs(data: Dictionary, buffer: StreamPeerBuffer):
|
||||
var bg_palettes = data.battle_background_palettes
|
||||
for map in snes_battle_bgs.get_all_battle_background_tilemaps(buffer, data):
|
||||
|
@ -516,7 +520,18 @@ func load_gba_rom(filename: String):
|
|||
# character_battle_sprite_palette_stone_texture = texture_from_image(generate_palette(rom, offset_Character_Battle_Sprite_Stone_Palette))
|
||||
|
||||
|
||||
var strip_images = []
|
||||
var strip_textures = []
|
||||
# func _ready():
|
||||
#pass
|
||||
func reset() -> void:
|
||||
# Clean out old arrays in case we are loading another ROM
|
||||
worldmap_palette_imgs.clear()
|
||||
worldmap_palette_textures.clear()
|
||||
worldmap_tile_individual_imgs.clear()
|
||||
worldmap_tile_atlas_textures.clear()
|
||||
worldmap_block_tile_ids.clear()
|
||||
worldmap_block_individual_imgs.clear()
|
||||
worldmap_block_individual_textures.clear()
|
||||
worldmap_block_atlas_imgs.clear()
|
||||
worldmap_block_atlas_textures.clear()
|
||||
battle_backgrounds.clear()
|
||||
character_battle_sprite_palette_textures.clear()
|
||||
strip_images.clear()
|
||||
strip_textures.clear()
|
||||
|
|
|
@ -102,7 +102,9 @@ func load_snes_rom(buffer: StreamPeerBuffer, is_RPGe: bool = false) -> void:
|
|||
emit_signal('loading_stage_updated', 'load_snes_rom called')
|
||||
for block_name in SNES_block_addresses:
|
||||
emit_signal('loading_stage_updated', 'Loading string block "%s"'%block_name)
|
||||
yield(get_tree(), 'idle_frame')
|
||||
var scenetree := get_tree()
|
||||
if scenetree:
|
||||
yield(scenetree, 'idle_frame')
|
||||
self._load_block(block_name, buffer, is_RPGe)
|
||||
|
||||
func get_ability_name(id: int) -> String:
|
||||
|
|
|
@ -9,7 +9,8 @@ func initialize() -> void:
|
|||
# Clean up any existing
|
||||
for scn in PCs:
|
||||
remove_child(scn)
|
||||
PCs = []
|
||||
PCs.clear()
|
||||
print('Initializing battle sprites debug scene')
|
||||
|
||||
# Make new sprites
|
||||
var strips = len(SpriteLoader.strip_textures) # * 4 / 5
|
||||
|
|
|
@ -118,10 +118,12 @@ func load_file(filename: String, full_path: bool = false):
|
|||
var ext := full_filename.rsplit('/', true, 1)[1].rsplit('.', true, 1)[1].to_lower()
|
||||
match ext:
|
||||
'sfc', 'smc':
|
||||
if current_mode == SELECT_ROM:
|
||||
if true: # current_mode == SELECT_ROM:
|
||||
splash_filter.visible = true
|
||||
splash_label.text = 'Loading ROM: %s'%full_filename
|
||||
yield(get_tree(), 'idle_frame')
|
||||
var scenetree := get_tree()
|
||||
if scenetree:
|
||||
yield(scenetree, 'idle_frame')
|
||||
RomLoader.load_snes_rom(full_filename)
|
||||
'srm':
|
||||
if current_mode == SELECT_ROM:
|
||||
|
|
|
@ -75,10 +75,12 @@ func load_file(entry: String):
|
|||
var ext = entry.rsplit('.', true, 1)[1].to_lower()
|
||||
match ext:
|
||||
'sfc', 'smc':
|
||||
if current_mode == SELECT_ROM:
|
||||
if true: # current_mode == SELECT_ROM:
|
||||
splash_filter.visible = true
|
||||
splash_label.text = 'Loading ROM: %s'%filename
|
||||
yield(get_tree(), 'idle_frame')
|
||||
var scenetree := get_tree()
|
||||
if scenetree:
|
||||
yield(scenetree, 'idle_frame')
|
||||
RomLoader.load_snes_rom_from_bytes(uploaded_files[entry])
|
||||
'srm':
|
||||
if current_mode != SELECT_ROM:
|
||||
|
|
Loading…
Reference in New Issue