From c5ee7405e650fd184deaf55794b4843f733c3986 Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Sun, 26 Aug 2018 23:14:48 -0400 Subject: Map modifyCount on log scale --- client.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/client.c b/client.c index 29e1cce..1478ebe 100644 --- a/client.c +++ b/client.c @@ -16,6 +16,7 @@ #define _XOPEN_SOURCE_EXTENDED +#include #include #include #include @@ -45,6 +46,11 @@ enum { DEL = 0x7F, }; +static uint32_t log2(uint32_t n) { + assert(n > 0); + return 32 - __builtin_clz(n) - 1; +} + static void curse(void) { setlocale(LC_CTYPE, ""); @@ -190,15 +196,21 @@ static void serverMap(void) { for (uint8_t x = 0; x < MAP_COLS; ++x) { struct Meta meta = map.meta[y][x]; - uint32_t count = DIV_ROUND( - (ARRAY_LEN(MAP_CELLS) - 1) * meta.modifyCount, - map.max.modifyCount - ); - uint32_t time = DIV_ROUND( - (ARRAY_LEN(MAP_COLORS) - 1) * (meta.modifyTime - map.min.createTime), - map.now - map.min.createTime - ); - if (!meta.modifyTime) time = 0; + uint32_t count = 0; + if (meta.modifyCount && log2(map.max.modifyCount)) { + count = DIV_ROUND( + (ARRAY_LEN(MAP_CELLS) - 1) * log2(meta.modifyCount), + log2(map.max.modifyCount) + ); + } + uint32_t time = 0; + if (meta.modifyTime) { + uint32_t modify = meta.modifyTime - map.min.createTime; + time = DIV_ROUND( + (ARRAY_LEN(MAP_COLORS) - 1) * modify, + map.now - map.min.createTime + ); + } wchar_t cell = MAP_CELLS[count]; uint8_t color = MAP_COLORS[time]; -- cgit 1.4.1 on>
Commit message (Expand)Author
2021-09-16Fix /* **/ comment matchingJune McEnroe
2021-09-15Remove typer, add downgrade to READMEJune McEnroe
2021-09-15Set bot mode on downgradeJune McEnroe
2021-09-15Enter capsicum in downgradeJune McEnroe
2021-09-15Factor out common parts of downgrade messagesJune McEnroe
2021-09-14Add downgrade IRC botJune McEnroe
2021-09-14Sort by title if authors matchJune McEnroe
2021-09-13Swap-remove tags as they're foundJune McEnroe
2021-09-12Replace htagml regex with strncmpJune McEnroe
2021-09-11Also defer printing comment for lone close-parensJune McEnroe
2021-09-10Publish "git-comment"June McEnroe
2021-09-10Add git comment --pretty optionJune McEnroe
2021-09-08Defer printing comment if line is blank or closing braceJune McEnroe
2021-09-08Up default min-repeat to 30 linesJune McEnroe
2021-09-08Handle dirty lines in git-commentJune McEnroe
2021-09-08Document and install git-commentJune McEnroe
2021-09-08Add repeat and all options to git-commentJune McEnroe
2021-09-08Add group threshold to git-commentJune McEnroe