Compare commits
121 Commits
29e0daffb0
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 92453a6104 | |||
| 7aff3e2109 | |||
| 8d213e7b3e | |||
| c6d409c303 | |||
| 6914f7df93 | |||
| 1dbfff2c17 | |||
| 3493636954 | |||
| 8ff1073e4a | |||
| 6497e26202 | |||
| e0e37204d7 | |||
| 6595b28790 | |||
| 0ddb6c85e1 | |||
| f84007902e | |||
| 49ae2ae41f | |||
| c701421a8f | |||
| 1ecb427106 | |||
| c87779cc09 | |||
| 24594fa89a | |||
| 030779794e | |||
| 495c23a3d2 | |||
| 911ee7a13e | |||
| b876ccbb09 | |||
| 94684e8758 | |||
| 0c116665bc | |||
| d0ed49d192 | |||
| 5e013a8414 | |||
| 0cdbeb768d | |||
| cd0477cc4c | |||
| c6e2779429 | |||
| 9b7abc7725 | |||
| c87d682508 | |||
| 366c00fd22 | |||
| 55b58ded70 | |||
| d946ab7943 | |||
| 167797a7b2 | |||
| 7ec869a6d4 | |||
| 82603c1e41 | |||
| 3a2015256a | |||
| 9df3f1b929 | |||
| 43a6cc2d7a | |||
| aa292dcd92 | |||
| 06457654f4 | |||
| e9fc2e8fa0 | |||
| 23863c02a6 | |||
| 6996b3a82a | |||
| 2b2eb31c67 | |||
| 8aad52f33f | |||
| 4e2393f4d5 | |||
| d9ada12ee0 | |||
| a7d04d2bbc | |||
| c80dffe957 | |||
| 31bbaf997f | |||
| c4d4a3b930 | |||
| d027216dc6 | |||
| 483fe7251d | |||
| 852cda1984 | |||
| 8d9c838be2 | |||
| 9ebf259525 | |||
| f2e45940d5 | |||
| 2ae8fc7440 | |||
| e7860c697e | |||
| a8240a5d82 | |||
| 723ab3d800 | |||
| fda8ff3f65 | |||
| 9ef7f4274d | |||
| bd011a0ebb | |||
| 6052be0c38 | |||
| ec3cc49710 | |||
| 2e1738c20c | |||
| 7479231110 | |||
| 4fc5947ba7 | |||
| a21e6f8bb5 | |||
| d27f978c62 | |||
| 2fd101674e | |||
| e36fa95762 | |||
| 88ce6cd570 | |||
| d011a41d5a | |||
| 039eb20c06 | |||
| 959a513651 | |||
| 1fed8f63bd | |||
| b475c4d818 | |||
| 972d23f178 | |||
| 83d4d0b954 | |||
| ea43880d59 | |||
| 6bf26f7470 | |||
| 0fb986d7c4 | |||
| 9aa86cd531 | |||
| 34840a64cf | |||
| 7d962ae752 | |||
| 28f11a42b7 | |||
| 5337e3b4e5 | |||
| 35ef99cf7c | |||
| cbe71b5af4 | |||
| e73f573e9a | |||
| fa9723dafc | |||
| ceb2b71331 | |||
| 0a5594b9a8 | |||
| 932de53609 | |||
| b7db34cdf7 | |||
| 4477cc4bbc | |||
| 435358ef1e | |||
| fff77e47cf | |||
| 3550f26c45 | |||
| c0905adc62 | |||
| f9b8edc23c | |||
| 6a18d880f2 | |||
| d185a5e72a | |||
| 0c9becae4c | |||
| 6a6cc22b21 | |||
| 3c4092df5e | |||
| 10911990dd | |||
| 21a495e40a | |||
| 6827512025 | |||
| 23fe4a35a9 | |||
| a5d43dfb1f | |||
| e4a61a7241 | |||
| 24a71395da | |||
| e4c10b6b75 | |||
| 710e7cc8c1 | |||
| 8893e8f05b | |||
| 7f51f02d96 |
@@ -1,6 +1,7 @@
|
|||||||
BasedOnStyle: Google
|
BasedOnStyle: Google
|
||||||
IndentWidth: 4
|
IndentWidth: 4
|
||||||
IndentAccessModifiers: true
|
NamespaceIndentation: All
|
||||||
|
IndentAccessModifiers: false
|
||||||
ColumnLimit: 0 # Sin límite de longitud de línea
|
ColumnLimit: 0 # Sin límite de longitud de línea
|
||||||
BreakBeforeBraces: Attach # Llaves en la misma línea
|
BreakBeforeBraces: Attach # Llaves en la misma línea
|
||||||
AllowShortIfStatementsOnASingleLine: true
|
AllowShortIfStatementsOnASingleLine: true
|
||||||
|
|||||||
@@ -19,8 +19,9 @@ Checks:
|
|||||||
- -modernize-avoid-c-arrays,-warnings-as-errors
|
- -modernize-avoid-c-arrays,-warnings-as-errors
|
||||||
|
|
||||||
WarningsAsErrors: '*'
|
WarningsAsErrors: '*'
|
||||||
# Solo incluir archivos de tu código fuente
|
# Solo incluir archivos de tu código fuente (external tiene su propio .clang-tidy)
|
||||||
HeaderFilterRegex: '^source/(sections|ui)/.*'
|
# Excluye jail_audio.hpp del análisis
|
||||||
|
HeaderFilterRegex: '^source/(?!core/audio/jail_audio\.hpp).*'
|
||||||
FormatStyle: file
|
FormatStyle: file
|
||||||
|
|
||||||
CheckOptions:
|
CheckOptions:
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"permissions": {
|
|
||||||
"allow": [
|
|
||||||
"Bash(cmake --build:*)",
|
|
||||||
"Bash(test:*)",
|
|
||||||
"Bash(tools/linter/run_clang-tidy.sh:*)",
|
|
||||||
"Bash(make resources.pack:*)",
|
|
||||||
"Bash(tools/linter/run_cppcheck.sh:*)",
|
|
||||||
"Bash(cat:*)",
|
|
||||||
"Bash(git add:*)",
|
|
||||||
"Bash(git commit:*)",
|
|
||||||
"Bash(git checkout:*)",
|
|
||||||
"Bash(sort:*)"
|
|
||||||
],
|
|
||||||
"deny": [],
|
|
||||||
"ask": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
10
.gitignore
vendored
@@ -1,5 +1,6 @@
|
|||||||
|
.cache/
|
||||||
.vscode/
|
.vscode/
|
||||||
*data/config/config.txt
|
*data/config/config.yaml
|
||||||
*stats.txt
|
*stats.txt
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
thumbs.db
|
thumbs.db
|
||||||
@@ -19,4 +20,9 @@ source/version.h
|
|||||||
resources.pack
|
resources.pack
|
||||||
jdd_release/
|
jdd_release/
|
||||||
tools/pack_resources/pack_resources
|
tools/pack_resources/pack_resources
|
||||||
tools/pack_resources/pack_resources.exe
|
tools/pack_resources/pack_resources.exe
|
||||||
|
tools/pack_resources/pack_tool
|
||||||
|
tools/pack_resources/pack_tool.exe
|
||||||
|
*.res
|
||||||
|
dist/
|
||||||
|
.claude/settings.local.json
|
||||||
|
|||||||
78
BUILDING.md
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
# Compilar JailDoctor's Dilemma
|
||||||
|
|
||||||
|
## Linux (Debian/Ubuntu)
|
||||||
|
|
||||||
|
Instal·la les dependències:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install cmake make g++ xxd glslang-tools glslc
|
||||||
|
```
|
||||||
|
|
||||||
|
Per a SDL3, instal·la el paquet de desenvolupament si està disponible al teu repositori:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install libsdl3-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Si `libsdl3-dev` no està als repos (SDL3 és recent i pot no estar a Debian stable), compila'l des del codi font:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/libsdl-org/SDL.git --branch release-3.x --depth 1
|
||||||
|
cd SDL && cmake -B build && cmake --build build && sudo cmake --install build
|
||||||
|
```
|
||||||
|
|
||||||
|
Compila el joc:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cmake -B build
|
||||||
|
cmake --build build
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Windows (MinGW via WinLibs)
|
||||||
|
|
||||||
|
1. Instal·la [WinLibs](https://winlibs.com/) (MinGW-w64 amb GCC)
|
||||||
|
2. Instal·la [CMake](https://cmake.org/download/)
|
||||||
|
3. Descarrega les [biblioteques de desenvolupament de SDL3 per a MinGW](https://github.com/libsdl-org/SDL/releases) — copia les capçaleres a `include/` i els fitxers `.a` a `lib/` de MinGW
|
||||||
|
4. Instal·la el [Vulkan SDK](https://vulkan.lunarg.com/sdk/home) — proporciona `glslc` per a la compilació dels shaders
|
||||||
|
|
||||||
|
Compila el joc (des d'un terminal MinGW):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cmake -B build -G "MinGW Makefiles"
|
||||||
|
cmake --build build
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## macOS
|
||||||
|
|
||||||
|
Instal·la les dependències amb [Homebrew](https://brew.sh):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
brew install cmake sdl3 glslang
|
||||||
|
```
|
||||||
|
|
||||||
|
Compila el joc:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cmake -B build
|
||||||
|
cmake --build build
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Què fa la compilació
|
||||||
|
|
||||||
|
`cmake --build build` ho gestiona tot en ordre:
|
||||||
|
|
||||||
|
1. **Compila els shaders** — regenera `postfx_vert_spv.h` / `postfx_frag_spv.h` si els fitxers `.vert` o `.frag` han canviat (requereix `glslc`)
|
||||||
|
2. **Compila el joc** — només recompila els fitxers `.cpp` modificats
|
||||||
|
3. **Empaqueta els recursos** — regenera `resources.pack` des de `data/` si algun asset ha canviat
|
||||||
|
|
||||||
|
Si `glslc` no està instal·lat, s'utilitzen les capçaleres de shaders precompilades (incloses al repositori).
|
||||||
|
|
||||||
|
> **Nota:** El `file(GLOB_RECURSE)` sobre `data/` s'avalua en temps de configuració de CMake. Si **afegeixes un fitxer nou** a `data/`, executa `cmake -B build` de nou perquè CMake el detecte com a dependència.
|
||||||
|
|
||||||
|
L'executable es genera a l'arrel del projecte: `./jaildoctors_dilemma`
|
||||||
176
CLAUDE.md
@@ -55,6 +55,46 @@ cmake --build build --clean-first
|
|||||||
|
|
||||||
**Important:** The build directory is `/Users/sergio/Gitea/jaildoctors_dilemma/build` and the output executable is placed in the project root directory.
|
**Important:** The build directory is `/Users/sergio/Gitea/jaildoctors_dilemma/build` and the output executable is placed in the project root directory.
|
||||||
|
|
||||||
|
### Testing in Headless Environment (SSH/Remote Server)
|
||||||
|
|
||||||
|
**IMPORTANT:** When working on a remote server via SSH without a physical display, the game MUST be run using Xvfb (X Virtual Framebuffer) to avoid SDL3 display initialization errors.
|
||||||
|
|
||||||
|
#### Required Setup (One-time)
|
||||||
|
```bash
|
||||||
|
# Install Xvfb
|
||||||
|
sudo apt-get install xvfb
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Running the Game in Headless Mode
|
||||||
|
|
||||||
|
**Option 1: Using the wrapper script (RECOMMENDED)**
|
||||||
|
```bash
|
||||||
|
./run_headless.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
**Option 2: Using xvfb-run directly**
|
||||||
|
```bash
|
||||||
|
xvfb-run -a ./jaildoctors_dilemma
|
||||||
|
```
|
||||||
|
|
||||||
|
**Option 3: Custom display configuration**
|
||||||
|
```bash
|
||||||
|
xvfb-run -a -s "-screen 0 1280x720x24" ./jaildoctors_dilemma
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Why This Is Critical
|
||||||
|
|
||||||
|
- **SDL3 requires a display:** The game uses SDL3 which requires X11/Wayland display
|
||||||
|
- **No code changes needed:** Xvfb simulates a virtual display without modifying the codebase
|
||||||
|
- **Full logging:** Console output and logs work normally, essential for debugging resource loading
|
||||||
|
- **Testing resource loading:** When modifying asset loading code, running with xvfb-run allows seeing all initialization logs
|
||||||
|
|
||||||
|
**ALWAYS use xvfb-run when testing on the remote server, especially when:**
|
||||||
|
- Modifying resource loading code
|
||||||
|
- Testing asset initialization
|
||||||
|
- Debugging startup issues
|
||||||
|
- Verifying configuration changes
|
||||||
|
|
||||||
### Static Analysis Tools (Linters)
|
### Static Analysis Tools (Linters)
|
||||||
|
|
||||||
This project uses two complementary static analysis tools for code quality:
|
This project uses two complementary static analysis tools for code quality:
|
||||||
@@ -261,7 +301,7 @@ source/
|
|||||||
└── main.cpp # Application entry point
|
└── main.cpp # Application entry point
|
||||||
|
|
||||||
config/ # Configuration files
|
config/ # Configuration files
|
||||||
└── assets.txt # Asset registry (text-based configuration)
|
└── assets.yaml # Asset registry (text-based configuration)
|
||||||
|
|
||||||
data/ # Game assets
|
data/ # Game assets
|
||||||
├── font/ # Bitmap fonts + descriptors
|
├── font/ # Bitmap fonts + descriptors
|
||||||
@@ -306,8 +346,8 @@ class Screen {
|
|||||||
- `Screen` - Rendering, window management, palette/shader effects
|
- `Screen` - Rendering, window management, palette/shader effects
|
||||||
- `Input` - Keyboard & gamepad input binding and checking
|
- `Input` - Keyboard & gamepad input binding and checking
|
||||||
- `Audio` - Music and sound effect playback
|
- `Audio` - Music and sound effect playback
|
||||||
- `Resource` - Asset loading, caching, streaming
|
- `Resource::Cache` - Asset loading, caching, streaming (with error handling)
|
||||||
- `Asset` - Asset path registry and verification
|
- `Resource::List` - Asset path registry from assets.yaml (O(1) lookups)
|
||||||
- `Director` - Main application controller
|
- `Director` - Main application controller
|
||||||
- `Cheevos` - Achievement state management
|
- `Cheevos` - Achievement state management
|
||||||
- `Debug` - Debug information overlay
|
- `Debug` - Debug information overlay
|
||||||
@@ -413,12 +453,14 @@ struct AnimationData {
|
|||||||
main()
|
main()
|
||||||
↓
|
↓
|
||||||
Director::Director() [Initialization]
|
Director::Director() [Initialization]
|
||||||
├─ Options::init() - Load game configuration
|
├─ Resource::List::init() - Initialize asset registry singleton
|
||||||
├─ Asset::init() - Register asset paths
|
├─ Director::setFileList() - Load assets.yaml configuration (no verification)
|
||||||
├─ Screen::init() - Create window, SDL renderer
|
├─ Options::loadFromFile() - Load game configuration
|
||||||
├─ Audio::init() - Initialize SDL audio
|
├─ Audio::init() - Initialize SDL audio
|
||||||
|
├─ Screen::init() - Create window, SDL renderer
|
||||||
├─ Input::init() - Bind keyboard/gamepad controls
|
├─ Input::init() - Bind keyboard/gamepad controls
|
||||||
├─ Resource::init() - Load all game resources
|
├─ Resource::Cache::init() - Load ALL game resources (with verification)
|
||||||
|
│ └─ Throws exception if any required asset is missing
|
||||||
└─ Cheevos::init() - Load achievement state
|
└─ Cheevos::init() - Load achievement state
|
||||||
|
|
||||||
Director::run() [Main loop]
|
Director::run() [Main loop]
|
||||||
@@ -433,11 +475,11 @@ Director::run() [Main loop]
|
|||||||
|
|
||||||
Director::~Director() [Cleanup]
|
Director::~Director() [Cleanup]
|
||||||
├─ Options::saveToFile() - Save game settings
|
├─ Options::saveToFile() - Save game settings
|
||||||
├─ Resource::destroy()
|
├─ Resource::Cache::destroy()
|
||||||
├─ Audio::destroy()
|
├─ Audio::destroy()
|
||||||
├─ Input::destroy()
|
├─ Input::destroy()
|
||||||
├─ Screen::destroy()
|
├─ Screen::destroy()
|
||||||
└─ Asset::destroy()
|
└─ Resource::List::destroy()
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4.2 Game Scene Flow (Core Gameplay Loop)
|
### 4.2 Game Scene Flow (Core Gameplay Loop)
|
||||||
@@ -468,24 +510,27 @@ Game::run() {
|
|||||||
|
|
||||||
```
|
```
|
||||||
Director::setFileList()
|
Director::setFileList()
|
||||||
├─ Asset::loadFromFile(config_path, PREFIX, system_folder_)
|
└─ Asset::loadFromFile(config_path, PREFIX, system_folder_)
|
||||||
│ ├─ Read config/assets.txt - Parse text configuration file
|
├─ Read config/assets.yaml - Parse text configuration file
|
||||||
│ ├─ Parse each line: TYPE|PATH|OPTIONS - Extract asset information
|
├─ Parse YAML structure: assets grouped by category
|
||||||
│ ├─ Replace variables (${PREFIX}, ${SYSTEM_FOLDER})
|
├─ Replace variables (${PREFIX}, ${SYSTEM_FOLDER})
|
||||||
│ └─ Store in unordered_map (O(1) lookup) - Fast asset path retrieval
|
└─ Store in unordered_map (O(1) lookup) - Fast asset path retrieval
|
||||||
└─ Asset::check() - Verify required files exist
|
|
||||||
|
|
||||||
Game Scene initialization
|
Game Scene initialization
|
||||||
└─ Resource::init() - Loads all resources
|
└─ Resource::Cache::init() - Loads all resources
|
||||||
├─ loadSounds() - WAV files
|
├─ loadSounds() - WAV files (with error handling)
|
||||||
├─ loadMusics() - OGG files
|
├─ loadMusics() - OGG files (with error handling)
|
||||||
├─ loadSurfaces() - GIF/PNG images
|
├─ loadSurfaces() - GIF/PNG images (with error handling)
|
||||||
├─ loadAnimations() - .ani animation definitions
|
├─ loadPalettes() - PAL palette files (with error handling)
|
||||||
├─ loadTileMaps() - .room tilemap data
|
├─ loadTextFiles() - Font definition files (with error handling)
|
||||||
└─ loadRooms() - Room metadata
|
├─ loadAnimations() - YAML animation definitions (with error handling)
|
||||||
|
└─ loadRooms() - Room YAML files (with error handling)
|
||||||
|
|
||||||
|
Note: Asset verification happens during actual loading.
|
||||||
|
If a required file is missing, Cache::load() throws detailed exception.
|
||||||
|
|
||||||
During gameplay
|
During gameplay
|
||||||
└─ Resource::get*(name) - Return cached resource
|
└─ Resource::Cache::get*(name) - Return cached resource
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4.4 Input Flow
|
### 4.4 Input Flow
|
||||||
@@ -587,7 +632,7 @@ namespace Options {
|
|||||||
inline Stats stats{}; // Game statistics
|
inline Stats stats{}; // Game statistics
|
||||||
}
|
}
|
||||||
|
|
||||||
Options::loadFromFile(path); // Load from config.txt
|
Options::loadFromFile(path); // Load from config.yaml
|
||||||
Options::saveToFile(path); // Save on exit
|
Options::saveToFile(path); // Save on exit
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -653,8 +698,8 @@ Achievements trigger notifications on unlock.
|
|||||||
| `Screen` | Rendering, window, palette management | Singleton |
|
| `Screen` | Rendering, window, palette management | Singleton |
|
||||||
| `Input` | Keyboard & gamepad input | Singleton |
|
| `Input` | Keyboard & gamepad input | Singleton |
|
||||||
| `Audio` | Music and SFX playback | Singleton |
|
| `Audio` | Music and SFX playback | Singleton |
|
||||||
| `Resource` | Asset caching and loading | Singleton |
|
| `Resource::Cache` | Asset caching and loading (with detailed error messages) | Singleton |
|
||||||
| `Asset` | Asset path registry from config/assets.txt, O(1) lookups, variable substitution | Singleton |
|
| `Resource::List` | Asset path registry from config/assets.yaml, O(1) lookups, variable substitution | Singleton |
|
||||||
| `Debug` | Debug overlay information | Singleton |
|
| `Debug` | Debug overlay information | Singleton |
|
||||||
| `globalEvents` | Global SDL event handling (quit, device reset, mouse) | Namespace |
|
| `globalEvents` | Global SDL event handling (quit, device reset, mouse) | Namespace |
|
||||||
|
|
||||||
@@ -717,16 +762,25 @@ Achievements trigger notifications on unlock.
|
|||||||
### Adding Game Assets
|
### Adding Game Assets
|
||||||
|
|
||||||
1. Place file in `data/` directory
|
1. Place file in `data/` directory
|
||||||
2. Add entry to `config/assets.txt`:
|
2. Add entry to `config/assets.yaml` under the appropriate category:
|
||||||
|
```yaml
|
||||||
|
assets:
|
||||||
|
category_name: # e.g., player, enemies, music, etc.
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/path/file.ext
|
||||||
```
|
```
|
||||||
TYPE|${PREFIX}/data/path/file.ext
|
Available types: `DATA`, `BITMAP`, `ANIMATION`, `MUSIC`, `SOUND`, `FONT`, `ROOM`, `PALETTE`
|
||||||
|
3. Optional flags can be added:
|
||||||
|
```yaml
|
||||||
|
- type: DATA
|
||||||
|
path: ${SYSTEM_FOLDER}/file.txt
|
||||||
|
required: false # Don't fail if missing
|
||||||
|
absolute: true # Path is absolute
|
||||||
```
|
```
|
||||||
Available types: `DATA`, `BITMAP`, `ANIMATION`, `MUSIC`, `SOUND`, `FONT`, `ROOM`, `TILEMAP`, `PALETTE`
|
|
||||||
3. Optional flags can be added: `TYPE|${PREFIX}/path/file.ext|optional,absolute`
|
|
||||||
4. Resource loads automatically during `Resource::init()`
|
4. Resource loads automatically during `Resource::init()`
|
||||||
5. Access via: `Resource::Cache::get()->getSurface("name")`
|
5. Access via: `Resource::Cache::get()->getSurface("name")`
|
||||||
|
|
||||||
**Note:** No recompilation needed when adding/removing/modifying assets in `config/assets.txt`
|
**Note:** No recompilation needed when adding/removing/modifying assets in `config/assets.yaml`
|
||||||
|
|
||||||
### Modifying Collision Detection
|
### Modifying Collision Detection
|
||||||
|
|
||||||
@@ -782,36 +836,58 @@ In debug builds (`#ifdef DEBUG`), renders:
|
|||||||
|
|
||||||
## 11. File Format Reference
|
## 11. File Format Reference
|
||||||
|
|
||||||
### Asset Configuration File (config/assets.txt)
|
### Asset Configuration File (config/assets.yaml)
|
||||||
Text-based asset registry with pipe-delimited format:
|
YAML-based asset registry with grouped structure:
|
||||||
```
|
```yaml
|
||||||
# Format: TYPE|PATH [|OPTIONS]
|
# JailDoctor's Dilemma - Asset Configuration
|
||||||
# Comments start with # or ;
|
|
||||||
# Variables: ${PREFIX}, ${SYSTEM_FOLDER}
|
# Variables: ${PREFIX}, ${SYSTEM_FOLDER}
|
||||||
# Options: optional, absolute (comma-separated)
|
|
||||||
|
|
||||||
# Example entries:
|
assets:
|
||||||
BITMAP|${PREFIX}/data/player/player.gif
|
# FONTS
|
||||||
ANIMATION|${PREFIX}/data/player/player.ani
|
fonts:
|
||||||
MUSIC|${PREFIX}/data/music/title.ogg
|
- type: BITMAP
|
||||||
DATA|${SYSTEM_FOLDER}/config.txt|optional,absolute
|
path: ${PREFIX}/data/font/smb2.gif
|
||||||
|
- type: FONT
|
||||||
|
path: ${PREFIX}/data/font/smb2.txt
|
||||||
|
|
||||||
|
# PLAYER
|
||||||
|
player:
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/player/player.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/player/player.yaml
|
||||||
|
|
||||||
|
# MUSIC
|
||||||
|
music:
|
||||||
|
- type: MUSIC
|
||||||
|
path: ${PREFIX}/data/music/title.ogg
|
||||||
|
|
||||||
|
# SYSTEM FILES (optional, absolute paths)
|
||||||
|
system:
|
||||||
|
- type: DATA
|
||||||
|
path: ${SYSTEM_FOLDER}/config.yaml
|
||||||
|
required: false
|
||||||
|
absolute: true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Asset Structure:**
|
||||||
|
- Assets are organized into categories (fonts, palettes, shaders, player, enemies, etc.)
|
||||||
|
- Each asset entry contains:
|
||||||
|
- `type` - Asset type (required)
|
||||||
|
- `path` - File path with variable substitution (required)
|
||||||
|
- `required` - Whether file must exist (optional, default: `true`)
|
||||||
|
- `absolute` - Whether path is absolute (optional, default: `false`)
|
||||||
|
|
||||||
**Available Asset Types:**
|
**Available Asset Types:**
|
||||||
- `DATA` - General data files (text, JSON, etc.)
|
- `DATA` - General data files (text, JSON, etc.)
|
||||||
- `BITMAP` - Images (GIF, PNG)
|
- `BITMAP` - Images (GIF, PNG)
|
||||||
- `ANIMATION` - Animation definition files (.ani)
|
- `ANIMATION` - Animation definition files (.yaml)
|
||||||
- `MUSIC` - Music files (OGG)
|
- `MUSIC` - Music files (OGG)
|
||||||
- `SOUND` - Sound effects (WAV)
|
- `SOUND` - Sound effects (WAV)
|
||||||
- `FONT` - Font definition files
|
- `FONT` - Font definition files
|
||||||
- `ROOM` - Room data files (.room)
|
- `ROOM` - Room data files (.yaml)
|
||||||
- `TILEMAP` - Tilemap files (.tmx)
|
|
||||||
- `PALETTE` - Color palette files (.pal)
|
- `PALETTE` - Color palette files (.pal)
|
||||||
|
|
||||||
**Options:**
|
|
||||||
- `optional` - File is not required (won't fail check if missing)
|
|
||||||
- `absolute` - Path is absolute (not relative to executable)
|
|
||||||
|
|
||||||
**Variables:**
|
**Variables:**
|
||||||
- `${PREFIX}` - Replaced with `/../Resources` on macOS bundles, empty otherwise
|
- `${PREFIX}` - Replaced with `/../Resources` on macOS bundles, empty otherwise
|
||||||
- `${SYSTEM_FOLDER}` - Replaced with user's system config folder
|
- `${SYSTEM_FOLDER}` - Replaced with user's system config folder
|
||||||
@@ -865,7 +941,7 @@ Binary 256-color palette format (256 × 4 bytes RGBA).
|
|||||||
- `Player::update()` - Physics and movement
|
- `Player::update()` - Physics and movement
|
||||||
|
|
||||||
### For Asset Management
|
### For Asset Management
|
||||||
- `config/assets.txt` - Asset configuration file (text-based, no recompilation needed)
|
- `config/assets.yaml` - Asset configuration file (text-based, no recompilation needed)
|
||||||
- `Asset::loadFromFile()` - Loads assets from config file
|
- `Asset::loadFromFile()` - Loads assets from config file
|
||||||
- `Resource::List::get()` - Retrieves asset path (O(1) lookup with unordered_map)
|
- `Resource::List::get()` - Retrieves asset path (O(1) lookup with unordered_map)
|
||||||
- `Resource::load()` - Asset loading
|
- `Resource::load()` - Asset loading
|
||||||
|
|||||||
191
CMakeLists.txt
@@ -10,13 +10,6 @@ set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|||||||
# Exportar comandos de compilación para herramientas de análisis
|
# Exportar comandos de compilación para herramientas de análisis
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
|
||||||
# Establece la política CMP0072 para indicar cómo se debe seleccionar la implementación de OpenGL.
|
|
||||||
# En este caso, se elige la opción "GLVND", que utiliza bibliotecas modernas y modulares (libOpenGL, libGLX),
|
|
||||||
# en lugar de la biblioteca OpenGL clásica (libGL). Esto mejora la compatibilidad con drivers recientes
|
|
||||||
# y evita ambigüedades cuando se encuentran múltiples implementaciones de OpenGL en el sistema.
|
|
||||||
cmake_policy(SET CMP0072 NEW)
|
|
||||||
set(OpenGL_GL_PREFERENCE GLVND)
|
|
||||||
|
|
||||||
# --- GENERACIÓN DE VERSIÓN AUTOMÁTICA ---
|
# --- GENERACIÓN DE VERSIÓN AUTOMÁTICA ---
|
||||||
find_package(Git QUIET)
|
find_package(Git QUIET)
|
||||||
if(GIT_FOUND)
|
if(GIT_FOUND)
|
||||||
@@ -47,13 +40,17 @@ set(APP_SOURCES
|
|||||||
|
|
||||||
# Core - Rendering
|
# Core - Rendering
|
||||||
source/core/rendering/gif.cpp
|
source/core/rendering/gif.cpp
|
||||||
|
source/core/rendering/pixel_reveal.cpp
|
||||||
source/core/rendering/screen.cpp
|
source/core/rendering/screen.cpp
|
||||||
source/core/rendering/surface.cpp
|
source/core/rendering/surface.cpp
|
||||||
source/core/rendering/surface_animated_sprite.cpp
|
source/core/rendering/sprite/animated_sprite.cpp
|
||||||
source/core/rendering/surface_moving_sprite.cpp
|
source/core/rendering/sprite/dissolve_sprite.cpp
|
||||||
source/core/rendering/surface_sprite.cpp
|
source/core/rendering/sprite/moving_sprite.cpp
|
||||||
|
source/core/rendering/sprite/sprite.cpp
|
||||||
source/core/rendering/text.cpp
|
source/core/rendering/text.cpp
|
||||||
source/core/rendering/texture.cpp
|
|
||||||
|
# Core - Locale
|
||||||
|
source/core/locale/locale.cpp
|
||||||
|
|
||||||
# Core - Resources
|
# Core - Resources
|
||||||
source/core/resources/resource_list.cpp
|
source/core/resources/resource_list.cpp
|
||||||
@@ -63,7 +60,6 @@ set(APP_SOURCES
|
|||||||
source/core/resources/resource_helper.cpp
|
source/core/resources/resource_helper.cpp
|
||||||
|
|
||||||
# Core - System
|
# Core - System
|
||||||
source/core/system/debug.cpp
|
|
||||||
source/core/system/director.cpp
|
source/core/system/director.cpp
|
||||||
source/core/system/global_events.cpp
|
source/core/system/global_events.cpp
|
||||||
|
|
||||||
@@ -109,22 +105,69 @@ set(APP_SOURCES
|
|||||||
source/main.cpp
|
source/main.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
# Fuentes de librerías de terceros
|
# Fuentes del sistema de renderizado (SDL3 GPU para todas las plataformas)
|
||||||
set(EXTERNAL_SOURCES
|
set(RENDERING_SOURCES
|
||||||
source/external/jail_audio.cpp
|
source/core/rendering/sdl3gpu/sdl3gpu_shader.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
# Fuentes del sistema de renderizado
|
# Fuentes de debug (solo en modo Debug)
|
||||||
set(RENDERING_SOURCES
|
set(DEBUG_SOURCES
|
||||||
source/core/rendering/opengl/opengl_shader.cpp
|
source/core/system/debug.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
# Configuración de SDL3
|
# Configuración de SDL3
|
||||||
find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3)
|
find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3)
|
||||||
message(STATUS "SDL3 encontrado: ${SDL3_INCLUDE_DIRS}")
|
message(STATUS "SDL3 encontrado: ${SDL3_INCLUDE_DIRS}")
|
||||||
|
|
||||||
|
# --- SHADER COMPILATION (Linux/Windows only - macOS uses Metal) ---
|
||||||
|
if(NOT APPLE)
|
||||||
|
find_program(GLSLC_EXE NAMES glslc)
|
||||||
|
|
||||||
|
set(SHADER_VERT_SRC "${CMAKE_SOURCE_DIR}/data/shaders/postfx.vert")
|
||||||
|
set(SHADER_FRAG_SRC "${CMAKE_SOURCE_DIR}/data/shaders/postfx.frag")
|
||||||
|
set(SHADER_VERT_H "${CMAKE_SOURCE_DIR}/source/core/rendering/sdl3gpu/postfx_vert_spv.h")
|
||||||
|
set(SHADER_FRAG_H "${CMAKE_SOURCE_DIR}/source/core/rendering/sdl3gpu/postfx_frag_spv.h")
|
||||||
|
|
||||||
|
if(GLSLC_EXE)
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT "${SHADER_VERT_H}" "${SHADER_FRAG_H}"
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-D GLSLC=${GLSLC_EXE}
|
||||||
|
-D SHADERS_DIR=${CMAKE_SOURCE_DIR}/data/shaders
|
||||||
|
-D HEADERS_DIR=${CMAKE_SOURCE_DIR}/source/core/rendering/sdl3gpu
|
||||||
|
-P ${CMAKE_SOURCE_DIR}/tools/shaders/compile_spirv.cmake
|
||||||
|
DEPENDS "${SHADER_VERT_SRC}" "${SHADER_FRAG_SRC}"
|
||||||
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||||
|
COMMENT "Compilando shaders SPIR-V..."
|
||||||
|
)
|
||||||
|
add_custom_target(shaders DEPENDS "${SHADER_VERT_H}" "${SHADER_FRAG_H}")
|
||||||
|
message(STATUS "glslc encontrado: shaders se compilarán automáticamente")
|
||||||
|
else()
|
||||||
|
if(NOT EXISTS "${SHADER_VERT_H}" OR NOT EXISTS "${SHADER_FRAG_H}")
|
||||||
|
message(FATAL_ERROR
|
||||||
|
"glslc no encontrado y headers SPIR-V no existen.\n"
|
||||||
|
" Instala glslc: sudo apt install glslang-tools (Linux)\n"
|
||||||
|
" choco install vulkan-sdk (Windows)\n"
|
||||||
|
" O genera los headers manualmente: tools/shaders/compile_spirv.sh"
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
message(STATUS "glslc no encontrado - usando headers SPIR-V precompilados")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(STATUS "macOS: shaders SPIR-V omitidos (usa Metal)")
|
||||||
|
endif()
|
||||||
|
|
||||||
# --- 2. AÑADIR EJECUTABLE ---
|
# --- 2. AÑADIR EJECUTABLE ---
|
||||||
add_executable(${PROJECT_NAME} ${APP_SOURCES} ${EXTERNAL_SOURCES} ${RENDERING_SOURCES})
|
add_executable(${PROJECT_NAME} ${APP_SOURCES} ${RENDERING_SOURCES})
|
||||||
|
|
||||||
|
# Shaders deben compilarse antes que el ejecutable (Linux/Windows con glslc)
|
||||||
|
if(NOT APPLE AND GLSLC_EXE)
|
||||||
|
add_dependencies(${PROJECT_NAME} shaders)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Añadir fuentes de debug solo en modo Debug
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>:${DEBUG_SOURCES}>)
|
||||||
|
|
||||||
# --- 3. DIRECTORIOS DE INCLUSIÓN ---
|
# --- 3. DIRECTORIOS DE INCLUSIÓN ---
|
||||||
target_include_directories(${PROJECT_NAME} PUBLIC
|
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||||
@@ -132,7 +175,7 @@ target_include_directories(${PROJECT_NAME} PUBLIC
|
|||||||
"${CMAKE_BINARY_DIR}"
|
"${CMAKE_BINARY_DIR}"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Enlazar la librería SDL3
|
# Enlazar las librerías SDL3
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3)
|
target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3)
|
||||||
|
|
||||||
|
|
||||||
@@ -141,13 +184,14 @@ target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3)
|
|||||||
target_compile_options(${PROJECT_NAME} PRIVATE -Wall)
|
target_compile_options(${PROJECT_NAME} PRIVATE -Wall)
|
||||||
target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:RELEASE>:-Os -ffunction-sections -fdata-sections>)
|
target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:RELEASE>:-Os -ffunction-sections -fdata-sections>)
|
||||||
|
|
||||||
# Definir _DEBUG en modo Debug
|
# Definir _DEBUG en modo Debug y RELEASE_BUILD en modo Release
|
||||||
target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<CONFIG:DEBUG>:_DEBUG>)
|
target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<CONFIG:DEBUG>:_DEBUG>)
|
||||||
|
target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<CONFIG:RELEASE>:RELEASE_BUILD>)
|
||||||
|
|
||||||
# Configuración específica para cada plataforma
|
# Configuración específica para cada plataforma
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
target_compile_definitions(${PROJECT_NAME} PRIVATE WINDOWS_BUILD)
|
target_compile_definitions(${PROJECT_NAME} PRIVATE WINDOWS_BUILD)
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE ws2_32 mingw32 opengl32)
|
target_link_libraries(${PROJECT_NAME} PRIVATE ws2_32 mingw32)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
target_compile_definitions(${PROJECT_NAME} PRIVATE MACOS_BUILD)
|
target_compile_definitions(${PROJECT_NAME} PRIVATE MACOS_BUILD)
|
||||||
target_compile_options(${PROJECT_NAME} PRIVATE -Wno-deprecated)
|
target_compile_options(${PROJECT_NAME} PRIVATE -Wno-deprecated)
|
||||||
@@ -156,16 +200,97 @@ elseif(UNIX AND NOT APPLE)
|
|||||||
target_compile_definitions(${PROJECT_NAME} PRIVATE LINUX_BUILD)
|
target_compile_definitions(${PROJECT_NAME} PRIVATE LINUX_BUILD)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Configuración común para OpenGL
|
# Especificar la ubicación del ejecutable
|
||||||
if(NOT WIN32)
|
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
|
||||||
find_package(OpenGL REQUIRED)
|
|
||||||
if(OPENGL_FOUND)
|
# --- 5. STATIC ANALYSIS TARGETS ---
|
||||||
message(STATUS "OpenGL encontrado: ${OPENGL_LIBRARIES}")
|
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE ${OPENGL_LIBRARIES})
|
# Buscar herramientas de análisis estático
|
||||||
else()
|
find_program(CLANG_TIDY_EXE NAMES clang-tidy)
|
||||||
message(FATAL_ERROR "OpenGL no encontrado")
|
find_program(CLANG_FORMAT_EXE NAMES clang-format)
|
||||||
endif()
|
|
||||||
|
# Recopilar todos los archivos fuente para formateo
|
||||||
|
file(GLOB_RECURSE ALL_SOURCE_FILES
|
||||||
|
"${CMAKE_SOURCE_DIR}/source/*.cpp"
|
||||||
|
"${CMAKE_SOURCE_DIR}/source/*.hpp"
|
||||||
|
"${CMAKE_SOURCE_DIR}/source/*.h"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Excluir directorio external del análisis
|
||||||
|
list(FILTER ALL_SOURCE_FILES EXCLUDE REGEX ".*/external/.*")
|
||||||
|
|
||||||
|
# Para clang-tidy, también excluir jail_audio.hpp
|
||||||
|
set(CLANG_TIDY_SOURCES ${ALL_SOURCE_FILES})
|
||||||
|
list(FILTER CLANG_TIDY_SOURCES EXCLUDE REGEX ".*jail_audio\\.hpp$")
|
||||||
|
list(FILTER CLANG_TIDY_SOURCES EXCLUDE REGEX ".*_spv\\.h$")
|
||||||
|
|
||||||
|
# Targets de clang-tidy
|
||||||
|
if(CLANG_TIDY_EXE)
|
||||||
|
add_custom_target(tidy
|
||||||
|
COMMAND ${CLANG_TIDY_EXE}
|
||||||
|
-p ${CMAKE_BINARY_DIR}
|
||||||
|
${CLANG_TIDY_SOURCES}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
COMMENT "Running clang-tidy..."
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(tidy-fix
|
||||||
|
COMMAND ${CLANG_TIDY_EXE}
|
||||||
|
-p ${CMAKE_BINARY_DIR}
|
||||||
|
--fix
|
||||||
|
${CLANG_TIDY_SOURCES}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
COMMENT "Running clang-tidy with fixes..."
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
message(STATUS "clang-tidy no encontrado - targets 'tidy' y 'tidy-fix' no disponibles")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Especificar la ubicación del ejecutable
|
# Targets de clang-format
|
||||||
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
|
if(CLANG_FORMAT_EXE)
|
||||||
|
add_custom_target(format
|
||||||
|
COMMAND ${CLANG_FORMAT_EXE}
|
||||||
|
-i
|
||||||
|
${ALL_SOURCE_FILES}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
COMMENT "Running clang-format..."
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(format-check
|
||||||
|
COMMAND ${CLANG_FORMAT_EXE}
|
||||||
|
--dry-run
|
||||||
|
--Werror
|
||||||
|
${ALL_SOURCE_FILES}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
COMMENT "Checking clang-format..."
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
message(STATUS "clang-format no encontrado - targets 'format' y 'format-check' no disponibles")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# --- 6. PACK RESOURCES TARGETS ---
|
||||||
|
set(PACK_TOOL_SOURCES
|
||||||
|
${CMAKE_SOURCE_DIR}/tools/pack_resources/pack_resources.cpp
|
||||||
|
${CMAKE_SOURCE_DIR}/source/core/resources/resource_pack.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(pack_tool ${PACK_TOOL_SOURCES})
|
||||||
|
target_include_directories(pack_tool PRIVATE ${CMAKE_SOURCE_DIR}/source)
|
||||||
|
set_target_properties(pack_tool PROPERTIES
|
||||||
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/tools/pack_resources
|
||||||
|
)
|
||||||
|
|
||||||
|
file(GLOB_RECURSE DATA_FILES "${CMAKE_SOURCE_DIR}/data/*")
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT "${CMAKE_SOURCE_DIR}/resources.pack"
|
||||||
|
COMMAND $<TARGET_FILE:pack_tool>
|
||||||
|
"${CMAKE_SOURCE_DIR}/data"
|
||||||
|
"${CMAKE_SOURCE_DIR}/resources.pack"
|
||||||
|
DEPENDS pack_tool ${DATA_FILES}
|
||||||
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||||
|
COMMENT "Generando resources.pack desde data/..."
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(pack DEPENDS "${CMAKE_SOURCE_DIR}/resources.pack")
|
||||||
|
add_dependencies(${PROJECT_NAME} pack)
|
||||||
|
|||||||
2
LICENSE
@@ -1,6 +1,6 @@
|
|||||||
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
|
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
|
||||||
|
|
||||||
Copyright (c) 2022 JailDoctor's Dilemma
|
Copyright (c) 2022 JailDoctor's Dilemma - JailDesigner
|
||||||
|
|
||||||
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
|
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
|
||||||
|
|
||||||
|
|||||||
146
Makefile
@@ -12,9 +12,10 @@ DIR_TOOLS := $(addsuffix /, $(DIR_ROOT)tools)
|
|||||||
TARGET_NAME := jaildoctors_dilemma
|
TARGET_NAME := jaildoctors_dilemma
|
||||||
TARGET_FILE := $(DIR_BIN)$(TARGET_NAME)
|
TARGET_FILE := $(DIR_BIN)$(TARGET_NAME)
|
||||||
APP_NAME := JailDoctor's Dilemma
|
APP_NAME := JailDoctor's Dilemma
|
||||||
RELEASE_FOLDER := jdd_release
|
DIST_DIR := dist
|
||||||
|
RELEASE_FOLDER := dist/_tmp
|
||||||
RELEASE_FILE := $(RELEASE_FOLDER)/$(TARGET_NAME)
|
RELEASE_FILE := $(RELEASE_FOLDER)/$(TARGET_NAME)
|
||||||
RESOURCE_FILE := release/jdd.res
|
RESOURCE_FILE := release/windows/jdd.res
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# PACKING TOOL
|
# PACKING TOOL
|
||||||
@@ -30,12 +31,20 @@ PACK_SOURCES := $(DIR_TOOLS)pack_resources/pack_resources.cpp source/core/reso
|
|||||||
PACK_INCLUDES := -Isource
|
PACK_INCLUDES := -Isource
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# VERSION (automatic based on date)
|
# SHADERS
|
||||||
|
# ==============================================================================
|
||||||
|
SHADER_SCRIPT := $(DIR_ROOT)tools/shaders/compile_spirv.sh
|
||||||
|
SHADER_VERT_H := $(DIR_ROOT)source/core/rendering/sdl3gpu/postfx_vert_spv.h
|
||||||
|
SHADER_FRAG_H := $(DIR_ROOT)source/core/rendering/sdl3gpu/postfx_frag_spv.h
|
||||||
|
GLSLC := $(shell command -v glslc 2>/dev/null)
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# VERSION (extracted from defines.hpp)
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
VERSION := $(shell powershell -Command "Get-Date -Format 'yyyy-MM-dd'")
|
VERSION := v$(shell powershell -Command "(Select-String -Path 'source/utils/defines.hpp' -Pattern 'constexpr const char\* VERSION = \"(.+?)\"').Matches.Groups[1].Value")
|
||||||
else
|
else
|
||||||
VERSION := $(shell date +%Y-%m-%d)
|
VERSION := v$(shell grep 'constexpr const char\* VERSION' source/utils/defines.hpp | sed -E 's/.*VERSION = "([^"]+)".*/\1/')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
@@ -52,10 +61,10 @@ endif
|
|||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# RELEASE NAMES
|
# RELEASE NAMES
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
WINDOWS_RELEASE := $(TARGET_NAME)-$(VERSION)-win32-x64.zip
|
WINDOWS_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-win32-x64.zip
|
||||||
MACOS_INTEL_RELEASE := $(TARGET_NAME)-$(VERSION)-macos-intel.dmg
|
MACOS_INTEL_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-macos-intel.dmg
|
||||||
MACOS_APPLE_SILICON_RELEASE := $(TARGET_NAME)-$(VERSION)-macos-apple-silicon.dmg
|
MACOS_APPLE_SILICON_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-macos-apple-silicon.dmg
|
||||||
LINUX_RELEASE := $(TARGET_NAME)-$(VERSION)-linux.tar.gz
|
LINUX_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-linux.tar.gz
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# SOURCE FILES
|
# SOURCE FILES
|
||||||
@@ -75,7 +84,9 @@ APP_SOURCES := \
|
|||||||
source/core/rendering/text.cpp \
|
source/core/rendering/text.cpp \
|
||||||
source/core/rendering/texture.cpp \
|
source/core/rendering/texture.cpp \
|
||||||
source/core/rendering/gif.cpp \
|
source/core/rendering/gif.cpp \
|
||||||
source/core/rendering/opengl/opengl_shader.cpp \
|
source/core/rendering/pixel_reveal.cpp \
|
||||||
|
source/core/rendering/surface_dissolve_sprite.cpp \
|
||||||
|
source/core/rendering/sdl3gpu/sdl3gpu_shader.cpp \
|
||||||
source/core/resources/resource_list.cpp \
|
source/core/resources/resource_list.cpp \
|
||||||
source/core/resources/resource_cache.cpp \
|
source/core/resources/resource_cache.cpp \
|
||||||
source/core/resources/resource_helper.cpp \
|
source/core/resources/resource_helper.cpp \
|
||||||
@@ -89,6 +100,11 @@ APP_SOURCES := \
|
|||||||
source/game/entities/enemy.cpp \
|
source/game/entities/enemy.cpp \
|
||||||
source/game/entities/item.cpp \
|
source/game/entities/item.cpp \
|
||||||
source/game/gameplay/room.cpp \
|
source/game/gameplay/room.cpp \
|
||||||
|
source/game/gameplay/collision_map.cpp \
|
||||||
|
source/game/gameplay/enemy_manager.cpp \
|
||||||
|
source/game/gameplay/item_manager.cpp \
|
||||||
|
source/game/gameplay/room_loader.cpp \
|
||||||
|
source/game/gameplay/tilemap_renderer.cpp \
|
||||||
source/game/gameplay/scoreboard.cpp \
|
source/game/gameplay/scoreboard.cpp \
|
||||||
source/game/gameplay/cheevos.cpp \
|
source/game/gameplay/cheevos.cpp \
|
||||||
source/game/gameplay/item_tracker.cpp \
|
source/game/gameplay/item_tracker.cpp \
|
||||||
@@ -104,8 +120,10 @@ APP_SOURCES := \
|
|||||||
source/game/scenes/credits.cpp \
|
source/game/scenes/credits.cpp \
|
||||||
source/game/ui/notifier.cpp \
|
source/game/ui/notifier.cpp \
|
||||||
source/utils/utils.cpp \
|
source/utils/utils.cpp \
|
||||||
source/utils/delta_timer.cpp \
|
source/utils/delta_timer.cpp
|
||||||
source/external/jail_audio.cpp
|
|
||||||
|
# All sources combined
|
||||||
|
ALL_SOURCES := $(APP_SOURCES)
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# INCLUDES
|
# INCLUDES
|
||||||
@@ -123,7 +141,7 @@ ifeq ($(OS),Windows_NT)
|
|||||||
-Wl,--gc-sections -static-libstdc++ -static-libgcc \
|
-Wl,--gc-sections -static-libstdc++ -static-libgcc \
|
||||||
-Wl,-subsystem,windows -DWINDOWS_BUILD
|
-Wl,-subsystem,windows -DWINDOWS_BUILD
|
||||||
CXXFLAGS_DEBUG := -std=$(CPP_STANDARD) -Wall -g -D_DEBUG -DWINDOWS_BUILD
|
CXXFLAGS_DEBUG := -std=$(CPP_STANDARD) -Wall -g -D_DEBUG -DWINDOWS_BUILD
|
||||||
LDFLAGS := -lmingw32 -lws2_32 -lSDL3 -lopengl32
|
LDFLAGS := -lmingw32 -lws2_32 -lSDL3
|
||||||
RM := del /Q
|
RM := del /Q
|
||||||
MKDIR := mkdir
|
MKDIR := mkdir
|
||||||
else
|
else
|
||||||
@@ -137,18 +155,35 @@ else
|
|||||||
UNAME_S := $(shell uname -s)
|
UNAME_S := $(shell uname -s)
|
||||||
ifeq ($(UNAME_S),Linux)
|
ifeq ($(UNAME_S),Linux)
|
||||||
CXXFLAGS += -DLINUX_BUILD
|
CXXFLAGS += -DLINUX_BUILD
|
||||||
LDFLAGS += -lGL
|
|
||||||
endif
|
endif
|
||||||
ifeq ($(UNAME_S),Darwin)
|
ifeq ($(UNAME_S),Darwin)
|
||||||
CXXFLAGS += -Wno-deprecated -DMACOS_BUILD
|
CXXFLAGS += -DMACOS_BUILD
|
||||||
CXXFLAGS_DEBUG += -Wno-deprecated -DMACOS_BUILD
|
CXXFLAGS_DEBUG += -DMACOS_BUILD
|
||||||
LDFLAGS += -framework OpenGL
|
|
||||||
# Configurar arquitectura (por defecto arm64)
|
# Configurar arquitectura (por defecto arm64)
|
||||||
CXXFLAGS += -arch arm64
|
CXXFLAGS += -arch arm64
|
||||||
CXXFLAGS_DEBUG += -arch arm64
|
CXXFLAGS_DEBUG += -arch arm64
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# REGLAS PARA COMPILACIÓN DE SHADERS
|
||||||
|
# ==============================================================================
|
||||||
|
compile_shaders:
|
||||||
|
ifdef GLSLC
|
||||||
|
@echo "Compilando shaders SPIR-V..."
|
||||||
|
@$(SHADER_SCRIPT)
|
||||||
|
@echo "✓ Shaders compilados"
|
||||||
|
else
|
||||||
|
@if [ -f "$(SHADER_VERT_H)" ] && [ -f "$(SHADER_FRAG_H)" ]; then \
|
||||||
|
echo "⚠ glslc no encontrado - usando headers SPIR-V precompilados"; \
|
||||||
|
else \
|
||||||
|
echo "ERROR: glslc no encontrado y headers SPIR-V no existen."; \
|
||||||
|
echo " Instala glslc: sudo apt install glslang-tools"; \
|
||||||
|
echo " O ejecuta manualmente: tools/shaders/compile_spirv.sh"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
endif
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# REGLAS PARA HERRAMIENTA DE EMPAQUETADO Y RESOURCES.PACK
|
# REGLAS PARA HERRAMIENTA DE EMPAQUETADO Y RESOURCES.PACK
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
@@ -169,18 +204,15 @@ resources.pack: $(PACK_TOOL)
|
|||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
windows:
|
windows:
|
||||||
@echo off
|
@echo off
|
||||||
|
@echo Generando version.h...
|
||||||
|
@powershell -Command "$$GIT_HASH = (git rev-parse --short=7 HEAD 2>$$null); if (-not $$GIT_HASH) { $$GIT_HASH = 'unknown' }; (Get-Content source/version.h.in) -replace '@GIT_HASH@', $$GIT_HASH | Set-Content source/version.h"
|
||||||
@echo Compilando para Windows con nombre: "$(WIN_TARGET_FILE).exe"
|
@echo Compilando para Windows con nombre: "$(WIN_TARGET_FILE).exe"
|
||||||
windres release/jdd.rc -O coff -o $(RESOURCE_FILE)
|
windres release/windows/jdd.rc -O coff -o $(RESOURCE_FILE)
|
||||||
g++ $(APP_SOURCES) $(RESOURCE_FILE) $(INCLUDES) $(CXXFLAGS) $(LDFLAGS) -o "$(WIN_TARGET_FILE).exe"
|
g++ $(ALL_SOURCES) $(RESOURCE_FILE) $(INCLUDES) $(CXXFLAGS) $(LDFLAGS) -o "$(WIN_TARGET_FILE).exe"
|
||||||
strip -s -R .comment -R .gnu.version "$(WIN_TARGET_FILE).exe" --strip-unneeded
|
strip -s -R .comment -R .gnu.version "$(WIN_TARGET_FILE).exe" --strip-unneeded
|
||||||
|
|
||||||
windows_debug:
|
|
||||||
@echo off
|
|
||||||
@echo Compilando version debug para Windows: "$(WIN_TARGET_FILE)_debug.exe"
|
|
||||||
g++ $(APP_SOURCES) $(INCLUDES) -DDEBUG -DVERBOSE $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(WIN_TARGET_FILE)_debug.exe"
|
|
||||||
|
|
||||||
windows_release:
|
windows_release:
|
||||||
@$(MAKE) pack_tool
|
@$(MAKE) compile_shaders
|
||||||
@$(MAKE) resources.pack
|
@$(MAKE) resources.pack
|
||||||
@echo off
|
@echo off
|
||||||
@echo Creando release para Windows - Version: $(VERSION)
|
@echo Creando release para Windows - Version: $(VERSION)
|
||||||
@@ -189,7 +221,8 @@ windows_release:
|
|||||||
@echo "Generando version.h..."
|
@echo "Generando version.h..."
|
||||||
@powershell -Command "$$GIT_HASH = (git rev-parse --short=7 HEAD 2>$$null); if (-not $$GIT_HASH) { $$GIT_HASH = 'unknown' }; (Get-Content source/version.h.in) -replace '@GIT_HASH@', $$GIT_HASH | Set-Content source/version.h"
|
@powershell -Command "$$GIT_HASH = (git rev-parse --short=7 HEAD 2>$$null); if (-not $$GIT_HASH) { $$GIT_HASH = 'unknown' }; (Get-Content source/version.h.in) -replace '@GIT_HASH@', $$GIT_HASH | Set-Content source/version.h"
|
||||||
|
|
||||||
# Crea carpeta temporal 'RELEASE_FOLDER'
|
# Crea carpeta de distribución y carpeta temporal 'RELEASE_FOLDER'
|
||||||
|
powershell if (-not (Test-Path "$(DIST_DIR)")) {New-Item "$(DIST_DIR)" -ItemType Directory}
|
||||||
powershell if (Test-Path "$(RELEASE_FOLDER)") {Remove-Item "$(RELEASE_FOLDER)" -Recurse -Force}
|
powershell if (Test-Path "$(RELEASE_FOLDER)") {Remove-Item "$(RELEASE_FOLDER)" -Recurse -Force}
|
||||||
powershell if (-not (Test-Path "$(RELEASE_FOLDER)")) {New-Item "$(RELEASE_FOLDER)" -ItemType Directory}
|
powershell if (-not (Test-Path "$(RELEASE_FOLDER)")) {New-Item "$(RELEASE_FOLDER)" -ItemType Directory}
|
||||||
|
|
||||||
@@ -200,11 +233,11 @@ windows_release:
|
|||||||
powershell Copy-Item "LICENSE" -Destination "$(RELEASE_FOLDER)"
|
powershell Copy-Item "LICENSE" -Destination "$(RELEASE_FOLDER)"
|
||||||
powershell Copy-Item "README.md" -Destination "$(RELEASE_FOLDER)"
|
powershell Copy-Item "README.md" -Destination "$(RELEASE_FOLDER)"
|
||||||
powershell Copy-Item "gamecontrollerdb.txt" -Destination "$(RELEASE_FOLDER)"
|
powershell Copy-Item "gamecontrollerdb.txt" -Destination "$(RELEASE_FOLDER)"
|
||||||
powershell Copy-Item "release\*.dll" -Destination "$(RELEASE_FOLDER)"
|
powershell Copy-Item "release\windows\dll\*.dll" -Destination "$(RELEASE_FOLDER)"
|
||||||
|
|
||||||
# Compila (con icono)
|
# Compila (con icono)
|
||||||
windres release/jdd.rc -O coff -o $(RESOURCE_FILE)
|
windres release/windows/jdd.rc -O coff -o $(RESOURCE_FILE)
|
||||||
g++ $(APP_SOURCES) $(RESOURCE_FILE) $(INCLUDES) -DRELEASE_BUILD $(CXXFLAGS) $(LDFLAGS) -o "$(WIN_RELEASE_FILE).exe"
|
g++ $(ALL_SOURCES) $(RESOURCE_FILE) $(INCLUDES) -DRELEASE_BUILD $(CXXFLAGS) $(LDFLAGS) -o "$(WIN_RELEASE_FILE).exe"
|
||||||
strip -s -R .comment -R .gnu.version "$(WIN_RELEASE_FILE).exe" --strip-unneeded
|
strip -s -R .comment -R .gnu.version "$(WIN_RELEASE_FILE).exe" --strip-unneeded
|
||||||
|
|
||||||
# Crea el fichero .zip
|
# Crea el fichero .zip
|
||||||
@@ -219,15 +252,13 @@ windows_release:
|
|||||||
# COMPILACIÓN PARA MACOS
|
# COMPILACIÓN PARA MACOS
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
macos:
|
macos:
|
||||||
|
@GIT_HASH=$$(git rev-parse --short=7 HEAD 2>/dev/null || echo "unknown"); \
|
||||||
|
sed "s/@GIT_HASH@/$$GIT_HASH/g" source/version.h.in > source/version.h
|
||||||
@echo "Compilando para macOS: $(TARGET_NAME)"
|
@echo "Compilando para macOS: $(TARGET_NAME)"
|
||||||
clang++ $(APP_SOURCES) $(INCLUDES) $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE)"
|
clang++ $(ALL_SOURCES) $(INCLUDES) $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE)"
|
||||||
|
|
||||||
macos_debug:
|
|
||||||
@echo "Compilando version debug para macOS: $(TARGET_NAME)_debug"
|
|
||||||
clang++ $(APP_SOURCES) $(INCLUDES) -DDEBUG -DVERBOSE $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(TARGET_FILE)_debug"
|
|
||||||
|
|
||||||
macos_release:
|
macos_release:
|
||||||
@$(MAKE) pack_tool
|
@$(MAKE) compile_shaders
|
||||||
@$(MAKE) resources.pack
|
@$(MAKE) resources.pack
|
||||||
@echo "Creando release para macOS - Version: $(VERSION)"
|
@echo "Creando release para macOS - Version: $(VERSION)"
|
||||||
|
|
||||||
@@ -241,29 +272,31 @@ macos_release:
|
|||||||
|
|
||||||
# Elimina datos de compilaciones anteriores
|
# Elimina datos de compilaciones anteriores
|
||||||
$(RMDIR) "$(RELEASE_FOLDER)"
|
$(RMDIR) "$(RELEASE_FOLDER)"
|
||||||
$(RMDIR) Frameworks
|
|
||||||
$(RMFILE) tmp.dmg
|
$(RMFILE) tmp.dmg
|
||||||
$(RMFILE) "$(MACOS_INTEL_RELEASE)"
|
$(RMFILE) "$(DIST_DIR)"/rw.*
|
||||||
$(RMFILE) "$(MACOS_APPLE_SILICON_RELEASE)"
|
|
||||||
|
|
||||||
# Crea la carpeta temporal para hacer el trabajo y las carpetas obligatorias para crear una app de macOS
|
# Crea la carpeta temporal para hacer el trabajo y las carpetas obligatorias para crear una app de macOS
|
||||||
$(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks"
|
$(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks"
|
||||||
$(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS"
|
$(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS"
|
||||||
$(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources"
|
$(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources"
|
||||||
$(MKDIR) Frameworks
|
|
||||||
|
|
||||||
# Copia carpetas y ficheros
|
# Copia carpetas y ficheros
|
||||||
cp resources.pack "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources"
|
cp resources.pack "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources"
|
||||||
cp gamecontrollerdb.txt "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources"
|
cp gamecontrollerdb.txt "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources"
|
||||||
cp -R release/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks"
|
cp -R release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks"
|
||||||
cp -R release/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework Frameworks
|
cp release/icons/*.icns "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources"
|
||||||
cp release/*.icns "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources"
|
cp release/macos/Info.plist "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents"
|
||||||
cp release/Info.plist "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents"
|
|
||||||
cp LICENSE "$(RELEASE_FOLDER)"
|
cp LICENSE "$(RELEASE_FOLDER)"
|
||||||
cp README.md "$(RELEASE_FOLDER)"
|
cp README.md "$(RELEASE_FOLDER)"
|
||||||
|
|
||||||
|
# Actualiza versión en Info.plist
|
||||||
|
@echo "Actualizando Info.plist con versión $(VERSION)..."
|
||||||
|
@RAW_VERSION=$$(echo "$(VERSION)" | sed 's/^v//'); \
|
||||||
|
sed -i '' '/<key>CFBundleShortVersionString<\/key>/{n;s|<string>.*</string>|<string>'"$$RAW_VERSION"'</string>|;}' "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Info.plist"; \
|
||||||
|
sed -i '' '/<key>CFBundleVersion<\/key>/{n;s|<string>.*</string>|<string>'"$$RAW_VERSION"'</string>|;}' "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Info.plist"
|
||||||
|
|
||||||
# Compila la versión para procesadores Intel
|
# Compila la versión para procesadores Intel
|
||||||
clang++ $(APP_SOURCES) $(INCLUDES) -DMACOS_BUNDLE -DRELEASE_BUILD -std=$(CPP_STANDARD) -Wall -Os -framework SDL3 -F ./Frameworks -framework OpenGL -Wno-deprecated -ffunction-sections -fdata-sections -o "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)" -rpath @executable_path/../Frameworks/ -target x86_64-apple-macos10.15
|
clang++ $(ALL_SOURCES) $(INCLUDES) -DMACOS_BUNDLE -DRELEASE_BUILD -std=$(CPP_STANDARD) -Wall -Os -framework SDL3 -F release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64 -ffunction-sections -fdata-sections -o "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)" -rpath @executable_path/../Frameworks/ -target x86_64-apple-macos10.15
|
||||||
|
|
||||||
# Firma la aplicación
|
# Firma la aplicación
|
||||||
codesign --deep --force --sign - --timestamp=none "$(RELEASE_FOLDER)/$(APP_NAME).app"
|
codesign --deep --force --sign - --timestamp=none "$(RELEASE_FOLDER)/$(APP_NAME).app"
|
||||||
@@ -286,7 +319,7 @@ macos_release:
|
|||||||
@echo "Release Intel creado: $(MACOS_INTEL_RELEASE)"
|
@echo "Release Intel creado: $(MACOS_INTEL_RELEASE)"
|
||||||
|
|
||||||
# Compila la versión para procesadores Apple Silicon
|
# Compila la versión para procesadores Apple Silicon
|
||||||
clang++ $(APP_SOURCES) $(INCLUDES) -DMACOS_BUNDLE -DRELEASE_BUILD -std=$(CPP_STANDARD) -Wall -Os -framework SDL3 -F ./Frameworks -framework OpenGL -Wno-deprecated -ffunction-sections -fdata-sections -o "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)" -rpath @executable_path/../Frameworks/ -target arm64-apple-macos11
|
clang++ $(ALL_SOURCES) $(INCLUDES) -DMACOS_BUNDLE -DRELEASE_BUILD -std=$(CPP_STANDARD) -Wall -Os -framework SDL3 -F release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64 -ffunction-sections -fdata-sections -o "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)" -rpath @executable_path/../Frameworks/ -target arm64-apple-macos11
|
||||||
|
|
||||||
# Firma la aplicación
|
# Firma la aplicación
|
||||||
codesign --deep --force --sign - --timestamp=none "$(RELEASE_FOLDER)/$(APP_NAME).app"
|
codesign --deep --force --sign - --timestamp=none "$(RELEASE_FOLDER)/$(APP_NAME).app"
|
||||||
@@ -309,23 +342,21 @@ macos_release:
|
|||||||
@echo "Release Apple Silicon creado: $(MACOS_APPLE_SILICON_RELEASE)"
|
@echo "Release Apple Silicon creado: $(MACOS_APPLE_SILICON_RELEASE)"
|
||||||
|
|
||||||
# Elimina las carpetas temporales
|
# Elimina las carpetas temporales
|
||||||
$(RMDIR) Frameworks
|
|
||||||
$(RMDIR) "$(RELEASE_FOLDER)"
|
$(RMDIR) "$(RELEASE_FOLDER)"
|
||||||
|
$(RMFILE) "$(DIST_DIR)"/rw.*
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# COMPILACIÓN PARA LINUX
|
# COMPILACIÓN PARA LINUX
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
linux:
|
linux:
|
||||||
|
@GIT_HASH=$$(git rev-parse --short=7 HEAD 2>/dev/null || echo "unknown"); \
|
||||||
|
sed "s/@GIT_HASH@/$$GIT_HASH/g" source/version.h.in > source/version.h
|
||||||
@echo "Compilando para Linux: $(TARGET_NAME)"
|
@echo "Compilando para Linux: $(TARGET_NAME)"
|
||||||
g++ $(APP_SOURCES) $(INCLUDES) $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE)"
|
g++ $(ALL_SOURCES) $(INCLUDES) $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE)"
|
||||||
strip -s -R .comment -R .gnu.version "$(TARGET_FILE)" --strip-unneeded
|
strip -s -R .comment -R .gnu.version "$(TARGET_FILE)" --strip-unneeded
|
||||||
|
|
||||||
linux_debug:
|
|
||||||
@echo "Compilando version debug para Linux: $(TARGET_NAME)_debug"
|
|
||||||
g++ $(APP_SOURCES) $(INCLUDES) -DDEBUG -DVERBOSE $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(TARGET_FILE)_debug"
|
|
||||||
|
|
||||||
linux_release:
|
linux_release:
|
||||||
@$(MAKE) pack_tool
|
@$(MAKE) compile_shaders
|
||||||
@$(MAKE) resources.pack
|
@$(MAKE) resources.pack
|
||||||
@echo "Creando release para Linux - Version: $(VERSION)"
|
@echo "Creando release para Linux - Version: $(VERSION)"
|
||||||
|
|
||||||
@@ -334,10 +365,8 @@ linux_release:
|
|||||||
@GIT_HASH=$$(git rev-parse --short=7 HEAD 2>/dev/null || echo "unknown"); \
|
@GIT_HASH=$$(git rev-parse --short=7 HEAD 2>/dev/null || echo "unknown"); \
|
||||||
sed "s/@GIT_HASH@/$$GIT_HASH/g" source/version.h.in > source/version.h
|
sed "s/@GIT_HASH@/$$GIT_HASH/g" source/version.h.in > source/version.h
|
||||||
|
|
||||||
# Elimina carpetas previas
|
# Elimina carpeta temporal previa y la recrea (crea dist/ si no existe)
|
||||||
$(RMDIR) "$(RELEASE_FOLDER)"
|
$(RMDIR) "$(RELEASE_FOLDER)"
|
||||||
|
|
||||||
# Crea la carpeta temporal para realizar el lanzamiento
|
|
||||||
$(MKDIR) "$(RELEASE_FOLDER)"
|
$(MKDIR) "$(RELEASE_FOLDER)"
|
||||||
|
|
||||||
# Copia ficheros
|
# Copia ficheros
|
||||||
@@ -347,7 +376,7 @@ linux_release:
|
|||||||
cp gamecontrollerdb.txt "$(RELEASE_FOLDER)"
|
cp gamecontrollerdb.txt "$(RELEASE_FOLDER)"
|
||||||
|
|
||||||
# Compila
|
# Compila
|
||||||
g++ $(APP_SOURCES) $(INCLUDES) -DRELEASE_BUILD $(CXXFLAGS) $(LDFLAGS) -o "$(RELEASE_FILE)"
|
g++ $(ALL_SOURCES) $(INCLUDES) -DRELEASE_BUILD $(CXXFLAGS) $(LDFLAGS) -o "$(RELEASE_FILE)"
|
||||||
strip -s -R .comment -R .gnu.version "$(RELEASE_FILE)" --strip-unneeded
|
strip -s -R .comment -R .gnu.version "$(RELEASE_FILE)" --strip-unneeded
|
||||||
|
|
||||||
# Empaqueta ficheros
|
# Empaqueta ficheros
|
||||||
@@ -370,13 +399,10 @@ help:
|
|||||||
@echo "Makefile para JailDoctor's Dilemma"
|
@echo "Makefile para JailDoctor's Dilemma"
|
||||||
@echo "Comandos disponibles:"
|
@echo "Comandos disponibles:"
|
||||||
@echo " windows - Compilar para Windows"
|
@echo " windows - Compilar para Windows"
|
||||||
@echo " windows_debug - Compilar debug para Windows"
|
|
||||||
@echo " windows_release - Crear release completo para Windows"
|
@echo " windows_release - Crear release completo para Windows"
|
||||||
@echo " linux - Compilar para Linux"
|
@echo " linux - Compilar para Linux"
|
||||||
@echo " linux_debug - Compilar debug para Linux"
|
|
||||||
@echo " linux_release - Crear release completo para Linux"
|
@echo " linux_release - Crear release completo para Linux"
|
||||||
@echo " macos - Compilar para macOS"
|
@echo " macos - Compilar para macOS"
|
||||||
@echo " macos_debug - Compilar debug para macOS"
|
|
||||||
@echo " macos_release - Crear release completo para macOS"
|
@echo " macos_release - Crear release completo para macOS"
|
||||||
@echo " pack_tool - Compilar herramienta de empaquetado"
|
@echo " pack_tool - Compilar herramienta de empaquetado"
|
||||||
@echo " resources.pack - Generar pack de recursos desde data/"
|
@echo " resources.pack - Generar pack de recursos desde data/"
|
||||||
@@ -385,4 +411,4 @@ help:
|
|||||||
|
|
||||||
FORCE:
|
FORCE:
|
||||||
|
|
||||||
.PHONY: windows windows_debug windows_release macos macos_debug macos_release linux linux_debug linux_release pack_tool resources.pack show_version help
|
.PHONY: windows windows_release macos macos_release linux linux_release compile_shaders pack_tool resources.pack show_version help
|
||||||
|
|||||||
36
README.md
@@ -30,21 +30,25 @@ Quan hages recuperat la major part de les peces, dirigeix-te a la Jail per mostr
|
|||||||
|
|
||||||
El joc permet tant l'ús del teclat com d'un comandament. Les tecles per a jugar són les següents:
|
El joc permet tant l'ús del teclat com d'un comandament. Les tecles per a jugar són les següents:
|
||||||
|
|
||||||
- **Cursors**: Per moure's a l'esquerra o dreta i per saltar. Es poden modificar les tecles en el fitxer de configuració, triant entre aquestes opcions:
|
| Tecla | Acció |
|
||||||
- O, P per moure's i Q per saltar.
|
|-------|-------|
|
||||||
- A, D per moure's i W per saltar.
|
| **←, →** | Moure's a l'esquerra o dreta |
|
||||||
|
| **↑** | Saltar |
|
||||||
|
| **Enter** | Eixir dels projectes |
|
||||||
|
| **ESC** | Cancelar / Eixir del joc |
|
||||||
|
| **F1** | Disminuir la mida de la finestra |
|
||||||
|
| **F2** | Augmentar la mida de la finestra |
|
||||||
|
| **F3** | Alternar pantalla completa |
|
||||||
|
| **F4** | Activar/desactivar els shaders |
|
||||||
|
| **F5** | Següent paleta de colors |
|
||||||
|
| **F6** | Paleta de colors anterior |
|
||||||
|
| **F7** | Activar/desactivar l'escalat exacte |
|
||||||
|
| **F8** | Activar/desactivar la música |
|
||||||
|
| **F9** | Activar/desactivar el marge de colors |
|
||||||
|
| **F10** | Activar/desactivar VSync |
|
||||||
|
| **F11** | Pausar el joc |
|
||||||
|
|
||||||
- **Tecla M**: Activa o desactiva la música.
|
**Nota:** Les tecles de moviment (←, →, ↑) es poden redefinir des del menú del joc.
|
||||||
- **Tecla P**: Pausa el joc.
|
|
||||||
- **Tecla ESC**: Ix del joc si estàs jugant. Tanca el programa en qualsevol altra circumstància.
|
|
||||||
- **Tecla F1**: Disminueix la mida de la finestra.
|
|
||||||
- **Tecla F2**: Augmenta la mida de la finestra.
|
|
||||||
- **Tecla F3**: Alterna entre el mode de pantalla completa i el mode finestra.
|
|
||||||
- **Tecla F4**: Activa o desactiva els shaders.
|
|
||||||
- **Tecla F5**: Estableix la següent paleta de colors.
|
|
||||||
- **Tecla F6**: Estableix la paleta de colors prèvia.
|
|
||||||
- **Tecla F7**: Activa o desactiva el escalat exacte.
|
|
||||||
- **Tecla B**: Activa o desactiva el marge de colors.
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -56,9 +60,9 @@ El programa guarda automàticament la configuració del mode de vídeo i les est
|
|||||||
|
|
||||||
- **Windows**: `C:\Users\<nom_d'usuari>\AppData\Roaming\jailgames\jaildoctors_dilemma`
|
- **Windows**: `C:\Users\<nom_d'usuari>\AppData\Roaming\jailgames\jaildoctors_dilemma`
|
||||||
- **MacOS**: `~/Library/Application Support/jailgames/jaildoctors_dilemma`
|
- **MacOS**: `~/Library/Application Support/jailgames/jaildoctors_dilemma`
|
||||||
- **Linux**: `~/.jailgames/jaildoctors_dilemma`
|
- **Linux**: `~/.config/jailgames/jaildoctors_dilemma`
|
||||||
|
|
||||||
Dins de la carpeta es troba el fitxer de configuració `config.txt`, on es pot modificar la configuració per connectar-se al servei en línia, i els fitxers `stats.csv` i `stats_buffer.csv`, que contenen informació sobre les estadístiques del joc.
|
Dins de la carpeta es troba el fitxer de configuració `config.yaml`, on es pot modificar la configuració per connectar-se al servei en línia, i els fitxers `stats.csv` i `stats_buffer.csv`, que contenen informació sobre les estadístiques del joc.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,399 +0,0 @@
|
|||||||
# JailDoctor's Dilemma - Asset Configuration
|
|
||||||
# Format: TYPE|PATH [|OPTIONS]
|
|
||||||
# Options: optional, absolute (comma-separated)
|
|
||||||
# Variables: ${PREFIX}, ${SYSTEM_FOLDER}
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# FONTS
|
|
||||||
# ===================================================================
|
|
||||||
BITMAP|${PREFIX}/data/font/smb2.gif
|
|
||||||
FONT|${PREFIX}/data/font/smb2.txt
|
|
||||||
BITMAP|${PREFIX}/data/font/aseprite.gif
|
|
||||||
FONT|${PREFIX}/data/font/aseprite.txt
|
|
||||||
BITMAP|${PREFIX}/data/font/gauntlet.gif
|
|
||||||
FONT|${PREFIX}/data/font/gauntlet.txt
|
|
||||||
BITMAP|${PREFIX}/data/font/subatomic.gif
|
|
||||||
FONT|${PREFIX}/data/font/subatomic.txt
|
|
||||||
BITMAP|${PREFIX}/data/font/8bithud.gif
|
|
||||||
FONT|${PREFIX}/data/font/8bithud.txt
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# PALETTES
|
|
||||||
# ===================================================================
|
|
||||||
PALETTE|${PREFIX}/data/palette/zx-spectrum.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/zx-spectrum-adjusted.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/zxarne-5-2.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/black-and-white.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/green-phosphor.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/orange-screen.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/ruzx-spectrum.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/ruzx-spectrum-revision-2.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/pico-8.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/sweetie-16.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/island-joy-16.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/lost-century.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/na16.pal
|
|
||||||
PALETTE|${PREFIX}/data/palette/steam-lords.pal
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# SHADERS
|
|
||||||
# ===================================================================
|
|
||||||
DATA|${PREFIX}/data/shaders/crtpi_vertex.glsl
|
|
||||||
DATA|${PREFIX}/data/shaders/crtpi_fragment.glsl
|
|
||||||
DATA|${PREFIX}/data/shaders/crtpi_vertex_es.glsl
|
|
||||||
DATA|${PREFIX}/data/shaders/crtpi_fragment_es.glsl
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# INPUT DATA (in root, not packed - SDL needs filesystem access)
|
|
||||||
# ===================================================================
|
|
||||||
DATA|${PREFIX}/gamecontrollerdb.txt
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# SYSTEM FILES (optional, absolute paths)
|
|
||||||
# ===================================================================
|
|
||||||
DATA|${SYSTEM_FOLDER}/config.txt|optional,absolute
|
|
||||||
DATA|${SYSTEM_FOLDER}/stats_buffer.csv|optional,absolute
|
|
||||||
DATA|${SYSTEM_FOLDER}/stats.csv|optional,absolute
|
|
||||||
DATA|${SYSTEM_FOLDER}/cheevos.bin|optional,absolute
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# ROOMS AND TILEMAPS (60 rooms)
|
|
||||||
# ===================================================================
|
|
||||||
TILEMAP|${PREFIX}/data/room/01.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/01.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/02.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/02.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/03.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/03.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/04.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/04.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/05.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/05.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/06.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/06.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/07.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/07.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/08.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/08.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/09.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/09.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/10.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/10.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/11.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/11.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/12.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/12.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/13.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/13.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/14.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/14.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/15.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/15.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/16.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/16.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/17.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/17.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/18.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/18.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/19.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/19.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/20.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/20.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/21.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/21.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/22.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/22.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/23.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/23.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/24.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/24.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/25.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/25.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/26.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/26.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/27.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/27.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/28.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/28.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/29.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/29.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/30.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/30.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/31.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/31.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/32.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/32.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/33.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/33.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/34.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/34.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/35.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/35.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/36.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/36.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/37.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/37.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/38.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/38.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/39.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/39.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/40.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/40.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/41.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/41.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/42.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/42.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/43.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/43.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/44.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/44.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/45.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/45.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/46.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/46.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/47.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/47.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/48.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/48.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/49.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/49.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/50.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/50.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/51.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/51.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/52.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/52.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/53.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/53.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/54.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/54.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/55.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/55.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/56.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/56.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/57.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/57.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/58.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/58.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/59.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/59.room
|
|
||||||
TILEMAP|${PREFIX}/data/room/60.tmx
|
|
||||||
ROOM|${PREFIX}/data/room/60.room
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# TILESETS
|
|
||||||
# ===================================================================
|
|
||||||
BITMAP|${PREFIX}/data/tilesets/standard.gif
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# ENEMIES
|
|
||||||
# ===================================================================
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/abad_bell.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/abad_bell.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/abad.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/abad.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/amstrad_cs.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/amstrad_cs.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/flying_arounder.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/flying_arounder.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/stopped_arounder.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/stopped_arounder.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/walking_arounder.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/walking_arounder.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/arounders_door.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/arounders_door.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/arounders_machine.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/arounders_machine.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/bat.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/bat.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/batman_bell.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/batman_bell.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/batman_fire.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/batman_fire.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/batman.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/batman.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/bell.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/bell.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/bin.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/bin.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/bird.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/bird.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/breakout.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/breakout.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/bry.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/bry.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/chip.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/chip.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/code.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/code.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/congo.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/congo.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/crosshair.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/crosshair.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/demon.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/demon.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/dimallas.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/dimallas.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/floppy.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/floppy.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/dong.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/dong.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/guitar.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/guitar.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/heavy.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/heavy.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/jailer_#1.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/jailer_#1.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/jailer_#2.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/jailer_#2.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/jailer_#3.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/jailer_#3.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/jailbattle_alien.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/jailbattle_alien.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/jailbattle_human.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/jailbattle_human.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/jeannine.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/jeannine.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/lamp.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/lamp.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/lord_abad.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/lord_abad.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/matatunos.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/matatunos.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/mummy.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/mummy.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/paco.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/paco.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/elsa.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/elsa.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/qvoid.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/qvoid.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/robot.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/robot.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/sam.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/sam.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/shock.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/shock.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/sigmasua.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/sigmasua.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/spark.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/spark.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/special/aerojailer.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/special/aerojailer.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/special/arounder.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/special/arounder.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/special/pepe_rosita_job.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/special/pepe_rosita_job.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/special/shooting_star.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/special/shooting_star.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/spider.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/spider.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/tree_thing.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/tree_thing.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/tuno.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/tuno.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/tv_panel.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/tv_panel.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/tv.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/tv.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/upv_student.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/upv_student.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/wave.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/wave.gif
|
|
||||||
ANIMATION|${PREFIX}/data/enemies/z80.ani
|
|
||||||
BITMAP|${PREFIX}/data/enemies/z80.gif
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# PLAYER
|
|
||||||
# ===================================================================
|
|
||||||
BITMAP|${PREFIX}/data/player/player.gif
|
|
||||||
ANIMATION|${PREFIX}/data/player/player.ani
|
|
||||||
BITMAP|${PREFIX}/data/player/player2.gif
|
|
||||||
ANIMATION|${PREFIX}/data/player/player2.ani
|
|
||||||
BITMAP|${PREFIX}/data/player/player_game_over.gif
|
|
||||||
ANIMATION|${PREFIX}/data/player/player_game_over.ani
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# ITEMS
|
|
||||||
# ===================================================================
|
|
||||||
BITMAP|${PREFIX}/data/items/items.gif
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# MUSIC
|
|
||||||
# ===================================================================
|
|
||||||
MUSIC|${PREFIX}/data/music/title.ogg
|
|
||||||
MUSIC|${PREFIX}/data/music/game.ogg
|
|
||||||
MUSIC|${PREFIX}/data/music/loading_data1.ogg
|
|
||||||
MUSIC|${PREFIX}/data/music/loading_data2.ogg
|
|
||||||
MUSIC|${PREFIX}/data/music/loading_header.ogg
|
|
||||||
MUSIC|${PREFIX}/data/music/loading_screen_color.ogg
|
|
||||||
MUSIC|${PREFIX}/data/music/loading_screen_data.ogg
|
|
||||||
MUSIC|${PREFIX}/data/music/ending1.ogg
|
|
||||||
MUSIC|${PREFIX}/data/music/ending2.ogg
|
|
||||||
MUSIC|${PREFIX}/data/music/game_over.ogg
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# SOUND EFFECTS
|
|
||||||
# ===================================================================
|
|
||||||
SOUND|${PREFIX}/data/sound/item.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/death.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/notify.wav
|
|
||||||
|
|
||||||
# Jump sounds (1-24)
|
|
||||||
SOUND|${PREFIX}/data/sound/jump1.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump2.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump3.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump4.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump5.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump6.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump7.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump8.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump9.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump10.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump11.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump12.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump13.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump14.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump15.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump16.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump17.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump18.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump19.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump20.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump21.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump22.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump23.wav
|
|
||||||
SOUND|${PREFIX}/data/sound/jump24.wav
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# LOGO
|
|
||||||
# ===================================================================
|
|
||||||
BITMAP|${PREFIX}/data/logo/jailgames.gif
|
|
||||||
BITMAP|${PREFIX}/data/logo/since_1998.gif
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# LOADING SCREEN
|
|
||||||
# ===================================================================
|
|
||||||
BITMAP|${PREFIX}/data/loading/loading_screen_bn.gif
|
|
||||||
BITMAP|${PREFIX}/data/loading/loading_screen_color.gif
|
|
||||||
BITMAP|${PREFIX}/data/loading/program_jaildoc.gif
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# TITLE SCREEN
|
|
||||||
# ===================================================================
|
|
||||||
BITMAP|${PREFIX}/data/title/title_logo.gif
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# ENDING SCREENS
|
|
||||||
# ===================================================================
|
|
||||||
BITMAP|${PREFIX}/data/ending/ending1.gif
|
|
||||||
BITMAP|${PREFIX}/data/ending/ending2.gif
|
|
||||||
BITMAP|${PREFIX}/data/ending/ending3.gif
|
|
||||||
BITMAP|${PREFIX}/data/ending/ending4.gif
|
|
||||||
BITMAP|${PREFIX}/data/ending/ending5.gif
|
|
||||||
|
|
||||||
# ===================================================================
|
|
||||||
# CREDITS
|
|
||||||
# ===================================================================
|
|
||||||
BITMAP|${PREFIX}/data/credits/shine.gif
|
|
||||||
ANIMATION|${PREFIX}/data/credits/shine.ani
|
|
||||||
592
config/assets.yaml
Normal file
@@ -0,0 +1,592 @@
|
|||||||
|
# JailDoctor's Dilemma - Asset Configuration
|
||||||
|
# Variables: ${PREFIX}, ${SYSTEM_FOLDER}
|
||||||
|
|
||||||
|
assets:
|
||||||
|
# FONTS
|
||||||
|
fonts:
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/font/smb2.gif
|
||||||
|
- type: FONT
|
||||||
|
path: ${PREFIX}/data/font/smb2.fnt
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/font/aseprite.gif
|
||||||
|
- type: FONT
|
||||||
|
path: ${PREFIX}/data/font/aseprite.fnt
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/font/gauntlet.gif
|
||||||
|
- type: FONT
|
||||||
|
path: ${PREFIX}/data/font/gauntlet.fnt
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/font/subatomic.gif
|
||||||
|
- type: FONT
|
||||||
|
path: ${PREFIX}/data/font/subatomic.fnt
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/font/8bithud.gif
|
||||||
|
- type: FONT
|
||||||
|
path: ${PREFIX}/data/font/8bithud.fnt
|
||||||
|
|
||||||
|
# PALETTES
|
||||||
|
palettes:
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/zx-spectrum.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/zx-spectrum-adjusted.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/zxarne-5-2.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/black-and-white.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/green-phosphor.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/orange-screen.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/ruzx-spectrum.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/ruzx-spectrum-revision-2.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/pico-8.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/sweetie-16.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/island-joy-16.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/lost-century.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/na16.pal
|
||||||
|
- type: PALETTE
|
||||||
|
path: ${PREFIX}/data/palette/steam-lords.pal
|
||||||
|
|
||||||
|
# LOCALE
|
||||||
|
locale:
|
||||||
|
- type: DATA
|
||||||
|
path: ${PREFIX}/data/locale/en.yaml
|
||||||
|
- type: DATA
|
||||||
|
path: ${PREFIX}/data/locale/ca.yaml
|
||||||
|
|
||||||
|
# INPUT
|
||||||
|
input:
|
||||||
|
- type: DATA
|
||||||
|
path: ${PREFIX}/gamecontrollerdb.txt
|
||||||
|
|
||||||
|
# SYSTEM
|
||||||
|
system:
|
||||||
|
- type: DATA
|
||||||
|
path: ${SYSTEM_FOLDER}/config.yaml
|
||||||
|
required: false
|
||||||
|
absolute: true
|
||||||
|
- type: DATA
|
||||||
|
path: ${SYSTEM_FOLDER}/stats_buffer.csv
|
||||||
|
required: false
|
||||||
|
absolute: true
|
||||||
|
- type: DATA
|
||||||
|
path: ${SYSTEM_FOLDER}/stats.csv
|
||||||
|
required: false
|
||||||
|
absolute: true
|
||||||
|
- type: DATA
|
||||||
|
path: ${SYSTEM_FOLDER}/cheevos.bin
|
||||||
|
required: false
|
||||||
|
absolute: true
|
||||||
|
- type: DATA
|
||||||
|
path: ${SYSTEM_FOLDER}/postfx.yaml
|
||||||
|
required: false
|
||||||
|
absolute: true
|
||||||
|
|
||||||
|
# ROOMS
|
||||||
|
rooms:
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/01.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/02.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/03.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/04.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/05.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/06.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/07.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/08.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/09.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/10.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/11.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/12.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/13.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/14.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/15.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/16.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/17.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/18.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/19.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/20.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/21.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/22.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/23.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/24.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/25.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/26.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/27.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/28.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/29.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/30.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/31.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/32.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/33.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/34.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/35.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/36.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/37.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/38.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/39.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/40.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/41.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/42.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/43.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/44.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/45.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/46.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/47.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/48.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/49.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/50.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/51.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/52.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/53.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/54.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/55.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/56.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/57.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/58.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/59.yaml
|
||||||
|
- type: ROOM
|
||||||
|
path: ${PREFIX}/data/room/60.yaml
|
||||||
|
|
||||||
|
# TILESETS
|
||||||
|
tilesets:
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/tilesets/standard.gif
|
||||||
|
|
||||||
|
# ENEMIES
|
||||||
|
enemies:
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/abad_bell.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/abad_bell.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/abad.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/abad.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/amstrad_cs.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/amstrad_cs.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/flying_arounder.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/flying_arounder.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/stopped_arounder.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/stopped_arounder.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/walking_arounder.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/walking_arounder.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/arounders_door.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/arounders_door.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/arounders_machine.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/arounders_machine.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/bat.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/bat.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/batman_bell.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/batman_bell.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/batman_fire.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/batman_fire.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/batman.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/batman.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/bell.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/bell.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/bin.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/bin.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/bird.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/bird.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/breakout.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/breakout.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/bry.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/bry.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/chip.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/chip.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/code.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/code.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/congo.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/congo.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/crosshair.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/crosshair.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/demon.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/demon.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/dimallas.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/dimallas.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/floppy.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/floppy.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/dong.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/dong.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/guitar.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/guitar.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/heavy.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/heavy.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/jailer1.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/jailer1.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/jailer2.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/jailer2.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/jailer3.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/jailer3.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/jailbattle_alien.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/jailbattle_alien.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/jailbattle_human.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/jailbattle_human.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/jeannine.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/jeannine.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/lamp.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/lamp.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/lord_abad.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/lord_abad.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/matatunos.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/matatunos.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/mummy.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/mummy.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/paco.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/paco.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/elsa.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/elsa.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/qvoid.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/qvoid.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/robot.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/robot.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/sam.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/sam.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/shock.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/shock.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/sigmasua.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/sigmasua.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/spark.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/spark.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/special/aerojailer.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/special/aerojailer.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/special/arounder.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/special/arounder.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/special/pepe_rosita_job.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/special/pepe_rosita_job.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/special/shooting_star.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/special/shooting_star.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/spider.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/spider.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/tree_thing.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/tree_thing.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/tuno.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/tuno.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/tv_panel.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/tv_panel.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/tv.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/tv.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/upv_student.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/upv_student.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/wave.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/wave.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/enemies/z80.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/enemies/z80.gif
|
||||||
|
|
||||||
|
# PLAYER
|
||||||
|
player:
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/player/player.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/player/player.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/player/player2.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/player/player2.yaml
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/player/player_game_over.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/player/player_game_over.yaml
|
||||||
|
|
||||||
|
# ITEMS
|
||||||
|
items:
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/items/items.gif
|
||||||
|
|
||||||
|
# MUSIC
|
||||||
|
music:
|
||||||
|
- type: MUSIC
|
||||||
|
path: ${PREFIX}/data/music/title.ogg
|
||||||
|
- type: MUSIC
|
||||||
|
path: ${PREFIX}/data/music/game.ogg
|
||||||
|
- type: MUSIC
|
||||||
|
path: ${PREFIX}/data/music/loading_data1.ogg
|
||||||
|
- type: MUSIC
|
||||||
|
path: ${PREFIX}/data/music/loading_data2.ogg
|
||||||
|
- type: MUSIC
|
||||||
|
path: ${PREFIX}/data/music/loading_header.ogg
|
||||||
|
- type: MUSIC
|
||||||
|
path: ${PREFIX}/data/music/loading_screen_color.ogg
|
||||||
|
- type: MUSIC
|
||||||
|
path: ${PREFIX}/data/music/loading_screen_data.ogg
|
||||||
|
- type: MUSIC
|
||||||
|
path: ${PREFIX}/data/music/ending1.ogg
|
||||||
|
- type: MUSIC
|
||||||
|
path: ${PREFIX}/data/music/ending2.ogg
|
||||||
|
- type: MUSIC
|
||||||
|
path: ${PREFIX}/data/music/game_over.ogg
|
||||||
|
|
||||||
|
# SOUNDS
|
||||||
|
sounds:
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/item.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/death.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/notify.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump1.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump2.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump3.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump4.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump5.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump6.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump7.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump8.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump9.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump10.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump11.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump12.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump13.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump14.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump15.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump16.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump17.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump18.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump19.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump20.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump21.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump22.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump23.wav
|
||||||
|
- type: SOUND
|
||||||
|
path: ${PREFIX}/data/sound/jump24.wav
|
||||||
|
|
||||||
|
# LOGO
|
||||||
|
logo:
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/logo/jailgames.gif
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/logo/since_1998.gif
|
||||||
|
|
||||||
|
# LOADING
|
||||||
|
loading:
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/loading/loading_screen_bn.gif
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/loading/loading_screen_color.gif
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/loading/program_jaildoc.gif
|
||||||
|
|
||||||
|
# TITLE
|
||||||
|
title:
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/title/title_logo.gif
|
||||||
|
|
||||||
|
# ENDING
|
||||||
|
ending:
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/ending/ending1.gif
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/ending/ending2.gif
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/ending/ending3.gif
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/ending/ending4.gif
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/ending/ending5.gif
|
||||||
|
|
||||||
|
# CREDITS
|
||||||
|
credits:
|
||||||
|
- type: BITMAP
|
||||||
|
path: ${PREFIX}/data/credits/shine.gif
|
||||||
|
- type: ANIMATION
|
||||||
|
path: ${PREFIX}/data/credits/shine.yaml
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=shine.gif
|
|
||||||
frame_width=8
|
|
||||||
frame_height=8
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=-1
|
|
||||||
frames=0,1,2,3,4,5,6,7
|
|
||||||
[/animation]
|
|
||||||
10
data/credits/shine.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# shine animation
|
||||||
|
tileSetFile: shine.gif
|
||||||
|
frameWidth: 8
|
||||||
|
frameHeight: 8
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: -1
|
||||||
|
frames: [0, 1, 2, 3, 4, 5, 6, 7]
|
||||||
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=abad.gif
|
|
||||||
frame_width=8
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/abad.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# abad animation
|
||||||
|
tileSetFile: abad.gif
|
||||||
|
frameWidth: 8
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=abad_bell.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0667
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5,6,7,8,9
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/abad_bell.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# abad_bell animation
|
||||||
|
tileSetFile: abad_bell.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.0667
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=amstrad_cs.gif
|
|
||||||
frame_width=8
|
|
||||||
frame_height=8
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0667
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/amstrad_cs.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# amstrad_cs animation
|
||||||
|
tileSetFile: amstrad_cs.gif
|
||||||
|
frameWidth: 8
|
||||||
|
frameHeight: 8
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.0667
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=arounders_door.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,3,3,3,3,3,3,3,3,3,3,3,2,1,0,0,0
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/arounders_door.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# arounders_door animation
|
||||||
|
tileSetFile: arounders_door.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 0, 0, 0]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=arounders_machine.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0667
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/arounders_machine.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# arounders_machine animation
|
||||||
|
tileSetFile: arounders_machine.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.0667
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=bat.gif
|
|
||||||
frame_width=9
|
|
||||||
frame_height=7
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0500
|
|
||||||
loop=0
|
|
||||||
frames=0,1
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/bat.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# bat animation
|
||||||
|
tileSetFile: bat.gif
|
||||||
|
frameWidth: 9
|
||||||
|
frameHeight: 7
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.05
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=batman.gif
|
|
||||||
frame_width=8
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/batman.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# batman animation
|
||||||
|
tileSetFile: batman.gif
|
||||||
|
frameWidth: 8
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=batman_bell.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/batman_bell.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# batman_bell animation
|
||||||
|
tileSetFile: batman_bell.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=batman_fire.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0667
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/batman_fire.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# batman_fire animation
|
||||||
|
tileSetFile: batman_fire.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.0667
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=bell.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5,6,7,8,9,10,11
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/bell.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# bell animation
|
||||||
|
tileSetFile: bell.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=bin.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=8
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1667
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/bin.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# bin animation
|
||||||
|
tileSetFile: bin.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 8
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1667
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=bird.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/bird.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# bird animation
|
||||||
|
tileSetFile: bird.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=breakout.gif
|
|
||||||
frame_width=24
|
|
||||||
frame_height=32
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5,6,7,6,5,4,3,2,1
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/breakout.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# breakout animation
|
||||||
|
tileSetFile: breakout.gif
|
||||||
|
frameWidth: 24
|
||||||
|
frameHeight: 32
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=bry.gif
|
|
||||||
frame_width=10
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/bry.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# bry animation
|
||||||
|
tileSetFile: bry.gif
|
||||||
|
frameWidth: 10
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=chip.gif
|
|
||||||
frame_width=8
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/chip.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# chip animation
|
||||||
|
tileSetFile: chip.gif
|
||||||
|
frameWidth: 8
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=code.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/code.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# code animation
|
||||||
|
tileSetFile: code.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=congo.gif
|
|
||||||
frame_width=8
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/congo.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# congo animation
|
||||||
|
tileSetFile: congo.gif
|
||||||
|
frameWidth: 8
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=crosshair.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/crosshair.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# crosshair animation
|
||||||
|
tileSetFile: crosshair.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=demon.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/demon.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# demon animation
|
||||||
|
tileSetFile: demon.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=dimallas.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/dimallas.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# dimallas animation
|
||||||
|
tileSetFile: dimallas.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=dong.gif
|
|
||||||
frame_width=22
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/dong.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# dong animation
|
||||||
|
tileSetFile: dong.gif
|
||||||
|
frameWidth: 22
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=elsa.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/elsa.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# elsa animation
|
||||||
|
tileSetFile: elsa.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=floppy.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/floppy.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# floppy animation
|
||||||
|
tileSetFile: floppy.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=flying_arounder.gif
|
|
||||||
frame_width=7
|
|
||||||
frame_height=7
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1667
|
|
||||||
loop=0
|
|
||||||
frames=0
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/flying_arounder.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# flying_arounder animation
|
||||||
|
tileSetFile: flying_arounder.gif
|
||||||
|
frameWidth: 7
|
||||||
|
frameHeight: 7
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1667
|
||||||
|
loop: 0
|
||||||
|
frames: [0]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=guitar.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/guitar.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# guitar animation
|
||||||
|
tileSetFile: guitar.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=heavy.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/heavy.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# heavy animation
|
||||||
|
tileSetFile: heavy.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=jailbattle_alien.gif
|
|
||||||
frame_width=13
|
|
||||||
frame_height=15
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/jailbattle_alien.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# jailbattle_alien animation
|
||||||
|
tileSetFile: jailbattle_alien.gif
|
||||||
|
frameWidth: 13
|
||||||
|
frameHeight: 15
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=jailbattle_human.gif
|
|
||||||
frame_width=11
|
|
||||||
frame_height=13
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/jailbattle_human.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# jailbattle_human animation
|
||||||
|
tileSetFile: jailbattle_human.gif
|
||||||
|
frameWidth: 11
|
||||||
|
frameHeight: 13
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1]
|
||||||
|
Before Width: | Height: | Size: 224 B After Width: | Height: | Size: 224 B |
10
data/enemies/jailer1.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# jailer1 animation
|
||||||
|
tileSetFile: jailer1.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.0667
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
|
Before Width: | Height: | Size: 280 B After Width: | Height: | Size: 280 B |
10
data/enemies/jailer2.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# jailer2 animation
|
||||||
|
tileSetFile: jailer2.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.0667
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 1, 3, 5, 1, 3, 5, 1, 3, 5]
|
||||||
|
Before Width: | Height: | Size: 226 B After Width: | Height: | Size: 226 B |
10
data/enemies/jailer3.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# jailer3 animation
|
||||||
|
tileSetFile: jailer3.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.0667
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=jailer_#1.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0667
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=jailer_#2.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0667
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,1,3,5,1,3,5,1,3,5
|
|
||||||
[/animation]
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=jailer_#3.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0667
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=jeannine.gif
|
|
||||||
frame_width=8
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/jeannine.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# jeannine animation
|
||||||
|
tileSetFile: jeannine.gif
|
||||||
|
frameWidth: 8
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=lamp.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0667
|
|
||||||
loop=0
|
|
||||||
frames=0,1
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/lamp.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# lamp animation
|
||||||
|
tileSetFile: lamp.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.0667
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=lord_abad.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/lord_abad.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# lord_abad animation
|
||||||
|
tileSetFile: lord_abad.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=matatunos.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/matatunos.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# matatunos animation
|
||||||
|
tileSetFile: matatunos.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=mummy.gif
|
|
||||||
frame_width=8
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.2000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/mummy.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# mummy animation
|
||||||
|
tileSetFile: mummy.gif
|
||||||
|
frameWidth: 8
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.2
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=paco.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0667
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5,6,7
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/paco.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# paco animation
|
||||||
|
tileSetFile: paco.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.0667
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5, 6, 7]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=qvoid.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1333
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5,6,7
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/qvoid.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# qvoid animation
|
||||||
|
tileSetFile: qvoid.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1333
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5, 6, 7]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=robot.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=32
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0667
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/robot.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# robot animation
|
||||||
|
tileSetFile: robot.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 32
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.0667
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=sam.gif
|
|
||||||
frame_width=16
|
|
||||||
frame_height=16
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.0833
|
|
||||||
loop=0
|
|
||||||
frames=0,1
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/sam.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# sam animation
|
||||||
|
tileSetFile: sam.gif
|
||||||
|
frameWidth: 16
|
||||||
|
frameHeight: 16
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.0833
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1]
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
tileSetFile=shock.gif
|
|
||||||
frame_width=8
|
|
||||||
frame_height=8
|
|
||||||
|
|
||||||
[animation]
|
|
||||||
name=default
|
|
||||||
speed=0.1000
|
|
||||||
loop=0
|
|
||||||
frames=0,1,2,3,4,5,4,3,2,1
|
|
||||||
[/animation]
|
|
||||||
10
data/enemies/shock.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# shock animation
|
||||||
|
tileSetFile: shock.gif
|
||||||
|
frameWidth: 8
|
||||||
|
frameHeight: 8
|
||||||
|
|
||||||
|
animations:
|
||||||
|
- name: default
|
||||||
|
speed: 0.1
|
||||||
|
loop: 0
|
||||||
|
frames: [0, 1, 2, 3, 4, 5, 4, 3, 2, 1]
|
||||||