Giter Site home page Giter Site logo

coinkiller's People

Contributors

arisotura avatar explosblue avatar gimzie avatar jakobdev avatar ricbent avatar roadrunnerwmc avatar treeways avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

coinkiller's Issues

CoinKiller corrupted 1-1.sarc

CoinKiller apparently corrupted my level so that the program crashes when I attempt to open it. Here is the level. Could it be recovered? It does work in-game, luckily.

Provide a release tarball under releases

It's a pain in the ass to have to install if you use a GTK based environment. I get that it's under development, but with the amount of GNOME/elementary users there are it would be nice to just have a binary.

No undo/redo functions

I'd like to be able to Ctrl+Z and Ctrl+Shift+Z/Ctrl+Y.

Currently, it's possible to simply discard all changes past the previous save by closing the current level, but this would be much more convenient.

Flatpak

I have made a Flatpak package for CoinKiller that I will publish on Flathub. You need this files to build the package.

io.github.Arisotura.CoinKiller.yaml

id: io.github.Arisotura.CoinKiller
runtime: org.kde.Platform
runtime-version: 6.4
sdk: org.kde.Sdk
command: CoinKiller
finish-args:
  - --socket=fallback-x11
  - --socket=wayland
  - --device=dri
  - --share=ipc

modules:
  - name: CoinKiller
    buildsystem: qmake
    post-install:
      - install -Dm755 CoinKiller -t $FLATPAK_DEST/CoinKiller
      - cp -r coinkiller_data $FLATPAK_DEST/CoinKiller
      - mkdir -p $FLATPAK_DEST/bin
      - ln -s $FLATPAK_DEST/CoinKiller/CoinKiller $FLATPAK_DEST/bin/CoinKiller
      - install -Dm644 coinkiller_data/icons/logo.png $FLATPAK_DEST/share/icons/hicolor/512x512/apps/$FLATPAK_ID.png
      - install -Dm644 $FLATPAK_ID.desktop -t $FLATPAK_DEST/share/applications
      - install -Dm644 $FLATPAK_ID.metainfo.xml -t $FLATPAK_DEST/share/metainfo
    sources:
      - type: archive
        archive-type: tar-gzip
        url: https://api.github.com/repos/Arisotura/CoinKiller/tarball/v1.1
        sha256: 81e43517845f143ccbd2ea92a42d51d1370a2c241b7237dcc2f298aa1c9dae69
        x-checker-data:
            type: json
            url: https://api.github.com/repos/Arisotura/CoinKiller/releases/latest
            version-query: .tag_name
            url-query: .tarball_url
            is-main-source: true
      - type: file
        path: io.github.Arisotura.CoinKiller.desktop
      - type: file
        path: io.github.Arisotura.CoinKiller.metainfo.xml

io.github.Arisotura.CoinKiller.desktop

