Меню

Ошибка main cpp 312

Create an account to follow your favorite communities and start taking part in conversations.

r/aoe2

I’m getting this error message when i try to launch the game. To be honest i have no idea how to fix it. If someone has suggestions i would be really happy to hear them.

Information:

It worked yesterday, doesn’t work today. The only thing that changed in between was a automatic windows update.

Windows 10 if that’s important

level 2

yes first thing i checked.

level 1

same exact problem. started yesterday.

level 2

did you have a windows update as well?

level 1

You need to reinstall directx 9.0c. If you browse to your redist folder in age 2 you can actually find the package there and run it.

I think this happens to users with integrated graphics.

People have issues here and there like not running it as administrator or other minor problems. Post here if you are having trouble, but the error is with directdraw/direct3d.

If you can’t find it, download directly from Microsoft: https://www.microsoft.com/en-us/download/details.aspx?id=8109

level 2

Tried, didn’t work though. Also i’m not using an integrated graphics card.

level 1

I found something that worked for me.

Go to your AoE II Hd game files and rename your AoE HD.exe file to something else (LikeAoE HD_original.exe) then go to a folder called AoEdump and copy that AoE HD.exe back to where u just remaned the other one, double click the renamed AoE HD_Original.exe and it will launch (at least for me it did)

level 1

anyone figure out how to fix this, nothing ive tried has worked

level 1

F**k u w10. If win10 is a requirement to play aoe:de I will not play it. Returning to your problem this link might help you

level 2

First of all thanks for the link. Sadly the 369 error and 312 error seem to be completely different.

369 solutions don’t work on 312.

If i could come up with a solution i’d. However my knowledge is rather limited so i’ve been looking through google. Sadly there hasn’t been an solution posted so far. However other users seem to have the same problem since yesterday so i hope one of them is more competent than me.

About Community

Subreddit Icon

Community for AoE2 players



list<SimpleList<int> *> listSLi;
list<SimpleList<double> *> listSLd;
list<SimpleList<string> *> listSLs;

This is main:

`int main() {
      cout << "Enter name of input file: ";
      string input_f;
      cin >> input_f;

  /*  cout << "Enter name of output file: ";
  string output_f;
  cin >> output_f;
  */
  ifstream input(input_f);
  //  ofstream output(output_f); // Make this a separate function

  string to_parse;
  vector<string> sep_words;
  while (getline(input, to_parse)) {
    //    cout << "PROCESSING COMMAND: " << to_parse << 'n';
    to_parse += 'n'; // getline removes the n on each line
    sep_words = parse_line(to_parse);
    cpp(sep_words);
  }
  return 0;
}

this is the SimpleList class. Derived classes are Stack and Queue.

template<typename T>
class SimpleList {
public:
  SimpleList();
  SimpleList(const string& n);
  virtual void push(T value) =0;
  virtual void pop() =0;
  void set_name(const string&);
  string get_name();
protected:
  void insert_front(T);
  void insert_back(T);
  void remove_front();
  // Should be protected:
  Node<T> first, last, temp;
  string name;
  int size;
};

sep_words will contain 2 or 3 strings.

void cpp(const vector<string>& single_words) {/////////////////////////
   if (single_words.size() == 2) { // pop
     switch(single_words[1][0]) {
     case 'i':
       if(is_name_in(single_words[1], 0) != true) {
         cout << "ERROR: This name does not exist!n";
         return;
       }
       else if (is_list_empty(single_words[1], 0)) { // add == true for readability
         cout << "ERROR: This list is empty!n";
           return;
       }
       else {
 312        find_name(single_words[1], 0)->pop();
       }
       break;

find_name(single_words[1], 0)->pop(); is the problem line

template<typename T>
SimpleList<T>* find_name(const string& nm, int which_type) { // Can do char which_type instead
  // 0 stands for integer 1 stands for double 2 stands for string
  switch(which_type) {
  case 0:
    for (list<SimpleList<int> *>::iterator it = listSLi.begin(); it != listSLi.end(); ++it) {
      if ((*it)->name == nm) { // Use get_name instead
        return *it;
      }
    }
    break;
  case 1:
    for (list<SimpleList<double> *>::iterator it = listSLd.begin(); it != listSLd.end(); ++it) {
      if ((*it)->name == nm) {
        return *it;
      }
    }
    break;
  case 2:
    for (list<SimpleList<string> *>::iterator it = listSLs.begin(); it != listSLs.end(); ++it) {
      if ((*it)->name == nm) {
        return *it;
      }
    }
    break;
  }
}

Here’s the compiler error:

main.cpp: In function ‘void cpp(const std::vector<std::basic_string<char> >&)’:
main.cpp:312:31: error: no matching function for call to ‘find_name(const value_type&, int)’
   find_name(single_words[1], 0)->pop();
                               ^
main.cpp:312:31: note: candidate is:
main.cpp:272:16: note: template<class T> SimpleList<T>* find_name(const string&, int)
 SimpleList<T>* find_name(const string& nm, int which_type) { // Can do char which_type instead
                ^
main.cpp:272:16: note:   template argument deduction/substitution failed:
main.cpp:312:31: note:   couldn't deduce template parameter ‘T’
   find_name(single_words[1], 0)->pop();
                               ^

list<SimpleList<int> *> listSLi;
list<SimpleList<double> *> listSLd;
list<SimpleList<string> *> listSLs;

This is main:

`int main() {
      cout << "Enter name of input file: ";
      string input_f;
      cin >> input_f;

  /*  cout << "Enter name of output file: ";
  string output_f;
  cin >> output_f;
  */
  ifstream input(input_f);
  //  ofstream output(output_f); // Make this a separate function

  string to_parse;
  vector<string> sep_words;
  while (getline(input, to_parse)) {
    //    cout << "PROCESSING COMMAND: " << to_parse << 'n';
    to_parse += 'n'; // getline removes the n on each line
    sep_words = parse_line(to_parse);
    cpp(sep_words);
  }
  return 0;
}

