diff --git a/Todo.md b/Todo.md index 9617adee..e151a60e 100644 --- a/Todo.md +++ b/Todo.md @@ -43,6 +43,13 @@ + will also be better because it means all files in a given tileset folder will now be managed by porytiles, which will prevent possible corruption from porymap ++ see note in `res/tests/anim_metatiles_shared_tiles/note.txt` + + a better way to do representative tiles + + may allow to properly decompile vanilla tilesets + + will also solve problem of some animated tiles sharing content + + anim_yellow_flower and anim_white_flower share some representative tiles, which means you can't have both in + the same tileset + + `dump-anim-code` command + takes input tiles just like `compile-X` commands + instead of outputting all the files, just write C code to the console diff --git a/res/tests/anim_metatiles_shared_tiles/note.txt b/res/tests/anim_metatiles_shared_tiles/note.txt new file mode 100644 index 00000000..f3a39119 --- /dev/null +++ b/res/tests/anim_metatiles_shared_tiles/note.txt @@ -0,0 +1,16 @@ +Right now, compiling this tileset yields: + + detected duplicate representative anim tile, not allowed + +The reason for this is if two different animations in the same tileset share any representative tiles, then we +have to fail because the compiler won't know what to do when it encounters a representative tile in the regular +tileset. + +The way to solve this would be to have animations use a separate "frame" file called "representative.png", where +you use this file to specify unique representative tiles for your animation. But those tiles will never actually +appear in-game, instead they are just used in the layer PNGs to indicate that this tile should index into the +animation sequence. + +The vanilla games actually do this already. If you look at the water animations, the tiles on the tilesheet that +display in Porymap don't actually correspond to any animation frame, and are never actually visible in-game. + diff --git a/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_white/00.png b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_white/00.png new file mode 100644 index 00000000..290d8f47 Binary files /dev/null and b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_white/00.png differ diff --git a/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_white/01.png b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_white/01.png new file mode 100644 index 00000000..979a0ad7 Binary files /dev/null and b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_white/01.png differ diff --git a/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_white/02.png b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_white/02.png new file mode 100644 index 00000000..5efcad54 Binary files /dev/null and b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_white/02.png differ diff --git a/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_yellow/00.png b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_yellow/00.png new file mode 100644 index 00000000..e444a074 Binary files /dev/null and b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_yellow/00.png differ diff --git a/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_yellow/01.png b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_yellow/01.png new file mode 100644 index 00000000..b70178dd Binary files /dev/null and b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_yellow/01.png differ diff --git a/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_yellow/02.png b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_yellow/02.png new file mode 100644 index 00000000..0e5acc68 Binary files /dev/null and b/res/tests/anim_metatiles_shared_tiles/primary/anims/flower_yellow/02.png differ diff --git a/res/tests/anim_metatiles_shared_tiles/primary/anims/water/00.png b/res/tests/anim_metatiles_shared_tiles/primary/anims/water/00.png new file mode 100644 index 00000000..63cce504 Binary files /dev/null and b/res/tests/anim_metatiles_shared_tiles/primary/anims/water/00.png differ diff --git a/res/tests/anim_metatiles_shared_tiles/primary/anims/water/01.png b/res/tests/anim_metatiles_shared_tiles/primary/anims/water/01.png new file mode 100644 index 00000000..736f11af Binary files /dev/null and b/res/tests/anim_metatiles_shared_tiles/primary/anims/water/01.png differ diff --git a/res/tests/anim_metatiles_shared_tiles/primary/bottom.png b/res/tests/anim_metatiles_shared_tiles/primary/bottom.png new file mode 100644 index 00000000..fd67b307 Binary files /dev/null and b/res/tests/anim_metatiles_shared_tiles/primary/bottom.png differ diff --git a/res/tests/anim_metatiles_shared_tiles/primary/middle.png b/res/tests/anim_metatiles_shared_tiles/primary/middle.png new file mode 100644 index 00000000..7256f9d4 Binary files /dev/null and b/res/tests/anim_metatiles_shared_tiles/primary/middle.png differ diff --git a/res/tests/anim_metatiles_shared_tiles/primary/top.png b/res/tests/anim_metatiles_shared_tiles/primary/top.png new file mode 100644 index 00000000..e19f477e Binary files /dev/null and b/res/tests/anim_metatiles_shared_tiles/primary/top.png differ diff --git a/src/main.cpp b/src/main.cpp index f469dcee..5c075458 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -24,6 +24,8 @@ try { } catch (const porytiles::PtException &e) { // Catch PtException here, these are errors that can reasonably be expected due to bad input, bad files, etc + // TODO : remove this print out once we are fully on the new error system + fmt::println("TODO ERROR MESSAGE: {}", e.what()); return 1; } catch (const std::exception &e) {