aboutsummaryrefslogtreecommitdiff
path: root/src/game.cpp
AgeCommit message (Collapse)Author
2017-07-16Chat protocol rewrite (#5117)Loïc Blot
* New TOCLIENT_CHAT_MESSAGE packet * Rename old packet to TOCLIENT_CHAT_MESSAGE_OLD for compat * Handle TOCLIENT_CHAT_MESSAGE new structure client side * Client chat queue should use a specific object * SendChatMessage: use the right packet depending on protocol version (not complete yet) * Add chatmessage(type) objects and handle them client side (partially) * Use ChatMessage instead of std::wstring server side * Update with timestamp support
2017-07-07Expose getPointedThing to LuaDániel Juhász
This commit introduces Raycast, a Lua user object, which can be used to perform a raycast on the map. The ray is continuable, so one can also get hidden nodes (for example to see trough glass).
2017-07-05Fog effect when camera is inside cloudBen Deutsch
Fixes issue #3576 * Clouds now take camera position as 3D, not 2D * Cloud grid filling extracted to gridFilled method * Clouds detect whether camera is inside cloud * Camera in cloud changes fog by overriding sky colors with cloud color * Sun, moon and stars can be temporarily disabled with setBodiesVisible * Disabling fog also disables all "inside cloud" behaviors
2017-07-02Fix crash due to missing pointer validationLoic Blot
Fix #6092
2017-07-02Irrlicht cleanup: cleanup various object to use RenderingEngine (#6088)Loïc Blot
* Irrlicht cleanup: cleanup various object to use RenderingEngine * CAO doesn't need scenemanager in addToScene * Camera doesn't need VideoDriver pointer or SceneManager in constructor * Hud doesn't need driver & scene manager in constructor * Hud doesn't need scenemanager pointer * Tile.h doesn't need IrrlichtDevice header (just SMaterial) * WieldMeshSceneNode: only take scene, we always use scene root node as parent
2017-06-30Create a filesystem abstraction layer for CSM and only allow accessing files ↵red-001
that are scanned into it. (#5965) * Load client-side mods into memory before executing them. This removes the remaining filesystem access that client-sided mods had and it will hopefully make then more secure. * Lua Virtual filesystem: don't load the files into memory just scan the filenames into memory. * Fix the issues with backtrace * fix most of the issues * fix code style. * add a comment
2017-06-26Isolate irrlicht references and use a singleton (#6041)Loïc Blot
* Add Device3D class which will contain IrrlichtDevice interface move getSupportedVideoDrivers to Device3D Add Device3D singleton & use it in various places Rename Device3D to Rendering engine & add helper functions to various device pointers More singleton work RenderingEngine owns draw_load_screen move draw functions to RenderingEngine Reduce IrrlichtDevice exposure and guienvironment RenderingEngine: Expose get_timer_time() to remove device from guiEngine Make irrlichtdevice & scene manager less exposed * Code style fixes * Move porting::getVideoDriverName, getVideoDriverFriendlyName, getDisplayDensity, getDisplaySize to RenderingEngine Fix XORG_USED macro -> RenderingEngine + create_engine_device from RenderingEngine constructor directly * enum paralax => enum parallax
2017-06-24Game::showOverlayMessage: securise functionLoic Blot
Do wgettext call directly in the function instead of caller, as we destroy wstd inside it
2017-06-23Show param1 and param2 in debug screen (#6031)Wuzzy
* Show param1 and param2 in debug screen * Add units and some formatting to debug screen * Minor refactor of param1/param2 debug display
2017-06-20Automatic item and node colorization (#5640)Dániel Juhász
* Automatic item and node colorization Now nodes with a palette yield colored item stacks, and colored items place colored nodes by default. The client predicts the colorization. * Backwards compatibility * Use nil * Style fixes * Fix code style * Document changes
2017-06-19Client::makeScreenshot: remove device paramLoic Blot
We already have the device param as class member
2017-06-17Cpp11 initializers 2 (#5999)Loïc Blot
* C++11 patchset 10: continue cleanup on constructors * Drop obsolete bool MainMenuData::enable_public (setting is called with cURL in server loop) * More classes cleanup * More classes cleanup + change NULL tests to boolean tests
2017-06-11Use thread_local instead from some static settings (#5955)Loïc Blot
thread_local permits to limit variable lifetime to thread duration. Use it on each setting place which uses static to cache variable result only for thread lifetime. This permits to keep the same performance level & reconfigure server from MT gui in those various variables places. Add thread_local to undersampling calculation too.
2017-06-10Remove superfluous pointer null checksQrchackOfficial
2017-06-08Autorun: Change to 'autoforward' (#5926)Paramat
Minetest does not have 'run'. Automatic forwards is very often used while flying or swimming, so a general word is more suitable.
2017-06-03Fix segmentation fault with tool capabilities (#5899)ShadowNinja
2017-06-03Snake case for screen options in minetest.conf (#5792)Vincent Glize
2017-05-25Close formspec on client shutdown. (#5811)red-001
This ensures the shutting down progress bar is correctly rendered. This fixes #3050.
2017-05-23Client crashfix: load meta after digging (#5801)Paramat
Fixes a crash caused in MTGame by breaking and right-clicking a chest. If loading meta, digging, node can disappear and we looked at meta, which is wrong because meta became NULL. Pointer is invalidated and we read wrong memory area
2017-05-20Fix instant digging (#5785)you
Use runData.dig_time_complete instead of params.time to find out whether it's instant digging. runData.dig_time_complete is set to something very big if the node can't be dug, whereas param.time is 0 when digging is impossible or it's instant digging. So not using param.time fixes #5728.
2017-05-19When minimap is disabled in configuration, really disable it (#5771)Loïc Blot
* When minimap is disabled in configuration, really disable it
2017-05-13No cursor lock when window inactive (#5754)SmallJoker
2017-05-13Limit properly the sound setting at updateSound runtime step (#5753)Loïc Blot
* Limit properly the sound setting at updateSound runtime step Fix #5026 * Add a comment
2017-05-13Move KeyList & InputHandler from game.h to client/inputhandler.h (#5752)Loïc Blot
* Move KeyList & InputHandler from game.h to client/inputhandler.h We have a header for inputs, move inputhandler class & related keylist object to it Also introduce a cpp file for MyEventReceiver::OnEvent function in inputhandler.h because a so huge function doesn't needs to be inlined * Pass clang-format on inputhandler.{cpp,h} (compatible)
2017-05-13Android build fixLoic Blot
2017-05-13Minor pause/escape menu improvements (#5751)red-001
- Split movement keys into separate entries. - Increase buffer size due to the above change. - Change capitalisation. - Remove code-style violating white spaces.
2017-05-11Rework escape/pause menu (#5719)red-001
* Rework escape/pause menu - Remove build information - Use current controls instead of default controls - Add information about the current server in place of the build information - Add text saying the game is paused to if in singleplayer mode. rework pause/escape menu * improve consistency + display server_name
2017-05-06Add configurable key bindings for hotbar scrolling, and for changing volume.Wuzzy
2017-05-06[CSM] add `on_item_use` (#5544)red-001
2017-05-06Make players respect makes_footstep_sound in the object propertiesTeTpaAka
2017-05-05Save minetest screen width/height options when modified (#5683)Loïc Blot
* Save minetest screen width/height options when modified * Add autosave_screensize setting (default true) * Fix @SmallJoker comments
2017-05-04Add function to get server info.red-001
2017-05-02Set sky API: Add bool for clouds in front of custom skyboxparamat
Default true. Add 'm_clouds_enabled' bool to sky.h, set from new bool in 'set sky' API. Make 'getCloudsVisible()' depend on 'm_clouds_enabled' instead of 'm_visible' (whether normal sky is visible).
2017-04-30Add clouds APIBen Deutsch
2017-04-29Client & ClientEnvirnment: don't create fake events (#5676)Loïc Blot
Instead of create fake events on the stack on each loop call (Game::run), verify is queue is empty or not and handle event directly if there is. This prevents fake ClientEvent creation & memory allocations Same fix is also applied on ClientEnvironment, & rename getClientEvent to getClientEnvEvent to match ClientEnvEvent object
2017-04-29[CSM] Add event on_place_node API lua (#5548)Vincent Glize
* [CSM] Add event on_place_node API lua
2017-04-28Fix click-digging torches (#5652)you
Torches are dug instantly again. When the digging time is 0, a delay of 0.15 seconds is added between digging nodes. If the left mouse button is released, the delay is set to 0, thus click-digging.
2017-04-27Search user path for sounds (#5657)Louis Pearson
2017-04-25Rename Scripting API files for consistencyShadowNinja
2017-04-25Fix various points reported by cppcheck (#5656)Loïc Blot
* Fix various performance issues reported by cppcheck + code style (CI) * Make CI happy with code style on master * guiFileSelectMenu: remove useless includes * some performance fixes pointed by cppcheck * remove some useless casts * TextDest: remove unused setFormSpec function * Fix various iterator post-increment reported by cppcheck
2017-04-19Fix various copy instead of const ref reported by cppcheck (#5615)Loïc Blot
* Also remove InventoryList::peekItem unused function * Fix some post increment to preincrement reported by cppcheck
2017-04-19Tools: Fix tool digging speed limitHybrid Dog
2017-04-19Fix various variables passed by copy instead of const ref (#5610)Loïc Blot
Pointed by cppcheck
2017-04-16Android progressbar fix (#5601)Loïc Blot
* Fix progressbar for Android Fixes #5599 Fixed #5403 * draw_load_screen: use texturesource this permits to unify texture loading code * scale progress bar * Add gl version check for GL_OES_texture_npot. This fixed the texture on loading screen * Remove two sanity checks pointed by @celeron55 * sfan5 comments + android ratio fixes
2017-04-06Fix spacingEkdohibs
2017-04-06Fix problems when overriding the hand:Ekdohibs
- If the hand can dig a node the item wielded can't, allow to dig it anyway. - Fix the API callbacks from setting the hand instead of the wielded item.
2017-04-07Show media download progress in percent on progress screen (#5498)orwell96
2017-03-26Change command prefix to "." and add "help" command.red-001
2017-03-22Some performance optimizations (#5424)Loïc Blot
* Some performance optimizations This is globally removing some memory useless copy * use a const ref return on std::string Settings::get to prevent data copy on getters which doesn't need to copy it * pass some stack created strings to static const as they are not modified anywhere * Camera: return nametags per const ref instead of a list pointer, we only need to read it * INodeDefManager: getAll should be a result ref writer instead of a return copy * INodeDefManager: getAlias should return a const std::string ref * Minimap: unroll a Scolor creation in blitMinimapPixersToImageRadar to prvent many variable construct/destruct which are unneeded (we rewrite the content in the loop) * CNodeDefManager::updateAliases: prevent a idef getall copy * Profiler: constness * rollback_interface: create real_name later, and use const ref * MapBlockMesh updateFastFaceRow: unroll TileSpec next_tile, which has a cost of 1.8% CPU due to variable allocation/destruction, * MapBlockMesh updateFastFaceRow: copy next_tile to tile only if it's a different tilespec * MapBlockMesh updateFastFaceRow: use memcpy to copy next_lights to lights to do it in a single cpu operation
2017-03-20Refactored client event if-else cascade to switch statementBen Deutsch