Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2023-04-06 00:00:00Z and 2023-04-07 00:00:00Z
Avatar
when i need reporting someone, it is difficult.
Avatar
ChillerDragon BOT 2023-04-06 07:38:53Z
click here http://ger10.ddnet.org/ @7mzom alonso
07:39
also trol for playing on phone xd
Avatar
ChillerDragon BOT 2023-04-06 09:21:54Z
@Ryozuki in libtw it says "Huffman compression has an extra byte if the actual end is at a byte boundary." did you know that? for you buggy huffman :)
Avatar
Avatar
ChillerDragon
@Ryozuki in libtw it says "Huffman compression has an extra byte if the actual end is at a byte boundary." did you know that? for you buggy huffman :)
yeah probs
09:22
ill fix it someday
Avatar
ChillerDragon BOT 2023-04-06 09:22:48Z
i see my self using ur crate
09:22
soon(tm)
09:23
where can i pre order?
09:24
@heinrich5991 are the first two bits of the packet header unused? I wanted to double check here https://github.com/heinrich5991/libtw2/blob/master/doc/quirks.md but it didnt mention it
Some Teeworlds stuff in Rust. Contribute to heinrich5991/libtw2 development by creating an account on GitHub.
09:24
what a bloated protocol did we waste 2 bits of bandwith for EVERY tw packet ever sent over the network in the last 4 decades?
Avatar
Yeah, disgraceful
09:50
imagine the alternative
09:50
bitpacking nightmare
Avatar
Discover Dragonfly - the fastest in-memory data store for high-performance applications.
10:10
has anyone tried this
10:10
redit alternative
10:10
claimingto be way faster
10:10
sadly its c++
10:11
this is scaling related so maybe @Avolicious knows the man of scalability
10:17
@Learath2 is calloc more efficient than malloc + memzeroing?
10:18
calloc zeroes btw
Avatar
It should be but you can only know by knowing the exact platform to be deployed on
Avatar
ur lovely x86
Avatar
Calloc can skip the memset theoretically if the allocator has a piece of memory already zero'd
Avatar
@Learath2 why is there no version of malloc that has the interface of calloc, elements and single element size? is there no possible optimizations knowing more info?
Avatar
Also if you calloc I think it's also allowed to be lazy and give you a CoW zero'd page
Avatar
malloc(n, size) that doesnt zero i mean
10:23
xd
Avatar
Avatar
Ryozuki
@Learath2 why is there no version of malloc that has the interface of calloc, elements and single element size? is there no possible optimizations knowing more info?
Iirc jemalloc had something of sorts. But honestly afaik even calloc doesn't use that information for anything, atleast as far as I know in x86
10:24
Maybe in some exotic platform it can be used for alignment?
Avatar
I guess without knowing the data type for e.g. cache lines it's not really optimizable?
Avatar
also do u know what malloc_consolidate is, i had* a segfault ystday with llvm (edited)
10:25
i think it happens when everything is doomed
Avatar
Maybe a malloc that doesn't guarantee the given size is the size of the returned memory would help
Avatar
malloc_consolidate(): unaligned fastbin chunk detected
10:28
another morning with my lovely gentoo
Avatar
If I recall correctly malloc_consolidate is called so unused chunks can be merged back
Avatar
what more pleasure than compiling ur own software
Avatar
Avatar
Learath2
If I recall correctly malloc_consolidate is called so unused chunks can be merged back
Why do u even know about it xd
Avatar
You may have accidentally over or underflowed your allocation corrupting a struct header
Avatar
@Learath2 probably, this is the problem with C, im using a C api that wraps a c++ api and they have poor docs
Avatar
Avatar
Jupstar ✪
Why do u even know about it xd
I wrote a malloc implementation as an exercise once upon a time. I remember looking into other implementations to see what they do
Avatar
so im not safe like in rust
10:29
just remake llvm in rust
Avatar
Yeah, malloc_consolidate is called on free to try merge the newly freed memory into the tail of a previously freed chunk
Avatar
Avatar
Ryozuki
so im not safe like in rust
Where are the safe llvm wrappers xd
10:31
its hard to make a safe wrapper of such a big api
10:31
llvm is quite brittle ngl
Avatar
What are you doing with the llvm api anyway?
Avatar
i use the llvm C api to use it from rust
10:32
i use it for work and my own language edlang
10:32
they claim to have a C api so u can make bindings
10:32
c++ is harder to interop
Avatar
Ryozooki, why don't you link to rust core for your malloc?
Avatar
but they rly focus more on the c++ side xd
10:33
@Learath2 i didnt implement any malloc
10:33
this error was from llvm breaking
10:33
by me using the api in the wrong way
Avatar
Ohh, llvm is using the malloc
Avatar
not me executing my compiled program
10:33
yeah
Avatar
Anyway, asan should find this extremely easily
Avatar
Ryo u a smartass compiler dev now. Just make own llvm in rust
Avatar
this is why i dont code in c
10:35
i dont wanna use asan absan and ur mom
10:35
rust just works
Avatar
Lmao
Avatar
btw rust has MIR for unsafe
10:36
miri*
10:36
ooops
10:36
An interpreter for Rust's mid-level intermediate representation - GitHub - rust-lang/miri: An interpreter for Rust's mid-level intermediate representation
Avatar
Avatar
Ryozuki
i dont wanna use asan absan and ur mom
Then just don't overflow bozo yeecool
10:37
You can use Miri to emulate programs on other targets, e.g. to ensure that byte-level data manipulation works correctly both on little-endian and big-endian systems. See cross-interpretation below.
10:38
interesting
Avatar
Avatar
Learath2
Then just don't overflow bozo yeecool
ez
10:40
After years of development, the Chrome team ships WebGPU which allows high-performance 3D graphics and data-parallel computation on the web.
10:40
webgpu name is a misnomer but yeah
10:40
WebGPU is a new API for the web, which exposes modern hardware capabilities and allows rendering and computation operations on a GPU, similar to Direct3D 12, Metal, and Vulkan. Unlike the WebGL family of APIs, WebGPU offers access to more advanced GPU features and provides first-class support for general computations on the GPU. The API is designed with the web platform in mind, featuring an idiomatic JavaScript API, integration with promises, support for importing videos, and a polished developer experience with great error messages.
10:41
JEDEC has revealed a new standard that accesses two DDR5 memory ranks simultaneously to double bandwidth.
10:41
hot
10:41
17,600 MT/s
Avatar
I think we are way past speeds relevant to the consumer. I bet these are great when you are running 500GB of ram on a caching proxy server at a datacenter
Avatar
Avatar
Learath2
I think we are way past speeds relevant to the consumer. I bet these are great when you are running 500GB of ram on a caching proxy server at a datacenter
considering specs required for ai. We are just getting started. Tho maybe not so much system ram ^^
10:44
I want personal ai ofc
Avatar
If local ai instances are going to become common place I think we'll be getting ai accelerators
Avatar
Yeah but ais will always require lot of ram and good speed
Avatar
Or at the very least some die space used for matrix extensions on even home cpu/gpus
10:46
topkek
Avatar
I could have told u that without searching for it
10:47
Windows slowfender
10:47
As soon as we hit speed limits hardware wise the fastest os design wins
Avatar
oh shit
10:47
psql15 dropped
Avatar
In first run this might be Linux. In long run probs smth completely new
Avatar
chillerdragon BOT 2023-04-06 11:13:56Z
Isn’t psql15 old news?
Avatar
Are u using a rust news client or what
11:15
Ryozuki uses javascript. It takes longer
11:15
But yeah very old news lol
11:28
idk i got it on my gentoo
11:28
or forgot to upgrade
11:28
xd
11:36
What this means: faster incremental builds, since this is the component rustc uses to hash the incremental compilation data.
Avatar
I heard gccs unordered map is faster than rusts hashmap
11:38
Did that change now xd
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
I started using that at work as a replacement for sanitizers in Rust. It seems a bit slower than sanitizers though, and has some limitations
Avatar
rust uses a conservative hashmap
11:49
hash *
11:49
u can change it
Avatar
Avatar
deen
I started using that at work as a replacement for sanitizers in Rust. It seems a bit slower than sanitizers though, and has some limitations
do u code in rust?
11:50
yeah i think its pretty in development, and is specially made for rust
Avatar
Mostly python, but some of our testing code is Rust
11:51
why testing? xD
Avatar
My job is writing code that finds bugs, aka testing 😄
11:53
MIRI is like an abstract machine or smth
11:53
The implementation of the Rust abstract machine - miri - stops execution of Rust programs when they exhibit undefined behavior.
>
C, C++, etc. don't even have implementations of their abstract machines. They don't have one existing as a goal. And they are happy to make certain operations exhibit undefined behavior even if that implies that it would make an implementation of the abstract machine that traps impossible.
>
This is why even if you were to combine valgrind with address sanitizer, memory sanitizer, thread sanitizer, undefined-behavior-sanitizer, and other existing C and C++ tools, there is still a lot of classes of undefined behavior that these tools can't detect.
>
That's fine in C and C++, but not fine in Rust. In Rust, if we add a new type of undefined behavior, the constraint is that it should be (demonstrably) possible to extend miri to detect it, such that if a user doesn't know whether some program exhibits undefined behavior for some inputs, they can just run it under miri, and miri will precisely pinpoint which part of their code exhibited undefined behavior and why, and how their program execution got there.
11:57
can a sanitizer catch access to an invalid union field?
Avatar
i just entered chat and the first thing i thought was "the code can not unionize"
Avatar
is it possible to do custom commands instead of binding keys?
Avatar
Avatar
Simon
is it possible to do custom commands instead of binding keys?
define custom commands
Avatar
for example /command exec file.cfg
12:01
no wait
Avatar
xDDD
Avatar
i want to do bind command exec file.cfg
12:02
a whole word instead of just a key
Avatar
arent those just a long list of binds
Avatar
yes but im out of keys which i can press fast
12:02
mouse only have 5 buttons
Avatar
do multi binds, like one key you can press to cycle throw a list of binds which will then change the command for another key. U only need 2 keys for that. Use echo messages to tell yourself which "mode" is activated right now
Avatar
ctrl+k
Avatar
1 key, x .cfg files, another key for the bind to be executed
12:04
e.g. n will change the command and an echo to tell urself which one is it currently, and m will execute it.
Avatar
chillerdragon BOT 2023-04-06 12:06:23Z
Yo @Ryozuki what do you work that you build compilers at work?
12:07
im not sure about sharing more personal details about me xd
Avatar
Just stalk his gh
Avatar
chiller tell us
12:07
what do u work as
Avatar
He contributes to some stuff xd
Avatar
or is ur life just staying afk in ddnet
Avatar
Chiller is millionaire chilling his life
Avatar
whenver i start ddnet ur there
12:07
afk
12:08
and if i talk to u ur bot says ur afk
Avatar
Xdd
Avatar
Avatar
Ryozuki
im not sure about sharing more personal details about me xd
In how far does telling what u work leak ur personal information? I mean we all work as programmers, so much is clear
Avatar
chillerdragon BOT 2023-04-06 12:08:43Z
Ok fair same here (@Ryozuki)
im not sure about sharing more personal details about me xd
Avatar
Avatar
fokkonaut
In how far does telling what u work leak ur personal information? I mean we all work as programmers, so much is clear
tell me the name of ur company, website, address, etc
12:09
in this discord with degens
Avatar
ah, yea no
12:09
definitely not haha
Avatar
CEO.google.com
Avatar
its me
Avatar
well if i worked at google i would say it
12:09
xd
Avatar
chillerdragon BOT 2023-04-06 12:09:50Z
I meant what field you work in and what your current project is that it involves such low level things
Avatar
i dont think its that weird
12:10
but yeah my company likes to try new stuff
12:10
honestly im happy im paid to do this interesting stuff
Avatar
chillerdragon BOT 2023-04-06 12:10:28Z
I would be ashamed to work for google xd
Avatar
I want to join u
Avatar
Google > EA
Avatar
chillerdragon BOT 2023-04-06 12:10:40Z
jk it’s a flex. to work at evil corp
Avatar
did u know they write compilers for machine learning
12:10
and they use this https://mlir.llvm.org/
Multi-Level IR Compiler Framework
Avatar
Epic
12:11
fortnite
Avatar
chillerdragon BOT 2023-04-06 12:11:33Z
cring
Avatar
Epic ryo moment
Avatar
Plis bay me sum vbuggs
Avatar
kids dont play fortnite
12:12
they play roblox
12:12
its insane
Avatar
the market
Avatar
roblox is played by 15 year olds
Avatar
much bigger player base
12:12
fortnite is dying anyway
Avatar
nobody cares anyways
Avatar
Roblox Market Cap Roblox has a market cap or net worth of $27.47 billion as of April 6, 2023. Its market cap has decreased by -8.34% in one year.
Avatar
chillerdragon BOT 2023-04-06 12:15:19Z
Roblox has such a cursed look
Avatar
the cfg file can be a normal text file right?
12:26
do i store it in the appdata or in the folder with the ddnet exe?
12:28
if i press key to exec the file it just says it failed to open the file
Avatar
it should be in appdata in the same folder as settings_ddnet.cfg
Avatar
yes it is
12:30
does it have to be the same fily type?
Avatar
No
12:31
Can u enable file type in your explorer
Avatar
yes i got windows
Avatar
Then do it
12:32
Then copy the full name and exec the full name
12:33
It's enabled if u see settings_ddnet.cfg as one word
12:33
Including the. Cfg
Avatar
doesnt work
Avatar
Do screenshot of Ur config dir
Avatar
Avatar
Jupstar ✪
Can u enable file type in your explorer
U didn't do this
12:46
U have a file extension twice probably
12:46
.cfg.cfg
12:46
Or .cfg.txt
12:48
now it works
Avatar
i think i have to do the yearly thermal paste change
14:22
got some new fans too including cpu one
14:22
gotta prepare for the summer heat in this world with climate change kek
Avatar
why yearly?
14:46
u need to do this maybe all 5 years
14:46
or is ur computer getting so hot lately?
Avatar
i think i added too little last time
14:48
my cpu is getting at 85C
14:48
when compiling for a bit
Avatar
it shouldnt even get hot without paste
14:48
(hotter than expected)
Avatar
whats the expected for 5800x
Avatar
i dunno
Avatar
but my case fans are rly old
14:49
like 4 or more years old
14:49
and they are not PWM
14:49
so i got pwm ones
14:49
less noise when nothing and more power when full
14:49
+ the noctua fan for the cpu cooler
14:49
that shit costs 36€ xd
14:50
2000rpm
Avatar
wow my CPU is almost 4 years old already.. time passed so fast damn
14:51
the thermal paste is rly important iirc
Avatar
i think i seen benchmarks where they used none, it was ok
14:51
but ofc the paste will close the gaps
Avatar
In general, changing thermal paste every one to two years is a good idea. However, we would not recommend relying solely on timeframes to monitor when you need to change your thermal paste.
14:52
random website
14:52
xD
Avatar
let me ask chatgpt our lord and savior
14:53
i bet u never changed the thermal paste of your GPU in your life
14:53
😉
Avatar
i did once
14:54
for my old r9 390
14:54
that shit was hot af
14:54
90C sometimes
14:54
xd
Avatar
oh gg
14:56
openening a gpu is really struggle xd
14:56
so many cool pads (edited)
Avatar
Avatar
Ryozuki
In general, changing thermal paste every one to two years is a good idea. However, we would not recommend relying solely on timeframes to monitor when you need to change your thermal paste.
gpt says almost the same lmao, it read that website
Avatar
I like dragonflydb but havent got a chance to use it by now, its still on my todo
Avatar
ChillerDragon BOT 2023-04-06 15:28:16Z
Some Teeworlds stuff in Rust. Contribute to heinrich5991/libtw2 development by creating an account on GitHub.
15:28
you call it accept_connection which in my head maps to CONNECTION_ACCEPT which was replaced by ACCEPT in 0.7
15:29
Rename NET_CTRLMSG_CONNECTACCEPT to take its place. The connection buildup looks like this (as before): ``` -> CONNECT <- ACCEPT -> first data packet or KEEPALIVE due to tim...
Avatar
i think heinric is in a asian timezone
15:30
he is always wake late
Avatar
ChillerDragon BOT 2023-04-06 15:30:14Z
so imo in tw.rs is should still say accept_connection but in tw7.rs it should say just accept
15:30
weeb5991
15:31
@Ryozuki how u know? u saw his insta story? xd
Avatar
by when he is online
Avatar
ChillerDragon BOT 2023-04-06 15:31:57Z
sherlock
15:32
ryo doxing heinric location!
15:32
using metadata
Avatar
Avatar
Jupstar ✪
i bet u never changed the thermal paste of your GPU in your life
Friend of mine had a gpu that performed like horseshit out of the factory. It was overheating too, when I opened it up the thermal paste wasn't anywhere near the gpu die, like half the die was uncovered. So not a horrible idea to check if you get unexpected temps
Avatar
Avatar
Learath2
Friend of mine had a gpu that performed like horseshit out of the factory. It was overheating too, when I opened it up the thermal paste wasn't anywhere near the gpu die, like half the die was uncovered. So not a horrible idea to check if you get unexpected temps
thank god that i use a microwave oven 😮💨
Avatar
ChillerDragon BOT 2023-04-06 17:15:57Z
python has the worst eco system of them all. Its even worse than c++. Change my mind.
17:16
I rather have no package manager than 30 competing ones that are broken in their own way omg
Avatar
whats your opinion on the node (npm) one?
Avatar
ChillerDragon BOT 2023-04-06 17:22:03Z
its bad too but better from my expirience so far
Avatar
cargo build
Avatar
ChillerDragon BOT 2023-04-06 17:23:07Z
also bad but much better
17:23
so far the only problem i have with cargo is its super big and slow git index you have to keep updated
17:23
but they are on it heinrich promised me
Avatar
there is a fix already
17:24
its not enabled by default yet but it will soon
Avatar
ChillerDragon BOT 2023-04-06 17:24:35Z
ok then cargo the only eco sys i have no problems with yet
Avatar
chillerdragon BOT 2023-04-06 17:25:03Z
def foo(): return 8 * 8@Learath2 leratooooooooooooo!!! daily python trivia!!!!!!!!!!!!!!!!!!!do you pay for for the 8 * 8 multiplication at runtime?
17:25
read
Avatar
Avatar
chillerdragon
def foo(): return 8 * 8@Learath2 leratooooooooooooo!!! daily python trivia!!!!!!!!!!!!!!!!!!!do you pay for for the 8 * 8 multiplication at runtime?
probs not
Avatar
ChillerDragon BOT 2023-04-06 17:25:27Z
yes dis heinrich sent last timne i bitched about it xd
17:25
indeed ryo pro
Avatar
i mean its rly obvious
17:26
and stupid if not optimized
Avatar
chillerdragon BOT 2023-04-06 17:26:12Z
>>> import dis >>> def foo(): ... return 8 * 8 ... >>> foo() 64 >>> dis.dis(foo) 2 0 LOAD_CONST 1 (64) 2 RETURN_VALUE >>>
Avatar
ChillerDragon BOT 2023-04-06 17:26:42Z
you can get python bytecode with python o.O
Avatar
Avatar
chillerdragon
>>> import dis >>> def foo(): ... return 8 * 8 ... >>> foo() 64 >>> dis.dis(foo) 2 0 LOAD_CONST 1 (64) 2 RETURN_VALUE >>>
wtf are these code words
Avatar
ChillerDragon BOT 2023-04-06 17:29:05Z
wot?
Avatar
dis? foo?
Avatar
ChillerDragon BOT 2023-04-06 17:29:16Z
foo is my function
Avatar
you can not say these with a straight face
Avatar
ChillerDragon BOT 2023-04-06 17:29:24Z
dis is from python to get python bytecode
Avatar
chillerdragon BOT 2023-04-06 17:30:50Z
def foo(): a = 2 return a * a@Ryozuki you reached level 2 of daily lerato.py trivia! same question new code
Avatar
ChillerDragon BOT 2023-04-06 17:31:27Z
and here your streak ends
17:31
python slow
Avatar
then python sucks
Avatar
chillerdragon BOT 2023-04-06 17:31:52Z
>>> def foo(): ... a = 2 ... return a * a ... >>> foo() 4 >>> import dis >>> dis.dis(foo) 2 0 LOAD_CONST 1 (2) 2 STORE_FAST 0 (a) 3 4 LOAD_FAST 0 (a) 6 LOAD_FAST 0 (a) 8 BINARY_MULTIPLY 10 RETURN_VALUE >>>
Avatar
so bad
17:32
maybe this pyc code is not optimized
17:32
well whathever this is
Avatar
ChillerDragon BOT 2023-04-06 17:32:40Z
idc if there are optimization levels of python bytecode
17:32
idk*
Avatar
Constant folding and constant propagation are related compiler optimizations used by many modern compilers. An advanced form of constant propagation known as sparse conditional constant propagation can more accurately propagate constants and simultaneously remove dead code.
Avatar
ChillerDragon BOT 2023-04-06 17:37:00Z
https://stackoverflow.com/a/62656844 i fear there is no python way to tell the compiler to optimize
my Python program is slow and I wanted to test if it would speed up if I complied it (with code optimization) and executed it afterward. So what are the terminal commands to do so? I'm searching for
17:41
i feel like the best way to write python is to write rust ._.
Avatar
transparency in all curved grass tiles data/mapres/grass_main.png !ddnet_grassmain
Avatar
Avatar
Ryozuki
ur lovely x86
also depends on DRAM vendor, some allow to zero out directly in place
Avatar
oh didnt know
Avatar
but x86 has optimization to only mark null cache line instead of transferring them
18:55
which ironically allows some nice data leak 😄
Avatar
hi is there any plan to port the game to consoles? didnt find anything about this just curious
Avatar
Nope, honestly the game doesn't work very well with controllers to begin with
Avatar
can no longer replace images in the editor with the same name, this sucks while working on tilesets. this used to work, now it displays "image named 'xxx' was already added." in red text. I guess "readd" option was added for this case, but this doesn't work when the map/client was closed.
Avatar
Avatar
Learath2
Nope, honestly the game doesn't work very well with controllers to begin with
is it a thing? i remember cen94ok showed me his controller gameplay on 0.7 and everything seemed good to him
Avatar
You can play with a controller in ddnet right now too, I didn't enjoy it too much but maybe you'd
Avatar
Avatar
Learath2
Nope, honestly the game doesn't work very well with controllers to begin with
The thing is i use ps4 pro with keyboard and mouse
20:52
Dont have a setup to play tw with, so was wondering if it could work out or nah
20:53
And i play tw since 2011 so it wont feel great not to be able to play
Avatar
ps4 & switch system and graphics APIs are locked behind developer programs that are incredibly hard to get into for open-source authors
22:00
and there is no existing directx backend for use on xbox
22:01
so for any platform it would be a tremendous amount of work. somehow get into the developer program, add a new graphics backend, deal with the countless quirks of the system, and of course, somehow navigating the UI with a controller
22:05
if you care that much there was a thing floating around a little while ago that you could install linux on a ps4
22:06
i have no idea if there is an opengl implementation for the ps4's gpu. i would assume not & have no idea if it would work under existing amdgpu stuff
Avatar
f4c3fee Use ShowFileDialogError instead of ShowPopupMessage - Robyt3 3d343c8 Remove unnecessary popup debug message - Robyt3 caac7b0 Fix static usage of POPEVENT_* enum literals - Robyt3 c6d14e5 Move all editor popup function definitions to popups.cpp - Robyt3 df91bb9 Refactor layer properties functions - Robyt3 c1ffc8b Refactor CEditor::PopupMenuFile - Robyt3 eda808e Refactor CEditor::PopupGroup - Robyt3 9f5de0c Refactor CEditor::PopupLayer - Robyt3 2146d7b Refactor CEditor::PopupQuad - Robyt3 5cfecdb Refactor CEditor::PopupSource - Robyt3 141571c Refactor CEditor::PopupNewFolder and improve layout - Robyt3 04d9e2b Refactor CEditor::PopupMapInfo and improve layout - Robyt3 e09a771 Refactor CEditor::PopupPoint - Robyt3 7289f7d Refactor CEditor::PopupImage - Robyt3 91ce99b Refactor CEditor::PopupSound - Robyt3 b20cf78 Refactor CEditor::PopupEvent and improve layout - Robyt3 f3f44ca Refactor CEditor::PopupSelectImage - Robyt3 c730cd4 Refactor CEditor::PopupSelectSound - Robyt3 03e7cfc Refactor CEditor::PopupSelectGametileOp - Robyt3 04c1e06 Refactor CEditor::PopupSelectConfigAutoMap - Robyt3 b839c68 Refactor CEditor::PopupSpeedup - Robyt3 c4b2531 Refactor CEditor::PopupSwitch - Robyt3 d5a24d7 Refactor CEditor::PopupTune - Robyt3 8bdf2cf Refactor CEditor::PopupGoto - Robyt3 9391155 Refactor CEditor::PopupColorPicker - Robyt3 3c841f7 Refactor CEditor::PopupEntities - Robyt3 b4c1144 Merge #6492 - bors[bot]
Exported 336 message(s)