this is the SimpleList class. Derived classes are Stack and Queue.

template<typename T>
class SimpleList {
public:
  SimpleList();
  SimpleList(const string& n);
  virtual void push(T value) =0;
  virtual void pop() =0;
  void set_name(const string&);
  string get_name();
protected:
  void insert_front(T);
  void insert_back(T);
  void remove_front();
  // Should be protected:
  Node<T> first, last, temp;
  string name;
  int size;
};

sep_words will contain 2 or 3 strings.

void cpp(const vector<string>& single_words) {/////////////////////////
   if (single_words.size() == 2) { // pop
     switch(single_words[1][0]) {
     case 'i':
       if(is_name_in(single_words[1], 0) != true) {
         cout << "ERROR: This name does not exist!n";
         return;
       }
       else if (is_list_empty(single_words[1], 0)) { // add == true for readability
         cout << "ERROR: This list is empty!n";
           return;
       }
       else {
 312        find_name(single_words[1], 0)->pop();
       }
       break;

find_name(single_words[1], 0)->pop(); is the problem line

template<typename T>
SimpleList<T>* find_name(const string& nm, int which_type) { // Can do char which_type instead
  // 0 stands for integer 1 stands for double 2 stands for string
  switch(which_type) {
  case 0:
    for (list<SimpleList<int> *>::iterator it = listSLi.begin(); it != listSLi.end(); ++it) {
      if ((*it)->name == nm) { // Use get_name instead
        return *it;
      }
    }
    break;
  case 1:
    for (list<SimpleList<double> *>::iterator it = listSLd.begin(); it != listSLd.end(); ++it) {
      if ((*it)->name == nm) {
        return *it;
      }
    }
    break;
  case 2:
    for (list<SimpleList<string> *>::iterator it = listSLs.begin(); it != listSLs.end(); ++it) {
      if ((*it)->name == nm) {
        return *it;
      }
    }
    break;
  }
}

Here’s the compiler error:

main.cpp: In function ‘void cpp(const std::vector<std::basic_string<char> >&)’:
main.cpp:312:31: error: no matching function for call to ‘find_name(const value_type&, int)’
   find_name(single_words[1], 0)->pop();
                               ^
main.cpp:312:31: note: candidate is:
main.cpp:272:16: note: template<class T> SimpleList<T>* find_name(const string&, int)
 SimpleList<T>* find_name(const string& nm, int which_type) { // Can do char which_type instead
                ^
main.cpp:272:16: note:   template argument deduction/substitution failed:
main.cpp:312:31: note:   couldn't deduce template parameter ‘T’
   find_name(single_words[1], 0)->pop();
                               ^

I am trying to compile a simple application using GLUT on Windows. On Linux, it compiled with no errors. On Windows, I tried Visual C++ Express 2010 and CodeBlocks and got same errors on both. I added libraries, header files and dll files to appropriate directories. I added the libraries to the linker’s settings. Do you know what the problem is?

Errors:

D:PBLcode blocks projectshikakumain.cpp||In function 'void DrawGLScene()':|
D:PBLcode blocks projectshikakumain.cpp|259|error: 'glUseProgramObjectARB' was not     declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|262|error: 'glUniform1ui' was not declared   in this scope|
D:PBLcode blocks projectshikakumain.cpp|263|error: 'glVertexAttribPointerARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|270|error: expected initializer before '*' token|
D:PBLcode blocks projectshikakumain.cpp|284|error: expected initializer before '*' token|
D:PBLcode blocks projectshikakumain.cpp||In function 'void log(int)':|
D:PBLcode blocks projectshikakumain.cpp|299|error: 'GL_OBJECT_INFO_LOG_LENGTH_ARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|300|error: 'glGetObjectParameterivARB' was not  declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|303|error: 'glGetInfoLogARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp||In function 'unsigned int load_shader()':|
D:PBLcode blocks projectshikakumain.cpp|310|error: 'glCreateProgramObjectARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|311|error: 'GL_VERTEX_SHADER_ARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|311|error: 'glCreateShaderObjectARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|312|error: 'GL_FRAGMENT_SHADER_ARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|313|error: 'V_SHADER' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|313|error: 'glShaderSourceARB' was not   declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|314|error: 'F_SHADER' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|315|error: 'glCompileShaderARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|319|error: 'glAttachObjectARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|321|error: 'glLinkProgramARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|322|error: 'glUseProgramObjectARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|323|error: 'glGetUniformLocationARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|325|error: 'glGetAttribLocation' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|330|error: 'glUniformMatrix4fv' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|332|error: 'glUseProgram' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|333|error: 'glEnableVertexAttribArray' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp|335|error: 'glDeleteObjectARB' was not declared in this scope|
D:PBLcode blocks projectshikakumain.cpp||In function 'int main(int, char**)':|
D:PBLcode blocks projectshikakumain.cpp|355|error: 'glDeleteObjectARB' was not declared     in this scope|
||=== Build finished: 26 errors, 0 warnings ===|

The code if needed:

#define GL_GLEXT_PROTOTYPES 1
#define GL3_PROTOTYPES 1
#include <windows.h>
#include <GL/gl.h>
#include <GL/glext.h>
#include <GL/glut.h>
#include <cstdlib>
#include <iostream>
using std::cout;
using std::endl;
int window;
int shader;

unsigned char texture[]= {0xFF,0xFF,0xFF,0xFF,
                      0xFF,0xFF,0xFF,0xFF,
                      0xFF,0xFF,0xFF,0xFF,
                      0xFF,0xFF,0xFF,0xFF,
                      0xFF,0xFF,0xFF,0xFF,
                      0xFF,0x00,0x00,0xFF,
                      0xFF,0x00,0x00,0xFF,
                      0xFF,0xFF,0xFF,0xFF,
                      0xFF,0xFF,0xFF,0xFF,
                      0xFF,0x00,0x00,0xFF,
                      0xFF,0x00,0x00,0xFF,
                      0xFF,0xFF,0xFF,0xFF,
                      0xFF,0xFF,0xFF,0xFF,
                      0xFF,0xFF,0xFF,0xFF,
                      0xFF,0xFF,0xFF,0xFF,
                      0xFF,0xFF,0xFF,0xFF};
static const float Z=-1.0;

static const float vertices[]={ -0.5, -0.5, Z,
               0.5, -0.5, Z,
               0.5,  0.5, Z,
              -0.5,  0.5, Z };

static const float texcoord[]={ 0.0, 0.0,
               1.0, 0.0,
               1.0, 1.0,
               0.0, 1.0 };

static const char indices[]={ 0,1,2,3 };

unsigned int texcnt;
unsigned int projection_matrix_loc;
unsigned int modelview_matrix_loc;
unsigned int vertex_loc;
unsigned int tex_coordinates_loc;
unsigned int tex_loc;

void InitGL(int Width, int Height) // Funkcja wolana po utworzeniu okna
{
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // kolor tla czarny
glPolygonMode(GL_FRONT_AND_BACK,GL_POLYGON);
glClearDepth(1.0);                    // Enables Clearing Of The Depth Buffer
glEnable(GL_DEPTH_TEST);              // Enables Depth Testing
glEnable(GL_TEXTURE_2D);
glGenTextures(1,&texcnt);
glBindTexture(GL_TEXTURE_2D,texcnt);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,4,4,0,GL_RGBA,GL_UNSIGNED_BYTE,texture);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glDisable(GL_TEXTURE_2D);
}

void ReSizeGLScene(int Width, int Height)
{
if (Height==0) Height=1;
glViewport(0, 0, Width, Height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0,1.0,-1.0,1.0,1.0,-1.0);
glMatrixMode(GL_MODELVIEW);
}

void DrawGLScene()
{
glutSetWindow(window); // Aktywne okno
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
glUseProgramObjectARB(shader);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,texcnt);
glUniform1ui(tex_loc,0); // Jednostka teksturuj¹ca 0
glVertexAttribPointerARB(vertex_loc,3,GL_FLOAT,0,0,vertices);
glVertexAttribPointerARB(tex_coordinates_loc,2,GL_FLOAT,0,0,texcoord);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE,indices);
glUseProgramObjectARB(0);
glutSwapBuffers();
}

const GLcharARB* V_SHADER[] = { //call per vertex
"uniform mat4 projection_matrix;"
"uniform mat4 modelview_matrix;"
"attribute vec3 vertex;"
"attribute vec2 tex_coordinates;"
"varying vec2 tex_coord;"
"void main()"
"{"
"tex_coord = tex_coordinates;"
"gl_Position = projection_matrix*modelview_matrix*vec4(vertex,1.0);"
"}"
};


const GLcharARB* F_SHADER[] = { //call per pixel
"varying vec2 tex_coord;"
"uniform sampler2D tex;"
"void main()"
"{"
"vec4 color = texture2D(tex,tex_coord);"
"gl_FragColor = color;"
"}"
};


void log(int shader) {
char* info_log;
int info_log_len=0;
int chars_written=0;
glGetObjectParameterivARB(shader,GL_OBJECT_INFO_LOG_LENGTH_ARB,
        &info_log_len);
if (info_log_len>0) {
    info_log= new char[info_log_len];
    glGetInfoLogARB(shader,info_log_len,&chars_written,info_log);
    std::cout << info_log;
    delete [] info_log;
  }
}

unsigned int load_shader() {
unsigned int p = glCreateProgramObjectARB();
unsigned int v = glCreateShaderObjectARB(GL_VERTEX_SHADER_ARB);
unsigned int f = glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB);
glShaderSourceARB(v, 1, V_SHADER,0);
glShaderSourceARB(f, 1, F_SHADER,0);
glCompileShaderARB(v);
log(v);
glCompileShaderARB(f);
log(f);
glAttachObjectARB(p,v);
glAttachObjectARB(p,f);
glLinkProgramARB(p);
glUseProgramObjectARB(p);
modelview_matrix_loc = glGetUniformLocationARB(p,"modelview_matrix");
projection_matrix_loc = glGetUniformLocationARB(p,"projection_matrix");
tex_coordinates_loc = glGetAttribLocation(p,"tex_coordinates");
vertex_loc = glGetAttribLocation(p,"vertex");
tex_loc = glGetUniformLocationARB(p,"tex");
   const float identity[16] =
    {1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1}; // mat jednostkowa nic nie robi
glUniformMatrix4fv(projection_matrix_loc,1,GL_FALSE,identity);
glUniformMatrix4fv(modelview_matrix_loc,1,GL_FALSE,identity);
glUseProgram(0);
glEnableVertexAttribArray(vertex_loc);
glEnableVertexAttribArray(tex_coordinates_loc);
glDeleteObjectARB(v);
glDeleteObjectARB(f);
return p;
}