# Created with jdDesktopEntryEdit 1.0
[Desktop Entry]
Type=Application
Name=CoinKiller
Comment=A level editor for NSMB2
Icon=io.github.Arisotura.CoinKiller
TryExec=CoinKiller
Exec=CoinKiller
Categories=Game;Qt;
Keywords=Editor;Mario;Nintendo;3DS;Hack;
SingleMainWindow=true
<?xml version='1.0' encoding='utf-8'?>
<component type="desktop">
  <!--Created with jdAppStreamEdit 6.0-->
  <id>io.github.Arisotura.CoinKiller</id>
  <name>CoinKiller</name>
  <summary>A level editor for NSMB2</summary>
  <developer_name>Arisotura</developer_name>
  <launchable type="desktop-id">io.github.Arisotura.CoinKiller.desktop</launchable>
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>GPL-3.0</project_license>
  <description>
    <p>A level editor for NSMB2. Uses Qt6 and is coded in C++</p>
    <p>CoinKiller requires a dump of NSMB2</p>
  </description>
  <releases>
    <release version="v1.1" date="2023-01-17" type="stable">
      <url>https://github.com/Arisotura/CoinKiller/releases/tag/v1.1</url>
      <description>
        <ul>
          <li>Fix bounding tooltips</li>
        </ul>
      </description>
    </release>
    <release version="v1.0" date="2022-06-26" type="stable">
      <url>https://github.com/Arisotura/CoinKiller/releases/tag/v1.0</url>
    </release>
    <release version="v0.15" date="2020-12-09" type="stable">
      <url>https://github.com/Arisotura/CoinKiller/releases/tag/v0.15</url>
    </release>
    <release version="v0.14" date="2020-07-01" type="stable">
      <url>https://github.com/Arisotura/CoinKiller/releases/tag/v0.14</url>
    </release>
    <release version="v0.13" date="2020-06-26" type="stable">
      <url>https://github.com/Arisotura/CoinKiller/releases/tag/v0.13</url>
    </release>
    <release version="v0.12" date="2020-05-28" type="stable">
      <url>https://github.com/Arisotura/CoinKiller/releases/tag/v0.12</url>
    </release>
    <release version="v0.11" date="2020-02-28" type="stable">
      <url>https://github.com/Arisotura/CoinKiller/releases/tag/v0.11</url>
    </release>
    <release version="v0.10" date="2019-08-19" type="stable">
      <url>https://github.com/Arisotura/CoinKiller/releases/tag/v0.10</url>
    </release>
    <release version="v0.9" date="2018-12-29" type="development">
      <url>https://github.com/Arisotura/CoinKiller/releases/tag/v0.9</url>
    </release>
  </releases>
  <url type="homepage">https://github.com/Arisotura/CoinKiller</url>
  <url type="bugtracker">https://github.com/Arisotura/CoinKiller/issues</url>
  <categories>
    <category>Game</category>
    <category>Qt</category>
  </categories>
  <recommends>
    <control>pointing</control>
    <control>keyboard</control>
  </recommends>
  <content_rating type="oars-1.1"/>
  <provides>
    <binary>CoinKiller</binary>
  </provides>
  <keywords>
    <keyword>Editor</keyword>
    <keyword>Mario</keyword>
    <keyword>Nintendo</keyword>
    <keyword>3DS</keyword>
    <keyword>Hack</keyword>
  </keywords>
</component>

Corrupted settings when killing CoinKiller

Killing CoinKiller in Task Manager while a level is open will cause it to crash when opening a level.

OS: Windows 10

  1. Open any level in CoinKiller
  2. Kill CoinKiller using Task Manager
  3. Reopen CoinKiller and open any level
  4. Crash

The crash happens because CoinKiller tries to load the level using the cached level editor state and fails.
To fix this crash:

  1. Open Windows Registry
  2. Navigate to Computer\HKEY_CURRENT_USER\Software\Blarg City\CoinKiller
  3. Delete the key lvleditorState

Deselect option/keybind

Currently, you can deselect files with the mouse by clicking anywhere in the canvas a tile isn't placed. A Ctrl+D shortcut would be very useful to change the current tile without also changing the selection.

Updated entrancetypes.txt

I've made some changes to entrancetypes.txt to update it:

Normal?
Door Exit
Pipe Facing Up
Pipe Facing Down
Pipe Facing Left
Pipe Facing Right
Falling (Fast)
Ground Pound
Sliding
Swimming
Normal (Mispositioned)
Normal (Mispositioned)
Normal (Mispositioned)
Unknown 1
Tower Boss Door Exit
Mini Pipe Facing Up
Mini Pipe Facing Down
Mini Pipe Facing Left
Mini Pipe Facing Right
Jumping (Facing Right)
Vine Entrance
Pipe Facing Towards Screen
Boss Entrance (Standing)
Jumping (Facing Left)
Boss Entrance (Jumping Right)
Boss Entrance (Falling Right)
Door Entrance
Unknown 3 (Crash)
Unknown 4 (Freeze)
Walking Right (from 4 blocks behind entrance pos. to entrance pos.)
Walking Left (from 4 blocks behind entrance pos. to entrance pos.)

