- nou format per a assets.yaml
- ResourceList gestiona addAsset i removeAsset
This commit is contained in:
@@ -4,624 +4,369 @@
|
|||||||
assets:
|
assets:
|
||||||
# FONTS
|
# FONTS
|
||||||
fonts:
|
fonts:
|
||||||
- type: BITMAP
|
BITMAP:
|
||||||
path: ${PREFIX}/data/font/smb2.gif
|
- ${PREFIX}/data/font/smb2.gif
|
||||||
- type: FONT
|
- ${PREFIX}/data/font/aseprite.gif
|
||||||
path: ${PREFIX}/data/font/smb2.fnt
|
- ${PREFIX}/data/font/gauntlet.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/font/subatomic.gif
|
||||||
path: ${PREFIX}/data/font/aseprite.gif
|
- ${PREFIX}/data/font/8bithud.gif
|
||||||
- type: FONT
|
FONT:
|
||||||
path: ${PREFIX}/data/font/aseprite.fnt
|
- ${PREFIX}/data/font/smb2.fnt
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/font/aseprite.fnt
|
||||||
path: ${PREFIX}/data/font/gauntlet.gif
|
- ${PREFIX}/data/font/gauntlet.fnt
|
||||||
- type: FONT
|
- ${PREFIX}/data/font/subatomic.fnt
|
||||||
path: ${PREFIX}/data/font/gauntlet.fnt
|
- ${PREFIX}/data/font/8bithud.fnt
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/font/subatomic.gif
|
|
||||||
- type: FONT
|
|
||||||
path: ${PREFIX}/data/font/subatomic.fnt
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/font/8bithud.gif
|
|
||||||
- type: FONT
|
|
||||||
path: ${PREFIX}/data/font/8bithud.fnt
|
|
||||||
|
|
||||||
# PALETTES
|
# PALETTES
|
||||||
palettes:
|
palettes:
|
||||||
- type: PALETTE
|
PALETTE:
|
||||||
path: ${PREFIX}/data/palette/zx-spectrum.pal
|
- ${PREFIX}/data/palette/zx-spectrum.pal
|
||||||
- type: PALETTE
|
- ${PREFIX}/data/palette/zx-spectrum-adjusted.pal
|
||||||
path: ${PREFIX}/data/palette/zx-spectrum-adjusted.pal
|
- ${PREFIX}/data/palette/zxarne-5.2.pal
|
||||||
- type: PALETTE
|
- ${PREFIX}/data/palette/black-and-white.pal
|
||||||
path: ${PREFIX}/data/palette/zxarne-5.2.pal
|
- ${PREFIX}/data/palette/green-phosphor.pal
|
||||||
- type: PALETTE
|
- ${PREFIX}/data/palette/orange-screen.pal
|
||||||
path: ${PREFIX}/data/palette/black-and-white.pal
|
- ${PREFIX}/data/palette/ruzx-spectrum.pal
|
||||||
- type: PALETTE
|
- ${PREFIX}/data/palette/ruzx-spectrum-revision-2.pal
|
||||||
path: ${PREFIX}/data/palette/green-phosphor.pal
|
- ${PREFIX}/data/palette/pico-8.pal
|
||||||
- type: PALETTE
|
- ${PREFIX}/data/palette/sweetie.pal
|
||||||
path: ${PREFIX}/data/palette/orange-screen.pal
|
- ${PREFIX}/data/palette/island-joy.pal
|
||||||
- type: PALETTE
|
- ${PREFIX}/data/palette/lost-century.pal
|
||||||
path: ${PREFIX}/data/palette/ruzx-spectrum.pal
|
- ${PREFIX}/data/palette/na.pal
|
||||||
- type: PALETTE
|
- ${PREFIX}/data/palette/steam-lords.pal
|
||||||
path: ${PREFIX}/data/palette/ruzx-spectrum-revision-2.pal
|
- ${PREFIX}/data/palette/winds-seed-pc98.pal
|
||||||
- type: PALETTE
|
- ${PREFIX}/data/palette/psychic-fibre.pal
|
||||||
path: ${PREFIX}/data/palette/pico-8.pal
|
- ${PREFIX}/data/palette/shido-cyberneon.pal
|
||||||
- type: PALETTE
|
- ${PREFIX}/data/palette/darkseed.pal
|
||||||
path: ${PREFIX}/data/palette/sweetie.pal
|
- ${PREFIX}/data/palette/antiquity.pal
|
||||||
- type: PALETTE
|
- ${PREFIX}/data/palette/bubblegum.pal
|
||||||
path: ${PREFIX}/data/palette/island-joy.pal
|
- ${PREFIX}/data/palette/vanilla-milkshake.pal
|
||||||
- type: PALETTE
|
- ${PREFIX}/data/palette/aged-terracotta.pal
|
||||||
path: ${PREFIX}/data/palette/lost-century.pal
|
- ${PREFIX}/data/palette/h16da.pal
|
||||||
- type: PALETTE
|
|
||||||
path: ${PREFIX}/data/palette/na.pal
|
|
||||||
- type: PALETTE
|
|
||||||
path: ${PREFIX}/data/palette/steam-lords.pal
|
|
||||||
- type: PALETTE
|
|
||||||
path: ${PREFIX}/data/palette/winds-seed-pc98.pal
|
|
||||||
- type: PALETTE
|
|
||||||
path: ${PREFIX}/data/palette/psychic-fibre.pal
|
|
||||||
- type: PALETTE
|
|
||||||
path: ${PREFIX}/data/palette/shido-cyberneon.pal
|
|
||||||
- type: PALETTE
|
|
||||||
path: ${PREFIX}/data/palette/darkseed.pal
|
|
||||||
- type: PALETTE
|
|
||||||
path: ${PREFIX}/data/palette/antiquity.pal
|
|
||||||
- type: PALETTE
|
|
||||||
path: ${PREFIX}/data/palette/bubblegum.pal
|
|
||||||
- type: PALETTE
|
|
||||||
path: ${PREFIX}/data/palette/vanilla-milkshake.pal
|
|
||||||
- type: PALETTE
|
|
||||||
path: ${PREFIX}/data/palette/aged-terracotta.pal
|
|
||||||
- type: PALETTE
|
|
||||||
path: ${PREFIX}/data/palette/h16da.pal
|
|
||||||
|
|
||||||
# LOCALE
|
# LOCALE
|
||||||
locale:
|
locale:
|
||||||
- type: DATA
|
DATA:
|
||||||
path: ${PREFIX}/data/locale/en.yaml
|
- ${PREFIX}/data/locale/en.yaml
|
||||||
- type: DATA
|
- ${PREFIX}/data/locale/ca.yaml
|
||||||
path: ${PREFIX}/data/locale/ca.yaml
|
|
||||||
|
|
||||||
# INPUT
|
# INPUT
|
||||||
input:
|
input:
|
||||||
- type: DATA
|
DATA:
|
||||||
path: ${PREFIX}/gamecontrollerdb.txt
|
- ${PREFIX}/gamecontrollerdb.txt
|
||||||
|
|
||||||
# SYSTEM
|
# SYSTEM
|
||||||
system:
|
system:
|
||||||
- type: DATA
|
DATA:
|
||||||
path: ${SYSTEM_FOLDER}/config.yaml
|
- path: ${SYSTEM_FOLDER}/config.yaml
|
||||||
required: false
|
required: false
|
||||||
absolute: true
|
absolute: true
|
||||||
- type: DATA
|
- path: ${SYSTEM_FOLDER}/debug.yaml
|
||||||
path: ${SYSTEM_FOLDER}/debug.yaml
|
|
||||||
required: false
|
required: false
|
||||||
absolute: true
|
absolute: true
|
||||||
- type: DATA
|
- path: ${SYSTEM_FOLDER}/editor.yaml
|
||||||
path: ${SYSTEM_FOLDER}/editor.yaml
|
|
||||||
required: false
|
required: false
|
||||||
absolute: true
|
absolute: true
|
||||||
- type: DATA
|
- path: ${SYSTEM_FOLDER}/stats_buffer.csv
|
||||||
path: ${SYSTEM_FOLDER}/stats_buffer.csv
|
|
||||||
required: false
|
required: false
|
||||||
absolute: true
|
absolute: true
|
||||||
- type: DATA
|
- path: ${SYSTEM_FOLDER}/stats.csv
|
||||||
path: ${SYSTEM_FOLDER}/stats.csv
|
|
||||||
required: false
|
required: false
|
||||||
absolute: true
|
absolute: true
|
||||||
- type: DATA
|
- path: ${SYSTEM_FOLDER}/cheevos.bin
|
||||||
path: ${SYSTEM_FOLDER}/cheevos.bin
|
|
||||||
required: false
|
required: false
|
||||||
absolute: true
|
absolute: true
|
||||||
- type: DATA
|
- path: ${SYSTEM_FOLDER}/shaders/postfx.yaml
|
||||||
path: ${SYSTEM_FOLDER}/shaders/postfx.yaml
|
|
||||||
required: false
|
required: false
|
||||||
absolute: true
|
absolute: true
|
||||||
- type: DATA
|
- path: ${SYSTEM_FOLDER}/shaders/crtpi.yaml
|
||||||
path: ${SYSTEM_FOLDER}/shaders/crtpi.yaml
|
|
||||||
required: false
|
required: false
|
||||||
absolute: true
|
absolute: true
|
||||||
|
|
||||||
# CONSOLE
|
# CONSOLE
|
||||||
console:
|
console:
|
||||||
- type: DATA
|
DATA:
|
||||||
path: ${PREFIX}/data/console/commands.yaml
|
- ${PREFIX}/data/console/commands.yaml
|
||||||
|
|
||||||
# ROOMS
|
# ROOMS
|
||||||
rooms:
|
rooms:
|
||||||
- type: ROOM
|
ROOM:
|
||||||
path: ${PREFIX}/data/room/01.yaml
|
- ${PREFIX}/data/room/01.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/02.yaml
|
||||||
path: ${PREFIX}/data/room/02.yaml
|
- ${PREFIX}/data/room/03.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/04.yaml
|
||||||
path: ${PREFIX}/data/room/03.yaml
|
- ${PREFIX}/data/room/05.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/06.yaml
|
||||||
path: ${PREFIX}/data/room/04.yaml
|
- ${PREFIX}/data/room/07.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/08.yaml
|
||||||
path: ${PREFIX}/data/room/05.yaml
|
- ${PREFIX}/data/room/09.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/10.yaml
|
||||||
path: ${PREFIX}/data/room/06.yaml
|
- ${PREFIX}/data/room/11.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/12.yaml
|
||||||
path: ${PREFIX}/data/room/07.yaml
|
- ${PREFIX}/data/room/13.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/14.yaml
|
||||||
path: ${PREFIX}/data/room/08.yaml
|
- ${PREFIX}/data/room/15.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/16.yaml
|
||||||
path: ${PREFIX}/data/room/09.yaml
|
- ${PREFIX}/data/room/17.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/18.yaml
|
||||||
path: ${PREFIX}/data/room/10.yaml
|
- ${PREFIX}/data/room/19.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/20.yaml
|
||||||
path: ${PREFIX}/data/room/11.yaml
|
- ${PREFIX}/data/room/21.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/22.yaml
|
||||||
path: ${PREFIX}/data/room/12.yaml
|
- ${PREFIX}/data/room/23.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/24.yaml
|
||||||
path: ${PREFIX}/data/room/13.yaml
|
- ${PREFIX}/data/room/25.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/26.yaml
|
||||||
path: ${PREFIX}/data/room/14.yaml
|
- ${PREFIX}/data/room/27.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/28.yaml
|
||||||
path: ${PREFIX}/data/room/15.yaml
|
- ${PREFIX}/data/room/29.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/30.yaml
|
||||||
path: ${PREFIX}/data/room/16.yaml
|
- ${PREFIX}/data/room/31.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/32.yaml
|
||||||
path: ${PREFIX}/data/room/17.yaml
|
- ${PREFIX}/data/room/33.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/34.yaml
|
||||||
path: ${PREFIX}/data/room/18.yaml
|
- ${PREFIX}/data/room/35.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/36.yaml
|
||||||
path: ${PREFIX}/data/room/19.yaml
|
- ${PREFIX}/data/room/37.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/38.yaml
|
||||||
path: ${PREFIX}/data/room/20.yaml
|
- ${PREFIX}/data/room/39.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/40.yaml
|
||||||
path: ${PREFIX}/data/room/21.yaml
|
- ${PREFIX}/data/room/41.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/42.yaml
|
||||||
path: ${PREFIX}/data/room/22.yaml
|
- ${PREFIX}/data/room/43.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/44.yaml
|
||||||
path: ${PREFIX}/data/room/23.yaml
|
- ${PREFIX}/data/room/45.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/46.yaml
|
||||||
path: ${PREFIX}/data/room/24.yaml
|
- ${PREFIX}/data/room/47.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/48.yaml
|
||||||
path: ${PREFIX}/data/room/25.yaml
|
- ${PREFIX}/data/room/49.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/50.yaml
|
||||||
path: ${PREFIX}/data/room/26.yaml
|
- ${PREFIX}/data/room/51.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/52.yaml
|
||||||
path: ${PREFIX}/data/room/27.yaml
|
- ${PREFIX}/data/room/53.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/54.yaml
|
||||||
path: ${PREFIX}/data/room/28.yaml
|
- ${PREFIX}/data/room/55.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/56.yaml
|
||||||
path: ${PREFIX}/data/room/29.yaml
|
- ${PREFIX}/data/room/57.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/58.yaml
|
||||||
path: ${PREFIX}/data/room/30.yaml
|
- ${PREFIX}/data/room/59.yaml
|
||||||
- type: ROOM
|
- ${PREFIX}/data/room/60.yaml
|
||||||
path: ${PREFIX}/data/room/31.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/32.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/33.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/34.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/35.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/36.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/37.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/38.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/39.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/40.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/41.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/42.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/43.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/44.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/45.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/46.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/47.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/48.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/49.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/50.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/51.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/52.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/53.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/54.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/55.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/56.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/57.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/58.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/59.yaml
|
|
||||||
- type: ROOM
|
|
||||||
path: ${PREFIX}/data/room/60.yaml
|
|
||||||
|
|
||||||
# TILESETS
|
# TILESETS
|
||||||
tilesets:
|
tilesets:
|
||||||
- type: BITMAP
|
BITMAP:
|
||||||
path: ${PREFIX}/data/tilesets/standard.gif
|
- ${PREFIX}/data/tilesets/standard.gif
|
||||||
|
|
||||||
# ENEMIES
|
# ENEMIES
|
||||||
enemies:
|
enemies:
|
||||||
- type: ANIMATION
|
ANIMATION:
|
||||||
path: ${PREFIX}/data/enemies/abad_bell.yaml
|
- ${PREFIX}/data/enemies/abad_bell.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/abad.yaml
|
||||||
path: ${PREFIX}/data/enemies/abad_bell.gif
|
- ${PREFIX}/data/enemies/amstrad_cs.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/flying_arounder.yaml
|
||||||
path: ${PREFIX}/data/enemies/abad.yaml
|
- ${PREFIX}/data/enemies/stopped_arounder.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/walking_arounder.yaml
|
||||||
path: ${PREFIX}/data/enemies/abad.gif
|
- ${PREFIX}/data/enemies/arounders_door.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/arounders_machine.yaml
|
||||||
path: ${PREFIX}/data/enemies/amstrad_cs.yaml
|
- ${PREFIX}/data/enemies/bat.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/batman_bell.yaml
|
||||||
path: ${PREFIX}/data/enemies/amstrad_cs.gif
|
- ${PREFIX}/data/enemies/batman_fire.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/batman.yaml
|
||||||
path: ${PREFIX}/data/enemies/flying_arounder.yaml
|
- ${PREFIX}/data/enemies/bell.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/bin.yaml
|
||||||
path: ${PREFIX}/data/enemies/flying_arounder.gif
|
- ${PREFIX}/data/enemies/bird.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/breakout.yaml
|
||||||
path: ${PREFIX}/data/enemies/stopped_arounder.yaml
|
- ${PREFIX}/data/enemies/bry.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/chip.yaml
|
||||||
path: ${PREFIX}/data/enemies/stopped_arounder.gif
|
- ${PREFIX}/data/enemies/code.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/congo.yaml
|
||||||
path: ${PREFIX}/data/enemies/walking_arounder.yaml
|
- ${PREFIX}/data/enemies/crosshair.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/demon.yaml
|
||||||
path: ${PREFIX}/data/enemies/walking_arounder.gif
|
- ${PREFIX}/data/enemies/dimallas.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/floppy.yaml
|
||||||
path: ${PREFIX}/data/enemies/arounders_door.yaml
|
- ${PREFIX}/data/enemies/dong.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/guitar.yaml
|
||||||
path: ${PREFIX}/data/enemies/arounders_door.gif
|
- ${PREFIX}/data/enemies/heavy.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/jailer1.yaml
|
||||||
path: ${PREFIX}/data/enemies/arounders_machine.yaml
|
- ${PREFIX}/data/enemies/jailer2.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/jailer3.yaml
|
||||||
path: ${PREFIX}/data/enemies/arounders_machine.gif
|
- ${PREFIX}/data/enemies/jailbattle_alien.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/jailbattle_human.yaml
|
||||||
path: ${PREFIX}/data/enemies/bat.yaml
|
- ${PREFIX}/data/enemies/jeannine.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/lamp.yaml
|
||||||
path: ${PREFIX}/data/enemies/bat.gif
|
- ${PREFIX}/data/enemies/lord_abad.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/matatunos.yaml
|
||||||
path: ${PREFIX}/data/enemies/batman_bell.yaml
|
- ${PREFIX}/data/enemies/mummy.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/paco.yaml
|
||||||
path: ${PREFIX}/data/enemies/batman_bell.gif
|
- ${PREFIX}/data/enemies/elsa.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/qvoid.yaml
|
||||||
path: ${PREFIX}/data/enemies/batman_fire.yaml
|
- ${PREFIX}/data/enemies/robot.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/sam.yaml
|
||||||
path: ${PREFIX}/data/enemies/batman_fire.gif
|
- ${PREFIX}/data/enemies/shock.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/sigmasua.yaml
|
||||||
path: ${PREFIX}/data/enemies/batman.yaml
|
- ${PREFIX}/data/enemies/spark.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/special/aerojailer.yaml
|
||||||
path: ${PREFIX}/data/enemies/batman.gif
|
- ${PREFIX}/data/enemies/special/arounder.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/special/pepe_rosita_job.yaml
|
||||||
path: ${PREFIX}/data/enemies/bell.yaml
|
- ${PREFIX}/data/enemies/special/shooting_star.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/spider.yaml
|
||||||
path: ${PREFIX}/data/enemies/bell.gif
|
- ${PREFIX}/data/enemies/tree_thing.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/tuno.yaml
|
||||||
path: ${PREFIX}/data/enemies/bin.yaml
|
- ${PREFIX}/data/enemies/tv_panel.yaml
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/tv.yaml
|
||||||
path: ${PREFIX}/data/enemies/bin.gif
|
- ${PREFIX}/data/enemies/upv_student.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/wave.yaml
|
||||||
path: ${PREFIX}/data/enemies/bird.yaml
|
- ${PREFIX}/data/enemies/z80.yaml
|
||||||
- type: BITMAP
|
BITMAP:
|
||||||
path: ${PREFIX}/data/enemies/bird.gif
|
- ${PREFIX}/data/enemies/abad_bell.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/abad.gif
|
||||||
path: ${PREFIX}/data/enemies/breakout.yaml
|
- ${PREFIX}/data/enemies/amstrad_cs.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/flying_arounder.gif
|
||||||
path: ${PREFIX}/data/enemies/breakout.gif
|
- ${PREFIX}/data/enemies/stopped_arounder.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/walking_arounder.gif
|
||||||
path: ${PREFIX}/data/enemies/bry.yaml
|
- ${PREFIX}/data/enemies/arounders_door.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/arounders_machine.gif
|
||||||
path: ${PREFIX}/data/enemies/bry.gif
|
- ${PREFIX}/data/enemies/bat.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/batman_bell.gif
|
||||||
path: ${PREFIX}/data/enemies/chip.yaml
|
- ${PREFIX}/data/enemies/batman_fire.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/batman.gif
|
||||||
path: ${PREFIX}/data/enemies/chip.gif
|
- ${PREFIX}/data/enemies/bell.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/bin.gif
|
||||||
path: ${PREFIX}/data/enemies/code.yaml
|
- ${PREFIX}/data/enemies/bird.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/breakout.gif
|
||||||
path: ${PREFIX}/data/enemies/code.gif
|
- ${PREFIX}/data/enemies/bry.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/chip.gif
|
||||||
path: ${PREFIX}/data/enemies/congo.yaml
|
- ${PREFIX}/data/enemies/code.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/congo.gif
|
||||||
path: ${PREFIX}/data/enemies/congo.gif
|
- ${PREFIX}/data/enemies/crosshair.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/demon.gif
|
||||||
path: ${PREFIX}/data/enemies/crosshair.yaml
|
- ${PREFIX}/data/enemies/dimallas.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/floppy.gif
|
||||||
path: ${PREFIX}/data/enemies/crosshair.gif
|
- ${PREFIX}/data/enemies/dong.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/guitar.gif
|
||||||
path: ${PREFIX}/data/enemies/demon.yaml
|
- ${PREFIX}/data/enemies/heavy.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/jailer1.gif
|
||||||
path: ${PREFIX}/data/enemies/demon.gif
|
- ${PREFIX}/data/enemies/jailer2.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/jailer3.gif
|
||||||
path: ${PREFIX}/data/enemies/dimallas.yaml
|
- ${PREFIX}/data/enemies/jailbattle_alien.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/jailbattle_human.gif
|
||||||
path: ${PREFIX}/data/enemies/dimallas.gif
|
- ${PREFIX}/data/enemies/jeannine.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/lamp.gif
|
||||||
path: ${PREFIX}/data/enemies/floppy.yaml
|
- ${PREFIX}/data/enemies/lord_abad.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/matatunos.gif
|
||||||
path: ${PREFIX}/data/enemies/floppy.gif
|
- ${PREFIX}/data/enemies/mummy.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/paco.gif
|
||||||
path: ${PREFIX}/data/enemies/dong.yaml
|
- ${PREFIX}/data/enemies/elsa.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/qvoid.gif
|
||||||
path: ${PREFIX}/data/enemies/dong.gif
|
- ${PREFIX}/data/enemies/robot.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/sam.gif
|
||||||
path: ${PREFIX}/data/enemies/guitar.yaml
|
- ${PREFIX}/data/enemies/shock.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/sigmasua.gif
|
||||||
path: ${PREFIX}/data/enemies/guitar.gif
|
- ${PREFIX}/data/enemies/spark.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/special/aerojailer.gif
|
||||||
path: ${PREFIX}/data/enemies/heavy.yaml
|
- ${PREFIX}/data/enemies/special/arounder.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/special/pepe_rosita_job.gif
|
||||||
path: ${PREFIX}/data/enemies/heavy.gif
|
- ${PREFIX}/data/enemies/special/shooting_star.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/spider.gif
|
||||||
path: ${PREFIX}/data/enemies/jailer1.yaml
|
- ${PREFIX}/data/enemies/tree_thing.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/tuno.gif
|
||||||
path: ${PREFIX}/data/enemies/jailer1.gif
|
- ${PREFIX}/data/enemies/tv_panel.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/enemies/tv.gif
|
||||||
path: ${PREFIX}/data/enemies/jailer2.yaml
|
- ${PREFIX}/data/enemies/upv_student.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/enemies/wave.gif
|
||||||
path: ${PREFIX}/data/enemies/jailer2.gif
|
- ${PREFIX}/data/enemies/z80.gif
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/jailer3.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/jailer3.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/jailbattle_alien.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/jailbattle_alien.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/jailbattle_human.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/jailbattle_human.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/jeannine.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/jeannine.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/lamp.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/lamp.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/lord_abad.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/lord_abad.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/matatunos.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/matatunos.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/mummy.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/mummy.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/paco.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/paco.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/elsa.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/elsa.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/qvoid.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/qvoid.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/robot.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/robot.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/sam.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/sam.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/shock.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/shock.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/sigmasua.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/sigmasua.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/spark.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/spark.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/special/aerojailer.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/special/aerojailer.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/special/arounder.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/special/arounder.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/special/pepe_rosita_job.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/special/pepe_rosita_job.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/special/shooting_star.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/special/shooting_star.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/spider.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/spider.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/tree_thing.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/tree_thing.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/tuno.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/tuno.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/tv_panel.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/tv_panel.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/tv.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/tv.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/upv_student.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/upv_student.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/wave.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/wave.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/enemies/z80.yaml
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/enemies/z80.gif
|
|
||||||
|
|
||||||
# PLAYER
|
# PLAYER
|
||||||
player:
|
player:
|
||||||
- type: BITMAP
|
BITMAP:
|
||||||
path: ${PREFIX}/data/player/player.gif
|
- ${PREFIX}/data/player/player.gif
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/player/player2.gif
|
||||||
path: ${PREFIX}/data/player/player.yaml
|
- ${PREFIX}/data/player/player_game_over.gif
|
||||||
- type: BITMAP
|
ANIMATION:
|
||||||
path: ${PREFIX}/data/player/player2.gif
|
- ${PREFIX}/data/player/player.yaml
|
||||||
- type: ANIMATION
|
- ${PREFIX}/data/player/player2.yaml
|
||||||
path: ${PREFIX}/data/player/player2.yaml
|
- ${PREFIX}/data/player/player_game_over.yaml
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/player/player_game_over.gif
|
|
||||||
- type: ANIMATION
|
|
||||||
path: ${PREFIX}/data/player/player_game_over.yaml
|
|
||||||
|
|
||||||
# ITEMS
|
# ITEMS
|
||||||
items:
|
items:
|
||||||
- type: BITMAP
|
BITMAP:
|
||||||
path: ${PREFIX}/data/items/items.gif
|
- ${PREFIX}/data/items/items.gif
|
||||||
|
|
||||||
# MUSIC
|
# MUSIC
|
||||||
music:
|
music:
|
||||||
- type: MUSIC
|
MUSIC:
|
||||||
path: ${PREFIX}/data/music/title.ogg
|
- ${PREFIX}/data/music/title.ogg
|
||||||
- type: MUSIC
|
- ${PREFIX}/data/music/game.ogg
|
||||||
path: ${PREFIX}/data/music/game.ogg
|
- ${PREFIX}/data/music/loading_data1.ogg
|
||||||
- type: MUSIC
|
- ${PREFIX}/data/music/loading_data2.ogg
|
||||||
path: ${PREFIX}/data/music/loading_data1.ogg
|
- ${PREFIX}/data/music/loading_header.ogg
|
||||||
- type: MUSIC
|
- ${PREFIX}/data/music/loading_screen_color.ogg
|
||||||
path: ${PREFIX}/data/music/loading_data2.ogg
|
- ${PREFIX}/data/music/loading_screen_data.ogg
|
||||||
- type: MUSIC
|
- ${PREFIX}/data/music/ending1.ogg
|
||||||
path: ${PREFIX}/data/music/loading_header.ogg
|
- ${PREFIX}/data/music/ending2.ogg
|
||||||
- type: MUSIC
|
- ${PREFIX}/data/music/game_over.ogg
|
||||||
path: ${PREFIX}/data/music/loading_screen_color.ogg
|
|
||||||
- type: MUSIC
|
|
||||||
path: ${PREFIX}/data/music/loading_screen_data.ogg
|
|
||||||
- type: MUSIC
|
|
||||||
path: ${PREFIX}/data/music/ending1.ogg
|
|
||||||
- type: MUSIC
|
|
||||||
path: ${PREFIX}/data/music/ending2.ogg
|
|
||||||
- type: MUSIC
|
|
||||||
path: ${PREFIX}/data/music/game_over.ogg
|
|
||||||
|
|
||||||
# SOUNDS
|
# SOUNDS
|
||||||
sounds:
|
sounds:
|
||||||
- type: SOUND
|
SOUND:
|
||||||
path: ${PREFIX}/data/sound/item.wav
|
- ${PREFIX}/data/sound/item.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/death.wav
|
||||||
path: ${PREFIX}/data/sound/death.wav
|
- ${PREFIX}/data/sound/notify.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump1.wav
|
||||||
path: ${PREFIX}/data/sound/notify.wav
|
- ${PREFIX}/data/sound/jump2.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump3.wav
|
||||||
path: ${PREFIX}/data/sound/jump1.wav
|
- ${PREFIX}/data/sound/jump4.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump5.wav
|
||||||
path: ${PREFIX}/data/sound/jump2.wav
|
- ${PREFIX}/data/sound/jump6.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump7.wav
|
||||||
path: ${PREFIX}/data/sound/jump3.wav
|
- ${PREFIX}/data/sound/jump8.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump9.wav
|
||||||
path: ${PREFIX}/data/sound/jump4.wav
|
- ${PREFIX}/data/sound/jump10.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump11.wav
|
||||||
path: ${PREFIX}/data/sound/jump5.wav
|
- ${PREFIX}/data/sound/jump12.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump13.wav
|
||||||
path: ${PREFIX}/data/sound/jump6.wav
|
- ${PREFIX}/data/sound/jump14.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump15.wav
|
||||||
path: ${PREFIX}/data/sound/jump7.wav
|
- ${PREFIX}/data/sound/jump16.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump17.wav
|
||||||
path: ${PREFIX}/data/sound/jump8.wav
|
- ${PREFIX}/data/sound/jump18.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump19.wav
|
||||||
path: ${PREFIX}/data/sound/jump9.wav
|
- ${PREFIX}/data/sound/jump20.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump21.wav
|
||||||
path: ${PREFIX}/data/sound/jump10.wav
|
- ${PREFIX}/data/sound/jump22.wav
|
||||||
- type: SOUND
|
- ${PREFIX}/data/sound/jump23.wav
|
||||||
path: ${PREFIX}/data/sound/jump11.wav
|
- ${PREFIX}/data/sound/jump24.wav
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump12.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump13.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump14.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump15.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump16.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump17.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump18.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump19.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump20.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump21.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump22.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump23.wav
|
|
||||||
- type: SOUND
|
|
||||||
path: ${PREFIX}/data/sound/jump24.wav
|
|
||||||
|
|
||||||
# LOGO
|
# LOGO
|
||||||
logo:
|
logo:
|
||||||
- type: BITMAP
|
BITMAP:
|
||||||
path: ${PREFIX}/data/logo/jailgames.gif
|
- ${PREFIX}/data/logo/jailgames.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/logo/since_1998.gif
|
||||||
path: ${PREFIX}/data/logo/since_1998.gif
|
|
||||||
|
|
||||||
# LOADING
|
# LOADING
|
||||||
loading:
|
loading:
|
||||||
- type: BITMAP
|
BITMAP:
|
||||||
path: ${PREFIX}/data/loading/loading_screen_bn.gif
|
- ${PREFIX}/data/loading/loading_screen_bn.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/loading/loading_screen_color.gif
|
||||||
path: ${PREFIX}/data/loading/loading_screen_color.gif
|
- ${PREFIX}/data/loading/program_jaildoc.gif
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/loading/program_jaildoc.gif
|
|
||||||
|
|
||||||
# TITLE
|
# TITLE
|
||||||
title:
|
title:
|
||||||
- type: BITMAP
|
BITMAP:
|
||||||
path: ${PREFIX}/data/title/title_logo.gif
|
- ${PREFIX}/data/title/title_logo.gif
|
||||||
|
|
||||||
# ENDING
|
# ENDING
|
||||||
ending:
|
ending:
|
||||||
- type: BITMAP
|
BITMAP:
|
||||||
path: ${PREFIX}/data/ending/ending1.gif
|
- ${PREFIX}/data/ending/ending1.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/ending/ending2.gif
|
||||||
path: ${PREFIX}/data/ending/ending2.gif
|
- ${PREFIX}/data/ending/ending3.gif
|
||||||
- type: BITMAP
|
- ${PREFIX}/data/ending/ending4.gif
|
||||||
path: ${PREFIX}/data/ending/ending3.gif
|
- ${PREFIX}/data/ending/ending5.gif
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/ending/ending4.gif
|
|
||||||
- type: BITMAP
|
|
||||||
path: ${PREFIX}/data/ending/ending5.gif
|
|
||||||
|
|
||||||
# CREDITS
|
# CREDITS
|
||||||
credits:
|
credits:
|
||||||
- type: BITMAP
|
BITMAP:
|
||||||
path: ${PREFIX}/data/credits/shine.gif
|
- ${PREFIX}/data/credits/shine.gif
|
||||||
- type: ANIMATION
|
ANIMATION:
|
||||||
path: ${PREFIX}/data/credits/shine.yaml
|
- ${PREFIX}/data/credits/shine.yaml
|
||||||
|
|||||||
@@ -51,8 +51,97 @@ namespace Resource {
|
|||||||
addToMap(file_path, type, required, absolute);
|
addToMap(file_path, type, required, absolute);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Añade un asset al mapa y lo persiste en assets.yaml
|
||||||
|
void List::addAsset(const std::string& path, Type type) {
|
||||||
|
// Añadir al mapa en memoria
|
||||||
|
addToMap(path, type, true, true);
|
||||||
|
|
||||||
|
// Persistir en assets.yaml
|
||||||
|
if (config_file_path_.empty()) { return; }
|
||||||
|
|
||||||
|
std::ifstream in(config_file_path_);
|
||||||
|
if (!in.is_open()) { return; }
|
||||||
|
std::string content((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>());
|
||||||
|
in.close();
|
||||||
|
|
||||||
|
// Construir la ruta con variable ${PREFIX} (invertir la sustitución)
|
||||||
|
std::string var_path = path;
|
||||||
|
if (!prefix_.empty() && !executable_path_.empty()) {
|
||||||
|
std::string full_prefix = executable_path_ + prefix_;
|
||||||
|
auto pos = var_path.find(full_prefix);
|
||||||
|
if (pos != std::string::npos) {
|
||||||
|
var_path.replace(pos, full_prefix.length(), "${PREFIX}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Buscar la última entrada con el mismo prefijo de ruta e insertar después
|
||||||
|
std::string entry = " - " + var_path + "\n";
|
||||||
|
auto last_pos = content.rfind(var_path.substr(0, var_path.rfind('/')));
|
||||||
|
if (last_pos != std::string::npos) {
|
||||||
|
auto end_of_line = content.find('\n', last_pos);
|
||||||
|
if (end_of_line != std::string::npos) {
|
||||||
|
content.insert(end_of_line + 1, entry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ofstream out(config_file_path_);
|
||||||
|
if (out.is_open()) {
|
||||||
|
out << content;
|
||||||
|
out.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Quita un asset del mapa y lo elimina de assets.yaml
|
||||||
|
void List::removeAsset(const std::string& filename) {
|
||||||
|
// Obtener la ruta antes de borrar del mapa
|
||||||
|
auto it = file_list_.find(filename);
|
||||||
|
std::string file_path;
|
||||||
|
if (it != file_list_.end()) {
|
||||||
|
file_path = it->second.file;
|
||||||
|
file_list_.erase(it);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Persistir en assets.yaml
|
||||||
|
if (config_file_path_.empty() || file_path.empty()) { return; }
|
||||||
|
|
||||||
|
std::ifstream in(config_file_path_);
|
||||||
|
if (!in.is_open()) { return; }
|
||||||
|
std::string content((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>());
|
||||||
|
in.close();
|
||||||
|
|
||||||
|
// Construir la ruta con variable ${PREFIX}
|
||||||
|
std::string var_path = file_path;
|
||||||
|
if (!prefix_.empty() && !executable_path_.empty()) {
|
||||||
|
std::string full_prefix = executable_path_ + prefix_;
|
||||||
|
auto pos = var_path.find(full_prefix);
|
||||||
|
if (pos != std::string::npos) {
|
||||||
|
var_path.replace(pos, full_prefix.length(), "${PREFIX}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Buscar la línea con el path y eliminarla
|
||||||
|
auto pos = content.find(var_path);
|
||||||
|
if (pos != std::string::npos) {
|
||||||
|
auto line_start = content.rfind('\n', pos);
|
||||||
|
line_start = (line_start == std::string::npos) ? 0 : line_start;
|
||||||
|
auto line_end = content.find('\n', pos);
|
||||||
|
if (line_end != std::string::npos) {
|
||||||
|
content.erase(line_start, line_end - line_start);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ofstream out(config_file_path_);
|
||||||
|
if (out.is_open()) {
|
||||||
|
out << content;
|
||||||
|
out.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Carga recursos desde un archivo de configuración con soporte para variables
|
// Carga recursos desde un archivo de configuración con soporte para variables
|
||||||
void List::loadFromFile(const std::string& config_file_path, const std::string& prefix, const std::string& system_folder) { // NOLINT(readability-convert-member-functions-to-static)
|
void List::loadFromFile(const std::string& config_file_path, const std::string& prefix, const std::string& system_folder) { // NOLINT(readability-convert-member-functions-to-static)
|
||||||
|
config_file_path_ = config_file_path;
|
||||||
|
prefix_ = prefix;
|
||||||
|
|
||||||
std::ifstream file(config_file_path);
|
std::ifstream file(config_file_path);
|
||||||
if (!file.is_open()) {
|
if (!file.is_open()) {
|
||||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
|
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
|
||||||
@@ -89,18 +178,54 @@ namespace Resource {
|
|||||||
const std::string& category = it.key().get_value<std::string>();
|
const std::string& category = it.key().get_value<std::string>();
|
||||||
const auto& category_assets = it.value();
|
const auto& category_assets = it.value();
|
||||||
|
|
||||||
// Verificar que es un array
|
if (category_assets.is_mapping()) {
|
||||||
if (!category_assets.is_sequence()) {
|
// Nuevo formato: categoría → { TIPO: [paths...], TIPO2: [paths...] }
|
||||||
|
for (auto type_it = category_assets.begin(); type_it != category_assets.end(); ++type_it) {
|
||||||
|
try {
|
||||||
|
auto type_str = type_it.key().get_value<std::string>();
|
||||||
|
Type type = parseAssetType(type_str);
|
||||||
|
const auto& items = type_it.value();
|
||||||
|
|
||||||
|
if (!items.is_sequence()) {
|
||||||
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
|
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
|
||||||
"Warning: Category '%s' is not a sequence, skipping",
|
"Warning: Type '%s' in category '%s' is not a sequence, skipping",
|
||||||
category.c_str());
|
type_str.c_str(), category.c_str());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Procesar cada asset en la categoría
|
for (const auto& item : items) {
|
||||||
|
try {
|
||||||
|
if (item.is_string()) {
|
||||||
|
// Formato simple: solo el path
|
||||||
|
auto path = replaceVariables(item.get_value<std::string>(), prefix, system_folder);
|
||||||
|
addToMap(path, type, true, false);
|
||||||
|
} else if (item.is_mapping() && item.contains("path")) {
|
||||||
|
// Formato expandido: { path, required?, absolute? }
|
||||||
|
auto path = replaceVariables(item["path"].get_value<std::string>(), prefix, system_folder);
|
||||||
|
bool required = !item.contains("required") || item["required"].get_value<bool>();
|
||||||
|
bool absolute = item.contains("absolute") && item["absolute"].get_value<bool>();
|
||||||
|
addToMap(path, type, required, absolute);
|
||||||
|
} else {
|
||||||
|
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
|
||||||
|
"Warning: Invalid item in type '%s', category '%s', skipping",
|
||||||
|
type_str.c_str(), category.c_str());
|
||||||
|
}
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
|
||||||
|
"Error parsing asset in category '%s', type '%s': %s",
|
||||||
|
category.c_str(), type_str.c_str(), e.what());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
|
||||||
|
"Error parsing type in category '%s': %s",
|
||||||
|
category.c_str(), e.what());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (category_assets.is_sequence()) {
|
||||||
|
// Formato antiguo (retrocompatibilidad): categoría → [{type, path}, ...]
|
||||||
for (const auto& asset : category_assets) {
|
for (const auto& asset : category_assets) {
|
||||||
try {
|
try {
|
||||||
// Verificar campos obligatorios
|
|
||||||
if (!asset.contains("type") || !asset.contains("path")) {
|
if (!asset.contains("type") || !asset.contains("path")) {
|
||||||
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
|
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
|
||||||
"Warning: Asset in category '%s' missing 'type' or 'path', skipping",
|
"Warning: Asset in category '%s' missing 'type' or 'path', skipping",
|
||||||
@@ -108,15 +233,11 @@ namespace Resource {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extraer campos
|
|
||||||
auto type_str = asset["type"].get_value<std::string>();
|
auto type_str = asset["type"].get_value<std::string>();
|
||||||
auto path = asset["path"].get_value<std::string>();
|
auto path = asset["path"].get_value<std::string>();
|
||||||
|
|
||||||
// Valores por defecto
|
|
||||||
bool required = true;
|
bool required = true;
|
||||||
bool absolute = false;
|
bool absolute = false;
|
||||||
|
|
||||||
// Campos opcionales
|
|
||||||
if (asset.contains("required")) {
|
if (asset.contains("required")) {
|
||||||
required = asset["required"].get_value<bool>();
|
required = asset["required"].get_value<bool>();
|
||||||
}
|
}
|
||||||
@@ -124,22 +245,21 @@ namespace Resource {
|
|||||||
absolute = asset["absolute"].get_value<bool>();
|
absolute = asset["absolute"].get_value<bool>();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reemplazar variables en la ruta
|
|
||||||
path = replaceVariables(path, prefix, system_folder);
|
path = replaceVariables(path, prefix, system_folder);
|
||||||
|
|
||||||
// Parsear el tipo de asset
|
|
||||||
Type type = parseAssetType(type_str);
|
Type type = parseAssetType(type_str);
|
||||||
|
|
||||||
// Añadir al mapa
|
|
||||||
addToMap(path, type, required, absolute);
|
addToMap(path, type, required, absolute);
|
||||||
|
|
||||||
} catch (const std::exception& e) {
|
} catch (const std::exception& e) {
|
||||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
|
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
|
||||||
"Error parsing asset in category '%s': %s",
|
"Error parsing asset in category '%s': %s",
|
||||||
category.c_str(),
|
category.c_str(), e.what());
|
||||||
e.what());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
|
||||||
|
"Warning: Category '%s' has invalid format, skipping",
|
||||||
|
category.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "Loaded " << file_list_.size() << " assets from YAML config" << '\n';
|
std::cout << "Loaded " << file_list_.size() << " assets from YAML config" << '\n';
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ namespace Resource {
|
|||||||
|
|
||||||
// --- Métodos para la gestión de recursos ---
|
// --- Métodos para la gestión de recursos ---
|
||||||
void add(const std::string& file_path, Type type, bool required = true, bool absolute = false);
|
void add(const std::string& file_path, Type type, bool required = true, bool absolute = false);
|
||||||
|
void addAsset(const std::string& path, Type type); // Añade al mapa y persiste en assets.yaml
|
||||||
|
void removeAsset(const std::string& filename); // Quita del mapa y persiste en assets.yaml
|
||||||
void loadFromFile(const std::string& config_file_path, const std::string& prefix = "", const std::string& system_folder = ""); // Con soporte para variables
|
void loadFromFile(const std::string& config_file_path, const std::string& prefix = "", const std::string& system_folder = ""); // Con soporte para variables
|
||||||
void loadFromString(const std::string& config_content, const std::string& prefix = "", const std::string& system_folder = ""); // Para cargar desde pack (release)
|
void loadFromString(const std::string& config_content, const std::string& prefix = "", const std::string& system_folder = ""); // Para cargar desde pack (release)
|
||||||
[[nodiscard]] auto get(const std::string& filename) const -> std::string; // Obtiene la ruta completa
|
[[nodiscard]] auto get(const std::string& filename) const -> std::string; // Obtiene la ruta completa
|
||||||
@@ -56,6 +58,8 @@ namespace Resource {
|
|||||||
// --- Variables internas ---
|
// --- Variables internas ---
|
||||||
std::unordered_map<std::string, Item> file_list_; // Mapa para búsqueda O(1)
|
std::unordered_map<std::string, Item> file_list_; // Mapa para búsqueda O(1)
|
||||||
std::string executable_path_; // Ruta del ejecutable
|
std::string executable_path_; // Ruta del ejecutable
|
||||||
|
std::string config_file_path_; // Ruta del fichero assets.yaml
|
||||||
|
std::string prefix_; // Prefijo para rutas (${PREFIX})
|
||||||
|
|
||||||
// --- Métodos internos ---
|
// --- Métodos internos ---
|
||||||
[[nodiscard]] static auto getTypeName(Type type) -> std::string; // Obtiene el nombre del tipo
|
[[nodiscard]] static auto getTypeName(Type type) -> std::string; // Obtiene el nombre del tipo
|
||||||
|
|||||||
@@ -1266,74 +1266,6 @@ auto MapEditor::setRoomProperty(const std::string& property, const std::string&
|
|||||||
return "Unknown property: " + property + " (use: bgcolor, border, itemcolor1, itemcolor2, conveyor, tileset, up, down, left, right)";
|
return "Unknown property: " + property + " (use: bgcolor, border, itemcolor1, itemcolor2, conveyor, tileset, up, down, left, right)";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene la ruta de assets.yaml derivada de la ruta de una room
|
|
||||||
auto MapEditor::getAssetsYamlPath() -> std::string {
|
|
||||||
std::string ref_path = Resource::List::get()->get(room_path_);
|
|
||||||
if (ref_path.empty()) { return ""; }
|
|
||||||
// ref_path es algo como .../data/room/03.yaml → queremos .../config/assets.yaml
|
|
||||||
auto pos = ref_path.find("/data/room/");
|
|
||||||
if (pos == std::string::npos) { return ""; }
|
|
||||||
return ref_path.substr(0, pos) + "/config/assets.yaml";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Añade una room a assets.yaml (bajo la sección rooms:)
|
|
||||||
void MapEditor::addRoomToAssetsYaml(const std::string& room_name) {
|
|
||||||
std::string assets_path = getAssetsYamlPath();
|
|
||||||
if (assets_path.empty()) { return; }
|
|
||||||
|
|
||||||
// Leer el fichero
|
|
||||||
std::ifstream in(assets_path);
|
|
||||||
if (!in.is_open()) { return; }
|
|
||||||
std::string content((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>());
|
|
||||||
in.close();
|
|
||||||
|
|
||||||
// Buscar la última entrada de room y añadir después
|
|
||||||
std::string entry = " - type: ROOM\n path: ${PREFIX}/data/room/" + room_name + "\n";
|
|
||||||
auto last_room = content.rfind("path: ${PREFIX}/data/room/");
|
|
||||||
if (last_room != std::string::npos) {
|
|
||||||
auto end_of_line = content.find('\n', last_room);
|
|
||||||
if (end_of_line != std::string::npos) {
|
|
||||||
content.insert(end_of_line + 1, entry);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::ofstream out(assets_path);
|
|
||||||
if (out.is_open()) {
|
|
||||||
out << content;
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Quita una room de assets.yaml
|
|
||||||
void MapEditor::removeRoomFromAssetsYaml(const std::string& room_name) {
|
|
||||||
std::string assets_path = getAssetsYamlPath();
|
|
||||||
if (assets_path.empty()) { return; }
|
|
||||||
|
|
||||||
std::ifstream in(assets_path);
|
|
||||||
if (!in.is_open()) { return; }
|
|
||||||
std::string content((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>());
|
|
||||||
in.close();
|
|
||||||
|
|
||||||
// Buscar "path: ${PREFIX}/data/room/XX.yaml" y eliminar esa entry (2 líneas: type + path)
|
|
||||||
std::string search = "path: ${PREFIX}/data/room/" + room_name;
|
|
||||||
auto pos = content.find(search);
|
|
||||||
if (pos != std::string::npos) {
|
|
||||||
// Retroceder hasta " - type: ROOM\n"
|
|
||||||
auto line_start = content.rfind(" - type: ROOM", pos);
|
|
||||||
// Avanzar hasta el fin de la línea del path
|
|
||||||
auto line_end = content.find('\n', pos);
|
|
||||||
if (line_start != std::string::npos && line_end != std::string::npos) {
|
|
||||||
content.erase(line_start, line_end - line_start + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::ofstream out(assets_path);
|
|
||||||
if (out.is_open()) {
|
|
||||||
out << content;
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Crea una nueva habitación
|
// Crea una nueva habitación
|
||||||
auto MapEditor::createNewRoom(const std::string& direction) -> std::string {
|
auto MapEditor::createNewRoom(const std::string& direction) -> std::string {
|
||||||
if (!active_) { return "Editor not active"; }
|
if (!active_) { return "Editor not active"; }
|
||||||
@@ -1444,11 +1376,10 @@ auto MapEditor::createNewRoom(const std::string& direction) -> std::string {
|
|||||||
}
|
}
|
||||||
file.close();
|
file.close();
|
||||||
|
|
||||||
// Registrar en Resource::List, cache y assets.yaml
|
// Registrar en Resource::List (mapa + assets.yaml) y cache
|
||||||
Resource::List::get()->add(new_path, Resource::List::Type::ROOM, true, true);
|
Resource::List::get()->addAsset(new_path, Resource::List::Type::ROOM);
|
||||||
Resource::Cache::get()->getRooms().emplace_back(
|
Resource::Cache::get()->getRooms().emplace_back(
|
||||||
RoomResource{.name = new_name, .room = std::make_shared<Room::Data>(new_room)});
|
RoomResource{.name = new_name, .room = std::make_shared<Room::Data>(new_room)});
|
||||||
addRoomToAssetsYaml(new_name);
|
|
||||||
|
|
||||||
// Conectar la room actual con la nueva (recíproco: ya hecho arriba para la nueva)
|
// Conectar la room actual con la nueva (recíproco: ya hecho arriba para la nueva)
|
||||||
if (direction == "UP") {
|
if (direction == "UP") {
|
||||||
@@ -1546,8 +1477,8 @@ auto MapEditor::deleteRoom() -> std::string {
|
|||||||
std::remove_if(cache_rooms.begin(), cache_rooms.end(), [&](const RoomResource& r) { return r.name == deleted_name; }),
|
std::remove_if(cache_rooms.begin(), cache_rooms.end(), [&](const RoomResource& r) { return r.name == deleted_name; }),
|
||||||
cache_rooms.end());
|
cache_rooms.end());
|
||||||
|
|
||||||
// Quitar de assets.yaml
|
// Quitar de Resource::List (mapa + assets.yaml)
|
||||||
removeRoomFromAssetsYaml(deleted_name);
|
Resource::List::get()->removeAsset(deleted_name);
|
||||||
|
|
||||||
// Re-entrar al editor en la room destino
|
// Re-entrar al editor en la room destino
|
||||||
if (GameControl::enter_editor) { GameControl::enter_editor(); }
|
if (GameControl::enter_editor) { GameControl::enter_editor(); }
|
||||||
|
|||||||
@@ -109,9 +109,6 @@ class MapEditor {
|
|||||||
void handleMouseUp();
|
void handleMouseUp();
|
||||||
void updateDrag();
|
void updateDrag();
|
||||||
void autosave();
|
void autosave();
|
||||||
auto getAssetsYamlPath() -> std::string;
|
|
||||||
void addRoomToAssetsYaml(const std::string& room_name);
|
|
||||||
void removeRoomFromAssetsYaml(const std::string& room_name);
|
|
||||||
void updateStatusBarInfo();
|
void updateStatusBarInfo();
|
||||||
static auto snapToGrid(float value) -> float;
|
static auto snapToGrid(float value) -> float;
|
||||||
static auto pointInRect(float px, float py, const SDL_FRect& rect) -> bool;
|
static auto pointInRect(float px, float py, const SDL_FRect& rect) -> bool;
|
||||||
|
|||||||
Reference in New Issue
Block a user