int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH);
glutInitWindowSize(640, 480);
glutInitWindowPosition(100, 100);
window = glutCreateWindow("Bitmapka");
glutDisplayFunc(&DrawGLScene);
//glutFullScreen();
glutIdleFunc(&DrawGLScene);
glutReshapeFunc(&ReSizeGLScene);
shader = load_shader();
InitGL(640, 480);
glutMainLoop();
glDeleteObjectARB(shader);
glutDestroyWindow(window);
return 0;
}

Hi !

I just downloaded OpenSpades 0.1.2 for Windows. The launcher shows up fine. As this computer is quite old, I put all graphical configuration options to «Low», disable Antialiasing and other graphical improvements.

Using software rendering, it works.

But when starting the game using OpenGL rendering, it fails showing a error message:

 A serious error caused OpenSpades to stop working:
 Error while linking a program 'Shaders/BasicBlockDepthOnly.program'

BackTrace from SystemMessages.log

Error while linking a program 'Shaders/BasicBlockDepthOnly.program':


at C:UserstcppDocumentsProjectsopenspadesSourcesDrawGLProgram.cpp:67
?Link@GLProgram@draw@spades@@QAEXXZ at C:UserstcppDocumentsProjectsopenspadesSourcesDrawGLProgram.cpp:51
?CreateProgram@GLProgramManager@draw@spades@@AAEPAVGLProgram@23@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z at C:UserstcppDocumentsProjectsopenspadesSourcesDrawGLProgramManager.cpp:85
?RegisterProgram@GLProgramManager@draw@spades@@QAEPAVGLProgram@23@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z at C:UserstcppDocumentsProjectsopenspadesSourcesDrawGLProgramManager.cpp:57
?DoInit@MainScreen@gui@spades@@AAEXXZ at C:UserstcppDocumentsProjectsopenspadesSourcesGuiMainScreen.cpp:273
?RunFrame@MainScreen@gui@spades@@UAEXM@Z at C:UserstcppDocumentsProjectsopenspadesSourcesGuiMainScreen.cpp:232
?Run@SDLRunner@gui@spades@@QAEXHH@Z at C:UserstcppDocumentsProjectsopenspadesSourcesGuiSDLRunner.cpp:403
?Run@Runner@gui@spades@@QAEXXZ at C:UserstcppDocumentsProjectsopenspadesSourcesGuiRunner.cpp:70
?RunProtected@Runner@gui@spades@@QAEXXZ at C:UserstcppDocumentsProjectsopenspadesSourcesGuiRunner.cpp:42
_SDL_main at C:UserstcppDocumentsProjectsopenspadesSourcesGuiMain.cpp:312

