aboutsummaryrefslogtreecommitdiff
path: root/src/shared/vmap/CoordModelMapping.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/vmap/CoordModelMapping.cpp')
-rw-r--r--src/shared/vmap/CoordModelMapping.cpp200
1 files changed, 0 insertions, 200 deletions
diff --git a/src/shared/vmap/CoordModelMapping.cpp b/src/shared/vmap/CoordModelMapping.cpp
deleted file mode 100644
index 20fe733c48e..00000000000
--- a/src/shared/vmap/CoordModelMapping.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
- *
- * Copyright (C) 2008-2010 Trinity <http://www.trinitycore.org/>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "CoordModelMapping.h"
-
-#include <string.h>
-#include <stdio.h>
-
-using namespace G3D;
-
-namespace VMAP
-{
-
- //============================================================
- //============================================================
-
- void CMappingEntry::addFilename(char *pName)
- {
- std::string name = std::string(pName);
- if(!iFilenames.contains(name))
- iFilenames.append(std::string(pName));
- }
-
- //============================================================
-
- const std::string CMappingEntry::getKeyString() const
- {
- return(CMappingEntry::getKeyString(iMapId,xPos, yPos));
- }
-
- const std::string CMappingEntry::getKeyString( unsigned int pMapId, int pXPos, int pYPos )
- {
- char b[100];
- sprintf(b,"%03u_%d_%d", pMapId, pXPos, pYPos);
- return(std::string(b));
- }
-
- //============================================================
- //============================================================
- //============================================================
-
- CoordModelMapping::~CoordModelMapping()
- {
- Array<std::string> keys = iMapObjectFiles.getKeys();
- for (int k = 0; k < keys.length(); k++)
- {
- CMappingEntry *value = getCMappingEntry(keys[k]);
- if(value != 0)
- {
- iMapObjectFiles.remove(keys[k]);
- delete value;
- }
- }
- }
-
- //============================================================
-
- int findPosChar(const char *namebuffer, char pSearch, int pCount)
- {
- int result = -1;
- int pos=0;
- while(namebuffer[pos] != 0)
- {
- if(namebuffer[pos] == pSearch)
- {
- --pCount;
- }
- if(pCount == 0)
- {
- result = pos;
- break;
- }
- ++pos;
- }
- return result;
- }
- //============================================================
- bool CoordModelMapping::readCoordinateMapping(const std::string& pDirectoryFileName)
- {
- FILE *f = fopen(pDirectoryFileName.c_str(), "rb");
- if(!f)
- {
- printf("ERROR: Can't open file: %s\n",pDirectoryFileName.c_str());
- return false;
- }
-
- char buffer[500+1];
-
- CMappingEntry* cMappingEntry;
- while(fgets(buffer, 500, f))
- {
- //char namebuffer[500];
- char positionbuffer[500];
- int xpos, ypos, noVec;
- float scale;
- xpos = ypos = noVec = 0;
-
- //sscanf(buffer, "%d %d %s %s %f %d", &xpos, &ypos, namebuffer,positionbuffer, &scale, &noVec);
-
- // this is ugly, but the format has no read delimiter and a space could be in the first part of the name
- int nameStart = findPosChar(buffer, ' ', 2);// find the 2. space
- if(nameStart > -1 && (iFilterMethod == NULL || (*iFilterMethod)(buffer)))
- {
- ++nameStart;
- // find the 1. / (now a space only can be found at the end of the name)
- int nameEnd = nameStart + findPosChar(&buffer[nameStart], '/', 1);
- // find the 1. space (after the name)
- nameEnd += findPosChar(&buffer[nameEnd], ' ', 1);
- buffer[nameEnd] = 0; // terminate the name
-
- sscanf(buffer, "%d %d", &xpos, &ypos);
- sscanf(&buffer[nameEnd+1], "%s %f %d", positionbuffer, &scale, &noVec);
- unsigned int mapId = getMapIdFromFilename(std::string(&buffer[nameStart]));
- if(!iMapIds.contains(mapId))
- {
- iMapIds.append(mapId);
- printf("Coords for map %u...\n",mapId);
- }
- if(!isWorldAreaMap(mapId))
- {
- xpos = 0; // store all files under the groupKey
- ypos = 0;
- }
-
- std::string key = CMappingEntry::getKeyString(mapId, xpos, ypos);
- cMappingEntry = getCMappingEntry(key);
- if(cMappingEntry == 0)
- {
- cMappingEntry = new CMappingEntry(mapId, xpos, ypos);
- addCMappingEntry(cMappingEntry);
- }
- char namebuffer2[500];
- sprintf(namebuffer2, "%d %s#%s_%f", noVec, &buffer[nameStart], positionbuffer, scale);
- cMappingEntry->addFilename(namebuffer2);
- //break;
- }
- }
- fclose(f);
- return true;
- }
-
- //============================================================
-
- const NameCollection CoordModelMapping::getFilenamesForCoordinate(unsigned int pMapId, int xPos, int yPos)
- {
- NameCollection result;
- Array<std::string> rawNames;
-
- CMappingEntry *entry = getCMappingEntry(CMappingEntry::getKeyString(pMapId, xPos, yPos));
- if(entry != 0)
- {
- rawNames = entry->getFilenames();
-
- int pos = 0;
- while(pos < rawNames.size())
- {
- char namebuffer[500];
- int noVerc;
- int startName = findPosChar(rawNames[pos].c_str(), ' ', 1) + 1;
- int endName = (int) rawNames[pos].length();
- sscanf(rawNames[pos].c_str(), "%d", &noVerc);
- memcpy(namebuffer, &rawNames[pos].c_str()[startName], endName-startName);
- namebuffer[endName-startName] = 0;
- sscanf(rawNames[pos].c_str(), "%d", &noVerc);
- std::string modelPosFileName = std::string(namebuffer);
- if(noVerc > MIN_VERTICES_FOR_OWN_CONTAINER_FILE)
- {
- result.appendToSingle(modelPosFileName);
- }
- else
- {
- result.appendToMain(modelPosFileName);
- }
- ++pos;
- }
- }
- return result;
- }
-
- //=================================================================
-
-}
-