Resolve issue #163

Fixed and assert on changing material, and we now map the material to the MATMGR by name instead of type.
This commit is contained in:
thecelloman 2013-03-27 21:36:17 -04:00
parent 769268784f
commit 7e5ddf4ca2
3 changed files with 28 additions and 4 deletions

View file

@ -5127,8 +5127,8 @@ DefineEngineMethod( ShapeBase, changeMaterial, void, ( const char* mapTo, Materi
newMat->mMapTo = mapTo;
// Map the material in the in the matmgr
MATMGR->mapMaterial( mapTo, newMat->mMapTo );
// Map the material by name in the matmgr
MATMGR->mapMaterial( mapTo, newMat->getName() );
// Replace instances with the new material being traded in. For ShapeBase
// class we have to update the server/client objects separately so both

View file

@ -1120,8 +1120,8 @@ DefineEngineMethod( TSStatic, changeMaterial, void, ( const char* mapTo, Materia
newMat->mMapTo = mapTo;
// Map the material in the in the matmgr
MATMGR->mapMaterial( mapTo, newMat->mMapTo );
// Map the material by name in the matmgr
MATMGR->mapMaterial( mapTo, newMat->getName() );
// Replace instances with the new material being traded in. Lets make sure that we only
// target the specific targets per inst, this is actually doing more than we thought

View file

@ -384,6 +384,30 @@ bool Tokenizer::advanceToken(const bool crossLine, const bool assertAvail)
cont = false;
}
}
else if (c == '/' && mpBuffer[mCurrPos+1] == '*')
{
// Block quote...
if (currPosition == 0)
{
// continue to end of block, then let crossLine determine on the next pass
while (mCurrPos < mBufferSize - 1 && (mpBuffer[mCurrPos] != '*' || mpBuffer[mCurrPos + 1] != '/'))
mCurrPos++;
if (mCurrPos < mBufferSize - 1)
mCurrPos += 2;
}
else
{
// This is the end of the token. Continue to EOL
while (mCurrPos < mBufferSize - 1 && (mpBuffer[mCurrPos] != '*' || mpBuffer[mCurrPos + 1] != '/'))
mCurrPos++;
if (mCurrPos < mBufferSize - 1)
mCurrPos += 2;
cont = false;
}
}
else
{
// If this is the first non-token character then store the