See complete SystemMessages.log.

System Info

OpenGL-capable graphics accelerator is available.
Vendor: Intel
Name: Mobile Intel(R) 4 Series Express Chipset Family
Version: 2.1.0 - Build 8.15.10.1892
GLSL Version: 1.20  - Intel Build 8.15.10.1892

GL_ARB_framebuffer_sRGB is NOT SUPPORTED
  r_srgb is disabled.
GL_EXT_framebuffer_blit is NOT SUPPORTED
  r_blitFramebuffer is disabled.
GL_EXT_texture_array is NOT SUPPORTED
  Water 2 is disabled.
Max Texture Size: 4096
Max 3D Texture Size: 128
  Global Illumination is disabled (512 required)
Max Combined Texture Image Units: 16
Max Vertex Texture Image Units: 16
Max Varying Components: 41

Your video card supports all required OpenGL extensions/features.

Environment

OS: Windows 7 Family Premium, build 7601, x64 architecture

From the knowledge base
http://support.autodesk.com/getDoc.asp?id=TS48545

Question:
AutoCAD shuts down unexpectedly when you open a drawing, and the
following error message is displayed:

!offset.cpp@312:eInvalidInput.

Answer:

This error occurs as a result of polylines that are corrupt because of
an incorrect bulge or other factors.

