It's about time I man up and rewrite this monstrosity in the new and improved ICE Compiler. I'll be doing more than just a solid refactoring job, though. I've gotten lots of helpful feedback from you guys about what else you'd like to see in a new ICE Sprite Creator, and I've kind of storyboarded the layout for the new program. Here is what I have in mind:
Special thanks to PT_ for decompiling the original code into plaintext after I lost the source
- ►The Draw button will be moved from [Y=] to [2ND] and [ENTER] like most programs.
►The Draw button on [Y=] will be replaced with an Undo button which reverts to a buffer containing the sprite before the last edit
►"Del to export/exit" will be replaced with "[DEL] to manage sprites"
►Pressing [DEL] will load an entirely new screen. On this screen will be the ten OS sprite names (Str1-Str0) next to 8x8 thumbnails downsampled versions of the sprites, and a number expressing the string length. Sprite dimensions will be stored in an Appvar. If a string is found but does not have a corresponding dimension in the Appvar, a thumbnail will not be shown, and dimensions will have to be specified upon loading the sprite.
►In the menu, up and down arrow keys will navigate between the ten sprites and show a full size version (up to 128x128 or something, after that it will be downsampled) on the right side of the screen.
►The function keys will now read as New, Import, Export, and Quit. New will return to the sprite edit screen after prompting that the progress on the currently opened sprite will be lost this means that the progress in the editor will be lost, not that any OS string will be overwritten. Import will prompt the user to copy the OS string next to the cursor to the editor. Export will prompt the user to copy the sprite within the editor to OS string next to the cursor. Quit will prompt the user to exit the program after warning that the sprite in the editor will be lost unless it has been saved into an OS string.
►Instead of asking for dimensions, the program will automatically render with a blank 8x8 sprite upon starting it.
►Idiotproofing will be robust. No ludicrous sprite dimensions (over 100 width or height), No loading a sprite without a valid string length, asking for dimension confirmation if the dimension Appvar does not match the sprite data.
►Near instant exporting and importing, all within one program instead of two
►Near instant Fill function using floodFill and getPixel
Special thanks to PT_ for decompiling the original code into plaintext after I lost the source