diff --git a/.vscode/settings.json b/.vscode/settings.json index 3aef1c1..e0e964b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,5 +7,6 @@ "cmath": "c", "limits": "c", "new": "c" - } + }, + "cmake.configureOnOpen": false } \ No newline at end of file diff --git a/build/errors.txt b/build/errors.txt index 170529f..f9b644f 100644 --- a/build/errors.txt +++ b/build/errors.txt @@ -1 +1 @@ -{"ringbuffer": "", "event": "", "ctrl": "", "terminal": "", "fumoengine": "", "parseinput": "", "dictionary": "", "fumocommon": "", "win": "", "input": "", "fumotris": "\u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:\u001b[m\u001b[K In function '\u001b[01m\u001b[Kmain\u001b[m\u001b[K':\n\u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:120:37:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Kpassing argument 3 of '\u001b[01m\u001b[KEventAdd\u001b[m\u001b[K' from incompatible pointer type [\u001b[01;35m\u001b[K-Wincompatible-pointer-types\u001b[m\u001b[K]\n 120 | EventAdd(&inst.on_start, &game, \u001b[01;35m\u001b[KFumotrisStart\u001b[m\u001b[K);\n | \u001b[01;35m\u001b[K^~~~~~~~~~~~~\u001b[m\u001b[K\n | \u001b[01;35m\u001b[K|\u001b[m\u001b[K\n | \u001b[01;35m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K\nIn file included from \u001b[01m\u001b[Ksource\\fumoengine/fumoengine.h:3\u001b[m\u001b[K,\n from \u001b[01m\u001b[Ksource\\fumotris\\fumotris.h:2\u001b[m\u001b[K,\n from \u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:1\u001b[m\u001b[K:\n\u001b[01m\u001b[Ksource\\fumoengine\\include/event.h:24:60:\u001b[m\u001b[K \u001b[01;36m\u001b[Knote: \u001b[m\u001b[Kexpected '\u001b[01m\u001b[Khandler\u001b[m\u001b[K' {aka '\u001b[01m\u001b[Kvoid (*)(void *, void *)\u001b[m\u001b[K'} but argument is of type '\u001b[01m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K'\n 24 | bool EventAdd(struct Event *event, void *instance, \u001b[01;36m\u001b[Khandler callback\u001b[m\u001b[K);\n | \u001b[01;36m\u001b[K~~~~~~~~^~~~~~~~\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:121:38:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Kpassing argument 3 of '\u001b[01m\u001b[KEventAdd\u001b[m\u001b[K' from incompatible pointer type [\u001b[01;35m\u001b[K-Wincompatible-pointer-types\u001b[m\u001b[K]\n 121 | EventAdd(&inst.on_update, &game, \u001b[01;35m\u001b[KFumotrisUpdate\u001b[m\u001b[K);\n | \u001b[01;35m\u001b[K^~~~~~~~~~~~~~\u001b[m\u001b[K\n | \u001b[01;35m\u001b[K|\u001b[m\u001b[K\n | \u001b[01;35m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumoengine\\include/event.h:24:60:\u001b[m\u001b[K \u001b[01;36m\u001b[Knote: \u001b[m\u001b[Kexpected '\u001b[01m\u001b[Khandler\u001b[m\u001b[K' {aka '\u001b[01m\u001b[Kvoid (*)(void *, void *)\u001b[m\u001b[K'} but argument is of type '\u001b[01m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K'\n 24 | bool EventAdd(struct Event *event, void *instance, \u001b[01;36m\u001b[Khandler callback\u001b[m\u001b[K);\n | \u001b[01;36m\u001b[K~~~~~~~~^~~~~~~~\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:122:36:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Kpassing argument 3 of '\u001b[01m\u001b[KEventAdd\u001b[m\u001b[K' from incompatible pointer type [\u001b[01;35m\u001b[K-Wincompatible-pointer-types\u001b[m\u001b[K]\n 122 | EventAdd(&inst.on_draw, &game, \u001b[01;35m\u001b[KFumotrisDraw\u001b[m\u001b[K);\n | \u001b[01;35m\u001b[K^~~~~~~~~~~~\u001b[m\u001b[K\n | \u001b[01;35m\u001b[K|\u001b[m\u001b[K\n | \u001b[01;35m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumoengine\\include/event.h:24:60:\u001b[m\u001b[K \u001b[01;36m\u001b[Knote: \u001b[m\u001b[Kexpected '\u001b[01m\u001b[Khandler\u001b[m\u001b[K' {aka '\u001b[01m\u001b[Kvoid (*)(void *, void *)\u001b[m\u001b[K'} but argument is of type '\u001b[01m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K'\n 24 | bool EventAdd(struct Event *event, void *instance, \u001b[01;36m\u001b[Khandler callback\u001b[m\u001b[K);\n | \u001b[01;36m\u001b[K~~~~~~~~^~~~~~~~\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:124:32:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Kpassing argument 3 of '\u001b[01m\u001b[KCoroutineAdd\u001b[m\u001b[K' from incompatible pointer type [\u001b[01;35m\u001b[K-Wincompatible-pointer-types\u001b[m\u001b[K]\n 124 | CoroutineAdd(&inst, &game, \u001b[01;35m\u001b[KFumotrisFall\u001b[m\u001b[K);\n | \u001b[01;35m\u001b[K^~~~~~~~~~~~\u001b[m\u001b[K\n | \u001b[01;35m\u001b[K|\u001b[m\u001b[K\n | \u001b[01;35m\u001b[Knsec (*)(struct Instance *, struct Fumotris *) {aka long long unsigned int (*)(struct Instance *, struct Fumotris *)}\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumoengine/fumoengine.h:35:73:\u001b[m\u001b[K \u001b[01;36m\u001b[Knote: \u001b[m\u001b[Kexpected '\u001b[01m\u001b[Kcoroutine_handler\u001b[m\u001b[K' {aka '\u001b[01m\u001b[Klong long unsigned int (*)(void *, void *)\u001b[m\u001b[K'} but argument is of type '\u001b[01m\u001b[Knsec (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K' {aka '\u001b[01m\u001b[Klong long unsigned int (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K'}\n 35 | bool CoroutineAdd(struct Instance *inst, void *state, \u001b[01;36m\u001b[Kcoroutine_handler callback\u001b[m\u001b[K);\n | \u001b[01;36m\u001b[K~~~~~~~~~~~~~~~~~~^~~~~~~~\u001b[m\u001b[K\n", "vector": "", "tetra": ""} \ No newline at end of file +{"ringbuffer": "", "event": "", "ctrl": "", "terminal": "", "fumoengine": "", "parseinput": "", "dictionary": "", "fumocommon": "", "win": "", "input": "", "fumotris": "\u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:\u001b[m\u001b[K In function '\u001b[01m\u001b[Kmain\u001b[m\u001b[K':\n\u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:138:37:\u001b[m\u001b[K \u001b[01;31m\u001b[Kerror: \u001b[m\u001b[Kpassing argument 3 of '\u001b[01m\u001b[KEventAdd\u001b[m\u001b[K' from incompatible pointer type [\u001b[01;31m\u001b[K-Wincompatible-pointer-types\u001b[m\u001b[K]\n 138 | EventAdd(&inst.on_start, &game, \u001b[01;31m\u001b[KFumotrisStart\u001b[m\u001b[K);\n | \u001b[01;31m\u001b[K^~~~~~~~~~~~~\u001b[m\u001b[K\n | \u001b[01;31m\u001b[K|\u001b[m\u001b[K\n | \u001b[01;31m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K\nIn file included from \u001b[01m\u001b[Ksource\\fumoengine/fumoengine.h:3\u001b[m\u001b[K,\n from \u001b[01m\u001b[Ksource\\fumotris\\fumotris.h:2\u001b[m\u001b[K,\n from \u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:1\u001b[m\u001b[K:\n\u001b[01m\u001b[Ksource\\fumoengine\\include/event.h:24:60:\u001b[m\u001b[K \u001b[01;36m\u001b[Knote: \u001b[m\u001b[Kexpected '\u001b[01m\u001b[Khandler\u001b[m\u001b[K' {aka '\u001b[01m\u001b[Kvoid (*)(void *, void *)\u001b[m\u001b[K'} but argument is of type '\u001b[01m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K'\n 24 | bool EventAdd(struct Event *event, void *instance, \u001b[01;36m\u001b[Khandler callback\u001b[m\u001b[K);\n | \u001b[01;36m\u001b[K~~~~~~~~^~~~~~~~\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:139:38:\u001b[m\u001b[K \u001b[01;31m\u001b[Kerror: \u001b[m\u001b[Kpassing argument 3 of '\u001b[01m\u001b[KEventAdd\u001b[m\u001b[K' from incompatible pointer type [\u001b[01;31m\u001b[K-Wincompatible-pointer-types\u001b[m\u001b[K]\n 139 | EventAdd(&inst.on_update, &game, \u001b[01;31m\u001b[KFumotrisUpdate\u001b[m\u001b[K);\n | \u001b[01;31m\u001b[K^~~~~~~~~~~~~~\u001b[m\u001b[K\n | \u001b[01;31m\u001b[K|\u001b[m\u001b[K\n | \u001b[01;31m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumoengine\\include/event.h:24:60:\u001b[m\u001b[K \u001b[01;36m\u001b[Knote: \u001b[m\u001b[Kexpected '\u001b[01m\u001b[Khandler\u001b[m\u001b[K' {aka '\u001b[01m\u001b[Kvoid (*)(void *, void *)\u001b[m\u001b[K'} but argument is of type '\u001b[01m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K'\n 24 | bool EventAdd(struct Event *event, void *instance, \u001b[01;36m\u001b[Khandler callback\u001b[m\u001b[K);\n | \u001b[01;36m\u001b[K~~~~~~~~^~~~~~~~\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:140:36:\u001b[m\u001b[K \u001b[01;31m\u001b[Kerror: \u001b[m\u001b[Kpassing argument 3 of '\u001b[01m\u001b[KEventAdd\u001b[m\u001b[K' from incompatible pointer type [\u001b[01;31m\u001b[K-Wincompatible-pointer-types\u001b[m\u001b[K]\n 140 | EventAdd(&inst.on_draw, &game, \u001b[01;31m\u001b[KFumotrisDraw\u001b[m\u001b[K);\n | \u001b[01;31m\u001b[K^~~~~~~~~~~~\u001b[m\u001b[K\n | \u001b[01;31m\u001b[K|\u001b[m\u001b[K\n | \u001b[01;31m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumoengine\\include/event.h:24:60:\u001b[m\u001b[K \u001b[01;36m\u001b[Knote: \u001b[m\u001b[Kexpected '\u001b[01m\u001b[Khandler\u001b[m\u001b[K' {aka '\u001b[01m\u001b[Kvoid (*)(void *, void *)\u001b[m\u001b[K'} but argument is of type '\u001b[01m\u001b[Kvoid (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K'\n 24 | bool EventAdd(struct Event *event, void *instance, \u001b[01;36m\u001b[Khandler callback\u001b[m\u001b[K);\n | \u001b[01;36m\u001b[K~~~~~~~~^~~~~~~~\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumotris\\fumotris.c:142:32:\u001b[m\u001b[K \u001b[01;31m\u001b[Kerror: \u001b[m\u001b[Kpassing argument 3 of '\u001b[01m\u001b[KCoroutineAdd\u001b[m\u001b[K' from incompatible pointer type [\u001b[01;31m\u001b[K-Wincompatible-pointer-types\u001b[m\u001b[K]\n 142 | CoroutineAdd(&inst, &game, \u001b[01;31m\u001b[KFumotrisFall\u001b[m\u001b[K);\n | \u001b[01;31m\u001b[K^~~~~~~~~~~~\u001b[m\u001b[K\n | \u001b[01;31m\u001b[K|\u001b[m\u001b[K\n | \u001b[01;31m\u001b[Knsec (*)(struct Instance *, struct Fumotris *) {aka long long unsigned int (*)(struct Instance *, struct Fumotris *)}\u001b[m\u001b[K\n\u001b[01m\u001b[Ksource\\fumoengine/fumoengine.h:35:73:\u001b[m\u001b[K \u001b[01;36m\u001b[Knote: \u001b[m\u001b[Kexpected '\u001b[01m\u001b[Kcoroutine_handler\u001b[m\u001b[K' {aka '\u001b[01m\u001b[Klong long unsigned int (*)(void *, void *)\u001b[m\u001b[K'} but argument is of type '\u001b[01m\u001b[Knsec (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K' {aka '\u001b[01m\u001b[Klong long unsigned int (*)(struct Instance *, struct Fumotris *)\u001b[m\u001b[K'}\n 35 | bool CoroutineAdd(struct Instance *inst, void *state, \u001b[01;36m\u001b[Kcoroutine_handler callback\u001b[m\u001b[K);\n | \u001b[01;36m\u001b[K~~~~~~~~~~~~~~~~~~^~~~~~~~\u001b[m\u001b[K\n", "vector": "", "tetra": ""} \ No newline at end of file diff --git a/build/hdr_checksums.txt b/build/hdr_checksums.txt index e0cb5ab..065dca5 100644 --- a/build/hdr_checksums.txt +++ b/build/hdr_checksums.txt @@ -1 +1 @@ -["f315479de287d3cccdfa665c1e8c58bd", "7d30e573f96a566ed9510833b95d5520", "0eaec40fe47b9cb31ff5a70f7bfee15a", "72e1b62b85eac654ed094a8ecf009416", "5ce28b2bf9d7c5750ea290f80fbd1264", "0d65896ce70d098bdf4cb3587ca74508", "f6611a0f07f78cc4fd52df267e0d3d25", "9f0597e7cacc7c918163affc5f3d9841", "cd22e396133a64303ecae95280f8ba1a", "7d7451ae7d88f4d1f84055180f9e84a7", "29f6d19bcc5a1897b220a192ef6fc3cc", "1d88301163b019760c3dc8396ce2aa4b", "ec4912a725a2bc606bd76ba34159435c"] \ No newline at end of file +["7d30e573f96a566ed9510833b95d5520", "5ce28b2bf9d7c5750ea290f80fbd1264", "f315479de287d3cccdfa665c1e8c58bd", "0d65896ce70d098bdf4cb3587ca74508", "72e1b62b85eac654ed094a8ecf009416", "cd22e396133a64303ecae95280f8ba1a", "7d7451ae7d88f4d1f84055180f9e84a7"] \ No newline at end of file diff --git a/build/src_checksums.txt b/build/src_checksums.txt index 4e54ee3..73078c4 100644 --- a/build/src_checksums.txt +++ b/build/src_checksums.txt @@ -1 +1 @@ -["4aa55dfc1d038e75d0efbf277e6033a4"] \ No newline at end of file +["dd2f269c19f28201dce9133ab27198af"] \ No newline at end of file diff --git a/debug.exe b/debug.exe index b86c932..ac7f303 100644 Binary files a/debug.exe and b/debug.exe differ diff --git a/objects/ctrl.o b/objects/ctrl.o index ae0f4ec..9eff00a 100644 Binary files a/objects/ctrl.o and b/objects/ctrl.o differ diff --git a/objects/dictionary.o b/objects/dictionary.o index 896882c..d5ce134 100644 Binary files a/objects/dictionary.o and b/objects/dictionary.o differ diff --git a/objects/event.o b/objects/event.o index 1536ac0..9581e8a 100644 Binary files a/objects/event.o and b/objects/event.o differ diff --git a/objects/fumocommon.o b/objects/fumocommon.o index 5e59d86..5452fad 100644 Binary files a/objects/fumocommon.o and b/objects/fumocommon.o differ diff --git a/objects/fumoengine.o b/objects/fumoengine.o index fe83adc..abcbea5 100644 Binary files a/objects/fumoengine.o and b/objects/fumoengine.o differ diff --git a/objects/input.o b/objects/input.o index 4026661..b9a14eb 100644 Binary files a/objects/input.o and b/objects/input.o differ diff --git a/objects/parseinput.o b/objects/parseinput.o index 08a24b4..3353ca8 100644 Binary files a/objects/parseinput.o and b/objects/parseinput.o differ diff --git a/objects/ringbuffer.o b/objects/ringbuffer.o index 9f3e95a..017d124 100644 Binary files a/objects/ringbuffer.o and b/objects/ringbuffer.o differ diff --git a/objects/terminal.o b/objects/terminal.o index 9485235..6832335 100644 Binary files a/objects/terminal.o and b/objects/terminal.o differ diff --git a/objects/tetra.o b/objects/tetra.o index 9b3d35c..6b35add 100644 Binary files a/objects/tetra.o and b/objects/tetra.o differ diff --git a/objects/vector.o b/objects/vector.o index a1bf4e5..cac1378 100644 Binary files a/objects/vector.o and b/objects/vector.o differ diff --git a/objects/win.o b/objects/win.o index 10298db..4a2c2ab 100644 Binary files a/objects/win.o and b/objects/win.o differ diff --git a/source/fumo.txt b/source/fumo.txt new file mode 100644 index 0000000..224eec7 --- /dev/null +++ b/source/fumo.txt @@ -0,0 +1,14 @@ + _,_ _,_ + }\>' ``'-./\.-''` ' ,-''``''-. ,' `. ctrl); if (horizontal != 0 and fumo->last_moved < inst->time) { - fumo->last_moved = inst->time + 5e7; + fumo->last_moved = inst->time + 1e8; TetraMove(&fumo->piece, &fumo->board, horizontal, 0); } @@ -96,7 +96,7 @@ void FumotrisUpdate(struct Instance *inst, struct Fumotris *fumo) TetraRotate(&fumo->piece, &fumo->board, -1); if (inst->ctrl.axes[SOFT_DROP].is_held and fumo->last_dropped < inst->time) { - fumo->last_dropped = inst->time + 5e7; + fumo->last_dropped = inst->time + 1e8; TetraMove(&fumo->piece, &fumo->board, 0, 1); } @@ -144,4 +144,27 @@ int main() FumoInstanceRun(&inst); return 0; -} \ No newline at end of file +} + +| | NEXT LINES +| [][][]. . . . . . . | +| [][][]. . . . . . . | SCORE +| [][][][]. . . . . . | +| [][][]. . . . . . [] | +| []. . [][]. . . . [] | +| [][][][][][]. . . [] | +| . . [][]. . . . . [] | +| [][][][]. [][]. [][] | +| [][][][][][][]. [][] | +| [][][][][][][][][][] | +| [][][][][][][][][][] | +| [][][][][][][][][][] | +| [][][][][][][][][][] | +| [][][][][][][]. [][] | +| . [][][][][][]. . [] | +| [][][]. [][][][]. [] | +| [][][][][][][][]. [] | +| [][][][][][][][]. [] | +| . [][][][][][][][][] | +| . [][][][][][][][][] | +|________________________| \ No newline at end of file diff --git a/source/fumotris/tetra.c b/source/fumotris/tetra.c index c0a7f57..2551362 100644 --- a/source/fumotris/tetra.c +++ b/source/fumotris/tetra.c @@ -132,8 +132,8 @@ void TetraTerminalClear(struct Tetra *board, struct Terminal *term) for (usize i = 0; i < board->wid * board->hgt; i++) { struct Char4 *block = term->buf + i * 2; - block[0] = (struct Char4) { .ch = '(', .color.fg = 8 }; - block[1] = (struct Char4) { .ch = ')', .color.fg = 8 }; + block[0] = (struct Char4) { .ch = '.', .color.fg = 8 }; + block[1] = (struct Char4) { .ch = ' ', .color.fg = 8 }; } }