Commit Graph

206 Commits

Author SHA1 Message Date
894cd50073 restructure a bit to make the GLFW-initialisation code its own separate structure/file, and so we can use shell.sml for running program in different ways 2025-08-26 13:00:18 +01:00
4a9b5947e7 add functionality to flip drawing horizontally 2025-08-12 22:25:16 +01:00
a5b988d136 fix bug in LayerTree.map function: replace old value with new value (the result of applying the callback function) 2025-08-09 14:01:55 +01:00
e160e997d3 fix bug: when loading a parsed layer tree, graph lines should be regenerated 2025-08-09 13:50:31 +01:00
c29746dd5b in save string, add each layer to a new line. This helps with readability and text manipulation (if we want to edit the save file directly for whatever reason) 2025-08-09 13:23:35 +01:00
17a8885d77 fix exception that was previously triggered when trying to insert after loading a parsed tree, by making sure that the arrowX and arrowY fields are clamped by the new canvas width and height 2025-08-09 13:08:26 +01:00
6f91c6fc52 fix compile errors left in previous commit 2025-08-09 12:48:56 +01:00
143d02163b fix bugs related to parsing and loading file (did not implement new BNF grammar properly) 2025-08-09 12:39:41 +01:00
d6f7583273 progress towards saving export string in correct format (but note there is currently an exception somewhere because of changes; need to fix) 2025-08-09 11:56:18 +01:00
99a47a410f fix loading to use and return layer tree 2025-08-09 11:42:37 +01:00
b765e406c7 change BNF (but not implementation of BNF) for parsing, to handle layers, and also change minimum key in layer tree to be 1 2025-08-09 11:10:34 +01:00
d3ace298d3 remove 'squares' field from app type, and refactor most functions in common-update.sml to use layer tree instead of squares vector 2025-08-09 10:19:26 +01:00
ab888f8410 update 'changeCanvasWidth/Height' functions to use layer tree 2025-08-09 10:11:37 +01:00
21624aee0d change 'move-mode.sml' to use layer tree everywhere instead of squares 2025-08-09 09:57:19 +01:00
6a39f43916 remove some dead code 2025-08-09 09:39:59 +01:00
852b2cf1f1 remove 'undo' and 'redo' fields from app_type, because I won't be adding that functionality for the forseeable future 2025-08-09 09:35:52 +01:00
58439d8df8 progress moving away from 'squares' field to layer tree 2025-08-09 09:32:34 +01:00
34c29bcbba add functions to add and remove pixels from layer-tree 2025-08-09 09:13:03 +01:00
e634bb25d7 add grid module, and change some functions in layer-tree.sml to use it instead of having grid-logic in there 2025-08-09 08:43:51 +01:00
6cd2b85d8b change integer layer field when 'l' is pressed 2025-08-09 08:36:14 +01:00
8715879ceb add layerTree field to app type 2025-08-09 08:22:28 +01:00
8d855be27a add layer field to app type, as preparation for switching to layer tree 2025-08-09 08:15:11 +01:00
8e475a3abe add functionality to change grid size for layer tree 2025-08-09 08:04:22 +01:00
318ca4fdf1 begin coding layer tree so that we have toggleable layers 2025-08-09 07:48:49 +01:00
cb9e66f349 add functionality to resize window in move mode 2025-08-09 07:17:48 +01:00
fa2a5c878c add ability to select cursor colour 2025-08-09 07:04:03 +01:00
7a3fc728f6 fix bugs moving image up/down in move mode 2025-08-09 00:22:25 +01:00
f46ca01d42 add ability to move from normal mode to move mode, and from move mode back to normal mode 2025-08-09 00:13:02 +01:00
50bdd31d59 progress with move mode 2025-08-08 23:56:24 +01:00
f1cd3fbf85 begin coding functionality to move squares 2025-08-08 23:39:29 +01:00
0445595990 when generating collision string, map 'squares' vector to a new vector which treats all visible (non-transparent) colours the same. This allows us to ignore colour differences when generating the collision string, which is good because the colour of a pixel doesn't make a difference to collision detection. 2025-07-30 07:27:55 +01:00
eedaf0450f fix bugs with generating export strings from quad tree (have to add 1 to ex and ey indiscriminately, except if we are not in the canvas width/height dimensions) 2025-07-29 15:55:38 +01:00
d392ad2c79 100NvimTree_1 done with functionality to export collisions 2025-07-13 15:45:09 +01:00
7e96203f92 done adding export-collision functionality, including collision message, in functional core. Next: add imperative shell scaffolding 2025-07-13 15:33:32 +01:00
de16e816b4 add scale parameter for collisions, so that we can easily use collisions when object is larger than normal/native 2025-07-13 15:14:19 +01:00
d98b815516 done generating collision string 2025-07-13 15:02:13 +01:00
69494c368e done fixing errors in output from CollosionTrin.toExportString (I forgot to increment 'ey' if 'y' = 'ey') 2025-07-13 14:03:52 +01:00
a60d13c5ef improvements to generated export string (matches more closely to expected result) 2025-07-13 04:03:44 +01:00
0e141174b2 progress fixing bugs in generated export string 2025-07-13 01:40:57 +01:00
31bc8485f3 add function in imperative shell to save export string, and fix errors in generating export string from functional core 2025-07-12 19:34:52 +01:00
dbb1676fbe done coding functionality to create a string suitable for exporting 2025-07-12 19:16:36 +01:00
a97f838a64 finished coding export string, I think/hope 2025-07-12 19:08:36 +01:00
9a748c8e0d done converting coordinates to triangles for exporting (but I still need header and footer for that) 2025-07-12 19:00:24 +01:00
1fb6b43ac3 progress coding function to create an export string 2025-07-12 18:52:30 +01:00
d0c12d4a87 fix bugs in parse-grid.sml update functions: exit loopX and loopY if coordinate is not in range of grid 2025-07-12 13:50:20 +01:00
b58100ca7e done implementing load-squares functionality 2025-07-12 07:17:52 +01:00
dcf6bc074d fix lexer/parser bugs, add code in file-thread.sml to handle loading/saving of files (but loading is not completely finished yet) 2025-07-12 07:03:09 +01:00
eb0b8d31b2 save grid to custom format 2025-07-12 06:03:59 +01:00
04bb7a18c0 add function to quad tree to turn items into strings (for later saving to file) 2025-07-12 03:38:20 +01:00
bb5e3e8ef3 begin parser to load from file 2025-07-12 02:02:21 +01:00