This is related to a limit known as the «stable modeling space» of 1
million units from the origin. As the polyline approaches 2 million
units from the point of origin, the following functionality can occur:

When you use the PLJOIN command, the result of the floating point
calculation to incorrectly list values of bulge as 0.000.

When you use a command such as OFFSET the application shuts down and the
following error message is displayed:
!offset.cpp@312:einvalidinput

To resolve this problem, use the RECOVER command to open the drawing, or
in AutoCAD 2000i use the AUDIT command.


Teresa Rosendahl
Autodesk Product Support, Platform Technology Group

Frank van Logten wrote:

> We do simetimes have this error!
> What can cause this error and how can we fix / prevent this?
>
> Thanks,
>
> Frank van Logten

Luke923

Posts: 59
Joined: Wed Nov 05, 2003 5:26 am

Motion trail

While I was researching something else, I came across a really CHEAP way to create a really, really simple motion trail. Below is the code for said trail:

Code: Select all

if(TPlayer->bJumping || TPlayer->bRunning)//if we run & jump, show a motion trail
{
     for(u16 b = 1; b < 5; b++)//5 is the number of trailers created
     {
          SceneMgr->getMeshManipulator()->setVertexColorAlpha
	(PlayerMesh->getMesh(TPlayer->MeshNode->getFrameNr()),(s32)255/(b*5));
	TPlayer->MeshNode->render();
     }
}
else     //set the Alpha back to full if you're not running or jumping
     SceneMgr->getMeshManipulator()->setVertexColorAlpha
          (PlayerMesh->getMesh(TPlayer->MeshNode->getFrameNr()),255);

