From 5ca8b1d00633161eaccae2a88e0c2fa568b184ec Mon Sep 17 00:00:00 2001 From: Curtis 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 d184455..062c2e6 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 e='author'>author
Commit message (Expand)Author
2019-11-06Add GPL header templateJune McEnroe
2019-11-01Add uber messageJune McEnroe
2019-11-01Add Hobo Johnson and The Lovemakers Tiny DeskJune McEnroe
2019-10-30Use braces in causal.agency MakefileJune McEnroe
2019-10-30Add scheme "screenshot" to causal.agencyJune McEnroe
2019-10-30Add pounce to causal.agencyJune McEnroe
2019-10-28Mark ' for \aJune McEnroe
2019-10-23Add The Book of the Unnamed MidwifeJune McEnroe
2019-10-22Add ConcreteJune McEnroe
2019-10-14Set the write variable for nvim man modeJune McEnroe
2019-10-13Add All Systems RedJune McEnroe
2019-10-10Add The Book of PhoenixJune McEnroe
2019-10-03Add two Kim Petras songsJune McEnroe
2019-10-02Update neovim 0.4.2June McEnroe
2019-10-02Claim to be curl(1) in titleJune McEnroe
2019-10-02Add The Red Threads of FortuneJune McEnroe
2019-09-28Add The Black Tides of HeavenJune McEnroe
2019-09-27Fail on HTTP failure status in titleJune McEnroe
2019-09-23Add Trail of LightningJune McEnroe
2019-09-22Revert "Enable cookies in title"June McEnroe
2019-09-20Enable cookies in titleJune McEnroe
2019-09-16Use sensitivity aliases in TF2June McEnroe
2019-09-16Add The Just CityJune McEnroe
2019-09-12Only GET the final redirect locationJune McEnroe
2019-09-12Consume entire bodyJune McEnroe
2019-09-10Add title -v flagJune McEnroe
2019-09-10Use curl error bufferJune McEnroe
2019-09-10Set Accept-Encoding in titleJune McEnroe
2019-09-08Set title User-AgentJune McEnroe
2019-09-07Add -x flag to titleJune McEnroe
2019-09-07Ignore SIGPIPE in relayJune McEnroe
2019-09-07Add A Memory Called EmpireJune McEnroe
2019-09-05Handle lack of Content-TypeJune McEnroe
2019-09-05Use CURLINFO_CONTENT_TYPEJune McEnroe
2019-09-05Decode entities in titlesJune McEnroe
2019-09-05Print title as soon as it's availableJune McEnroe
2019-09-05Use CURL_PREFIX to set flagsJune McEnroe
2019-09-05Add titleJune McEnroe
2019-09-04Add Avorter n'est pas tuerJune McEnroe
2019-08-29Unset executable on shell scriptsJune McEnroe
2019-08-29Add long-missing setopt to bin.7June McEnroe
2019-08-29Add editJune McEnroe