Commit Graph

  • d392ad2c79 100NvimTree_1 done with functionality to export collisions Humza Shahid 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 Humza Shahid 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 Humza Shahid 2025-07-13 15:14:19 +01:00
  • d98b815516 done generating collision string Humza Shahid 2025-07-13 15:02:13 +01:00
  • 7cfbd3cdb3 begin creating a string for collision data Humza Shahid 2025-07-13 14:35:50 +01:00
  • 7ec1e34bb8 add 'rgb' colour values when creating export string Humza Shahid 2025-07-13 14:05:41 +01:00
  • 69494c368e done fixing errors in output from CollosionTrin.toExportString (I forgot to increment 'ey' if 'y' = 'ey') Humza Shahid 2025-07-13 14:03:52 +01:00
  • a60d13c5ef improvements to generated export string (matches more closely to expected result) Humza Shahid 2025-07-13 04:03:44 +01:00
  • 0e141174b2 progress fixing bugs in generated export string Humza Shahid 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 Humza Shahid 2025-07-12 19:34:52 +01:00
  • dbb1676fbe done coding functionality to create a string suitable for exporting Humza Shahid 2025-07-12 19:16:36 +01:00
  • a97f838a64 finished coding export string, I think/hope Humza Shahid 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) Humza Shahid 2025-07-12 19:00:24 +01:00
  • 1fb6b43ac3 progress coding function to create an export string Humza Shahid 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 Humza Shahid 2025-07-12 13:50:20 +01:00
  • 750246dcfd format files related to parser Humza Shahid 2025-07-12 07:19:34 +01:00
  • b58100ca7e done implementing load-squares functionality Humza Shahid 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) Humza Shahid 2025-07-12 07:03:09 +01:00
  • eb0b8d31b2 save grid to custom format Humza Shahid 2025-07-12 06:03:59 +01:00
  • 04bb7a18c0 add function to quad tree to turn items into strings (for later saving to file) Humza Shahid 2025-07-12 03:38:20 +01:00
  • 21512cc979 done with parsing logic in functional core Humza Shahid 2025-07-12 03:08:05 +01:00
  • bb5e3e8ef3 begin parser to load from file Humza Shahid 2025-07-12 02:02:21 +01:00
  • 5b63471b30 refactor some functionality by passing a higher order function Humza Shahid 2025-07-11 23:56:20 +01:00
  • 22173a0cdb add functionality to delete pixel Humza Shahid 2025-07-11 23:55:12 +01:00
  • 973a1610ce add functionality to delete pixel Humza Shahid 2025-07-11 23:47:28 +01:00
  • 86369db055 add functionality for changing height of canvas Humza Shahid 2025-07-11 22:57:20 +01:00
  • a448fcf469 fix bugs relating to resizing canvas width Humza Shahid 2025-07-11 22:20:29 +01:00
  • e3729a1ce5 add scaffolding in imperative shell to help update canvas width and height Humza Shahid 2025-07-11 17:45:16 +01:00
  • 08ed5cc3d5 progress updating canvas width at runtime Humza Shahid 2025-07-11 17:41:47 +01:00
  • e760b158ac change how modal num works so that it is only clipped to 255 if setting a new colour/alpha value Humza Shahid 2025-07-11 17:30:57 +01:00
  • ac69e95a0c add function to help change size of canvas Humza Shahid 2025-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 Shahid 2025-07-11 17:03:48 +01:00
  • c898d83d6e add undo and redo fields (but we are not acting on them) Humza Shahid 2025-07-11 16:54:07 +01:00
  • 7028391298 add functionality to draw in different colours Humza Shahid 2025-07-11 16:39:39 +01:00
  • 040fc67c80 add code to let user change alpha valua Humza Shahid 2025-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 Shahid 2025-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 Shahid 2025-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 Shahid 2025-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 Shahid 2025-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 Shahid 2025-07-11 01:45:47 +01:00
  • 024f1293c0 formatt a couple of files Humza Shahid 2025-07-11 00:57:55 +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 Shahid 2025-07-11 00:57:29 +01:00
  • 8e8947379a additional graph lines improvements Humza Shahid 2025-07-10 23:54:51 +01:00
  • cda90e3f44 progress with aligning graph lines Humza Shahid 2025-07-10 22:48:34 +01:00
  • 3fe3aa1d4d finished coding merging functionality Humza Shahid 2025-07-08 16:59:21 +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 Shahid 2025-07-08 08:00:37 +01:00
  • 0b954f81a1 progress with merging vertically Humza Shahid 2025-07-08 07:52:26 +01:00
  • ee3764b253 code additional merging functions, which merge vertically and horizontally as much as possible Humza Shahid 2025-07-08 03:18:57 +01:00
  • 12cfe7a04e rewrite merge functions which query grid instead of quad tree (only partially) Humza Shahid 2025-07-08 03:07:24 +01:00
  • aca7acc232 done writing merge function Humza Shahid 2025-07-08 00:42:46 +01:00
  • 9bf5e2e68b write all preparatory merging functions; only need to write top level merge function now. Humza Shahid 2025-07-08 00:25:52 +01:00
  • 0464dd1ce3 implement functions to get leftmost and rightmost x coordinates with mergeable items Humza Shahid 2025-07-07 23:52:24 +01:00
  • fb2bc76c10 code search function to query quad tree Humza Shahid 2025-07-07 23:08:47 +01:00
  • ab9e1e23d0 make odd-number-division case more explicit when building quad tree Humza Shahid 2025-07-07 22:37:01 +01:00
  • 6b5c0d9ba1 preparation for functorising quad tree Humza Shahid 2025-07-07 02:36:29 +01:00
  • bd97aeceac clean up quad tree code, deleting unused functions and removing intermediate some data structures Humza Shahid 2025-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 Shahid 2025-07-07 01:48:15 +01:00
  • dc2a52bcc8 improve graph lines Humza Shahid 2025-07-06 17:50:46 +01:00
  • 6a6a36a277 fix bug regarding squares not updating properly, and remove debugging code for that functionality Humza Shahid 2025-07-06 15:54:08 +01:00
  • bba293d406 fix bug in not properly updating squares vector Humza Shahid 2025-07-06 15:52:10 +01:00
  • 270481a0ba done refactoring (next: need to do some bug fixing) Humza Shahid 2025-07-06 15:14:19 +01:00
  • dd291096d5 refactor file thread Humza Shahid 2025-07-06 15:06:00 +01:00
  • 2e0549097e begin merging files which were previously in temp-squares directory into main Humza Shahid 2025-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 Shahid 2025-07-06 14:45:20 +01:00
  • 1c34bd715f finished with normal nmode for app-update refactoring Humza Shahid 2025-07-06 14:26:11 +01:00
  • 11052e801f port function to handlw window resizing event Humza Shahid 2025-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 Shahid 2025-07-06 14:01:03 +01:00
  • 4a87b0f16e port 'addCoordinates' function to app-update.sml Humza Shahid 2025-07-06 13:52:38 +01:00
  • 833005703b a bit of refactoring for quad tree's 'toTriangles' function Humza Shahid 2025-07-06 13:26:33 +01:00
  • 1ce3a36db4 remove unused parameter from quad tree Humza Shahid 2025-07-06 13:23:14 +01:00
  • 0bdf5064d8 port arrow movement (involving functional core) Humza Shahid 2025-07-06 03:58:45 +01:00
  • 20c02814e4 refactoring progress Humza Shahid 2025-07-06 03:53:26 +01:00
  • a919e3d3d4 add function to convert from absolute pixel value to NDC Humza Shahid 2025-07-06 03:35:36 +01:00
  • ed64b464c8 progress with refactoring Humza Shahid 2025-07-06 03:21:18 +01:00
  • df5f326e36 begin refactoring AppUpdate structure Humza Shahid 2025-07-06 02:49:38 +01:00
  • e8e090a19d add refactored message types to temp folder Humza Shahid 2025-07-06 02:30:15 +01:00
  • 441e5fdd69 add graph lines to refactored version Humza Shahid 2025-07-06 02:15:16 +01:00
  • 79be94bcbd begin refactoring to use square pixels instead of triangles, focusing on functional core first Humza Shahid 2025-07-06 01:38:02 +01:00
  • 513cbd3dba code a quad tree decomposition algorithm Humza Shahid 2025-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 Shahid 2025-06-10 13:01:05 +01:00
  • aa068ea48e remove some opaque signature ascriptions Humza Shahid 2025-04-22 20:49:56 +01:00
  • e59a1c67d8 begin scaffolding for adding deletion tests Humza Shahid 2025-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 Shahid 2025-03-22 20:58:39 +00:00
  • dc3c1340bf add tests for 'F' motion Humza Shahid 2025-03-22 13:50:24 +00:00
  • 8fa5677d4d add tests for 'f' motion Humza Shahid 2025-03-22 13:41:50 +00:00
  • 87272a2667 add tests for 'T' motion Humza Shahid 2025-03-22 13:09:50 +00:00
  • 9eae0c2d48 begin adding multi-char tests (for motions such as 't<char>') Humza Shahid 2025-03-22 06:13:01 +00:00
  • 884c5fa08d pull new update from lib/brolib-sml Humza Shahid 2025-03-22 05:31:58 +00:00
  • 649bcb66e1 a bit of refactoring to allow addition of more tests Humza Shahid 2025-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 Shahid 2025-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 Shahid 2025-03-21 10:37:19 +00:00
  • a0aac81b6c make whip attack smoother when facing right (by doubling frames and manually coding interpolations) Humza Shahid 2025-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 Shahid 2025-03-12 23:25:29 +00:00
  • 0d34db359c accuracy improvement for Whip.leftFrames Humza Shahid 2025-03-01 02:13:36 +00:00
  • 3e9933bdd0 fix exception with attacking fallingEnemies, by regenerating fallingTree on each collision Humza Shahid 2025-03-01 01:53:30 +00:00
  • e9e9d80a78 add leftFrames for whip attack Humza Shahid 2025-03-01 01:48:15 +00:00
  • 693630a655 add collision detection for whip attack Humza Shahid 2025-03-01 01:31:18 +00:00
  • 94dc17011e add a couple of frames to right-attack animation, making it appear smoother and less choppy Humza Shahid 2025-03-01 01:11:16 +00:00
  • 39f4614f13 animate whip (only visual; no collision detection) Humza Shahid 2025-02-28 14:11:57 +00:00
  • 54a4ed6d64 code box locations of right frames for whip attack Humza Shahid 2025-02-28 13:18:42 +00:00