| Commit message (Collapse) | Author | Age |
... | |
| |
|
|
|
|
|
|
|
| |
Everywhere where wstrgettext was used, its output was converted back
to utf8. As wstrgettext internally converts the return value
from utf8 to wstring, it has been a waste. Remove the function, and
use strgettext instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- setOpenedTrees(): this internal function was calling setSelected()
to update m_selected. Since setSelected() calls autoScroll(),
this caused the scrollbar to scroll back to the selected row
in some cases when that shouldn't be done.
For example, clicking the "+" to open a tree caused autoscroll.
Fix this by making setOpenedTrees() modify m_selected directly.
- setDynamicData(): set scrollbar position after calling
setSelected(), not before. This avoids setSelected()'s autoscroll
messing up the scrollbar position again.
- setSelected(): If an invisible row is selected, open all parents
of the selected row in order to make the selected row visible.
This fixes the issue where all the trees are closed again whenever
you return from the setting edit dialog to the settings tab.
|
|
|
|
|
| |
Settings are automatically parsed from builtin/settingtypes.txt
The edit dialog automatically adjust based on the type of setting
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
- Fix some incompatibilities with obscure platforms (AIX and WinCE)
- Clean up Thread class interface
- Add m_ prefix to private member variables
- Simplify platform-dependent logic, reducing preprocessor
conditional clauses and improving readibility
- Add Thread class documentation
|
|
|
|
|
| |
- Add "thr_" prefix to thread utility functions
- Compare threadid_ts in a portable manner, where possible
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The invsize formspec element is outdated. Even though,
it is still supported, only a deprecation warning is shown,
introduced by commit [1]. The lua context passed to the
log_deprecated method added by commit [1] is NULL for the
invsize deprecation warning, as its run on the client and not
the server.
Commit [1] has removed checks for NULL inside the log_deprecated
method, resulting in a crash when a formspec with an invsize
element is parsed. This commit puts the check back.
Fixes #3260.
Referenced commits:
[1]: b5acec0a3c5701c53854ff7afdf4008863e6e8df "Add proper lua api deprecated handling"
[2]: 7b8d372947aae232ddf598155e972bb4dda157a "Use warningstream for deprecated field messages and refactor log_deprecated"
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit
d2ca662569427d36642660314668e416bf68f3c8 "Enforce hiding nametag"
didn't fix the issue for "client" instances, where the nametag update
was received before the object was added to the scene. This resulted
in the grey shadow on the nametag that commit tried to fix.
Thanks to @neoascetic for pointing out that there still is a shadow.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
All log operations are now added to the syslog implicitly.
Also, pass along mutable string to argument vector for main().
|
|
|
|
| |
These names are reserved for the compiler/library implementations.
|
| |
|
| |
|
|
|
|
| |
Remove DTIME macro and its uses, too
|
|
|
|
|
|
|
|
|
| |
- Add warning log level
- Change debug_log_level setting to enumeration string
- Map Irrlicht log events to MT log events
- Encapsulate log_* functions and global variables into a class, Logger
- Unify dstream with standard logging mechanism
- Unify core.debug() with standard core.log() script API
|
|
|
|
|
|
| |
- SRP: print the address only once, not twice
- Legacy: previously the address was not printed at all
- Make both messages structurally the same, to facilitate log analyzers
|
|
|
|
|
|
|
| |
Player now spawns on julia set due to julia offset
Add commented-out '#include profiler.h' for timetaker use
Use v3fs to reduce number of parameters
Tune tunnel width to match mgv7
|
| |
|
|
|
|
|
|
|
|
|
| |
Fixes a bug where the old list ring remained when a new formspec
was displayed over the old one. This created the list-ring of the new formspec
to be partly ignored.
Thanks to @VanessaE to report the bug, and @DonBatman to produce the code that
exposed it.
|
|
|
|
|
| |
Update copyright years in all mapgens
Add myself to copyright notices in mgv5 and mgv7
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This might break some mods, but it is important for all uses of the param2 to
be documented.
This doesn't need a serialisation version or network protocol version change,
as old clients will still work on new servers, and it is bearable to have
new clients getting non rotated plants on old servers.
|
| |
|
| |
|
|
|
|
| |
Major refactor of emerge.cpp and Map::init/finishBlockMake
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
It returns the index used in mg->biomemap for a given biome name.
The biomemap is useless without this unless you re-register all existing biomes,
which could cause problems for anyone else trying to use biomemap.
With this, you can quickly create a lookup table of ids and names.
|
|
|
|
| |
Also add PATH_DELIM for Windows compatibility.
|
|
|
|
|
|
| |
Get facedir by using lowest 5 bits of param2 and limiting to 23
More robust, frees up higher param2 bits for other uses
Change lookup table and table index to u8
|
|
|
|
|
| |
-> Remove memory allocation bugs
-> Merge changes from upstream, enabling customizeable memory allocation
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Check for entity addition success in spawn_item implementation
2. Check for success in item_drop callback, so that the player
doesn't lose the item if they are outside bounds and try to drop it.
3. When existing player joins game, check that their position is inside
map bounds. If not, set their position to the return value of findSpawnPos().
4. Make findSpawnPos() respect the border
2 fixes a lua crash if a player drops an item outside map bounds.
3 fixes an assertion crash if a player leaves when being outside map bounds,
and then rejoins.
|
|
|
|
|
|
|
|
|
|
| |
Because the count is serialized as u16, this would cause overflow.
If minetest later deserialized a mapblock with an incorrect
static object count, it would be unable to find the NameIdMapping
(which comes after the StaticObjectList) and abort with an error
such as "Invalid block data in database: unsupported NameIdMapping
version" (issue #2610).
|
|
|
|
|
|
|
| |
Sidelen larger than 16 is essential for low density decorations
With sidelen > 16 chunksize may not be divisable by sidelen if
chunksize is changed, in this situation setting sidelen = chunksize
is desirable and should not create error messages.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change a remaining assert(0) call to FATAL_ERROR(msg).
There was a regression since commit
ced6d20295a8263757d57c02a07ffcb66688a163 "For usages of assert() that are meant to persist in Release builds (when NDEBUG is defined), replace those usages with persistent alternatives"
where when an "uncatched" exception is thrown inside a "side thread",
the program doesn't abort anymore.
This led to the problem @netinetwalker experienced where the emergethread
got an unhandled exception for loading a mapblock while redis was loading,
(see #3196) and then jmped outside its loop to work down its queue.
This resulted in the server not doing any emerges anymore.
|
|
|
|
|
|
|
|
|
|
| |
Thanks to @netinetwalker for spotting the error, proposing a fix, and testing it.
Error due to @est31's merging changes to PR #3202 to add more error reporting for invalid reply types, commit:
524a7656e3e5cd671b05c13e2ad69cb84bad0423 "redis: throw error if block request failed"
Now we branch out on the valid reply type "not found".
|
|
|
|
|
|
|
|
|
|
|
| |
On world load the collision code can not see node boxes, since the
nodes have not been loaded. Thus it collided only at the next full
node. However, standing on a slab on world load leaded to sinking into
it until the world finished loading. Then one maybe fell further, if
the node below was not walkable.
Now, with this commit, when no node around the player has been loaded
it simply does not move the player.
|
|
|
|
|
|
| |
Fixes #3196. Before, we didn't throw an error, and the engine thought the
block isn't occupied. But in fact it might be that redis is still loading,
and the block does exist in the database. The result was a cheesy map.
|
| |
|
|
|
|
|
|
| |
Why doing things simple ? Use pointer instead of strings to save players and remove them.
Saving players by name does a lookup to find pointer we already have ! Idem with removePlayer
Also remove unused removePlayer(peer_id), it's never called
|
| |
|
|
|
|
|
|
|
|
|
|
| |
-> Don't pass pointer to whole IGameDef to NodeMetadata constructors
and deserializers, but only to IItemDefManager, which is needed
-> Remove the unused content_mapnode_get_new_name() method
-> Fix style for MapBlock::deSerialize and MapBlock::deSerialize_pre22,
improving accuracy of error messages a bit
-> Fix style at other serialisation methods too
-> Improve accuracy of some comments
|
|
|
|
|
| |
Use std::queue instead of std::set, we don't need such a heavy container.
Don't convert position to int to convert it back to float in the next function.
|