The way the code works is by making multiple calls to IAnimatedSceneNode->render(), while each time decrementing the vertex alpha. Place this immediately following beginScene() for best results.

Honestly, I personally have little to no use for it, but I think it is pretty cool. Plus, I figured someone out there might get some use out of it. The code may require some tweaking, but the basics are here for a decent motion trail. However, don’t expect anything like Gaussian Blur.

Anyways, have fun with it, y’all, and feel free to ask if you have any questions.

«Object-oriented programming is an exceptionally bad idea which could only have originated in California.»
— E.W. Dijkstra

Evil Mr Sock

Posts: 37
Joined: Fri Jul 02, 2004 5:36 pm
Location: Albany, NY
Contact:

Post

by Evil Mr Sock » Fri Jul 02, 2004 11:25 pm

What is TPlayer?

——————————————
A monkey poured coffee in my boots.
——————————————

Peter Müller

Posts: 292
Joined: Sun Mar 14, 2004 5:28 pm
Location: Germany
Contact:

Post

by Peter Müller » Sun Aug 22, 2004 11:20 am

I think it’s his player class, defined with typedef form CPlayer;

cmoibenlepro

Posts: 237
Joined: Thu May 27, 2004 3:18 pm
Location: Canada

Post

by cmoibenlepro » Mon Aug 23, 2004 1:43 am

interesting. :wink:

I wanted to create this effect… I will try your code but I don’t fully understand it…

what’s TPlayer exactly?

Can you post full source?

m_krzywy

Posts: 133
Joined: Sat Nov 04, 2006 2:05 pm

Post

by m_krzywy » Tue Feb 20, 2007 8:39 am

we don’t have u’re player class i’m also interested in this effect :)

messen

Posts: 25
Joined: Tue Aug 29, 2006 2:51 pm
Location: Agalon
Contact:

Post

by messen » Wed Feb 21, 2007 7:48 am

Hi,

I think TPlayer is

Code: Select all

class TPlayer : public ISceneNode
{
public:
 bool bJumping;
 bool bRunning;
.
.
.
};

The render() is in the ISceneNode class.

jingquan

Posts: 222
Joined: Sun Aug 20, 2006 4:10 am
Contact:

Post

by jingquan » Mon Mar 19, 2007 10:37 am

Do you have any idea how to do this in .NET? I really want this feature badly.

nomis

Posts: 14
Joined: Wed May 09, 2007 5:54 am

Post

by nomis » Wed May 09, 2007 6:01 am

Hi there,

I’m trying to implement this into my game but can’t seem to get it working, we currently have:

create the object and the mesh

Code: Select all

	IAnimatedMesh* bananaMesh = smgr->getMesh("files/models/banana.ms3d");
	bananaNode = smgr->addAnimatedMeshSceneNode( bananaMesh );

	IMesh* bmesh = smgr->getMesh("files/models/apple.ms3d");

when boost is on, create instances and do alpha to create blur

Code: Select all

		if(boostOn)//if we boost, show a motion trail
		{
			 for(u16 b = 1; b < 5; b++)//5 is the number of trailers created
			 {
				smgr->getMeshManipulator()->setVertexColorAlpha(smgr->getMesh(0),(s32)255/(b*5));
				bananaNode->render();
			 }
		}
		else     //set the Alpha back to full if you're not boosting
			 smgr->getMeshManipulator()->setVertexColorAlpha(smgr->getMesh(0),255); 

