diff options
author | sapier <Sapier at GMX dot net> | 2013-06-23 18:30:21 +0200 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2013-07-02 19:58:20 -0400 |
commit | 967121a34bbc60e6b46c7ec470b151f668ef1fef (patch) | |
tree | e5cc5ec845d3c286bcb0e203e3a5f146950bfaf1 /src/map.cpp | |
parent | fe4ce03d529f70346b2e2c4872223ebdcd37fffa (diff) | |
download | minetest-967121a34bbc60e6b46c7ec470b151f668ef1fef.tar.gz minetest-967121a34bbc60e6b46c7ec470b151f668ef1fef.tar.bz2 minetest-967121a34bbc60e6b46c7ec470b151f668ef1fef.zip |
Replace C++ mainmenu by formspec powered one
Diffstat (limited to 'src/map.cpp')
-rw-r--r-- | src/map.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/map.cpp b/src/map.cpp index cf7dd6f9f..272bc9322 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -3237,17 +3237,18 @@ v2s16 ServerMap::getSectorPos(std::string dirname) { unsigned int x, y; int r; - size_t spos = dirname.rfind(DIR_DELIM_C) + 1; - assert(spos != std::string::npos); - if(dirname.size() - spos == 8) + std::string component; + fs::RemoveLastPathComponent(dirname, &component, 1); + if(component.size() == 8) { // Old layout - r = sscanf(dirname.substr(spos).c_str(), "%4x%4x", &x, &y); + r = sscanf(component.c_str(), "%4x%4x", &x, &y); } - else if(dirname.size() - spos == 3) + else if(component.size() == 3) { // New layout - r = sscanf(dirname.substr(spos-4).c_str(), "%3x" DIR_DELIM "%3x", &x, &y); + fs::RemoveLastPathComponent(dirname, &component, 2); + r = sscanf(component.c_str(), "%3x" DIR_DELIM "%3x", &x, &y); // Sign-extend the 12 bit values up to 16 bits... if(x&0x800) x|=0xF000; if(y&0x800) y|=0xF000; |