Add rotation previews

should add the rotation previews from miyamoto but make them not laggy and crash like miyamoto

Preview tile randomization

There should be a toggleable feature that allows for tile randomization to be previewed in the editor.

It should also include a function to reroll the randomization, either by re-toggling it, or with a separate button/keybind.

Can't compile on Ubuntu 20.04

These are the errors I get when I try to compile it with QtCreator:

../CoinKiller/level.cpp:1092:28: error: ‘class QList<Sprite*>’ has no member named ‘swapItemsAt’
1092 | rightCamLimits.swapItemsAt(i, i+1);
| ^~~~~~~~~~~
../CoinKiller/level.cpp:1097:36: error: ‘class QList<Sprite*>’ has no member named ‘swapItemsAt’
1097 | rightCamLimits.swapItemsAt(j-1, j);
| ^~~~~~~~~~~
../CoinKiller/level.cpp:1108:29: error: ‘class QList<Sprite*>’ has no member named ‘swapItemsAt’
1108 | bottomCamLimits.swapItemsAt(i, i+1);
| ^~~~~~~~~~~
../CoinKiller/level.cpp:1113:37: error: ‘class QList<Sprite*>’ has no member named ‘swapItemsAt’
1113 | bottomCamLimits.swapItemsAt(j-1, j);
| ^~~~~~~~~~~
../CoinKiller/tileseteditorwindow.cpp: In member function ‘void TilesetEditorWindow::loadBehaviors()’:
../CoinKiller/tileseteditorwindow.cpp:308:52: warning: format not a string literal and no format arguments [-Wformat-security]
308 | qDebug("behaviors.xml from: " + time.toLatin1());

"Duplicate tileset" button

I'd like to be able to duplicate and rename existing tilesets. This prevents the need to overwrite base game content. Duplicating tilesets manually is an arduous process.

AUR Packages

coinkiller-git: Fetches the latest copy of the source code and builds it and then installs it
coinkiller: fetches the latest stable version (at this time v0.12) and compiles that and installs it
coinkiller-bin: will be created if prebuild binaries exist. This will fetch those and install them from said binaries.

This might sound complicated but most Arch users compile everything from source but still some dont.
Arch's package names are the same for almost every other package. Keep up the work on this editor.

For more info: https://itsfoss.com/aur-arch-linux/

Think of the AUR like one huge PPA that any developer can contribute too

Ctrl+Scroll to zoom

In the level editor, being able to zoom with the scroll wheel would be great.

Switch area slots

A feature for switching around area slots in a level (ie. switching Area 2 with Area 1) would be great for testing, as Mario always spawns in Area 1. This would prevent the need for using a new level to test with Area 1 each time, or the need to use checkpoints.

Suggestion: Make object placement like reggie

Suggestion: Make object/sprite/whatever placement like reggie
i.e.:

  • don't select object when it is placed
  • only replace selected objects by clicking on an object from the pallete if "alt" is pressed
  • make it so you can change layer of a tileset object by holding "alt" and clicking on "layer 1" or "layer 2" and remove the "change layer up-down" buttons

these would make level editing much easier and more efficient

Better layer visualization

Similar to #76, but this issue is more about object visuals. Layers can be very annoying to tell the difference between.

I'd like for individual layers to:

  • Be shown or hidden (with buttons)
  • Be displayed with a certain opacity depending on the currently selected layer (as a numerical setting from 0-100)

what(): SARC: invalid file on Arch Linux

Compiled with QT Creator, GCC 64-bit, after opening the "romfs" folder it crashes with this error:
what(): SARC: invalid file
For some reason, it didn't work initially (may be a problem with GCC), I had to add "int" before "typeRound" in "unitsconvert.cpp". I will try compiling in Windows, probably an issue with GCC/Arch.

Shift+Arrow to nudge

Moving objects 1 tile at a time with the arrow keys would be nice.

Also, Ctrl+Shift+Arrow should nudge sprites by half a tile.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.