I’m getting the following error:

main.cpp(312) : error C2440: ‘initializing’ : cannot convert from ‘class irr::scene::IAnimatedMesh *’ to ‘class irr::scene::IMesh *’
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
main.cpp(425) : error C2664: ‘setVertexColorAlpha’ : cannot convert parameter 1 from ‘class irr::scene::IAnimatedMesh *’ to ‘class irr::scene::IMesh *’
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
main.cpp(430) : error C2664: ‘setVertexColorAlpha’ : cannot convert parameter 1 from ‘class irr::scene::IAnimatedMesh *’ to ‘class irr::scene::IMesh *’
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

We can’t figure out how to create an iMesh that is not animated so we can set the alpha etc..

Or alternatively is there a way to set the alpha on an animated mesh?

Thank you for your time,

Nomis.

Dances

Posts: 454
Joined: Sat Jul 02, 2005 1:45 am
Location: Canada
Contact:

Post

by Dances » Wed May 09, 2007 6:21 am

just remove the word animated from all of the calls for that mesh and you should have the equivalent non animated calls.

nomis

Posts: 14
Joined: Wed May 09, 2007 5:54 am

Post

by nomis » Wed May 09, 2007 7:15 am

Dances wrote:just remove the word animated from all of the calls for that mesh and you should have the equivalent non animated calls.

I’ve tried that:

Code: Select all

IMesh* bmesh = smgr->getMesh("files/models/apple.ms3d");

Code: Select all

if(boostOn)//if we boost, show a motion trail
		{
			 for(u16 b = 1; b < 5; b++)//5 is the number of trailers created
			 {
				smgr->getMeshManipulator()->setVertexColorAlpha(smgr->getMesh(1),(s32)255/(b*5));
				bmesh->render();
			 }
		}
		else     //set the Alpha back to full if you're not boosting
			 smgr->getMeshManipulator()->setVertexColorAlpha(smgr->getMesh(1),255); 

still the same errors :(

Code: Select all

Compiling...
main.cpp
main.cpp(312) : error C2440: 'initializing' : cannot convert from 'class irr::scene::IAnimatedMesh *' to 'class irr::scene::IMesh *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
main.cpp(425) : error C2664: 'setVertexColorAlpha' : cannot convert parameter 1 from 'class irr::scene::IAnimatedMesh *' to 'class irr::scene::IMesh *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
main.cpp(426) : error C2039: 'render' : is not a member of 'IMesh'
        c:irrlicht-1.2includeimesh.h(19) : see declaration of 'IMesh'
main.cpp(430) : error C2664: 'setVertexColorAlpha' : cannot convert parameter 1 from 'class irr::scene::IAnimatedMesh *' to 'class irr::scene::IMesh *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

BlindSide

Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post

by BlindSide » Wed May 09, 2007 2:07 pm

Just cast it to an animated mesh (IAnimatedMesh* bmesh), or call bmesh as an animated mesh.

nomis

Posts: 14
Joined: Wed May 09, 2007 5:54 am

Post

by nomis » Wed May 09, 2007 2:43 pm

The error message says «cannot convert from ‘class irr::scene::IAnimatedMesh *’ to ‘class irr::scene::IMesh *'» so we need to make it a non animated mesh >_< i’m just not sure how.. have tried everything.

SirLino

Posts: 3
Joined: Thu Sep 22, 2005 7:09 pm
Location: Minden, Westf. (DE)
Contact:

Post

by SirLino » Thu May 10, 2007 9:19 am

well, there’s a IAnimatedMesh::getMesh(frame : int) or sth like that. could help 😉

m_krzywy

Posts: 133
Joined: Sat Nov 04, 2006 2:05 pm

Post

by m_krzywy » Tue May 15, 2007 6:37 am

bump :) wanna some motion trail too :)

koller202

Posts: 143
Joined: Tue May 08, 2007 4:53 am
Location: Thailand

Post

by koller202 » Thu Jul 19, 2007 4:02 am

Last edited by koller202 on Thu Feb 17, 2011 1:11 am, edited 1 time in total.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка main bios checksum error что делать
  • Ошибка mid 140 pid 171 fmi 5