Jump to content
Eternal Lands Official Forums

bluap

Moderators
  • Content count

    2985
  • Joined

  • Last visited

Everything posted by bluap

  1. action points display in statistics window

    That's a lot of action points! I've fixed it but just looking at some other scaling improvements for that window before pushing to git.
  2. It was the mouse over handler. Only the help information was incorrect, nothing as bad as the trade bug but its fixed now anyway. I also fixed another bug when only the initial windows mode use the default window positions. This one effects the desktop client too. The latest 195 build 1.9.5-20211218.2131 (old 1.9.5 data package), the latest 196 build 1.9.6.0-1 (new data pack) Fix mouse over issues for spells windows on Android. Fix only initial spells window not using default position.
  3. Looks like the mouse over handler is showing the spell the that the last touch is over. Most windows on Android disable that handler. It should be easy to fix but perhaps too late for the release. Radu has already submitted the update to the play store.
  4. Good that the position restored OK. Normally, the title bar is enabled if the window does off screen (after resize, rescale etc). But that should not happen if a default position is used. As for the inventory question, there's not an option like that other than moving each item individually. On android the cursor modes are the same as the desktop with some special actions when working with the trade and storage window to make it easier to move items between.
  5. Looks like you have the user menu title bar enabled so it moveable just like any other window. By default it is not movable and automatically places itself at the top of the screen spaced from the end of the chat controls. If you long press and select the "Lock in Standard Position" option, then it will return to the default state.
  6. The latest build 1.9.5-20211212.1319 using old data : (same code as the 1.9.6 RC5 build which uses the new data) Fix android trade from storage bug - pass correct item position. Added more first time configuration scaling, fonts and window positions. This can now be triggered for a new build and will be done when this build is first run. Fixes for Android backup - keep the size below threshold buy only backing up necessary files. Minor improvements for windows in default positions. Use true font width to set password manager size. Added option to automatically set the windows scaling factor (on by default for Android). The 1.9.6 RC5 build uses the Google play store app ID and key so will replace any existing play store version. It can be installed in addition to the 1.9.5 version.
  7. I wondered the same but I'm not familiar with the protocol details, I just copied the method used by the non-touch code. I presume if we could, it would have been done using 2 bytes for both cases from the start. The server may do something special so Perhaps Radu can comment. That code was largely copied from the original Android port and I think we could re-factor a little now (one set of functions at least) but not this late in the release
  8. I can reproduce the trade bug on Android and have fixed it, I'll publish new version tomorrow.
  9. Is 2.9 what you were getting before clearing your data or after clearing your data? If before, what is it now? If 2280 is the native display size or the size of the EL window? The android scaling factor is set for a new install depending on the main window width: if (window_width<640) new_value = MIN_UI_SCALE; else if (window_width <= 1024) new_value = 1.1; else if (window_width <= 1280) new_value = 1.6; else if (window_width <= 1600) new_value = 1.7; else if (window_width <= 2160) new_value = 2.5; else if (window_width <= 2560) new_value = 2.9; else new_value = MAX_UI_SCALE; So for you device, 2.9 is what would be expected. At some stage during the development, the client changed from using full screen to windowed with the Android top bar and possibly button bar to the right. Your original size may have been set before that change and the actual window size is now smaller. With the latest build, you can now set the client to run full screen but that will not change the scaling factor.
  10. Unfortunately, it's a bit more complicated than that. The client uses a list of assets to ensure no old data files are left in place when they should not be. That means it should be safe to just update an already installed version without clearing storage or uninstalling first. If you do clear storage you loose settings, counters etc. Likewise if you uninstall. In addition if you uninstall then you may have previous settings restored by Android automatically. This is a bit broken currently but I've been trying to fix this. Also, the play store version and the test version are signed differently so cause conflicts. Though Radu and I can now use a common key to sign builds. Once we have a new stable version I suggest people uninstall any old version then install the new version. Once installed, clear storage before starting for the first time. From then on, it will be safe to do updates without clearing storage or uninstalling.
  11. Good news indeed, looks to be a fixed for my wife's phone too. Nicely done! I've built a RC4 android package with the fix, replacing RC3. As before, this is the new data version signed with the release key. https://github.com/raduprv/Eternal-Lands/releases/download/1.9.6.0-rc2/EternalLands-Android_1.9.6.0-rc4.apk I've also done a build with the old data, signed with my debug key for those using the package from this thread: The latest build el-1.9.5-20211130.2302.apk: (also in RC4) Fixed not closing the keyboard at login if using SSL. Enable full screen toggle (video tab). Fix issue for remembered windows positions if resolution changed before client restart (including portrait / landscape changes). And of course Grum's fix for crashing when fighting on some GPUs.
  12. I've used a lot of time trying to get more recent versions working. I know Radu suggests getting in touch with the developer but I've not done so so far. Yep, I was going to propose merging after this release. Same here.
  13. That is strange, do you know the native resolution of your screen? Do you know that the scale was set too? The first time the client runs, it sets the initial scaling factor based on the screen resolution. It should probably be DPI based but I've found that unreliable previously. The simple config window would be a nice addition. That's something I included from the original version, I'm not sure why those setting are disabled but I suspect it would OK to enable them. I'll check. The "Keyboard" button font is scaled using the chat font size; the button to be the same hight as the input field. Good to hear!
  14. Version 1.9.5p9 of the EL client is ready for release. This is a stable release and recommended for everyone. The full list of changes can be read on the release page. The release brings lots of little new features, lots of bug fixes and lots of user interface updates - including a major change to use True Type fonts. There are some minor data changes and a bug fix for the sound so ensure you update the data and sound too (these are includes in the Linux packages). There are a set of fonts included in the data. You can switch to these using the command "#set_default_fonts". Also included are some default user menus. If you do not want these, then disable them by un-checking the "Standard Menu" option on the right-click options. Downloads: MacOS: both Intel (x86-64) and Apple Silicon (ARM64) Macs. Windows: 32-Bit installer or 64-Bit installer Linux: Flatpak Package (recommended), Snap Package, Debian and Ubuntu Packages or the Linux general installer Binary only downloads: Windows: 32-Bit executable and DLL files and 64-Bit executable and DLL files Linux: 32-bit (x86), 64 bit (x86), 32-bit (arm) (Set GPU memory 512M on a raspbery pi) and 64-bit (arm) Data Files: Data Files, Sound Files and Music Files
  15. Interesting. I've tried turning off character names from the banner without modifying the client and have not had a crash so far. It might be worth others giving that a try. I note the banner names uses a pointer to the actor in the call the the draw function. Perhaps that's becoming invalid when the creature dies. Edit: well I fought many more creatures but it did eventually crash. Seems like we're close. Trying no banners at all.... Edit 2: No crashes with no banners enabled. This with nearly a hundred despatched creatures. I'd be really interested to here how others fair. You can turn off banners by long pressing the banner and selecting the context menu options. To restore the name banners if everything is off you can use "#keypress #K_VIEWNAMES". This needs improving ...
  16. Client issue

    The message means that your client_state.json file is corrupt. If you've not edited the file and if other files are corrupt, then it is is probably due to something else such as disk errors. If you edited the file then you can still recover by fixing the error. The JSON format is text but has a specific structure that must be valid.
  17. OK, sorry for the misunderstanding and wasting your time. Burn added bears and the test was for the MD spell. Perhaps you could clear them.
  18. Thanks. Perhaps I didn't mean capped. Burn set the creatures so they did not attack but you could attack them. I can't attack these.
  19. Thank you. Burn did something similar in crystal caves but Naralik would work. A few hundred?
  20. BTW, I've been testing in Naralik on the test server and the brown snakes there look to be most likely to cause the crash. Would it be possible to place some invasion brown snakes in a location on test? Caped not to attack of course.
  21. I get both the "protocol" and then, after a few more frames, the "resource deadlock" errors and the crash. I did try the putting a glFinish() before the the SDL_GL_SwapWindow(). Rather than a crash, the game freezes with the scene fixed. However the debug is still being produced so the games is still running. I've never seen anything like that before. If I switch from the game window then back, the game crashes. <games scene frozen here> 11-19 13:44:00.027 12803 12864 I SDL/APP : draw_scene:156 11-19 13:44:00.027 12803 12864 I SDL/APP : draw_scene:158 11-19 13:44:00.027 12803 12864 I SDL/APP : draw_scene:160 11-19 13:44:00.034 12803 12803 V SDL : onPause() 11-19 13:44:00.049 12803 12803 V SDL : onWindowFocusChanged(): false 11-19 13:44:00.049 12803 12803 V SDL : nativeFocusChanged() 11-19 13:44:00.058 12803 12803 V SDL : surfaceDestroyed() 11-19 13:44:00.058 12803 12803 V SDL : nativePause() 11-19 13:44:00.115 12803 12864 I SDL/APP : Error: file: jni/src/gamewin.c line: 1554 message: OpenGL invalid value 11-19 13:44:00.159 12803 12864 I SDL/APP : draw_scene:156 11-19 13:44:00.166 12803 12864 I SDL/APP : draw_scene:158 11-19 13:44:00.166 12803 12864 I SDL/APP : draw_scene:160 11-19 13:44:00.166 12803 12864 I SDL/APP : Error: file: jni/src/draw_scene.c line: 161 message: OpenGL invalid operation 11-19 13:44:00.166 12803 12864 I SDL/APP : App entered background 11-19 13:44:00.167 12803 12864 I SDL/APP : Info: file: jni/src/json_io.cpp line: 32 message: int JSON_IO_Client_State::Client_State::save(const char *):770 [/storage/emulated/0/Android/data/com.el.elc/files/user/test/client_state.json] 11-19 13:44:00.168 12803 12864 I SDL/APP : Info: file: jni/src/json_io.cpp line: 32 message: int JSON_IO_Quickspells::Quickspells::save(const char *, Uint16 *, size_t):294 [/storage/emulated/0/Android/data/com.el.elc/files/user/test/spells_bluap.json] 11-19 13:44:00.169 12803 12864 I SDL/APP : Info: file: jni/src/json_io.cpp line: 32 message: int JSON_IO_Recipes::Recipes::save(const char *, recipe_entry *, size_t, int, recipe_item *):173 [/storage/emulated/0/Android/data/com.el.elc/files/user/test/recipes_bluap.json] 11-19 13:44:00.173 12803 12864 I SDL/APP : Info: file: jni/src/json_io.cpp line: 32 message: int JSON_IO_Counters::Counters::save(const char *, const char **, const int *, size_t, const struct Counter **):403 [/storage/emulated/0/Android/data/com.el.elc/files/user/test/counters_bluap.json] 11-19 13:44:00.184 12803 12803 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0x400c0907 (IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID) failed: errno 35 Resource deadlock would occur 11-19 13:44:00.184 12803 12803 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-19 13:44:00.186 12803 12803 V SDL : onStop() 11-19 13:44:00.357 886 886 D SFPerfTracer: layers: (5:9) (StatusBar#0 (0xafdd4000): 9:256770) (com.android.systemui.ImageWallpaper#0 (0xafdc8000): 2:9598) (DimLayerController/Stack=0#0 (0xafc20000): 0:8352)* (Sprite#0 (0xafc4c000): 0:1463)* (NavigationBar#0 (0xafc47000): 10:47689) (DockedStackDim#0 (0xafc4e000): 0:11)* (com.el.elc/com.el.elc.ELCActivity#0 (0xafc5e000): 10:58)* (com.android.systemui/com.android.systemui.recents.RecentsActivity#0 (0xaff26000): 7:9) (thumbnail anim#0 (0xaff38000): 10:11)* 11-19 13:44:02.055 12803 12803 V SDL : onStart() 11-19 13:44:02.055 12803 12803 V SDL : onResume() 11-19 13:44:02.085 12803 12803 V SDL : surfaceCreated() 11-19 13:44:02.086 12803 12803 V SDL : surfaceChanged() 11-19 13:44:02.086 12803 12803 V SDL : Window size: 1920x1080 11-19 13:44:02.087 12803 12803 V SDL : Device size: 1920x1080 11-19 13:44:02.090 12803 12803 I SDL/APP : pixel format wanted SDL_PIXELFORMAT_RGBX8888 (2), got SDL_PIXELFORMAT_RGBX8888 (2) 11-19 13:44:02.092 12803 12803 V SDL : onWindowFocusChanged(): true 11-19 13:44:02.092 12803 12803 V SDL : nativeResume() 11-19 13:44:02.142 2661 7212 I ActivityManager: Process com.el.elc (pid 12803) has died: fore TOP 11-19 13:44:02.142 2661 8811 I WindowManager: WIN DEATH: Window{956445d u0 com.el.elc/com.el.elc.ELCActivity} 11-19 13:44:02.142 886 1118 E SurfaceFlinger: Failed to find layer (SurfaceView - com.el.elc/com.el.elc.ELCActivity#0) in layer parent (no-parent). 11-19 13:44:02.142 886 1118 E SurfaceFlinger: Failed to find layer (Background for - SurfaceView - com.el.elc/com.el.elc.ELCActivity#0) in layer parent (no-parent). 11-19 13:44:02.143 2661 7212 W ActivityManager: Force removing ActivityRecord{723b6c u0 com.el.elc/.ELCActivity t768}: app died, no saved state 11-19 13:44:03.198 886 886 D SFPerfTracer: layers: (9:19) (StatusBar#0 (0xafdd4000): 18:256807) (com.android.systemui.ImageWallpaper#0 (0xafdc8000): 18:9630) (DimLayerController/Stack=0#0 (0xafc20000): 0:8352)* (Sprite#0 (0xafc4c000): 0:1463)* (NavigationBar#0 (0xafc47000): 18:47737) (DockedStackDim#0 (0xafc4e000): 0:11)* (com.el.elc/com.el.elc.ELCActivity#0 (0xafc5e000): 0:69)- (com.android.systemui/com.android.systemui.recents.RecentsActivity#0 (0xaff26000): 0:59)- (thumbnail anim#0 (0xaff38000): 0:23)- (SnapshotStartingWindow for taskId=768#0 (0xaff38000): 0:8)- (thumbnail anim#0 (0xafe4d000): 0:8)- (com.el.elc/com.el.elc.ELCActivity#0 (0xafc5b000): 0:4)- (ScreenshotSurface#0 (0xafc5b000): 18:21) (com.android.launcher3/com.android.launcher3.CustomizationPanelLauncher#0 (0xafc5e000): 18:32)* (com.android.launcher3/com.android.launcher3.CustomizationPanelLauncher#1 (0xaff38000): 18:29) (BlackSurface#0 (0xafe4d000): 18:21) (BlackSurface#0 (0xafc0b000): 18:21) (BlackSurface#0 (0xafe27000): 18:21) (BlackSurface#0 (0xafe4a000): 18:21)
  22. I've narrowed the crash down to draw_scene.c:156 the crash occurs in the call to SDL_GL_SwapWindow(). diff --git a/draw_scene.c b/draw_scene.c index bd2a5fb2..ec180427 100644 --- a/draw_scene.c +++ b/draw_scene.c @@ -153,7 +153,9 @@ void draw_scene() elwin_mouse = -1; } +SDL_Log("%s:%d\n", __FUNCTION__, __LINE__); SDL_GL_SwapWindow(el_gl_window); +SDL_Log("%s:%d\n", __FUNCTION__, __LINE__); CHECK_GL_ERRORS(); /* stuff to do not every frame, twice a second is fine */ A few frames before the crash we have: 11-19 00:56:15.947 13358 13400 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 71 Protocol error 11-19 00:56:15.947 13358 13400 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot Then: 11-19 00:56:17.167 13358 13400 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 35 Resource deadlock would occur 11-19 00:56:17.167 13358 13400 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-19 00:56:17.167 13358 13400 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 35 Resource deadlock would occur 11-19 00:56:17.167 13358 13400 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-19 00:56:17.167 13358 13400 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 35 Resource deadlock would occur 11-19 00:56:17.167 13358 13400 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-19 00:56:17.168 13358 13400 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 35 Resource deadlock would occur 11-19 00:56:17.168 13358 13400 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-19 00:56:17.168 13358 13400 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 35 Resource deadlock would occur 11-19 00:56:17.168 13358 13400 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-19 00:56:17.213 2661 2681 I ActivityManager: Process com.el.elc (pid 13358) has died: fore TOP 11-19 00:56:17.213 886 2179 E SurfaceFlinger: Failed to find layer (SurfaceView - com.el.elc/com.el.elc.ELCActivity#0) in layer parent (no-parent). 11-19 00:56:17.213 886 2179 E SurfaceFlinger: Failed to find layer (Background for - SurfaceView - com.el.elc/com.el.elc.ELCActivity#0) in layer parent (no-parent). 11-19 00:56:17.213 2661 8195 I WindowManager: WIN DEATH: Window{8226635 u0 com.el.elc/com.el.elc.ELCActivity} 11-19 00:56:17.214 2661 2681 W ActivityManager: Force removing ActivityRecord{67d2337 u0 com.el.elc/.ELCActivity t756}: app died, no saved state 11-19 00:56:17.230 886 886 D SFPerfTracer: layers: (1:7) (StatusBar#0 (0xafdd4000): 0:254362)* (com.android.systemui.ImageWallpaper#0 (0xafdc8000): 0:9340)* (DimLayerController/Stack=0#0 (0xafc20000): 0:8304)* (Sprite#0 (0xafc4c000): 0:1456)* (NavigationBar#0 (0xafc47000): 0:45453)* (DockedStackDim#0 (0xafc4e000): 0:11)* (com.el.elc/com.el.elc.ELCActivity#0 (0xafc0b000): 0:29)* I've goggled around the error messages and rule out the following the Android SDK version and use of full-screen which are something suggested as the cause. Its looks very much like a GPU driver issue.
  23. Thanks. Progress of sorts. Turns out my wife's phone (a Moto G5 Plus) uses the same type of GPU as yours, an Adreno 506. It also crashes on fighting in a very similar way: 11-18 15:13:49.245 22392 22438 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 71 Protocol error 11-18 15:13:49.245 22392 22438 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-18 15:13:51.043 22392 22438 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 71 Protocol error 11-18 15:13:51.043 22392 22438 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-18 15:13:51.161 22392 22438 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 71 Protocol error 11-18 15:13:51.161 22392 22438 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-18 15:13:51.396 22392 22438 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 35 Resource deadlock would occur 11-18 15:13:51.396 22392 22438 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-18 15:13:51.397 22392 22438 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 35 Resource deadlock would occur 11-18 15:13:51.397 22392 22438 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-18 15:13:51.397 22392 22438 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 35 Resource deadlock would occur 11-18 15:13:51.397 22392 22438 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-18 15:13:51.397 22392 22438 W Adreno-GSL: <gsl_ldd_control:541>: ioctl fd 39 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 35 Resource deadlock would occur 11-18 15:13:51.397 22392 22438 W Adreno-GSL: <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot 11-18 15:13:51.439 886 1252 E SurfaceFlinger: Failed to find layer (SurfaceView - com.el.elc/com.el.elc.ELCActivity#0) in layer parent (no-parent). 11-18 15:13:51.440 886 1252 E SurfaceFlinger: Failed to find layer (Background for - SurfaceView - com.el.elc/com.el.elc.ELCActivity#0) in layer parent (no-parent). 11-18 15:13:51.440 2661 10039 I ActivityManager: Process com.el.elc (pid 22392) has died: fore TOP 11-18 15:13:51.440 2661 3567 I WindowManager: WIN DEATH: Window{8ff860c u0 com.el.elc/com.el.elc.ELCActivity} 11-18 15:13:51.440 2661 10039 W ActivityManager: Force removing ActivityRecord{a4ef57 u0 com.el.elc/.ELCActivity t699}: app died, no saved state 11-18 15:13:51.447 886 1252 E SurfaceFlinger: Failed to find layer (com.el.elc/com.el.elc.ELCActivity#0) in layer parent (no-parent). 11-18 15:13:51.450 886 886 D SFPerfTracer: layers: (4:6) (StatusBar#0 (0xafdd4000): 0:245446) (com.android.systemui.ImageWallpaper#0 (0xafdc8000): 0:6851)* (DimLayerController/Stack=0#0 (0xafc20000): 0:8102)* (Sprite#0 (0xafc4c000): 0:1450)* (NavigationBar#0 (0xafc47000): 0:39479) (com.el.elc/com.el.elc.ELCActivity#0 (0xaff38000): 0:30) At least I can now join in the debugging so I'll see what I can find.
  24. Shame, but thanks for trying though. Most of the other libraries are updated too but I'd have to check back to find what were used for 1.1.2. I checked back though you other posts but could not tell if there was a particular creature that always caused the crash. Can you confirm which if there is?
  25. Perhaps a more targeted approach would be to try earlier versions of the gles4 library. Given 1.1.2 used an earlier version of that library. In the gles4 repo commit a91f8d1e18362aa26303e84ef4ff776eef0973d2 looked to be the baseline. This is close to tag v0.9.3. A while ago I tried to updated to never tags the most recent I could get working was v0.9.5, the version used in the current build. I had various issues with newer versions having tried up to v1.1.4. My rough notes: v0.9.6 click cross weekly coloured v0.9.7 click cross weekly coloured v0.9.8 click cross weekly coloured v1.0.0 click cross weekly coloured v1.0.4 does not compile v1.0.6 strippy lines v1.0.8 strippy lines v1.1.0 strippy lines v1.1.2 strippy lines, flashing loc change v1.1.4 strippy lines, flashing loc change, everything is white
×