d392ad2c79
100NvimTree_1 done with functionality to export collisions
Humza Shahid2025-07-13 15:45:09 +01:00
7e96203f92
done adding export-collision functionality, including collision message, in functional core. Next: add imperative shell scaffolding
Humza Shahid2025-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
Humza Shahid2025-07-13 15:14:19 +01:00
69494c368e
done fixing errors in output from CollosionTrin.toExportString (I forgot to increment 'ey' if 'y' = 'ey')
Humza Shahid2025-07-13 14:03:52 +01:00
a60d13c5ef
improvements to generated export string (matches more closely to expected result)
Humza Shahid2025-07-13 04:03:44 +01:00
31bc8485f3
add function in imperative shell to save export string, and fix errors in generating export string from functional core
Humza Shahid2025-07-12 19:34:52 +01:00
dbb1676fbe
done coding functionality to create a string suitable for exporting
Humza Shahid2025-07-12 19:16:36 +01:00
9a748c8e0d
done converting coordinates to triangles for exporting (but I still need header and footer for that)
Humza Shahid2025-07-12 19:00:24 +01:00
1fb6b43ac3
progress coding function to create an export string
Humza Shahid2025-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
Humza Shahid2025-07-12 13:50:20 +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)
Humza Shahid2025-07-12 07:03:09 +01:00
e760b158ac
change how modal num works so that it is only clipped to 255 if setting a new colour/alpha value
Humza Shahid2025-07-11 17:30:57 +01:00
ac69e95a0c
add function to help change size of canvas
Humza Shahid2025-07-11 17:21:50 +01:00
5cd909430d
a bit of refactoring, moving code to update 'squares' vector in app-with.sml to its own function (to make it reuseable)
Humza Shahid2025-07-11 17:03:48 +01:00
c898d83d6e
add undo and redo fields (but we are not acting on them)
Humza Shahid2025-07-11 16:54:07 +01:00
7028391298
add functionality to draw in different colours
Humza Shahid2025-07-11 16:39:39 +01:00
040fc67c80
add code to let user change alpha valua
Humza Shahid2025-07-11 15:34:29 +01:00
104cdf33c2
replace manual conversion of absolute pixel -> NDC with a call to the 'fromPixelX/Y' function in the Ndc module
Humza Shahid2025-07-11 03:54:38 +01:00
9c03425dc6
change Ndc.fromPixelX and Ndc.fromPixelY functions to not try and centre pixels (centering is handled in the click points instead)
Humza Shahid2025-07-11 03:48:04 +01:00
fbec9ec2a7
adjust click points to always keep the canvas at the centre of the screen, even when the canvas width is different from the canvas height
Humza Shahid2025-07-11 02:26:24 +01:00
3897a109fb
fix last visual bug with graph lines: we were calling 'Vector.sub' on the wrong vector (mixed up xClickPoints and yClickPoints), but now we are calling 'Vector.sub' on the correct vector
Humza Shahid2025-07-11 01:56:59 +01:00
f2b1fc9e95
fix hard to find edge case in graph lines: integer division gave a visual bug, but real/float division (which preserves decimal) fixed that bug
Humza Shahid2025-07-11 01:45:47 +01:00
d5fda8b488
improve creation of click points, so that we can have a pixel be a perfect square, even if the canvas isn't
Humza Shahid2025-07-11 00:57:29 +01:00
1ae67bb616
address remaining vertical duplicate issue (I was returning 1 from getTopmostY's loop, when I was meant to be returning 0)
Humza Shahid2025-07-08 08:00:37 +01:00
9bf5e2e68b
write all preparatory merging functions; only need to write top level merge function now.
Humza Shahid2025-07-08 00:25:52 +01:00
0464dd1ce3
implement functions to get leftmost and rightmost x coordinates with mergeable items
Humza Shahid2025-07-07 23:52:24 +01:00
fb2bc76c10
code search function to query quad tree
Humza Shahid2025-07-07 23:08:47 +01:00
ab9e1e23d0
make odd-number-division case more explicit when building quad tree
Humza Shahid2025-07-07 22:37:01 +01:00
6b5c0d9ba1
preparation for functorising quad tree
Humza Shahid2025-07-07 02:36:29 +01:00
bd97aeceac
clean up quad tree code, deleting unused functions and removing intermediate some data structures
Humza Shahid2025-07-07 02:18:15 +01:00
9b2f3e90cb
amend bug relating to being unable to select on quad tree, related to dividing odd numbers by 2 (because performing integer division on an odd number by 2 results in rounding, which we don't want)
Humza Shahid2025-07-07 01:48:15 +01:00
2e0549097e
begin merging files which were previously in temp-squares directory into main
Humza Shahid2025-07-06 14:56:54 +01:00
395d6002d8
done refactoring functional core (mostly); next, need to move folders in temp-squares directory into main
Humza Shahid2025-07-06 14:45:20 +01:00
1c34bd715f
finished with normal nmode for app-update refactoring
Humza Shahid2025-07-06 14:26:11 +01:00
11052e801f
port function to handlw window resizing event
Humza Shahid2025-07-06 14:08:44 +01:00
d231edda6a
modify ClickPoints.getClickPos function to detect click for square/pixel, not for triangle. (Checking if mouse is between two click points instead of if mouse is around one click point.)
Humza Shahid2025-07-06 14:01:03 +01:00
4a87b0f16e
port 'addCoordinates' function to app-update.sml
Humza Shahid2025-07-06 13:52:38 +01:00
833005703b
a bit of refactoring for quad tree's 'toTriangles' function
Humza Shahid2025-07-06 13:26:33 +01:00
1ce3a36db4
remove unused parameter from quad tree
Humza Shahid2025-07-06 13:23:14 +01:00
0bdf5064d8
port arrow movement (involving functional core)
Humza Shahid2025-07-06 03:58:45 +01:00
79be94bcbd
begin refactoring to use square pixels instead of triangles, focusing on functional core first
Humza Shahid2025-07-06 01:38:02 +01:00
513cbd3dba
code a quad tree decomposition algorithm
Humza Shahid2025-07-06 00:32:28 +01:00
4b6d917be9
fix a purely visual bug: do not transition to 'DROP_BELOW_PLATFORM state when player is touching ground wall
Humza Shahid2025-06-10 13:01:05 +01:00
aa068ea48e
remove some opaque signature ascriptions
Humza Shahid2025-04-22 20:49:56 +01:00
e59a1c67d8
begin scaffolding for adding deletion tests
Humza Shahid2025-03-23 07:47:38 +00:00
cbc1359de1
add tests for cursor movement 'gg', which means all cursor movements have tests now. Next: add tests for delete motions.
Humza Shahid2025-03-22 20:58:39 +00:00
649bcb66e1
a bit of refactoring to allow addition of more tests
Humza Shahid2025-03-22 05:18:25 +00:00
da86e79115
make player's heatth decrement when attacked, and when player's health reaches 0, boot player back to title screen
Humza Shahid2025-03-21 10:58:10 +00:00
f784244e81
make left-attack frames smoother, just as right-attack frames were made smoother in previous commit
Humza Shahid2025-03-21 10:37:19 +00:00
a0aac81b6c
make whip attack smoother when facing right (by doubling frames and manually coding interpolations)
Humza Shahid2025-03-21 10:17:40 +00:00
a84490c86c
use parametric polymorphism for value in gap_map.sml, instead of specifying value via functor. This is more flexible because a type which is defined after the functor can be used with the map. (The key in gap_map.sml is still specified by functor, though, which is necessary because the structure uses comparison functions which work with the key.)
Humza Shahid2025-03-12 23:25:29 +00:00
0d34db359c
accuracy improvement for Whip.leftFrames
Humza Shahid2025-03-01 02:13:36 +00:00
3e9933bdd0
fix exception with attacking fallingEnemies, by regenerating fallingTree on each collision
Humza Shahid2025-03-01 01:53:30 +00:00