mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-11 02:28:18 +00:00
fce6776c38
4095: [Concept] Add new mouse state (ingame mouse) r=def- a=Jupeyy This would remove ui_mousesense and use the desktop cursor position instead for menus and editor This would also fix the editor cursor to not move faster than in menus. That's probably how most games would handle menus, instead of using relative mouse mode And this would work for touch inputs. The normal gameplay relative mouse is ofc NOT affected by any kind Opinions? Missing: - [x] m_MouseSlow in menus - [x] Make desktop cursor invisible - [x] Some components that use ui mouse - [x] Remove focus in/out relative mouse state changes, fixed with next SDL version ## Checklist - [x] Tested the change ingame - [ ] Provided screenshots if it is a visual change - [ ] Tested in combination with possibly related configuration options - [ ] Written a unit test if it works standalone, system.c especially - [ ] Considered possible null pointers and out of bounds array indexing - [ ] Changed no physics that affect existing maps - [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional) 4176: Entity switch prediction r=def- a=trml Adds the prediction for pickups and projectiles (based on #4108) For blinking entities (deactivated by switch) I also used the extended info to make the blinking effect happen client-side. So instead of the server omitting the projectile/pickup from the snapshot every N ticks (which prevented some things like explosive bullets from being predicted correctly), the server will keep sending the item and let the client decide how to show it. Added doors as well, and changed how they are sent (and rendered) in a similar way (by always sending both endpoints and using a fixed m_StartTick instead of updating it every tick). An idea was that this could potentially reduce network traffic a bit (in addition to helping with prediction), especially for stationary items that are rarely/never have to be updated (doors and pickups). This makes CItems::OnRender a bit more complex, and it could perhaps be cleaned up some way (either using something like CProjectileData, or by moving more of the logic into RenderProjectile/Laser/Pickup). Some things missing: - Add more entities (draggers, light, gun) - Entities are not correctly shown when in super (e.g. doors are shown as closed, and should be open) ## Checklist - [x] Tested the change ingame - [ ] Provided screenshots if it is a visual change - [ ] Tested in combination with possibly related configuration options - [ ] Written a unit test if it works standalone, system.c especially - [ ] Considered possible null pointers and out of bounds array indexing - [x] Changed no physics that affect existing maps - [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional) Co-authored-by: Jupeyy <jupjopjap@gmail.com> Co-authored-by: trml <trml@users.noreply.github.com> |
||
---|---|---|
.. | ||
backend | ||
backend_sdl.cpp | ||
backend_sdl.h | ||
blocklist_driver.cpp | ||
blocklist_driver.h | ||
client.cpp | ||
client.h | ||
demoedit.cpp | ||
demoedit.h | ||
discord.cpp | ||
friends.cpp | ||
friends.h | ||
ghost.cpp | ||
ghost.h | ||
graphics_defines.h | ||
graphics_threaded.cpp | ||
graphics_threaded.h | ||
graphics_threaded_null.h | ||
http.cpp | ||
http.h | ||
input.cpp | ||
input.h | ||
keynames.h | ||
notifications.cpp | ||
notifications.h | ||
serverbrowser.cpp | ||
serverbrowser.h | ||
serverbrowser_http.cpp | ||
serverbrowser_http.h | ||
serverbrowser_ping_cache.cpp | ||
serverbrowser_ping_cache.h | ||
sound.cpp | ||
sound.h | ||
sqlite.cpp | ||
steam.cpp | ||
text.cpp | ||
updater.cpp | ||
updater.h | ||
video.cpp | ||
video.h |