diff --git a/data/enemies/diskette.ani b/data/enemies/floppy.ani
similarity index 100%
rename from data/enemies/diskette.ani
rename to data/enemies/floppy.ani
diff --git a/data/enemies/diskette.png b/data/enemies/floppy.png
similarity index 100%
rename from data/enemies/diskette.png
rename to data/enemies/floppy.png
diff --git a/data/enemies/paco.ani b/data/enemies/paco.ani
index 2f2df919..53f4d16c 100644
--- a/data/enemies/paco.ani
+++ b/data/enemies/paco.ani
@@ -3,7 +3,7 @@ frameHeight=16
[animation]
name=default
-speed=8
+speed=4
loop=0
-frames=0,1,2,3
+frames=0,1,2,3,4,5,6,7
[/animation]
\ No newline at end of file
diff --git a/data/enemies/paco.png b/data/enemies/paco.png
index f4478cac..2367c9e1 100644
Binary files a/data/enemies/paco.png and b/data/enemies/paco.png differ
diff --git a/data/room/02.room b/data/room/02.room
index 79d7f0b9..a7d5d115 100644
--- a/data/room/02.room
+++ b/data/room/02.room
@@ -1,6 +1,6 @@
name=ROAD TO THE JAIL
bgColor=black
-border=cyan
+border=blue
tileMapFile=02.tmx
tileSetFile=standard.png
roomUp=0
diff --git a/data/room/02.tmx b/data/room/02.tmx
index 2c0e611e..43b72c57 100644
--- a/data/room/02.tmx
+++ b/data/room/02.tmx
@@ -3,22 +3,22 @@
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,43,43,43,43,
-43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,25,25,
-43,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135,0,0,0,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,43,43,43,43,43,
+43,166,166,167,168,166,185,167,166,185,166,166,168,166,166,167,166,166,185,166,166,166,185,167,166,166,166,185,25,25,25,25,
+43,43,211,212,212,211,181,211,213,211,181,211,212,213,211,181,211,211,211,211,212,213,211,181,211,213,181,211,135,0,0,0,
43,43,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135,0,0,0,
43,43,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,25,25,
34,34,304,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,25,
34,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,303,25,25,
34,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,
-34,34,0,413,413,413,413,0,0,0,0,413,413,413,413,413,0,0,0,0,413,413,413,413,413,413,413,0,0,0,25,25,
+34,34,0,413,413,413,413,0,0,0,0,413,304,413,413,413,0,0,0,0,413,304,413,413,413,413,304,0,0,0,25,25,
34,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,
-34,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,387,25,25,
+34,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,411,25,25,
34,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,
-34,34,389,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,387,25,25,
+34,34,413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,411,25,25,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,513,189,190,537,0,0,0,0,
-34,34,189,190,189,190,189,190,189,190,189,190,189,190,189,190,189,190,189,191,0,0,189,190,189,190,189,190,189,190,25,25
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,524,189,191,548,0,0,0,0,
+34,34,189,190,189,190,189,190,189,190,189,190,189,190,189,190,189,190,189,191,0,0,189,190,189,190,189,190,189,191,25,25
diff --git a/data/room/05.room b/data/room/05.room
index e3efaf93..d0235465 100644
--- a/data/room/05.room
+++ b/data/room/05.room
@@ -11,8 +11,8 @@ itemColor1=bright_green
itemColor2=green
[enemy]
-tileSetFile=diskette.png
-animation=diskette.ani
+tileSetFile=floppy.png
+animation=floppy.ani
width=16
height=16
x=15
diff --git a/data/room/05.tmx b/data/room/05.tmx
index 968e4e20..ecadfb28 100644
--- a/data/room/05.tmx
+++ b/data/room/05.tmx
@@ -10,7 +10,7 @@
134,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,117,
25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,117,
25,0,0,0,0,0,0,0,0,0,0,417,417,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,
-25,0,0,556,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,25,0,0,0,0,0,0,0,0,0,387,25,
+25,0,0,556,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,25,0,0,0,0,0,0,0,0,0,0,25,
25,25,25,25,25,25,0,0,0,417,417,0,0,0,0,0,0,0,305,31,0,0,0,0,0,0,0,0,0,0,0,305,
0,0,0,0,305,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,417,417,0,0,0,0,0,0,
0,0,0,0,0,0,0,417,417,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,
diff --git a/data/room/12.room b/data/room/12.room
index c9266a22..1c08be67 100644
--- a/data/room/12.room
+++ b/data/room/12.room
@@ -11,8 +11,8 @@ itemColor1=red
itemColor2=magenta
[enemy]
-tileSetFile=diskette.png
-animation=diskette.ani
+tileSetFile=floppy.png
+animation=floppy.ani
width=16
height=16
x=9
@@ -27,8 +27,8 @@ color=green
[/enemy]
[enemy]
-tileSetFile=diskette.png
-animation=diskette.ani
+tileSetFile=floppy.png
+animation=floppy.ani
width=16
height=16
x=1
diff --git a/data/room/17.room b/data/room/17.room
index da340417..7140717d 100644
--- a/data/room/17.room
+++ b/data/room/17.room
@@ -11,8 +11,8 @@ itemColor1=yellow
itemColor2=red
[enemy]
-tileSetFile=diskette.png
-animation=diskette.ani
+tileSetFile=floppy.png
+animation=floppy.ani
width=16
height=16
x=5
@@ -27,8 +27,8 @@ color=green
[/enemy]
[enemy]
-tileSetFile=diskette.png
-animation=diskette.ani
+tileSetFile=floppy.png
+animation=floppy.ani
width=16
height=16
x=12
diff --git a/data/room/18.tmx b/data/room/18.tmx
index a9f2c1c1..0a5892d5 100644
--- a/data/room/18.tmx
+++ b/data/room/18.tmx
@@ -3,16 +3,16 @@
-5,5,5,5,5,5,5,5,5,5,5,0,0,0,506,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0,0,0,0,0,506,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,
+5,5,5,5,5,5,5,5,0,0,0,0,0,0,506,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,0,0,0,0,0,0,506,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,
5,5,5,5,5,5,5,0,0,0,0,0,506,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,5,5,5,5,5,5,0,0,0,0,506,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,5,5,5,5,5,5,0,0,0,506,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
-0,0,0,0,0,0,134,0,0,506,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
-0,0,0,0,0,0,134,0,415,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
+5,5,5,5,173,0,134,0,0,506,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
+557,557,557,557,557,557,134,0,415,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,5,5,5,5,5,5,415,415,415,530,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
-5,5,5,5,5,5,5,0,0,0,0,530,0,0,0,0,0,0,449,449,449,449,449,449,449,449,449,449,449,449,449,5,
-5,5,5,5,5,5,5,0,0,0,0,0,530,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
+5,5,5,5,5,5,0,0,0,0,0,530,0,0,0,0,0,0,449,449,449,449,449,449,449,449,449,449,449,449,449,5,
+5,5,5,5,5,0,0,0,0,0,0,0,530,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
0,0,0,0,0,0,0,0,0,0,0,0,0,530,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,517,367,5,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,367,367,367,367,429,429,0,429,429,367,367,367,367,367,367,367,367,5,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,343,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,
diff --git a/data/room/19.tmx b/data/room/19.tmx
index 7dee2aff..cfd8b4c7 100644
--- a/data/room/19.tmx
+++ b/data/room/19.tmx
@@ -4,15 +4,15 @@
349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,38,38,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,241,241,0,0,0,0,0,0,241,241,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,38,38,241,241,0,0,0,0,0,0,0,0,0,0,0,0,241,241,38,38,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,188,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,188,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,188,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,188,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,38,38,38,0,0,0,0,0,0,0,0,0,0,0,0,0,188,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,188,
+0,0,0,0,0,0,0,0,0,0,0,241,241,0,0,0,0,0,0,241,241,0,0,0,0,0,0,0,0,0,0,188,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,188,
+0,0,0,0,0,0,38,38,241,241,0,0,0,0,0,0,0,0,0,0,0,0,241,241,38,38,0,0,0,0,0,188,
0,0,0,0,0,38,38,0,0,0,0,241,241,0,0,0,0,0,0,241,241,0,0,0,0,38,38,0,0,0,0,0,
0,0,0,0,38,38,0,0,0,0,0,0,0,0,241,241,241,241,0,0,0,0,0,0,0,0,38,38,0,0,0,0,
0,0,0,0,38,0,0,0,0,0,0,241,241,0,0,0,0,0,0,241,241,0,0,0,0,0,0,38,0,0,0,0,
diff --git a/data/room/27.room b/data/room/27.room
index 72a3fbf5..6566b5e7 100644
--- a/data/room/27.room
+++ b/data/room/27.room
@@ -9,8 +9,8 @@ roomLeft=26.room
roomRight=0
#[enemy]
-#tileSetFile=diskette.png
-#animation=diskette.ani
+#tileSetFile=floppy.png
+#animation=floppy.ani
#width=16
#height=16
#x=2
diff --git a/data/room/28.tmx b/data/room/28.tmx
index bdac0c33..15493ffd 100644
--- a/data/room/28.tmx
+++ b/data/room/28.tmx
@@ -3,17 +3,17 @@
-90,89,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,90,41,235,235,0,0,235,235,41,89,90,89,
-89,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,90,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,235,235,0,0,0,0,0,0,
+90,89,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,94,41,235,235,0,0,235,235,41,89,90,89,
+89,94,215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,214,215,0,0,0,0,0,0,0,0,214,89,90,
+214,215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,214,89,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,235,235,0,0,0,0,0,214,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,235,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,235,0,0,0,0,235,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
89,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,235,0,0,0,0,0,0,0,0,0,
-94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,235,0,0,0,0,0,
+94,215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,235,0,0,0,0,0,
89,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,415,415,415,415,415,415,
+94,215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,415,415,415,415,415,415,
89,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,235,0,0,0,0,0,0,0,0,0,0,
90,89,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
89,90,89,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
diff --git a/data/room/34.room b/data/room/34.room
index ebf99b37..8b937c6f 100644
--- a/data/room/34.room
+++ b/data/room/34.room
@@ -11,8 +11,8 @@ itemColor1=green
itemColor2=red
[enemy]
-tileSetFile=diskette.png
-animation=diskette.ani
+tileSetFile=floppy.png
+animation=floppy.ani
width=16
height=16
x=20
diff --git a/data/room/36.room b/data/room/36.room
index 194400e8..581c14f8 100644
--- a/data/room/36.room
+++ b/data/room/36.room
@@ -1,4 +1,4 @@
-name=STATIC
+name=BE CAREFUL WITH THE FUSE
bgColor=black
border=bright_cyan
tileMapFile=36.tmx
diff --git a/data/room/42.room b/data/room/42.room
index f8dee012..62d0d44d 100644
--- a/data/room/42.room
+++ b/data/room/42.room
@@ -1,6 +1,6 @@
name=P.A.C.O. ON THE GO
bgColor=black
-border=black
+border=blue
tileMapFile=42.tmx
tileSetFile=standard.png
roomUp=0
@@ -23,7 +23,7 @@ x1=10
y1=2
x2=10
y2=11
-color=green
+color=magenta
[/enemy]
[enemy]
diff --git a/data/room/42.tmx b/data/room/42.tmx
index 14b46e12..c0afef9b 100644
--- a/data/room/42.tmx
+++ b/data/room/42.tmx
@@ -11,8 +11,8 @@
36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,415,421,62,
36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,421,0,0,0,0,0,0,0,0,
36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,415,415,421,415,0,0,0,0,0,0,0,0,0,0,0,
-36,0,0,0,0,0,0,0,305,0,0,0,0,305,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-36,0,0,0,305,0,0,0,0,0,0,0,0,0,0,0,0,421,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+36,0,0,0,0,0,0,0,306,0,0,0,0,306,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+36,0,0,0,306,0,0,0,0,0,0,0,0,0,0,0,0,421,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
36,0,415,421,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,415,415,0,0,421,415,0,0,0,0,0,0,
36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
diff --git a/data/room/50.room b/data/room/50.room
index ef91863d..5ecf1d05 100644
--- a/data/room/50.room
+++ b/data/room/50.room
@@ -9,8 +9,8 @@ roomLeft=0
roomRight=49.room
[enemy]
-tileSetFile=diskette.png
-animation=diskette.ani
+tileSetFile=floppy.png
+animation=floppy.ani
width=16
height=16
x=7
@@ -25,8 +25,8 @@ color=magenta
[/enemy]
[enemy]
-tileSetFile=diskette.png
-animation=diskette.ani
+tileSetFile=floppy.png
+animation=floppy.ani
width=16
height=16
x=20
diff --git a/data/room/50.tmx b/data/room/50.tmx
index 0aa39177..bc06e84e 100644
--- a/data/room/50.tmx
+++ b/data/room/50.tmx
@@ -4,7 +4,7 @@
42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,
-42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,
+42,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,42,
42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,
42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,
42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
diff --git a/data/room/53.room b/data/room/53.room
index 904a25d3..317ee141 100644
--- a/data/room/53.room
+++ b/data/room/53.room
@@ -1,4 +1,4 @@
-name=P.A.C.O WORKSHOP
+name=P.A.C.O. WORKSHOP
bgColor=black
border=yellow
tileMapFile=53.tmx
diff --git a/data/tilesets/standard.png b/data/tilesets/standard.png
index 6be2abc2..ef7fa448 100644
Binary files a/data/tilesets/standard.png and b/data/tilesets/standard.png differ
diff --git a/data/tilesets/standard_zxarne.png b/data/tilesets/standard_zxarne.png
index a09f9c71..7902e0ee 100644
Binary files a/data/tilesets/standard_zxarne.png and b/data/tilesets/standard_zxarne.png differ
diff --git a/data/title/loading_screen_bn.png b/data/title/loading_screen_bn.png
index 0f0b2830..b15ecbe5 100644
Binary files a/data/title/loading_screen_bn.png and b/data/title/loading_screen_bn.png differ
diff --git a/data/title/loading_screen_bn_zxarne.png b/data/title/loading_screen_bn_zxarne.png
index fdf2a044..72d057dc 100644
Binary files a/data/title/loading_screen_bn_zxarne.png and b/data/title/loading_screen_bn_zxarne.png differ
diff --git a/data/title/loading_screen_color.png b/data/title/loading_screen_color.png
index aa7e97aa..19b371a0 100644
Binary files a/data/title/loading_screen_color.png and b/data/title/loading_screen_color.png differ
diff --git a/data/title/loading_screen_color_zxarne.png b/data/title/loading_screen_color_zxarne.png
index 6833efb7..71c946e7 100644
Binary files a/data/title/loading_screen_color_zxarne.png and b/data/title/loading_screen_color_zxarne.png differ
diff --git a/source/common/jail_audio.cpp b/source/common/jail_audio.cpp
index 7ce9aec7..42907fef 100644
--- a/source/common/jail_audio.cpp
+++ b/source/common/jail_audio.cpp
@@ -1,3 +1,4 @@
+#ifndef JA_USESDLMIXER
#include "jail_audio.h"
#include "stb_vorbis.c"
#include
@@ -11,7 +12,7 @@ struct JA_Sound_t {
};
struct JA_Channel_t {
- JA_Sound sound;
+ JA_Sound_t *sound;
int pos {0};
int times {0};
JA_Channel_state state { JA_CHANNEL_FREE };
@@ -25,7 +26,7 @@ struct JA_Music_t {
JA_Music_state state {JA_MUSIC_INVALID};
};
-JA_Music current_music{NULL};
+JA_Music_t *current_music{NULL};
JA_Channel_t channels[JA_MAX_SIMULTANEOUS_CHANNELS];
int JA_freq {48000};
@@ -86,7 +87,7 @@ void JA_Quit() {
sdlAudioDevice = 0;
}
-JA_Music JA_LoadMusic(const char* filename) {
+JA_Music_t *JA_LoadMusic(const char* filename) {
int chan, samplerate;
// [RZC 28/08/22] Carreguem primer el arxiu en memòria i després el descomprimim. Es algo més rapid.
@@ -98,7 +99,7 @@ JA_Music JA_LoadMusic(const char* filename) {
if (fread(buffer, fsize, 1, f)!=1) return NULL;
fclose(f);
- JA_Music music = new JA_Music_t();
+ JA_Music_t *music = new JA_Music_t();
music->samples = stb_vorbis_decode_memory(buffer, fsize, &chan, &samplerate, &music->output);
free(buffer);
@@ -121,7 +122,7 @@ JA_Music JA_LoadMusic(const char* filename) {
return music;
}
-void JA_PlayMusic(JA_Music music, const int loop) {
+void JA_PlayMusic(JA_Music_t *music, const int loop) {
if (current_music != NULL) {
current_music->pos = 0;
current_music->state = JA_MUSIC_STOPPED;
@@ -153,21 +154,21 @@ JA_Music_state JA_GetMusicState() {
return current_music->state;
}
-void JA_DeleteMusic(JA_Music music) {
+void JA_DeleteMusic(JA_Music_t *music) {
if (current_music == music) current_music = NULL;
free(music->output);
delete music;
}
-JA_Sound JA_NewSound(Uint8* buffer, Uint32 length) {
- JA_Sound sound = new JA_Sound_t();
+JA_Sound_t *JA_NewSound(Uint8* buffer, Uint32 length) {
+ JA_Sound_t *sound = new JA_Sound_t();
sound->buffer = buffer;
sound->length = length;
return sound;
}
-JA_Sound JA_LoadSound(const char* filename) {
- JA_Sound sound = new JA_Sound_t();
+JA_Sound_t *JA_LoadSound(const char* filename) {
+ JA_Sound_t *sound = new JA_Sound_t();
SDL_AudioSpec wavSpec;
SDL_LoadWAV(filename, &wavSpec, &sound->buffer, &sound->length);
@@ -184,7 +185,7 @@ JA_Sound JA_LoadSound(const char* filename) {
return sound;
}
-int JA_PlaySound(JA_Sound sound, const int loop) {
+int JA_PlaySound(JA_Sound_t *sound, const int loop) {
int channel = 0;
while (channel < JA_MAX_SIMULTANEOUS_CHANNELS && channels[channel].state != JA_CHANNEL_FREE) { channel++; }
if (channel == JA_MAX_SIMULTANEOUS_CHANNELS) channel = 0;
@@ -196,7 +197,7 @@ int JA_PlaySound(JA_Sound sound, const int loop) {
return channel;
}
-void JA_DeleteSound(JA_Sound sound) {
+void JA_DeleteSound(JA_Sound_t *sound) {
for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) {
if (channels[i].sound == sound) JA_StopChannel(i);
}
@@ -246,4 +247,5 @@ JA_Channel_state JA_GetChannelState(const int channel) {
int JA_SetVolume(int volume) {
JA_volume = volume > 128 ? 128 : volume < 0 ? 0 : volume;
return JA_volume;
-}
\ No newline at end of file
+}
+#endif
\ No newline at end of file
diff --git a/source/common/jail_audio.h b/source/common/jail_audio.h
index 7d034004..4c4d7f9f 100644
--- a/source/common/jail_audio.h
+++ b/source/common/jail_audio.h
@@ -4,27 +4,27 @@
enum JA_Channel_state { JA_CHANNEL_INVALID, JA_CHANNEL_FREE, JA_CHANNEL_PLAYING, JA_CHANNEL_PAUSED };
enum JA_Music_state { JA_MUSIC_INVALID, JA_MUSIC_PLAYING, JA_MUSIC_PAUSED, JA_MUSIC_STOPPED };
-typedef struct JA_Sound_t *JA_Sound;
-typedef struct JA_Music_t *JA_Music;
+struct JA_Sound_t;
+struct JA_Music_t;
void JA_Init(const int freq, const SDL_AudioFormat format, const int channels);
void JA_Quit();
-JA_Music JA_LoadMusic(const char* filename);
-void JA_PlayMusic(JA_Music music, const int loop = -1);
+JA_Music_t *JA_LoadMusic(const char* filename);
+void JA_PlayMusic(JA_Music_t *music, const int loop = -1);
void JA_PauseMusic();
void JA_ResumeMusic();
void JA_StopMusic();
JA_Music_state JA_GetMusicState();
-void JA_DeleteMusic(JA_Music music);
+void JA_DeleteMusic(JA_Music_t *music);
-JA_Sound JA_NewSound(Uint8* buffer, Uint32 length);
-JA_Sound JA_LoadSound(const char* filename);
-int JA_PlaySound(JA_Sound sound, const int loop = 0);
+JA_Sound_t *JA_NewSound(Uint8* buffer, Uint32 length);
+JA_Sound_t *JA_LoadSound(const char* filename);
+int JA_PlaySound(JA_Sound_t *sound, const int loop = 0);
void JA_PauseChannel(const int channel);
void JA_ResumeChannel(const int channel);
void JA_StopChannel(const int channel);
JA_Channel_state JA_GetChannelState(const int channel);
-void JA_DeleteSound(JA_Sound sound);
+void JA_DeleteSound(JA_Sound_t *sound);
int JA_SetVolume(int volume);
\ No newline at end of file
diff --git a/source/common/jail_audio_sdlmixer.cpp b/source/common/jail_audio_sdlmixer.cpp
new file mode 100644
index 00000000..ddb6b61a
--- /dev/null
+++ b/source/common/jail_audio_sdlmixer.cpp
@@ -0,0 +1,101 @@
+#ifdef JA_USESDLMIXER
+#include "jail_audio.h"
+#include
+#include
+#include
+
+struct JA_Sound_t {}; // Dummy structs
+struct JA_Music_t {};
+
+int JA_freq {48000};
+SDL_AudioFormat JA_format {AUDIO_S16};
+Uint8 JA_channels {2};
+
+void JA_Init(const int freq, const SDL_AudioFormat format, const int channels) {
+ JA_freq = freq;
+ JA_format = format;
+ JA_channels = channels;
+ Mix_OpenAudio(JA_freq, JA_format, JA_channels, 1024);
+}
+
+void JA_Quit() {
+ Mix_CloseAudio();
+}
+
+JA_Music_t *JA_LoadMusic(const char* filename) {
+ return (JA_Music_t*)Mix_LoadMUS(filename);
+}
+
+void JA_PlayMusic(JA_Music_t *music, const int loop) {
+ Mix_PlayMusic((Mix_Music*)music, loop);
+}
+
+void JA_PauseMusic() {
+ Mix_PauseMusic();
+}
+
+void JA_ResumeMusic() {
+ Mix_ResumeMusic();
+}
+
+void JA_StopMusic() {
+ Mix_HaltMusic();
+}
+
+JA_Music_state JA_GetMusicState() {
+ if (Mix_PausedMusic()) {
+ return JA_MUSIC_PAUSED;
+ } else if (Mix_PlayingMusic()) {
+ return JA_MUSIC_PLAYING;
+ } else {
+ return JA_MUSIC_STOPPED;
+ }
+}
+
+void JA_DeleteMusic(JA_Music_t *music) {
+ Mix_FreeMusic((Mix_Music*)music);
+}
+
+JA_Sound_t *JA_NewSound(Uint8* buffer, Uint32 length) {
+ return NULL;
+}
+
+JA_Sound_t *JA_LoadSound(const char* filename) {
+ JA_Sound_t *sound = (JA_Sound_t*)Mix_LoadWAV(filename);
+ return sound;
+}
+
+int JA_PlaySound(JA_Sound_t *sound, const int loop) {
+ return Mix_PlayChannel(-1, (Mix_Chunk*)sound, loop);
+}
+
+void JA_DeleteSound(JA_Sound_t *sound) {
+ Mix_FreeChunk((Mix_Chunk*)sound);
+}
+
+void JA_PauseChannel(const int channel) {
+ Mix_Pause(channel);
+}
+
+void JA_ResumeChannel(const int channel) {
+ Mix_Resume(channel);
+}
+
+void JA_StopChannel(const int channel) {
+ Mix_HaltChannel(channel);
+}
+
+JA_Channel_state JA_GetChannelState(const int channel) {
+ if (Mix_Paused(channel)) {
+ return JA_CHANNEL_PAUSED;
+ } else if (Mix_Playing(channel)) {
+ return JA_CHANNEL_PLAYING;
+ } else {
+ return JA_CHANNEL_FREE;
+ }
+}
+
+int JA_SetVolume(int volume) {
+ return Mix_Volume(-1, volume);
+}
+#endif
diff --git a/source/common/menu.h b/source/common/menu.h
index f2a93f32..6164b7c5 100644
--- a/source/common/menu.h
+++ b/source/common/menu.h
@@ -91,9 +91,9 @@ private:
bool isCenteredOnY; // Variable para saber si el menu debe estar centrado respecto a un punto en el eje Y
bool areElementsCenteredOnX; // Variable para saber si los elementos van centrados en el eje X
int widestItem; // Anchura del elemento más ancho
- JA_Sound soundAccept; // Sonido al aceptar o elegir una opción del menu
- JA_Sound soundCancel; // Sonido al cancelar el menu
- JA_Sound soundMove; // Sonido al mover el selector
+ JA_Sound_t* soundAccept; // Sonido al aceptar o elegir una opción del menu
+ JA_Sound_t* soundCancel; // Sonido al cancelar el menu
+ JA_Sound_t* soundMove; // Sonido al mover el selector
color_t colorGreyed; // Color para los elementos agrisados
rectangle_t rectBG; // Rectangulo de fondo del menu
std::vector item; // Estructura para cada elemento del menu
diff --git a/source/common/notify.h b/source/common/notify.h
index 40e50267..746055d0 100644
--- a/source/common/notify.h
+++ b/source/common/notify.h
@@ -57,7 +57,7 @@ private:
color_t bgColor; // Color de fondo de las notificaciones
int waitTime; // Tiempo que se ve la notificación
std::vector notifications; // La lista de notificaciones activas
- JA_Sound sound; // Sonido a reproducir cuando suena la notificación
+ JA_Sound_t* sound; // Sonido a reproducir cuando suena la notificación
// Elimina las notificaciones finalizadas
void clearFinishedNotifications();
diff --git a/source/director.cpp b/source/director.cpp
index ec497dea..990ab7e5 100644
--- a/source/director.cpp
+++ b/source/director.cpp
@@ -585,7 +585,7 @@ void Director::loadResources(section_t section)
textureList.push_back("demon.png");
textureList.push_back("heavy.png");
textureList.push_back("dimallas.png");
- textureList.push_back("diskette.png");
+ textureList.push_back("floppy.png");
textureList.push_back("dong.png");
textureList.push_back("guitar.png");
textureList.push_back("jailbattle_alien.png");
@@ -648,7 +648,7 @@ void Director::loadResources(section_t section)
animationList.push_back("demon.ani");
animationList.push_back("heavy.ani");
animationList.push_back("dimallas.ani");
- animationList.push_back("diskette.ani");
+ animationList.push_back("floppy.ani");
animationList.push_back("dong.ani");
animationList.push_back("guitar.ani");
animationList.push_back("jailbattle_alien.ani");
@@ -759,7 +759,7 @@ void Director::loadResources(section_t section)
textureList.push_back("crosshair.png");
textureList.push_back("demon.png");
textureList.push_back("dimallas.png");
- textureList.push_back("diskette.png");
+ textureList.push_back("floppy.png");
textureList.push_back("dong.png");
textureList.push_back("guitar.png");
textureList.push_back("heavy.png");
@@ -840,7 +840,7 @@ void Director::loadResources(section_t section)
animationList.push_back("crosshair.ani");
animationList.push_back("demon.ani");
animationList.push_back("dimallas.ani");
- animationList.push_back("diskette.ani");
+ animationList.push_back("floppy.ani");
animationList.push_back("dong.ani");
animationList.push_back("guitar.ani");
animationList.push_back("heavy.ani");
@@ -1537,8 +1537,8 @@ bool Director::setFileList()
asset->add(prefix + "/data/enemies/demon.png", t_bitmap);
asset->add(prefix + "/data/enemies/dimallas.ani", t_data);
asset->add(prefix + "/data/enemies/dimallas.png", t_bitmap);
- asset->add(prefix + "/data/enemies/diskette.ani", t_data);
- asset->add(prefix + "/data/enemies/diskette.png", t_bitmap);
+ asset->add(prefix + "/data/enemies/floppy.ani", t_data);
+ asset->add(prefix + "/data/enemies/floppy.png", t_bitmap);
asset->add(prefix + "/data/enemies/dong.ani", t_data);
asset->add(prefix + "/data/enemies/dong.png", t_bitmap);
asset->add(prefix + "/data/enemies/guitar.ani", t_data);
diff --git a/source/director.h b/source/director.h
index c86657c7..c6003991 100644
--- a/source/director.h
+++ b/source/director.h
@@ -49,7 +49,7 @@ private:
// Variables
section_t section; // Sección y subsección actual del programa;
- JA_Music music; // Musica del titulo
+ JA_Music_t* music; // Musica del titulo
std::string executablePath; // Path del ejecutable
std::string systemFolder; // Carpeta del sistema donde guardar datos
diff --git a/source/ending.h b/source/ending.h
index d17fe87c..2ce95b71 100644
--- a/source/ending.h
+++ b/source/ending.h
@@ -70,7 +70,7 @@ private:
std::vector spritePics; // Vector con los sprites de texto con su cortinilla
int scene; // Escena actual
std::vector scenes; // Vector con los textos e imagenes de cada escena
- JA_Music music; // Musica que suena durante el final
+ JA_Music_t* music; // Musica que suena durante el final
// Actualiza el objeto
void update();
diff --git a/source/ending2.cpp b/source/ending2.cpp
index bd5b2c03..d3e6488e 100644
--- a/source/ending2.cpp
+++ b/source/ending2.cpp
@@ -288,7 +288,7 @@ void Ending2::iniSpriteList()
// Añade los valores
spriteList.push_back("bin");
- spriteList.push_back("diskette");
+ spriteList.push_back("floppy");
spriteList.push_back("bird");
spriteList.push_back("chip");
spriteList.push_back("jeannine");
diff --git a/source/ending2.h b/source/ending2.h
index 9469b669..e193e5b3 100644
--- a/source/ending2.h
+++ b/source/ending2.h
@@ -39,7 +39,7 @@ private:
section_t section; // Estado del bucle principal para saber si continua o se sale
Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa
Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa
- JA_Music music; // Musica que suena durante el final
+ JA_Music_t* music; // Musica que suena durante el final
std::vector spriteList; // Lista con todos los sprites a dibujar
std::vector colors; // Vector con los colores para el fade
int maxSpriteWidth; // El valor de ancho del sprite mas ancho
diff --git a/source/game.h b/source/game.h
index 2ed281b6..f56dec00 100644
--- a/source/game.h
+++ b/source/game.h
@@ -43,13 +43,13 @@ private:
Stats *stats; // Objeto encargado de gestionar las estadísticas
// Variables
- JA_Music music; // Musica que suena durante el juego
+ JA_Music_t* music; // Musica que suena durante el juego
Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa
Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa
section_t section; // Seccion actual dentro del juego
std::string currentRoom; // Fichero de la habitación actual
playerSpawn_t spawnPoint; // Lugar de la habitación donde aparece el jugador
- JA_Sound deathSound; // Sonido a reproducir cuando muere el jugador
+ JA_Sound_t* deathSound; // Sonido a reproducir cuando muere el jugador
board_t board; // Estructura con los datos del marcador
bool paused; // Indica si el juego se encuentra en pausa
bool blackScreen; // Indica si la pantalla está en negro. Se utiliza para la muerte del jugador
diff --git a/source/game_over.h b/source/game_over.h
index 42db3b83..33575aad 100644
--- a/source/game_over.h
+++ b/source/game_over.h
@@ -40,7 +40,7 @@ private:
int endSection; // Contador: cuando acaba la sección
int iniFade; // Contador: cuando emiepza el fade
int fadeLenght; // Contador: duración del fade
- JA_Music music; // Musica que suena durante el juego
+ JA_Music_t* music; // Musica que suena durante el juego
// Actualiza el objeto
void update();
diff --git a/source/intro.h b/source/intro.h
index 691827ea..33215a33 100644
--- a/source/intro.h
+++ b/source/intro.h
@@ -39,9 +39,9 @@ private:
Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa
int loadCounter; // Contador para controlar las cargas
bool loadingFirstPart; // Para saber en que parte de la carga se encuentra
- JA_Music loadingSound1; // Sonidos para imitar la carga tipo spectrum
- JA_Music loadingSound2; // Sonidos para imitar la carga tipo spectrum
- JA_Music loadingSound3; // Sonidos para imitar la carga tipo spectrum
+ JA_Music_t* loadingSound1; // Sonidos para imitar la carga tipo spectrum
+ JA_Music_t* loadingSound2; // Sonidos para imitar la carga tipo spectrum
+ JA_Music_t* loadingSound3; // Sonidos para imitar la carga tipo spectrum
int lineIndex[192]; // El orden en el que se procesan las 192 lineas de la pantalla de carga
SDL_Rect loadRect; // Rectangulo para dibujar la pantalla de carga
diff --git a/source/player.h b/source/player.h
index 2c635e82..e614fc18 100644
--- a/source/player.h
+++ b/source/player.h
@@ -81,8 +81,8 @@ public:
SDL_Rect lastPosition; // Contiene la ultima posición del jugador, por si hay que deshacer algun movimiento
int jumpIni; // Valor del eje Y en el que se inicia el salto
float maxVY; // Velocidad máxima que puede alcanzar al desplazarse en vertical
- std::vector jumpSound; // Vecor con todos los sonidos del salto
- std::vector fallSound; // Vecor con todos los sonidos de la caída
+ std::vector jumpSound; // Vecor con todos los sonidos del salto
+ std::vector fallSound; // Vecor con todos los sonidos de la caída
int jumpCounter; // Cuenta el tiempo de salto
int fallCounter; // Cuenta el tiempo de caida
bool alive; // Indica si el jugador esta vivo o no
diff --git a/source/room.h b/source/room.h
index 87e17f58..600b7eb0 100644
--- a/source/room.h
+++ b/source/room.h
@@ -104,7 +104,7 @@ private:
std::string tileMapFile; // Fichero con el mapa de indices de tile
std::vector tileMap; // Indice de los tiles a dibujar en la habitación
int autoSurfaceDirection; // Sentido en el que arrastran las superficies automáticas de la habitación
- JA_Sound itemSound; // Sonido producido al coger un objeto
+ JA_Sound_t* itemSound; // Sonido producido al coger un objeto
std::vector bottomSurfaces; // Lista con las superficies inferiores de la habitación
std::vector topSurfaces; // Lista con las superficies superiores de la habitación
std::vector leftSurfaces; // Lista con las superficies laterales de la parte izquierda de la habitación