Commit Graph

1848 Commits

Author SHA1 Message Date
18bd81134b done handling variable window width/height in wall.sml 2024-12-17 04:59:15 +00:00
20c4060124 progress in handling variable window width/height (mostly only in imperative shell though) 2024-12-16 00:58:59 +00:00
cc7f30f718 add GameType.game_type which stores player and wall types, add GameUpdate.update function which takes a game type and returns a new game type, and refactor player/wall files, and gl-draw file, in light of these changes 2024-12-15 09:10:19 +00:00
1017bf1b7a cache 'jumpPressed' state inside player type. We use this boolean to check if the player has jumped before. If they have jumped before, then holding the up button does not cause another jump when falling down (unlike before this commit) 2024-12-14 21:05:51 +00:00
8b8d6f07bc change floatLimit to 3, which seems to be fine 2024-12-14 18:11:59 +00:00
df186308bb reduce floatLimit to 4, which feels better in the game 2024-12-14 18:07:12 +00:00
62a6a831ed add FLOATING case to player's y_axis type, so user hovers briefly after jumping, before gravity is applied (this is normal game physics) 2024-12-14 18:02:57 +00:00
cea269689e make it so that player will jump shorter distance if they only press up button for short period of time 2024-12-14 08:18:39 +00:00
34884b1b50 make sure gravity is applied when player walks off platform 2024-12-14 08:11:23 +00:00
1901043535 add functionality to move player by using arrow keys 2024-12-14 07:59:43 +00:00
9144c97fba get player to react to wall quad tree 2024-12-13 22:48:34 +00:00
9d42e14b2f add basic imperative shell 2024-12-10 19:48:07 +00:00
fb2be7be73 add block.sml which just generates a block for OpenGL 2024-12-10 11:55:40 +00:00
a1b8aead30 complete function to get collision sides in quad tree 2024-12-10 08:42:36 +00:00
7dbacd4792 add function to return which side a collision occurs at 2024-12-09 07:05:21 +00:00
544460aec7 begin coding player 2024-12-09 04:37:40 +00:00
244640c1d6 add signature to quad-tree.sml, making it an opaque module 2024-12-09 00:23:00 +00:00
068f0277b9 add function to get list of collision object from quad tree 2024-12-08 23:38:50 +00:00
6f14edd528 code insert function for quad tree 2024-12-07 11:12:19 +00:00
fa723f27fa basic motion tests done 2024-11-27 10:17:42 +00:00
57f012d655 reimplement vi0 and helper functions so that they are likely faster (vi0 bring cursor to start of current line; before, this was done by checking each character in the string backwards, but now it is done by looking at the line metadata, which is faster for us by some constant factor) 2024-11-26 21:57:02 +00:00
db64917416 add tests for 'E' motion 2024-11-26 11:20:32 +00:00
bc856d3470 add tests for 'e' motion 2024-11-26 11:03:52 +00:00
233a21456d add tests for matching pairs 2024-11-26 00:43:02 +00:00
2cc7bebbd7 add tests for caret ^ motion 2024-11-25 22:13:02 +00:00
c28dc429b7 address todo in text-builder.sml by adding prerequisite: always call SearchList.goToNum before calling TextBuilder.build 2024-11-25 04:37:47 +00:00
d399016c1a add 'SearchList.exists' function to fcore/search-list.sml function, and make sure we check if mmatchedIdx exists before inserting or appending (so we maintain set-like semantics where each number exists only once) 2024-11-24 21:38:58 +00:00
c6343cac40 in fcore/search-list.sml, only call 'insMiddle' function if new value is not in middle 2024-11-24 20:42:17 +00:00
eb3eb6c41f fix bug in '^' motion: only move cursor if (chr = /home/humza/Downloads/sml/shf/fcore/cursor.sml' '), not if Char.isSpace (which also returns true if chr is newline or tab) is true 2024-11-24 20:32:47 +00:00
98f8313141 add motion tests for '$' command 2024-11-24 20:15:07 +00:00
7d73146cf4 remove line breaks between tests in test/test.sml, because more code fits on screen that way, and the differing intentation is enough of a visual sign to mark when new test begins (aside from the 'test' keyword itself) 2024-11-24 19:43:06 +00:00
88ef79ad41 add tests for '0' movement motion 2024-11-24 19:35:47 +00:00
73482a7cc2 give different strings for some tests 2024-11-24 13:43:22 +00:00
d76b753fa7 add tests for 'W' move motion 2024-11-24 12:19:43 +00:00
04d4e013e2 ensure that searchList is deleted from when calling delete functions other than 'helpRemoveChr' 2024-11-23 06:10:40 +00:00
0bfe549e04 add just one more 'word' test, extract steps to delete from search list into a reusable function (don't need to memorise the steps), and fix bug in cursor.sml where we were looking at tl without calculating correct strIdx 2024-11-23 05:16:37 +00:00
4a09a5716d add more 'w'/'word' motion tests 2024-11-19 22:41:07 +00:00
c48eeb07b3 finish testing motions for 'k', meaning tests for hjkl motions are complete (can test other motions like 'w', '0', 'e', etc. next, and then test delete motions after that) 2024-11-19 13:02:13 +00:00
26850da6d3 done testing 'j' motion; next is to test 'k' motion 2024-11-19 06:43:00 +00:00
f6d4b10d44 break test suite in test.sml into more managable chunks (one test per motion) 2024-11-19 06:35:47 +00:00
64eec10049 add tests for 'j' motion 2024-11-19 06:27:38 +00:00
e2dfe25d36 a bit of refactoring in test.sml 2024-11-19 05:51:46 +00:00
96080d0964 a bit of repository management (add Makefile to make it less verbose to run tests, and add .gitignore to avoid committing built binaries) 2024-11-19 04:32:37 +00:00
afcd3ee70b add additional tests for vi's 'h' and 'l' motions 2024-11-19 04:21:54 +00:00
09165b48d9 format test file 2024-11-19 03:53:22 +00:00
d92d3b3a26 add a couple of tests 2024-11-19 03:53:05 +00:00
55c371370f add a couple of tests 2024-11-19 03:48:30 +00:00
ee73a1c858 add Railroad framework as a git submodule properly 2024-11-18 13:50:02 +00:00
b5e1c3757f add unit tests, etc. 2024-11-18 13:47:00 +00:00
ef395feea8 add similar fix described in previous commit to 'moveLeftAndDelete' function 2024-11-18 11:42:23 +00:00