diff --git a/Game/data/puzzles/copy b/Game/data/puzzles/copy new file mode 100755 index 0000000..9617703 --- /dev/null +++ b/Game/data/puzzles/copy @@ -0,0 +1,339 @@ +26 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 1 1 -1 -1 +-1 1 0 0 -1 0 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 0 -1 4 -1 -1 +-1 3 4 2 -1 -1 +-1 3 0 0 -1 -1 +-1 0 2 2 -1 -1 +-1 3 0 0 4 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 0 1 -1 -1 +-1 -1 0 1 -1 -1 +-1 -1 1 0 -1 -1 +-1 -1 1 0 -1 -1 +-1 -1 0 1 -1 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 1 -1 -1 +-1 -1 -1 2 -1 -1 +-1 -1 -1 2 -1 -1 +0 -1 1 1 -1 -1 +0 -1 0 2 -1 -1 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 1 -1 -1 -1 +-1 -1 0 -1 -1 -1 +-1 -1 0 -1 -1 -1 +-1 -1 1 -1 -1 -1 +-1 -1 0 1 1 -1 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 1 -1 -1 -1 -1 +-1 0 1 -1 -1 -1 +-1 1 0 0 -1 -1 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 4 4 -1 -1 +-1 2 2 4 2 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 1 0 -1 -1 +-1 -1 1 0 1 0 +1 +-1 -1 5 -1 -1 -1 +5 5 3 -1 -1 -1 +3 3 2 -1 -1 -1 +2 2 0 -1 -1 -1 +0 0 1 -1 -1 -1 +1 1 5 -1 -1 -1 +5 5 4 -1 -1 -1 +4 4 3 -1 -1 -1 +3 3 2 -1 -1 -1 +2 2 0 -1 -1 -1 +0 0 1 0 -1 -1 +1 1 0 0 -1 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 0 -1 -1 -1 +-1 -1 1 -1 -1 -1 +-1 -1 1 -1 -1 -1 +-1 -1 0 1 1 -1 +-1 -1 0 1 0 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 1 3 -1 -1 +-1 -1 3 1 -1 -1 +1 -1 1 3 -1 3 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 2 -1 -1 +-1 -1 -1 0 1 -1 +-1 -1 1 1 0 -1 +-1 1 2 2 0 1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 -1 1 -1 -1 +-1 -1 -1 5 0 0 +-1 -1 -1 0 1 1 +-1 -1 -1 4 5 5 +-1 -1 -1 3 4 4 +-1 -1 -1 2 3 3 +-1 -1 -1 0 2 2 +-1 -1 -1 1 0 0 +-1 -1 0 0 1 1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 5 -1 -1 +-1 -1 -1 2 -1 -1 +-1 -1 -1 5 -1 -1 +-1 -1 -1 5 -1 -1 +-1 -1 -1 2 -1 -1 +-1 -1 2 5 -1 -1 +-1 -1 2 5 2 2 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 0 1 -1 -1 -1 +-1 1 0 1 0 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 1 3 -1 -1 +-1 -1 0 0 -1 -1 +-1 -1 3 1 -1 -1 +-1 1 3 1 -1 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 3 0 -1 -1 +-1 3 3 1 -1 -1 +-1 1 1 0 -1 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 2 2 -1 -1 +-1 -1 1 0 0 -1 +-1 -1 1 2 1 0 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +0 1 2 -1 -1 -1 +3 4 5 -1 -1 -1 +5 5 3 -1 -1 -1 +3 4 2 -1 -1 -1 +3 0 0 4 1 -1 +1 4 1 1 0 -1 +2 2 0 4 0 -1 +2 2 3 4 3 -1 +0 0 1 1 0 -1 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 2 -1 -1 -1 +-1 -1 2 0 -1 -1 +-1 -1 1 1 2 -1 +-1 -1 0 1 0 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 2 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 -1 1 -1 -1 +-1 -1 -1 1 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 -1 1 -1 -1 +-1 -1 -1 0 -1 -1 +-1 2 2 0 2 2 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 3 3 -1 +-1 -1 2 0 3 -1 +-1 -1 2 1 2 -1 +-1 1 1 0 0 -1 +5 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +2 2 1 1 2 2 +0 3 4 5 3 0 +0 4 3 3 5 0 +1 4 1 1 5 1 +0 2 3 3 2 0 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +2 -1 2 -1 2 -1 +0 -1 3 -1 0 -1 +1 -1 3 -1 1 -1 +0 -1 4 -1 0 -1 +1 -1 4 -1 4 -1 +0 2 3 2 0 -1 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 2 -1 -1 -1 +-1 -1 3 -1 -1 -1 +-1 3 1 -1 -1 -1 +-1 0 0 -1 -1 -1 +-1 1 2 3 -1 -1 +-1 0 1 2 -1 -1 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 0 1 0 -1 +1 1 0 1 1 0 +0 2 2 0 2 1 diff --git a/Game/data/puzzles/puzzle.levels b/Game/data/puzzles/puzzle.levels new file mode 100755 index 0000000..c53240d --- /dev/null +++ b/Game/data/puzzles/puzzle.levels @@ -0,0 +1,352 @@ +27 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 1 1 -1 -1 +-1 1 0 0 -1 0 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 0 -1 4 -1 -1 +-1 3 4 2 -1 -1 +-1 3 0 0 -1 -1 +-1 0 2 2 -1 -1 +-1 3 0 0 4 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 0 1 -1 -1 +-1 -1 0 1 -1 -1 +-1 -1 1 0 -1 -1 +-1 -1 1 0 -1 -1 +-1 -1 0 1 -1 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 1 -1 -1 +-1 -1 -1 2 -1 -1 +-1 -1 -1 2 -1 -1 +0 -1 1 1 -1 -1 +0 -1 0 2 -1 -1 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 1 -1 -1 -1 +-1 -1 0 -1 -1 -1 +-1 -1 0 -1 -1 -1 +-1 -1 1 -1 -1 -1 +-1 -1 0 1 1 -1 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 1 -1 -1 -1 -1 +-1 0 1 -1 -1 -1 +-1 1 0 0 -1 -1 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 4 4 -1 -1 +-1 2 2 4 2 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 1 0 -1 -1 +-1 -1 1 0 1 0 +1 +-1 -1 5 -1 -1 -1 +5 5 3 -1 -1 -1 +3 3 2 -1 -1 -1 +2 2 0 -1 -1 -1 +0 0 1 -1 -1 -1 +1 1 5 -1 -1 -1 +5 5 4 -1 -1 -1 +4 4 3 -1 -1 -1 +3 3 2 -1 -1 -1 +2 2 0 -1 -1 -1 +0 0 1 0 -1 -1 +1 1 0 0 -1 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 0 -1 -1 -1 +-1 -1 1 -1 -1 -1 +-1 -1 1 -1 -1 -1 +-1 -1 0 1 1 -1 +-1 -1 0 1 0 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 1 3 -1 -1 +-1 -1 3 1 -1 -1 +1 -1 1 3 -1 3 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 2 -1 -1 +-1 -1 -1 0 1 -1 +-1 -1 1 1 0 -1 +-1 1 2 2 0 1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 -1 1 -1 -1 +-1 -1 -1 5 0 0 +-1 -1 -1 0 1 1 +-1 -1 -1 4 5 5 +-1 -1 -1 3 4 4 +-1 -1 -1 2 3 3 +-1 -1 -1 0 2 2 +-1 -1 -1 1 0 0 +-1 -1 0 0 1 1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 5 -1 -1 +-1 -1 -1 2 -1 -1 +-1 -1 -1 5 -1 -1 +-1 -1 -1 5 -1 -1 +-1 -1 -1 2 -1 -1 +-1 -1 2 5 -1 -1 +-1 -1 2 5 2 2 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 0 1 -1 -1 -1 +-1 1 0 1 0 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 1 3 -1 -1 +-1 -1 0 0 -1 -1 +-1 -1 3 1 -1 -1 +-1 1 3 1 -1 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 3 0 -1 -1 +-1 3 3 1 -1 -1 +-1 1 1 0 -1 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 2 2 -1 -1 +-1 -1 1 0 0 -1 +-1 -1 1 2 1 0 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +0 1 2 -1 -1 -1 +3 4 5 -1 -1 -1 +5 5 3 -1 -1 -1 +3 4 2 -1 -1 -1 +3 0 0 4 1 -1 +1 4 1 1 0 -1 +2 2 0 4 0 -1 +2 2 3 4 3 -1 +0 0 1 1 0 -1 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 2 -1 -1 -1 +-1 -1 2 0 -1 -1 +-1 -1 1 1 2 -1 +-1 -1 0 1 0 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 2 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 -1 1 -1 -1 +-1 -1 -1 1 -1 -1 +-1 -1 -1 0 -1 -1 +-1 -1 -1 1 -1 -1 +-1 -1 -1 0 -1 -1 +-1 2 2 0 2 2 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 3 3 -1 +-1 -1 2 0 3 -1 +-1 -1 2 1 2 -1 +-1 1 1 0 0 -1 +5 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +2 2 1 1 2 2 +0 3 4 5 3 0 +0 4 3 3 5 0 +1 4 1 1 5 1 +0 2 3 3 2 0 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +2 -1 2 -1 2 -1 +0 -1 3 -1 0 -1 +1 -1 3 -1 1 -1 +0 -1 4 -1 0 -1 +1 -1 4 -1 4 -1 +0 2 3 2 0 -1 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 2 -1 -1 -1 +-1 -1 3 -1 -1 -1 +-1 3 1 -1 -1 -1 +-1 0 0 -1 -1 -1 +-1 1 2 3 -1 -1 +-1 0 1 2 -1 -1 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 0 1 0 -1 +1 1 0 1 1 0 +0 2 2 0 2 1 +1 +0 2 4 3 1 5 +0 2 4 3 1 5 +3 5 1 2 0 4 +3 5 1 2 0 4 +2 4 0 5 3 1 +1 1 2 1 2 2 +2 4 0 5 3 1 +2 4 0 5 3 1 +3 5 1 2 0 4 +3 5 1 2 0 4 +0 2 4 3 1 5 +0 2 4 3 1 5 diff --git a/Game/data/puzzles/testPuzzles b/Game/data/puzzles/testPuzzles new file mode 100644 index 0000000..807500f --- /dev/null +++ b/Game/data/puzzles/testPuzzles @@ -0,0 +1,92 @@ +7 +1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +0 0 3 4 0 0 +0 0 3 4 0 0 +3 3 4 3 4 4 +0 0 3 4 0 0 +0 0 3 4 0 0 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 3 -1 -1 +-1 -1 -1 0 -1 -1 +-1 2 0 1 -1 -1 +-1 3 3 0 -1 -1 +-1 2 1 3 -1 -1 +-1 2 3 1 -1 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 4 0 -1 -1 +-1 -1 0 4 3 3 +-1 -1 4 0 4 4 +-1 -1 0 4 3 3 +-1 -1 0 4 3 3 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 5 -1 -1 +-1 -1 -1 5 -1 -1 +-1 -1 5 3 -1 -1 +-1 -1 4 4 -1 -1 +-1 -1 3 3 4 -1 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 2 -1 -1 -1 -1 +-1 3 -1 -1 -1 -1 +-1 2 0 2 -1 -1 +-1 2 3 3 -1 -1 +-1 0 1 0 -1 -1 +-1 0 2 2 -1 -1 +-1 3 1 1 -1 -1 +-1 3 0 0 -1 -1 +3 0 3 3 -1 -1 +3 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 1 -1 -1 -1 -1 +-1 1 4 -1 -1 -1 +-1 3 3 1 -1 -1 +-1 3 4 4 -1 -1 +2 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 +-1 -1 -1 3 -1 -1 +-1 -1 -1 1 -1 -1 +-1 -1 1 1 -1 -1 +-1 -1 4 4 -1 -1 +-1 4 0 0 -1 -1 +-1 0 3 3 -1 -1 diff --git a/Game/data/sounds/applause.ogg b/Game/data/sounds/applause.ogg new file mode 100644 index 0000000..39ba789 Binary files /dev/null and b/Game/data/sounds/applause.ogg differ diff --git a/Game/data/sounds/cameraclick.ogg b/Game/data/sounds/cameraclick.ogg new file mode 100644 index 0000000..0c1f9a9 Binary files /dev/null and b/Game/data/sounds/cameraclick.ogg differ diff --git a/Game/data/sounds/counter.ogg b/Game/data/sounds/counter.ogg new file mode 100644 index 0000000..0eb3b4d Binary files /dev/null and b/Game/data/sounds/counter.ogg differ diff --git a/Game/data/sounds/counter_final.ogg b/Game/data/sounds/counter_final.ogg new file mode 100644 index 0000000..f76ba7c Binary files /dev/null and b/Game/data/sounds/counter_final.ogg differ diff --git a/Game/data/sounds/pop.ogg b/Game/data/sounds/pop.ogg new file mode 100644 index 0000000..9e9fc51 Binary files /dev/null and b/Game/data/sounds/pop.ogg differ diff --git a/Game/data/sounds/typing.ogg b/Game/data/sounds/typing.ogg new file mode 100644 index 0000000..83d95c9 Binary files /dev/null and b/Game/data/sounds/typing.ogg differ diff --git a/Game/data/textures/BackBoard.png b/Game/data/textures/BackBoard.png new file mode 100755 index 0000000..1043816 Binary files /dev/null and b/Game/data/textures/BackBoard.png differ diff --git a/Game/data/textures/b1024.png b/Game/data/textures/b1024.png new file mode 100755 index 0000000..5707fb3 Binary files /dev/null and b/Game/data/textures/b1024.png differ diff --git a/Game/data/textures/bBack.png b/Game/data/textures/bBack.png new file mode 100755 index 0000000..9bbe840 Binary files /dev/null and b/Game/data/textures/bBack.png differ diff --git a/Game/data/textures/bBlank.png b/Game/data/textures/bBlank.png new file mode 100644 index 0000000..16803bf Binary files /dev/null and b/Game/data/textures/bBlank.png differ diff --git a/Game/data/textures/bChange.png b/Game/data/textures/bChange.png new file mode 100755 index 0000000..4db0cf1 Binary files /dev/null and b/Game/data/textures/bChange.png differ diff --git a/Game/data/textures/bConfigure.png b/Game/data/textures/bConfigure.png new file mode 100755 index 0000000..2d69ab9 Binary files /dev/null and b/Game/data/textures/bConfigure.png differ diff --git a/Game/data/textures/bConnect.png b/Game/data/textures/bConnect.png new file mode 100755 index 0000000..2e11b93 Binary files /dev/null and b/Game/data/textures/bConnect.png differ diff --git a/Game/data/textures/bEndless.png b/Game/data/textures/bEndless.png new file mode 100755 index 0000000..2bde2db Binary files /dev/null and b/Game/data/textures/bEndless.png differ diff --git a/Game/data/textures/bExit.png b/Game/data/textures/bExit.png new file mode 100755 index 0000000..d22bfe3 Binary files /dev/null and b/Game/data/textures/bExit.png differ diff --git a/Game/data/textures/bForward.png b/Game/data/textures/bForward.png new file mode 100755 index 0000000..fbfcb0b Binary files /dev/null and b/Game/data/textures/bForward.png differ diff --git a/Game/data/textures/bHighScore.png b/Game/data/textures/bHighScore.png new file mode 100755 index 0000000..028611a Binary files /dev/null and b/Game/data/textures/bHighScore.png differ diff --git a/Game/data/textures/bHost.png b/Game/data/textures/bHost.png new file mode 100755 index 0000000..e68036c Binary files /dev/null and b/Game/data/textures/bHost.png differ diff --git a/Game/data/textures/bHowToPlay.png b/Game/data/textures/bHowToPlay.png new file mode 100755 index 0000000..8c94b10 Binary files /dev/null and b/Game/data/textures/bHowToPlay.png differ diff --git a/Game/data/textures/bInternet.png b/Game/data/textures/bInternet.png new file mode 100755 index 0000000..a47b30f Binary files /dev/null and b/Game/data/textures/bInternet.png differ diff --git a/Game/data/textures/bLoad.png b/Game/data/textures/bLoad.png new file mode 100755 index 0000000..86f4bb9 Binary files /dev/null and b/Game/data/textures/bLoad.png differ diff --git a/Game/data/textures/bNetwork.png b/Game/data/textures/bNetwork.png new file mode 100755 index 0000000..8f7723f Binary files /dev/null and b/Game/data/textures/bNetwork.png differ diff --git a/Game/data/textures/bNewGame.png b/Game/data/textures/bNewGame.png new file mode 100755 index 0000000..b6e3a40 Binary files /dev/null and b/Game/data/textures/bNewGame.png differ diff --git a/Game/data/textures/bNext.png b/Game/data/textures/bNext.png new file mode 100644 index 0000000..c0172dd Binary files /dev/null and b/Game/data/textures/bNext.png differ diff --git a/Game/data/textures/bOff.png b/Game/data/textures/bOff.png new file mode 100755 index 0000000..3dc5ead Binary files /dev/null and b/Game/data/textures/bOff.png differ diff --git a/Game/data/textures/bOn.png b/Game/data/textures/bOn.png new file mode 100755 index 0000000..ee97b5b Binary files /dev/null and b/Game/data/textures/bOn.png differ diff --git a/Game/data/textures/bOnePlayer.png b/Game/data/textures/bOnePlayer.png new file mode 100755 index 0000000..6f70e4b Binary files /dev/null and b/Game/data/textures/bOnePlayer.png differ diff --git a/Game/data/textures/bOptions.png b/Game/data/textures/bOptions.png new file mode 100755 index 0000000..fb1ac4a Binary files /dev/null and b/Game/data/textures/bOptions.png differ diff --git a/Game/data/textures/bPuzzle.png b/Game/data/textures/bPuzzle.png new file mode 100755 index 0000000..0557ab9 Binary files /dev/null and b/Game/data/textures/bPuzzle.png differ diff --git a/Game/data/textures/bReplays.png b/Game/data/textures/bReplays.png new file mode 100755 index 0000000..8871646 Binary files /dev/null and b/Game/data/textures/bReplays.png differ diff --git a/Game/data/textures/bRetry.png b/Game/data/textures/bRetry.png new file mode 100644 index 0000000..a54f4e9 Binary files /dev/null and b/Game/data/textures/bRetry.png differ diff --git a/Game/data/textures/bSave.png b/Game/data/textures/bSave.png new file mode 100755 index 0000000..68ccc26 Binary files /dev/null and b/Game/data/textures/bSave.png differ diff --git a/Game/data/textures/bSelectPuzzle.png b/Game/data/textures/bSelectPuzzle.png new file mode 100755 index 0000000..bff7802 Binary files /dev/null and b/Game/data/textures/bSelectPuzzle.png differ diff --git a/Game/data/textures/bSkip.png b/Game/data/textures/bSkip.png new file mode 100644 index 0000000..02feb60 Binary files /dev/null and b/Game/data/textures/bSkip.png differ diff --git a/Game/data/textures/bStageClear.png b/Game/data/textures/bStageClear.png new file mode 100755 index 0000000..c1e7596 Binary files /dev/null and b/Game/data/textures/bStageClear.png differ diff --git a/Game/data/textures/bTheme.png b/Game/data/textures/bTheme.png new file mode 100644 index 0000000..b581ac1 Binary files /dev/null and b/Game/data/textures/bTheme.png differ diff --git a/Game/data/textures/bTimeTrial.png b/Game/data/textures/bTimeTrial.png new file mode 100755 index 0000000..474f06c Binary files /dev/null and b/Game/data/textures/bTimeTrial.png differ diff --git a/Game/data/textures/bTwoPlayers.png b/Game/data/textures/bTwoPlayers.png new file mode 100755 index 0000000..4296009 Binary files /dev/null and b/Game/data/textures/bTwoPlayers.png differ diff --git a/Game/data/textures/bVsGame.png b/Game/data/textures/bVsGame.png new file mode 100755 index 0000000..f50a4ef Binary files /dev/null and b/Game/data/textures/bVsGame.png differ diff --git a/Game/data/textures/bVsGameConfig.png b/Game/data/textures/bVsGameConfig.png new file mode 100755 index 0000000..e582b6f Binary files /dev/null and b/Game/data/textures/bVsGameConfig.png differ diff --git a/Game/data/textures/background.png b/Game/data/textures/background.png new file mode 100755 index 0000000..9d48c07 Binary files /dev/null and b/Game/data/textures/background.png differ diff --git a/Game/data/textures/ball_blue.png b/Game/data/textures/ball_blue.png new file mode 100755 index 0000000..b499d88 Binary files /dev/null and b/Game/data/textures/ball_blue.png differ diff --git a/Game/data/textures/ball_gray.png b/Game/data/textures/ball_gray.png new file mode 100755 index 0000000..b5cb6c1 Binary files /dev/null and b/Game/data/textures/ball_gray.png differ diff --git a/Game/data/textures/ball_green.png b/Game/data/textures/ball_green.png new file mode 100755 index 0000000..329873a Binary files /dev/null and b/Game/data/textures/ball_green.png differ diff --git a/Game/data/textures/ball_purple.png b/Game/data/textures/ball_purple.png new file mode 100755 index 0000000..fb20f6a Binary files /dev/null and b/Game/data/textures/ball_purple.png differ diff --git a/Game/data/textures/ball_red.png b/Game/data/textures/ball_red.png new file mode 100755 index 0000000..4451b21 Binary files /dev/null and b/Game/data/textures/ball_red.png differ diff --git a/Game/data/textures/ball_turkish.png b/Game/data/textures/ball_turkish.png new file mode 100755 index 0000000..60fb0bf Binary files /dev/null and b/Game/data/textures/ball_turkish.png differ diff --git a/Game/data/textures/ball_yellow.png b/Game/data/textures/ball_yellow.png new file mode 100755 index 0000000..7f4720e Binary files /dev/null and b/Game/data/textures/ball_yellow.png differ diff --git a/Game/data/textures/blackBackGround.png b/Game/data/textures/blackBackGround.png new file mode 100755 index 0000000..1d13c39 Binary files /dev/null and b/Game/data/textures/blackBackGround.png differ diff --git a/Game/data/textures/blackLine.png b/Game/data/textures/blackLine.png new file mode 100755 index 0000000..8fd8d31 Binary files /dev/null and b/Game/data/textures/blackLine.png differ diff --git a/Game/data/textures/boardBackBack.png b/Game/data/textures/boardBackBack.png new file mode 100755 index 0000000..df77014 Binary files /dev/null and b/Game/data/textures/boardBackBack.png differ diff --git a/Game/data/textures/bomb.png b/Game/data/textures/bomb.png new file mode 100644 index 0000000..cbd6a8e Binary files /dev/null and b/Game/data/textures/bomb.png differ diff --git a/Game/data/textures/chainFrame.png b/Game/data/textures/chainFrame.png new file mode 100755 index 0000000..52aadb6 Binary files /dev/null and b/Game/data/textures/chainFrame.png differ diff --git a/Game/data/textures/changeButtonsBack.png b/Game/data/textures/changeButtonsBack.png new file mode 100755 index 0000000..63986f3 Binary files /dev/null and b/Game/data/textures/changeButtonsBack.png differ diff --git a/Game/data/textures/changeButtonsBack1.png b/Game/data/textures/changeButtonsBack1.png new file mode 100755 index 0000000..349dc1a Binary files /dev/null and b/Game/data/textures/changeButtonsBack1.png differ diff --git a/Game/data/textures/crossover.png b/Game/data/textures/crossover.png new file mode 100755 index 0000000..14693a7 Binary files /dev/null and b/Game/data/textures/crossover.png differ diff --git a/Game/data/textures/cursor.png b/Game/data/textures/cursor.png new file mode 100644 index 0000000..2936d40 Binary files /dev/null and b/Game/data/textures/cursor.png differ diff --git a/Game/data/textures/dialogbox.png b/Game/data/textures/dialogbox.png new file mode 100755 index 0000000..a3e4402 Binary files /dev/null and b/Game/data/textures/dialogbox.png differ diff --git a/Game/data/textures/fallback.png b/Game/data/textures/fallback.png new file mode 100644 index 0000000..a4ca1d5 Binary files /dev/null and b/Game/data/textures/fallback.png differ diff --git a/Game/data/textures/fileDialogbox.png b/Game/data/textures/fileDialogbox.png new file mode 100755 index 0000000..b54d692 Binary files /dev/null and b/Game/data/textures/fileDialogbox.png differ diff --git a/Game/data/textures/iCheckBoxArea.png b/Game/data/textures/iCheckBoxArea.png new file mode 100755 index 0000000..66d0fbb Binary files /dev/null and b/Game/data/textures/iCheckBoxArea.png differ diff --git a/Game/data/textures/iDraw.png b/Game/data/textures/iDraw.png new file mode 100755 index 0000000..3881038 Binary files /dev/null and b/Game/data/textures/iDraw.png differ diff --git a/Game/data/textures/iGameOver.png b/Game/data/textures/iGameOver.png new file mode 100755 index 0000000..0dd2133 Binary files /dev/null and b/Game/data/textures/iGameOver.png differ diff --git a/Game/data/textures/iLevelCheck.png b/Game/data/textures/iLevelCheck.png new file mode 100755 index 0000000..01eb8fe Binary files /dev/null and b/Game/data/textures/iLevelCheck.png differ diff --git a/Game/data/textures/iLevelCheckBox.png b/Game/data/textures/iLevelCheckBox.png new file mode 100755 index 0000000..4f0aa0b Binary files /dev/null and b/Game/data/textures/iLevelCheckBox.png differ diff --git a/Game/data/textures/iLevelCheckBoxMarked.png b/Game/data/textures/iLevelCheckBoxMarked.png new file mode 100755 index 0000000..afa580a Binary files /dev/null and b/Game/data/textures/iLevelCheckBoxMarked.png differ diff --git a/Game/data/textures/iLoser.png b/Game/data/textures/iLoser.png new file mode 100755 index 0000000..d84fd68 Binary files /dev/null and b/Game/data/textures/iLoser.png differ diff --git a/Game/data/textures/iStageClearLimit.png b/Game/data/textures/iStageClearLimit.png new file mode 100755 index 0000000..d70b6ea Binary files /dev/null and b/Game/data/textures/iStageClearLimit.png differ diff --git a/Game/data/textures/iWinner.png b/Game/data/textures/iWinner.png new file mode 100755 index 0000000..e6b012e Binary files /dev/null and b/Game/data/textures/iWinner.png differ diff --git a/Game/data/textures/icon.png b/Game/data/textures/icon.png new file mode 100755 index 0000000..c6d5181 Binary files /dev/null and b/Game/data/textures/icon.png differ diff --git a/Game/data/textures/menu_marked.png b/Game/data/textures/menu_marked.png new file mode 100644 index 0000000..9ed8a14 Binary files /dev/null and b/Game/data/textures/menu_marked.png differ diff --git a/Game/data/textures/menu_unmarked.png b/Game/data/textures/menu_unmarked.png new file mode 100644 index 0000000..39132db Binary files /dev/null and b/Game/data/textures/menu_unmarked.png differ diff --git a/Game/data/textures/mouse.png b/Game/data/textures/mouse.png new file mode 100755 index 0000000..0ee7026 Binary files /dev/null and b/Game/data/textures/mouse.png differ diff --git a/Game/data/textures/options.png b/Game/data/textures/options.png new file mode 100755 index 0000000..ca9a70a Binary files /dev/null and b/Game/data/textures/options.png differ diff --git a/Game/data/textures/ready.png b/Game/data/textures/ready.png new file mode 100644 index 0000000..de22ef2 Binary files /dev/null and b/Game/data/textures/ready.png differ diff --git a/Game/data/textures/transCover.png b/Game/data/textures/transCover.png new file mode 100644 index 0000000..ddbad2f Binary files /dev/null and b/Game/data/textures/transCover.png differ diff --git a/Game/gfx/BackBoard.png b/Game/gfx/BackBoard.png deleted file mode 100755 index 1043816..0000000 Binary files a/Game/gfx/BackBoard.png and /dev/null differ diff --git a/Game/gfx/b1024.png b/Game/gfx/b1024.png deleted file mode 100755 index 5707fb3..0000000 Binary files a/Game/gfx/b1024.png and /dev/null differ diff --git a/Game/gfx/bBack.png b/Game/gfx/bBack.png deleted file mode 100755 index 9bbe840..0000000 Binary files a/Game/gfx/bBack.png and /dev/null differ diff --git a/Game/gfx/bBlank.png b/Game/gfx/bBlank.png deleted file mode 100644 index 16803bf..0000000 Binary files a/Game/gfx/bBlank.png and /dev/null differ diff --git a/Game/gfx/bChange.png b/Game/gfx/bChange.png deleted file mode 100755 index 4db0cf1..0000000 Binary files a/Game/gfx/bChange.png and /dev/null differ diff --git a/Game/gfx/bConfigure.png b/Game/gfx/bConfigure.png deleted file mode 100755 index 2d69ab9..0000000 Binary files a/Game/gfx/bConfigure.png and /dev/null differ diff --git a/Game/gfx/bConnect.png b/Game/gfx/bConnect.png deleted file mode 100755 index 2e11b93..0000000 Binary files a/Game/gfx/bConnect.png and /dev/null differ diff --git a/Game/gfx/bEndless.png b/Game/gfx/bEndless.png deleted file mode 100755 index 2bde2db..0000000 Binary files a/Game/gfx/bEndless.png and /dev/null differ diff --git a/Game/gfx/bExit.png b/Game/gfx/bExit.png deleted file mode 100755 index d22bfe3..0000000 Binary files a/Game/gfx/bExit.png and /dev/null differ diff --git a/Game/gfx/bForward.png b/Game/gfx/bForward.png deleted file mode 100755 index fbfcb0b..0000000 Binary files a/Game/gfx/bForward.png and /dev/null differ diff --git a/Game/gfx/bHighScore.png b/Game/gfx/bHighScore.png deleted file mode 100755 index 028611a..0000000 Binary files a/Game/gfx/bHighScore.png and /dev/null differ diff --git a/Game/gfx/bHost.png b/Game/gfx/bHost.png deleted file mode 100755 index e68036c..0000000 Binary files a/Game/gfx/bHost.png and /dev/null differ diff --git a/Game/gfx/bHowToPlay.png b/Game/gfx/bHowToPlay.png deleted file mode 100755 index 8c94b10..0000000 Binary files a/Game/gfx/bHowToPlay.png and /dev/null differ diff --git a/Game/gfx/bInternet.png b/Game/gfx/bInternet.png deleted file mode 100755 index a47b30f..0000000 Binary files a/Game/gfx/bInternet.png and /dev/null differ diff --git a/Game/gfx/bLoad.png b/Game/gfx/bLoad.png deleted file mode 100755 index 86f4bb9..0000000 Binary files a/Game/gfx/bLoad.png and /dev/null differ diff --git a/Game/gfx/bNetwork.png b/Game/gfx/bNetwork.png deleted file mode 100755 index 8f7723f..0000000 Binary files a/Game/gfx/bNetwork.png and /dev/null differ diff --git a/Game/gfx/bNewGame.png b/Game/gfx/bNewGame.png deleted file mode 100755 index b6e3a40..0000000 Binary files a/Game/gfx/bNewGame.png and /dev/null differ diff --git a/Game/gfx/bNext.png b/Game/gfx/bNext.png deleted file mode 100644 index c0172dd..0000000 Binary files a/Game/gfx/bNext.png and /dev/null differ diff --git a/Game/gfx/bOff.png b/Game/gfx/bOff.png deleted file mode 100755 index 3dc5ead..0000000 Binary files a/Game/gfx/bOff.png and /dev/null differ diff --git a/Game/gfx/bOn.png b/Game/gfx/bOn.png deleted file mode 100755 index ee97b5b..0000000 Binary files a/Game/gfx/bOn.png and /dev/null differ diff --git a/Game/gfx/bOnePlayer.png b/Game/gfx/bOnePlayer.png deleted file mode 100755 index 6f70e4b..0000000 Binary files a/Game/gfx/bOnePlayer.png and /dev/null differ diff --git a/Game/gfx/bOptions.png b/Game/gfx/bOptions.png deleted file mode 100755 index fb1ac4a..0000000 Binary files a/Game/gfx/bOptions.png and /dev/null differ diff --git a/Game/gfx/bPuzzle.png b/Game/gfx/bPuzzle.png deleted file mode 100755 index 0557ab9..0000000 Binary files a/Game/gfx/bPuzzle.png and /dev/null differ diff --git a/Game/gfx/bReplays.png b/Game/gfx/bReplays.png deleted file mode 100755 index 8871646..0000000 Binary files a/Game/gfx/bReplays.png and /dev/null differ diff --git a/Game/gfx/bRetry.png b/Game/gfx/bRetry.png deleted file mode 100644 index a54f4e9..0000000 Binary files a/Game/gfx/bRetry.png and /dev/null differ diff --git a/Game/gfx/bSave.png b/Game/gfx/bSave.png deleted file mode 100755 index 68ccc26..0000000 Binary files a/Game/gfx/bSave.png and /dev/null differ diff --git a/Game/gfx/bSelectPuzzle.png b/Game/gfx/bSelectPuzzle.png deleted file mode 100755 index bff7802..0000000 Binary files a/Game/gfx/bSelectPuzzle.png and /dev/null differ diff --git a/Game/gfx/bSkip.png b/Game/gfx/bSkip.png deleted file mode 100644 index 02feb60..0000000 Binary files a/Game/gfx/bSkip.png and /dev/null differ diff --git a/Game/gfx/bStageClear.png b/Game/gfx/bStageClear.png deleted file mode 100755 index c1e7596..0000000 Binary files a/Game/gfx/bStageClear.png and /dev/null differ diff --git a/Game/gfx/bTheme.png b/Game/gfx/bTheme.png deleted file mode 100644 index b581ac1..0000000 Binary files a/Game/gfx/bTheme.png and /dev/null differ diff --git a/Game/gfx/bTimeTrial.png b/Game/gfx/bTimeTrial.png deleted file mode 100755 index 474f06c..0000000 Binary files a/Game/gfx/bTimeTrial.png and /dev/null differ diff --git a/Game/gfx/bTwoPlayers.png b/Game/gfx/bTwoPlayers.png deleted file mode 100755 index 4296009..0000000 Binary files a/Game/gfx/bTwoPlayers.png and /dev/null differ diff --git a/Game/gfx/bVsGame.png b/Game/gfx/bVsGame.png deleted file mode 100755 index f50a4ef..0000000 Binary files a/Game/gfx/bVsGame.png and /dev/null differ diff --git a/Game/gfx/bVsGameConfig.png b/Game/gfx/bVsGameConfig.png deleted file mode 100755 index e582b6f..0000000 Binary files a/Game/gfx/bVsGameConfig.png and /dev/null differ diff --git a/Game/gfx/background.png b/Game/gfx/background.png deleted file mode 100755 index 9d48c07..0000000 Binary files a/Game/gfx/background.png and /dev/null differ diff --git a/Game/gfx/balls/ballBlue.png b/Game/gfx/balls/ballBlue.png deleted file mode 100755 index b499d88..0000000 Binary files a/Game/gfx/balls/ballBlue.png and /dev/null differ diff --git a/Game/gfx/balls/ballGray.png b/Game/gfx/balls/ballGray.png deleted file mode 100755 index b5cb6c1..0000000 Binary files a/Game/gfx/balls/ballGray.png and /dev/null differ diff --git a/Game/gfx/balls/ballGreen.png b/Game/gfx/balls/ballGreen.png deleted file mode 100755 index 329873a..0000000 Binary files a/Game/gfx/balls/ballGreen.png and /dev/null differ diff --git a/Game/gfx/balls/ballPurple.png b/Game/gfx/balls/ballPurple.png deleted file mode 100755 index fb20f6a..0000000 Binary files a/Game/gfx/balls/ballPurple.png and /dev/null differ diff --git a/Game/gfx/balls/ballRed.png b/Game/gfx/balls/ballRed.png deleted file mode 100755 index 4451b21..0000000 Binary files a/Game/gfx/balls/ballRed.png and /dev/null differ diff --git a/Game/gfx/balls/ballTurkish.png b/Game/gfx/balls/ballTurkish.png deleted file mode 100755 index 60fb0bf..0000000 Binary files a/Game/gfx/balls/ballTurkish.png and /dev/null differ diff --git a/Game/gfx/balls/ballYellow.png b/Game/gfx/balls/ballYellow.png deleted file mode 100755 index 7f4720e..0000000 Binary files a/Game/gfx/balls/ballYellow.png and /dev/null differ diff --git a/Game/gfx/blackBackGround.png b/Game/gfx/blackBackGround.png deleted file mode 100755 index 1d13c39..0000000 Binary files a/Game/gfx/blackBackGround.png and /dev/null differ diff --git a/Game/gfx/blackLine.png b/Game/gfx/blackLine.png deleted file mode 100755 index 8fd8d31..0000000 Binary files a/Game/gfx/blackLine.png and /dev/null differ diff --git a/Game/gfx/boardBackBack.png b/Game/gfx/boardBackBack.png deleted file mode 100755 index df77014..0000000 Binary files a/Game/gfx/boardBackBack.png and /dev/null differ diff --git a/Game/gfx/chainFrame.png b/Game/gfx/chainFrame.png deleted file mode 100755 index 52aadb6..0000000 Binary files a/Game/gfx/chainFrame.png and /dev/null differ diff --git a/Game/gfx/changeButtonsBack.png b/Game/gfx/changeButtonsBack.png deleted file mode 100755 index 63986f3..0000000 Binary files a/Game/gfx/changeButtonsBack.png and /dev/null differ diff --git a/Game/gfx/changeButtonsBack1.png b/Game/gfx/changeButtonsBack1.png deleted file mode 100755 index 349dc1a..0000000 Binary files a/Game/gfx/changeButtonsBack1.png and /dev/null differ diff --git a/Game/gfx/crossover.png b/Game/gfx/crossover.png deleted file mode 100755 index 14693a7..0000000 Binary files a/Game/gfx/crossover.png and /dev/null differ diff --git a/Game/gfx/dialogbox.png b/Game/gfx/dialogbox.png deleted file mode 100755 index a3e4402..0000000 Binary files a/Game/gfx/dialogbox.png and /dev/null differ diff --git a/Game/gfx/fileDialogbox.png b/Game/gfx/fileDialogbox.png deleted file mode 100755 index b54d692..0000000 Binary files a/Game/gfx/fileDialogbox.png and /dev/null differ diff --git a/Game/gfx/iCheckBoxArea.png b/Game/gfx/iCheckBoxArea.png deleted file mode 100755 index 66d0fbb..0000000 Binary files a/Game/gfx/iCheckBoxArea.png and /dev/null differ diff --git a/Game/gfx/iDraw.png b/Game/gfx/iDraw.png deleted file mode 100755 index 3881038..0000000 Binary files a/Game/gfx/iDraw.png and /dev/null differ diff --git a/Game/gfx/iGameOver.png b/Game/gfx/iGameOver.png deleted file mode 100755 index 0dd2133..0000000 Binary files a/Game/gfx/iGameOver.png and /dev/null differ diff --git a/Game/gfx/iLevelCheck.png b/Game/gfx/iLevelCheck.png deleted file mode 100755 index 01eb8fe..0000000 Binary files a/Game/gfx/iLevelCheck.png and /dev/null differ diff --git a/Game/gfx/iLevelCheckBox.png b/Game/gfx/iLevelCheckBox.png deleted file mode 100755 index 4f0aa0b..0000000 Binary files a/Game/gfx/iLevelCheckBox.png and /dev/null differ diff --git a/Game/gfx/iLevelCheckBoxMarked.png b/Game/gfx/iLevelCheckBoxMarked.png deleted file mode 100755 index afa580a..0000000 Binary files a/Game/gfx/iLevelCheckBoxMarked.png and /dev/null differ diff --git a/Game/gfx/iLoser.png b/Game/gfx/iLoser.png deleted file mode 100755 index d84fd68..0000000 Binary files a/Game/gfx/iLoser.png and /dev/null differ diff --git a/Game/gfx/iStageClearLimit.png b/Game/gfx/iStageClearLimit.png deleted file mode 100755 index d70b6ea..0000000 Binary files a/Game/gfx/iStageClearLimit.png and /dev/null differ diff --git a/Game/gfx/iWinner.png b/Game/gfx/iWinner.png deleted file mode 100755 index e6b012e..0000000 Binary files a/Game/gfx/iWinner.png and /dev/null differ diff --git a/Game/gfx/icon.png b/Game/gfx/icon.png deleted file mode 100755 index c6d5181..0000000 Binary files a/Game/gfx/icon.png and /dev/null differ diff --git a/Game/gfx/menu/marked.png b/Game/gfx/menu/marked.png deleted file mode 100644 index 9ed8a14..0000000 Binary files a/Game/gfx/menu/marked.png and /dev/null differ diff --git a/Game/gfx/menu/unmarked.png b/Game/gfx/menu/unmarked.png deleted file mode 100644 index 39132db..0000000 Binary files a/Game/gfx/menu/unmarked.png and /dev/null differ diff --git a/Game/gfx/mouse.png b/Game/gfx/mouse.png deleted file mode 100755 index 0ee7026..0000000 Binary files a/Game/gfx/mouse.png and /dev/null differ diff --git a/Game/gfx/options.png b/Game/gfx/options.png deleted file mode 100755 index ca9a70a..0000000 Binary files a/Game/gfx/options.png and /dev/null differ diff --git a/Game/gfx/transCover.png b/Game/gfx/transCover.png deleted file mode 100644 index ddbad2f..0000000 Binary files a/Game/gfx/transCover.png and /dev/null differ diff --git a/Game/puzzles/copy b/Game/puzzles/copy deleted file mode 100755 index 9617703..0000000 --- a/Game/puzzles/copy +++ /dev/null @@ -1,339 +0,0 @@ -26 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 1 1 -1 -1 --1 1 0 0 -1 0 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 0 -1 4 -1 -1 --1 3 4 2 -1 -1 --1 3 0 0 -1 -1 --1 0 2 2 -1 -1 --1 3 0 0 4 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 0 1 -1 -1 --1 -1 0 1 -1 -1 --1 -1 1 0 -1 -1 --1 -1 1 0 -1 -1 --1 -1 0 1 -1 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 1 -1 -1 --1 -1 -1 2 -1 -1 --1 -1 -1 2 -1 -1 -0 -1 1 1 -1 -1 -0 -1 0 2 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 1 -1 -1 -1 --1 -1 0 -1 -1 -1 --1 -1 0 -1 -1 -1 --1 -1 1 -1 -1 -1 --1 -1 0 1 1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 1 -1 -1 -1 -1 --1 0 1 -1 -1 -1 --1 1 0 0 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 4 4 -1 -1 --1 2 2 4 2 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 1 0 -1 -1 --1 -1 1 0 1 0 -1 --1 -1 5 -1 -1 -1 -5 5 3 -1 -1 -1 -3 3 2 -1 -1 -1 -2 2 0 -1 -1 -1 -0 0 1 -1 -1 -1 -1 1 5 -1 -1 -1 -5 5 4 -1 -1 -1 -4 4 3 -1 -1 -1 -3 3 2 -1 -1 -1 -2 2 0 -1 -1 -1 -0 0 1 0 -1 -1 -1 1 0 0 -1 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 0 -1 -1 -1 --1 -1 1 -1 -1 -1 --1 -1 1 -1 -1 -1 --1 -1 0 1 1 -1 --1 -1 0 1 0 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 1 3 -1 -1 --1 -1 3 1 -1 -1 -1 -1 1 3 -1 3 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 2 -1 -1 --1 -1 -1 0 1 -1 --1 -1 1 1 0 -1 --1 1 2 2 0 1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 -1 1 -1 -1 --1 -1 -1 5 0 0 --1 -1 -1 0 1 1 --1 -1 -1 4 5 5 --1 -1 -1 3 4 4 --1 -1 -1 2 3 3 --1 -1 -1 0 2 2 --1 -1 -1 1 0 0 --1 -1 0 0 1 1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 5 -1 -1 --1 -1 -1 2 -1 -1 --1 -1 -1 5 -1 -1 --1 -1 -1 5 -1 -1 --1 -1 -1 2 -1 -1 --1 -1 2 5 -1 -1 --1 -1 2 5 2 2 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 0 1 -1 -1 -1 --1 1 0 1 0 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 1 3 -1 -1 --1 -1 0 0 -1 -1 --1 -1 3 1 -1 -1 --1 1 3 1 -1 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 3 0 -1 -1 --1 3 3 1 -1 -1 --1 1 1 0 -1 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 2 2 -1 -1 --1 -1 1 0 0 -1 --1 -1 1 2 1 0 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 -0 1 2 -1 -1 -1 -3 4 5 -1 -1 -1 -5 5 3 -1 -1 -1 -3 4 2 -1 -1 -1 -3 0 0 4 1 -1 -1 4 1 1 0 -1 -2 2 0 4 0 -1 -2 2 3 4 3 -1 -0 0 1 1 0 -1 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 2 -1 -1 -1 --1 -1 2 0 -1 -1 --1 -1 1 1 2 -1 --1 -1 0 1 0 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 2 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 -1 1 -1 -1 --1 -1 -1 1 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 -1 1 -1 -1 --1 -1 -1 0 -1 -1 --1 2 2 0 2 2 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 3 3 -1 --1 -1 2 0 3 -1 --1 -1 2 1 2 -1 --1 1 1 0 0 -1 -5 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 -2 2 1 1 2 2 -0 3 4 5 3 0 -0 4 3 3 5 0 -1 4 1 1 5 1 -0 2 3 3 2 0 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 -2 -1 2 -1 2 -1 -0 -1 3 -1 0 -1 -1 -1 3 -1 1 -1 -0 -1 4 -1 0 -1 -1 -1 4 -1 4 -1 -0 2 3 2 0 -1 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 2 -1 -1 -1 --1 -1 3 -1 -1 -1 --1 3 1 -1 -1 -1 --1 0 0 -1 -1 -1 --1 1 2 3 -1 -1 --1 0 1 2 -1 -1 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 0 1 0 -1 -1 1 0 1 1 0 -0 2 2 0 2 1 diff --git a/Game/puzzles/puzzle.levels b/Game/puzzles/puzzle.levels deleted file mode 100755 index c53240d..0000000 --- a/Game/puzzles/puzzle.levels +++ /dev/null @@ -1,352 +0,0 @@ -27 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 1 1 -1 -1 --1 1 0 0 -1 0 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 0 -1 4 -1 -1 --1 3 4 2 -1 -1 --1 3 0 0 -1 -1 --1 0 2 2 -1 -1 --1 3 0 0 4 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 0 1 -1 -1 --1 -1 0 1 -1 -1 --1 -1 1 0 -1 -1 --1 -1 1 0 -1 -1 --1 -1 0 1 -1 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 1 -1 -1 --1 -1 -1 2 -1 -1 --1 -1 -1 2 -1 -1 -0 -1 1 1 -1 -1 -0 -1 0 2 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 1 -1 -1 -1 --1 -1 0 -1 -1 -1 --1 -1 0 -1 -1 -1 --1 -1 1 -1 -1 -1 --1 -1 0 1 1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 1 -1 -1 -1 -1 --1 0 1 -1 -1 -1 --1 1 0 0 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 4 4 -1 -1 --1 2 2 4 2 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 1 0 -1 -1 --1 -1 1 0 1 0 -1 --1 -1 5 -1 -1 -1 -5 5 3 -1 -1 -1 -3 3 2 -1 -1 -1 -2 2 0 -1 -1 -1 -0 0 1 -1 -1 -1 -1 1 5 -1 -1 -1 -5 5 4 -1 -1 -1 -4 4 3 -1 -1 -1 -3 3 2 -1 -1 -1 -2 2 0 -1 -1 -1 -0 0 1 0 -1 -1 -1 1 0 0 -1 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 0 -1 -1 -1 --1 -1 1 -1 -1 -1 --1 -1 1 -1 -1 -1 --1 -1 0 1 1 -1 --1 -1 0 1 0 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 1 3 -1 -1 --1 -1 3 1 -1 -1 -1 -1 1 3 -1 3 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 2 -1 -1 --1 -1 -1 0 1 -1 --1 -1 1 1 0 -1 --1 1 2 2 0 1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 -1 1 -1 -1 --1 -1 -1 5 0 0 --1 -1 -1 0 1 1 --1 -1 -1 4 5 5 --1 -1 -1 3 4 4 --1 -1 -1 2 3 3 --1 -1 -1 0 2 2 --1 -1 -1 1 0 0 --1 -1 0 0 1 1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 5 -1 -1 --1 -1 -1 2 -1 -1 --1 -1 -1 5 -1 -1 --1 -1 -1 5 -1 -1 --1 -1 -1 2 -1 -1 --1 -1 2 5 -1 -1 --1 -1 2 5 2 2 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 0 1 -1 -1 -1 --1 1 0 1 0 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 1 3 -1 -1 --1 -1 0 0 -1 -1 --1 -1 3 1 -1 -1 --1 1 3 1 -1 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 3 0 -1 -1 --1 3 3 1 -1 -1 --1 1 1 0 -1 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 2 2 -1 -1 --1 -1 1 0 0 -1 --1 -1 1 2 1 0 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 -0 1 2 -1 -1 -1 -3 4 5 -1 -1 -1 -5 5 3 -1 -1 -1 -3 4 2 -1 -1 -1 -3 0 0 4 1 -1 -1 4 1 1 0 -1 -2 2 0 4 0 -1 -2 2 3 4 3 -1 -0 0 1 1 0 -1 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 2 -1 -1 -1 --1 -1 2 0 -1 -1 --1 -1 1 1 2 -1 --1 -1 0 1 0 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 2 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 -1 1 -1 -1 --1 -1 -1 1 -1 -1 --1 -1 -1 0 -1 -1 --1 -1 -1 1 -1 -1 --1 -1 -1 0 -1 -1 --1 2 2 0 2 2 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 3 3 -1 --1 -1 2 0 3 -1 --1 -1 2 1 2 -1 --1 1 1 0 0 -1 -5 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 -2 2 1 1 2 2 -0 3 4 5 3 0 -0 4 3 3 5 0 -1 4 1 1 5 1 -0 2 3 3 2 0 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 -2 -1 2 -1 2 -1 -0 -1 3 -1 0 -1 -1 -1 3 -1 1 -1 -0 -1 4 -1 0 -1 -1 -1 4 -1 4 -1 -0 2 3 2 0 -1 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 2 -1 -1 -1 --1 -1 3 -1 -1 -1 --1 3 1 -1 -1 -1 --1 0 0 -1 -1 -1 --1 1 2 3 -1 -1 --1 0 1 2 -1 -1 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 0 1 0 -1 -1 1 0 1 1 0 -0 2 2 0 2 1 -1 -0 2 4 3 1 5 -0 2 4 3 1 5 -3 5 1 2 0 4 -3 5 1 2 0 4 -2 4 0 5 3 1 -1 1 2 1 2 2 -2 4 0 5 3 1 -2 4 0 5 3 1 -3 5 1 2 0 4 -3 5 1 2 0 4 -0 2 4 3 1 5 -0 2 4 3 1 5 diff --git a/Game/puzzles/testPuzzles b/Game/puzzles/testPuzzles deleted file mode 100644 index 807500f..0000000 --- a/Game/puzzles/testPuzzles +++ /dev/null @@ -1,92 +0,0 @@ -7 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 -0 0 3 4 0 0 -0 0 3 4 0 0 -3 3 4 3 4 4 -0 0 3 4 0 0 -0 0 3 4 0 0 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 3 -1 -1 --1 -1 -1 0 -1 -1 --1 2 0 1 -1 -1 --1 3 3 0 -1 -1 --1 2 1 3 -1 -1 --1 2 3 1 -1 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 4 0 -1 -1 --1 -1 0 4 3 3 --1 -1 4 0 4 4 --1 -1 0 4 3 3 --1 -1 0 4 3 3 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 5 -1 -1 --1 -1 -1 5 -1 -1 --1 -1 5 3 -1 -1 --1 -1 4 4 -1 -1 --1 -1 3 3 4 -1 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 2 -1 -1 -1 -1 --1 3 -1 -1 -1 -1 --1 2 0 2 -1 -1 --1 2 3 3 -1 -1 --1 0 1 0 -1 -1 --1 0 2 2 -1 -1 --1 3 1 1 -1 -1 --1 3 0 0 -1 -1 -3 0 3 3 -1 -1 -3 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 1 -1 -1 -1 -1 --1 1 4 -1 -1 -1 --1 3 3 1 -1 -1 --1 3 4 4 -1 -1 -2 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 -1 -1 -1 --1 -1 -1 3 -1 -1 --1 -1 -1 1 -1 -1 --1 -1 1 1 -1 -1 --1 -1 4 4 -1 -1 --1 4 0 0 -1 -1 --1 0 3 3 -1 -1 diff --git a/Game/sound/applause.ogg b/Game/sound/applause.ogg deleted file mode 100644 index 39ba789..0000000 Binary files a/Game/sound/applause.ogg and /dev/null differ diff --git a/Game/sound/cameraclick.ogg b/Game/sound/cameraclick.ogg deleted file mode 100644 index 0c1f9a9..0000000 Binary files a/Game/sound/cameraclick.ogg and /dev/null differ diff --git a/Game/sound/counter.ogg b/Game/sound/counter.ogg deleted file mode 100644 index 0eb3b4d..0000000 Binary files a/Game/sound/counter.ogg and /dev/null differ diff --git a/Game/sound/counterFinal.ogg b/Game/sound/counterFinal.ogg deleted file mode 100644 index f76ba7c..0000000 Binary files a/Game/sound/counterFinal.ogg and /dev/null differ diff --git a/Game/sound/pop.ogg b/Game/sound/pop.ogg deleted file mode 100644 index 9e9fc51..0000000 Binary files a/Game/sound/pop.ogg and /dev/null differ diff --git a/Game/sound/typing.ogg b/Game/sound/typing.ogg deleted file mode 100644 index 83d95c9..0000000 Binary files a/Game/sound/typing.ogg and /dev/null differ diff --git a/source/code/sago/LICENSE b/source/code/sago/LICENSE new file mode 100644 index 0000000..fe6d772 --- /dev/null +++ b/source/code/sago/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Poul Sander + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/source/code/sago/Makefile.sago b/source/code/sago/Makefile.sago new file mode 100644 index 0000000..5e4f0d4 --- /dev/null +++ b/source/code/sago/Makefile.sago @@ -0,0 +1,4 @@ + + +SAGO_BASE_LIBS+= -lphysfs -ljsoncpp +SAGO_O_FILES+= sago/SagoDataHolder.o sago/SagoSprite.o sago/SagoSpriteHolder.o sago/SagoMisc.o \ No newline at end of file diff --git a/source/code/sago/SagoDataHolder.cpp b/source/code/sago/SagoDataHolder.cpp new file mode 100644 index 0000000..62f7254 --- /dev/null +++ b/source/code/sago/SagoDataHolder.cpp @@ -0,0 +1,238 @@ +/* + Copyright (c) 2015 Poul Sander + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +#include "SagoDataHolder.hpp" +#include +#include +#include +#include +#include +#include +#include + +namespace sago { + +struct SagoDataHolder::SagoDataHolderData { + std::map textures; + std::map > fonts; //font, ptsize + std::map music; + std::map sounds; + std::vector rwOpsToFree; + std::vector> dataToFree; + SDL_Renderer* renderer = nullptr; +}; + +namespace { +std::mutex mutex_texture_load; +} //anonymous namespace + +SagoDataHolder::SagoDataHolder(SDL_Renderer* renderer) { + data = new SagoDataHolderData(); + data->renderer = renderer; +} + +SagoDataHolder::~SagoDataHolder() { + for (auto& item : data->textures) { + SDL_DestroyTexture(item.second); + } + for (auto& item : data->music) { + Mix_FreeMusic(item.second); + } + for (auto& item : data->sounds) { + Mix_FreeChunk(item.second); + } + for (auto& item : data->fonts) { + for (auto& item2 : item.second) { + TTF_CloseFont(item2.second); + } + } + for (auto& item : data->rwOpsToFree) { + SDL_FreeRW(item); + } + delete data; +} + +SDL_Texture* SagoDataHolder::getTexturePtr(const std::string& textureName) const { + std::lock_guard guard(mutex_texture_load); + SDL_Texture* ret = data->textures[textureName]; + if (ret) { + return ret; + } + std::string path = "textures/"+textureName+".png"; + if (!PHYSFS_exists(path.c_str())) { + std::cerr << "getTextureFailed - Texture does not exists: " << path << std::endl; + return ret; + } + PHYSFS_file* myfile = PHYSFS_openRead(path.c_str()); + unsigned int m_size = PHYSFS_fileLength(myfile); + //char* m_data = new char[m_size]; + std::unique_ptr m_data(new char[m_size]); + int length_read = PHYSFS_read (myfile, m_data.get(), 1, m_size); + if (length_read != (int)m_size) { + PHYSFS_close(myfile); + std::cerr << "Error: Curropt data file: " << path << std::endl; + return ret; + } + PHYSFS_close(myfile); + SDL_RWops* rw = SDL_RWFromMem (m_data.get(), m_size); + //The above might fail an return null. + if (!rw) { + PHYSFS_close(myfile); + std::cerr << "Error. Curropt data file!" << std::endl; + return NULL; + } + SDL_Surface* surface = IMG_Load_RW(rw,true); + + ret = SDL_CreateTextureFromSurface(data->renderer, surface); + + if (!ret) { + std::cerr << "getTextureFailed to load " << path << std::endl; + } + SDL_FreeSurface(surface); + std::cerr << path << " loaded" << std::endl; + data->textures[textureName] = ret; + return ret; +} + +TTF_Font* SagoDataHolder::getFontPtr(const std::string& fontName, int ptsize) const { + std::lock_guard guard(mutex_texture_load); + TTF_Font* ret = data->fonts[fontName][ptsize]; + if (ret) { + return ret; + } + std::string path = "fonts/"+fontName+".ttf"; + if (!PHYSFS_exists(path.c_str())) { + std::cerr << "getFontPtr - Font does not exists: " << path << std::endl; + return ret; + } + PHYSFS_file* myfile = PHYSFS_openRead(path.c_str()); + unsigned int m_size = PHYSFS_fileLength(myfile); + std::unique_ptr m_data(new char[m_size]); + int length_read = PHYSFS_read (myfile, m_data.get(), 1, m_size); + if (length_read != (int)m_size) { + PHYSFS_close(myfile); + std::cerr << "Error: Curropt data file: " << path << std::endl; + return ret; + } + PHYSFS_close(myfile); + + SDL_RWops* rw = SDL_RWFromMem (m_data.get(), m_size); + + //The above might fail an return null. + if (!rw) { + PHYSFS_close(myfile); + std::cerr << "Error: Curropt data file!" << std::endl; + return ret; + } + + ret = TTF_OpenFontRW(rw, SDL_FALSE, ptsize); + //delete [] m_data; + if (!ret) { + std::cerr << "Error openening font: " << fontName << " because: " << TTF_GetError() << std::endl; + } + data->fonts[fontName][ptsize] = ret; + data->dataToFree.push_back(std::move(m_data)); + data->rwOpsToFree.push_back(rw); + return ret; +} + +Mix_Music* SagoDataHolder::getMusicPtr(const std::string& musicName) const { + std::lock_guard guard(mutex_texture_load); + Mix_Music* ret = data->music[musicName]; + if (ret) { + return ret; + } + std::string path = "music/"+musicName+".ogg"; + if (!PHYSFS_exists(path.c_str())) { + std::cerr << "getMusicPtr - Music file does not exists: " << path << std::endl; + return ret; + } + PHYSFS_file* myfile = PHYSFS_openRead(path.c_str()); + unsigned int m_size = PHYSFS_fileLength(myfile); + std::unique_ptr m_data(new char[m_size]); + int length_read = PHYSFS_read (myfile, m_data.get(), 1, m_size); + if (length_read != (int)m_size) { + PHYSFS_close(myfile); + std::cerr << "Error: Curropt data file: " << path << std::endl; + return ret; + } + PHYSFS_close(myfile); + SDL_RWops* rw = SDL_RWFromMem (m_data.get(), m_size); + + //The above might fail an return null. + if (!rw) { + PHYSFS_close(myfile); + std::cerr << "Error. Curropt data file!" << std::endl; + return NULL; + } + + ret = Mix_LoadMUS_RW(rw, SDL_TRUE); //SDL_TRUE causes rw to be freed + + if (!ret) { + std::cerr << "getMusicPtr to load " << path << " because: " << Mix_GetError() << std::endl; + } + std::cout << path << " loaded" << std::endl; + data->music[musicName] = ret; + return ret; +} + + +Mix_Chunk* SagoDataHolder::getSoundPtr(const std::string& soundName) const { + std::lock_guard guard(mutex_texture_load); + Mix_Chunk* ret = data->sounds[soundName]; + if (ret) { + return ret; + } + std::string path = "sounds/"+soundName+".ogg"; + if (!PHYSFS_exists(path.c_str())) { + std::cerr << "getSoundPtr - Sound file does not exists: " << path << std::endl; + return ret; + } + PHYSFS_file* myfile = PHYSFS_openRead(path.c_str()); + unsigned int m_size = PHYSFS_fileLength(myfile); + std::unique_ptr m_data(new char[m_size]); + int length_read = PHYSFS_read (myfile, m_data.get(), 1, m_size); + if (length_read != (int)m_size) { + PHYSFS_close(myfile); + std::cerr << "Error: Curropt data file: " << path << std::endl; + return ret; + } + PHYSFS_close(myfile); + SDL_RWops* rw = SDL_RWFromMem (m_data.get(), m_size); + + //The above might fail an return null. + if (!rw) { + PHYSFS_close(myfile); + std::cerr << "Error. Curropt data file!" << std::endl; + return NULL; + } + + ret = Mix_LoadWAV_RW(rw, SDL_TRUE); + + std::cout << path << " loaded" << std::endl; + data->sounds[soundName] = ret; + return ret; +} + +} //name space sago diff --git a/source/code/sago/SagoDataHolder.hpp b/source/code/sago/SagoDataHolder.hpp new file mode 100644 index 0000000..10fb36f --- /dev/null +++ b/source/code/sago/SagoDataHolder.hpp @@ -0,0 +1,60 @@ +/* + Copyright (c) 2015 Poul Sander + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +#include "SDL.h" +#include //Used for sound & music +#include //To load PNG images! +#include +#include //Abstract file system. To use containers +#include + +#ifndef TEXTUREHOLDER_HPP +#define TEXTUREHOLDER_HPP + +namespace sago { + +class SagoDataHolder { +public: + SagoDataHolder(SDL_Renderer* renderer); + /** + * Return a pointer to the given texture. The pointer is valid for the lifetime of SagoDataHolder object it was taken from. + * @param textureName Name of the texture + * @return Pointer to the loaded texture + */ + SDL_Texture* getTexturePtr(const std::string &textureName) const; + TTF_Font* getFontPtr(const std::string &fontName, int ptsize) const; + Mix_Music* getMusicPtr(const std::string &musicName) const; + Mix_Chunk* getSoundPtr(const std::string &soundName) const; + virtual ~SagoDataHolder(); +private: + SagoDataHolder(const SagoDataHolder& base) = delete; + SagoDataHolder& operator=(const SagoDataHolder& base) = delete; + struct SagoDataHolderData; + mutable SagoDataHolderData *data; +}; + +} //namespace sago + +#endif /* TEXTUREHOLDER_HPP */ + diff --git a/source/code/sago/SagoMisc.cpp b/source/code/sago/SagoMisc.cpp new file mode 100644 index 0000000..cb7ae43 --- /dev/null +++ b/source/code/sago/SagoMisc.cpp @@ -0,0 +1,85 @@ +/* + Copyright (c) 2015 Poul Sander + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +#include "SagoMisc.hpp" +#include +#include +#include +#include +#include + +using namespace std; + +namespace sago { + + +std::vector GetFileList(const char* dir) { + std::vector ret; + char** rc = PHYSFS_enumerateFiles(dir); + for (char** i = rc; *i != NULL; i++) { + ret.push_back(*i); + } + PHYSFS_freeList(rc); + return ret; +} + +bool FileExists(const char* filename) { + return PHYSFS_exists(filename); +} + +std::string GetFileContent(const char* filename) { + std::string ret; + if (!PHYSFS_exists(filename)) { + std::cerr << "GetFileContent - File does not exists: " << filename << std::endl; + return ret; + } + PHYSFS_file* myfile = PHYSFS_openRead(filename); + unsigned int m_size = PHYSFS_fileLength(myfile); + char* m_data = new char[m_size+1]; + int length_read = PHYSFS_read (myfile, m_data, 1, m_size); + if (length_read != (int)m_size) { + delete [] m_data; + m_data = nullptr; + PHYSFS_close(myfile); + std::cerr << "Error: Curropt data file: " << filename << std::endl; + return ret; + } + PHYSFS_close(myfile); + m_data[m_size] = 0; //ensure that we are 0 terminated + ret = m_data; + delete [] m_data; + return ret; +} + +void WriteFileContent(const char* filename, const std::string& content) { + PHYSFS_file* myfile = PHYSFS_openWrite(filename); + if (!myfile) { + cerr << "Failed to open file for writing, " << PHYSFS_getLastError() << endl; + return; + } + PHYSFS_write(myfile, content.c_str(), 1, content.length()+1); + PHYSFS_close(myfile); +} + +} diff --git a/source/code/sago/SagoMisc.hpp b/source/code/sago/SagoMisc.hpp new file mode 100644 index 0000000..3a8bf62 --- /dev/null +++ b/source/code/sago/SagoMisc.hpp @@ -0,0 +1,56 @@ +/* + Copyright (c) 2015 Poul Sander + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +#ifndef SAGOMISC_HPP +#define SAGOMISC_HPP + +#include +#include + +namespace sago { + + /** + * Returns a vector with all filenames in a given directory. + * PHYSFS must be setup before hand. The directory is relative to the PHYSFS base + * @param dir The directory to list + * @return A vector with the filenames in the given directory. If empty the directory was empty or did not exist + */ + std::vector GetFileList(const char* dir); + + /** + * Reads an entire file into memory. + * PHYSFS must be setup before hand + * @param filename The file to read + * @return The content of the file. If empty either the file was empty, did not exist or could not be opened + */ + std::string GetFileContent(const char* filename); + + bool FileExists(const char* filename); + + void WriteFileContent(const char* filename, const std::string& content); + +} //namespace sago + +#endif /* SAGOMISC_HPP */ + diff --git a/source/code/sago/SagoSprite.cpp b/source/code/sago/SagoSprite.cpp new file mode 100644 index 0000000..9b7186f --- /dev/null +++ b/source/code/sago/SagoSprite.cpp @@ -0,0 +1,77 @@ +/* + Copyright (c) 2015 Poul Sander + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +#include "SagoSprite.hpp" + +namespace sago { + +struct SagoSprite::SagoSpriteData { + SDL_Texture* tex; + SDL_Rect imgCord; + SDL_Rect origin = {}; + int aniFrames = 0; + int aniFrameTime = 0; +}; + +SagoSprite::SagoSprite(const SagoDataHolder& texHolder, const std::string& texture,const SDL_Rect& initImage,const int animationFrames, const int animationFrameLength) { + data = new SagoSpriteData(); + data->tex = texHolder.getTexturePtr(texture); + data->imgCord = initImage; + data->aniFrames = animationFrames; + data->aniFrameTime = animationFrameLength; +} + + + +SagoSprite::~SagoSprite() { + delete data; +} + +void SagoSprite::Draw(SDL_Renderer* target, Sint32 frameTime, float x, float y) const { + SDL_Rect rect = data->imgCord; + rect.x+=rect.w*((frameTime/data->aniFrameTime)%data->aniFrames); + SDL_Rect pos = rect; + pos.x = x; + pos.y = y; + SDL_RenderCopy(target, data->tex, &rect, &pos); +} + +void SagoSprite::Draw(SDL_Renderer* target, Sint32 frameTime, float x, float y, const SDL_Rect& part) const { + SDL_Rect rect = data->imgCord; + rect.x+=rect.w*((frameTime/data->aniFrameTime)%data->aniFrames); + rect.x += part.x; + rect.y += part.y; + rect.w = part.w; + rect.h = part.h; + SDL_Rect pos = rect; + pos.x = x; + pos.y = y; + SDL_RenderCopy(target, data->tex, &rect, &pos); +} + +void SagoSprite::SetOrigin(const SDL_Rect& newOrigin) { + data->origin = newOrigin; +} + +} //namespace sago \ No newline at end of file diff --git a/source/code/sago/SagoSprite.hpp b/source/code/sago/SagoSprite.hpp new file mode 100644 index 0000000..b6f31d5 --- /dev/null +++ b/source/code/sago/SagoSprite.hpp @@ -0,0 +1,68 @@ +/* + Copyright (c) 2015 Poul Sander + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +#ifndef SAGOSPRITE_HPP +#define SAGOSPRITE_HPP + +#include "SagoDataHolder.hpp" + +namespace sago { + +class SagoSprite { +public: + SagoSprite(const SagoDataHolder &texHolder, const std::string &texture,const SDL_Rect& initImage,const int animationFrames, const int animationFrameLength); + /** + * Draws the sprite to a given render window + * @param target The render window to draw on + * @param frameTime The time in milliseonds since gamestart. Used to determen the place in the animation + * @param x Place to draw the sprite + * @param y Place to draw the sprite + */ + void Draw(SDL_Renderer* target, Sint32 frameTime, float x, float y) const; + /** + * Draws part of the sprite to a given render window + * @param target The render window to draw on + * @param frameTime The time in milliseonds since gamestart. Used to determen the place in the animation + * @param x Place to draw the sprite + * @param y Place to draw the sprite + * @param part the part of the sprite that should be drawn. + */ + void Draw(SDL_Renderer* target, Sint32 frameTime, float x, float y, const SDL_Rect& part) const; + /** + * Set a different origin. Normally it is the top left cornor. But in some cases you might want to center the origin or tranform it for other reasons + * @param newOrigin the coordinates that should be the new origin. Call with {0,0} to reset to default + */ + void SetOrigin(const SDL_Rect& newOrigin); + virtual ~SagoSprite(); +private: + SagoSprite(const SagoSprite& base) = delete; + SagoSprite& operator=(const SagoSprite& base) = delete; + struct SagoSpriteData; + SagoSpriteData *data; +}; + +} + +#endif /* SAGOSPRITE_HPP */ + diff --git a/source/code/sago/SagoSpriteHolder.cpp b/source/code/sago/SagoSpriteHolder.cpp new file mode 100644 index 0000000..0c805ee --- /dev/null +++ b/source/code/sago/SagoSpriteHolder.cpp @@ -0,0 +1,126 @@ +/* + Copyright (c) 2015 Poul Sander + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +#include "SagoSpriteHolder.hpp" +#include "SagoMisc.hpp" +#include +#include +#include +#include +#include +#include + + +//I truely hate the C way of checking for equal. Usually read: "if not X compares to Y then they must be equal" +#define strequal(X,Y) strcmp(X,Y)==0 + +using namespace std; + +namespace sago { + +struct SagoSpriteHolder::SagoSpriteHolderData { + const sago::SagoDataHolder* tex; + std::unordered_map> sprites; + const sago::SagoSprite* defaultSprite; +}; + +SagoSpriteHolder::SagoSpriteHolder(const SagoDataHolder& texHolder) { + data = new SagoSpriteHolderData(); + try { + data->tex = &texHolder; + ReadSprites(); + data->defaultSprite = new sago::SagoSprite(texHolder,"fallback", {0,0,64,64},1,100); + } + catch (...) { + delete data; + } +} + +SagoSpriteHolder::~SagoSpriteHolder() { + delete data; +} + +void SagoSpriteHolder::ReadSpriteFile(const std::string& filename) { + string fullfile = "sprites/"+filename; + string content = sago::GetFileContent(fullfile.c_str()); + Json::Value root; // will contains the root value after parsing + Json::Reader reader; + bool parsingSuccessful = reader.parse( content, root ); + if ( !parsingSuccessful ) { + cerr << "Failed to parse: " << fullfile << endl + << reader.getFormattedErrorMessages() << endl; + return; + } + for (Json::Value::iterator it = root.begin(); it != root.end() ; ++it) { + string spriteName = it.key().asString(); + Json::Value value = (*it); + string textureName = value.get("texture","fallback").asString(); + int topx = value.get("topx",0).asInt(); + int topy = value.get("topy",0).asInt(); + int height = value.get("height",0).asInt(); + int width = value.get("width",0).asInt(); + int number_of_frames = value.get("number_of_frames",1).asInt(); + int frame_time = value.get("frame_time",1).asInt(); + int originx = value.get("originx",0).asInt(); + int originy = value.get("originy",0).asInt(); + if (number_of_frames < 1) { + number_of_frames = 1; + } + if (frame_time < 1) { + frame_time = 1; + } + std::shared_ptr ptr(new SagoSprite(*(data->tex),textureName, {topx,topy,width,height},number_of_frames,frame_time)); + ptr->SetOrigin({originx,originy, 0, 0}); + this->data->sprites[std::string(spriteName)] = ptr; + } +} + +void SagoSpriteHolder::ReadSprites() { + std::vector spritefiles = GetFileList("sprites"); + for (std::string& item : spritefiles ) { + if (boost::algorithm::ends_with(item,".sprite")) { + cout << "Found " << item << endl; + ReadSpriteFile(item); + } + else { + cout << "Ignoreing " << item << endl; + } + } +} + +const sago::SagoSprite& SagoSpriteHolder::GetSprite(const std::string& spritename) const { + std::unordered_map>::const_iterator got = data->sprites.find (spritename); + if ( got == data->sprites.end() ) { + return *data->defaultSprite; + } + else { + return *(got->second); + } +} + +const SagoDataHolder& SagoSpriteHolder::GetDataHolder() const { + return *data->tex; +} + +} \ No newline at end of file diff --git a/source/code/sago/SagoSpriteHolder.hpp b/source/code/sago/SagoSpriteHolder.hpp new file mode 100644 index 0000000..b3c32f9 --- /dev/null +++ b/source/code/sago/SagoSpriteHolder.hpp @@ -0,0 +1,51 @@ +/* + Copyright (c) 2015 Poul Sander + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +#ifndef SAGOSPRITEHOLDER_HPP +#define SAGOSPRITEHOLDER_HPP + +#include "SagoDataHolder.hpp" +#include "SagoSprite.hpp" + +namespace sago { + +class SagoSpriteHolder { +public: + SagoSpriteHolder(const SagoDataHolder &texHolder); + virtual ~SagoSpriteHolder(); + void ReadSprites(); + const sago::SagoSprite& GetSprite(const std::string &spritename) const; + const SagoDataHolder& GetDataHolder() const; +private: + SagoSpriteHolder(const SagoSpriteHolder& base) = delete; + SagoSpriteHolder& operator=(const SagoSpriteHolder& base) = delete; + void ReadSpriteFile(const std::string &filename); + struct SagoSpriteHolderData; + SagoSpriteHolderData *data; +}; + +} + +#endif /* SAGOSPRITEHOLDER_HPP */ +