RE: push_back problem.

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance

From: Justin Marshall (JustinMarshall_at_discussions.microsoft.com)
Date: 01/09/05

  • Next message: Justin Marshall: "RE: push_back problem."
    Date: Sun, 9 Jan 2005 09:03:01 -0800
    
    

    Thanks for everyone's help. I redid the function ReadWord and created a
    equivalant one for strings. It seems to work perfectlly except at the end of
    ReadShader, i get a debug message that says "DAMAGE: after normal block #50",
    then the pointer address.

    void Shader_Init(char *directory, char *shadername)
    {
            string token;
            int expectTextureToken = 1;
            string realfilename;
            jmParser *shaderParser = new jmParser;

            // assemble the shader string
            realfilename.append(directory);
            realfilename.append(shadername);

            shaderParser->Cl_InitFile((char *)realfilename.c_str());
            worldShaders->shaderName.push_back("testtex");
        do
            {
                    token = shaderParser->ReadString();
                    
                    if(!strcmp(token.c_str(),"eof"))
                            break;

                    if(expectTextureToken == 1)
                    {
                        worldShaders->shaderName.push_back(token);
                            expectTextureToken = 0;
                    }
                    else
                    {
                            if(!strcmp(token.c_str(),"diffusemap"))
                            {
                                    token = shaderParser->ReadString();
                                    worldShaders->dTextureName.push_back(token);
                            }
                            else if(!strcmp(token.c_str(),"bumpmap"))
                            {
                                    
                                    token = shaderParser->ReadString();
                                    worldShaders->bumpmap.push_back(token);
                            }
                            else if(!strcmp(token.c_str(),"specularmap"))
                            {
                                    
                                    token = shaderParser->ReadString();
                                    worldShaders->specularmap.push_back(token);
                            }
                            else if(!strcmp(token.c_str(),"{")) // sanity checks -- ignored
                            {
                                    continue;
                            }
                            else if(!strcmp(token.c_str(),"}"))
                            {
                                    continue;
                            }
                            else
                            {
                                    Com_Error("jmShader: Invalid token in shader %s\n", token.c_str());
                            }
                    }
            }while(1);

        token.clear();
            realfilename.clear();
            delete shaderParser;
    }


  • Next message: Justin Marshall: "RE: push_back problem."